PREME/G/MU740011
03819863418955042558526938100315696321545264154867931863659309307084407555647702804743094955353968723702283114263304272593278118725545131831832739134800719963409087836824583124428189815130583354089724407407825359884082671164805670970232749380612625194255102790727935337108264635568953780423471530864840561637390984886128177724948856011817840912081176768185565889669636956833739877765054246484145961936015240011218351216230452929042905143873126706489088060494783905408976453570522839535227895975136776339133105351465445015782456398222893420678045892693125572936296503311449810216957811679652352238738976344906411203912610778555086011836463459423108215684445629516450417890369441747546959636363713987733705101085861482622831718806712904758832681739911272044017804419117958773859838590601542427867895466551078782947718171820922683938771853188267860113157616654572682184139049472900627822447657039044981262783772388385467211739129901495918489296405253519891877849489387110463490363900278637324332656097386778892516190816822884071589775074232100097114120157232427225035125272766516547431792286659506451774218878505066621485621362101252143337868601733232932038334898034532064457076324519241120027309884323801634770212401895025222807657877112382361759685746516191880356867311929208930295405229490889325059091851186132408088422123151341765322486675592125653534218061851250176060301813938784795466227109936265122963498501372327293617037878200163248237396630991529196545802862100540765892297586378230886976564824439208875923996883237011149099337749769305439307894702029815063550064549264584157731811575052003673541367646341072845354822203982393541885378312817170667673455582385298229312094860294473393955001164214023832473000695763351062773188758925949545359554028016853732645594570435974939557126540150237210313866539343689779273165537643085293197277491974390718052263188792984901484410013049054816804527071596755291173667035858756475766499668620903762890739603575984485198968033918442656287373088014444286534605273566532404246180903134254572288579181525624149772286257571655820548910916890762283385179215308237148580043580203796945242231873105940203556958973915452292825556754453234688037451687463830406387742841860995663628265532090181933801221726840946712865122038987620361287743879446197314392540906291712197309930826101931760120784722821397972448847505508586862744539466468565696461697306854357741987927759016274295798321685269353572542224254082942740564800452878955378665633533773776344034907611000219644411336821623431529533729850796132804238826371669251613676040432803978532465278444661528326927277969299156442068474627802791216323147442758208691456011854641211785364467439679562588130199626255685373604484811849456416044063394390850102283592700668900793595407339856186380301632778285834688440103518570187273557681614786446814108814090439166322779412486194029200287172771945674075894850198203384917102993011892343058036695064745541826019108422122988448237108814126469919755582679119855595093683005946677452879701868432037766668219320567003970815422944748282152617457395504035688402738657605007663871205439695812798084762595774761542823416670230499694839559350491880096630776746353827553472134117021438788463932756368879636545099017109045091638307126823548749755231482407102652647072572150407992838508181565354401288621080564826252505018277543574373495939563574260826842066912466341277610469181440424255424088317486827131275120345816938788940078261587948213230726283825545796725837861010724299532825563443496446557335243874113990377207605779020987789984496468055099726625994912310845951156976819716129627250146648735684042247001699325892710629507682900237436548792005956933576454981786392607824802334717003441645655201360578732312159645913468769840617027367395345171113317761255353005592913625535669616568193453250150975915269310291850837081105067251318286752121132443814062121566599972546705216480845472388761425407005629786418007418920203393159196377827928590657090138623486541707066511892104107711521670767616019517173283850006208559462878610356101360469479741143441558996764365152662641742344203934559095613940364984659649643425719234822880053630154335948580634348885729110415634398116293059714612468541498620649491280328418895463517009049918475213524502838416743880641164236631462669494286631701761089147721762759752896881985581264337935941671833844496941746367761527371993538388090858282475623276624089852160766942736227166709036340121463304606271615627662105439880948707906374761782488394105513674900730964351222223410056636341353144363596939908170245946587180300216258511816724501864356751197155776164919141696081681232829565654535342009153778518447373085246520306877917345258961626385091075869246877288338423907909012237845482440718394166121285846123184744315266920181940603075155331328459954020305334294350959332927162649934649273186113306604073610170810674380098696582835281782909125716819499036064075720622332333497515230502147247873223555359586707700129843559123115554045870275750906234772218025961240011705220596453152178828595342502413235842668643407280362906231658856836987108468189678011812390808797388287795490811595040450022400544308435003481380091763806821248782559052238867017922149643281629571571565607262818015010504205774794273246959938331259427248591539012317187248060150527779124147447911510127879535688065071850461464742615806681033820933914828507741270400664875068767488913295590334887902599207687608639476871761850014698091695610829422337285970722804044372993476625140716622890333697951708934747535136890527564873558026378199821230103265253919301617791393841452209986566408112435072186114842643687370755950256619795873302606036458873697331173035238309180563092756193366093224293779552134530370034516239912313115977937436754939026945181960375831244101281014034877559146736595350297234045478325210677383025335351649712160410721957383806439481582953723553677108080751815660369832802225409142850993599014178667494174680252046665939605323335702142700966691859206145264294078319398666067161950446295462993187528410351649039858403975905529525361911783812615776608589193545511488996718062625937181477617722352921233893894710169812806061582720804919763121445311606060659921336725299410587142283628682826937456643015396555719900849620867499713722318248216216590702413434800114487027291779768128446849417083210455562102830297936604381803347116852358150029845740874327361528445388537903930515200034923674621083903063686012611598946748987271434693570554019470138506572643433027243202583894793273527739475365392624595504948880219534922955221803534479410768769339599666323885760656380234502279154106746259889101789327039122208430139172848279030411977230057041826874322706730392493061123815616915763927287984366742329485148328546827226042046532195981045597317963682068464623495410171755999551582590849860558580114455705274302391076406285010022098138819338283729473659886338410775505641700343336410746542367263868970019079920055891464954721728306777703282259851591024913951199498105838740138929966650656158441717393809725829325086672534912194078562751099112605476211353736040940538193641705413220313036252019228064334436474812714865351901848143577332009262119492245280324582132204120385379979021442507739076412832582153558836970992079351877222137198043389533237990111932804330128805649670375216017370199093487020229189459317091679007473634199489981583009986563290962971712135368845875728669699561252889686974151751116480067910812930826538266405432406539417032925247508723144631622269697963531271594931105788687023687874676265974545474462544105295460788999842898827535309454117705962706222378703975953539882467217951856926768813115200333774331706429927479362260861436738538475942085656258383203118422128554103051365929448421830282871267703814375249669650274922962064766171939164471551885189919173701946051179993567022929012245769815798058156075612396378820866359913591869212232120327026308877125645434802779904125399764443416312670372847767238566733150311060645423326685271783920632229594969619956144265757238089124927748341405579454283153315141658150060416771266974492241516383634712905986086543118087680323173439407416407997938320658400286666609843625296389658938462078096150774019861948968586764481803673123632160393742942777405696137444933748548280834232678342406144798256749678557104451869076260409576471126617951488271138364751119805927588042885386439570752304242216892838562967063808508114324110686617700702273321765782773377229031343039255081710704369656801586173204703616986998112929397165165909918192369025362061676525013121299146589268606917062857921233715574470245370256940437296060714372979738649500671862512204235888412503175901907991097162490839996892747317703736004634208408333923031335558060891643357315991934239310947955238814099071743307507282768253356968188016924386676188342267146261181962696869044428405867872096447250948358476273056408381736836352207521852394379939051412172886871524694434837313967110698984305657636726338639711062383459433840444435356691037520388250897646343661855681783307819845680523674166181718187211481089784397549748772405490011309005752265594848312438816639540740504831735863455917360457358259731979424559328308691304562628938216930462616144289786312964121426008129512244081092662471794748430105515434886671406830075273703566559889700631150401911128454523304716128450912777387002383689191291918794995294597606001842253947661116426722532214313587060749724856322173577968133718705083105880730243170199986066100571662370813144951641122030468115703045423902072109022588544946298922758940465495978850452266458965302895553386154789986486409781113621524011922093526831406286112367428522327283584154731099636066771913655725106892792679988514721636636763911928181535521578824750749835931927393477754210660465888131612494568130100491796688268865739058130866699718430706470376649585354606371975173058476001930431132882051597184778443901754515314994918207780325323818074299026385646828217865439702637048858414414449573888843109125126099073440522250441206075257113919589154809210897686595116741186584852395706462613908468649328792921568912864116432428652957673031859039279640226608851396529350080038483152618889560087592064989254253281131807068669804355430959182354283363484824055637391014584343023596404306803843670608751426252978487201597727506809230038935972654122707384919744971406652557085024616258883157950019276989162623813436684897675161092489941355132747260287394025059053794183440910970186763313539275381267927459407984185916584733821297525786890857226162366378764925796765110798655282923197234756591991279448354832596668760668454879168299561690687545265319563800450460070985358071964645588810085070104996581343389689304919379572634321900713980041392552850741443801542424615801132772521442920514281280738358163492709486167203529150188705660693521631700840227712191808021846942281359218838483663702412605792772974368327767001651583235829611044580934028547639020840290648014992802965493411880800490704692263280002868977421722036055390214907200142607149605003262303880907296855867942892675814023220720621928007640427151822460199258240675581844935751820437056073383677907078024776614513626067207752092453570434127768981745627230672549344259065499872697645720419992745027345814158220524897975894623909530399674803526233764534901723223958648398181279822196509916950660813462581825895628625649621888021669777724007321791474281673628106141463265687948612728255022086295085517246081277255154616889468162547095634495555809581470786715480485295606534181088918074492721177476830757000293905501551500741880320919680980812142912550639673022456163176991392637076587117244327959026777529291285169004239173492150039929942423428388954104804212657012794201497563434626416308452110052565958081388735931354540793052307083963383252270248172960160662461562237441896470977727833854075915630701836380880980129099387336569699003993781838598891572186704118140112718147122499593599145609211076169457385949065146138418819526163441860360042112570172168364809488004161358163075029846008810491738543481390772045235183829149008669691493944960198311203368638210648486253050624215161072337027897214280984246792718367024119338797202561541601971208864725934788311158090893287765227650860081225800827287308310911009413027689709521020165853239355681151958217959815638927631831024863587188959291512801490757286816717207097362319694394038674384572767564930578536216467470537982546978545649988324460338352537310781575574253535676393875693442123567854081232492351286771309404332711857311967886934225637812893811950266556216764392042500253493028213673995491743040889965454345521112621683204191249265450814437812341209106625804410768958949657687788550916404954511585173371645545702257202005229259582052686628469249271363093170228270579275430442615236037092320592500664099930858777891001407193405332867314012443312127560954886277790730716337387741620479951458824778644306751935245257248035085062550679640142499279264497519087673986075562463647374498576981912285668490387310464343243000247048527520832046550063597338583749168237759371743294954035274451516890055981319222785857520035177816555700699095432242593953672741700422324046329848082458912148600045676264878602692631355614500801197246549653136353822863120395021622835873203948981593536249746380423742090558700884588633922761556653993067176075398094947217745515703106972338719493090341807884595629451350466639889192893450446212516913502026916135574048878409808059752129371112311971307614070683495523328680205600137541751609545575088392395999511160594657383662374703590318989990105369884871287936746354498602937397492663079342841242470943677807608599164222021030106318886991288968770756693047969216549741750137162210859182790957191949979827342680112413607097014811981720407538259332901953893615482119868587090366003211127348242113038913788552122525401283419805344318553502392165143479225722747969047062499568905070341685468193385700412260052803805308666914044363299252303996256573297504076018941284061634602808412096662723946795341013541696863400130084904122116466302429130880330337171460417752541715302457292248888073469793214071333003287257563664368486856371617218816055013746877583177966422181106392698620005111792622346031897183906779992404959412325777155010213026792273107874154101385360963828392187686456575199221139260522784149624246985459296827420246829488097520406436670231308207338858304121610862115652188248812272637831670763224156304663679091844218539074452422689646073178116006943360521836705276086255841986609656405500443358564632862937519646443484953530756166941775246857059065070736523127718455144474241044680347295097556385080135829333277870081547933247910766842949225611664825789305333605508851861252219538884276184448066458613133411761019976183680225352933683498079711942788220994966139636455528996295980277261081857113883251370182747717774062583896137257262401930178252697947850119188135187790248183841800353546830466242016659101323913020290579526606282513045546387787899776321228599653764790367219391008413759596244920934463659869925991580090231511438560184016576496414459516355214128975555878567693434846333674040931347511323762791693195887298361228734860219777105999493872114790774378297302916699291251662720858818563050741801266313827483094740082505624740693400893318393593677245593584829675021265543162146381201604886285321357178641287426644580756362747992328004649515705040236633451418901169646014207398697890526935130460344042280222031728463347390209784680146936469298623927664226662536081370350793442756792501564291899446690114289197769846544764320701372192232863022701421974582177011344244351567688874376080957433438960673049650762582253561450542137051446583145057077151952693527058305263784379970199190280530156987825534815893240458962428398391444132950587836583083340641878395134186016438869373123496938433005620588976480611757785021418622588201189445281843175602029241508687937326254424592552318998230613214081052308207485976153349139993325669892286665633407280846821528433480542949846767807008616920369561011632367138012390490834736017948560976734736883937328264245979553301668872580710448925062329765956808407140715274429841828768039773923673224232367563215293249767027820656461147974430084419045006036469182986030627311574829687241978069898516391636823249714303209981482316895849986304601331689386219748126288631013984326729408463361349784606828879620532028985441505825446887384079491812766442755814166794767515359828238096683200855175308753939801630911365232356850953504226701950636249083810013460960011731171036132313622933447459727331727622087804958887801093205721496583801505253046672186890725375445441392695219511937552199032256005334318995802061782170169616959056212814990979234095161158168315043654848133816039832125950115576997912453822186893908123464232881290495916868415350339172540042691522760127552551716654245209869091043042832372619813687535442546851931819042072065449313414936649268958485134905789455584755181044132726044103053697449595499315903234428817515123983599775545546372079761255484732147300185877012560889297680363665764524912644315700948190524867347162926688743367758867397585997061921834906940141293865228292971525471595835290956553414132048881410750685988315679738892106576465240792014050794824986348069103170619339673775570497188719391563775914345631868970574528551693926565303330760683243032283937308106303226206073365152269562942624511997880596379731850774544752811682224233141738845908489213523971955116148589110163251349712465893898432567715534361936237747592402499688464554958742514881939711957915402439376213891043610717894449260806765534854810307680409127043706318730269020639373676239857552349492512317999263485589235769240205338974841875367596788204695493754008168693184899671567870922259940853302108283959433278969963228427091243635606328976095064513197159894288562354423380105685869094151363564318199461588305473529278319998386086246998167581703092196700381438969095595851292065299855508729236366285046857763279422159113269655552414892539054181977808445031278022824787032706447055050425944907246856211755620294333659543249908348874830942581335595538651976194695834186172931391393229017098985249894134783963311480362589544038181206825953355670062563250262915635649980652306151351847596716488707430016527175193704728055771349976507294678738245917069011397905745832699510790964174488077505161196608711574568246828591085292879653095034060419097133787663841816471868254998537775361301554113062290896839565906523803503142993423065505853456156246944367929018633275561342616164277340072153233501453917769590506904829355615865253443412946526646173943595918099046121716742088914281608152913955441257495141272332615267955328008522349224653944476349777084506845448009205553690569216053441732411665215933206892578928554361957164030343408738105476151923873567261069408421115973183045555963600167246974103674329630687629600432023365264479360193517807214641846585430909896000632552676611177581641870281688939729148101339456254100891667535662141733604788437565188073626826482016025337712496003479269468437274194501543635648724265806232263594988214053083574846831340225511815293235566527655527862565779030677389429134154636824746357979186114648874507272006250116047939382449946735167572533470740088788842854056857401550056068828097123583403553922368412240990111046734672272200567132698227264416877370976529109766954880408491040384193856848994714666332490230577578191771675025581834069307360165427042584790698507377026286459534478598826413406342384178087066455451350250179396946898029703624879936951976834456156480309074026921412728006574269064387054818666252724961508750897126933622421841017706606488416193624619578648849658783380362569643786805602011158638063874332248526648609775599914970033162799439723330318596725628545572683093280476754140186845957887013009684362600932890187144892637751418935271461749119855693428128396850520633063360122193690387864025604090036413834965608534418674216383094870880270314768085355662028268545077790760657645512448321947248735258046085909469880221566373706088930723684963923682478517837397959786598143159412105435695456235157537140804069043907787488918957152044400388529767390544301320273999790441822631364511455705481303710110642469624740665598029489004567983318514601111960411935120897444012529639054153755156150307036534074142610629404268238602955594345794612525002251829488295637633210539518879673305445135500883253461832937007690589508838284932746162567486508162854506932207866291261393210640529980894490975628967303279112150603000555596261671509013074795352847578677942259785399221510055957633226079800169170324543822237160755095882353194050335530505336602976165262000134414567471702933748296142354546033049781145885601501635411998160211733828821198262426294267212506183800919911335404987982088542572967504652988916947953024318273039962257061655127755561554425380391876404798244511673001030895080832172127872438556440775133056489684063963818500521721851564474265914699938217783450530258052732320715188169191539934531040480589977660803145160655702972363988867648225807318545898103733380432856016434208959942997603905017799740634686429422117753356088069326561863615796917546156626785027484464210337403364438377450673736482111573808426748899311780822837688171881973224723608084093487178134511606040653523218765752991942375989390630128649129700711017028478319229437828157835354863925513020604540868949294149820094742894648903312087054849466258891875642797160164908132660303414120744939008684696599678534185402676025159171480216234297890254910041158057642839621615471978007140203628515116135051925114566837728669645376336392485392358534315309987368363625727156207945622290664049980912493395193188562811702120678433880120626392562859362435363916477596305769864716668555156380903787026272226378190953534995376290278964840647532129252136141866307802739820027662593559717775647894451982286860419228566714232521693506118739818731905119270498892173044336158863657176605513633988841984785417458476747926414935334319145632258387455342837898258730876343657815380991172529767563179328965828006309973902687820799243998472410134743922454158334475638086668630677592250435311300556952597880861169560963935047946929876585362035109171239902736151444936999679978003957069106082303718246525499108257487375181758555894204660875730268809771654110881890371609005943728517744692785897245507526914263006317871984592929415839938479365049972209746211447338021025414191010951149618047347521132661021763265360741265379861139757534479674560242728952096841505447299746081519371063679846456925387228678329352301624012560423959355727861499163416892976838901180558577733906254151871680611033275038871149044984960082611439096652214099585695662479003780847103105528993649795985169179001369765521407334707396114996883289413193211293912930901374865391447977869002464424309659913549118055227549866058399948327107304148014318173505322058108093134648327605880102239937165742777213549520014593532864332475343562138872639218066767766663399041575686957478086126671421484307302616814407410022890220364037125240991373717079853038726732699073683842871416351207839637972003206695111288145018128748416861147878630007280329996601262518506237039551216783632502801072789459621115423960012637282062080503664888306828791206582354844428649633104790809400601911302841592007606048357411749458809530650925825244823059907932385462289322716961537890923364428902671370266522147135769050457091400341146840540345866911949559480890071928927733157614479977881455809116012825334192141311266578108160430375195546696935974336739963292567994542471031193640976943435771486893483438776104091495897181866717130226811988027697590403987183888165537329136647822677014335123105580595364709414332593159038004089824537581971460539697757561983521423611334430783351027836517423799794001842461687103886804870505858628577814701962092484047511582154051527212127197227385640495878249669113523246830459081088636793919025835147843342480764629485546110154467918823104063501695303009003576393363672761625899092711230430661943321525701102061342475470483215780667563522667357499284864164259204019765886751192102047552831264786832762342423320174461825544732832127649410604184402452617791084511265255096367611677211740732649253525968212538098734002024345273155360204413033713887367293100121027185816882883682575524894482948819380197995008003292811225706851825018788612355039436739952987727011402372401487366020094641315836587698875140871647166096795895733926910764874714499458130219558558866235240232692258675000035585091414858502503133295254391715982414457040416419378759616545381254044566016317712240353817888518000727830354919024249871667914089445625642052769549154463230482679340482265581311040300596998989117174689206541806706427529216678958299717599583165445040798228412952291306368041612516947924976030814841530492661346005055669072573838950786986303111525813432877095193072373398255031378182076441735283538850134919836594062071276824550883930252024486176360507428517251594940604354971287826004162755950455487197671429596238314035800584714290129399140759718133761984961130091982669413220278480614567924576761122306250446567644471061716972858207592315157199708501591817505202568812862866457842217914633770056856277259530600738121375204510844572872285111206572656431072045335630291613319743771591946722711502796569515806668388333833030094386056499526676799857241915202641553798660873528222245773737847361947933787275685374774802566902190765875046497047801252142459907330168329452702692951854879694996835471942731552710276367020873228341390597827814718889866747397350812854751977301809600843745668914987441170565494880405717115557526030692670916351447419088696595059259616513847958121288890556800995732644617382355946415235321464456517885741884022050266626435429731152448842583813864679738041571957172583798938731057266506526733600054104674253782416558863758501365133306705275772914514982866668575854153473828271598030290397816186238494596569525776042384097125422858897252786697032577684784961488523342680836015816753591523250541803271461967548085182208491343756844460842397482128857234615717986984704362642474096132024976303597211803540858011153294628681765126343085296639892679845047486991722363193714341367632092780680824399855693284947276104013347198452947974605539219010001321537941058824265739578925817680054319103655375393655107401788314865738990368844416967121934142529878708364910100397567056593761859306109595827908154690192777555674554934672051679309800762240606109442279489563906025624772202161312437858328934156359857255806110930445485032896680015375441076277157457020579149142911117759072642058827911033405705857849691352633988295017489001441680237409874825428264160997489888988769341241483115050511965613266694659941356122283470832951124245559938896185820062250672056797842466582694491202807965112600795742950935388704409633540545812595593240129519468276963144937385071284991398721067654566618884625246819537878164970092725710104737996138785988056938997232963907447338987828437422967417716298473090682763274469290694199241952062340405282920967868101273629517852629393998138575912299472871027087478316642314624540978573776991424927020681954814004543540270528159219508729763153513079817873104323592150133108172752930019933535024519521952670626992774391067031529658936963259484619211886572262585074447943908852027178626337541645179216403793606358107696303652357923679908068112995813921297533797167790570953191715066649141693474977336910644736161405514681549123470047373015054450370028067373792047833075858232173021011629388241537860386788857466848699826195186270926235557498043658560336688428624995269262840153536041610839626432340519464048327512436290164466117952594591140028238760533549625677232041426473485899068568500104324768785684790616462818683481443164395475545967246463457453817547659054931794904712686675573700993545481367996822627072496655011474382572322054582466793391195916802677854749915244695017043203908710471660911070699339459886073301763812225109111451910907016960862569420489748787268546610306206591113489456941310680594122279027063920385682976482355236455888640758868852125071356648144243774253237259729896995454281163708236028900255508359745050145648850358998298289914083795904752033140047523431354222468916001516342348371730356944099721678362026318067030213192963803173906753281598337549300693713592836216859678482201308635736500308991843904475114586029814804168748021397751167619553012857514824313428965056935824330349730222352416988010631951267956820515392100718594446002494453134502049154854478000159144854892112251477107184794880623455511936848053423014785017581550962187485287567256724210137752648965601647221520004576025773601928237357421749349454725608039118025172541476261713863231760545370502534591720168553525253699203516900240906479706572878311249174840601878947657817735126841444319827610497244829603513931964421196146717854380562078138618458087782403253592561656304312416783218883564883559857078663648859016057058594765982837246036319485576863865902083021095790731976764143425850043944891091352474223260584952221808547496924507927651316954210348551013421491005351602138820417867681717526925085331738273586690685382395049523550869801875870675228411162546736103897711643960282294988715596133654149579366871515246735329201276876906971999715757281780748404620583500330312591494545412100675103042932327703464101717928102550379015581121874353747710440516234974533338288004033307271137051333637051755892234619486644046339024375117346871940719477256207906575880524565860226307471891842612449796074218639227584104035220419187153338484264225130377069032278753124895575527355286195227662476659993333298685168836169760714670011275959935838140701399819386976592126033456755449695933954912376405621312451859086867700841069334827440826260679500917275629788317112150848711900555099443630183122652047863130241952560061468064003754287538958956015474694101361488054901363329178026209749626784277985036344129704184824258365695426556798328860571972921347330350862027433268984737170851488842997564322426087023028160129372052679005788841083870407633327967411807153483940769916641965359498727452993494097891932452828300382207670728044196563250923827219459709097363326798763066885401101959869807166753293848993942613816597888648892348394654057315991353692393049873992710331326000588383545019434832870004310277149947875221980110390986986214522976765444484658737114695199126449050291084315178564522163921166721457967259159016209151716299364185929735519378090555987043501003179368401658552818211294460626255207970475544023179429306625326690783307305752811418154332692501513092209419839103276529348516847255638983364806974930356433133247611125942076958221702215817301484678017300445271154383080228349877169314423647316981271033933121164762669377622662388693818788126294902793202759494854486004611519861123560056408948583858627751032660982611993085114645965193805610518223196471264986483384748401471253785420285160302289017443243525921932082537081188030542894458385360467664745468743290901882508808993043822382181562193709908908061261720999500198258449613928250745505185100814660807504288204808105173749799193203967455185471102552756149712892603791084319178182532411756843905914558205146257002894345876677057696335534394073674901711190047717045990196383291926949274473760055721668594966738277611206801687511326982312674430175677754773031348145767393649554127650484498792304955436668472499002499693334659416696287415945502494160651576022083483433541068321054679226382272620772179560603695825501213320318361848049892251036866933837890154497885497949799060588113531043348693527048508739043799805449152440297358234748505894772541937558667374420978225489419421069061267010193443652353158967894814306387329114600005008239113812595051591649668694262942928393345550622150759159165752442017186877056024334808864353487040283913490051646491498428315220332540986874093895807268218238403467865984159519765668968890066668846105294533649635990094375621189509973271680457768367276757093866857657134294780312692584934364779490196009419088789122344165925547410128380134667562338403111050589030676718978371587891822498828748488431312508768733368827353049846664298479848748905686201864550685142825926584054386427589517372973664605470672417945557954934698230607521269009408708665781480399874782615750063120980590108787269864234383865213393560310752224810654015913330993194999167465980815908356609655299313765478980483586878189636391873877238303276295729767152305447630806002582310473188255448791902319394536017180500954346077934148984342190207720290978687639121931701555472822011195331942161300882629515100117046847438795027496070304188110368985981785248642101426758865267602215711151884603131233284916591906613869999563553024169582438633240159218713920156388503592806305940413881491944319847417131175518786120602983375811053825425696656914879891692523191620423864191656688862866094811167036279480391784577648925553423126471665944777560292034165055750551779755124381359353924001644791021952508076151292435925858784101118854661020765299621150345628096711152822266589135451007818281297856365360888069702908311532518211027255778931632991492646333539609523713145046572212945763697099997568177034552443122088692886992607368296432055622111189006376009420126764494985797012084554243804363036559847901826221149606244664247593571174679735011083076653586037914486778442595986934963285802610790537192517947821638823528663556567616726171043476504344826632797428666928748224423413894481428356697110278145388285598015071744767238529433247673962650291797906234176097192913536205191600214599980076588337140530938884263258033211846747823232654044360458292147738750569968529888831660024731794560163493230201310346797798210944082048705228314628384121624277452322457328894682345280894826887728445024921913474992786582040434420902127923673632687156705851276803626051964374344420955924249020353878422772970294913071567369824451511106491252127229494936329942502146755152838315414108320501733377702286990601067410723918358838365650409186982594472039540960423187200491748598504115075178646361035311225684744908075417926451933578653380724676023662270162041701506977940797953526686458299564074656028722622236779152734248311090371883638287265297318737302431722013098209863014049550676182871698536928098144609362287624171267687813078923713475607750992773302249154528565985625334482413222464186836144825560669825018225624488275843871875614162421229086133439983290727988558070392572115570700036575933496019115323755521859466984333761870629013163898806548931369745973573437713787768397141247371572244911071251853793278592288762116461639638374908734048012613154000286454370691163981756327042478587353640054734178758032426024972788992743680490218480283306190707099955221900904606830511889665296621054756978642422926469034688281890068714151703238387776575258024966904004339268131921099602771066096710003319649847321689967058295833342712016198422666661521364595138185228179448559636091297608313972842090526175982789321072427293825600889417618131967229453503899852935747806536625693418423759291403525689265755072143146771470998840408737494737800104673391702903489695753367560399493482491299360764531664498609524125614436605588196673739561909999944741603883335380412641019420330916443589847328103782784008234044976498818597966905525043342437892191634364606293399174738643105171436339568280398017935142737641692147337869003696556900962656556581390629694367972704356357711490364417681491122271779561391219066033833896874592514603826541722906332594112128258052695925314044419458200690984267598149626564625381800477821209386671956653132385333433040724979010482794245374573071339447731479190377529616497621818948282027584032262044922280961208979946171700568142715621513116125474710716982110475617126399506603191393756631941918451943474477751620118181849293929418279200769226073290132413700076797691886555826337294763000387201497563749998429632452603049877216766547870986010408430430005073292097195813069035546499803032656025691333473526917361730636319183807399802675283588180709127624723210191178304762888957397639557215852141879865861729891428454864250816277480058393365298481099760697541418040105927173578267167907881543835597308119195681948090973684052060474327207112126436838274184796445905037517670232920845959105981502960284268354128736199471405288730018678879100834024768215359399021562381865942929996426179097903902561227342580280559941891315842379264984839927705730345765728630387596807364400356148608595536654201008118104534791065787949323980676971589337372252336646348333794180165338096598263951785411465774840381802128944558443884770085204780723821917989571946672298438486093595759689404871069450119230621083095747180136429570605874951180638511736751621656464705298359347172490017686823639432547742870034737537580960944844019243435333006921932425081974242135462362373868914953566922755560019802266580563221183823822485618236078343873760174835843694322829925419053826704620840969743941358661676378534812696106750580560555805064016468019020054034801238728674149738150053123899588519197086542450857892194994245626695968477263113743145113986865557955043380350371137030648902889892708316953917772677943352021507474434017106140356060674260488664058124317669940221844136431569420987483887822813334867870369304168789445207139496517120710057173496305100915367059567007524630147608464097934529507736850242761883381697972810345092593543499886056719209895695902034675854350877973224548522960703926589644734767516009414031341035545219415041281155608609259972470408003346608533062185583881767352582379701393654145677892193317441299946669131980135128536378595749232266806053808727866786212680591130255695741971200375782020477843792341977796269814609600805915737186571295090375607603525992253376480315772764779216665746410342863410075214705388275842384064177423268857898550221312932598137789901311044614696327143646486598797129974587122111229312473682678231625689507504869607350267917483473913695797774805346686223762611781802882407674566160396336164716816418080974179875178250275652011809548501608904280838849418531829850711984013302311956520670535295522706669796285361323711415409744078346240983188331195234989024482723865826295834807335855017814265355448653750611686660842725839712618625095021185505437001863250811209383487274138683906667041395938013087192940826225051031038179931146981277754582991675912809017616618270162590292875731447153127754519235001218555818792036797617655571855226272534336699015168950910722161120168890329816398562183531722956077881775632317337202385918082436287961010953218146837256650020046655656155523349584008421474851215181197492878091087436080936164013710470899190273634360564725743122379980944301614785378245192313836415416825497222032501367266798517012626611117152664503031943729382309630658998289901248066043903297102645086006714294047585667216639740689931392689965421193154550071130946306551361960370139797438815084877006350740908723697480313938151593268952013797269405602948360423278257435929231031684438431374489425500729935298221255951194364148031405442629023894612136057183507768689624804449691301584654575732808317992965980733927196596699018068282552610756027811279020385276404370049147739491343277701680741581056926432523859555721092316935303098655737821879787050857733397065110157397009789144608001711741130258947920252860996353060896522237148941380007106664963230056337748036853423882474366462519123226993172855125483063928474690063420818338739774202818030091541948335427439066022729354437240704947441227152566842806831059874755993244791208405103535276025737527335739463810579357971991406063173400280320813910342848493934274795432818276653291732083957892211507260959077878773369104247363961146130162009982115106280584841508360791853831429176247941981523456526433186224334607809861403027961369607579300080156765189523601755617271424469695704495747712543649295457791446368167889373326724232901816680975325621493567667876335614908328688063640097875801715401150011069180877415044058252520043504634402860485665045689868841396557047493642858242679744451989687119081125366962113992993985479260704279121019356383939415165380903461869867250482371556204435153399166705480522643727371734513185628049653870485983597970664163821866899859704018388561796949192714762800256990903675151210472644393532099435748419183728215519780015698654967920210507654926164482819504987179469494867564521471925288424960737589388912172616881311147447137490491774446572051906643958237372237265055027378816923988266015203863111989615523421171415980026648912401434990794243107048017149842665144841595479795232641801020691607132371648104138990604230419390941323751308700696839271443238906551192634279428384083057055384832100107829563787357386896822607628710285446087163690586686563602034269694969366561033483319160433277628112170864889325711724492289312762733817576911497095401274623177578502271324730191756027646926517684478076811486039115940219743710800098873580235798157872734273995425786868806008957212778224277993288986778924530842959741473451848027868748631287909366529793932786426583932775040244413662865881668956863541941323729200654677959792905827705001607699911735617886088842541765765530158790377811778521949344309425617584887217423128289572811494317849658706289109023091325536186535692992091841772777982789323074578779850629248886322716933573224179302437364211553779786057340764329227145950679250839178786747352716820874971958412542334098420423672332848940217012179155399487334499619103729889069981493370275533153892893688158903385982127364833768123397818112699036247484298311786456071192028261359695491839221817362934012988618361631241360585305726333200651750884637439604927589586949385758862997166336973053373894343245181162441723344160476788670376549909268122560546357767836982297038193964626720476841605649450100978563398275752973239580890714221658094405216614377271703342264855072421780687258120459593073329064904048269183647771805511701005543436937150172590196233311701849436144905523770428550666616832507756121219347723609005605884747202108459893521328293182357410775262193050431756553105973986357903074443676516635542050292783203952483996406221462395023702530458739142349797264570902746424796673436232850775313141316935920316730423036224338576376682459978655876574913308423630977792476382746245865702504673576254675353700909037417495822385770692979244663780075786741657861785513234247232327265404474338764045511184123508767337791580566667530634304489457237988860831437143619024413083275464167313752867079857009152079043991353049832386245012673960089888531361056518962965952661848694948563836132503126960499714709037715888927022988627654482071114065881606778077875324638888285199099023031632666464181165141420709514592210473498575886325437505110116772311339313469533178347638103565069216791702738901993593515764805317603439201681818654709594637630239730379173672668629225740604423794324595624460987716096644524927961718335265838475934662624480430833982650374694465121049826710637131208468543032909119049690124689637468168880087371377059378521064696550534939388610053343105978782840148929124753262873522990019171797922950554372125820160702584498840349322251372341499299503859537922240638358975264076969100026028140971317611041748782422263910228124679750001225479528973652307466522183898294643683709971347422546337644151968271089233885417472616509196263181476545182121513413285666990956910845230762487635142342386074069666052881597321349279231882567893181714636488423931154218379169064934210276731548735606189173534160495881219355511595432835687990899377205681683814333345315314133140259168543757353079710654998745247166439940214467111135180664310176454643507919744845735463797812109973710801079129889554549495328301069257126077664831085209040031502087725866478657600155237882821717320503481128700397016956079716956030976973674781161738465458756470233301826889664870717195454063681731099927579015939743422894292741086849007873570518358292704512315342220725855056847211565713478562167763224085498783851146950504181994347009376303150483905226006360231369493549698540839329070246152945656965240319200079309830653220480052454022399364572072160332360563883830124906202383776814429681969862901733597891596731715752340497099930230463903742522826847474738621454583646511757957641001024958084891288993522640618525554257825857819655598308744219119506766645816745337089691826933802382570542945878241986172300880111268013013100120888881943369918198677369081064846940112937207441142934193042845419013534328556553915759610012400857246804938836847944977972370348654960928196328421932645455236199644808229658890770623232089864605504677304927828004602670856141291842294483364431422335901539360735345227837352070158174371689962628390331219729287604994852274290685935815267432304975460234336837038820119849631892022936449248715629062754136719478605716594991706179606029081342839347263928237793096086506880625042429199843366193784961336518529256660637276617834005934842507922942944586021848714271253328026333828458506651831242200706620702255990826741231320049623798499333031566322856771494041851249984549675828176769186021655095410416700070936006565806140782345154441741301111396137490016157659225897145266979534140867403626722738875586290275889057650734363223589194501972621938133477661373194341461839786518105790058466081313281407895054716827093630194249027342235487060580590333975387752625589605120893010184058970511182604018332668288562101760165354654628231580771717763654608722187482173316023833709876820280412748228569462722662544764368765369790142940317461874060786560154685402487270819619148108328765248153836016070989302633526088058766258611482909117851884992774369701459932060144317178477712880030883610797931136868074946160833915102927145060135619096226154199900944866547747933564198732845342884343131798131576477017047232610785469465313329031776698214007820328909270847224945754298758019585922578528582373260627177604274480872711292520029600822119645495011560411734224054200206828558418978241409419385973323887286887560188996335433632520993682993924450286278669339842141257491464985874624177969702386221361426130950244788705004468815290576435056772665154184378123998684545417643009781848893633321478930946238019578899526689946249997398667415517394063062184049181358360905600625157111598535176542858404030877271289997261932709260328932160255850639897141111110238501441175913291903897696728735878941410616331425747103023644617378121926185346536910324044231623171556574172756273259006329339212757524777444208295172048771445211158701596231020652687916702509702323872125931457693613499915302547356713929795637274110330932167441245501525154474363594660689935001520025219219663114462667719645831607945211421939188026363007176364873702823162064315894642978158756246861974731102389062030435842541561838691831235452609620719537353110298703021468842593292054244613473792618035244044987361454349763280938399685785907128539318375589737591895088408026395435798116635494620676330556384959065788280874057150603353051454165193121919279892219544876174756580245085180530043266287266508144674335051504239450908730812189539640243822257890162574391793385816994580806167959014941965675104776578679912774130422397541640146237040112821124853053726168462605544325022014360715473794865943964104976165083783852360451686796657036517829395892308386625160054906312066194770880235210231056535129979622953686918612115045425420594137151726847395648185545218230286358708706938986311260138774748419714181257079674271843747069084656430363115549606929177742563605417035313701533843545794680834529656733401381157545578395675983453674234784746017274725113559367677175279680015790032422894510149047956355291990764101969559114543228924270505631241592319682508510127802369218901157496966421043865380504457497938004524501584732998691391160427064472830181262750788037862966869090649053504413887163457284986256889598895418711554156719377860093710083246784791907501255738309334857010720001912100852840017266133611988567914506880325338440705276693077439171911340720439464613082827306303078747171334981830324279005129927433967681728488893005829507406737562014250023327355702197830037655871277143085937337845702163749492770599714255838758160900676934877434394234798183853208753697988261032626607816509256713161891487971135681775286301598708945376543157234149024594094850922222462920481454042430523700607613788206374626295424220099071434327980621711105238013703096320625119051997386596273531063272113479671929665442419535882573850887685396153030660995143128706210197456411910945643360643601778670213589054004414631418754425937992223413003851774444632723825737840187398595332041501202912641102950939002495831292548184300740739729745331883779593008440556532326560740714568912000634627778852594681709583929465138005575372896799897101734847628762808617452989355817641206857376797900874141147609356898622541976036797102721076060226584255177168073943627868376775060481563722068583633341921574239789393218380226919598610198380942260856874711276913889885739371956067172191305127947360881197476604562348163411585924368548382707102124302782588092648028968205717589519810657335285372906291368701725311412522640725219136760795650017023987834823804031733758748842990610496305081709186334480582377584007584076497797560751972199768863225380947646552710518973550572875569006233532879780740367367353015708068737550155816933755416440486877316396149573519926685311480713733997660701935919671199651999299041984514227127825661508068073624308883418065327063981946461960956766802704834759172004289486419114505777939818460194158588337232622318314952537704334124132797051099517366208156361288306264925119942691960397906284901310990472345289364826153838179339349652837037896056885655935628087362266484505778854292919280957353604278542933260916281027904199106056994465768073494720996135278313400805199299075010860291611561733574508055815359352922931318476434424207680652489162665554412593194188670085052164576164370024026553498320166856725063266268668758501601544855600275055457919515545248701567201298145256292416119991518781228604392536165517478969586581531794653711277484914987931872340706624696798775184483257965020892150980551606381468782084907924584060834851176131672901387420363735680076405845039553491762184309731962155428712475959104844442094583033045140650880388231566926335514248911043143784074188828794869090920019691309418180924575491421516883518785977444962260041875847481548802003159090744834522929882476692572642332224671297023587879653115083360662844467317049344398855413553346701732533913676416612890173775698973795539740598752179333006067611234585833777300158440990975462342819888814343754361554656550722577025265783176238594859399732407613893129489206192480178987963038775534568433363694213963029804199128202077551329237396742213174598317453935094112727685895039664960202782516332634469689402937121185938788424654254983110281995549251449029651994494684408772159624521709791875000006107678096027481929009165983029640320166013690941040944412713387114001257831469751758365479310422373203017454611325169475885728120555137004506155573578852851987525051599015410419819428672690133293401074307619348927201319930086140543433604185064421246227946622212111959459286484299733101235262605642657645077621570209422302925414819476694707426853067824393266116248698989923142132925697395542559945670326587867183015737752442565945273250705092192855761067300274452727307332727273905631451308818463903702394177821682127205323032176113978468405758979410480200281071825283707659132727708503929172482459737545691465679885251823221638489696097654823717199883573746540283892323798579496932135727740907848401496217102916863484647327568308225046161124754513727503189597715311299938371923335247415278663048402730615971036419865361803467829049176773577076764915515051227292100314475278712710519209178355042781411223658779379455906722902063115632848123894084034704559894675104765531984236606445894403383777043649344212154261030138020861138602677675665202856795679173734570470888365280207038985967400374393613490479268050765972155324926812250294467600664152178881494691108835218919766480333100892700497057509202215468255442397046560980969673928143279047012267983122711821604902345140764108304608442170897474390669191737720677623213980794825495593996763700951056948245948054286112404644503184506352237958463569320413285269758383015716233590937801911485164782703803903605859319716685545736106978280027962347744187168832702061970768831271009037998760668714051832544669639948185311696394877419603840778696680286510795400188601260596939296592945693509447386178315229170888106197680666902537074542337020919393680223713380630082093405766999443586172980598893759468344908902342320802307358393565638347327378438601086056108562464874329208600236893726853727800210803081987528887236457831382374783903166621193366637446882184226680061149290027216423164700074435105889436900456928466823215229853029797928275073889919499744016259135228254160539004309646570288481701453227208122872639274106240718229914165369170297211347059491659032783252656627545208095917040683015658209195049289802778100188682428977833388781149148138618635305891730065842430560430124752105487567525902984296397821554517076547229750596379637875561675532361575904309269517907447212696095950190807474070577345495674463525773380809617846719282112131353425511518259805776026277645761267588937854242813398433157767715367954494947934713706203949662135024003912356039778834002539699801686754380803557845940409394432205956462193819953545351470282187516807413785704505749448173946684105917949687275291053129068284304115762065672626219653088995894118419659701334794701210116297185751057685211705384389099658894769842184325165331074321265066890333951377451957560454774410286954365984660017007657536543823843151836303372270241921083581726427570553793171936674960308035671680901152562604862023122586615144674913090205609172904022932584277582091845376302047329141106504495916342483510269155153301417445714838881301852946225129783415163005904615164294665774052381334176996364229445851176567993988689917749459440354885227694216414421599946459733072824867087676906718251989407512536521723585498377468860821193989401466046216654763127403980155115539292442623555911860585675198903377056166553421010332991195447461475265729497852101233021117767464476259969174117472528461184521894675278297997660935571281021583735574474771825304457016182727592815950918946671438893568711799169240756704927783782618303681941544079738753538792435987250545256464400736706943636248138891786720332800439111203457095689872245893443072403197790507357452003023687519633734817519998988394204754194685452624893216932647837430039160859602572217352672150227069905184640955282952425382399802888440062167256795872127622607486235008917560114332404651190525531334135308028596387657983709284919894978458115507107319994312116456226149205649316920568585282307801858864557679167751696022774667268703705041178486958530097393015855766842329941124543466765111473313724567823731111851848352177582087127455104143615156870550877608950673794321186467921311659331513202373522047710959093775565085286917221034258482733672230059244823866430711698284199133168884624096632513927876610799282507256397857811646726767636476090485300686080209796314387861075798602356776211079416164552288440125431463168934314485522017609103183606888591462229695254876196421621936996661490329201309836954443162830123507959045324414102342335635545750757997789013235722404348146206199462149760738625237984026910007475360326487104691621043026182008042324981199382210737657495733749847832007694987071664803770483461890457878168560356349006167743731472998862560422209719034553128733743917678109786697938379384561272807102939011362125313186769586510245518389319645976847721364255602343596883423923416635227809114684900795196528819995763927245888648972254656829872683315554953397662378293934525174786666431723030073321278802800041542551232659356476926076891158045712993417386408590564678000972904906029312796888718550584150411037697671549291005063181023916342028009095772724755416398509426066800362244465214137888906618752000286322514252642351215286053244932357004602975102724212654197261940679244863619593491934656638263528810408272017055564351072438185407590845977848600635251490019433764607585572561212610672432255477339374826099009602156751269813214500075683764985768393266197676281814358934988403812052405840946755550143046887150903552322910118354201595892689048622136807744960587749879515065210983354068281013223381662477754483326637448147487264955198351359173289834863797064835839665685183193574145799939624627891139061983705863293388961422698912693314519648252419536618183427618619067934415563040035600294788469543128338543760759024260018998473374583382296742227240173995115529095718570359036245433600027589912726541866239418445554012914600385649159051939697443093880911502548076504998320193920212457519642746598324528643447134802758630610843043631768395026581234963993289370618694075190703091904094360517316707324382942742915363634975113243144045566109310835833616403997679955869401577681667268639848491941095134484561301262139288910117312166769424132809040933144699304257383098067817267275610861308456836161607539875970429027932705006396260361575147341823154525018332458324592591713379721722274432203992037659090303286978398318747013788311636201967265135153280341690731007287100084364034906452507744658878737034946998266308447126816522622160309176474037828492136677575438670540930948483919267138973082119182292692054184293029711053216476779587427129077852403668899124928503418819177562175235264809891880809302848565409946973001560801539726094484800118279026294218419290842800341751030299608396424712223564172666422471620111581595536609845817118520884194528582587165778055438874309867407913303064377428307108289262627842361613065037430001735002380218450643221449000148116578891259272021717614419346930040538897963441557212932515567769007367635970125507543248534150495794851945836725394727159481090135386329316714055499993789776144721604910039445422156088499863243117867063848862227906358688596714527480901743667014811839431091962038134346173741104339943062330718159376041036361463318473476120673728017386358303548716779011000847533030780863668160077157203135471123913960842961638274285031869423638681075983411419348622077161042222404848964472607051929469311936111468346700095279992620256676211667682518689777443043699216673968629673987497244056894124826405714793495600788659724318563758958767458542829432035817695801405952574773966804602356136517981938928507801080244548082134734131413048467957885885549164393268167819897952532869017859110819154623191743774036548359891291769314896845439064382695935789967702364485406673590177329644008438804831779390511086706984893172546013001242099196657277079992905597516843098940018889682496854205157813626762525255426438612066748377702660601938289777661736692178635973808789823938785946712846968533324416730480939511250817040189981083588665747931701286740835459810601932066874373090515925674620400539045101419514630770433544037762104394645378152738787075454872281234452602704356387564682806544482571021709844722592050674518763383471042508080050154478156763992971473475618790260208658277292576386915961716857910947142497458594413334678386449180377659341619725924522740836929566714104959592865285980490479619449539266202516646115992237113295894745513201026043109260545296678223478072982822027529738119998144359482017954502858819845592113618455324300737712479214850176838882830195412978506383682350157176936282612797637896400148002906755482055380286069096158190291662715244562597363496178814260158265914123092881449937385302063947369474157287083069187872114932447518374967371153711459628950594976369409794440232362063958628181550099019182471235999205158337339269158523392623227428105023613416826038997092163338380922831521035553872535174414607182268440846991479159007573109296849866760204994572329976060749864410992159808917921874182868174821198759163692970666188655611191094312336639280610851232563609537048676461965077356880388718068359953089980188340554987085683836127674139361409607227201371489626098783655375889582293388424629328534981512508670541992648019517299594444080152960071881008085927106481314329308146779093280580014188563174823264366492249967694122448656019571920691465065906122848937180936144281867029251905596038862082800494410404888785894444856155068952736939749920499940507144419101182293509607320898775489066178693253134695121851795290696547722184126535681368402135708384485501349702984846161806317931041188793193430323258660306756875794668008584657448957775005069096566628325768054206290110791316111770433310822730303225468864032762339435793335432447778113674440097969546054787615290770929697996942573113474546690170603774024345003351491831831101237319659105925450126485914930450718041940712808069155922999713325137665243951684469069681377956421259356773767075979247447868775183163725568816271028802008527563605233119142537575535557126728074473435318394544145449414788769895650380523277768177158990184266422805034522121502719062064224751916681436811730543042603114300829488315121900781248890113901324382354699966184111767284435296510892813438502906333122578323825543455581714683991508066941084019780060583862911645269862771789254432400090691573156249630377229283431061557206195919831508493742887324832373234034267204224676694458591040446311756806571329529572531452695620880045648100529491790937210483248468476071864983323691536240080624157853587467140707765620491585271348894362045375832011572104420387302272885342815050097597697061411017840971981855660420284557913390698970224928543834604928434633703770734901465363223648142544005390221571805946060581227204283726209523236724981006328492391231230390113518826154187707036876595663598254643602889294422818387317542309200800558310550432668163144606990032221834158816640652331043449127246743475330946088647649689586306036625349986138410279279098840692261348122289581961695454121422805131845688329850599870211410653107017567497681591404190891266066640494214592889634648426113955597383793000380574164968367614830464250593503448339409274282967496157487270299411085464067212231819955352292647205581737804070531998037833159606386668205005499684714054236033804558043115016782924206216864394343717916879264643177199697345165105823061208298829538006185276079640658891658169368517310613674956259075705101482124167762387785925121027167976288630663917416628077611364843041461185520464484323823414621738746061776270168643069161026484129753571655983160343128835427435292821435226375447067512050873952652953338803729086339626292365831508650535249911286045858793974780675596179899320133442918059467077895355744048223103970033629027225950972454804423353690427477402205969010887411465906422917649702735026823171294118169979661153517910582649233308770109052573581543243229863112344893213712697082732588398578335895336040058199571823860136092777484731956245597234264277209930375067626745327198639409925093022089759433401939871111789172722347834853579762404527289167478995347187170351291017799325572606570208739821926907809947344176503678366758091308182151849439929551267469620545605927311209056408390731882125076400362398317920886773899844361566622494146462626731782022705920050706257398281220974492816306254056151500838753014867018454008448212042266010337519731789198554566507084994678747557917916718130497071221940788739365175429979622969375434029085921679653630530021134799296645220101409172661937331951167273274151652279690883382888250424019552725851599841557208493596608222026506322984732453391957650541023278278812863293586423463248843388708473694193568489567776186299680486991647482009581255010498655086340743063107999089075162193840849033329538082320914130582623384376622105621607929515044218605136735854698074501487107339321343721287288755787106206189997216890264625496864687167900244168343341901562087722838614187860094423103720103247504715480948117571392667858782426391123325996808445996569956458160291862719582869950668804031459341272052177559915558791425402390974580849094240631547273716215330521221725745924230804957023211156836505063930358262229278316565850769122295087501634462310315445797868719888123881241495823166977677850088127994147439706687074373270169992845781996874250940761972632879228843231261856380829101419707354420316768669807210144266697808505711804419182153768208503813133654627202211226129204670295665953184592339030117213669465700502129817003034023417689213098057610565355199174787567581437371494291319999958387989400260218491787134811182445817957848310064686389764772541143262486370224364753939880172045594865210058793325571158509295017378517568713410438045029693340511637357976379021584298187942415942422336822574529800692557167184675948542976863254007083060476252039677891664879382161899717514959622642416899268575602798528893443472476988513877452737955231704321116768851632122566544899545340064275101387993246961559313079700385731609524202934889516720004245036829656426604447286887960903675587232867295238296260784116149993839011234721622623548698008790666373016715026111990165017951454658382225780741946647103901580390675631007847073227967752097835867792192624804605746472262286275050635086936796715750192052271113621218638799709545882447415456714977049537220121269812677790927758384084777676083427391234469025727009625965080379589778715229563692184503518753524009953183198365906952155734049981640318820756823597458821218264926695089510392349150973352828968286209612461812075884910547029236233970478602899015064746255283427568699828894107021283598313084682982550498877887186127437159706351557472461280032504202806252690982774074928122100140789349114531053619550010116353142549482461709595297110810759357077608288696628563910355848801138706128987930890321776674628848242122092100752618925766058285387768850050803946336087607909373787649798019982313169250459124474152555501033504323470855927594561683663658434236894054074137877097773665146852964373319604286066498337851923615885614548358149998532966301293058433147951241021458522983961305604769467864218785853092607696832828664194645490341227008813620326841462741960918905649566651059628717810722088225153638520644200914540363316252574896479752956420527226343270794030455642234861825388426468366320424374558027295670892248763740338763998818996089476463702400727482752291197330905547264637012256801958650080526748954566215228680602842620386942284878928662574748420637818528390658922874149664411238441458737545960101550558455871776743608388347105727809104027888213365167298417206705817652697191877460728008072619858586342273445353164946535999399551550510578520982307006692837708940027923383332484616528488895035847730687981406085646353409696320012106260549081967326377126418794200793538864328933954660772984585152065346510262879589377058211873638014312099693190888046068191503322889573092040517399372159817734947424848952669639735012176983650763408743408979584261691305747940426766956176079637351127820538063422302883454909472486763749785846445650443550254545460381229360152518382241275393743113703717567211397392840361724812363875344930631586113896293531489271032986093811192857666594977166396123801134336917501127564285540506512120277524607707371449607015609281609867850163521040557827840834744159184328938727032920083345434438077847121252354839978729412097750096262377978452608390610942809408055161373925636172808207029932533864331806396232819749029806771979200208044370877805517092981784292525705440780492046086520839083638683686104980079043639882721622899421049242639237832047240457781990797947626139310669849011765278568660487819906492098581727957421301477865576803459710558028391935690904782822176146555963476231303199678818661853571197989610752938896583157320312382410063426003229022683128407735680511086421546624326377437907797264208444972666230868183525222642484932752591309402699467970753661933751602523857304183430284066907346158816955341631500625331950646381992675509312806085941238495587699677668019228949023439507557902039052575270997511654570314777112292609133873929284674817261604698469337094856258367630497434314091109820450060781357625688798906433195661037851774293793310500009167927439174329776695040194919279861254103896593129519650310223637212849516299115011959137436439804749156386218707690074924879887100951863097976916777543008938879291293549597312850015568925373305856745159556241360429873892909290531606060326021962129542941386771987662437072169890341686830418494902062308468334249356309781227104735200166037625638819479020209370350915651399333094263705395998070029057119769598871392040570573631259832351999447430255350331352889771465543891392360358819651756919090834634063881125242065910816561071904091680689575833693264597945185946046494772283986311556094837409775017170661519925826946585211783186277829545976746800819664199081676351760532151566160179220832527686016954958702173362677191954948866333781802017132426820921101106105839058644590225485707107199272086070248522801739209920143196439421837302109590061894959413893830008779647701662177713545359214035809860375214557247232112016707724063849045566550146296966916568427878050253320982049548143195934100579217529322290778552689443946157073478316349085275411885193455129904054387606338277810819832105318799277635240694290943399609159995820023842408238211132693559892983479337471627620549424573655564177508632132413641473403514436791331982538924930206444186201457912720842153421651829174331845366522573410086993561464325806131658063732525448386955620881266337110706497811717279437287141480465694181748507962953778688525991579010690607535896359058230822613629331261145706613319640621777505273820242219068037622742611361107044701593613814660201767638130066696415925292325995257189279093252629606540913754890733449167576833825986175132211215405467348317389724102507716695554997995857451681262705991446136762588473174471572123583792573885165333736878534157362405100255992506356013251607111985879241611470600110763626517583198499366229647169470902393403699951683018208083846455565137211975964507212481888051075697471423771799822686117439565860513950706527263334956704427214452471938190341135601981169041156422244893697875229800383616924223472550716502296397558459447073969222670723312306181576813505094229040195286322708384104372913197308098164274510583116514031335569621497049796301785581977139838896660907843657007582187146109922165518683905780202189578598345229637480284085707562849483855060519364707439641651559980305785201556594348634823566044184747354687391245151436815989471730074563356766825739027515701252873696590643737148465233427693743319427333865809791851860064526404253225968234022267130004382264323812652437456502825850840305771008397566037385736831394896592769190385809124086513484702390040854524585063642308105524554066522836217151924355752601072614094953086614743614772209134064548262810942691585077198986848672632940067130887115069771295984216867581868814866444980081376209500980346041999158499199720259426054699543705131984345238871188971496804262634076658377840519910788534279742208313072976002894890072705970195537792630711597753312919408849905778664963393592002507303575658710593489903603820345030244344352104123978932762710104725390352797450576209967449003772691504357037223036474016945944214117324558712935242395688692837111389112515844675165218703591568917293859042083609950033859327357719966783990809593520278662050525339861323085506271468997000515225719535520320578345563595004126114054217122535461170922337720046441043026880950993504545590980303162711860628257280975101912184228264824288454276326861985734871413829254945705224026537667364317933750968068017480470307913087486226408092279871854222385416755777581631103351939160264670808923452995764399126612705144401357602157666632278311830579719803041626998452771803413383862335633245943874459664299794253704560002016505942259784689743132590005216821797434750830966086458750422368268165032963468713351126099516400999891135570398334802951793863961022703293449964842425353060358944705608227681565903968618216781142975817414641946432302664038498995474680562699961404549277758265797422964295315971313401983348596702794596984756266055799971320981867227129261957159632656687571400578389736092049732304775222563640081226303427640146056429232667916775535597756433494149718996132553909072143624293386775709722967910080624444978775195051209849079869835425905208733277678157102895749313560851994496440616522466100238385763521465271181137348308644703932905681539044188247949214909592070008601292223164556953642556100945089852966665240381194898108333128761329343672372008422473474275190808819815107903828404406394933413778474909631514902415519696048475009115061985362949836618049653965140046442356031028911628422570255506656267763141129540090974562975781062255993072933475567490205913206245054433192029429969805321335618129412306601415252239062268319280528862322995558059261253086669737567875516337002518439707988625329456789552457746145020036313902755653652356554000387408570726109280074886924464930114364526458630294901828832704297074760569213518101924498274127537654199317814212291213826520546655591055641724548936737145431117530682867668851078495047714151614610087234417519268730172157709221885431114669211798809806844693062020335946612160425712325429461510523082529062357187252509196985890930496630416261685717365015524542726679011242901488239291729181181280650580053420931382261397388036808332683057352128841718481552304734496362323468085406569604581485642937271610637577745686731870006658075703338507857325305391165843451766102588256683985041062553187945636657234827865455873197272843303038541872299385984732654004249373407146919834752612261038040753889762301174817147827497834696016623939240312365500699876966183777478735237693386060353212127926061628784077162068883605251726387621543582897946088063518900576982097041447994467851464827959746630877234912379263524583765463378407183643861370412683358684439509402044376803269839688229636356515484001206796636305022599310902463399191238745591451570837044255892981320164511761760312321566248300367826311915512174974681187376579606412677318091129835828395643796585770787534002281297536306923770387997428519627629902025456850876378211528806071844576906759375497255686066167806501111289191643318649209544248273441922154944825278908680323817041422348101652393439373623241600112866851760290866905436030971556233625769746068063243773252128647721494868179229021107303347319844975053409367144120224639740093382479961107338876985970952284506716136469979469423419606277656873583608383719463101105388715456545511297844781654850758160507652181639436326423204487364924701095907736722852461009095319538790864859948529187188766207477881788110164469838674412511699158082797106437508486634952379838799495377575002274819604829873372327264550624992359031710166663619420463903008093841225737352891178210995832986476862691909553052689745995887512273942944440491041491007787199530444000135309790305347619126829237843717015957520221599836354921801864521241184692281431520880344232672090769736125394010601908811198117262424881510031920292505280856063402663046702998368638661682186663249581329825051530328224040079133470345343814953135836913500568382183796620933735800051743258551285824998767863359761187139929993009169346518186141523416267353518033911042482671944332389345310482547502787820108045259776971565028495940173283829047600154264205618481305308278718034882015575508540151548417664473346512692733476911640708827769146861278530595048569139799934773660469204303477592612155785589824428176989815734272984478149812042294523495332995915592091894465127560663049116606088810087276473833547509995264098432808525326187613480704428418136193775140803226351479810796532549248639071671172326518823383005798198469220091595345785248958831501530310200719383428175524032166301517083922871362295539275281866299178136849630858141568148658523346292380543250482513050845837927704533348804107714921105193262669440569230534387112996748045459132937589321870386487836749212937275145403872876868498103364325690173329543741866593626254078910745273727199413973972994219584576271293746080928386863748611685727295366742268965265506166741085422906660232050406006961095539488153208316403490942014460009686284242632466441427508799041488541142101327097632344427144092234316118892244564267724767717061173908882865761524151180989919081263191790751318585857304567360336297879732839154470643040138286140735340725266001789898547275601766452511731611160206652880438174552211149739405947656049059597791177349484461986659309357118033073370276440227592147554940537548363280132542174518599173630187467593784665152203345062804786340167104188614023782693389392043875803123008928663534156867745666935072588796146727554359255134191026906137219643287858926696441409905112561993700451922562954136344830613053247054213687730534330033040210167849193082986695917202137645657859717189191777448001564120671203164191650455019794558474205812728007610948567548048092765415045430176151037115578410731644634412968802652776690249449730456347275899783495103318404520082335462842446851604866617223185326383946863280546379610954010132271673669713676528565602032091579764457260981729930511387303611337295279458642971078629293241081921624571999325944599271990194405104922314817348788810153826223514620449932375110913288600946111204931348581897284010867713277945956750569889681423364571943904684117539262489463956353083543594975360155618242828225830063881937850233944114033822479783901730891426648991499225332573446280183263215938371314135627537727042434087970428544169807024739497337382412240138271829928944255668831381546966390470753901943759480752122323106186839253853849542494589305567950998712874766611529573749810510075858664913555919478032174241328822239481289195507294662261014161645689424243248972082070517639642794350344374912769737860251800134147434478477370932559860505792046717235054319388545295056811179277205401510946520746671290682812419554011180836897163177228447548967359470887702924687563148799466379273259681568798576513067871944784605010359550467724184287838189992227558011061221213982067954809166424929400846072777512910105536060338849097843025129863207563582252047997003000243722011776476295513940701228936931090371445457652999891780320872188036121540365439351512755788574912848526124127079932745217349805965880997620643649946116378269110958699556451240860544236458818713688322430600143714805992207412845595665563465861432533628834915962949786946008045378247788837128765091885650271574278893627888913718843443836378714165383470549655648422795002657973568875030534368551127153095808770051787054876918859953077934297944850636675006768829086491082816862242388294954211540515371641853881665454295775470544963776292270858571397178916197398237012090666720681275228306336057722919727263815902369801128742520981275626628217146374007796314890662801745605210197651193875369538887392610168225170149618273113431456012972286522126152745379842818786121694635015612062965586565164303199691740722323752761173341149499635304238030315538922613788655333633836401196034278719261195158920933367275673891784998114535062207729376905628230889907738737337859946953404935243775681792335048848029005273682768333175182806567798194091037371923704640479857754564307931253228786287503732022777942432970880434258593756433373926887147328401693703484858184590831592635075809744394187452470932834711888487997812846904727089728798902140223470186110275335501965004112314949824069441344021094105841549163388665408110460923629928966381003636122139005934296873647620380681739874680167080655843166468050807855193926546865467356597094833867870234574104341782672157214358532203790804675260411167587102300333378576389193658783596974770807342489593260978203579860244637556146738852595164312658228648623234424913766426516372950659010945806384289381799662818450868306299779600365468034591265228644720574677100736785485206029119876643324275133110128080298177988754830558480125218770868320975366588854764821021346651825871927607478477865586580611922847378948936148091017935823769100555313401226482539984107585277862381986068720731883261959449332185239570051856888569000931122192915188446461049638208990623429393029588922546140768744942907532761564798326829900420710710658173623821049005162805738522423597760803896039325219540508761999658961136197017407827816397362363718259002509937368220588490121233463423949854838292590488263025477644559034787034622666585396128109750322784293029008088418975774196239420635827830342793429206790715265409656883220648778935591383935104242406452842413566179355686071987725553113435170815458609904076063864524406633378066229893946571464421148322098345926581450011211956761803741467203093239183293542752966259950897549607442159271830231548149788725348684207149971441149309916910602989062925892837536300971723019706026419511018712106483180732824184026425468121805968495263905373438300875249990523059202242312128484079491410955072817007151057016192229183684469683354617375556269902114344396586474541618621124751010749051751103663201839225146216079959521045084048276637086114868517319616567512799961595561833393151784673026377691162171303480994713214898863773046456316150294327519376340405309378696896158585015058755476024848918784150770005252186856135730202164505075525046901481417510052034929110005065346498579186174480941608780949694474099646655271956909516596615995829492251595983572155113688403558524147042800396804849473643615983479920249612152770346455166795229283652402739471920837314582300137086726188167077390762821569316228393295624540341504380113519520445975513382898793429066224368179837144392801357707690435763189696748851510995975077432878474299182138859938314376919508514902460725924383274457742950659090241483999943630235164686901543166226222254776942586770167682330585922717769235050318653849164988720045575921879371763459336759240073578762933022430621033528480416297604247193746000282924956514858622690543259929699038196522112847320217581679875202144132521965443385984764835914805184089765254942446678424409120326152307258605527504728197606454652192416489610978002463655012561382554374100330690892964829115724063401421405365739126164963244803317722264558571761536497318024561870015105885399571985239921217327789547480371131737677726500024708945296801023804423006171645434137815414400218616291547745850576404250407703380921649514945288869604080787106507184618216949754526146852628338790008653218725924493994353329168687674051755820603136869287556756955744790535742726248282437834711587414572574339604853715212452833040996789469455389292564098748467427286490396517949798884674725356144879368610635124194291721296836564053688196451833322942845972262604020134994507137134020750169817959204169348333668818704137407379466444820489063515669780780158695009309184020946175422128360748547683257081954088656793468634062828326156895253307515171984491927415317866606132116543467615832791994153825970226227742023507283053503595224009385378662138185279347158312304934066030635378432541065281441286157563269272914699337267291879963611072713769418328127744299438585177418432311386815336593991816655984631027076060167704171459348831207987411429035921222068906191042314560340780144910379561641949681789886065552588290204935280919971567589887581379435600281160819290089580336612348420214453798165914497198180029523889020405778775135116565671801932363076638203585015905400605801373377953241453624318935224976818835127557461933842139587985330106860666624924511775278980588723947622013215789652571204728885942041759596419469855436347701705953237076939838318777454368241182770584757950215539262249313089766588757414341187167869657089338603332547273599300890210797595552855868131247531203957313528958511731977389352915974855716734723917902917121040352154974143813184749412412786782934786009127298766247190163942063282532167157981438468642749299308839006504525694734853417759798618161617093554916092619927105841792316819199841730816816663297724182083596347374122600145480399620560413843041970294207386818950921262898790028113470998808394802163122716107789117955809603265870332256704961178156862985037582887041400346823977775579454595273267064783825014463451925139599979639792483909823048379764098088383514692054579528965422948260349983780751803286843195300578755514706734523062976787601932776815406483115794172187035676986703019721544725810610838600258163572047281058637846715425670221485236191027834652330621684757782658406378264153178544920770469784291713786997863923054751916643635278987594956656909777681600239537438782249448703107354413824017631046312163689139167119345724676519919203404823049464298648467435385560404129752217219172176532675761583568256254856965303442063001577287285389638487486740872805912321909311193568090212392257522446817811426660429027524409596003889601491612623609526226977088506562517439447969145656767059485041604316622388761606978460447135873648026205882960275685620713956361866193110728306392652621976011905641053239080387438910595208477236733622499041913784181023934067565845157809190365415710274039008381340046439423231789293847143239061517229216915423321465494134140572681471897276121034917658151187371647764089960101111701900647751630806737188611304866444470064374003678948182895080559651951770162631534214064382463975658301337670289701512931603224427499078335727698940874816047193792371212722002903609103435645953076355370445075219322203636484185587123586562829558392923178915035867878114458260171279880605015233881867776116191881274543098759707888473675312061557357407667375459075077229865449782319743567361248853385297990209205957225744114788781696757641087537253219684011221742222918458289070113304582263366962139092756302537307711096037059656880318330383803973646555543745572234828636709733565042805254108974838782472603129151227866768524002789284682215499877519326998758575310988324603813847149751495113512721742794743726616924504280460162656548522344324292843094750317691436948247639569505917490217582708449288956010861583997970487778081342141229108018970631481549260975567081926682912222966928462120115241446456114311944566354119462888366470053300366319701608672262366525754781663237888722416138835207917529656703318952790327292399148424336101782146801473636597259868342999983039102274197958441360350671159558121744749380278590416199790818225320343341092297062374097421369803626761112807848398543989403268858805666666407373305670659475951523920406115464001839368039988368585764846391631855269646982830841862251039138490559207806787338349277819713082683786229833199004463707941952589498155091237479577184473709436603759848076125902448815399898309025344920025789145914999214109296058444724746582625840135821762313996212401485658544124435124023170900787009097024033189662634615251835964491453994029141332974308634348848678627098844488458653534001252417770063390065453216714433402316543121410258483562984357332845657200411727347143364700269072998738342581394470881335684756474958627959416881595150425489135182421713595191710774547630977510775874169007470328437664518266863971381449349691822911207394994160146492084343043675358210845466841517691287963064393616756583463979174908346992502342493833570656188442639605654058734325880888368741991165584645608227681387330731718786234710317044343293075675619547605718760173992924414839996157050631581304034725939452228358969851040106553778706778249950024338560040510880690448433457023057207074036376188416622524620720826003083432042935336558602992016087468299944141844267247319192026270058830005759966377506910651122968053036993089024906057386286032048690555547145206220030527054266289272596207156341622173885609012040054299683226003685345613614534132792363292440212761341709713309154190085958504066817856023031171576350604279063323906330954536108592610602883778594255924334061664509204735646984464110493544320593543526383561033161162718881909894703039788513148669969035503858608825679388335726620770042184836739247110300782480116224307942704433151966598728377628626123507447795937237440217722459840994885295498286591124617270500601843296801591697798091535911007544079734927018717436194860371204401169915452800038788455010575874098235125155802193634949890054310446579013765919526091940606887409973199125212823308673517609093003177121737156754932711126881876379735561923157982585151674075309008963814538517465307905628875728623039650819213205047772672469797922702275478277336956959520643766943570132505679501987632159108699982226789898571125717626757926608615752572792735770722519601816587385120213335334283644019240620711524881164975170628537777021624607346394307506789668721784474277690593543284463127042252855516811199462321080489935357452215353767504097713882912876566009592945244903650763623884486307116513426664307507111863123583380791187819718821013186405291148756946908926594206311848788233373066055419705091176563273692659042798231048129294272083792469238539772995444581232646129262596568701626613174560755198319021163450508867317368345449529666224078353065420043278550342368069097033218476464838266313212027336663073003773913198699965806960653340611974295835651477962436839076144740368508364882273894934486515893839972187599038081995284233343501578827407700832718128193152675786701422319737059736773795477045677044961541425886461344274145384167023029845085698944235470739662029572176495667653779052358552274601600537612918917203750492777887492644573523463406374680559340942472535844590975199719729128190275280251665573934314062988363058552122278530187439742747290499544571883613759492138708065618434856842950347679646652149270951006761411423486458510031593526000084731050953154661821878879891946851535624182028614961338726385471286530401857861043872944903190574570399146492026635933652258379210465845186275820256023099865418993933605566218201767227348532429829572707163990357985213420098660818409537126295389137283582620780633230210882020756443226333079249209031365291373795897401074436350324653720714050729278393048804225388119160102829579000833370388591852212261209579408307836300987944312883561519164160390906732600330875828923134782339031482755569842861574088501272553986131893270812913980203595389588476273180720214767084142634605394323302056174791933884613483490511603607009615172036719109253737357024379021881351937115497373360425570752569317867121104713593069615785860098882275625344831131050494166152024299782744571666682494776130135989585208893844874330355595564884082573109680003613155648369220667676480619714068558513671736136970241426370817411001417690539528585155752381387212703269813808928734067194488605960965595014875212095228138418893731458258332941167926790724004162782996151580441638951500006920092548980439817432249799705740468044430908916611333769724609324931798515433081466545344433340638753496860755166975918739805131862497119287021253721458704530266914358560772491932245371610295329431993012788402633322892998247976263975020354247168981050649144151537214879020866305113644414904923767331004921056677694727263528072638138281761382400766600924783216039159220684619330863571692429974142845637623245833160855229520144339511289865761709035311745589579602210708819178010205748821109328363697681875919302795270477921460490454350897614773920706134961247269907664129605737660940015214120891016200572171680444355607099748075175627200493126353460014084175452248126434064810783129937492901392129977195599089893384340964471967416774306899278442869768159965669076064700441217385546409758641646344091957457519356166332425422795656340952187730505133156115812420382620231533807063721901202848340000475842882860092708080325333760999002692468659338449744200866175842293705576346464293389540139675452956450283574009574643823548046312482981462851918338831848137056443681143991208350991908928978392483384949164743944583433707679635298362151662146817280794932629470208676576524411697220122067012762935991576546575418020978650755679651299639493700225164843981174152685167195764253407134729778235605544032348279789941793188194468471882767315800931030030418536246294517468977828028196679620116422308761237593588633773404316034069673435238063406365642537755060350680066459981257475049434847864731885518332941161226006354043673601957208868036095754866623321366222307463042768749534138600031544877719262211515328709666702602415942166161415402913238859698849340079641592211217697054359962409547829659443354862418163861420042800725408287644995023080034202766993419613408008816479217112556702428251954618468811549141645194808589426130387305584897320691936158787051441173157769396932228105975804677567962507489376785134255401981012415697036047434321604115861245656123968767491084980903056009697693401509902720753920441912966955384058342769541114040079886614669655006654195783394691040348120476526746698984940006665614031265722993057661285475339268000172619480867832080209741088009803073118824766752192740351065607526725714902177145747789802452203650385748062624061022577211284100695812555720127677725588039963989495903393389405986190722982987514942148894633229137835357981083687836746947326004527123817329774312080477970848414845785991140128825206658045841879046447585820777239688483791163986264918605137366178034540563807241310323768770169327488045519288581214230404482892322053976759011604051373216622008801973399917282408900585200165545311265080651060546971275324826300585438339552707918324306538275744558228405406990171971098997205575817850617749733460862656526043452527508324869411159884439927370726338535932139611427631566654834309093119830133230021708603871011967717736401379669925271548958667523105609618820271302228485380691810591128663550804530089075506950383406147154604436948472753588539894222624321938776885727860303018873395734626877043508451860101109127401426913428157222074020402102755214882838219756138828614192790395128482888854391103267061038921406260069464798979789090989902913544132938573457747676015644555997338289202948164303494071243298421932096738718454096927582636008939010922670950366192755216903963601340726830869813221338209495082207667495997486490462258013659167379674156726259219120331560055168147972264899372337594203330286157199086588733776089025242286500623572277824150026973334311041931575903375226187611618523560603728659196815029880722753762110890882110779042418760869811622452405963891175852933297247043797927650560047105113058917144775539141955236311495890724767755618048996827581553525878223242434085667473675514199162217542072356372563954695851363308584642675051526888467041550663702180903273633353024008333085890368399788844128893962775403512233133833450709744566712585443945147645971015346459829435657402539859963288800306833637951265126180047780351895487868094069856101445413696947236801113086838884233128351199796691194103026146731662529910209240817131709617726881112804831742129635783242378081426598424500483285005393173051861841373995207029582943669611170819219725159717684863955601201085412161027111107468462771002209240227722467108886227525220123827529661346879954054042945325421179581747915900634038863318460590674681850491170444393475468244206822626261027665494619677371589555224763904236947900076755047133718318583391928730861791989650894933344507197627682195418444209748991051228595840443356705999198282814755455423945909075940942332897606620709811974695614203461669428023405019323808935685609189815030932002367635431666099851014218561525184952770394234474865483947273837025538715943754001543631201901517649823991712225358123136479874270703984701753537517734167451712439534919604066623292175725983699871609413749949662789635906561954371129915586790635835806069313212595894687873559967827582565537501439795462982591364606943968170643271914260131492230246016552343359042811746299584865276399989830467984112497276455734412589851066688188732241248829893035509930710480755784758242172710753067511560495167527222428606232561219758176450806166650062194899194343846447704984308003631258749354335000047031036263840338446589920581738670425279178672703698630937437309219964658869851018222178079803292648692070336399913849971419101535470281098970327119208176752782852966685321717025156439764674667295379169411794822411798738697498214281951062416028504898616566609077199247500498769080849006686245571049102567981124003417673469118030477551063089132011352823504258444076180879087214457378431795742526194233271092850660558379024625171020211002388136198171968186379626385013677204351880488637971950942412534307037570863353277212929689703289297452137598775842754862704134827858631588792615145440277335823939822218715783168125981613513181216661404505885260500310527961497498873742006431415967912670590155829000043067770593182990412911574726027850066172636610994977118299245696847967938338530850253710920564545142055588604248346966048021616880353400400121260369297121004251850097329251862244135166512610828291603670071873529403562566679754105658839322397864701284553050780873460265860330866373366702009285139957088199022361906367597854339087324111581149549092047764047342012401088655012704456953901423040805732008962443444709874368035275305282235419895209169830744386749342829235743887884041936215643815789990387972587953325276470092141195053735105954728926023103221465557262971405471049413997910438269004534618748950490591703131276423875269332778115623277861324303512699225339506212874495087969642920424035631090178018987942860618061194430982410944261026384459109983897057759599875823074985143495873643866560570930602453253584006007641443852748862477166066069787139774445805741454401903693999260142052067832802154737329204412491840314277636975068470772666495223536848585690823426462650662997783657224222605302729369985193069879584976103415539667597527117601200161705925265065260854209686105390342692084373969181656848509205078463948493039904678218654003772071667861790881559165698851849289229765691881052222814709769388611377093835281414020152879134693713177046710545108882966156326634673134165779307100870547184641939054421147288409025277561825576848791910015217896117995879105844411862164590232200745437352364730684152340996652648210629383067497898283406876974846865202957476161064539296696035832566312517400501337151586366726254203613446224762097670613645257342663325308175723529201746035458824366910942091225755911049061687440906866940852001225344316559070721756153113767207202301152908366696058289911126357632189463803553409027515533120458269124596991781211046635094193172128557780524348667768778162770173912983702138157860825383854135553603690359069926380986458196239368951209211954255679741906408745337654804426612119486145987306469497464627617961936897991641596465093594789220544447215693563406534010125115721262562789334849613686632872007889311532448629649359458050517371978796818279631900295337509565540477243831000064712236444150744131014717610643835209702035689561955583335412424058860837205342907386425415667166807071020998422814486340530208245592442029980355107989802366756376735778161938414485412416903982054763367955899430719831389317846196461568005254647647654894089923158865108925892496525803731391054863389299399780455725364826664312395123298036036013516545838230703664212908924766941877877583701684846060309301488152943555945697800107878618992507996652544708585988638043902956934473875543528439569355479700075567467253500702058400569468902971673882952001828846245690666988111688337513123479987067583262654142724950380742164504822280990706716066727991267902282019613090338552789363164364852303147224392258859013344144618364545783803557116699066120927156509242521358048107481709380076763047745811674400611398572509682048603405660097347592044463723970789625728136851222648682317988590684031551309123090610345783741521695126657807823199566802697506722161671008751883278873197631321416578027196960141221163435495525170096695714583383230544193531454025806274716041970184075222290920339481773838522199203854068167363661472142157109236342701580255844037901945383207684974753186473936574781146178450293680186341467753415120194575836167312703167448598128116786354745657268310696214341987655946103315321525891286164111628433572737610254384929404390745654105584486275146554659778654764246804129480205561153620637825733954878796153464619854546134133384250106597985704861523810519478559851482748919536004854605641851084562288508847180429712990680279738264724880178709326068495712951405151793273200868891771702912439843154264669875260364125404084070209023046524772113528864780075473939696919990726194968775049036357392508709270729154035161325279289165599990953934913931289594397873781488962391887314139813452032078898675299882395354361169631605437444796548891416819440531623543231921544491889394824395249342967530876627859444267917862961917423535410696467284923246302770854479207824759028749064827998089392010142734636087946252224599040938792704744524528776883123813030253230034174450148482572624609494919917913381469234501285747591683116458356470860547303409098320067155150793495553173500901234525506853529362060790993170123288242314381414964482138811708357346896571884297551363134783507434160683906776490146870827406189754779432811039736732198442327285366333385119116385154122870359863818740087216253272822651658170119045802450046890330603969492821209093727291594158044442901823021452733112774660908484209184434968671847780275398494280978900649317670786849713686940311689867846872950613013804196121051151632747421497668198290535048840056715473534803191987339705684995036037928825072981323945458048625075437750977481438038167149454656453539814951184425934198839084995687309188275940991579952370315425855720237867834506210387368919844662822417710387050968636512780133979772660379480757486307678473797161061792437406400119423707165888869609309450010364283704655281530695768574365316565121501368954117348333711596052085615145854769639392740759247334117870523067926647988508230922667025546849697113405402518741278856921858812765639863935206504253374702227621980339656433529486928346582128416891774280984518744554109091117490155361125028685031013611117436787266967448584444603300242332734569046564446474844522698656817706096230928322466632694091039401511456105360495578237124057004388219066461733441420665832953466321764831827592075365263781645744532871947661355626070813806079637668790002680920751289072406933629618200843683581451738642794345984073614124494774823166488520951643526800982088863153935860420031491340741361681508507134921643630776828287369422785698937365500474617809836289911268546533978741332379892924915963717899631685652857123399751893964205728791202107683151379539849518364298344461823477850684149010090810799407379308062288424384775103220840474306119343083950225155692988339938832060523306761114911331392100616157602953062037646281570396944458677835638158684850386565298479180908352276309266685207580926468274175783840670020976341247618817739395973190394002686711726850729385173850173724261060039195698352140791979364640787842459256687013375907078333804124376749332960774102250880370766357175931380940189117039631769205765548535489646187038421407340630734969479802112102953957098883200533113144543282098350272862364393651544811059628088260482291236310512758517454371327339915074227581273715844868960148304929252497033401551045824503328068638024771723821652528215986589602706758753697932039876918397924611913125325869010555993218376114808922412159240946957305851382521215637278826154265857170069056283044026120424930467697111592251888262810266612695050227478081589371018948867839662096943322649033740643996510265536149002564596632719734370112815082398016734427881383925301850473063854903058351152108214053600189010796662420240731088487951630529456314127901672096177139543654534361934991195495085025460560886136509925351674157865013203038398393479369188335489491569972027231909794255212433450371431292286666144708631632407824848773736433897441922557456477051984205160872772752283308744836415958026228920378604333743639898808770423780178291993989649818359209311162061836537190882726929183315338161782740703488431468546284532516653661951665039132411931114572432322269943148959933970645302797916782600705078761857177018619998480141977538930953643936919905008953354073427715129372174319577216723538344993654498911178810664604967300817820859339926928207977748199962915867485923870292872508983856119145197478811925351102713387444136631408537742093089909659017344537479091354290800054265086955975334501855580474348891205602208582462458060091930020476916726387602615791228840553548470728786469353037283514258437586359903127092872055196100696465956832631419802921698824062141339004475299006536261971078534865405029380758991591431427129941701743848877907872307684691539089313410005863465388461234834858907689646760788264313000111402360171271753946677433339038659959660108394377244572917992099259743575121606786147558261190993551884733163714067517638010390022868118898993540285378153509877715838520742123098460808919665635831997852755468311247926571659265323376417704208714107059859429403551992344943293682789574016289690485340166335894771665117680970767647174581049181745116307192466806850790708899039462814605648432578423233853375987032752513222960600301505869778773276488020448496705527110201524580563282923176274978876877455993294160066415882929950233521621657518750227523133263217467657658209645896203376141967204391994139881967993170924614027139980789614455931365052871696153235110163717246559984436593597822329245941163066491198089700543010959825082477186621621026950531198637719601577189214465286693822638112119604403203674655205579823979708429490006995854475726825821756147213172677162431329345465321906910038269242466421091443130245697805129208949733786429035006260209253947466928260808193465246694979500126981570550903148677630132735773435688757029125877960533315781199025134964160062018140419958726895274973427196588630147974017919672510233802711220595923370199780973121118853132451514202692887944526440533069897060195529022300890243357457468130465301672701795185559937375419136208126233297601064286922570946760448310619750465905027417976902976614598079385793098243478443667416967900471136708226202267409265092530963032721991133519059796039977752022325120891077544463646812597088894581108911863690402742725499085956837701098541329766926482337499322876656708321878137823461710386626466612831717084804219830494641122322484704786789139040397674174428520547769825959711927791389483903000450447060176958759374666441798677788970003804936951114269147200959197574687364466226615134118318352953331876050809665843025645365877413255319078184889819434417509540175666839922242985464427728865900987745296368020299322458892379380216179205467906183200333419653269623123830733703530953307771143566365858544423064501671540842414040943621978605679453087863587430435556264916894636968691049554153441183906492386865478993311058579159791036487092569402714332757894420622481172103047915187032055303158388699547414256086072162527298078652554489368746636180137188706260591002993478963544774627185605060705903231794292686313715589620336788167862110650283100233264796470434126178306458551937402109166174998266176914189061606429240372071953255546201296979269094784327293280152817021915979624795556451857339997911818948874615745315478717327734625047245510339875816518356767425494976903027027882713293850612952737009298538768817594028267147209186730945108024616407236920580774051715301314039034084595325556703094521119701895578420784436331625320177006460370000815647207219323960642012027192353606578586878393855554053667269064156374588244661733119987566561941966394823235185224813058116010347903885972791380575008534717913498450655197276147450335799863174288402664796314568807439661501451456138270926923821826233335713609511585596956804821890917206684945659957444573817291834977822516520239354210907609117370431143163455553347362975378894740199461949078918908104040612356322531744930115855506232070562669887426470995327708785911623942149617252190873268030466180153682469797358399343350286297067656293838318416451693965842498856439723845070249502473454468048401806387370354452520006335754566154480363196524621789487852130998581798265745264026381555576413947903720781812068459678151736395054370475034207726799596640087554685852979049027051384703974815440036145315521919714620016344363459984323828158586775137295802284608083839597070200125033887464158415134113740307692050864969042230268479425747822357635873607168744631668127363737781699117428841408702266373511809615421341443895385076829775413363264575064756964873178167202637736149574632418985376208786799200726814777316958321794425822893046224512525218862166275381266194485902516753699352302330109160297994021765102013769322217450586732358567487288386911959444203567623863514570814492784479196434235815186092077888613352279344988995495847486205186797984799227530724900623974057724191059922384341052860450716849022097531738715164441508555141777325455148894743937686740079779264204985940502711358957865618101396812947352940992942989458189045263763672233994470469282332210219053886662006765676458274839330225550878238844269341884787154031124666646260220781504304479358324008728821387032815238774392309422907840443451882596128023232366490885985656753814023281118128757114924102199062602151258729203424427918214155961022766958489766985213470677575990570078316903166981285813132623705169047498676528728640873640807797578569815756535250267399588950326848252023795900443906257637645081472996424041543476746319853571538554524510727745834559472722792982072910976532060198026292014777750304713456466442311046553050508304111792098814304277997969039142665921463182146702423862638644228906139259399153213769689478007607428621546577603984240264857933452099490547752423656339393502430907717594793266493693426542147427161996296966003487110795335651056642633745747019416268908514220857861566975463367962127217504262016446949584598797636559226486001617422951363951098036823366109598238377287585314290718868997882303946297187865689785773127527429212923316825284659708578895091554556078552678804520371436613170177204864991387473226508044005140697311698910480834986666470383643635522803299274315593431303066565456664336025275292152899807209639797834559588138427626873258073123272163117110484384041125907086541729538341679586616936630214903647655512446171611066586015447168966560673796594118925308286299976929760749292847726905461405074091059715379822507414708043846260399275046698416148415377808025516315460086529530450834496956733824480190449653010292506369321933728615049819107779621363974068213305438202248746348656662230334917412318216623899391429781373169522812650569084019392930199431710222264166415716780461949827070487986313263369575578827944340645627928556599873057526674495142572296721082615977513526116460071120923182417047746208596518988918147487024448598291150786539622824202082899899932642569878733796970101502880636537494697332293134367214834207974453795360111636378171334492134259232879275750069432068626782648724703414954639334306300997607316786077458035878846053813814455590402428776610382759902708977155768892301741010181711182572671652850668970857940954334105868631075067024910394000007948350295761990314184012666436099466118973415867160517680735455984079320373346614342464697520621552209951432057639287255971481403088214259906065644877351599218241721283021935669975075120247297846511745032443753248826526350024873618612476656965319199913365135209732882978948626151807381226862525860599558867014206307243237085001861187916731921625028545714142598782867376155185132294650458188497343018830242842671459372542216441979379588234565527981790927602934156553457544294105126985235026002439228334261514261033259047123302500789538359068795424394396287893811631068935651663399523461519317573991795457556763918483030001051481827782729074941323475879355995460946326411775780692860020587550644740708419402508635410932544809511826795781046958797013600559631382611276189871727338990503103301544175222958688420628956591684364234077237520384915343602356850379145568196446992595694017168682685349443460103814032942301596722651440387877140762612887564992709950960207285833448454349810031064373784244572499134991808045824042393316717047854363763111134756916319882043158939416811341532426120950220862927002497725546159296163837083679070057460977985847109707062503825504241362679482807512507995386064525746367539528041085115129819366155218565693644868931231461168895725415859260887188340105602049615497164242981642257701383551362506021395342901938742411853764783085738911688488719701900249768921265702944958679191276663612748589349436850615786417790973566186560958349299034633843234254658497858978653556169879056540634204683828815324098270837396261755327620232472828806762680730986034994998233705760031066534223559715973676617900640404168428033529530113612101396791907359368826867810560195006385169190587580623576259282992712828072722341150751699615089144274093329518453872166171188031999419849780102060506065377627387169654486532111146214795642339750736946171517083588836387656382419998869434465491145766631356795953279762859088704512193061453670266513192747100758336578416522142743782859174859630785999857311414816021494979430476891659351850878130744163568016920652290459643047213624244957208098074485185174596216735667426254010793923953970602124031966361806570935512246522967358543875997191820358079297590339311679269552483776325135432568479855846050280263647826732309511344152747850606713465741924858771859104716090730457404180746493867682430108730959240324635910288661400966486796945893394737001931663839618458213182226907390456731821107944454319823039952678654202964043870583374629141019638393892569898452061023662846914348490521152304951053227290088462429232613772557595257657737464111078679533868472680295246079292200472827316681671314144443963657370331143396173125894625411486311279834747066210686373649647379084284355005687572085742478606904711452402822204023572696639717808107348799391102943789449271153983221884049088840952478208477287273108026826713480156112753265337073330587978572411878669322097917958606971168070112795292162668273184468173876140299163958105644804841974774081661769915886845031925675017701803316019472370001128857091561582049255180672109154198747004155533573965028803371087047923921575264878136615136089512516265640575198294320576668615081466632035773136968441462780455339725237728971659007262375503458024075350727087277451345306751833773400508006984603232520994537461268967300373224685676572799235791688212434782728947279086157864605158013686031364284568659772901114258991149587429947899140637601064744193408011529421835760860152572639628213805214217927278562396498237104431692656451599669242353192449074423339759790852423008351219108458791810031545394155268877752159616094227209366516724985451774135140041748839146496154051820318817758182741949765686199106088649252119866225820772667056124257808969025450686735203803594257625477472183113491061298067034059103695259760875440482628263797890975512157786012851837744920240404761672867508002041532756044454349293517638534605384745130481697846416369641285157713226553339865955592745742068630833835365837823240661120063399622796056116396593473972459781235327918229091373598293743738941820982624817887293307102765528048278063835087876765622675450200419840600471229568031782723127805221161985641996715207734883561286869102501901108249974941671036288753642139106912446088492657654520752263593899181906267631095828821782646427592031903071573974367480210358683357647396395798150371351683468225480980488240632226297637133117523574576901210830510899673691736835507461544338555136411875317745037058398909709960066718108240133382779104302219820759751546762383944953956282265042146367872226223764806758012405651483628677947894053885049172670489755650526816542947413057573154465683450776180135919251416940651704898389616754329139941275067682852196602438499910497654489217682201934834199872984054047949920234554481792432757488095895069779643532120730030500421925398257118435144896527550841019098044378438822027881231814651833184580997130588098255579235785722666729438814373740633267760116820422966482828414834098019063820422088333336330084934890030012395361722708621869946905350299852564315326192609281394511259021364100490565828446484153327401353076316501419421592895862315379971203743525032321987523727266286864024080425847633826312914358167222921807336106473590688089233667339424959627700943885394255638452640216869892952822882140592578690087394570642747532834492239113866803438076659273921251887954230759126359995155059197529186143540864864082558767432225697544126796765807179922595377667218769315446915959458984981599678153200746284825693820488025828202414151408165802380196459424912125001244797174952250099814445234808574304485415472210523331676535918207278712821528792380104434719727814409510997200946317597760885568746065317176207430720675705749358340057935598878943115525076307764219754215102924108272013749942796634455226364043671548297299984160868127902023800372725917783456519541015112748506131361753275861698702033920456747342447255296406992625933989442905121538277355845059837931229690037842824837391212631611920603327158761079412030304911565152611086704879573885511825687191131034621793066985073716650492289265329569351636157602011569590843099116013530956622362804700067023291636417358619616999397892977371000296445356938902071841719842528264660215201023565458488092710943252031874642073984549891674776419280336914984323221462569248010525461921370936656209204952049641201005826538368274125209018306066529764432627185967775408750986064327897624379722316096083823149319794128606929858699134111511939290513760540612838578111984381916982714228573658969039532524336023075690549488958454988181956581020553316765817905173579060701093405425387438175431658963144842676206886827392464064452686967931294049630785553114548449724201155251821208981297935300408173496384836484471461089828277234334319177309668731918570803502139199408672259850776161885214953480658890639126553772522373084592891272399816604630060758813055064758185096005594775588985109090321704284513551236186023971828620500705142371753013559692305139550404540762617934191987803997864872806608738474636017617569760163459452934727784738546715162778525420453006462370430804103502247143012284226195137451923560251419021795769879002760534729396688407276826009309777136760038905931807707624484690355308379200603384371838235067369907258290268865059252042964948627653302204292102312698039014463052302495580073306920659286786634729660062506687535915091050972731890725359676236247257527389925014292448699756540122187182406142401381055999082928304669189380871053322135860941723157618350854916807024020076157132377514064834473506237928941297292081880079014463132595457408454946792034776360288425203722736540980831051535130583183184654202254949550823918079108380559576227085120145742957483190718091677431555604995947945710687553625825956419187474486193513103088149298745283413412950481912141498296570758271301375615786604756091386371170946349374394689113034837026994907678753267692645301977148681746126523902135062233516912470856504031872009429498305101165101239406253291520642048481980824249311836378589624447509897865584721576853250043477309694070858209965155151525887874834064070639327498713069560102753685982037595006062202896672883956216784707971463189604067501490741534290181680872796570709258971838051951025815307530198773639634129936477487345314785612030097838237575726338092975302243663253123898109205172259832012328984463322931040880478754474680205304297674082737565974825745646458953300361257278442710562464858148676932942389959665535601490792086173491684307761277175297929124103704747322882496135636423518653720292250496416142152524130442200979793175635948638757775843454705382875907315021461116191284228285189031739891314343652020502785724440108167528703190290255229016528223575504631589428959589180542927497672979087525197512327363694359474921874741987627341031059098782972006060982941442787865958352912385637653924564364747574837127527591021388688100795130648249453456164073324251477011791184410529949752739929901884987889421348054151359110369100987594643264825615529071120829188189643846761824435017653749705499058369226012560960831379670286734799062340414818286811039642872141351763504615695738134649816895347733792879041877242692815424995142430682728650636870658972167384351109320063880488439380842179695040896555014241980672818150876649386340631946824842100034156232565639178895455211359126935616583300694936240454084815705220515732216426615120027963756082276173196098165028031449423430298803016448112564838958004991634520654002373994246236184958117695592304270889408544131840453973634330776486909186675258019850912231847081192337526101693267823389266340200478049898686512476186041183236095016573925020626507306003305513282745244239868518935884346589069632015861111217395322248281367262554419269167705326284597157670988608382371512500258605685421806293878430849274872729822753708983120216539160963797685256576418348797163132057850288077118148651229424135311551514833852263524654080344521132603916897176613020638849731282704137863441783186251345140526493398580003946405301740225732652285605833530213180399656158043706698214967067839226649881054803231071525170039577366521035699258690716098931810979195872295870511430527801612079235931274361952455790871368749453130724616089747967431570830926270583892631343253967180105416721718992400281945853589141398206457401416321722823611881999757912373840465296484895435822815014636017738944810637912508944240859625767044857583900987963328800831319535261821374449075613876638828110033663249696178175290643538203266466146983513526092595338382660332653370893473103734865474435416711454406318994713524087152081349221940864010536654386321953815083914809294069287673655781037892504522603093045008736554570692927507753956450961714406898768518140395439667682850742561702333779837583571467430861020503848348961823684185741558147707296486745893965592761150156720531876831158733918618117750799827555350370726560835446920262415823015248927398979889795649383087702164232823667264278063774577257581448299833276142789764244114472888008610244037337196111236927905632456409671635249498141604853095444500746030367043169737257552229103559343667759554425103977008014399666024123831167939666253314597080277154329365679308104136168410882192826796934300286213380681779337616263779075114258732681246937304425646420363163124709088319970268040527363062890431961525939225258371732457298104937680250368121788618682923550579647945706033646230143823173057290158421445220716738666901215876984463300649191529427752565315342848047139325044182419963185424982025405397409631937582704479229378443722633429863015452521072264814326779501489345440331739021785767539947247080993182046001653633805040082487671182275628933146933703210605680241570484720758909872546166907186498976280621161871042779330617855400343496485292481592805711729513179036556444717429375924477044387555339017600514562510913175466285756608016395560728085315853964204319900570213496082425538712790138819240243278486238369389124164909746113162541640490518874407144675471011063144787312045907135929463757085762620105657239828152091737345626022876431276948559488946805836263936158186674733658376206579646512941332605694779384153616891894807727848988791000668426442857693623559674072795621781972065173129216996701765420969528743598439504646994579179533125445219100528926303936186386597052805341954755489051878768026991982032505387601180495753069297496312617674724990078179031834781656055065764224494939642708374594489549054684834473814527603477756850885434891169982439027877642641432970769832529815269326073510560391339138558973335274360219826111571867264701982986140269133831546242709787599338616983716426210303425310738896537589033597144527901548331787170706146127243638784013732414709853820048758104630920516243645869168231535100645699729113741745029845608277516687658423628087362313948467741664795500381710172501549952999663333207398579776128581594109708083652701669051214032185739265520444205063354802564403649987113461622183347117865004877868606338876952760449181208850452699463299813376263700023379907348594728988821260772525698368574790046215575734176691236391915453455090561236932599482750872732730560785524948269104855063561916335300949164648321019732935286903530853708603868515359458254511243350823359327253416824951956212510527517785322113851566561356592861353352443675304447623455513408219875222188099451211392234606109112436623901892460103862813014491371332383606330492972450247921057600129326912432815293768971171422668463850523318327390002968674288046669794779972840219634497178543500396606162648056757293784519141346041512861909970453756083432278074568665147061006276919452455480380254916822809007013290872872341444475019730263323870288698240619428002322625763591081570042361594495740354296655059978907905846829508024589336687803255040070620109373881725709091054677744606025528732209358019630314674612406598651621783046383826915649116275997965891669287956326208552032442209240076649101162660788631289286043187818479566327127189809558920264232839794279205824295556186225264314046914291957357036706596811600113995989124266139430778861210369125531631861677341107482132729375324386796771344963389738488708936360820182137268308998441615493166475624060478483998533046368946409660652814568530435420331089315983707734855832923608031520929062145868981761567060971667303832727477062699681381438144553318595620851415815985685343477080076320953786723790247777197358796769846779166704738623638793117030186185666697823193333353583782655724914012735888363780337496083556928492282912279895062305752785861478128113736538888254386506669600271277479737869599493337182921393935438544984293414048712709963597886439574928892616650610149238243976320703082347664890613200905304935600256102838997048156225336545550042324148617337217215038331997020609708822276956375389817717425426032091510004019783042430387736354703314494319827029899152078846724037639209587088125459122332616283948603278531912663668826103047371768103276796318599857325713301253318037851179528018000846564534595832671747454505093444459141376928895070788638621141363837211861561014842836818621253218537868219847461417945386442372288287774953761755980223691714622816442904505812931435558864388740173741013117450827128902924768262766143991015981202107333916513889389971353095015425155651502986464408871061275126058841008821474938200625167070506787654473635646254339669094795648001956816209211441222769716337234678566603221487383912474354145787760182210630767347557447298928992690829171725050531170430884992485293437875331474797663975090580542439204066709090365773419035183796704957838152603807345540315079305158825079511916673549940795412036267228476309001767027409907637606297412671611316196623190498073892231419016987071290989624552220213908309608462042375900442200381453246119665124328540810539611341905764623251313215501270004401699015481990202887772713643061815182988668325699230345311972596691790600246852671301900674779926122863556593935079375999733471242395114235289961449091246434448949783660343549758712095520552344146030458393144864380927241524518529533140503123013614421418115859192850526610914058409237217366653093832000505812309361540807696014369253282716709544273185470473982886041822836621496233482966703963950514190982601943858609898491491575879876379957699237046636653328116478443031831509117082527352104379295046294506316772137906465137151671329555876511863410479776355262869155584411867015022702027466628401724313930585348604647907602840028706982538288645098256700018779602193891288895245480471371171855586953455798424669643862430942851254238745452075567536447619046274036269148380904860448825741088799834125140554579023583080980089665063303536029983342685148486087902979940600836897802380444046304690059895086708496215482519109075442129029349126115783048993259505956818556913781344903040941390053767071890704634470582743099568315572033132114675318126884042181743992311855468215227584826360541829846560150597703518695039232785928304465331413470485449365595786943311983700382736562813063051025432580039399036192040701326950911999581665406141734545760937198002445280644807055315068481305588473986132908990812839011378002796316541529807016972111591094587015993029651335658425530072014175281179752435715191384031922375910262559063123309905619658305119412108795425681626730790005301948445269238198596268245575447990823414663863000926751017136918714194315170477180144234218606593332697153367935033481585652122085966165131290291958008675919571207962146185758830130804832018958855426147263521880591671347253675261149137163580907916433374098463512558704602977729603056589598094471392850521304962933705207283462814803870756693818378401554038076833347218288611458532237444847811924609744429516146102292068368539675867613572863498646586624091420186491752096928260637182183328598654293670979523089984887926459843926875412090879283273703692017339091247824314491861859566655774620137467653559759019494382948370728230710049322867192206085795256389578978188645817474525458145459675318892068946855156514675031221814528366665372446633839646463341203489689434232053771842740562104714033240544215508626212308976457243195511318212345184149186127534251423777335953031121129441393220188996177841035543368168483671074715828298531646607133498002429477061463707605539416022507333116217603818391052105316003935738466488736178615817814246812178777263829124239654680241630756465393543483851194030477160164141488009058989444557982176955467301283985375474024992213752353077371692579427291881593873018679479186220617232437194184031901092853534221964909481716220820801342650431155618533513655991774880476026648433871614257209047462003489634538281090605272572442842967240321353137950680728051289242749932327089385053853306063485086393934027876700521108607901949941866956514064240795161068075487281440242197839377570399648218996312213827561217682207766738365348237649792258517722672401452738566894277308924749951293821096736810428406420171065449518641741016492139106320534936520726619740911547752970177474265364636089225544415625341925811739891655491836234634530382499371793137631302237520720961032076817451685924472694448332531142613516621616830326240234111479282985569154225509842774296082777131656049408527368461449000940090971084588868059496964926452881787419107304812289299717277297254780957130119409812439828422574277821278781264521787041953649271962596049337271394953817615915311990950458850682075607789833941123074476211696579158985593867151821332594058907015532052625278488526813649491611114231860322238984357679879407972658166944603322231158095435982775170850740371043120821469875202643307130547387332401755210017664936412457499934271287936371470623524359203180536257267012492269178095134412109743539019042120968795788300053637538962115832131046892526406928709187350779729366445948194768779290543566587310734839003366687360355189474733478099999293790129209836300684757847718204869775808694291197347025385492883037103305723277359027860339786176575316758051573918873941212348916668560347802233818097486853608985478131887739493530616915904088866830868993831931279263152480339483334255302083744702984491974666956309434286617127204994836920544130324851319834171094169545482700615639269731682799335507878158146940551509831865676405048028490814617984060794614148152953551576478173326684840866508400946472821163278239118943409587884163253547940370215407760533804778964921582725059796593067806581959013115910362357188160428199160979848727492881334788461471048215261052464311606463949295679308370187546957442320375497785163053725475806668286478569264316562233517088546596848307382233123718212756742347224920658533163776170068586242013066434600139857815588175836646412278239216102559347450772886094414972247558906957749975347814542555025351648279034464427240885088370403008817854618273828997144823524920376312814447956048648236951870637892242769860859624741715846667581383401132484251758662103211557420259056602130852810501686868436487258689331919160586933548305284911844711113417754827471005165657616897129745478220315896240420411667767058069151126653953134820315951014861336308108540307454035100500579516220606980915133041285738186384725251008915577903831979573234985177364516143640622146443630856744652446563167701066889065109128977919628320935201668238268134324555560004719728088011724416431803964763820487921628038486618460603021167502194528794864767661137195353703585865556752877916286990634428739544863127505778008287061993255038895712606969150525737428685884731181262923682941598303402016802874937356667024813391683158950790832027343365662818037092822950225568782811113865571836377564449776825200731502330221999560204399435422522137253987151769253937306978379026358461067931590887281764987004227101839963958009503071351510355023386017749728405341563938134335027235641197534906139569294650968014841140597876118854951977952320304703599368280226383509841549471618282928967869615739739184175816772296513270006278770143628113096797849670311370766210862107073936483196663554337391963021430257917113638530965232674204085124936764847816713532276796393010456023795527479064998589689399827775187671501688147057687540404606969696771405815992181821681028038978690235722500074972949186663234233269536964896330870912448309613550034312886734499886405933850474181011917870292722328056580304582890903044639104046497573669999403943068382191591179332503436329534268475537098073183173061192154128634723904294027299280749503080290686886657649235511461978783631392052846597075231618100926615138239047419279854539241035968598225914576191172627473181273120720891979227793914118887553618456027868012283644107110180477137306270491558010438992047799309672284086917745067398386785428048704954153743207255894684445333127140553992953551530483767604227632592969262295495350459816441091496455632168256723273041435442803913171579980025439354974048905545244429620378875957421767125955008515436020654087806940469436437505583222117463764921692999619594214218130532904568360478653197905627409037706924783377390693593711557100246536612149603847484377599466460736607052513553137124486306919126361515240594077366471293310422454528111830076718832992474685853841509662412121635822525419107220866315945128152978529807790920815332076568440971296130643885842277210032970175248543937706888341916658036500435613384564204623901047650157606767132547378393343473215835923104378051085963121970194610453931577570031723153672359963961794270119449935601311025156979928528026381592209795345279198254530705898199353229713180686158946855268675937158327167624125360892663654471563084358147459329360247681757936645336439098818911207086976746123801638885439535029069760363144674767135167673877329932769873691867282954670498502387885803864047451711693885675198197845234470158779324061769533840534771854078331431900545628836272145609234149386962191224016957489451534854580994987355859177417364905187594472757003790691086147342801333545464540090154529918579583208275492562769382996216946182405652592267963615837610224287904065366459868766996104550513287606599367538989594757380959904422618579626673682828955295609112160061509430781846335959183421274180017671444252996927174322390877031317772472833065774706864612234520740023670155973441776514372938326777055929633876595551232312823845440803163404432823031124299754041228572497947383508090468705672459337437622830943662421242837557546165483695736392363854339860241934541338173445394153560242458936492915255375437672011462267509503521109929160772597022628244451454456666729681875289838924437683396896603470890547425553905124657372907372265022474863842175667683817527304388487829534436075759377935564528137655470878450775238829470773385130025922099614968667464618098590116571973021815028913145576208622972077304174480852243114904387524889503948871976813963990847861888593842346840835442628990268020092945152119798786413063073121664643691662155885260980922441364492905742202833355690573961676196762924171990441000289419337761108428904733382346233819517903643662121983617238968128452375237765546392617811232620305129867634381904867293468616981149651928140406315950129414553374187480733782221615865478136421360757275513031636140427782090302428298574831608811976691047954589836718464757018697989391836408790919255341557085348428788658473352309480177867363417520896098022740905158732425068956248895635723400448508762170155655023965223326858902858629406854612543084393155903641071076093061009096524661334659852980970564848002409595178055186231702736289369174788312143090697056909748267730573789607694077730935302769550022875167438691393804345094841063918676578088535889995729460369253857119533157977514138287429264647623784867873236706350690699456939930791283199952780824011191405393920255935628021220897378708773872188598566795478520168549721602739203443744289651813279717893360503865879803204408703384391373492905457132059032393645011037652395500791218506216058649331275583299972088492357822820666322238179592307923322882993050853951164944789971796296007788105023216929668584557960975369294041055942552575532777379972257513519217116149945099176177994871850405398520593838227003020978765492114316006502265188383912914088582960827063127451203397285739359191907449861324862880666010612061392814286555303942832678119381390473888404695327841968010955559588649776585134547697205265967066047247894499932246927861990817168068403531947784982387229258917932642413656168875993427818319832103412275844673944607070347358589358498063009376404063369864159398620687165382265086867994119201211520657017601504430924372724300168861238449743843372752185276065325010274994487782936999674233339540349256899532898309250903401260284702480687304082847486665933490339806901079083670024213582414177836403079773104917877341630839748346037804406153232319853935257259044167931455146819790248933733880461974244025008869079191440246827042161360438443436514949868662303982361065931228636077658042871825499522009728265013110048799445987107653301890547853609960937120425138696937754625798652598615785088003757871440784781222297399869813725509564232604003739874827075526670016182876607006020474532684282208387914704448177345427774367278108003325915586415119099340564799546755448039418888600237031345517201035596836191473593649929074652285341690895982863473469291914449868422570742664006562461113042176175495531405442725833095192193307583764643575616389317316552537941337507915223400860630522550861655983971237325712470951311700314628661548363626172988791603554694858798437826298014468544931522003439354629801330554357879736459091271708719578783757562150145348082938539400377995897118654172753922594480352482537593115779200914825981940219552312761316236856503548001727724849437056340508726313468487684592489163395740848440573544016004619241117950963595676775763205371136517284886088909856581311236162800743493385239340832349853611871011984025190495590568068961357305061119204957983117980622399042020719249529450542297875138853722025046075731911583411818139598450054290044337449367647765534458921289398565046208049488195498020126424585362492256744667383963157891795860166533960198689524437720565688205612073131176360062363576411553486133567952466222063342021451455740581818638916842191567290904830563937786562207653697671326037321567531509247042624968250027293914725425906150632634927060916650286845382872938714716590465432927298110283281242678306161973730292447731279706957380301893603154696601816200901037285704793203490220435058798631611713545910574725759600561257800043361461789335926888466977620411877158833917836074199869862297142109640052150697222960916034461811914991015137890732577858810240484825911699719503338322239154064183988566614781110625747099016711825018326082081132905096257140406355225995262194033665095726121176519441075504841131175281056661822664246475947483748555753417335832557217982718378025635978032977310626799429408824626043224182443435055877085614190212610291279844050638465900879974108079476205008172249525117267041592119932336996749062958850749155780339546238186179924705483982576447018041228219713478987457477430734754362224619831339935791733965011005181080528159789363706398818790749002273881444759336910131117644664391158214592471033589759503950601289924589996985614008491502634075878763001027756228643727272052459934161684487604240357353468315373555861258850971542107803540159286014560551689415400700873103160699489519920659415498211292625324095062730452682203465621569139679757653259181836008085513200319372002640592514339636936326737065302877977394676300547092742063749229255290134573754636951061276878493630569764186966224869278278177145812828043857504582439766207779437263152907970998331542757929134255234260381723783343344461821096366939902014048605923375541793623883777616714714871811093665445274402836509474928610637993209049434225772454508275761443026238416762181423024511073518542043209194111739617904353385370500123358190285410599640347749715991212149833577084521659977238462695312795325990646400132186350318834024794867292414215575811811127397412504766348463016428967440849142078321223765704920416430574469067874049083655206092578959188742934145485683765389923361547439324723322856373247272917677445759810549248556947830323154986982512502270996688497052623992711870595718313350709602917386713326291673611093835997849209955793189106892452325481864616759406569734045630560899606623211611463017581343744408571402911321390620765159865845340037291662785269558026071180755495703601281343470560916083592553795323939974060142543046413879775619499625238710529685690951066638078281381037806012381547060743970116322153743912965294767971004906606684280008463258916355788787977820806005537815966942928107739733246892876729238876384842701568975389614755422627055598526187377680574992380856162461563473563477915915023748345483886933772426892604523600967514478457294609042665790290168207146124118894616411711091973763939978138192085155739472488095748696846207207602593564489410490377421868016085209752918090653416640028233775129865837233319054752317502338481715853057008912034970440643140574493238197241884420970581050813869545632300846112467949523978278507787265788844987612439580995344171528012672255959320030229253102614024318306278711072621761408090133009863804495754706419664742183712697103279926371510689886255680162649738486999479658154796077679172949555618446513529406489467792398952075665728889422386689939652478581046608970025010254366691130847907555870169670592700192939083395211416599887300570362177838804476115804787554442009892181850777887933986237142926134656602599784689720186305404015702806505424541995562026691219102948856873167555292314349016055048417800139242473038889982577880438970568060302287698826673143464045472723875040422204767905626223343386886047644043117946103605564096868022315544044348150644894763861727086679939598787450474458800062695528781319278299368723450695188318598309119103870336528635646897971672595383625938392918253459451244018283260402903096212300572105159838073555796347566157950793748608439159879598996586085368213091902589323727748776929129989438310378942551910461689404742289386894534798316934110681234077435455975008321777801949045636414601559530490005974480166760138135267169316537167274850628981609183675418319326933384392500268389493436478232317931165355286128044938627361862179281081307669268641258012676721125106081419278806544304435228317755434641071811015209458732560204420936272673917633177783769105137638730637125572458289870077068032413881766212048385572586148779715126727901036524501766022088317294812650308143082168492684652507164623144918521822932508232789428065334660458554767099250360377698148157031496512785480632018161392293564404062961263224396938965270692084134207424178446908163517479774760005051317259895461393736109632082128431682256545335459211184611108141861061132851441503308811242231129943965240315094996221376241959552924924039910890835386589158576269109333865149210499326190161411661284857875581357364427214788145686991576780549484617885425587799690157782454535292595787379486479672896213528187097977134843938493538803703606417331273856308496756348956475142260278403441943438761270100425326290022721120437891352771849170892221067253019584277409018743285011341181591013668466798464123876033247874915216519649887452068350925134311519346236897904417337158566494788911746908701082630135129657024368093472973201752346176254437564704888538834699822324354296591937693930658078070031536044291329123888632907145436979579288515442837506607561716006408581787795731073508560271179465537729721070117454870894344301180232662617176237816938743112711662643139501339029305470121416317639567696939564213061864540210657128884955389527835957712179401086807346526621212777541930244943089685049878063596417990741283584317221268598013884005591360849368589986167686444660735896436698539610391143647058189506987380751053301972401472583056752807184403691495088128257417450862011159805730624877213426769595189077817689294240497990594533427389132956356121717142806210082789426892034323667158063788007716652239175864605566745039938011541134065820845609655876606428834958946432386280450630331888687016850689627903399263019014714780301883862717737576038480791669499452477658994027723727267152217475691789036385394477930277486126283281964598478169763428380744212698028805648227851439192125484566537984231424457814476674850677995175042021161015850819260088148035921839991229843027547056096367171675535494113668048113809072952814082597522893490515571043881964394302485291886777831358552182183980654431512713046989456279366105137545504453202837158942870191664669927046369456601529147189304551860619961289981043139546755726912082576588020167370937354073871526467495179325335104462824278610296625347403272070939701687129825603380789866710351081512277471042486219013495273692372736675397586401196518801299885434688354703277026421669871628476508117241292137954768805230889352929284283978051156570783786879346221822113840458086976695168698826466890382775133626551493982513886420818518901613446571145015963587270241174954839212897490925975888706452464012954517394166636930124756916920657039776735626873255293160779691547188033097662471997818673802485147015137937864945384623215041846440173041449627380020965885692414614248846205880287866110503051027869610736862093612975329672205779203492533502170651152613761174258614945959632170969912749408796285786639556911217395273555234093794366164902213145118298635495744240439451508753027358309770647699227386693141699237943644229872852629302182873877666660326471647164125906428977173290547960364474647158115416782166476021588434628796939576564012376705071709378309302601360281694033612219049017559198912788971719263290459998700694565110007953500587057618019874836595721533683211308693571711467841655600682969170864754821728052393823841884677071301660196620013822961759069789518464668343031348359635461687199434640276176288533449042976138938514183626412425731437414130508279779053655153203752216331708413248273152063589835090325496780455713284825983930350477336734920403354659806514711947065437491701798157255991987201976592789799919235674463610453267751787472970315433922552905039574183655857213473881871133251604282714621224117692432269281698345743152547332884188265777030466849061447633928284353791342200636127772720709234798131084912105666829907423557520740476135167366632320304232630053954581707392111358987861298439673680587266783792321332572371233029979561749041710235694273802048806530417067624863439902466745117025628772604190942212179823361142629902349212433718943317707169533129856029326805601936589406896372182665498009519729763014962030986960038169775576215993561288324485709989116782813494652720071065400551956808665943173397236292371655233235803765506890323461742080582429306990259246765917703722600078682041485909894777349841758028592253196789185632553606105702512555231773525424557962851223136497288197555941519898432694459791291686853238118146518335490717503687545085410902965730913136104731887139466263012223135001571021730039923038268363542796677078493301861212889797023355089743538436227520821764001950057503877639824901382083076526767662128044928878735268780990034704002723097780012262796122379389353701455630234359493154545594505550983039046270913068513515823348624053407155761288608381028516204362364971233440638727882508983914402549230647960064343518768582922697292285210427545738439381988882131484841556380980066541270138984927042889150338832364327375535886871262001445128189708957295556206227045497722172601596098948828154735325049927636530291429218015303755549063720229737955719806245736550684682540616627309688385384931604902859448860890830225419212975745387119735695636337922073848650889340954172706844739244635546454209440813710423670420991085613630743238773684792200575644933159063805764908027327786781697797358285783575718779603731580526621780985393224971816586393284058646696651393673425877245990782356104753323503905674041581036701596496932965641636496341851479207399410004074400698437830359985064422982238978359838745307389210996670526615281868382136187616670656904923601156182997238737453960809999634015531727547750699312556982100752209243212958051336676861848630369117312728188987949236262965746903662542812838259996442667041603712428226311260275471583045174440211180679623786666732203626247057659578608207454758640846431540888694591210819533412421631648014282275830887888713808827269230402134891688319408956479298825126985165588222975379195118067583750586875821096462321683169073909318583528601063802701370987295961083893867111761042186689650451847443638345214948069574222539186734689902512455877503892518242797917364136502244559376878231612810317585570551938582451608381021390020272548564024902909163222966139676307941704615419882175663640720797268608395867912082534954557905347928209430130781931331936781818100973069379180574177396588017709118333612082481009020169528428083592658756104897476435225289224839604566663782847819226861264654951866781062975423739101663013140997045842561042515437476091114143816068517415991582997457091939868676936119898918026892470726562144504326564365333440764694736330637248399908152307370624484626991134021429057921956058900706301326131514512214149173907272017498032582735627061993308096890170835582706261859413077651954178804420038225833944371975100743946043533475995154906050450775672182001630016626656695457702837252094709363528166527727783575066677266497262684649437837776043947079094499142662511827695258291911135378726960677051869979336502674204429531633055260461111945905058157349151160924069597266350877401270517462985061693483944177918303827932990430648796270107794405788513287094045692606313196117265823278709057747564635649147626825151984911043645907928830071045956060624512262197128678644036989842642560398093139254441482393991266812819850361686062744255764407752913166049537750277376259032584028780490596222728227285446413036869175580218371510999504060248088004970173648829078573117167191163909747655254224283527167449098085942435955481079266565425274285201677628670569687393971965645838091440339092088216997551304333946260940572139299448576249202042296500120300090197569102746128115663716915020421921807788403451767829848931521644424020581476277195559628079445863817235946792049123881583975061416503931480066530827934008841972788925261059879500538338583274331843220505083517452919794276351615516516026396838002110512655626315285553868204228682809456012571403508084116691179320770849439857430226693362899087622759871505466183564693182426030137040039619971977273978817633445949813742310611059606381445989661290073491088972625308569765523974061694533342001447857869287518323345604744747463438650133865752861859175930125426434604250165032020779603212443288410380988183016675463349163882499690336066305650118201756955207016093371341702840011302055913439015021122628402004470702615552968929145581756232016753917897684417745074995144607272023066346469529658830576466345692717613708214770327523663954872845596592747033132441407227253701919564204503145763925713732720255587010113645633060498040260869096854284030058769551781311273762549672494050507748453441165054334273481648499306350991240920215540797027600409251003780542240490031363425714438842914002684270580304325712293448831074275356884318167368647649332110033613381333513338236369887678652169059693057165008376676811281303434221486949789033662847418726748205132323256371745778021511465114034486170549680988396546997435691091089918616668432348961619001028811972623397927235702154851979284846553426301808770808196730871672700828991900970932725779627051570299459900372378703743199038912551529153306613128478876924632086033817323647252038427354521692476989707987453276265600555122671341354558058421533359992404122099004048706750373368160359830601077627299727164689011184982964665541512137562924214788870693763558030635471870627289848484151852247054473422752926897124694393565201210642840340500334807183984455882009472267113024009289203337337280963836086187433593082692428376923139192479409021602417182491359554257453234933271823745759181285894399008054438406500019077492873891028536250585994589498078900468446479806127201062079865726469339642989705280593103701107429506295814223847894868971673935589374878121254202416341119796092894735615773716763674657394801404046922122868879403886280980618982900510132274755923200995206766306478943568333498698336750364558456635741932931908459150634779511658330640713853442157916945455097439152866949040914616404537652696889727574712723649496978948301576585617596356477649225801105311936351057213842990680220239369558347651012027756939344060457576171714367201226548069909003280572607393172345503743658982730028446578399945091014837785851600308254027160302122511184879990535742891022766498799795414826646964497904976416206199944549530738035118203196603166273267147410434589703153909183809664085762252620023156520394878786200766631130596771489714721479866204087619347708978007737242073684122451088666665127380821248421104184920061888108437560682625512171521653233395680203503191733827549085427956984010627293548694633457637682891339142947779946744714873735136078438095259770229113584060540303717034500266191694274223160573829820599425697779542957390450057998537514421747393361080672934929663262360962156684179186278234785591508412006934478214693074402887660318350725442666044756593213448160390177827325315167879415589050765960111221278387899913186540821872105762103100162503806328735219650263539953982627138533237516927960178937971386959608390335757806914378027768328685034254693383433332699081340311277280870796242509486674615238369583507118345404725477717060951011033534691735876385965132064052309927680581917418845928296388102404025155511490890284187661212575245143950903561519527786594353770998273040887318847961126350897589695939753704635812534789647763519428827390403394882355711580812756525429662054180171784956091874111465470192843642638548837615302831899347766043077153174497247036134781185194129724896911460789106002191486557478830195305080552992362202538556011010777989794319802568380485592975456094517907621514766078314371709371121832659253131764297083303544487506174001355139841577223889063848923602163375566700367506924269399576295503326596547751166657423372484300124581497106671882740255818414149267811841897094551713044324747630650306852850748322134027050226165306553989726856608771228491726621013251599863826375161261072452001160854165279120554442000479652349674510266638331420610328196703949154883056611605861192667444864825088999269003460735720874727086905561654457813458137717494890018621779161504825686173437707764864241378660449873669374755851053292971455503504197376842908932100476711995920045560426186545260141444916710320375168940249172983191720185484820616512575474165571933784244704217156100585111078976933248901358327061865927358740177536454841882789394747186104071154738760256367835402081701367583368135617751433386302258117349820543286642089875367366059826261427404051066652284600582662238067094602315835382132664297084630662727289760807327264762332605332125980262508088000184186188308347383330127281260142261261288813698521005613226247886605256131917150441965687376193950601416408806615816353871505619543010486038124465238800732891229163360675846437103978801104377560665735654994657693600033844491844879479335203889001016191963482330734482402134618382097142241285282017750962664615156758763688690065530819078418477710192450267849251484418765204775547972704568909804680894955820938838691651481254596561212665700235624904352943075290452038826440423518754666848133092610149417433834365273825189337225893793484640090686755806434516275230265307830073033471042205485140568068239185946937639725206290179320623970962109012381221385922621319109410406643158685470273108648934091612421897958982951102596826463881774879627017422066546008049580811659346501418409437807094200707814390816426910581971881389417878275056919652677457792827673608334110966430290014612803161377104475427723576895821672620181188225687199619947625996020816433258645937295283414274168054664113379216496970302351738843083462704434703292677342457914673578241767135846035754162655863395931622118029571657300459197176849317053825478364096518755446285191660170888380211295926788925233618215400907825689160880005780749653513712828426757862680007313759743225956681511844351640504318469391340217310323249352686288764299839739134202232794376350739213707169960348067620505936944189748111857159236970094044131067371746945598057018736649802508073381032851648054282346630621107422281526265651965384519484753590298448696069076931719500660929307722836020055344278486395035838724309412104012181778775482189395128409256186424056314923765368058886935108478826922659762798948789618584506507962976074904122643768816180810286326763562171961958043607049220600892391382695665367955029828687069781309727614062946177714956386696402605675796905256908816233713874038885933573893690170451968485021988302964683567419382619099122497575707359588200498400193848020903011800845156965392853995904282451543518314745641688873112061465514071104615622485392553338724055274622031792872589740681814083476934108168086279063335072432046129115989678724286359175696461580815177600667566756657107134746035656711098097906665716448149278570510157299526717690005536335172202192536689644372593558053768698271368876154736629410019272890337839449016906122561930640571407204772872740242066269676980570557625966840135539830975461758703723380611435728573424712939350607234046811003234245304342431322843854306063607355014071365547321519705983439261615450625667579479183038679449322986515363105921423259827116157342544804298238357814150111565503546263511298124679785605078613879893867140746831990105545828491523842110172832199871141625958101853564642452796011641171692700627907277072404769750501803900353445235601381453235277121343412182445483049157045490222326210488326282724255707544236454919473335610361597591092184310318704624801447889379379373353532560166068248236473588382834001910010695665091295574473522264578330344518733700321460811285065626670362507529946073844478934459036647353038735982366743621981215743068412359869984522412046561241903572926598590146459366813001125238146762719771430699540144099799000365804561065318447406564932044701384806159277039510297584455298158584295800478562070602764690349757364348574541090914689771687019807857112071191268953215596105808893141768523911880870792203683280555584634146812976992315538077443934778539655684081372846984662889400952822805156699308223208913155941411021579528229235658743857596796955401450217754778685248153528151033438593216458732047700214659305950366783208692032252049328361185860825065078793671133781539759101378654330942928914830529506861913096844948652694645675724447332258480693482647070487698494302961944120474883021833902655267790617704112513815405788509104828961509696711316769631247232048838891808708518755931840509061412702724662089942640910073134554455293253292362015512024529331935479450137500213438170966458728756755357905045602372671971291112587547830246193147694561756106367013102204066554877731760748950429482810949865734223041825845431571527541213458126243510589092697396990020699412187221469189069179734802245232462429133701788708813871335985972840883423800501675519560015977165731647049658946554188673205093832996378461933552397654840369304229195284162742458787386069760923284188484611222401039039374368164842971710375656885845163332884471036921477507170787203209005271833177095518427634745630141982586463170607254060879194753399131683271861976217026371096098633264843630676101586799282844272142146006894115116850652358483278124382279223409859910817363881855078032585975940074680731268949344802179097207410744900036914537622023364705340112544218699892040414987096246362532931383327397792431620294491324153297601168256071030331937498782888249086901267578479114473534066885577144330155807509700688593149053401289439515088279256300738126903939821217013471281272938265182940062196620391074640635731150606970926195421554110586078612767388720348135242803902262263692165604123511648379527241154926566039552937268551060382284497745974127703097913085571468223735950794072290847769868510062238220493081120939304339860568288940034839744975898851754486701215584605104319881845775814112307572081313470217464226567412604839266655553036300853602297782764729143100740044075930191917059377601044683680686717616169556316645432223456431927144966502030465216643276159851108615063478355466710248612130908610786378999751224904337367556446851929012601875393830684809218546399574753356352138142425871243828774546281807577742104410913764231129806871286447668821188610434191684006548747579913926207061858441568245711738271511033230089718072176081607918726553692308124505185215084625078362164042042740034236397241758498982621605524391646158248449167201809049560241653133486735849293762090898814801550333472400670786897405215567204043202027821428249933467474696193537436644897284137667062222158590660524376930930992760043902122756885620211804775373652157264550928061320404682213503635908544335769192775889252091836897750252297998274762327094446350505704735582712200358257289272371694493043785431372811044810374084454376685343607201355794402304740129621242352850635208523444379457383759228353432846799967472505731540151673919613576622897807263695370298951861935167437351430565114108645368500634024895001437380895389213148979924169327232708817551508659524059530839603457394384741420360994624707017094347923581314888162769691092528701022294503678338839698629153477700982236480260626583626596348996341743453064685928363576344852669327543216195166826259326954168864125581032203275721965304877590958989531037990167468321519345997451512443857297874267214701912169192330497069268767624816156594185119034286902417633807035888487406152605646479129668773176566229277373561929670626349916088826550028833084663675916210781614276025951003824660772084057088473463932705472875118389328536215434764758871252902026851391238815660875774812389949295741694814431628025792049215780981516568483877517123236786953988813465023320509831733314002724654448389667045626756725269984216195935734987402117652416163896477477084825018772405021328927184752407034921060841100618882634332521336649434538219660416252452184008317713854668432640483061140028590079938551845157555019937741886500738424925205617154526707768340565784653613143150063247401003756168607270507395833541287919642817994651126997111751940673886220456357974702019147446172477044369043924655351457736847850118803772755086722611372195556411396817637893104141229702089829472872178237605483367990671022063427236271097635697375886682101414304030373597179754807073598316418863192621984458567381882505871020533898107420222888223360211353846795270461878142859938090448438812398234202575788215182650333195545267344287556397932335147199702866793765272341973739707969275203455032450008982672280262879841683314012523320345340754997825290850590916865328259049191816527241401545653464103113251125147876199910795887415435806129865400204670297737816392364010739697668083842436444198212487594757530924043145781755750577454575865113045416191387296872802614187573525723080967232805942132723394631646542870858827457207168556508127367025306430690266112552742143134649192924979914958821050542449424360091265501140782542591869899211032127397996936086622387408529158908054331442192962510635848203930982704371121138091025007282107573868417462453321299808868882047518759067704519965818918643451187167572019020904739121722167497733898801395167747580343959303820139410285127464465322022453389193609185715462775259553925941373972606139164990663527254312680937380483368563877283286627194310648363555891461139015110939422676596198044595126484791003269335388681747221359945520547327931264288943510739058098553214106776787008701155272130437226540471819583118460040089790338803809978724351097459966957974392102944893231970903959041860450660397506259702101159866075272893120336120399503469322062756977519192175272371418992306841734142620010548175875786888287334709859563196281748265441601334862746061708586425716225368885768797809597041955696961812529351173378899540772294647017521026092493904336094939690332957519984381629759081956269877840785574378379584476638964945845542054763564393354875880117859883866552678382313152077822002385975774074083147557741475349455646391406701778417702626592614490781886836974504145860120576465654230508331230491281870043941555897821988510792557799802414218347232288086316342609326653331278051213793801740523307590787120706061839004634789176050888421184485084566759920656014384972164560255919760675784871764382368898911854770008948937017912213060354966418634227672672497488079574698295914103924218905993105218303297605425964479945015251308602436186782288719236592991290961374403700478073910060847167764884337078357766851528264246972004832560007791163838944556212400865013081264679201555456341284346346516124739164649085123571492094399250018055641353707172963641091185568057562780895624613885282646294048772482310317889080244276301178907759692688979369665926690726389499315268072653593743487044248670878896997554539508196886359132445663149884838836463364432468259955250137795512869112909211157120524020428377345998868611364921301782561416467342404462835798768127841904551184741750999214672064319309323317424521800403679627188275766158802644453080740015033965079662926460493949632068586404504931231662172655782263413305921921593981642020272820871028194617018532136705788853485968132201072503391322535550835400858801436024852114114612248656532034599029468242426680078988019934107788834687180460422113703367542612692521971426389251247693846799139665386531716359683037034021553255368074351413267822090413173037801445524091445599004213020409910382883005951036348302782756989605682221613146056370874367339519881688398596264927764786883414782874643540580689768071140381423224987908055606210760396505652938738571654293163206545390011422492322965628063143884753643997164626856160210500597113856514804229620807465923123981889598420429458910258884598978623607628077361763322773003762584723703393851072871707052954161856132917350222837061593491646382382340439487976374820195099432596400029236983506463133939962372490352127314408448558286190464360672700737422525851962151001943293912453851363907668049018376366032480546123898407733591905948037027283291648900388304576041934671453684391791904004872763915565765403677499566073497671698689443205297440360217112026901731902651213519839658992967311091991214886778710202814581751425390303409775464586741636748517317554386030453571714826301744813650733645932760525458629136706890154426004227341154321464546730689914668862819458813619619888013912613601528827420730243108102127001916277723863579725830619722836270607507147560481531706075520174991476807087050469569515221812468865435101286744815969130553268735119921634129866125921221928710531997193352569701692816059860645604477430058396651885970027725867860195460854856599728269890105208674751370165548522176255739294867706075113016533605031271272400873296748698906346767785758435905120879080122316667961865085077907757868676216236821125333121142677775855345589585831487084776888850045705180013821153791599612219075166499636932494746992405401879495231123029272807930816885982086444437134551204807517075841045851371747972545116418438473757254606886731598923068963751781290109188903002600041643367378713780313847107954589687361490281417290691311679468087137569757215022526675881708979817779313038850732944133270383884428693517105779919522262470125703311523885915964995616740686905140576752560178405103071980944497573859592520396954080449186216022269248515947529486290368298487771142641002542646360371274890490801688627432261412539315575593390170260691229460153474543798952395273054941344566585140647621051927076801619226167781193580362532143877385520920884715131544165814647326910045029546394751420599426808392388719679198400015834822016801640720712153621132770357859344131677487096366020502581174486529868664480556011962146443098559773743801132874808913103178931144653934499977304364264003909767752562991857366613501905673381325666808189226787792934889697849692353111235733915113357675902455500257717891455786711345919768591783278933259602119308845768531547282527304512090381746690099303696226171171737292566444642469868105534663731584682562087232554264476628519779838079603320771042002534670035127038033244784226336322259626090632495579680329573568860670130224178485888150698602346611623387708785577934549303269897224082898143865606250196923734118515846262707732885264664861585541551235588006617382490867614259196880647422627341319497288858972113169317172984269136706060950729034610624911742423895461513549942902629700982213059459652425721961686250244490895592578854076632807791738273125740114496359120809624445995544220350809810008930685209280421844589876843509817861986190931226763659012224814492947994952166949750480614779172386392463955610357174489902225378212787541087662240224801888618357846266665981890316459759935235853303000196323617127729130445941877215917433594099912936306797240181821201160590099608427528575391588742291637769193036530770110457245685601982397740552232117322940761792697907048987330223603506540949166575493980440994226965279982923319828700729513304492479672896048963281838077477168069372499132510623266182641860449313825987491674449271139112255065745122548157466786792200900173439897793838526179493883717384433369676064650872315742443636642075748702480603607570752608092824280547972976589288114395507021031597550516018791076948487672283667200377501188306459403774550194313879489497610029624268021576663587676869394671240353095124193115374850892566845833262624443442221556305886479559079647678456943413327166405887468490990637220571809468742566092011465304291044713277583934205008353084544946457816747239433560158738199733556623125134467946239315394172507459771731057015746237679939421907501528354341072248506883772106312681164186941354825933866145097390776383840025987451500035485098240220105084352193602595208711123749411297694738440184389075970086384399231157002284483933787777325174067357845921171023455142115314716228087495126413732729427349738553284270490827418285285451245793169111387195733197848156822704441064280891058884371136338982484756949954892482601880030849110583273150070830685717876669116212112710460821434832327345397059784729768255320792678158772969457574075980503850554285296372741111600329215338862275632286180986934540340314307018176332608887510378428772363235386342913168459820694539607584604616445248866966731708522338261401825105189381230495798437778450974135545528084955448112603017208900164350314309800851973429695077323410490053489070939625512753519625195806052883044864651122449171271656951715346537192560248005858054597686833934855963703891916045377904890023898416555908990343763090393796547655879451140714086091015037720901362537553131503075139913735573379616385355123989100919993357922882873504692362420376716698538552965657176747054363733912375539402366712239772661685321784556330535953703528768096368850755806253095383664319094842234682426750788449211816056408220150644253809789993127288986070076684429588833423929678512429126261985237654533132777945010579625950516754284331968447957243112950631369239273479569617773318437791567281048104880799847131101009522213283593431991016059545164981905120488175191610509207233287832073532482564288413448183868374040625950940506650324052341641608151413888863791379823247075129053900784179364350899553674208299648813840109469593709073502097726691291630033641116576259989607462852565891099524196272970940832060164489561541945823857469409369355889746903253620114103372887160062408380025199803039785696539323512268387156540998207023440114834443318027682261719363612135731605088972201725588025007604654953956321531354838244226170628456026676880647511627964795670327580796366710515134573450548359004979268841280806599208172974616977483843856529905818848089643093929729583070931440839167200545637442386821744192472939456493381632922288147623762374167087166345129426977350026058546830526921595160200930228978012543751829409930174890433355904300371405286846575678513791563265827518687340326865664142087749131852985268253207961448438690092791958325430117339997841131432466384859289265269429761201521911504999354977963232848874888125319967886504714933827489371909197999166104422589786703825507615841092667161010999240059108595719899782315754322011842972211908676491645301124518030675458283232791562478253923341641038036908590902331963046501945283260578506763684513887740637389237051029527688950267460142080188966382937661660768716158931930484156527356106421571918761117825373260283498460647926121505574192476467927046522291139173072834647648882398796451362392475683996906561157794387148930627594253543003257684499506585380562283392979762427232183268163323468106143921397087395603369959788714423150764108970748058507238024201118849399072326701607874055097607488191753383913155196672940388304786264712948331646649353818913229502699411988078615051353212062536557558388342378268819413177320916738807629704448098138006557850712394482613388153647644436088917046206182230759834938269902532169337101366194921287426788284162548943524974338274434157943964781438755268201353775472810986036822419196812554880779628203016526135474591863738909156969409910061556610986310029585234586816002101646996261730487053145127876675205983324756123968909418884247575933057017239676509283880794119712579761553322121268493927484451281511613140672563163499090644652832872760913561066006164881670908219957330659390883578595428108158894731077684111488706048517299074611176254022435423451107886204321377536982080148066444394098147169936058293886500375767244869816114460680830372312764818995842607172726770407610745275621105503565562267579626578970314466548382236285657398069544013628358054068726753423289987615932646884417090883452630376769915727540965881065215267467996346565087426699336392521595082344156093929479047330757667259031624729565807862305204406680121781637438974507932795288844325746028419956377836196205271880464413976037045307262890543626241488838405621085929576970136841204439925123653768970592060231336219003038235807784582168176419294023847394892033756313129539882964233825189998269523932574013874987100008807616058510472645059583885593654325790455653240796784705175689024312248801098348262339398637289610750950225715469795086138282006397501065320303572628589820357637735682569104979691560915527365698632041742747319937785810713987774768431509670737563720643245204172036589265853556160424982293013578267000687782508855578024333083742988341316001614358089879218849843934991995864165655975852314523367708562749591926793715227050779267586340420392140635546789269800144798017533984506405807087310519510715295481338207301419533321622944021914288245954366561440446331187600032858158720024160230394080203793053025402279567746023192610931218599359050397998962973552851522832145862983679768695179262428984006166086054451956230504142087544462052404294854115550152216620282405248417473315109519168337725715673127947649733860579218936831326475518331424060777000746254294299808613646060010135515880383827046556153564715110320997372261131812233597505838196336499815651227621322000159545675713623358135668725923039118161642013995012980626750819514462060580631289686404619610875663120644422116552155680098139889326038342345229194208777716242949963873061812552915219722097581056667103738863843301024183137392908552428551847231019541390902040957483767234086521410797757286136088620345363009122489614306654877069181905599357150280526091299828752906698782882925948034745032129563315048017509132651137310693444141009940335082876845804822193944546552291156659928285959825785592236567533327700055023141451579053964893747868817776344875866954819779747227413958572276416375350232882642891067069024102487519978447645766635591446993391013951570585947294507194175615140811502613792171948221197811314686678266348691844550791518220245349529906810413179204642978700153522908953569883611683666731516726901628015542050529618898847203833479809040516880938920591243359488011998306494947804703138267126710482489614413327945961940516447787159236279202618509539072285190550143937721166052770837920016334478363402051974574421583495710741809203760565521551513862554240239970233777442362746378900962372418318329986850722560409453969061883172741426527789398841072119444550582210225422005419547795896225928364536873117896048856346274216066496373197773705168156827208283447556175860438028657902706988480228327873939413940460007595208361568199546956465277558664426579250681015659185809313156594867650706938088876876705684716475921617623019657732370550174841360837543023113185366334423710068931139861213074867437967183509970214159513831953521255677994598298221124707578862752902420861423456505343392499568434235744570452040576360981798332443251811620324777129059711636973435894869100217915890114752671817296490545402284543474639799465318226422582280996005564868764538253018690006449863049485273943526855828974944765228821402797404986085747219084586351082045495314084516177112666840168200828293400138294909977146692977646259290969086369545435828554513283128103456031694351305795687615098281316341791516633128232817481808331545956661283961574220036402541100818612564278458728407304582205803565082677983264153133667760585170253359035250023195546834367837884300758130066014084097090805448487764921073987390287597322519516025445293853128071373654778660817311027137520625547569994231691081848727785891750809569729604904713858909971837141077266851261757566904620567877377410004877807767952965900616591667030475634796107774007182655674875203764379687607512093512316474190989009776436590565914762750206249917858184874674122536003616693214015710442961810407860489159986392231199402498309403331400181979448150886908933925160788098776502524236080137133743288354677987935885651511051391988528576564395422788809669321368103971860827394205218199733163494263616517313198812397674530003005865797225306355675559359386999050097926456471709841173363740802295906584713407148830677192567166003224608660150572268689148752844156863799419945703640983925197425111196846742017722283505447091845636398528205002674935372802656674781424294940141361602703979397462436215891402643829619144201104878294222659652070199589593635150881000513160779249643913247782458632990965824575974060994088640749081414095581988733598874003425083190181573762773232835918703601914702631893487736971413185265494847781659944259147150027131371222986948333230640164221385623486813299167754841983329694506537813709855612914893410321861550914878000170561213433265034970177448345444921269157487466246658692491929925629233297582604524076678540570499337009240247084402348848878670376720958273575237138775376376854192232574014758622324195058793345544553769946414583879114383716751469398230574112084388638826464517383610187308253732753366918917431162020854310444407797134750667818489149849822877380589502230301316250168218071771863005042825639968939275350324817412829244001782754973299462017095848462063953076804668992129514518348273549140526679065697012173806272579469411115785036720682635625014463335005576856758158428005062071578648108490868219349278359580431187118370593126502934088271918482337595685354449667170403516059603854207483593987815550933188306748880067927223175110542258888535886953126210832935550083281690467687211419914057214850863540892526910930474986402836488232475387182099108535352925488733436424558241871125093490075062772618228211466618325738815640115123861937284188056129371673062392529124157561257560836039735385102958142915951606789854212300835587708799216272512589445148972250019640455772831502811973747244932670649917183039889374810149338925448344276432107100769301850339427157538974189748054766694369945054667481820571625289204087042478390228460009510122669305906627913734964405253069275242031323222871301657190317163860186340003005941599358432891460177783510362860914975257671490233267301226628666830930451166903893657226692452310924919787735948810537524299970651084946210567011960969423407524603387484337258833779325501466547497517287206536990033999060011685462452530253433571425891569376155898024888683040993944304683896016060856272808941103115606699901090286395705153511194421776736091544823174120834982520899657120857283825137224453593282713437633728304731794121004949160045582572307032413937053638003463360853897625428166076941732623000974164208897091651086103459726411389707205258332672086624799238668409009941298647071334006301388626664895060600061035477718587035014084073943711606247748145697243486843092817435150373174510169419774933506563949186053144758635297486995265140489588193165524501782014803313954871688197373281392943417103763058459323426985358064000593381923034976012443843281223335285458452274661696384112142375218082171822996577923847452586121950646788035234116109794663508100031215478389898388575526951500667785373171041056789081030103192088118300995433022329196135326072782078650403203702316050010017122829753619039016047627966741941837800404379211489621880679203858820394939385980018179967954671985607740310555795035227459019100187074443990994758688184280167122220849942615699772260691827256306692899223356124559541869601645848836334847923630065359277815272968572062464932466706097061124659678472245294700142175022242838529763726338609156459347391745732144534496848698467905798157376984279947399861547877312709282981269296030618841175031314614191062048307758469176679564265043254635011196766515934975118119341759586416828037854288050300970717234132922008529536646077214791092803855602011477908027940162381169973971352237917106436531574746726435650537547737288174665487193054006262410052434520606134785982944035521668550177194174008210077983642752193520443545855766798373086344144043579668868993896793624687219427986923901328710190822905923520532885107856441937299757578193976207510650906359078206819404127763517330642666873428927042920570405212769191853722362314387288483522165694339459228247341132590299766892054414004700928164493742435753182929774725354999405428847481598359708081042586020397045359313188004156193101999960808024001052602004572046703708791754826052731715429527068724467079843696507734127836947526556856690422135081187894760572846683275803239961378559943947194426807723473282011449360100863526356279616223070280169367350891014457437783016795437279425946543741445528177023309966446927728676225292389480343891443640097213843397258616526368024158219771907808640836740627245194232934368257909248252682827907250382021182798525241404745042582705853926485433174064169280933774983485429375571078517790211124308001511338386449572242302012469025837110181727116503941033335256829666727427828832212561227317620070503911811751880841529318047954535037237499264712963585330525459352811352084987186054017438051499815676022574818336811870891028323613275882228566479985865607618990321967527679769620978277112059586650329110108884762657627643471274121502964882115734182501074238761006817124460882627770256808027709528482971999924283278465055063927518485040968337018867158344258448649470793984720427090611745825041261241492620832932197805923972751777764523554110428117175326838298679727521048580099780603276588266004947141155474680345222220127589644321844046779136717998244249481195933009384708004209668189769669242477716096711737936332069308310316782018926125445737370598608892731041251921176821717596903418395095946140350572795010901175151653105991331620522244293925144531139824733620992655131678468549348526224381720382120851870547792720324738523689155505999729422765159076788669390092626887578739303017884706910372619812565817309124424496244316658084598152689054356525349896554751641681241165589608243428133574708074307459410406310025048704678915054836361969233537685306124311201518552171398176400762342333468616929078159041562525388884997953769291257414313014629815987169025562537728063568840154655040329340717149347492809284981729261459030366857595321011986142592869353172053243891641769662406277939263251204468804350333123149911856183664471481592168449328782264636243597865240865430727330982111708960171915829429004080493514960790942543941032921036498637663186337786350123444571059947523456575446643464433279121119013384943600251664051174218678955595576209364937848456541605306082314481319302863956686568385857523869214180960172861707133561993392795539161857899742747423718946923606756164242664620606687058755561405434889367568914534973540433879801367669156628284049795452167540393849902007711550496377323162572643597270613201725839115691014944874605274973601472406823289131120924215681755237828195234477625085095616406208136758703063041188514800936009712871039587091748399256904338397710130944721701480566504757084550711316152572677485397863528578774958498587407808954071632962544564565392979160461947236748921454900973201574124155956568129253277824106050156190603010225782826820206421146241142872781976895866095429062084689459753626212237109408468877470825751261064466968361914197286140094495311018425274194483561384721034550396385209626310602216551138626667211560563128168794837936932924932231513655218651549507721831173328266134515915379513914823388567635296179871703007778267886523910530140724321628706692876518696588691201695298648853841472092213921742815031447801317207929955434583965445401553853620969787172689207653686469643087119580218874925457792217803253266468104189681279470726690193117186078739902170944520043725764766881627024594032538976465576744299061473378636865733646128777995813041191882317386530932489111670991454979856953407974795557671943873436293796924187329078215000858246301580685981721806781330674261445843595541179593752702528515996136388946918262089335944610827264571075592224931991972083158671155243272919277402540216701395022937694895052035891021794908227800277164544407584459839493135653263047599066794099675443500203382607893193583136846856957496171879325195512367579260537134099420984775822072435157575213280719596585169219858705906232643279733993303671694658765885656793571548274083832474788258623922730543730168534913350236918463704260213028956077690974813130271004251627735691130394681227024095684407389969499235764839290371292341885586811701684244122402990356683107601865833357151529408444640866380664846881313348402894262069185530529242558286492981383242906167666213909753081628511414162413531002588698277007314112558705031367755729924488097504532423802168445024020477046371379540884132344104929020198627976234005028269857974929451139795403085929337754860413149914077440802896959736989541507650775377971355722032614732260403901438718737893195881417843703798956306549857440064527477940422863315595463304342339514413640325680114289642792186921154817806586709657321123745022459003688555612320573521827687930603498558762383353826701035694662163496876553282584835647155768005782808263651442669898916506910203461618322603538433391326466870814387345117074007478161837743452383381968879097797656355132248259163538795769948036435752897797790266894238986764807087132654292243539087906782118248166125532078192627394960095584961376880584371619099795468513395113255185264408580146007163219433424462127114395811922147388010144078166617323209831187166148062707368033321204443695280516593651679008098717480523704518482076897023158742607063048684235411524778116639065853661746899077653449304601239645067428477751802123764079480254024721592232218893142888236105337878544084927506255994600902180255548367079018603116837874295117694415083613753150637889478707171893999007620649325832202671650226208511411467313237305311686551166629986840444451506064765924971393918080885268304417762079801466348434340200097985992117843061753703650570098277098287023798677859918397781124735559424539759132835246312446592077001415537227444047082921598998156465744434179785108743367807288708890889887033263658815686679036657590719891575508878055324454460225925977369716079192058607670880110566897358614691522145318695496569592421463692639560561513727070193228818556519574204648572628385290839536908712236293494011655423381356707550135946838693526724837299761390582430194463385661870130082975159063771466034643466073043405867918784453785517282406938928258448234153619287765002381978690313117873073312245853312762153114368021932168647783595633675287068453368107639152522108217367464308424429985151040827863789091193686248362851019537019656065749001076340926347953344643839212743179538502153715080927127039979299966256162440162034824364805688348811138160786703918279068226925202441307257776108453745869299129448363695633528875948997936975565444705295061506308624084771672715370364926217215202029201786464689569167992724839065983702026927716155499013512834226588390462137508868863028336417067312915142711080684311538083498715363420622742270815550392966932495207157315569621964236765762550603906601770271718532896131390660666958487446108063807588053042773752455128034785245533760323179709955928900210353041388412008619900043713938881251803756116310186822596301661735745723468160033453380710393003506178912336446232324568426432896924437498191229420726454200935646135662059728784069233083898446950264320800833040654711711458408606048046978715896378214771973954369150166725905646089398137324977410310409817123985916246435774015434373417969454989558106527552490643476177607598476256600977775813678775689203462017887381506901970552066527315489638404129393603340221173420420750192137136296868095166829310749008758024486559698169745095013902661119622745236650619026097372893197005610590794659639429254911040813271993476875807294916632282887641920855653982410362898848130992156306238622355444921219568303900718854179710675442257694146062662627929381786489306973436223990857814925850782402175040641684814683033116265346713087036710767450178447941263243763036648744065189884948303087538692321202516364096200042094859894419012675633592151732861308603791413756057757518532015964642175412511917550741989903927136767006313004651056983098039704593424346432105670215053968470497030518207535722420596902544567328593995901157557424318320659808953058217287555288795767864470459504691380565600443575478439189954506335548759020064790032918867581243511974996101632230690294759940145879093004587029089865253270848645665182243721801789508688382392500981987764865743782505058045847380848971284783177442480541814060320372111148893992617736510633780696494411903185694849397277755424695258377764960046988569103303483780174163821324567668238337796582895074172718557297761515902030061932488494545694201518396658938620087334052023510768244694560511121238121860711974711639778989726865609590909444513079080488848176317483571158885620575378696379312876157862978869606983410540545934278080772532460199188045693282286177894908570965193385491464877683749378614481577396531173152859872547005664845862191485625732720014686200684182361758826161247078917072932079122184729593490812600879349165504105424020015073295038944466492294971439754321716611693190180659597392103950438839065322633081645951541534684816748367400458491567446077553027836514712286656448352654499781603632450585305025509705893162937908128247775024435164411191123014837026405902060746050997678081468044393941934170372940594404897190984987990863225122330199000304203981797702343755105746824636508941315327476105157331478047097451700570090294843781991873260528329807645923146520446157055716052378990836945870048103924172498835363889189300209672898344196490161891129569679736972480513288012050750172105534822678314147744021243568257660650197547629608282974422850986886766659082386101156518711479589466767793714222678830873465611547140473045021312200073815259450148189753939649111798965904403975857801213105055578512018654682225962042182832930080774197973675680957034495449043819138019622439789746209571370954290085133385556171709601651441905787546522761133149905070314042967705607026120217689767166297482945634678312788699289485222246849759315962367085883006809389531058337970217939411761012651908980369385163117936952833480619909442183756514042333305309743531469906851774135202035302158880575520251965470533672655219817733160983320115524148899103935439299640214553267670901649429222408580198659655900688362434694202707649972836126675513493871543955178549205816493581083864056495864346599755867014254911900612283316322463323776376410796740943941898914406261228729402330242203111384086373418800822369588122474647969683911119033163711441941124581835212115776971896796815539494324519338311582586329740099334555997502198659438367921535079447563089250017437049415949835114159292753387868955166109451541769530095800363379386820448911690346481338387170436074431398151211917757359058601873656970519844618986193008959877685290695078940191995350507681931105401399124968878552860147550464599246315406532770737725703278026371778892629863274629159206002867409279451945270689501739663693513210159481192660486111026533622480279000975267363816558796838974296965245947829623770650277711045252494561860756413580957770997061504771764047623283554303847976266854744931995411363601434373810571643398643852630989172623727505674283433810262075938905117450785005379899254902252527587074235881232885176423095863200950291214529677742788740753060123509430176382936899646954893191373676643048325414904069565756537178065733692463577063810636009877324153930016369695529493204347600804314206189399065958713215571978298005593594386354847631108297019559158865219760077557596378132772817394319053283184455348351292554672935785496091106005933893480424004246645514892748279868436468407173138746890342298271488638294399002777863721276189537689499118486114508282945667570732788338881639172606633212531219528893701162248907379771209880996736801109471483513275470503884042399540590647216368324358909401134234692135757162303624701125825815370164487337354167044639978719754554361408998153210343491769454883762442601361323606146442849600846562515411388102882655443203667764911856251064864294700433899897098016951536331440547916440084307836929035047437675182593396840815157747028580988394009250554414366572762759234993463034744296175691166516330947041195482075148708699336226528832943955844223568411476743796704774386139844856556401016117775557380631931445016705973230261723340606270601099529023033478449627068038999612836711643425780270095016406473884792240751910077039492200634172117433639264222263228151483884078785787870282796732982251625909379025665245479753128727417059985423562319656992525543061792484001775412210370255952906003382384400086275706227146587943182896887381608552813127233758221524177935580191270651086816188757669146962372423020204831181650279360244130087855785128785307255965103666286756116327756124069428674801224004500051940122261824426717001744327031953300525046413414708111076975190632044628784898258513018331811261575961263812794931458407774298578005335271485749629279003696992712107923297657814658582587448546309503527476520138214787268518399445626396719245909461532567711216000539766308117945693557078801437498255565287723447476309485327284936134470054015472762038473475590541322012012833527834509324248169717207070973767743044954589875352980434598287210341354931439224066628731784403178428287591387041548536581006349253654719952677160568534044311627217801775851284014875687057461118995015194597913131801481911303186210984684348249089456227303660104416263676700073086118357626874155385897066336885560000148700671777037572232217222677922223229541386420970803543901839162142850272572182385447113019288079850942835891766711125057705588310057164254762966973508756410523996427775134424425890211548051359101697787068738744601312358848761652416243878721263876440035314640192868026432464659943372681437335157179292905346975364763635654252376209436866279915427497077433628980415680886866854954665784365432441501459929941975229017580701804191959340898158638607368880374795398539113507155227002104573647709489891915385782320191912710745454690766064140214815001109159640417101660373855177495707162208773213791726685655589244451675551561649084206424993387947609749756669279448068769855807119051419170072757511984802338258268493461153537170479664372082983476533909585402441510227366180842482391887784042677587353209515236219260371420817803529703636072332229069287173841963711899254514486226736138606314877111520756758824707613605547907741754752527193298689307684238106741377955920339636046384851992581921809307627502011560224123548074582791751425869163015118534515296153554621358589510796964135006894960382551990937224132813522460493965374241197122392517654339743396644477998207246432858668932813912382907718693849323232181968032472356574284754969840499448168834264608343151869081006691315251430664469050946121682107985401234524375459262114499949213655475988958093023610637463130002227502658431643196357383566989050328855022959912163129603722258619964418822043642218835341207587175760041815458580760715127065730608139192341332125427757929361653238860255123879619348477693712166758525573702447148885485365086412949345970147724647934694054424051605164969903502231184460849133900484043131068224649994496745124326995517963985936223383140000841077050785199194068631824591721936057184622331645528736136272621173296829956103654397833235476950834275512380831976864222557517074882311430767459690068122829102285984111099331732426339121112718598765090838694461505302446525972914582434658854611515683720355335624878606264498481978276169407841179156936166378831022589891266298823292459760434238270742575415327508352845606251959968834564545534377812592194905990304653211738082846550977822303480065079943101518270994884004657856984595460828072511342234152991976865291833695291941596362801280639815763397776412626693815755064099487599826922220509659777376532882030923024409141590991150511269832981378791677396600703128246578201528468188524870858959247963777527342542713928413444110791752466863615767119699593959079424653239837137756102094450928684963503913697468737186146452776034460072958862857169511552169626107553049653069864039218816788601648637029714243069803017377745972078877057804943140909063614866378445214987184671438410945561976160733985855437699261125975580770673818093710868992333556963719693954237171119006686891310047958876568811722719540426312787590610046948065400406608565247384114684337051317054217944881867799736398271959314439821965438665280588001839166165379226815436730460117907721509057065833158072605557919788030172195549167574870407803201095984966320641155577642679325270609515131695331500018875959429241088472619696117667242581701348577680346849830633291460616129086071830205545946119639162498023720163468150334976391646763859645095674596609264597891682407659652812534351233896794517472303146619605622877003220352084362375356986163458937562083817142572890550031626743923492831130921474391082138945349265660814035142047462503328368075305349428880755989862241595330677014494319142018110831706674478158104903265259137298679204067598252701286777569024359677948203429551632603000196402026614298888583321529826595599202924018023545194871432368044422266191499525592364117118459758984319535097414961969541979341271541794801197581101980627683719467107477232622736212131390043315564237181541072643127208765054351038557662618725397880632463353172891939143440233433805740500815716615245644430966639896103643297491840278565543603085755001692561083888785620513738726790130295303033724110419378525397869293136178628685152689593545917812496587322996369219862866115722481602964642661044924233752498113027185274712730136171291646613663089591491786531271877989612629855509003825840245111880991024479510667308074415946822637313190483583780136376120212885851148209745525294126530826307315550160084341263917266285721655661735856923165343793833101702122763424433868762223559523153701841274853974903218985457294878378794274611501177534645488952097192025835497063789654182785579336088364131010608167041745877701598614457817981878256481697504207766704689425346684612416887094206773367363707464124729067310258801178932948424854260818116242134149565023066030102217304154108121292132506563390460864741885225366998106136282784518111277692725999544756390511612484416860737380404131045470749496116319406960061364332595242672375363932622933691531883646858677035146422774779129060425765963169226604501901686367952640219966510357713027115922875930642960530940374598042082190524614125165123255224809033049351719084919454702133888598618936841654223393314576723457104562662528584462523307397633313969568093231913875332635005864178759292496982552485217340542948422978635308765500066697596195024479824224203249658222158630988159105584218640421786615678726784814419536560811451395982590855905416919015554189410301620889484921879170427929048573027357232305726904669684577778688774945305342295338940096605704663388731916379550302344340430122843505210782844660985838073572705510341715495864511942406652441313316955261635954222657213173367157040943254390842602250184249977407487365649648259443171635601621888719963159955448388524842404017429142668100516876883294683665936664244525693608400957142600827210681887241688106055295609056189143279921494744167568319575165919827478176424566075136901622559145881033481823906573029404245774007729530901807024162887213398020240619380154237536819468621274154827559935618182589232061713507838912562557558638707719813310779577233613458599755695968582822396969297051746019538791350272818729444275898127604749073208344648085897664895393731602837477629368435019840934578361415799049782626507961942210971811617904029824191660587116150397762897128105351624472083743131012364152536325580404775486243419718010216668922725295466090812115002278924626097271473928476456332755641012309033833712117185283947314692254905782779194309265818248311549929128343831592113724163027529626200301492372316788491827850654314510753560139112887015054483379576187899521812912337641507094299538642835336007093336528652037752168475180797354642338294177479020743986244840847981894182320488250533677252963471133891098396315263539304028994380925699233729876550026182181449378159879647839555386343271578077791880126826019574948596019910817193093027939266745099319938944284154786275434486806660651928068222123548714925597100177321028145518087711944994349135399928015746617016280066844491948972351011325770426382503425186267069473407037688726588595383615257376418922091313188154330815976345297664981486229379159541886276392215418843452333765998606606768675260264240717961396242552780174298169308916763628270288944518767601460103091666751734933602179859217878291372061249859285768633315817756636353167724872656907515117319765578672625080156623696412243655510249220956862809493935470045161885849090586044469000750121046409092796101238895426302021552525412446231274778773253053323174989020138523705658821523210619731447322996456016318877282581724366559782767019081034473478016623300599825842742243859805414806924634391523758662619854302493782378182930788739299442197589187800204791198768399209226143344776419661707498726773556403381476062165525764729570335924430531248123811520717040629616308799681336815640810379736497729337721935984701276686593471024438495550585249441763060681443237125030691936844633957682141282770987378697865724605579903031601436175805124833425460912393008852868215440703788027533181788758419268666858525311495674099033456527425444301776415325291466240923264761609012406244677348271470431671116690305042021244200561879268010058422238235847019510520057524914484130654625773056383186337637792887843541965548790495700444894466908277046036490164666591313120189794879308024513984434839179486969073056820439910594492003036247217653873569995678381573040994694576038456238931679084621298767336637905543486679913884081998215266172979028089491012268735001181694920907186876874840036418478561374295803928608797839617795080295911783143084066816956225408291715170081328995278757522829016780937108305022705466771392483423471369583287121573907699944158471464464252504465649782818871275977595422036279904610994060886530569179951214754294949129320586368289087076308312966810918665615326540074999859983157262476910041555343944896836683358038588848103070968625700202688776346228648199128454807498369645421543211999595126530152066766754621591868182543318992184881294644167522186838261439558299445765248608687977925345627344007238311949360308344726363812100774917850515465705194716479750154045839451168796773768190937605269299500266905810717747530320100323271291150937394517933718990297751301005609931380471837331375374767273422834152020570124513870487006779499894103700808254630812994802696852979079861443142147461560866986328787194333462023158458547094358687104168188913149087180807249331848649288952925824987393924141585204218594227726806961103679955084500938366870526021932665690133979560777367583704750296082564536778050353779452675338674482810678587737199426308016816308641857752014998458953748579815717232937848836416742623872089012807686717153682424630880869926694402095123033443580124652753386208503974714452321721735351457313635243399096139310621818290077596537654695064602154807846858680114783146308349819824744764558069642526484340683744623241972916893663722205218560711244068041051465671465761233335148613232030075685465934138825596320038727860755665041537640070873465676573262929165274556204652206653610329920457719728856063806177595256698395846824366926525870475083366529719849942761334917770722934600561083573998140185864784346198608195122805961999709535146524710427147212595031944696140238149064948377804948874964015888222072448150338238521616114179521549019143865849389697090815126291643815183108803161399343821628148520891292501524459653658358540158884291325837103805189806252314627253281406301239766748028051337176323127790966241402697879488517037737728275106604674962753902615834054267750442881158790176264042582611824525311743301230092300253120491951578305903326526175782099947694045495064336575154794243650878538606535398912293608227093245999989200879959835617654223822667421762809647601105113144733346037895075265349255652614242659250442723150618988650567496041923960914071312407173120430726658005075202868245531549461425166033765531174205810006991645986858709201694018769122870526851899730740302647975300920549308593065932972113142979568495542211450715306099207178099448020865341767105658948097578874265958373991389447122862710934510186793249059914758954677816557859930804035795566079236559620735289022176315768390459044988610949917425654879938078851964951254903528525036198083719080799175924321508855674601855487191800256898994891888939694420067644446501044254295360523408341475301351357412008398273406031080747770095475494596069567547483476312584053223898064101385570317824459540081644457935215859229705602469105364474700950071138558185231283418130240787078861293973465867540482284448764458284786690392245817182862957478576103217861296206246954251677505147600242957361152574054480590480534349220511979618301843451515454865241456145785600157387666304416115692955835201978658603691947694351430448933194324943270635054149527701959142022494998008258830801309327195349334571531886580568950575555848691249158218894234644117072709044512189732541805974331010545725616407389578072577830915076303783511345228337900411951292337211473516359996232319244381881110061701183371743906342256908446857125007520874920934647594925544411737414049103096341890711454638390145598245654949022624664403367725034194599971046159179829386913297629193296424765479422121748077161741234725104397469316522221680376082867177190079124952627547819684739062455829125266136516395851041014348061598802110744573537152245092529753935212867968439618052769494560490613551189403843505398231995931175300169817131334601235978948958800579439989527993769425558259698765469728755444982910791765915043445077479938009790520590785942899112540915146404837448007205869766567678844736011332508272072766987705969612911315028654503434416272686974455088445329454281518607169673966468241511794221368258753277808455332126638194798159077051079299703568259596839319925445657337258619988131790619627561436851792811427902438440651728285299975103451925461646756410375266169971765928901357484370651942233808051682938596074537453502582929937999230023066640857308057847671685880971895078771168205642997032183445081674959055647103357319919240054507083471842493167287955964480217854427431710973292512816255542718673520614930712216318351148892893764670792142100748453713818733153812630128401972389758327506977067148711618860232897611082209674895332456361626831561138402294575365354956771698844260059042184901391335257034896555587676662623619179827130198524285113162884723661998652723571097168372742550181309056173190235875559616776235153607856769521797782742879532914015223139255216354114006989084296840118250947601609346536057600161642691404895694952637713270137769003507217065270873565520363259720907179947460566724140322172938612501592566276841484340559691563414308293293052153435772603417430668332747575197084594535710374115424724255084093997569190325134255673552777976663735759895160483397988073796456043681101402031464252137258185721493917630692711066991409921450244344890798497606351127580426943728999398080464913589386521812127552718371536189207443061488931278272961588590408071940295727710815092701018635807072039615803220892506704322898878423084276441365238029727884580574152891859941477002366960696185930844864302790859823267099704861679430398826793204054198309445894887243076498910809551758251416211264064224976924378505144733858870361197033328426189239084680194071498826995515313376297732374805484115668861840572366558615170481112481352298447078035703121760649226866154233023768672765739248858383189071514031792424591030062613829092296648846428348790920071077885801001741946002035188087530389173642733312944054287722668896871844818916899641634985526819432020705589478686055086022061440601485244649243826312141154622718753800353256905969600273601320071846484075435386099960640082823793907247334236571963050706803827167886806058729518997832986556008168989904070921351930489718067989836244846808859830971591013696045981156958378967594694833428656778045191626314332598661414651574222586418427042126523315519093622906720355997347795427862012026029494629638506249734625863348604544669726893441075723614406263961766520365101721452268375489713993396102623058457016514015788815361252549782826860855971647849576974581464919147936231726651619608050399117746796992143772628383243380266928799486817314319108851902931820614981548557351172906274655140453223332369631017910285991727586530991136639642564896340779534084509555251613039563136665932126597301422746984439508010523073487758162961874620249584759778231438734724906469334645105168946273158262359346012715040195311584938222238979095097889770374244219129931731620369580195741606132513539459789145308621121681763874456542262288162791136204859882297276381141564191149763601442265463594741327917796391686680079030156615009229728844175445787104776170547313277144217351446631238508832306822328860760762304540895506229964343560579149004655282881254135680822366984661892162361181371854725674148678398795925127353498233188146539204168265643806681036537431616327794286793644328977707003431956535391163271379781004402416469233634735323573809612093155105735084156904433574146943778495507981555265484800103867465692218705207207603048710241199933301566999540773454526481265341639094261850474648115390416832920755410542329500246233965466740770050247643194391106397806516217282624430688881704117761444165791343412330190751132373036016518864013586801780044186953812015779472619605871931131044828016923827404769511414882255222146090657473662064505798706632178372464345750998334893396377327908322613095343112194687057489830961446186001754744761858450351273125965255371172768790152930378191550226633538561232160710965035514441286390222179564148037470136864958804212691281302732705437284200049106061040999487791197481375846476927309571640525710033240504109678928460018078148094526375766924507589969348453754806291946542565523708990715132068562193814086238957520613662320557953474296984315275509771685667196549137573082252624352098218624088226337732356877742464726415695227593612406656319057546841164258810938273100336248648840167520623142729986081301940261515620697771665009333333637440354973467374601747626539835626796674604246817446586212515015396119116859451566749954246910210155097852847684719248468863874017022110306708127164085630398586186861389620294286257030481297407418706632824807987150552924772368064779099006339239553015311849432249981884248865668991089942052713488791220377898082992230127822841682882321510503406667504961199882927554439873861677632699615553030003677364930509622211780344679446960371716139102627871136640483822763146511782963012465250919616841795961325468977086688229210499076066591824815864149955024626707451280177128489863279581047554994916448401156681357574946911179715630606956942344686841407481756881350046113210744689767381173215420810985184684308350429567329474574942263756040622288078738025966624856443893166861410277153055540700428078433109863152199740806483701568034825184159430934271589262674422058401561863783958432616706934963855149191802631018648167687802437060143625751902835408862819103805495455966835312566823483932731551259313042211995436932915823708671596320228229511406624707744255993840169060047461141903550288018243343888664916086919065822710831104509567680846208678186090957257773063904003842029997443660266645442138529460011681807326481324126549729292504460544385488276630334881183948307869980829224813270894089829058675865855292750355941076369634546626529031909012689216737966241023233166800138624143163408609449369690667212675866266285780076256531736911488428482984880191487661940325525675076292998595727441757862089194991475609463743338909666146197349220298765374000308212728346786011529337012769509437819111130624917943581881761102133883915627811359739746609498628409372421277480203173293356679070921370603224948596599180264283659926081624411883113100394067003266681966887523843128093530617197959012717265750118765670847910447366087637851038928760356990888325202180859593807987161270700713906960795267353407869252156742205812178773876897147470361894387284185353363423040877536052765981490243330477591043143885188045252334037235204934417619916504172476222736282059536208844047252164609875416377026786946625640533523721996674151692903282696185046353857736273908777462901232848786343552337720240558680293899294588525000818217451099820682509416507622588515065160422972270735780895985426091679986554669523579388005642343131515795801818908943951577047088443018718983109116666410762640128531033829947144660875930563158848627297308214419213858552868246267995481870623869167106079601178664733977816427416141840542434210867929343554836222565585684071659169255704749164628612188538313486059709049870780518471676418136501045244081115049681768747642562579364668628436911716589393999883973378867644921765040610498537801530792494477127505867926969080688160956262690838761151323326239152628179087380165842816849559116711825399799654948454794774320880575269478097408868242367066710619991434695726082090354051103744968192764152319750332185063662969627825072466893762286796867532377486050407981895313953661723658887933160061847678680203521348678019168098359691200465879586018627530917741904265872020690854748564974406251404956950927907756228763599291293360298596054456631058871612938222844822322856154387526406338178027991155237527029824079039544755760302021814862552266422916269275273672062928837458747540734343059453301976868686292521241346760642146275495087725545796655213670798308992459257783641500308698152257814638228988493422531039983652296350911803664470482861895723313370720239562211132075766050278701383661509719764793960073469493466057035845525877355530861180870158355989151210304360831877049436939782679542389921254825504853141199086945696085721334027981991498836735103326251241166206493587259198074789424823990343565853935169526225316560891541246832050257380786463561252618445955931967386878463157794883796186967401504304031231361882240264246126583118474689809307220466470740373716971276930683935641023751733167128502747242088409123275421744701221594644389565145311352547248594738841146657903309509072955219648574652204546157923408974083121677460657065902060012613912759998821944066386895941540909487666503585292041822367962585754315265039792830609148830518149322862326452077906737830520190584858102951008805937246032871588467669550331240495267074898585019198096346256955071044322665656916502326124526863510020057889748962431070547496659581755216978893979486074139398081398000547202764568919895300389392874018173063741707935210096379848350203356969306339741918787030828505458686145709691919097699406316977266948672609963902038240948274591952514081745707551443457924281551809021330335598429567875947782740478328231386455592885203561082276059888994758012819643216877235893931494095258032786475454750808781266404238598721503207682153737708276314072660083508941221010921993213007589360910355673737282363040639797032235695373653987041920650129649510538118690174764784448733933397298030444648865311021186901745642230931302423577010686666875393734512114183004460346297219603869040758259883621418538120993260714464130300133976262023430964921544672922193133295932815293160050584353505838071286182355557888639543681165208501440207079553246030284997289472824500147260367742593628875777495033930303651097108191265706830921084457582762960594996718785643486659275661182180712511923350186246640983716502513671003095553451994493601802277564406509769166300127748008616673583391167441322319639420131430205575835472739176217421231529740533080296491606789181832440071312127977875419027270959186682178357062783086864094921863823919639661435598113517430041364673587817298776589724951165112769817043893732854835341237227222886697496363615690387698468301594307891815994679964666759478999635320690420156228990988438841900935967822417527592368282212130170977123456719045471519607582767358891194546251913687654907732822512448611700976326784396427629231462570208927292651500326387376945386407199832368460471741372695695820103471752022731294798026474567218500249750557502618792721030441866225449680546798290430468913766579017759220567414049713946604553946389945532322834417299815119675257897100061190167549899567583846297235949780175018076732878020802139973324845160521652713347177960331488467714362846416871885270713658827216067759403037782692587662466219862497199281771890879901852747220582322418809874289242494779525111800327074435787909264956171094103195090947888572362000996641459671364797954813462432213007723693085965554578511309231378944344364331847614173361258022844323501442304904683116183994871563302632444340971501278426825510541380436126387412762227645641757795050735876629799071609862171341949655362342604746723604957569962068683241895266772207979286946268507232246755278686356084001429197565148911671939624438889180439244401932125438438436541593851923274280121744966574604920159276075631510758524794386774142303677228823738001332866169705050836344724405888129783489067401006880036738574566803154947994898002927408902859758719701074473183351582527906354771455243626683226030876398427961136623147453513406965549672596591383314328914964257364331050609285154622998995420537314309587883142378347604950874924800145924677552671354518846134696666733797405792563019756004290842375818707061519307372832212560469634367918500618470992555687207571083261834156481961475334497943936776894289035882995446133932194602934063306469638191355621380485693615933459174179417906830732170312849939373850165325894280534646260953356061771951849852259706486387177940208443646687842344653969905684387197940467099866763722941722730875056003127202924040529397387595609057211946537291852875394219938575137677739895430995313451667217454162775935221305187723903688055440625741479255880588318691612129251648280667276220050628664554764389017810118242528944467475112082908676684813334487949123569662926124230089961435345274159116354436649723940798768963637785483461527285221825835623918809897510114112870109566640271360106256699234927578573874744119450663066965385761548456052407876624254862120504174018389196041567716063233020887762717400434605805532177573269297209995624556870764529758800175717164175564011778345049287700936826921447338542342848141426014481934255578030318021906497627059541468608822098199153599850280335362445328241239737318969412530157149717053231297589835416416593549479143716104955228536245226315514535547161447804331948317014490987700112618190328322898679786541867363772675888309303263520535611673526242283550158515671987297750656324972381017688019860190623977084015733919644434213129421677597907520650738214223332536416907604788853860370597362892352954515270444786590185024325987758879801964812669919660885966566764909717963059286810826263560142917672597342803246901030595938964082340784058868161352541847332941999694341074699172085209558002620479556305445634710631732087515586919351942240160640819173602333345794787532210875613322889684969191039948357457316942046358077130661504142345129982532030870295438901344738171405760388177131249845442978072840347400420371933146112577495350035412627841761899347313248758669775993395684295081123274490907444755005125292670161509173750020375702713549351701408889337694244784503601365618074227054591197992041885970002360220130580262969957726744365693060255522456920819903627404990977006198218048427704615023969791554975609771114852400853410106031634731581871983702943415399103087509786004924043376216478862902107764574556663482012155243131330453006310254198472939353532031048549381984367983231944522375291465259051894428223064996220819315620997032533479891801654131297807077268781166509997932795999737136534101412989642999848160874251273434338028900393307213575161169056040157532775403313614171202291142594723766861723094152392162230538784145318344777241776552754813647843719690824170953000564510625372027577486272761926346738780099066665702304683784443315192258713318230593893090235436092412541808570911927631889814005698190550300549437886300515552795503073082707472173146667414844401071744649727145192638653041265077713542289377193283643669564012419330234025973218300260709837263577674998423590910344699564937941179088410252660347609826795887640605509318098261608721614926833689715567437865772391545486934731323871229116436741628105541799045699405537477564841455320943405104590008939883171324489400449332377382796688107251125446700907871173366757548396667203247076461016017832138514844503737380539947025623801902645152458351548003882240909777560825174725707531980184503072747383103992228907469147046018236729814455560104585133439840664818000920800007480160640093273227149649694477720649117136327808386034445385160185633507108380028071008809098806591366812284077559927726820753786112356426232402908310209563449579722911438501142945862038621294793519503617649393630503455971927972919345859344639718958495641796558930106550136229371547814128151766797305805397926936127661167671138241148628769142762414747703501793574608512732249318787805232356999534353805042133276625248709355541903744795209216411514925013663869541960261339348856072752393533572410169243302456621292338465768625445787329393813667388675332892679486849013604896015313971255523714826040518199680329991005084251959777885848125091228294943599624704422199671232891026879459769576159440471175312701212307469392230988238243462018506742175144885880893445873493287710822704157992683011475707081217958963201759886871198815481784118714842512356050756549863693142531512842885576821765565243672916996542405183582130350271760154111331763711499798613663062691472811624179495387883792018314804283520662195758332569225893627008319066662507621751982760013296478583366194628742016212729602409013960402300323868398285520093832795366469520436374898456161774141852209823100315906921564581400173433657796704962201869243074000054085450843581505282926198286142157040341460630866607392686865009475828877797065330198763000320985551254384206341789854787957819383560989136005359057537584563150106078014909811702773340663908880656387351332005603390550838680212159352847178476225343355651481559656187136745553055283970883487904218101000493039970855394171556561173121159953601669313081335823674797061211234782199264445484291790812010866110062559530504788327009738127211401344414861565934956739069268348804891699732594324571438263680723811510547057011277873569657943385984176253046701895403497737880118221030531264292414767892408194617833268360177715486335340431744592553411394847786564610184063339168859747643955735049178798023351547310524119340405032895752073033774878517290846408936719964479237260245729046965650340871751475746731845575422917681697720384562554174323288539131606365612591115238482999489617502439725696193542186244342632143520555522225013119447554997701199992023870471709094308478123639423577845561249054529363964787264338657447312971496080195326661207170897184171602464812211429745271834798730947125620701252259555075393648747229953144627033417531248819314267323216828666458322442773281728427002675246781438417068832131290487290078680077955442285168354236780895649485558267746082105223919832242392603585957311534082437387745169455014296617095126176195666416665427523465257228217868236820847044412345094336818067208114864772889802782709290069301700907157978864527514709942330055287343314217095943831818712163562975536370066072360703576822368933447963487080841601062358915594531099379789853796151973125628541354835722608727760701806414465589353778584231331225786207097349033616048688246263837023506080410002987790957241600163548381388125918580181009826193529683635443487191820693335475291429404102750402913602842781107148441533987341033677901896534509830484383661639252184245755606261061295571195436931945121827952751292456009546246348886855653780003281567181337478751159681347967378914820387694701503154712775622064429609925358452067848708714488184707256063040475083468122743031716785687372798567270932797893087049407756508054881534026530159956721055874049040231087136529997917058741407321937883897896992870368089817951705530967132982326711948004505167551692910942650331858956837854797122742257414792008999254019665848382061382009556346989500384895530021751486807421197994636922817154166495793312511734072337625247787244307415109586981315848970922123247135329637857374413531747090144476920080497994230860310582160474974605966498287281607411051963099216817973213531130509814192779630770634484915536521616727645739908629312131151444657383659824220683133792241834094514084452832256382112452657270665789025490942241083084902561936262603353332622447182119626218046210739226095122353420748084493071794951103343072379537546516667691099633657854060850787772952709518567222286231218339846521394658985976503671788626213083973590548254674153959125662317853773403994742403262371042897044837746836310275543295974452669520953059892125610917629761899388491950923530885580406255007082513969612755379666027620992413975609803777065094478289974263725500374990441297632157577512966156009764655201098038802338984761647330275633535618254680029575175740652072920219824297431681500004954565514402674719510052883405677022829272786417359304072628879277532077844861288698884069075805714702964744777225966280123540384200857859501244526666004607548417947583102692086868543425259552463075208097913371149916959736422606644402681644544647242602587837106481607173721635528776464474494718898789334300692206369626538763053942627786871335413087857598703022725512888198585467213130757155788160877546813537913009649969732495465528316141057762606934076753771985931225039300187375219875017730515501373901447361491073932893737518688266811053939606293877384714958150302777725616146210332885201293819783756338079794813900759393325751959160698447746454618040420982939380067392313080668347694869464051339045222987560464204907531344857198304597654271540123563481960453366319238581684567931463982312174845169485898989469049597283761026423331227618393409540005404863639417933595170128020860897826960437663545163637450088824726824923830598250936060657009662912575867757420767341859917569656446800176375374769613334314442090276818252588261500735393964734066402018326370804593669187013897203757775054403085948883922141336232497537459495354637934275677320073634372788153086875575831156966133698583437614542810923712735922551010506891533382757944180786849121221796574595282428995193117532430044693768482291534479248266557926801925686934039478558324402809029505232279322196872157789212234253959168024772247428948958286636640385615710810121097723498689031050330085510957566303226940363426266555113798514383095234431504031186833612490210497903992864439017464958223902784091321178896650405194145620340639895066586107835072464154441681173781796064504301122876406652586450748324350472355965810397323397946643305502121951844170552563029814935925393401621623721797766678512467864297679897620013953936886257451703293933413042574443958879809087069047801500773211976152976641895558870047017413816696473452947422801510662102419503729588954250814435940137347154698615348747775345333426991914747766235502474882812327580671876985802252075602245675467883002919942779559270336840293684973750273296727620490697281034415315122094503800009141482687259518557555424978772887373251887563108625131864129972614779041991181681037677946348425671437096831166977722369275134627967166761469251106324631202119128179838089527550794979147104499346746606642645051659213993183886257300227341050702426017998638008420278001295694572473856668266658485823659108724572410802419028829862608506105333414869453149584914285754034278599019777047618580988010826811751505263914098591005042704246427968411249826074955606469886494216708999186389026374635368274949820828096505477177762843101890810949587854578333453645668403553896705627665441134527132536370261541898917539705825252575795229517965135899580835164445538357600983056901482008870366005765805682494114224310833360557874437582420989019749067138925227900444530888557494907792011868558528614663418672802447031408383233353908323626954551960638155434750739483522716670426526957764957131743651493873532239738670161088458164759599777916965719108135942760036485970140642282240861591298037577493622345278568101026317134135010397985819725940296516905168606034650556673292590220626699708404929529235924852451595529595551176618262168100584712992746966846831955577218820529509562963953056705336995611948891311552599711886903218548986038014936352671761196198641872862964067224338807235594143663184327644388496760649884883923194705732075949561489415853271549751847748088350759231256564556383748018775631430540326888770351342979068482148364953623321867576234615345063622534897738611473174848928717342272257423832848267073616327185267798666576824442024027758996979296554960897654432357546682333427490360303384596078551080302061481402307899991791470709585704715245592604787150450186123444059536491162645691897643427903465769774716961971501547136864178319607417347301141632016436460647806708330580222023841945203797784034669197910586126731460704865188428273023697060306463853366847362159312556705852411972104452645341773892854696846106075684086438839267471958134781607960937439517869879811678115209190966587019002108059365698669475359256913740328201597819100503584154517816609042223007843974925112246251478369059546447192513989631003640406158899063619186096733041810539280264891138475571467665356182354197311207412551813848105919551726905826986806278857834203123393131788839955714991361991863585475849779960666661382157331706614795030550133063758665599413147935816255778382584466664434232492683798789344254674465965460559181204986029984734679357403170176615243553206040176203274532838724908413128887094181260328963244088425597889275128861855487505408506849618130862961829957841824734095197214615435565782586755154485145171677051335916796734707480807260948298299405078814398432993580777458374585536207006115486790931335000524449147870649582133606955666318036810686391837289136871033426617661083517156165198142467867396465890414799908359912901786354197576782539589704197544204129347598542220036574121008073539479314333417211291875901095601380515271951233196057459866560922206620538661998474136715064728554478360428542347971641237551677257224500996066572297112866565150045352959860818213063448242151113010074021637571637960103200552041846901161146010687186957733685130128711375045090622754716013889679731718589140829372320506187754189910139821390390698471438076458538075515236222369010065387218651772411562739796158384730786550041119040027242495937367495474677478608646069059936687497634796189780399000360958767803695230127363967859967935844049558947511971031888514417017324657555933383798435497090309173525991448709779305784197776513993575768432046864852711870443173136142820849701950336727334356488988746999934575797636657579749278001174600095028137931360797784883007990568074501151030782313132562839476031035638947686075182880393357116662308232619996593802690247092974615251069284309389653224668235895115345272550113052025523958590681621505294881842598520584327049246507590008180782100967320652050927086098487679874342095111083680296041124880661139213226855365110909132858656850318060598998509580307312701248692049791325847421463531169449051630728548405558861004183964634196934345813713973722159493606775043702374755682231025992281174649326137587828747837878772937099974601730279727129905733242116206039626461228608493421141180399822889522102327394288406302927835490903227614263745880966485853910516636255734570679475556808682248244669998182762242814013095890050250540940639287689084020185106984979997249429317167623883171865313127779045997450320270264316113367219315925611430031373047168169422331789500621079369083820457875493261192576190139944982474703782508075950427449368846855533899059471713134691252983079392822856082969142699826934312464223332113244574069268857188995696466111282581192558550657163391378212760226948542089757907155477114499712266475313943460763954131064739011429329467002301395949644623838940666448284094641720934999887064456064619593721434116983078916565978156477050290879654426768038827349808705902136821283229391576255358340102671652510933969419301735917237435274258098510199501162760790417247170680536306887725715627216053973139728542769074987620366351597066930286069931316724457322132772335416157490375015296305368794346509457829748416694679550216565372580773097179847869556272316635837000020642614643172151788721050793041086903153987701756543270384289086335119908567913950760847110765621611371130395392053570920850508937628141937921667094236222263793862428393988727429838667146952690075680490015135757988151959317440316229879605966108028836421875049364414184342955018904490948213586662332135397077462631447066063793510556529460486790359915137569505120192164992490633711596835445929678520833636695496449454705362378360247049540300749552556990530646245118108283483122872377839362755665466345593424898432875227635049752300999378382595583769242047771685402327918042413544455252883358844099139008252405119236581013330372698009182107896234127380206946604700918653859876093110802668280790078199310211386473976845784044819722841399892994224062623406761790285357477194080058649286345446508150410625408172891098673347701984618845544253804624266573585021352439488915438606104577959785506416647504092337768712785848747547000298237991815866241893727181456581850174973285854956289005669430687343227152623646734549661809732182347435156352368745660710249491921739744933546323663886550803487799894093728976070803606453705987208240299540275910693578806430968573460684697291749721528723933256175231093124171557785421240299435416172787924079309135464941703218231090233281073514382144562613479475128102107291157227246540783816006711421640390651681960812614596967215618326014946002794911696346420797031433291250970592920575370269776952763174196741383389104203562515046421225696166184926949557402888829353292183103841949297130385893705891426373690077264795545560450501460578105680014389723997580799594553627951172459203823920436923889712802299688940479633400685771504596133117791929783089868876042068890607637163679735324716863148274215028780401523186550984723700278461057562058126809324959466352535501702435025392595345353483810946532987965323428096677414762142789175665505227617392730668328874157908062098245749680826239779397262152968124216572014738843830173147607664975016315649320152623170964012741138166501911635274396483938900278894597988300258937639494253175802479666002815143560226609322381067150583203104861340071786606696637696387141742703894128571366195137559559883149866001471122823116593863309608591047388416936204715145000959170999671404775488982595781157052271977843819692678425918039716388783158737871764013685250273368419759846886972218572328549436055448991158830326371101507854066969912191974616199540509612909422297266346674372136852197678097892814914344260057302525505202202433634620617753158687903131930449319724554266841970726112803147071256749661546933548529613483035266354193584997614579382570892400241542361772300757754057238522493812112487729481868824063756605478197229424585778090622608115229958983538235092777883565963729824635482135580477225926221796432025568681579738699104743457440351256357529486055197876708004422553237326465503386473254464278449440019983641947588031350550829379501724723307589755449686738004857999793671168846364891557587424591592100444340589436951069618886113085095663991077673846284127027297829683418740844875159141260039554411592605401001504729921499333734355303318909566381213309205442964625353009658580114079989904802872743699491671782100343475735917294931183472184006795177378010908476752645674072654920391131939724199087923771983532247752210973976512794627828466547127892739858066998416247307742586104284647389512411958382369428828806093220535661675285337941907316526227079493924218460827174529791859841876893689505044395430376438267313302502065699822210128155811733866113343685894844741758580110269936741625513977237900726342710697978086974876637517993944038208062483315139429398990926323209598566214199710897030798492772960525849005054626350952324042089389347361311019112508663531767554704751260822401193583976586871385645310037044908403702872226707177238049341581153305198697189603735787799830866876940722056624274322660271520063312887665519491511589785072454601976079292905890527701046289212883625718042095017789253679929996154966672777570298413943034451706718271048971857576785573997400164424511533782265769953863689521454226595416622404871897368400500796005779873169611582098925831092316502450899590518643068056134889293521795769189473840451918084939600771035466214546074420551371593097682233516557714180857234115319673788478656899609020204300372417363839825470820661327386985485494415594722567590474179205595328093193547698286061175971304788036510693984534000824061545239109243462021674198467251846187257439209483585531516332924578539543471770077170736793718313634134564780984772144577769968266461203958447603544315948572836468265510755159330800224568378595439784653075235147432803034763132595557686922056546399631970240778744010479018048316391855759884584258362645732136861490033345974261560819888896567474137703213805481141964842560991390146554902669717639002048669142778956948469540739854663882826510756161452108416239710273994196587437910996135899391207110849059099309865145099511272068077515239159603668440918993397512589637474300702240932387098542008619415408735676531667552396115179231392159210349285680139383856203097621403724735935260899465682511257202264802938109962389891778749142930565231292723374173114416148181554317436806382744343582181212941191540305284286022561646903725239836745233918901048303833606736825699316100144813854787509307912136028640180866911404197094484298598748389413709111823085734711165094992364536415833626522001485417240231353555844362399182678042903085385356640020097332700884166386098140132586245274740408986453197649020295522619191771485126477307071788466982069130481487705393354909719778141743523626329866070708693376022028819975868404902358473872204535821809113428863451779201522671860562651872441620517369653357825757651722593988817832631071793593053444465088821516016089854003985574853099597449582607966048486294600523367099549710753518381230422309349150670223074681330445749429314724715132883700925696370059591395498473368687451016012711341919835398074708077230431900100864915479108763925087658859528493515744742757676287375288919787271605588828349644247219359477583340327338075910968876032417191758027040397449122314372093000096998625317088799005773801034138336028731470997495052785947130898561102388487272624748820592966498349168054806345405868096275251560167338685821135461025897783684233951706639455851244724926096728550704431036167184126725124110893700796325893024614371488459656844208619196770790348483234802277325865378966006269874211170136554941546083877769264196628289235905259064678909430299597269312369909074012078039762661053563125881329737947309081447629286498903029935081133737759316282913696392345876023457876570256148788912149312485217240446891825187264681006167785755450847721450558266371531800217721457587399248891224759369767317448133406680422183630213529745055416127922249168004684761731013177455472673171897361066932594673180497377004123132345133704054942685233460326831841120030586807359984013815772771415202617478203218611168382192120860774522976597167704585038314415921476121755374032556279067948512827810346366317351770452254492482935374404251444261129787284331625201175303432996413951055053790251926611576176581062591754597266310379585942606814392192522694768254056524380379808059876787487254330585603433658672995298139226390296396754821242207641061874410049462588618541077927616583885560932575795528244275224296427011330720555709356832024169099806948177977786041599174556715642929033101324504310474682509811139495287722126175186327696128704284143451817382018061286284249782538758591193239748257125374171352695026493292760828745613704693575690410134148262266299930062004509824868448888612436406154291831445956628810968034052516535763175842334186935826418674406793881717738686583753152596571926504742855359141235308095700990877766445681346991012690010479811542846363629740792351297870075997978199497943939857904809861076427441592482990225966123439863310653969124653144158920962838042537751845319158601173114893753584982676378411743802594295786291973106620966511173217564843932977007776027359343286824008625658873191871811516429803893457073063368581074937958296982178878883410738154424312857851273478215964681152327369252581352442874711818729339912847079482592344905509904339131816411838984910406280804351596474326732387478452789475360233609709027163635769007324676551434231287541897355434537396807106584306020397734877518472643055178007850022985272717660076212858209327791215556170877710827757039973080297218886448998939194338503610329303016099878887811763347747174683379487555806373841566316705684884494358301881889120664370072419559020139710057096859722408562845877388566610923778153798000686010613661836884810852916506210446919165735588408438943120997710838086541834718888914793571099399124793377504867848431791364520851035144767009124650822256512005932514894022708238935402809824961528965525811243574269015646756920086478723248180756706778147631725154692385652262053002424855514392966952943450193784320010802429570797678277170481835564334534382914001089734221235596847108723845351784962115724652368200803114119727596697449396700754891282929120817589535353959171785113293403133356189073566704489335153432113953262616409836639962987676029548964994551223932089369981793066190061685024567451030808587116782059389325248401504334523650778819676904195308788976010454508045013579154603848554419643966688067332116986973756724537327464728270093605907572418892472293449732776403394516871460256672676743057784382904335606941209163438460312237610148777024456072200440860035346025020302266097982279704193270580161248583959556630338095366564272618945761109711448207973026106311129945993750371735678268991404280395113591968126650143819673561581142679909859579896369790223975110007041317374623488226228223380033673496324816790838648370136373576769252923975868951882826355182704359618696108941284405730622664074581024619022111661659736036063016917710645431986410930767655620250638746295020934744221565360901751901656248694782180107686743916292893307879300175369305564815787617770768884771610273112828961364879212893730025254138564850273772858064058349636254122759504152150387486563390785525093345245677282944802370044146298876498607187088630578350532013220798271447467351899827209782051989442395635677335565589993239161273900745765545596848319307238390370392179098027099974510929797050234627381368117444994255974975420314643106198241736646863144635775559475512082494331822199678808657812811130394868432072432214515585719107784060072394535711611023129044838918565645437562956694389812307842700979661265694613825885427331785923729723090130685109426828656608669020705998298001990773103425184642173567645235096448702514660044878786013171504003624044515101117192178950794746071010591686904280002957052170280270962109045535968777285868546192681371811460897156330189595368662002383347003147013915056310357431734486581359297146261358307609137125526071280082781078465340901302930243668670677768913788152611323443802755968696537849890103565838167818457378775015301997458230165994434973934981103676622004206243817767196970074643326262226752916959915855881176591424392028664724259797395325450733847933143829712513733892343099952330078843708643245930163697875009714207765978811654667256731492516019242148755583362907468407554744401195237874716838422982496260918531246410347191758241368804300627417350769256065096053107966341317677426986502718147540779406200624407393827494237592423690881108794247434897401550699053774094365147341064551498314167694229483095346743467469456754916501456238237176890420790693098878492736095877646200522734869499555094867663533479113341844720096844372901935095764614013783273625542128415608312478330498204377502899401631486951931390704188900876416237414831726979593146712340237448704516722804285689977594460104334390821965848732574983604023282272007454039127659883307470306514986994352130520902565917630336772333845123477488542273104300065602180151488373133397801535606347930428319772304840931025350528206231461647004753964074527627813553495202638250604132994877479419659993723321621974230578202396108973642599878090012330661564376145207453553560894154176171108640445445861163311124840536977842880122651154127136600603178793078017507532079761877369738699294885982377808148786507018506587662275344417819839158053545745627658316508630162452829668041870269641956522492790219795900790011976144591940852366383254572612119839364093085131796459486697170500169845774110797649295737955292686744280759482561049723648605411371574711408964307859987655043102171378999196306425842336882433421502999505903992775517317589067441632739353969518886910799685041148407364291907620105645184784400741799052824169273600193682974713691502448643100145853798513312863742674759348303719886718940465181309014538275755209823475833125737896517028259087110109488229589680705265671908238020904504795409739608626572603884948549351296915636487347794223497057934257033335488867926074942643257687616069776273533943195212046901721621988614275536649471481593460675457549750076799774469160745095183347279395599668727839921588503869358770845667362572194187049465596561178862510956861335919206819752809785024008497375701686789572096309367615490219171783824928875722601908247174316798456752471886310014839588828672436387349654271104001808487443908773890667303061928676181688870969856867900647462078636450508681300155892539618095741799341690854718063604987335933287515039755697383645225295591980299691632871763166361732906803049263158198815695047061074520578229210796329144310006116825597641076725429172318633000191924963790682714438338768769177444927796065812879890292710621543327809795563620154706842070025312149580920404550143621000444570922573193538369598654964215245586589697213016399922225899775086643075483287748319373544313790854683807936491361119337034154558988805122047409895269696998333765523446633513636464408272732158150591855543484605016249976854766526001218302334413467360006638745595885136160633153817476620599123397914266368758600862439321206864436367797712103724295932497487860790580373135918966148711795493065515770593029669640746508850025136883145143016729200376142224615643610843411965035875767274362208874416641826686707810335116130203880684202117030149356234150571624023740235797388327248293604751699609586854163464887770050643033018117660028013007122785285178423076646975912322838257273216732087741384169553592449674596628682891600974196388416268227839099879732423854897105128202084043150823879323843514752025666394219939285074675174556766209647298755496623404928620994246355312482451603849596521392895839977678144553494722015138591987333827514792939780356049681421453135625904945422331724762914204156966183843111909724951641110043202310723664690314787292887145642354986313762792690372960807231972576599207130733061112764307299106455255262073699549123426691929399876759369589523167023232152836576249827713081913694477813375895712374143964971124358465869625613103677492280873088589422779451598197994342725132774056714981316446788041693350847501644380582657164349781215585625752314711063979850626786254793622096585918605472466553550388823010683488677042566663837770413418288607271670361404633810425056050600022533443083792512527433819569157624103080598046348762243102147838833477901019959798893923969504211651688515474213755239968272297969082072731707255086471789305173598704623133669763993130118386925224723465005075235484091899826758643517074786592790622996564386134370695885061095521400068623085700699101492895898045774174273553040404613959939167580072044037170762518693617961084393962589639002409878160120881043474339163101062538755772209330583965215503923473559024981406642324472804514282353144900418352362605343166720557119866092687731200745921675938813398766934474040430624847821918852092340356169349955567553599209847903880065820124407929198378609944609274880263560658829531678550118688020712400588663322434063918313857835902416241744572252525292836885925068871836996050332345162952252203971591412530167689130877956602493667599534018636434468277134699707764210024925022310381417874444621349973932392960527193368032758028164764668258849644912192532667160385185587710488057337389357762165784842169810184914728591347950641119720185190787415551331823160042012088496963922023126690217750156583617004593690026887514836416825062423736084095659694211999251770496513883736902764780612645264100427681682383969668078967852651719557488374276906840109056293972981337741021514531481889350574945841613978723576545662577757132316334470964421790343520557958579788067603443851104642680950532302300741651940114355037825739000542159079819293432026898552792703123648233602244794996793272438097373386343965112594254966580390320961944432736493511734958076831193370129908694272144277136238864701270010795281882912870474728772760507099587656747188690784816362822407190432828167479494294158859762329420381650027352875421893222290958728328148637895297184630818795083439841615889157445515182202313123288264890949724176807714515624984516416129076811533661848466747694943269168125446484866871891662060391319644035699638865826291143163224661382458961484576514825957231150160435374459504301806164370645173390268604112661808031976807109073142071756721751440875734544032613714182187731196775540758329013094994673085304847141271899780968608637699104124859378962907169713157244010189152029798166301614100982782179550005760252347644154594798357376494604824398837720411502797228699425324513779754985581329769161492807661647417930974291681704972040716729477993163193880481271169734024388923769625766073996444462272606953078481562652380428042747208833595348290365480658165486240474559781339969183241575311758234742930215940040611689401178288803154830658909592218284557340180866923688908847439005348345330234431809335677090621056026535703808160796901443547809585783761046550583989863307923731106004598796589193263030974043512098690331705402294833001031491123279825870270322406103603214514190892359610316898069686114036959398144443374793055581528173525214818211121580762107745776424661774125460094805219046578311846462658825997429523491583439250272008670844648208588627893500212498308339871343709535868172520531142494858106380988831223170390751930248940876120410742511411991233954446658344080325632441199264595865087002907028396202568549082009965427183895602886098005275654244393522779343272862732064534696024492687944219698428148785884858427471772011699436890387976171708971769443638871241657578101804055712635341199558134202993119946014611403961558599688222479304262527369429755062394104541227380941330339369556841932242531773443612530207628949527419712014259173014647907410619874324010418013291144186287675953378086249759670466816939836780212263802190111039577364002873236731450637990020127750124167890664983472404416478119650590143000026710091295633497029065550582474448782688980948817517134756816120472769746663118874185645748496253612133617269318784205505362885686021761500517434666415365259207872165544054761624914046227673913483198634615608780555424710962264771685602046124629882955121849400552187406119829851721232306973544521303220622503889310579059807843788933105291533472724917975009439907657307046660246171240794636241222538167087495636631078900552055307464012726427014738399045371306955335857633506391445130628300733158373472804184107235117643585988224735622825452192368738441619310537314201224554445965243490396349040154743422543720508503754455889316682136413007377230334268736163296933659858550673599854421418146890515578658482250758418884712236164856109461856624312862751462036932900287269766596931823676869968270590263496962681630932067673519833501934997164573590485152162069066483265675527063863189101648463787585342589744722454841547783137679975856041797055729975768519695857378290779347929856187938008524082850062847750945225532901896684640432480352894883256377465920648650549472191473020911219972588448109568793401440558757044113087354974361790873981703279493625558408958275975860315951456998442138393753982725454375864898798853823828389749087233700226924992589291276333865985075447035651186157549282613655804942237212058002012877724235158341753740767233585969193080854681294483894418015677929605767679326235366774143222547728829133106901395791493710257372191040035928665942715653879042638769059224823029634306933175747903674505594605762896539361997401197382080169784281292804389507972980255051061637045776490799394330454871493402592774926454051553068009407867636690130871330087639010796911216726592273771487574170400805433114201825725134053280115261532746209444553165471706185855653933265389163935504978437513933005691222103795766177869196657638550550312460938702137260188987214444770358280066393268605584516796320172110500507533184581354630269098683883207811063047780903795415392124299436630366003087434103352137081372135755127521801815934084358415188702657102040744317635499561739534019581428350077229631671954712844429233913664744926488827582623900769435878013545901304096459488192700248528580874367086363876792838974576470595290466166133605827991779465235093641990837280825365279172825834997931119576815611060968216777251155692111361475516141584573392097864549069891263229081529233816750278834473337242799853828905900564721661239027898625379407345219736774471014934833985797198959978427219968968624277538434827416917186258790890136942310355400211280612242755631185215232537406885966290117481180764807368922397261538388077703248350322485525871184707892630617213214273763546159106693959786999110956157306520626426172477105887248680263436697464184328378624301859287037454518513418672047272093990107453047820874770459586199341437230204240764039880521719874143554686243510444382077214882599977448112422155799249848687558121788616345984373688686288734452882429093279295932487462787464831039009678239912628608422952720465497595499451759766891787035475539778450065181918807903191432160008417895143196311649915945891311483894181043158219705289224530494294164397122039394916744087605823208342560666956911581929624992342064753109320864614001302232794747120751837696523201361402361895728409769209171906996072415325519691083008253387043534455649652766603520507194867523662093141623426431064254930402573700860641192119271280425914424394447142692930323011321772091004554581942021991590917094197207832425181833201092475862298583859430893410043169114690755110649028618686684305755924967146004757211671566420354561692171032892237478233119759097254389443344784500652091311552118525835134139819303977203974427721361935748098729438224242439558279537151280048579941468839109903719043456258915310425021771034734194385075586275056701677364237603415051405623943894467957428003035358390266365077953126161845111324274801054550229749346166838301306188774916781142357179781119504156937382803910944459424796007317807771068809915318754685374632310461103903208782781549888176827575373291619057652326736515503369988182222689677466248227723360296704876398257137408002394528221056798827382268053780581303452476581763679523735011872238764043774855439601033662131312912926580482022862616429373584804310675582221790753323614394350694361660399497143260822472138375589143499710692395039119590797555861779379689352741914687187011198605647751102927883976973009774199040376469547321471665980943563452752942617790059868641819468490473323093456709012544228897933577931190707272883974179353516274022954076535295107164859489837626740326826711742529250069938995098491491473168561200679110246953482539519387467004223879076109983999144566933414055798311727638067353689270702068098786782225550528779836454940772193892364082796790338825949818515680528098047679344155957739364591364211202685494851865226880992037880096663821640618988997371683295413392626179207249319845109656230454155576806295034997464625884670165118906824805134655724865799112414027698639174074892456687363296843316702162488023863784527730716728767887433937661279087255999348910773021966704197922720788823043134320044733359351278806414763012676524187945333907908634592207689286737044371340230270818934618213394302360278710118554075025697392927493599130759348972100068007536576195539759382521079561161551715078404206372771273427308793895182738283733170829570375077215384757698591175969739767154395309593610282279876885047735915882498609857867717230782435028812799919549138983631046033142143879007848887096442061394952618570086444264971193050493887698108670560378916613833807128449644326161035099632793189996003543653199980474139062310417750613292405052092399165721158888555107116581898005706790348716803190176075163477170048114418798826116874476287643183028219398880446431756985710543786771099784842834322140710960275945698347636208702353730438333170032525973628352451418012776337234108765197798414073356348992804930759012322230937491066193699775595869608469535792771796624607438407425361415889453515195105712637706542865586521840291894341165793647745372104156679885558668131228545884188702339597151629403814454765208678838137012353713328402310258150070341098396954311357151697104310813193141209558131402022369814595741010289907997476405579477931127814062073054672455663675353284118339316935345672045827942679955761968239583290029703020970720245430609142623331193800160000199920679034609613806358754029036658969560331329255680164153149222316842049269885716497549502053132772897241947521404909608460126918181159020026979235757412270605838375835968545955669661446038563292977991015110325348434308654657547348137598161774512497979197436708174030549325899073281896765158620854957530184090579797087904781024183700262024505712943650106542330723357643332150072502234862588168818132534311536306690786670786585574567003637222054806084127339715214743274865362015982947135935788981023446578468564466361413981227362077546559020998081037282419205644988191473642473142890322905080802079734436347088308461014157965792998061325252152340630908413127435019061668466377938501313176882019432117235514212059412092616667306203963490572352562006283434931503016769849889562984219357464522882009716868391305586499693232785351618560596194850844258818525383526419212260025432053202188550595007677524283484223417765351916661427574140367579234691693391828519436022172027490559569498743196368897316732113611044147709753259470610562114519675903131927074183619839635412704734989897726045430491730343030978132748941837379366333936017925811888216819527279987366220652561754637630973790391920007513558659971444092118439408940470111345853994095213554457942390108134770548037788331205761443927662607829284746918602618034866600316979093611887368069772092574485622028463316499074338606576016115882332511151427346634320945904264858572509147405782876233334913087962988481024933972711102821206727961165408734955220463746683023668847990014155832283335418313476685906084241018339281918710901446177555303521799092738428976081722778026012863511997536246684889813314768011117854277174523073156698476931292483884338312192351980020819247883299322215182483846591820371551827972193428986766225508387173568364138954560626683106000805691248252070304967638708608029474125908906629102548402173728723169474277170841806915668460508770762338287482331253771559082183359850504360517873381215984108071184818176152632049289842372971849605805374582883749978406935520104942939989525517130607351677496709101654213603593284464965211614437797536531839319178517227692253373441619702140583395848845318918978448395975135674436264000003630519227577965023040106960281419839603258045960081863848478461129874471331094114169439298676437591177597475707539190287783146085440142720162833225075539910549900361320313261721510906837217165996310945960806760330377287411077762407765284633085126893239592018341769778126433111595434019200940582991378083202701840572670825970139248737672042882918508905866048585944338402342092333279314794638089121237899840030478228533762785102847136706413889786114336847831569439840160205875002778447215085014480398736827899098764578397295993962024269620069874337249231613760379145906214587112661127849131637779247839276725767742617893433240465755333828106603656750210049624968007908860288226633278224471486397918723847296571359945480565801000963180384612511585723033979674523799104976708535395534244252182235296451043755521365443089299102652818149616901070696395092010457107439179397176114453637229825185228354245925243720678766103812559831928450995068808079373378595438345066293736076531320316276534168373590005864282176482746701783134220788165327121951518699102010348375261914918578264654440917225780598397592550156620773249244587155653825323869920259011668083042526634719250157087996308185843273099932437085114351731300918842449176138551244855312051738371120144533025641797150780607361830343582319159416102080891390203645737948330864360246279886623926427461411680365648488631745973455200363173838805504326695203894572126658934376095155941613997118294025457423022477536681406607186744171515671949868301164609658887555380134838631746792793811926374074168092124372084041796226315042751607677974709390468008573780445640601731011951758174045605820091167027496914972167044338739720375077680306099445132667910009148273921367685688402912802746651322600652573701010599859475665564244714168429150888914497202957602267242843808254836627100377429820592000126145358252540417700350888845259026168869677799984948608309963874716175962005530481183095277855108219654247088064311560153306519881253877575423629423139738333753516875489834142597795813789542195155868933094263089421884056102269090192266847406638761020144502042638751282600018399339083141880985689935535660711628448782237638502482043694490922590174540427263943565567030429614988895533678607046076115622907334584416066735777397749334214984957207618631292107054864387776369671975459213823915925750583006088308000223529977150663868759418786351074926809057848763099193732545066968559741753877480738153979152276443241945305989880801458663745715445850698278578477950324968464080318297791231561361746375151082334128870018333974403316199107030776665130975508079985038398288397436069078877619703275585887986811715423568212331676400213626251323755033613719875451617212515937849536313575278266197844729534206489157331254037435055128960989125378303905621424267652224265429491356739942531273149462717986042201674250563499195553886055013919772569984233043447210633768412066189610165688183626652477001965284303427574752766826080837795355043132586536462079503133074076225939954291737621245967992263183759326301838883823857690513885950451439534387269929901012200009488815161025530920772616280535136970815723675809766440576200860356581416786702166608966515940785618063964753552218742647665855206180008165203311699504703215802333069384915453623833528125167299345437091565858015319194422265536710043125030152146485193614009133951636883321240682937037255972380325911375283346989547638963398282369470117213576948952509011251304714671187940953766830632623389349081600828778412615213975513501482671211158422857229517464129466982076773444468994833349065392470787794169849362254985678922180294982927008588826169279038816178832478461678100043463073044317491315273733712008005942398304319429076379094140595756570067636935893093170242051829894146254469695299434073773212466319388817138665945288235980705209919759596698350933237295027248931268911336852859838821403381481463823057884241871079336801515774261024901439213608904097822961346567498755691871612754917460230305101025523304221333426837046803374474992638312003588723971914361795177415888718963466180319425546969343750647455539950099719113108611302468132248295180208704173939701854251841159227935999175047915318513986470456878194298931969020035720960217485805154947816476302823887991253686156461315116279581108486719366720019299761921559486036660249467846505682259541766024320010550421769533495327451917228894440229111098012190009545073095397620603887461325295586423030119651739369416075446699580505984522915685231050200283769743525309610250554424850124707768057253735561901199117677426127283338900395650726938759379114392041992688189104398625125336869387932499948353168709059976025117340591226490270751893532557251314225072408239779683743680797822570283247231282328062168444091546624307737768945384105068171951465595710004711341308875866640634868861229176296450298832522752734936269575330650259279315259474410097033187791568099742907619813143238727531876115070504717728242581687440798280938112779971664235601929622727124712998514075821612468820805692160409699761772798914073393307277046494766378734592612737384456806816409506871145094048012153191390403940956207606994742048605282518207923812245541978793326928332780258294099149560430590302650978922099327471782330187624805548448643918034327096854194961403052774913944714095544019682886871789150767850091012614947114356963710661055558281351508558295611425044315311165891519304148914276741179169666347442730982737575587439876519916064163543742873062238951882466728569955328451248287426315699011070896375250299145480703600291693342636164510211233477481756907304376547989802344178971510844804358454068042489302274601359984888390226005992850745594799763703987129967334572095952779043998281517371411408693494481883149330742174662455929919065838486050651168201312035631142229618352210889817912974607406901969943887467451044357828399814245139953052671812910092650703880601592546028163256127558417624756986872017071033201575712174687015288227815294519870685231114268080844717482106133530972947554773498604370533575854754309015641586000855678561270823690090291699023886173102683372465895202422762331074703471172262618854833777397425105266500661143378177420955911216255595654383689491069854217517086307117759852323958122356785217746663817974711575322712505179540904959287036179707054296833450644557590783338082936864758894231275877941850443650013473680834353735521987997293873974750021778495172600025155891759090675004298819049766464442433964736746491885879754305480196465084945563656859471575195787089557632125035675551376466692632021787793924119922324384076457634671272817943748941792717134296948949768198147776378945401200355350062971932477056998790965195445520689629116212262204355942718819817767436061561793500392322661093020494610104349671806848126600306743865341703683973816882055539294383810157341388093138892305048703851272523278253338417743711538191938513950331467061896129363011678157539272622748473100992918859365537076271726172535622953849497804414989078695827839250352965039389012123023804179676474943956810338932308848136380996118470923273976530283612860920103843644810319767498533495066384650456113073738333854888439660614805531120017349702862143852256158112856734047513837413423488454571877161667852300624201571290774889222501780737652976275398583645134672623784891047250321687809001548782868249829099901208519524444763216115162888687649169093246496262201395209016562242972591113456956116128865197128186489110204837543514729760889517852745601115742452616304879331950805429564812458186918354759118631111516869811706809249567648059684719938886024131360632914006313424425740592129122570093419861509393149291986821529108856960237562906849227454354855164368157887315708705231296995701351795415557573545906223218122327338405316743689864183581315034994826354376218475333163739146463965705132871531083319387044685107381592107411085442223258062396227773940556232652037597236308231814427492952867556931224585695313485741588384813968411231399539236057676192204658289601359311585545465444926162814763792200025001650858644021472041306961007673178876952141367174095359451602275109494558543063946534822346362574004277919510956614479811424192927051994139302592362160890130019076189923396905793324844783981698889543932535477182892260377068936676225623945745874357297528257832793963916346681054961846542401526407849690089061798743440254665302843146983351923680953173921902066444066506915338835728962696417718029046218502633546353561960052296636545999425726066552711217809763314411346017008306526652290363011319458479114501864299660014545681836027633351283203543935725422122534933332549959391610365917062323831670495287525834883030703116697530478344322095618829939321454602449122682015768434479270439100552865706513599487582401895253691951835977356499464692059610890470009148512878809102705647797418734492259635662446610563582190909870285355855533617259738911297705089173224405817692907564519628286354108985490355239724720598251715540257147582835042260271837006540627152224962965965479347163697389501347313434783333130759037589689809783114028230152097899496855007027097391483028630111327276187721295723263049566370901799200325139415606059934215479467561958678364925526871592132389418672035187698304786752242016186312536962397261589397043235205332511319544627941995054211278556633462896579663867168590835148758991978480724693281311392630738652125259564112731005324441130110688498874894187379389914025016475662264672312180650537744270113573390827244322788576570381575776062184454359026756075426499849723247476481330604734568741653264507191395176502559567165543844093348966638756949453574951179043523352924032496833259610108094951624765737304297849215876216174870173742779046414759244428308919120392460010346434283476532077270907888994896046945757352324800713786540708297234232713205150115355792904881666620711352127139900208178827663087760312735245472570729956379847198523250742650160028232986060614485884071903489981880517810543009870524159130540272197578067518258763911461430272776572630407805629420379607388109394493204079637495342755027851926101158251523959885399407001629523558161768278507327664456493819400644162486086895880103093201626023707083555406199391324536675809374557577621962634194458062040203398898686261289578075689099296304844359286128072457495979140396069507737614834050614112518786368317812180781702889690820340393710269584854532426645481181761589922268276751449126106511014211652144174320343878692095434010514078665825082515558451606361468897936373057376418545597721668220308169418642457108458587503334418132622965769918390198589525705449996178002867438668163721525223341813974583864172324640026617118313438524394682720205248734610957455461039021743288680833241156296931433361164252593267470875757546210445950778942666709785094517742383880328602551213940895507593743066047867763963928606373940797567728155590795718282738884623018401504381012414654768038014129859128661340252446973557297649373237451650903940334959204575854788610937490307635914795442313679027612227733780444827948462223863498003276046564264322399625496913908038716637034757045005636401670793601449413585792466828754876835485893730556139432041645549957083190993555478661677247567643443374587023542601219781802228716281642196458101154903874847730796853672412515391517286987657216513684710320681251902174161065365073188748694356504303125350535670086668586022795355047334212124025557662259582743089912449525670399615936665601845968158894391709644481408151946559502589431513711115510635428689442030841001327961865656470555950135284095520856317311699743187395095280936876951385462657797796253496295639553614403272122475665977146885020078032948014725224679486087705644705588789053990966209350225187864804563534248808984980018437184776708074702243791389583822172717746369514942819018402950557260100063196572093092560024536429917734481175362119481423126304188592398262333989846467414952875767469685262587041948708802320756136749929985459209267840467426148475242844431126651451569839574166770043980430778953675526877235538655416853926149995126214555644132860555635854988242773214947272444320523281480108941654647457642580082918678589138290891790493681371811750657809725490036924228186542514742612940110666519130798980008418939892622552385631299082276629586289135848818609592130803510505998992339756187931237013337359979600592823871195740161025782006471799579879882150836585131559271234236629500510815893522319317950880663952345825073060079421605106561248599376370653402245657430092022281774898024307755022326329172595672548721840136223437296579949746235413551097532994742495274153255766785641835252519219949624647381593260891890377446562344397952735735348790948257515798231065242912508689379302629808667216498499117679464214613547724052457669089364940978595018888307924300187406558889027476905141120780151480177896397996499222860406004413810040039589445160111594379310813654045613440153430925768208517704698203688320728879741145634055229773719132693618263204253318990676785930525891084428091842255178735384423239580454814853366509222527876649209356683205068737965688321851671938967979605616198738747344288474336978303923691605385586689933045604424290324252355703084901238353806063211966337621578206053774916977528147411501449150122500665420638824646662862633332855035664261457982381159694757736706387177753263683103294682717770544632186791512101236721256509047769975493713175912414413193753602001678371463114610298532254226559483636583503430933919734770354223606942334733085363630675850510669615676964309481455352688006675650985863382050405592457630263641695867980690987231468922716744275174379919096004914770134613785038751130525149932686637590446275244252038144238687661533636085514244337557520813751347860120684003534032936710631148571483897477381706355107172395174065930617513224284276656412894685763025623660811389555908189248609468526851367951633862299714713470442556986598434275927739823534611431456310562511520812862126429639837502832832501694515328025464332573662334779781535560159796173226448169729224798506136250980316374591728014007935662412890063762488462610972940055333047110742105597796414600680983787089475997292122060346568330865664153737886472097389978900628621194754670345705157899318100874909632253913789236041065947109644025744236927176723774073733860022874369985768990119931242599732388616123475429367883845634045214447716417358073740346491404175051548353623009323185230474056045685833535440664355527660646791731764137164118834228035482970759260783039936184722277889346699838717813388712015886285996884464314591971381141511694677157484122941782162485312885095830621577374863610280347347679538189149441463150206829981450981750662823685147703507100680007517969274883809532336933138814269407294420908902546060953225277629916191755570831130120469870699273036149011640550794272867142940528750311403982590789798290086683136825824605313791971056592104392343822984264929948310163834330777281457749464500484770750010177363261893161164992053245835627044498938346371992502596056613233513793136155292674135885682898511545183135533702456556218076762930988317372717874541343454662112847834965855696872693295974227156998688343714514547725528441159307702095948730879151905567041835472407152315371546323790601116711164750512242677564172855298474952353693465501783905382161917943231383514340032980472981585334211118879990589396928118138384163489229571453036186451573678654795947712447560966356462297170782514241628978151055393030727343919106819982634920243317036827188996698823185228836725687825819590983702004833598653733699357310070121883832550929501150918649531404641323335791960538285328618658449162588400244964274395805321527976643161960299432222332842295767236108321433848899257277692014116065197518059357845431447705673100500112518829042714890426724421854659953289294250363586253333448723093064198384172487830317210081620441895908154783957341097448114950617355238421368203646882360587359498207838484139642464461079205502571645154520545416309253599924781795935199643197586913822344262210844873234861063245200419627655660090375613838132029266455262610615774672941822494771148885770271531864422805204061125125358381732498701523118172194967529969438438797086221352882819490251480674966862536596251950201003536574783135351360923123563070593057438789732632534308877920852986723006136967893227689435771051070245215040951227364362879857097453522374597811149607004353019857378567040055757337662918977812842122297696585462090062319813562156755412119006076114496209924070489067408033287497453720895245512673016123396390079852350934415110068077298520941878413671452075425661909625589875916723569748684344492763889954096847910886544401359813046572944784037468006398560674371155708204356738504149435630845335768782040503263565710141565271602587659817019567688730887284875908999535121957638537063681846195018762554304722647328826776203571010595416018601131361496924965818391974561389370065041930507758974731573823905847022856632143818790782047324240200394088536507945461347813643155744382914300774627174323446884123083413621647621026569082523399268570958796149641617353007341058772827326279688631959604124578533263545710897365677192523288546089785911935650110353112864894769104589240359411003313489671752484875896359513448201190684706235459973635583499749872679867866883583384075004190688320229631571016246624438120183889855701313719564515881792564186834957260026948650605889256393444521967140185310034989498532122643415568093383870238874474937410535587521609506150430245814283281425269132296122003858409878355595652997756728486500944487151498667995735481876749568353381638277497647199299495803414925696177253829051571403590155635722711959407451233266783811010767442357466908371693392527013955130507115645152306011051861033901325925342656061752578529199461285779827725730872413353212357617544114799150134450935930218670074025649265659968752500102332639696853654839628682216017673250819653598924428903488858381261500049785889666546078629764452414625374946251408688549376002634854532214323918837215677594153926425831779096022270325872218933503653921997029795857535382920627757462174302784204750811971663904976188078013488267720476148136076080208061750588402731425007235029132892732073718684861022540753704239974358124486759128129570129356507994577258070866013818331245942072081864762725721692696759892226153197281247743709528019753766943227676127398373805280692737450012053935462906281173542416636198830480203468013547690434801174047985012249000260360699366212116235960079261463744534902517319777626633253423886281270052230123069173773295266766494764545929423567261261830938538307019658387414299305809459924109340922289054382841409030443268156573049173503377719543917284862556116214533171694262859933940429784066317172524124443378797917365448645360576945558732871092484412580989622047546798195314150597174080769999161229189209401808448107834310308980791213513490668201505615948620291539805283274784982549024999685629037394290598561748167075989688262268482285528863822681767654124343786512704497740524502742175286491926169151457659014072913251920111159222973695736260132705977858594274508377488634467967218962626922372865608750713102399669725413268541465048807808185369590515129172108406499999883770217031287091661439203490766460452071902696614491007545187771182721407494340518674094571912689486169711272399292492153489495945797873744170819325177668191397545729667599489983332066921134307267592200482800087987816771368646481936019192278528448725631675983684499795684692594254397758296462847339669849652400187056918445993891487841838262111790398701612371419154753324236833169990911719388568891018163908148287882362848638794609335317628287798371890603773481333181946752519830211132524592070687078299813137013754385743651842791271299143974115375324675847723428399392495996866368924923299400468596562576854031194910186927144570820307287695555179867601501921874602619378759580724126088613994095694246873582345236357660154855330142387301533607582557398549106560411424138630314311976937846883344475040227251638840798447228061291057973669572105325524617133458249792869692266271309333375328780568346594571188089043639452957528890156853481840908397359501472625891567642198233094379671063785494286919150082204127212101329650097728077478701488866255940619485585028836930525899495516189933362900264770705728374663718040256200381882787393010087875184522709315640742322705570767761525197891607314222571199443758090696200869998961497037346839554511097350053901674482764853750290341143538831713071564192915134691587308809629425484592618206215234554067530382401677153245233730459507296837898809436996133546075211248028950125629116282508180393142224026823756238184308478583040847786651930581492613744669021504545010302768108183529766508982339949861656292738725466385774401434729956960191930201029008677707774689539285449572630794372600564071394143282469336196627978980367296870940753988551671662054332805835229040682671199050888508236222399204021987605272561583848081133673576222079687879166152822070907175475409534679029419394163043198349893558327422630150131030269776422426045228562283117960733721652158440909804986434680933106780637871303749966644822381699655093509019400737365720156104832415242151874678362635496511371352341013199352248127013092767097791961188906523429261305907788144647087253281124215435736803162690533333437431905871134987385760214986887260766994962480923711515841563083340892418068560849582021973830767644621565787721640046103390451410932019415457527515051021951773308650427776890138681278230196458065005209679825244014195398327042008056678550127465932585923507920622059546169259268493910370210049610931724544452580621743768018091887107321772668499091905653082735120117290534372619117476834971603771485969475286193122802937877279959936829075764960012716262716192372254562481698041246205895707860652266468524874695462644372466329666562247090504984809862939648596328663436960358233302937511096233966138581752765031420989344060722644679720496170686513572174383988899662746445551572312457619360320545083047804236662685669564633652867434582982184315199619930277892058305158324459712916489829326099044296052111653843680482377381789418429848321062999239097450688763491061276513373881898722475545943576337046283323944919775442995915475714519216795760012998394023914641860636015334309342817015495749220729107077666888207243989282568204348648528569020531787481536982296706590468313021860222098150514668922066478771431096721496021171920712706018525825622080395380801887781913460680015760765721529629561850176399039146953551553640425065861737451279059688540468114274656647728257141319549613174225531806506925368939938319577541660582662529449876892394019046220044684527779044273568968364259234483955200481222472859174364288094775419365381316161553928605037202399437849614449415648964630944036269722540700497778814478381650941022854406608757839850970215557813798018525738986466557367111817796344295329813820537234777078723646192443059732938146372645538907546190865614473592020343928199992097942032244079381271300226344828840832857510606661412756036778847825143961320379503984075767438404066666712729652577657846673299920053443780071077888302379685716124479341985134662731921545525015329573716060459450972706199121979979172702886862897295374165580859610229483445835755706926578760341465812586172040269624237104735596089833774365420425999757640949307899876171188930597182819937760631161903559333645706656571542875791966083092150439477442675252588026910373083696314193407910189577889250491856193856633707435698443232708508807841480224514735667976093996458847404440289967341510275720394397596801739362656285564327717431610779337781544877315624693255201062460400415200652887124918436118324745779417179173111692676514552453099458318224720836529253294917016565878370863702738884258731939893929644690589651873728253594791689252918231450328450427955116554976391069987027663694653215372248686066596106736559233656683815334141054557863929384821438315796903421085080145848436933511562796597978407642812710651700751762565855455028045641762796634219788348420830574542456914851744553793668751145908850120914780000870331959956004754743655575827428894575470147987225059172465841038673031264860427732031545580182866918341806436196119723775077327582185002045028866447389402248439033545949762637144233205551998787906864901989192869861602806168878621231090458711971001196187652537770164441578517608761061889865008998417148230656760272568235933159087552479392260408856092377102858658330854672392243054675675654214985661844213981274528397350728295447208148106252627755906637429007160868984209173504661297732500605120554641589658847363527719455401063905124769735306551664854334389389669269195156738766369338100688932207966984322119659815375273231093955183221662289398724896070725880274581835848837204813452856673248552550429667250870541304373752365255179589449122834323546497800744416448552743292392718055392106440869492618163678930151914073663132082483649109887083200102761748339613534838914018360058025243724724874121211851401598444734921620144528765244691245416958548617162357368113518535746447472935543989074941481790027447755661828975246707667692420406561974301788467147733066045065681911676370550779830984487475037581875246494208019091944532001596706061514265655630267388566856113453808071304162527731312338994450064651129381275861364736385489168932582037870825215092647157456748430972564096214722775501369713948486211598839289641565343221733119777927972203759790364173433856239650125429666175967580597097947843725544336714539578414091677282318644613703679457990928362233092652410251099468733215591018435247891019702503623151824155864247903432625387759857452344886902838780830526565245899493519124405776705296182359167424373821268090920588470164536145751660581815768489928549103428553584546021202605123192418817074681297659501408566884626665229094357383154058748527501195929945512201914522638163430043073313976480593910746261490223084855241180083430622028712651916889619695611253975885184650896645587179732400023153084747633475629589182702165038357960251197703753114586553576938643024040820278339713368791725799209677814128369734607373919820588957644730803289818553763360134221706196936357588009409456618038175362524991078341261970525869976565683439838188956147718998780636050667765462691886402209526335182026297168647033467908960922460781283818896337193180538288877069237622295460770435342430210978680066940826658462527068249742524796696609248319756753810315707550559421470528225031388525752409597557146068825252736981360806164662785340538486260228539205833266591672134758769511475386992428921663669575940920097691119454976435506356263681818897053249082320636234359231916630825983136612717803330786875025813425267397505217909751500596115008727295814277167514071857304278891286275173496923616020153193805895567168714152049294627232409564035971585088875472085143340331976596241658503103944523367201433164626830560912612839274333348416884586488797431761316344226044059290271484315795114189439987807357170259251506616262451871063219728054172717338321438803185725773054766182341927092259158854659944295484844281500151551062858628063359705254141307044296759528748290440025582438248911541775259119938738753049711812234362470798558286459970500700279601338615315364416351694086411772402749221041514201439261509478855387946603802990759188714691545465252354064287579340681446795070860671153254322308503703365895020411044840694816384978828778838549100184938630987418018231549253533824435151554614153036572042334346270948262056434361794367714245545434265021359802882164344474436988092792635386938785290602563652792351916427008906490856562984163698554589982396732700706735221880442669518853652124907846361306011238566935987600671760009199231057542892557544069544158014403942784112417265449911842699292070439964680174801040574036267126867030502310829352032649721438811522480165223216168321653876480986841411477321099023880082417688478409294759195569088955678861151895950830201525738438825107505601900100220124956620797865111424174034227876213670123410326245185177247823270865052714566279395575506154710786628908674587764822012750053045029074369062978069352226144335715059952112690548866221136468540463895272702748222864542393595364618385038942032806452378002414510376996201698819272235400998215290299134403286356080398813589830881238735946592476347771053806908865338848051124363674964737374003680160095692030829856500360835487608430355914383244299127665594762078030835863052752249176866591165014108247571606412687493564412289814501966791709823273367200777794809154294026870702893435853855385894009450598301265244598354409105023041666432202307319138465720021986159522766772794477093294134580795964010369004195031421495808645270761580426543779911129151212848913159602296540976859198710405813764561522677226094306075462667853490260846449427613726989739991363373924233387875003808295846362137248735270871546914590255193707249389670857786854673788090454850745224980676288206727666188605737386480075765620982674398889375779963062575484049538166578439498069726582871484821125228741753312947489514883443615411762182422931331979937266082075866137142611596686600311417711284430089066603665796268816410190565528916572719535157937742287140612731426457678227868820656360670829319375374639180298126165953325217060420591286843060145240168382275359682169319382695649470736850657179191300944967280675275974603241687433359395372692974833984139819363901844735107849882484146190960356827312252420136660768539109743006102707171202357347012103484962056521029686623663935169563282814718955613326426273421911759799581609291442156441420128551819211719993642355636258196014223775244403407587164001838392278867442471134953110172081209130074498076934646961562602588933374275202812222146832108280356192876557927190357070965422735323898655036730695926082745567423987489156287793460520868913981077538883105468010767345126830040851276145970157410371206735188886167075402326556463131085127216610472297560925891111186217522544674934518192673112620502646827719909600236363839824489793033911146846202976560574570441341874915302857769676418391558034293835332518432633613580572364059693016869640733705793193850349678022135221770231118171811572265819439849757161863333346288826831016462190453166446023235443310352515721633912725866829265996884763927104970942585383922248252649070192127912072057001453831192798942035453669996282965329525398116017350998752860717770120427124494233882222472037257663154870669329341396430177169747057348433478962097778832591030181323268906023631654782167984589356676562399446269961637125868060461384042797334387783455853957828039315930246288283570896133799021345483202190071708121066187137570997422449104226917083291509103440091210680896533494747656111700740925318505699204492552637635979624886093204334544626954055081912225481043253799262614293348919599030658775077162120244166960746609721519537588830940138612770719926330947865092085107969088738723387518795470390508557885609714882608273172816450379726694205401498736763086417947253162062916006769463154216979700373925028671707472601470094953427781835885878121495785469666720654128842482424504865046074081193856239940078279553347833784262101054514845083560854600158924776929524757584030800479147293699898297900986002745531532295313906998428598133560238925893555679381309057178159352329592990099226343810789280172653386800405152541680791278516852908993696553748807582103428966669873868423148259054816313863888228412972989778978883695913569195620447072241243927611723649237464407302718593480825234626096780858866756857526051065010921570741966252732030447289924993699610901605922754390450447665244441712748413898621298391600597957278670537404078361229526806212878602345861870874789230604372872367437428364922545996574857155317884071573397244857041842823956395528160454874946882192723331966675075687066678657081629245088146913439012303001433620166025519395292969566605340988675163312429826060938057030818337075444111564543693253439983161785833330269233058680205885070897465385226975673178814994283743943655207675192597716747995939542954700893282094197412110453725197932502163290983428667443534768915555808903695555113981209656554103646541613427966279263145543107863654427909631080794575769863490742535026944807555721051815175691696906062953379823079687550624910925021079797375936013515359695591866093423455779955772108489622531256870329058767980400257495766090994548821454590799933055263441790061660806245272878480737834352994115985077925925895703945408304331447072334207966594274199359515263288685530818819923665643118416672633055234345997296355620282422120994036565727461716245174794749902573369792625108978117384663588611676163686432872125890115006614928793847937196464724932137738471522811921922444957976747137188735018506250148525571054186287466754398632062753359314739815817904097724180814908319754648318737887872788343158753581245551232266493463018177687192162812353005653482366926186133926892637432487091238106830916360540687866002094386200249403684985197161061075304874088826673394169268534298819017110866133533531663328050706685414475377129298549704064447061217477817177456761971747572208059551804561626288877345199702553959717216930785221310870441111504785386113983661405487670050603309270794242194692133952856793761271236923804031467796739621688174729250146144965861262526774331751835256206466123654821904702490418467449779998697273582487995487538774543219160360980482570179354349399410049317452771837645392365319571087494451363270366462893272420818319647434728515246315695761657701306455422342492734912746082950944683425325448628321324500638560460672530146758780760082606857418762141181945845570923262975072544545307940308697711386072605781742121685765697943524172636604364962725270201489107652963373067641318470640355688949853102453227647592906292228224907763467271374321041202705111575042963613239480971110703013838767637538310543018067529223115469866525793063576689064450830185932543747528968520662774831894203823494957098290777349539801765739956050935982348374947806503977648449255778745482320220529008131566091558538876002172026704377262446602529891374435920028004963946649412183888209340772537946865532102042343792494171198636590616705923220789213580253806761808989585056092829720680066885356790632777707566750658985507529679859309792418327187618207487798468197984848393742782821780792680097601978883967360367766167781891854726772055085543321033477634726307766630944534709357130312929704166807301831701284739357752411793607442122823005555799235815989919915421460181455121932656077304631445079567694854982473442936598544955691151271750297409340005344096999156487770119138793822580809544819029294032445362303053690506087243260370888107958120970220039105932201666672950860025793934243220147241119262384014985233661250468735944156833709077821141345196370314229964367298338338407367475659465397555260410640841560627702540776969942270570385176001646365035562548710494468030882040224443006267310123381988609319591130408320685906220701841736275877598639642337554452081861774939710586263131741307597058133186655556443258083311860614392179484686987933584320153786155186508153679998789753432401566555101031832442828946346095642174945251419269153276940288846457537687040138647566179745611814733456576914169533101709972511932580589171484940627842073390998878520528860186126857116523308052387254997990512469983888745597759328708246942821031725674974220331184282568007468401191996256192052903849924162049570225944071503166310801100834030610603451511147905464701460975412241440090064726402719189123486235777942952268360506371661103914928729822497579865534095621902349121018384558061011427362916731846006288606605159539312436258740147810563751666652906521359802141111104247696398878872114436563543119772862389953264041758989371761010120632785960379607607888325221468783817214809182913775666719751974637375505088672833566236254118222927100125755387586726513670667588768543713990168122320961941674901526672718225744550363682922754392968705289767465848529968239369281784186674796751301771440496274222144954634240436851014387132385749108821198391947234650587284738508193585169205613744090204731114906755650772550615332351599751620277920060032897436411901351383692065128295578642313879399147815141896746602472618465263033183455459037912693449607972366370860922105792834521642907017540180319439431853363855311655867870638551149266657659082699678503694286964523112308790459424981484053161739976199115583022957779434519960189799007945075568149963429694639587896451807868089706582347291014204917094786916270971855877413142252278158925476752363980955626278884201606870761739975140915253256521713414932232085138083242891418193137633249573200376963373546611858289241183299224399663329308457024201711178652858433688060817459110589668481365746041009721536721477101887987995158486396350350734595670076853131009240519613736235848078535117303642392771249354662760540843569804171348348310767911729377321953533764622824117597450718337586093767282255432582196850589610564850589118577926580226392529866077528470784195761024653477086299771161902235522577824637960201112515988957629520596037134802204365344934585347428816623058324493255139793286331826756732594161674535007772348058812312180299415656329821187493869217269686461453942480256979416900442435167549966649586327699873445491283765982457553355743351983553243706020766541090914133439059498498226430730987902503565277803956737157310957153918134345092397811893469064247949101627154576279656359614541683956163976264205632395248609947004295865263153852687101465286899595473574300961955889647727417043671611794540444799959279324244707494390639347119748466721368617789227670221640130756371848785455547339457521565458391073058370664539627122939531044397208492816960359987436160185667771305815588778245459294122710010198870017065287747382072008154423678380621184961623398541014057136349166247630747510040727615521130179096825656036620932779698460950318493515598785672592317264165767707746658994967818134575254817121873834615826721558581638852806853632719871021991937645888004716201267930574399471000693335345176363924235650992264755624107553859798562134278162888437774482643057431987750964507592207366788971618897193636944698834821024387447709457271087207016823914928264743441220670500585921619111523541373803830924255684825922438475737674400946005075970347201457389395637123607067618781321776967626369514353634074261823114510505534342474776656827357514080499131335017593288820665050124094422467686166528315274207404692948671754643578185033436178300073662805189607895665760124365812247120798117275726738761956273235155320583530624616340624384297539747149112543754532524987880106425505045354887560266806695956779239272444206461826803005459942561977154250934285924332482777259501025171870199852042139298396922730242563608816533713051827645535649664991070287259763902664684564476933128895204175145757258559756811294132850429996466741450507632840129577010720248233768132612622325417157291160902921873950990566652185463849002477300067169393353195303358641516851832950925593129074853917672805341498103454395496836395425782742937776820022459327636265266994814677725606121525009187068205100326565960232142094185617375596622841600045958158277077843825394906657661050406236814054043347504707282880718826895657510250942645786262581600743391050836106337559603376174365809217752165665679923862170750315077075409292520947786527021108792186605733124164472459585356612473311404443626747210977847956516210899853195288617306391557915865739569847728789351425539938343585355235261334859726373991528502173332660997572463999490893904172189151358300771983271245203494526084892077780477782999025386813286572120262160637190450687772518227574150209873245644733149135284790954863823056596541768809451909322464232753170099796182278206614516334721340717673282522967258936134298445847181671874054005157987856197505485239344985331491426054162316443386933476427866188928221369464970767596033971645625517334997720713071013183903105096328986736937332023212157474256657161635940872037806048974138511037674807050382975687904166817498000499351852862304510940051542872332616645555118844905543511054602064841045713838918021531344503763698794594461460057714556001330266817117512292327353885445288927239181957198089649677696888392530495170594708816619648964312825940394798860663799549302812280122677549504754909063154301681863104371243876639010574596043245636453738460010018388791827187748732149620041739556893994489361724212542413091702442804127641851052534351603859954231671761062691023847597625820108027337886937544257920729374991205350493106385929635008860338934467279896556586742338511950239623954898384453143589135457874841560220324769382924945234371797131139158723293248581782529006746262444716542402913927441213984031528861348291473199503575822548605439920749477670631983731732471676149457538926557113234216510309400865940311854119825507127713505664189464843645122753023947320967569903059078874831043135556138095838013837322238615965531577610596366490057358432834512873151543966939992611657392396435145590355477357373161791977146515506485558675623157718441944923498848161098157383464209072428189926939331699386000003778977330157168943808606447182566539010611401087423001906350775277997021533759760423567050957988428431832328824266910875535027927985505045376506408517981602721338902055396853131102133332524160955603269308024869445111698669704555164330370223489800865678965180364020221368747961051098693605138394239457133136410948352330453045749721136517226782701886539817448107246065616858176878736225695017009419789863617707936381221545542609187023656672690821630761255249864811397786313609266392261840810274243273786317954182591292485525022007938162988213856743853131180354069612773431154502205084942255768058624687948541135581758242573022754192890200341408949917839452575096281746854849095217881499334494716807295313876172713661752346185823107516890502046328278868503273471814354365343638910550152955774611593637646998001280889632976216775442143435683864008984055142563343816312590715786982057985571919308669143093157211402754733572662399715365608539710850779002989984623806659901898534931013444788141389000223438345116399957065407928984784614402443672182120075729401238341067281534475947993813419815782697458808928632843849346086834404484253195680338638774747895594059043242899052330757585787272331972056252875027627600141693430961264197393139567597175848348446979264930159295877524310243829572246780564895942094547050354624276929653053699589828593814273247139900447648412724148366079332279833635393287230380262627106565807367255745996782136338141728606756765977198358635759602299161087010095489292383389447462155333100560877882642685296113234439587610549740208120702012358326191199904623292458360930599763586189160182469701297745756269046160724624812991380736806927768793341758705257435049306354878403311663894355790377933521906862552495711267503802755832351349470292530812840689584054275610713357882434266001609101554007278523273998241186841489257392927164864337278522660913356565997550323056617145425495412155292746482218849427138936148314244495436768249829245622675557737496802816315499940054315221551552062564643667202230309131810458375486772182986936437199087907173028669654337824246686424219496167606270833346315724840477248416523473655599999809627885097117415446617844901726214304823314700077642820899038069675706947910568542771546814795263184251572411841722176451706976391781394709186343021872674596610600843139315292260680774584879898320799878865033474331706374764481138824002935857362207250900834638902001413595860321589778915630258516378451065704168743914102476784739044250800988646459856402426276019773926312593816847031305688342571851386320949324024412451911298186609454235802336459520702004028964774837435630597470157625309181347995115433633337528810143012161528919787941557901103870229481871097241283526315964356765792690806758593257995412521521155028586349295388540998381590778949384995953767004718535425718725590160442335968324274649352658782823870828548521447198683841406390376115052783692254057496276357108865884247615191063353942682264718642095135347529997159844254537842056058953286828222625354436405233789464965423375992108684474706482207829636560398169193301361455716067534803160517057190755358789026894428660382335439866833953194805120684412485958215378377221432264365578749468751137160222432928185833406973821324867656054952022147274522426112841910391671683203807532366290903701398114058461129546134483031952938267121655758220258317808212640122776079051700597984537366949623667860286385188740000854625632113293405458818443848630709274268252833614640255760300302125147316541027821601209728288917545137881604750302379863088667537417528690592546104245646662485934425214483929274664508238951922434051770856570509690214223067332461232884401871641400862395098866647423846953695794371264696015835062015184116265860383017220743221872313925254956335621158205995602356755683873802160536963619789677618442358626033016777311892368717884211363874354469736983407635330530043444644390049853575213146477390211972018655939585063807755548108347756943273531545519922256959054834799803805916855517514279494672393986285747906827447016432435401954944697779098957364764010537282627427191302255016337842392827767241216613373202256215196263441938589380162711343748666146991206585480876167486910326896892408695998912436986385277957294047402045058578443605111272878635191861595378188865409957918280973607508637943629304325939556600794098344281701640027735078232942389501497057354300107046673081765397979686539011179333288262495694356612589544332944624602965245734679547914668822081677827170200340876449121150694784949228026685301074481509471993179448830011218838573019679933717498836173378949642689933628801429206778848024190045833408351801241459161170271001998035639840351060327282348947565388735355519616870327381747435447749994949736290488884257983198258394859411053946286823641131741368762492904972824916928766630052500051958454407675631117847649129406058491085614633470551915298903828004232929357961906064785163410635717114847294938364118704711889666501500599487495739985963247462873287344538461266448004751887849480476393847280358023024193741564266978184493566551303263692846987643810240588307657486048452037524019409268735701696239212976435658776820596276679977199408320059822651321584598216520410120278765003020084142486467502146529316303240659755696920961382933853285581789050379637812411836924862701657165260475118374055823219019288462330196608579361004256328701951800346876678606643193443892336883396582712189838541671867291438497369042842633785374232490530169267359320516375810821320645690569743598716426954024749531387785301157380414536550633776247843150940712623898818329992302459552462729727043852314681748063047043258136145634156775864145207556837836093880570684329909313095563740002685266391422769730108317643607608213700078790225316458403647117975890007819630691374157174852324496059647191678887968448275373309603685447878325142239639806570999016679571246865285467272573828003032237462488951748001173773088137681520952761252611957069884493231376126191969236852336148710622475189444932894444739632826788094196927027621934867864368763910540695931577731124620282731056924004983744052452523530129756051321036711983058029481478320367908696623677173011970274291901583002869370266175056144189335930261216041132943493958284645693697505773293347951105541672201202201924051088339089555257740745693831077933271073710300412595595279722128072284457360268242913687952863972540168079786343441738033265096611990814150492040953430323762844262806213127712069348532930608637877442109447238266077262988958070563758052503347893165045760298513093140495479726090831085694153844159079045779394395087413103489197442271328740903297953550407213961797868057101230837034933602299822063236740316216688857361525452169252873879456073424471703692160472295542769121624607317560922522240360520869477260160986026791333522987505222636060396049958028776010522733668502806679138915187991290028827290204018145476356162330862907782522194616113446878984822775781731013948655442562878757348331517862968571301164943841278882286138691319127104705365785389263035809617288591200119630213455952785760145617581594559529932342496405532906272963019113022102802546218383856456501540999384662134178141221047433385505076196046807663002831818517188144732004016559167357188369573124145177973356436405306090368384562911334841102748881436249927508854440903033946599887638019792256017145787803994958942053432545327246355078708614486757239955680430597041606845046239880009585252656232152561327443830572292182310479580851078326779017184908720734794540858999787397547040858010247795903586651249399713755979093250703928226345187169810847213963834087038807655111136000835329135429250056000971434556947945578469929886819256030030299255305014850919259770564428365004088551261062383937456005366082557241609962695932878665105752603079516280581537579506104758272927484363002844902913299899457935329724968909081702504037099140741289053896027582849613453061782206998990389835430104527444538815230343102130326530308877303055556270929694107661833119144198386976146954532734271433567773568600216281867711888926898864897899234333081707020797652623282974636084458070979650551878286394774600862646869858579461266201296296978865666935522417609342591695480674919513440065504323790021470504424788033953563724875946270574793580933072920180076716942958720161778993489997227074381230376785238542138350841650944231432249215453139119526402461922598689057418133175384334007944391028968459223693349327647881872770865408178804431532592761591842847557182816752038243107074472109330002063649121379108042850595706297797703130884597037338751740589756553002950031606162402325891230912633161129073487001273781688773619019755461877258762185240668965999536571184841241015490237691833368925288702650188184344886425930298167448408092982533446772597731490624871769009488840658424565558102680725543054067998188861357765722275238487952843035291975653599953070906059845527651351673360051271441401862674062605124154572686593665661791410549221613587949037602415916971188108544281530526336890798871343827231277797006671470760626722509114127135717150108774164374597473463812594198847393367397435470138686035624724664286966136604044238202193972796816627782827337174974748021070451236861536993804895513364124442846457426930010491029658030502884405276271128003342421013829958461196193929434065041576436238883269346547925942038910635462194634776991702787137496958330321768228450495424849217229190574945165286213566722457915882294160275978000175547024370537999232303453169602480375555384219063130191580177585755267017484384697313971290114912496888369079780434766609051099887489686026787818898388737367390530553807610961069044743529136826688767021431671934584979952227097516226772237156065467767155676707490692920799837580386652613976612675469544307143439823217885433518852489366389143873575331513314142049113297693586742228082801175363477402510398248491108540966261222496654601615373609728452315737623860574248693432788194059095751117377101186288688124739900556706857822688991536812338005769794315532773088595207990328569500074480657387537401754330282901195106045588949391339100440714483952588673595772824140681588952345719242552311175115641797263033716442779518575796301574173456205276188306049402320093268570877834522343895327640961346767994517373947516506324788037710903197379024068429452856249631775220668592729989506299728013328449093732783921504390888083009794512916334933328032200088320092490759862920523525490628231751917649419655574318219407440903642127194127954625896992616581032839016147905907467669053280977065055381548873617298384593090125163565125956823896481417067723176671813895779074211634977617140048936887368414676022309907082153755595265329555606557084626378957842543863640363324707474355743852031755461877692832041268927488909855398718894211822247177670114145201186963669073060684387409370118125870721737828623425000102384036597289730640067363559240247121852900877709099908293628063372808017222723234660745484535658355451994302198938126719361306195754320210182566933723666310453392646090380265995214050232341328405370929204803514173779057145794429238125164214096796589995367111820504703779017106600605508567153657899687921670895667023403490284785081687362982563509921707206362998563964521104801396879532301307608257261549505525735150083030963116600136340708667846378419082302295727478093644597729356992359570234755539464988119015248153796105433647480058185213736753612248670673083382001263886358080353581664467291321200739319965465253741578565145630161623779404961714704095694896765948474008774816290992568608284335486110844547995134691693357876301476981014398142140249130718358327786780622582270665593292673468072786908901776004334924578412866824604784280251684510347042125402964510962856214344924898283621546395712190589498563692868211468639630567290811564030727043651716967312674035602703164259955594494110352457075305206652101047121432983379414703418161028198037549676409280039823659459721558493881664169849561152247971840089691395848024605828884146908459595353220448216126065611156849117191574408587473547964896083253252538346740039304230594279166536752360197348406443236332915808992695621253315430467931679484557418501512845067919587140460577191993642195142896614835937335797290717395929094758471886608657043741514862553613327474092478914961476836928812287285961538279769491223154339318776358132077058403484188218655326813575743370886531254649282670549189224380019311201811377219295224197774556048582463360692422907787675677064560145607856821370294515345793244596411715125411986500540477758175814848380434881580543298431460474145755580526668458776070266653667769229481449206502940642871569682566600663603879899215402942794964729477847708594180832307105497404235401053354731330724471443332722631685653794456251779518813916484369332005756442764073192548281763788705999815004448918408365832450427522812337044585248837483264465536761481180210983409491583838294655380835134888058041098035619924310598536051605228414766307817255651469712642377333333199844102388138559354354043700278919247692518771058596179620067496789834668784752407107482189558376535440839288853991600003341186500880826644928004577856614816710994901458128514849358560843718850288661409743105779870544759013049299315552739370313070589831400271126515283400256838886310199010674343057016087173453665320185990259172196739024883845090991032784524207865353033473884245302061402127199686609924278329353298238813945833661992595256337106632770463501845689039244925168389255588591318089481569865362286425992069569188384131580130408515169615714370363397719815492716207729765410086610632694948880327407554380638077935919038110186152720304087874501993718014207555316239910318641626215611564044335960525122377192057343781255113414320101221056135422109794060228334146157785775165503832275685176869249572978309229252904374125353457150137818519148209035705467283305467147635015678641558119971346665157031691352315868468611566893367754063589446452718465311523501701519796105588071278699211709112251303590485551841137955967569539424514014512533696855436386506296594746936975107979871449366256696897850940073100901465572026525643992180501670130751642209182335004964257621943623945318631937259270557465394556943121092305892027796965802099166511286548553647113409174998828783480442350691036456699334043808202658110732618612349826559853318193146425938937824151650337376508238794372728072292655891633997472350051165451641329527397887982064191238598985075936674093042061681644555475998480593907884587093925661467059654528360101287035470063793495278830713782122370416508059919187354018139762569628240465536195653029767026229493551019491513791140367061435426180764176939895666370429223331597400430246505891448487822070296525108424976371428821577559779682067557932424883251015517863859934237294176297871771174327575108190605433700624438556739816194306946133196180694773367986039631775376921189706614796241848629850975264447624638031170744129036396882844623481935540817655541697845582551201190887977857557691113249669817081687688771103229355788076211155596948648938457128872141348646433172891303333224155690787147215996349477268030711289952299890498986433176679678192943700354301963297042196981711507465702397929778273264864217634102347509131218881398193372437397742226290964109120138048252433524165996571166739675361228769325971630857474261461621319921353081704673795881485811465708872575893968964920027476394883351334357226648743749110490278724889539773965257367632005101176721415346075109255951178348306971517837950406204989142294806769776322976515972598254503651595981873781078114015222141603971253497174613955340020149188436708544909183391324641539356452241827177856762258727341665825595332828493333146735659144373676464955236198781113513167479499842751518021960421211899381866525620554351614006265180459902786027462582466212554257065137858884770349272708656766098554388253689265878858738255965424507791947158670097859725578376136065239486425258571112569987487212462161995416025005268473874327375967806022641234291977962943519793122051414003391618519669743339498388004966595985748128573885175136321748211705271038460427058376319131557792140469509522989396077245891956081782349859866417028682750275948007182959121040515355647687038504244057396588414887252329628420363377440732255427930480628863234695229137760876977421677550234737535367964534170228129688475141239120360146556780925714087665647061911903831361618323456744542053313908159438045923781141519211934205436642548162534416901469670166931402443433057718940914384532414624201888106899241701130251133208953503514415529796052182320409489817461650269007101009475043709353421508583207172923957509586909498948401407711271691828115300653713536186488572101057213979560390534515023907657796066489053503854351918711967242971311980084569072128439298809634049944911957518099958527966935633950290860906704653013642488377874886972404722888347714874505040775226394882848871563484711347968485306151314899954060057951090158531690767457185081508994200487318670101417023363289141302938738751847937233464028536676828433530760448539365599247502622574222611287328615554566165759065297438429341844943412745540007516353995236112958207969847555281962840409702151360752543340074437589276066609236181440816775578595148899187872503596988560594649642419405363356554381875938936931330559119557313973845557189779324615300792935727106840717305332168622877911424681065372526802941730699630639214677217680255347361930342802070273625343698284585415002960911625590144609788199939193833319661947860453096089505236959922304556009367185631268184346906243145752165026366518826230964322191243872083845921151989512296642394198363015168826167099586794630314920638682729417527432151561369392703366716873018789756485151201473777462987750255673793561992092108879155566516677343454784039529868384470830708464954632411895743533041934534271522355296204353616668386380183848545959842959462193394975838707506355584428768051489658857069528416243686857510056830648368190539835848171081349367655711428168475204925613579459871964192449007298564221458437844523164484045132837429058592876700056019591467761749230197488378537399311847481972489767427877985988461112504816174909001032787395217211491258117135801672836279820893376416368508659981709967416132800416019077025299805811357810377795087603982577300330985103438054580556327037522155494570170547044098143536959752229674071610794699977745190265653459208030617689961677558623302517603366805577170204132392999596880516813390099698733000345133970555471295634430267263089759584509579467635192668724420531734462643528214789789024157210554844986539634136454603002270229906049486600867844535427668976114157002918858089365603423296683614539352397653366211994968446462637941797512623211366038852107883461481373315120158742987361486050377168983411693757852807402693120918791750011030847254598269399098885504488250489834638822331610236619024911385960940853650478789460965294768328737526462576031812045714842907018322234397470606103340990645161761434053837785130382383728391881878816260345118161186197974889808067959100160814617913655937169311315478948768901301843612230411747070537024771448414032840620797232116373577732812154589948584369293379876375900802681180812932062626536266669412301646888380390051286971991301208095654870057739208446536953037193826426530394503608028504197814317754055505645873996989743745460622018896826478559088545646279250879677778120357155915077666930981332377180196832332098552185014203400449949072870539943218313668314374746946387826996680379277390249377148453647615836104008454476861751102011092893023320328025680634011796358097349795699349685467703899059870039641523103921520544985839211251541330057725841864757735578338667983663776180455941480854527653205193058274046803855589104706941932986915063459049547182710798619428249837980246116267414453759466068464454373584204735021341200964234597500519261394855609698634554006264959694882358752624283707907533839760678476940089337232207199485087267980447346085043309663276121051202637792633786932544290427551381213974210144821754376245067699260377546567420927504100822123536969149237583226548235794131318862023576679922304240025166634105136673259462433739856326506407669657912242250472962343327816107602547769699064621153247631736679499632178576120386770726468356258118429117754254978938925797665091005324430452782584789745483496641941515412560262093217998116686472036552805765588803691128372954339085852141246491066456375129010352889652345630347135250127037270743781512790659021349625416453128859544484178334352108066048177542154712012334887380787759623661463575907009171691988103094691622231359532199396236523434254507254485050866368752082794990891420825697790097050110284887077677331571974124302436492397012303406295993465466036562493879872432985248347680771977740224758535662481966109325553739570757761874773048933030158719477351876718715756836857061383642996550648017032036034028931622735303335118229468970562412711229400522056810925316598940051055304015127701752733250606202230611235555507299556207610809948340141464211922047981242517854312376082314718961370443896932331271903199382673365986304685929051885811374326522679301428913501603853262775929863920710592277701887574754251987194988500203983511508249405741714767120314507184803421099812961714800496145964647878707596943063598344995943187484097877511476800423989390072037856349016814445469787142315693208610151570759059694362389550574492885513844020424744773741564595575239714902294925882287485349626694685030503795859082207918620052231096644896019192402489899119652110608306132522985559687688727677426631793353490918016345217020515450091724597678984070027647648682208326566444120466096576439113411519593308743645893043550161687024572867634167300832839337451106534116342639810676249145860691549457708418222926942016841307642990305272566491627231930067464416247946475983486106767542572547986924628130236718785792957409289675228467567504924465508599237471141562673132006781377396097458475187284410033352648560538274341998254991523490315557878698997521108536076183083829305636267762985176539632831063863672139615079442906304785991596357051968140877933882010574080552524771745839270248903338949539193053547513762203928216140356908919653551093643729090521984531205779248327160763899923824254833104626898674301988231229288150421959717875341953974926834259786517101314625650593647957176110381639406626132731403828620348840279166727034473178236074154862548753021690021132025673940745197104970638356598327972955470851378339680308703543743056446389900702688181031470457427867216329261492595011856818355306178271681074768121616805372253084554496368895953647561125378804995052817463565156570639584016157616035655689214703284289224145003027297249647759436896686097904824595000786261839344687336659927498873585297230662751642316799696075656762609766524429964318084314127553304250081348134229288619946285886320607004621817652268959631643882542771647860209769738280745655969882671348975785983862755610202793126626957550305911349948808856193596136857791373123979906276551181449943043774564371527051533596695777441082747339568620189054380458392329318204216493441090898313300793104088042011407528217549949616672099247108840239118153623350445421633012309059784985787026794254260794175487657754582744571427700557906851194599167872418187448567823427630871955611490114746693980217815342755946674949279811817959824030550824103324786851036782153291272199852408939248353311969364301084752063693903624160805211191797248103819595203956381350099365188144499070701897715691304141029371113894285303270060580749474959677864537508920584982965840360154014545458946545046295721758650258016114990857138132280386317715486722138816838773569185340638979177323099671730632595870032069648368861291048245614465090453640131871972803218617378394003842668083431769806011217726063728435692414611807690286592866193385806025419225450763363340831881450811919604689886592147554830631036505409719820925495971510328272081700113820045950203875161246132665886145118413739665195000989851807202938724545405420184696347140276258527615985951994096489020185555043641037645831506482806454146569443513222611173922679930809703687814734555905167080240531396413059080834964510293322011279623856352097788600377007863787706882733345305690355843858035417904559386198807000342881233035743707820282585051009604241433597979872649223936576180208018528587463034460907735749776427595956215018676199835773362923534471478465832233488810796151618879643684850321613606962069776993033409589215850178872454564538534904555369784116653285583548939454524741254786097270726128370541006069975682623016054536152156009555998931709117210411364316570298874881594591171210333039887031950867240969092328345727535250084783048640849499698959914202657751802420185781716218841611074518527190057284350263558233428833794389256384702968864969666866706399130287302328412325784136112487498573898230584172192665767388914424301532398543675603316121194461678779446951589078132492266056719002734988577659381030547336532429085834308048248802984309418669474388811689111663065828638517794664066357640905435497625712630885977505261859195866052676222577857302282748365398104001390246008731999818562977293383614431434101571064696824451171048659076060337545287917168190823533840574478322117607679378376359326625488758451154168514382004904020104989847038162533489236310522543691003029846550323416765994832548095097630387727762130530153860751550396062503700375453953986425834885408877298124027121519485203176580970038304048996806763581346323578151415040973993505415285663820446543416002553396891772643248800247451458320467256438942930291135930022391000033710038569119866598548471778560203942857019370714209849082960009148681723580569943072336870574814505617623408215645568967588541868129273365709359184640718159608484223147967875247803161930868811806357186329287553730230903802106935009352559393103391257761405233347606245603625775945188207390589591296949780988297203636068195394447443519232185581716428498076753392613240044224805947752143149632258606142114748649956987204831863867973134409989527421579555071951382434430386960182375921769268780875543461592961123002835970376868591768053097372748049750089061948933905576880695430071518566610446284439178517016416390369225948251396821651551042248616246679791915433358874531695839645176929118476868913790219205123167212484897023286385937815769871527146984239456498163443848872005465036191039598888754253881365566039089501105093892358922906612901135659505853844116831901198501246442058204461707101286779331690948174367175699725161083882374835012651142028616469302620138442944914925137724945271907602937278964592648079163171466477224406642256177941839090988602962587524698744766928979736249044632190032708975421241565866000551717492393494803420271067697342990973732324071970548139186049439786857289081324051694765844648280881226261589865274506916432856947412056075561642242509300682852037061320305315736870310162785953240136776825151201928171078352623887601870612747080286400503381271384639526618938176307264245211168953064842445111419092042840322934229243920590529054759144633595935553751870394837551006260750757342722833106733063885195730104246165767978384369725266337045561721670977654369192128163056733622967257894376933900234485216315435549628253280222754956296912685444057343100672692829119989445465918511063286761087482772899521076451033544774037316739114424751595710102342900052636946406664284552228036354997912719117095461148806972643885117418724722335017438644387001045120379936890740558312422955508101305484174138261300755958042925910966410560944210234601281392033026248722530901306849597151736173833533570306221649243401647551232933993818779350597985767478279463533568467820647357479845170425985521590770555281570716437330000549335686385200427957792053314587227276494553551681415325865317594608720667248946778162484050570700520493749370643658789226426961959570640591851783808513337955504747061115616287990018784231743464262182429448138012244938606475248639206733713287937163147310910340776335794061970755062185215737900247957878597388623270305597837874400560129887343100764433488613662326539513885697304124520667259970552098095660425438897583903104186192541029245611366761407675280267434664801808299192367635313586071965291495302050069099859893048896565055126927221409516532529952833423946391823554023512041062471158241837924680803006841856407498980362546292835270649363022234248840714638318791955818564264788133013371376950195021588686917731221234711186950057409510280467451399212160300665006787551060861960934629885870585634591706583849146783529400041522075147845391745931367493495487359701895106688317502869237453813840036177302131666717250015946806294545139501532345122253503146104454667622919398907664905918392907500828117780608631827101552409057457964403108020147696913078484698491661591458778906343592634066489153993037800183190550827869132120967518131923629634269054699312195129663004365740755527342326812431739163457700095421632532264142461601706539928391510156554727365409934866581012330316489344860562091753119220735419124555387159174031897713619685075205369528010786312588248420815725755348033743239290093828992327378433410957262180426826866933115560602774358916941981207059832210817552016340019396280105513479164217700677605922068974865634254525989830730810475254715922596858075780711572126083629615186096440912358580354894276716054003199575302046926445093277894443413986217127116651819981301752043886341501248115037934329201462119191065981423758990163227683153419882957758753870890091741250876316115439912520067936465604071364606965360119163115971793592724774110020517917380440082749437908313133890330421105845023782325463138805093275865154697077018682173757417292933596242631507158106724323182678529419022978337672914452156886329373611654124882636635164300023379900196330674719897178721186390538427747382428311562998694370716918466594797143436588674444055329377017654828274815382189773647278698845356640674044611728079556891058945759133267540343409949747967396945033813983530126072913705121686668640147241509281778111584951005199284516242059362504710573399742014087655131857802992901818533141287324188799682468578682841101181527491209628705456782047903937433123679301166761558733819179380848829975528373525556611436443658980990091745209976089797558679297440306796128058688171839352360148211759673274179279402917059440396822220955093069537531483548594629291392132057542087844109880138866270456520454917516479590664010422250552857897616641397698059357346877840876648508473329649345362245094015360277602549681239914347474496137186197254473674552237055224936577213641102717285309778514563327604559606047375737086356488272594929969340694756990832110882535012175480710634039808853812309220613873514877806392860320958127956752112588175491539416954272026437446824134819749078647180837820378982945662488900515298219576739585116153564077888442003249016547198031085713565817530352593441070454580374193859727583348413250063949160448768924858689529306902696683094233216324110971261674536034238013252354728322035614977397498473963676356335663549855584011957604408779499569296201400885221258988759857952887119311250569822499359529633849306239131194133335211874850872576559335543617258958397407294997056619159187608875507305245822484711129440942500099369744731069093532332136814703275832981076680651604738911844617373477342624048685620511438613486162275087916570153365280839032866578838494076898699572663912735061623209011695770951090564123536043358542834506603295020222052834851166848338654985404294905971973810901548961637216685537965024219860787319001218828720986739771754656586139338375218541837663543907156192440269151338882027953137073936482291074960700152904424760298036939039645571826471083881765402013780270642864091943762067450883296966717157906932095241737058020704215545777459290563116019663425484384466516732679338912870688333999134164991739557490011968320746559309102815878135107968788082062009448807902035864922925986693111350330665743074158296485909856284234147012416261163189261718785744684610252260080990340184951781454230818360488086877535170432391090577339003190613517110919470933089766831496287007487305162892451294273104984088780613618909639899906285106744019576618553621630429192559492884937836559774879900421224544731067251510051223655700701003270083398264875613647835020337368954369769267245400257168697472985801642147394020863754436823663570392337484212434104078610818407609803226413793150237757718709060822451988742939200794201930383149307743500086302706720284342721025145314960407841964212922763478840522039868534976302332962939918201509322791249736115076524405270985621321679463725253723271132496166693809856212750779139160631860084330709342364731569823708356863669635952245723506934546554045890647558347161892743574232522417309827927501556242838792100103489081331744517155380971037790018652385655934364786276629745885601635007771334551939615541491045030761436641697707203122767054526222880576806702835704315158855545521798899894481135774839866696200743250069329428054949724979678945187640143211926958414832714308052390134836282895067320838518367500712219522695387077669996586782130226110458011295221576936570898538076480758408078342245343178049276860716479232129717068941657853684848939603810847564836164042743134404096985135727550377471034639184987749606841466084507350214680088426757878658273820164441620541405120839763829874781245239281171044601383859719556053854306688312013205005434703353053961932700647905816182572628888217548424379047074668252876919908992519359135375358757635406292875825575195180344516189042126758313284831781976436797139510419040817999487115984564152775779458972376375401536096632616201507363421235472935897289548412871465396921113348425771742854351515074122531437329483969273617962614443462712081709841218531544025946718396309881732490972402477208225754559331255347681112445028612079655862873247838815696871890680648688645491005806400642071022165678691979235454194241469620442939862448134365654500991344535160490673765150715881398177800428089848852629252202785265867969703842784712011654092346502501592293390848044577908394390822180303077806061977023837836667881551360350300623464384835603010982047414748678259959806008490616389792359904728297384506979488530508887747128716427452516377623719187754397013861902481328025255920219643111906939371886733781115101580149167134876891551595323276208616971307862167276218108748828554384365120517659266767367065226612730728525127635906804137627721891833972752071591370597094373795468194268861986510897197615296967097066760613454299732284809705267533454879499439534292747592875664185038383005283068468114918590053078341864265062304622018853312953409815625357038348916957590002565201479058529290810654823634665916676330478809176148171241420552824726302457968153235548758933862065236161642583793946192715421167293729567808567801382666477766975841335718646527331682433129817131617702914180129550620337663877291104238983451186872723128005878787506291502719716203146745249499197415629698362753346213322267749264117251311115475514723391039076552015838669532561598370311860149243935462555862514275110632013342570753831691518302108695498506228212661964966903727788322751885645476293295967095158997333547310198122223999050674967947784953347303441117082846457551023188844303206123991232927873828088645162448398691808597887407827147923369020790143271314858636803389108693477402919446622925437752628963316966943703130604604041413277615924608605531326723150890934256214977143852161193653378837731923883191529223933845673254981142950054662794500563868906801503088675730112033334980513534549137303831694420162013862226189824735995791087930337939565078335144730341013871502116409308904178817364225291979149337735425190050130219940938065289285347989036434826595131654636670367916435557167559111646258228337295751491505849221745763105325318650919679863428707605239822893970714331972304773903089823885115641063641781985922290802254886817214978034763996504072035153104267639274897502614108962085689022931610912532742816203223928781736398541104547499342188577865373282754422064191414765843164545123153561956847411177782591846915787040805242130216060072159783754983326360257356583310465825930725451007213906514055592403155712297419445066389664683592255090659771107468314087412526610077510146429819794194549216771699159258851848580881878550203790293757136087347685560343475291755143272807189217991579927801098623326667580795582454718949054639292307964405536110651548409959509227794860035234081866744402189879088681035068927196814833878389101822723193380799026080076001398265615415795933943868992782530860394049229813178306963536566980278137673265455149831986791478304340008344973572434095039828943709768607667608590851118355550480364563751847613043516800895039533111187784908736970857085798356466389413984999465703783234230303506972037883027688759184786111619161978669650137823534100411001184136345415430212668531972701840864363487639855373428976280012976401431412915680759972058235467509747178761855594835842549085765998590426958062625195856999208438021864485024850347862477540994838149517071765901276171901226002501350173282458750572306854801706822327826742528572118273397219092832972194209082232750060303067371877891073326587799564946127740647376225931779384271248687105314564372480106361196245651171042394409380468315625859872560432477336277036047862996760384289373675596464259486720607747826843527067454400475920790726794028991958016573936003444841673122391864035443785281813888410191879501262038759577658471396511921628988787493846546072849767650335492402983223186627555093304466742105046680599292172771829902894250684472979128911956777941404056803151509374512043288783554131097703144325307331367534844522534366336612113363833045108359964537305172689147254090478727726433981723557197880985371065361932203133388938142570839216604628883478293679176760363923332611793319502691850762413932113526404700118026231243347980731704884592299462532090949391577777141482306340976019363532424171278654611003408654994418761046702142990668820412258272291375683744894106440307023480806238097024057099795611739596264644567954055557634006882976704917695586407120132716280563549219224226626942072800480871767214785804270685068635528768017343846471110491439785089210908854311505303396214531300640140092537498008564120405646004452673897427878345783967687841176433368876969020664851454625811064937006924995706120987950333384725808253793308472513697319806646873829824514983957138187962771300967953818307329550618253339232558966165379970125003274788695951342671251849214433390824310068077247042765724560164364387009678041875612924443083563184802599244927166212380400436357244796090359250654232962792260044228661905192986351262912613836039085475161931108513549042186616949714312088273431490121329745063077813401725397757128746921367654806733628800150234536869565620905863607207229256868446436207745040237263718337342660783338220309875358891558040553431162119211159645824332859319624115637757083294584751140091679653181768852609163830496839387311205627260325965141242302816904176983941319330049659032294138749025942459491004875125547423770304782164564539871075594268697779913826286993293815385377869746699229838317470425321341704289056454218860728849032336986199548339880253505040731477367268142664919564682693336025956211949109252629953506819222403756450550178445969256467959788821312638366383025973352945441954065212197059726432804698802571682477109412734544430013286003344756236694973254552124824525696205451154681570313349764952640502444466846919055895204399403009166424884643584183613108166764286983620579300517713815679246493456071083909657527818221514886663762794472012727501655335652413691296735087401860948707953198447246801628452766550205977154550992746568516037513546387275216767392723584236421832219737786378694612452679318338194224265731216431844598360511135039096075693838030644914770690254226196259453536233407155150641588093097979748823891104125697087013228149775565297773657478143286054785838642640019745794522372339830765835258570210263443023213540141061077530585325786854457963515433765963271834840508193061494227393493781178371575148621878648584438418774177485841141127880550334618153175297032919735658131933102346407783043281707745966318991358679627678993827703378553264840417747765643725438657224420599318474138959071610230547601265605087664392399449000609372979031463221454618495750657758186904910859687206683673251497231173985878476672827684959892605795202071568089022756143748713055706732563121761812327608798670833685018280263102933543882642030390822053116552070574861986032740459455238500982290043444621058866556354124849980273963203052486103828630489503852955724441795071182533957493384818076497309741721925290285310400543153009538086668100247655024832000630943085116586972378697961489099479645059117545532978457929864104991768041856813801691624494840081413780720497028599860874232972297644337659317768143525174808797065009187021330002574003757593461019052874689388826867820634840881365039811329675883457112458296021315628915997060410897082443132737896640308218780236325305892521300452467519834481890964991818418089188752277159600206394860518797501623509178123978995270100526818852758375909259384852683162015032813465336951795677360512105007425246046979108318950211242648222830398232497510273799303561635139476568638243200356763261342995942866499972306044891111581843238430797283867070136966127360655200496954860066835941241137202716730739650108777646564536598049649046412661474290843826180324910928748390953883119018709080443883110553328004388698096615980053736154540244323200930504036334562392362785044349267774247702413314822748196974849202846424239220394886157557280315084728388239995715423161073138561540231116375688410472646706560785459548501782235394398324719577361812070443520408380081959893773777053638449136336111998669498818499523655907420338687071658378692869700160518463264273547118149152041904493677427032525933292580255350859755550040556999157358706654499372620977286153995415817643814049937482200657340237943954396004833178901808399244393660720991739346338921334921596355819908675856343183581262980974744420337852216403855310210602194650204616398716315223347167043713592165640291719336413491414364587603684912370456820468509537619391623153913495457571792054775756479605617759958194759990021586718911250261098730397715923008918376037007043737393376255433440756943100731845144359555883738915923990747835035697457181130174962037118667680869389200918079355965810266714857276944495262690213749454128682140109919935977625099826889749447802771832962477466904564662226643039906161243749076181575562767419244427432861529516493308521346033513737170665875618398830542894486829739385319472310993308612454684456793374350734626072177972595897826207442043242291599628376629516635342513607415968579271904388925869645045632365785884476314347509300406648334761783337054074367019794925915452838640336551172641699876713761145583394073721781230858045992725360458720853269612554952471792962952967171643387851220667406798319075962150652055915041908397816024873324177066998009256238655844808498937906620945514443711594501921546953086608040439433608983413043569722068970777612594168492424589519487829235360487969938353625970128041422222572237253131272520952474540616541423383013494178697943381503187914926739231789673499622322647507957173539710780134847469240761361986162678427409906254769461902978945692293366412726122591124986011333490177776155441239054505994469973188360589283411345564846759479087949358038348904055145297644059210624560040544299993690550754050456997151041240343180918093236376679842341296411702383266361719263481810932742417437037151762056711782092290763052014399963605583201215565335620013652124926244527769485936484145965162457545790884097104991924444128376916599192666706082712572630579469145121090304771241222748716684794135791238963235216236769392183114298646341338550813814714956360216235203956838862732050095852388260169229514817813915323745552966789514452233551108763371905142033561431035277570474106883766714607833150318350482306002031489405620974864333586539868918928273610455828395960658984127979792127338430579977031792681182858790890739407810646696309769353062945558526063499402980205580191871430264682114940077697954529569320022899450147863442870365701614718147141539126065685338494732766192024817202425037166714712848978917514236775097444982993956544196293869012614410637047724239526373793131725705381019337537825740460776727203689000054356245519961200376580040103062591949398521776041184828561494429243221723714280291362147530018036892890874669529015159855425225043053958190507956015293981429653101657352916718383164158297266260315237145900398086022596932517664571207085089255666621013679980646558850738486128568689876497059000262376072813657663970056781401777720856830391117988522766367288415025968079357230592554655987676831098619087949750845638918242743676763781947938027449838879421482433087049852851117320354123329057584285283757308480675556699312009857165629345862322424725677642196486818935748781396091670318385750003686013188252625043045744478932391619289923151133501586961966323659438492428048199336908528988918960519496975674288309650489143078216066390353169321305961517752938089246804704690976536917839464912756272681443158479444028971294804583821253457511920140139324743730915356965726649627574050854489629649542470638068037012897376704562391487449513962067256642945555955461429320796512292548357970285460087019286997256573280137497699780998956274898863116552453212732585183337837513632936655858063411705780558787587193883886494558347811159687666090101976488772463361295656882174058052650154521457372412953376625284157719532086186958049888595776647178167778665019788880479907428946920498883249750755404802694671658421985116291833066942795510173710154881099029415105077787726730130281305212695864579956955825856587337042320336663678257189340727748788224997528359195250607925307889519462200903771697805802252370284170145228324519655149869451567658909772602849234421363528851225359082840949385243517115268061843166909346967680477245364886379928931555649299791635232740643273534833666585901432632312815538855555560331828550310707777874337458379673789676520435927467533556341224948219317274100457159444936846605615943631750898392390521150730809833543883127215713374634819580824153858982997877656724125476016502934688848207344399879615904490500015812051418428625496735559865568295541173325868939869290425681248733244395571305638076282799386778771781883165216277005641169261279685614260824929455392458664680260312378223710799044501569410341570351151350638362542591669925392374831486847478266885791584579108927678281424737176431583902648738117981375334517789160298135323906706761014806878613902480542692177619494377148389835456897534860466794601782302102956515684931266171486733306763202103615085805068673968837118202995220861251581381372339720961566396853312401404877067237496943480322277796010016624110815456186438198789141971053835065971278970881756023280735330318994698775324481598739026496106934055024700131224092111486090859675739601658428890347739361431895384207569895756098248393928131301683723712716398807837852456543437841902524128685899022572156393547868752672191753853464092466743100421296614344136357791826242136903929818794333185631917792569613042413102920273489379039490614961569877900141789870339787830479401731791656847085274472888899914675662587803852282582646258241279328032977751361256414052766328904784955440945448428076306710433332749392800745411605917798727858147912915624563371485635159507807848999140194228676834939134347719051976404224077843260768010379389722110720795189315562545292320897764149364785620599650031453295558721112005080164436206452382641515258065191783580382179350004138320272266205378568417743069133311106131849381728484871575374325699477089089440461472585940368215210302842850411254260594349415337553977071360224829440250024931015275558690439952963785621600931804237989161290365148166219194810124432420910731840680669471853794599875381595442110324890209468915147226836174099531560047731151550560153538915799040408609738376794892165843481613172370410713773437330531497215628036977106584887768764296327855357938176458408738215053090569711988505070141306018498042204675509128056192702627462621692521359413561207220208093943581797762779531879266034004721040752406924488281717632385756867627312714407143198669184568563761708015416053020276914347298650464130037990385339302886714465026578966700261082291250768272278254543022632853839179123334016821056148112180381671046370948087625747207819063965591324011067000189748066065128148203399803388612623336277656375719590072608787325620467429913941074436652925249822510743056844772887979602990020493007083458199259263969139354096745999713126978043146238009317962656619420691327207159781783820481372862327458623792953935225214675537639825825858035632957854931245154373520424330661993685848512140010995606792673175135477974610509508059754383364698557125961264389454996432275306608357760225273169314430695313402428313933446600626328758028617410447439940855919233164532581020245013379379742782020923569364666356734598288501748970076981177662085884376771764672066878904974710532802948041639512257311975684774205075344142143196166803785757658511100703147325489538079532650070952284746169833014260998088572006806005761505982076840353317208688947146089262369817702898580454189689479484765736467165206736608313020445859623907947219360259044012120289588262257269122049733631117078508428566921115726564812379586129686770233187921745373985099678442129350913669149598447276454647890983265495904853132245964755917746561896850496018722859529283410651144371923732933188394718223319388930318055828745349047869757720750356462407506800252776623549476922705718355154305925368075301327165653807318248553742704375145810200824969672910501130492370909549557620342424223691038762820003365795283875504075980257067028018142432319502402319649583509775860022068828253911810524058462457945563635733330525353865152694864301438941925815429440666732971667622422515841586681135951652047555235759223404650726923722443432179588809150508826606590965962483718574444337733237897792031357727523304298913612642668463255651027430793256458999726984114012343648681483807309202406798890372018086603647230118360420926782776715990478134832503572802630760375546491141915117371495303338641419067224136462943895366635979318000304357780973894598608610876840626752004924891502978862374639857094450323692388052709088799102876538129486418226855950432211922706985817568475871575869607675780936318779296599795362516801662260200407616521839350857484723474608654219759748182400600203951824544361080009298509643634864883314020035061889383986178290992529155142544432885950750173885917481568704796737401502281856601709690991424191988871459315094300284782472359105728334788130258533948395316227948298351731355485853540883739194945223685749285860846230396177865341333771536767934850657683321017856293536667817126765526739788106735207462687330925029018532031287504070492522136249911546865946171730687446090754430651366678190446071067905885906536445082241633767683922245459352348792985766275798840630337132719261542567060482242217886245471862119537735773296329504766036783654021601760785579015663114873798865523263428296281396716059787349957483755138639705002168598810178522327411441216285053053746121052949501666833395912566449154938314165821810388279091858027046545299388446964302173342190794575572612593750429403873231149264725193786825124710760816438268013077215598845057363312461573216351896654841392488987021147609368307586026539655941615259634354496535993767464858637098576273928329232357847788399604057990228337527373818364862779938883263324614606161549806618744036285512208030000407562182034441853460548657414164325617209719497664484017869088642910041172730195721644631693476577900466977465982133054688130757104394473137068518537795773145842490056323513547530257542924202352445133790617423425800756742472282550227907702095415406875781629273203064991442374512329081229728229183590495822668227525759716697783378981141712039974485125182615607611121136051420834223464124688108857703509783843241158678077425295887032324386948020786503383528268153502678009331218048544530953296606219524372880873711196889655698105342832167814749354110512086694773169570675896961153156087261046816436817916438313711330299539174781375284893395821908312333153538383841609662205397496845382207374015451741572435576966228459896954214385204866437366244042692150047986180075459470711019759346762299826671606933544305758410389209013983126430348571710177241624753931688872274563392564210737090391585653421721051399168865690727287931892724777064646247021066776858827301678927669649153428875842522389530566103767767237898731456435340732241867076264626424910754158170819165275554123296330898832672800779254641112007192106797895038669008405497302254485553914234614015289889512244822702269037178019793879636242113480155238173962135815673522265376333590169970639033917143308742919274495564882145170627554657429669293087214456434486301926860858790256887181057597355110830707730689679708538407666865606346601263426189436401516190936825649834922376878506809805561530490260434004178410536928814547293453899123774529167286167961530091661339097009381934157849646832915006771790744886388064824015135049450060772367584529549123003273336660023543114436055123159556842488789032774556718111534545235635749379066707627231090643227507353264663397580526818222448579976417414459044741631074426970305710915503002190621008229571080469215563901957466742252975703023207334740358430116302072491057608122607489653811277672854100736021986767654984270165518978399247305957941389983964142645806276359881523230972250032522436703352030015804423480755659881574629296402026124289242491880217163446898524984494475749684076487153643799506020789551994488700202076021862614177410155635306564452538243739253104715199387169449949157067102223276324210557255898023798951859265665122380250195347701824209824107908883194057503529395319659603780350031259008556523013760599673309343010557738986273155446480459743195933456068579769983620805881974477729253612919281633338151484653163653022238473724979859142464687237618030668648726224641794717610674691302703790687856867987226492954106562555483494967753876122810520414471722624627817177128708629246521681843005896393215060884427405409640751533056148614716313841649172185332099016615908288396890569591370905016160661961699951980853041659890109379735418070186057210431619588984525952664740666106285213399741350322921825890609665210260714809802708190019343650841749310896583914596542814311278357678511784247859197722639983492475555777477454464374646132124910639869357808632286489167275218759714934978972576981243434258133338476759229438067844352718740752519863008922749690198178952822887002965884472993330319461422277934440965286768993244132141609306008773328461593675974686296354383202951712742668030742308694316216180166247992972137235346269738639600520569040203984700822525518701068873868730711770589581313459373242950743588278338804918274031757477998484180427661717986419965127735266557797914356680015642785801544039120935160045214698212665816119432473713701258993654807817608138752226718734114764309780538279506748038103418732546187374255419533258646544425441861265159945957927917922344647201564486665684424785271588359278037348941350632949619248502153127708372553621651683944956452634047053165506349025568682743153362227169196024454090599928902941049948339217400728150182962317732734580484417466992238489954537600095111593900807398024501735753737661848453613560313497238323573258436159445473145552018455635735133769506539006343472122930402742516016337711661177210735674240883153359277999909941358964039845259193924055629688580352767892918145522862755290690598251234488290845064715322609245435134699316228245880837377181766842461080674335899577195010349149240747742840377256979702723383599070705341824116933988773995132115610343288378782047359657436361880495724437737754721218497757080746083505833097017885508984914449643387968285970665412142090126836008029840468886132631758617459386886463771336072289721113943837697737368013158485224827226804902816103658920915681654738415160680687291941816592396007084290636477037069029487929145912450576019475068230080770128693681143571496656518724832956215140430480890128620279385423459187569123399924541087401595373715306232915757186917638027967515914855670111914672563207575522086512051675240766703444722294305402354361281545010090362099006444256862830042529442766427951268436197810976043460300732479215677891537419013478017307794789507734638074245824140464925372407292191551683756175505849542961440446438388660294100317289519812593043395675171517014510307447233573234904092985843058268791297885704192329051977530293443056749869955068189293421126006861848362604707261550903225506321226090547112996861848524372887673229612487181707734671820392102295621747990693132875406244316225664270293463704367636695793798266571953931967852066848608865613819363180901810586125076844439211917380984624470890082409150564908947788463061512510512412040221458205052678888854673010887762248220032847233314305894215408952230045605844870115501689417771348926124372051832817807879273492425362426036542950870864650085611539727970857564825867575733780134266833149858085797232465835023748658554848385977324631089834671396048323209223665051068100441524300660820787035773226068753245529349434582273220144403996771431390449555963793108798935635331888335949049059491209335404245423403131350829645496139932273175773195637433504966547392965521754972650005550072664551458353976361359240249101864461432881335410221286758396480054206344399239329783578867038381032041932725061294096894818908201523737058698403396675482629430173956760407450693063949702161728459953283891918433673848329567309474445578296426421602176093553565799990831270915413938305761932543729631099215463598029892044534129421752467384049243997248699946505849022753545929530081557893839959095689337715318194248360469185267333409567996516783464463423315796962257918918666875026985953426750231834815401988821851196657608880274602152336707805148271249986699242932280565523393229094095403247472488981842452400012195104666441234277494857719155074582700307413580169637135941628892877263340653593093688621784281783764208303894423230385841217768364306679880749717424011769563631738775788191782550559665183485855532825066732175606433618722883524248350743236201713237631282760582241068513392311448718041326456405423236590255197351590336400317977140938151774019455906954958691270427167728246555260201714344032144820724504790476489670681353735677055320831507260335888911723193771811315458377558638767829746635408204528313911567179208357389100120272357535844578251893784364541460327411642117726121520241617568682701521941384221839890245096053040212228543219122441337767673352104095158100512809200899375496201634542310015797878988293376874863454068196267550272092443650726523802145971720708554075604057822951602741688142278256057438660484955516818348213607315495902836335898510821392621863380364246408750397957865185408283481231575608637461596385010645090288774894778521638249380537893491476705138728374076735265487917191434419765054818650990256799128936873660256900787823970841670837321895460841785032985174931690618603069659655909487523479420348119336920246684754767037687043415758942074288561451539199995132043785887001549052996337795454541433535227294496752106392973617051080575817200426769098394979182774119902851139094450336070363709620885010788745178677892540003660533889956834636081321813869329851260384486070583499656869438520166824394502377112547739684444821219296286518867546302616555086321734573841597501967982032702218740038029187622915997345186270288806154183361764051469725881698579916108199389987429265557072401483298032276968176320674853363512093571857080228583140243785311953879364013856194721514019798256268526137121927850387108475657077015772435245027864075033586287019673457904073412816723524707162954297382551675685217697390346701258097996051030735228505111962174697690360052657133761203067205497830412281754785653581719555133492199493594891688619105745968387601889182147511317296898268111159439991563289804632037203280190819051791213043465684010013200641486717826555423046248685191894552004464448652764242615536241743891759899922919621480271923325073880983829289509426674411846171352569148793123413822660804058905040596831289075539735665704749558590708278289364806561601163105750258242291846638042486544216063901452742788134924383214650473076054502215958059721224081058465202559031835284331243475949811322516099420470521036327102634112689915859243210209800906983543152279668068558819212237778706687937596431547485811860904653173902397614638056860538526263883408816592135661190295074670768811749142376496176975384280303061381462615886408235557056740602352626911642868417801324913077824482367992554302634893881438413813148335741738278599324762955032449877245566149331752889483127689167202452541516310398861295541679418493415640976541663849972393767353581112259452969660994063640625518185817617304460224305125639312102744444114337342217069824713849413612574247348560882123504529430403838459129247748744829907058846236669570015851327463556152201479011021488693009241356487488622352308526342429571118947417453825352344822825802458618511001819863316212497982022409263372195243537981752701193729292097741425210635936622974532294694685176034179179789061733753453840977108112282548407114662578026004660303960149379860135782857407566282311310169111967636448640985327505530159500608104952588538762254435612314503742920163711401215368979855463704767269889585505111489220081387491418946045977059745629140993824195285556901186026870757646133826745426453596220359977730305476760666152871125347753305391586536340470367866008871231087485810419628716135418781023326993933930066286549217875198735563022549664800760860838765841732670363702987213962124764767791030613210586739896857738100205760284578326260656992174713997982956082166903220730173518510100401785740186244854246628856633138892787383801537036730917938079555793402166117035315373547772203482812233211459483437728530147228258603701876428132495775531138691767821967070629015392770718240194959268646199999144071118231785429503650255928700542430299438153082255186823597317727591676360456119412398728002050292566365222786259640906400649444999826328988688136691633139904379433371886110219991429117286724073187317727860000181114146660960706585405817901614647076924016394168263349052518514435458606321554309939180156862097782512222961539064161347572099093215758083603319141307375594043536954446497632099546330352446549630967597875220065578403882845820076812750123488074940151794443871207496361498363169671699327768113371622331249049304951436857905601512018531848057616737253181300194002376232867382852769480874958312769570742345397978287360759208994583135088201975475836730093090075777921960649417865042859227713320839502231756542322541221877370736245580529666956220615898812491454238953249532102311672102503694827015150152985638774489023894789522078708193827737754163483119137211241984483799148085618314570193531590070730120637648136643312056025705257592410880538331143140387548559840010365804070315005933662879496112995994995141167502769409039916668767151020343232664243193874132092058025079580368516661986282759800076432817741360472447444535648628827349583178263062313280361132964451712028313314497977842211631596880886283313122779534189983575260345128619838085204403297790340091663379422126807437719676162420506624915985707763826105392873033519132138665952257173700424796407685862458020035951442188512656154451409905381933643492447633203724961444217093835418250389112983373857963832307173220787197634629811141396961319962445823494979134593847420185270347147764057597637100985463632363615180668933644186857088819744734829099827409581991600078641053122241265338653159750593172065550296851431653603293115583832064038873940962740937181935281081994501589910042265558091174226373489111263210852974935738241685158145489332378336121403768072420795803698436341116813081108270335312077801455257702227870447133833691542028083275068565419788131012733647241340951267791447519929170326684066738714881352989872479703173469667337590943522417375204452910677647072864893444024405584075475636871996305516880898525286753663549546577900781952475542578014855032013031853083257827335845132729240282691132854903646523567761381521235273400684123010945041667485863756922969249944592146277642518987154192138637030084576831342214348700119388400650219298521180923924291455389631449494089304861386893896008892931871761721556361697879380053865021115225441600162677719654256298529537583313278451458043285824702670311788463701450142878869829221743285213567957605602516266882058968125763972093746868186668876057759624442277452424176107054026816439550757565665467305510409058634920450617275042380138727302094333877686084479180397212712304221209966662247810119075890284647252891392245202851511104891790547917003650805287882851120819402810595962759520111354861218282281255814828027832684767754024586569378054926283967412616525871040425486118687821379433240717931660930751847763207051825027431930049606411295077583600065999782673095433241505980308094399004899413720894971370926212635131758240126107804149315039898213940614466708390634965106788154463806426135697580770331382391028109475047135075965354268988256120910206722092359624698860025893597376036810307261740390012780138531579227617046562586586158181705148174564464042146921512130780941935549719910271965596526537921155121597263766217780904906248936962417588026188914996437133691311063421317834386811002021042747241189360207634057986197240832693646785181901354610714619342450740059162316125738896968457840113288490215995404007365392595618062031760811599671718793304005202819251693109301385527657978470546435767378135123617452706626508860734470265039397617432972523795526043372956544363580714738775486211335595931285635119712025285066451498839888722860985017338816510804744462411762251534469646103067158472383066442513280082996491313094995971112672924691537377530225045383939269065985364320679153895472160807033278377802004609437265955439296138260867251309275290010935736936926162980856599603013797965463417751977656977878788168290758905682988777661532294457603626164829574757026727769091036598369159670295823767616279082163079737931113751985679474728885347006929266327916771967057615325853708787592960533693991769808340941627530914830106356682299788949407630589394442869502639925353616426356794857142559680485698347833331579670644552946175808773361543409867872267288506423114821873682415907981188026043451172109658591568639666473571099726450293223269642013810852384916449863746945003141928846737354059252473185725041014055958188718541695838995858833429401241139735363203383136836071090987071451799791334592346623361253309580467534046710936021940741292942595290276420433346212667945103359421111440349613535362114011296238939080276317987652496552323535194812191880930914165345109335678199154611689020374825475595981333838278015931412135657257876692085313838123357022351147772591617758114969177346914559918351069047168888616714509708269183598044205925455649877614755785068265294791222657925638294213985120529081392820994038905278717250267654838887746099099787587737925151047829523398913036751312199948925537829456066560111114565236894149225398738300382034043256358548963455330303193240860638868044412380867880274334148174286624465797794277150551255409832870957597645822886673812849622734811945807437025309607521271260007780311065714792708883655408128861113098211564727251240141081233822494309365152556910517845951719600770855759189794047313333322215239424969723695428017214919090772941738201496246960492544699834302326913054436738633361531286962062010886712873236206619892157052706632189378380248342898311638193172614207651347685965691562868299796093301983199594232391839501265913018153502298405108926667492012306607669021453444658921076473046042965157893303703945245299919811543536277420335120748017453479970783981877740495574819378170534095727395873938055122434963192869973221883256306305548485784437912548234071436536139353426232700542580612174833572057093393680132739000486838633857091829187719310676597305815285588948018320218306270559689789699205904102017863018237696980317271780131306015468654579484882078341116810660813286623940291765070658101532641506415199373042310337249193407772304648950053449323953367089589356215646766183109741081164342378148382703731905289541900121358849198254686368621767935739873812044145975357208076259625029711641551904971817039554147733181209127186803902547408760110813692893610893433232707800531461982992968366612455528369543427827651355743283868792970821811941297438242978980111328334455854155052010153839276229481518594945148833183162103339506771414988431420280540952613526806358626730025678817575907328491375037200801024334826895206505794939383404588722092356225821420245956959921494623780092523814676126973941432931274441363918435322140899640222855472754265694303730303228918271626674973998464096786359894220989112653191588288270328698401180379010860589517110233508870122622308137017738341433460865946036359120695997665443923901706727070957398785618970833653767970308261112897567372244874112753873137067305051394864654123708265749174737488176388754128426435428833072002733054783025364301564799627758490731125841349152024769847442207375254029573099193980288849780771912598454091278173201951894268159115820108433145004492511766848297634202554816093172373558980078721067945067673728342600833317688911220049386281279493348358523481680830599454358499246959458660316472461512065364577840048191378711125191555231999802640377253901773834693404047430120662218501726541991582424290181681685870979761125139560082565092209508272553788319702188353874793410423357004708026957216477244064027606280261517681984434697891023984687769416265951684903457226923982830655205241076064217034608538491606138695806917274639222312659097449842608273924001572142908352443034797632178804458457954844515826354954499818767789677682073496388961191728159662580976077956080203744270601181509917149161693510232815565943360682379456101443806465135874588518615810057553826270311193055189242047035407149666315250895570170789534281902351591366583528042942307292001927809094856228147283639774108390059291023307469037509198538479930952501072233283780923349843401076950596402163860852385097202009425862370368837100400944385007987321543514178303595291715636774396790115376370820511725964158847047435258646299318043966399280281911201796132227307774763778129839461428164259879091345194335118286581444732758257460221244526363791822069416132855489156713902093497996552472337059653839943955853115735523307415523198830055510501086980874385693693727473769182080246313626330393324069805665333187979448265686868118588620499550392149605617482953858390585632627387317069007869042602812122058577091976241110612208505200734068638877199269791687782824690378324215288045186552265826046446318047943229648388579128056203025126215452608553481080024628429047268018171859249179044143531756304516655544657990953767364793186740467121659285479855573733412056487200252143515973963727926832367442053473382751707835845575499389554695102462182986318169839686318160991165811735402106796379992932966529243182593488327069096568850711430050993434562305121310087077893300979855746553351612607321209470106537906785266226880078298592761496530409145137337793172828052522217925563990677923893201255534829375711504763455212424678072804795397197598233015054389319040459767173332041482178840509560243491160704425781624300992736326585986465159963021316750147573424779599538550666995082817561130200406965540719468906531469942036231826752155022521744132770470833720953074024752322070964417161781461741739968697099036199233049640505580536664652311133112265142733383001666935738241555654625873362196302814467088596021904163047971020260796260969444755674230205101360094271922168971884814532544246509170660960987196183425864597006915276477531595321657257198177984573691104811368571130835408637062159195612499368605034107094621474993875677068885248731481992866397995808000443621357933776371769035640909830840880099148769645852298102624672132464878325810968981160681655665506614798685775461613894882144620143159169404359629131629142641160484912167873671176111276706298619376080025735348086425313320761561619268705478729498278145971469077181241078263337529559317386105377471699062015020662874085819067511240002066926091649217525289168755213576554390830678401469948733862668043603025131267626295875351858935205284313821382875729912252868218626090742050871587515236633060105910559041596115374721623123816863781959131573630564941764608191399778789182349952660542064256293002628947095619596766852688301157968456771270882247822109897994955424855172870302384048079152295881993995082363478820664873754580874959529514659474608419960357136257889284793876687186984036535560916310234194174777565182280444357450179466840519583241852317285941223068631106636876175855899675159892844443350913420220354522247347831283488525404494734069090144107565079947366273831396658884299140753770479447851556289121695917476337202997682117934711764631773268977546120555769360012666591099071352248146919102562051436283519810299338846404611581907754284621119440199594978459365131978583943924347847648133630636045595143185558489805821614282786803502629734221378111267475077435944363841089960085512359267268454110924798474971031043591850068801484777743805151267482251933065560153982486200933812883331352194948702204029146440473817635153291653945335890225462167692977110471005492124651210341027542047001660277748969866333632100119000460622212519461422135388233636244283780116690989085812526589554579819375475285105110352243127942804314559703847306869998310217120986621354575243571263696180918811668363491331119825473438643885412481999218843310752564681439882725311809148043039305562692169916824151401018602809360771086602559478360718796844699329714762174533752768729556209648740979232342299522565517291648784556432697265083951706108622393933940820847051147141857812834924073702527935609029323948033500271431964039589472192457216878835399746095756050714213279287606359226444461814787375009816109894978599336262208933017877073148672244124631646560951206812647130627471827132075059186058177929389240280633221348942301822587488115053270438157008064392742482327121742902181875524302562937767171180809851749413185146129172371554277663456505638052658650842406547925910115372450691875835813653017339916917577324115872103812983246029930698659324275548481222573504308857068692076047757055505347805108996751361580705303390755262003636070395935982317082355272917381365065900806754443581436209323927076126830291880798885188852132299118890148765483584175755706563095808731578754657833510999032440413647612504784690505124581017457189080926940984473274512726969884135860257751712132963421870192760213961876534030525254736057106120240444850549397695562908061763248445420170570201590074945741104947672254489019364447127076358783192152072054847026156507278932843848598249106114617014517700069362532180001958558239198848204525738137418058241417459324057782185861003053600871761298142867709916876956404113610111087174478106601504688626230705165277208850759070710673436482653183159456765529475739421813156264562877322220812366634959394299206551094619737902201925176151625636514260330422224466362078537760306957117812125190039346147895764787793774311718972324647849277250913605156257308452087702942405031108863130218470970796151107128532162797975209395653317718579047318077879556983175834563596775432143186627399684357233553054637177625221978919938700245509677371245022937849867444336059705567467574983903273121626604245239727374245187754100954146353741362007709982159891318052889430753639194505395720753125353563318654191146685519484129580339380982127069755535208814075950426898688426250967673030653714710137255881153905315785305543752866059836928452685112281696686610717143366897393357169851231793694929348829484658318465948569038439111871413253915184571994832403824309197594388066753365885464397330711875421802805168697115961418247306214171862251618616821397294471288081510029850588976953007699926161368239455185850814167599154255076460792641049147867649758890208673600098198082508746577073459796695337256004169236627225516260735607246770457627006036685203976381579613158149117520338003780580409690776071599156588215693701801989279192192283197866731203928322949649229599350244038099232674867206478881145985133934417977972930592828180119928171557273887338099274183484603675444590598283406114994733688295415852955306411415136343024065264698743326961098974594990106713371909511432217281889585763924979818936521509506151180163757049765843218880653876643897783231743192842813337972469228267846754099326171727732879274677713873142202503969732966202957299267818338415800470516325811668490476245420168797470322787209932670358899297210210889031305344505653948343902911151465585227435574875962068291105520222101772042660834303718706185701710927946402813393903372114111106222481065828277151039635286306392362115547911472688347821802709238887507149189009893743910895007329599516166156875191162608436615718794274313284005493800033789632714232149272637051273229803935330101147049899381350358837244009985172433177804015564161293093069713477285086677520357866726690596711397686130816595594636332554240368429750002525705284357635954587480198738435847896325850145745722147367267121618198884576258947279702399069874656188045419046539560142320741481777482502218417620967722219292364367314835689453316219467660608493168801154478573052234296214838358835912066948359856596795909970666474606075202740054507635122068307665868586234499073268892904812448970533076385668207412379061578580860896305440071110114004503005385579793974816231237162953848441506483489577886128665916005337260565382054160251221331047819848671810846564636244643093492675619263659201700053201692432688662827677291393025139905673112705466396155929646257197959362243961209401640050312455222018468737512453380203936768615427718853816951042988680087524888549655201890160992186353204134734226973103236644231864554012223729913373649493497883758737241950574037616130182193093555892359044237737898923572745634237037174774118224907204884278043771439792906968649142848604039600273949166680702393174852354338323914902890602642497624943343719771827468772383834691594394392327337441026644029700271172200439195353048344737798254986274319424125645891882875113762797954727484216839024714841694425039682640236197867834576024319693178289911302379657595716404719428016206929475243114711674445139038046071896803014601534891104088761318621162491828137667294132430455234677192240823379676596545992899552751304395469281666821665112946131180411027041278749732695505757914312365526297596151208743611161546268012182432489255234949714927679588766152435360906311719742866426896797779866597757111056832180480874983954349769929495381245301084252211221389677393816330698144095734573831001321534942444957925692788804832893055489806155371985053998990212429128968141180350236558120920863465115757030124444128405474605812585294730004111966865541024838635382020933283033726883429511535055365763678964727518828227989527363863638185950660176358682462452157967040244251163495719734547351140413749496190197559300507137283246280066453122324404888021445567085064895488264900826959374013350817588259278964353563869374670987870672807501856458518459801298247354354878451003482801260014176120517076364546864151007796226180998299734117468335224209360213427299318439138568310306571678801125970364168889003610944818677614253588941823908617186530782492673842848768538488144071073872315387142226733060130714122788908081756965942697987853340077416010892405363714771166571152676622328198177899052122439738255663072372287126351458609195267954087528479203874797098661463778043931423945823585856738115468294314175275388226844846539712385259901134384446366384730504312169423893897732358780837694787875673566617165794224888775393133247295104290956340645298815676448864276636249716331135179472772176624763100824375265436879735025674527719008823440863348543874690486497155372152127580880631089641562303643831103269385176471284902414267740585806901840331999167550752712552595574912537626331435673828787451707966034888148231177020460193295806298497865027996199269961398588551514929300957142040100300338901734588085178365062242235721131074999491266335659974322623071334839005895414156630028529310116534602428336204898290469284031291080671100582703514536112585564767600315919478345746199216680942363085813151056836302983298242579843650972755354502463751303524837843586696858715011770840841535344762630500807838962221518780704446529278307223578488406284404234519715461701035347721331756413795163096462042654554440916959573199011463117944694655222315462855578734643758085791351411097093253206452375873720234132243055735627469643754247994840366242096597492359544142396465598369001263043654115576932430382631022723995905953125918763032171825752855490396604420673285044682721622031593293814427783441503355982935670312776753487757616857674361697951777446560421044924555381050656592449670372790624734046165669166144662568570037138861925634238907439591951403695062831704652386792817966929388376216720949331829370909396460309495802286706784108958308042778301283084387307400583996003038760574575424983580267629030612160962433828586384096369785281009119104051858801330795791274004882917587975524009374265397465576610452974805381882946002293992241910006351680254252765978783660530211423101541168286223531970369481284358296004830402335345849771977272406662475453646571985107500591552968072397816572145036452363016171186160749650956997429392456105431807574299724293084947928411287442595441569427915147106498976222891407627608228424805515913081533227240303858575690064343489097098695569944226744502770346749205702717464232199566989727143553304380222601866182821156535643651018118755030524982117116032290366253782422131536467903278289155771924058099177185267922862465780093785595182730484682339898273197389642787399029889663187325196914119152386743139387825862336473110866543948376354134487744392388401889059219412185783190055530136885725957235162710664545094286047376942521158792715106440216980786695571494022380038657031152418328454808542910949042257669816326310344899702475481885675045347924530346943557198654975765805564902499342670567849551883681703852052453159232914587598312834954769305130842256354321286139634244173334648180809212182007155647216089064447201660615398151775077849080774802625909993089119933579065356878587328892898777707204665769511989255712187200817497426987994174190225273788871079610893888683629825395045616385126215406149730874193058428653614366437081091901189478599965612340119401710626180789289368803670877804122732667064247129095092791721890916232111927929819250282739855818774858322625826915807023275082191325990905888431714224323543404277126309143392902566885975133086670292904733037992835142849881297278130957387581411186207524697546704157056027577324714862674499271335222044628024012171956763923893866823985100589944195097366523466401060048923067306530587979581439441790203408138152246124193877720148228259198434193804936111825008977838316096706038761399988874800570891575605004027267280710041167173343023142027575417801595281172555805095548197499842053501110365053801809305640427440966526174993172432978733528702786086110269690045364581688150142405068914574907405737481070926863631442519893678158689094036084619392381642620011880332931658398957314112324461124391073267907844012939910710434750916617484206045671653105653020636903360478707989779462821028290911677703663680014646758562136378363709355068527202097011692134260371881386659840290515362312193258644500238536723302157299469955038534206932718126595924436450570523258303860707551708482355728287335944234932678643591725058761652669057626175790119404542386299014924330704654991185692243320967433670963334058444115760150223609262828585689330761036997277487176989683807872561260487299801520390710091483376735699214214022362650311994542643066187021140154907008285537593087880585366360547498106120531405625267683581318484477054912633050776086989215385583574721983471393624743387694595005601460677574695083412875634465477602697756478812448129263502609397643280505265854626015384115009571324832126096000386187454922743964501491360441917413622579225094245642003392714722520671708086302021289840893843037850861809865830942820534242897275788078112436633531091495836747004652615032574108236835671531962569424855319635877903132510159302629298374282090321191516891895687416525739130274935608588469349944788445104220911332598765176954151727745684214518224546649636466063054245043145131403498292501087171823544841980293756495094231274369388603654549285835737740307619681109044083713873409786397280260178812803873669480771326883990531178740762338884182979366888018980380249435403104370833346504410543525865505104854943404181254629361100555573936026453566509446313012189376278059297111575530269333245604388179169945418126963253317843689727243092208939256171314091041299095101495358812418566625514029358873338570982682353149958088168671293057313151620429956783716752881930055709766812598138688375266216188603775877288246988086428142058880367282226152393022520600638245163439980321905523847170428309461167742036959237427158891864651974922070435859882594469060265105209484560198193610936279937922442029344486654493245586436351633408155474731031008638518917053789234002324919665349320256588627000647526223048276161959313245603952165017275552214888313446792924896656869473962069610442699640675336332856235636057293259315038785504125885504520046746093566551784225045964092238220238700529878383993921967920478784811449960610196911926763233948292019498604890323093650033811860157786834983564734929723266652322606634239392378090739713014113392052655487037920684788158422107780256842795524844435241400363365569291043424712329673018324345513470255993220281380242484273326656438847624111831908163841745443688938783140913088971663706987033517779660388692824013214255817043040145763195385687495833490539434035128669339637482832946162830820740988936750601802559907590168627688522377398131625233537568272265594305213772052422724918455508008610986382791700181992231984698522399662715630679395004441255352815946838456934655182758660993302896797568007854658059599604855564760647755535210919151449950998782164239842010812182611870414240766310746548540822773978391737812148176221358107457030152675607717862281373499447462761080901164698311456431056969804040662814728375502876783702098306061668566240273630295124052453203868998467740989915600364423045374053704033968292131715270807477630620636117831344357799518648659082912588782783639517053992720364144649307921076951186890236197348323162045170295883003904019596342280080646739812488006827508702971460136902977884810518695692898716491483833646866502987099713706221115549730493749743090148252482598258709432700670513615505875555399943113021627353534776685998088191807949865206850915807749527618403167287812435824302565899272738505065131111457885540342698554135436031362840857587226918439517983178926200704344321651000146354416842583992350599535169456330511087191487647499360802644887260180918275256407640838223884725470982016441005523402016993937443755215504795528310056914038673085047197410906819340970589841231122288166517965533797747920012760635047208440118968947286235478615626723465985206852993775251772818595167401131966446530377247243354909277306630055740801219270302208783410509319118830946168698387508528923693379140817777198968383620689951682208014886652437866236017066725065488494301201196994951519887044412012666974071680505769777357081960148344595555085507499289084569105101016619475364221110560178927573791561292384756933342351185270225977779286088180185618783386264794502246838846767903251450071482834024603649506436870342056192681379925993802441653481860797797538100633376805561341819612684731145944871883021586207063566445141298304551049742218227985505201743975756000000542359477715889607205588145058745931707241547153690335439021732719504167901725121178380310992392943573657489409024161004164932464858030905441636874598281601965612224958075818562089733956761937860851139660018668848646557618702736598740338066037539077394686000629019610464482767684214138675246673920856104682764469246869117145782711997207352138205168405883094084050644647817598294671520715113578622564901526259025032787808127531989205381025545529988514904977645857586077351545901030127092428452043152139064071156775476770167052897096797222394114413318048384377285325559454710154949231831386258338560632203464817997767477819639705907142265574979394253404994429593008917835161859236091833427199003702679783251941087927478567464040630451783899377953894199034844754795500198405900357001268454439432955655163282556600188525974888769072553550499951537431686869747898486292923743548330735936410234929380045784266444840650202302587591988865180693884172524957857079006171150580661058517902309050106199526143412103186755750423147426838843566236590131616909007547085453615433699414201036643374784743625740635687628621624507713066007091329279789518636995868583642732168213975467647607141707419645837771681317240085023619392573365325554937995163766724826412758938577289996550621470436211800505792651252506931044562725349752124052984020329185049441900522203602923207048103373806583896949074762599257721824519752142575218835685473755521620961049337235881218376626576518666855973802893650994549736798771100026302047856668586986355530598124443130002494768068932814902411214438900431825242732255085504299753383677967280816904984045774140641678130018398960338534579039101651008347336170018209742932191315378462529515447099488422608035553673668133679307417967977007825765985475006428212184957917760735094175001110748982012999364803979337537093990131021877921650436962122180930749503801091618916870375478019330158004724079898921667511027232599547397928214212334114668781424266081123202414136414878230863605335225930720267686143851553786943536255920350394967706799375592679719961162376540396264772656230011580554829966362042798080345512356649515115945453627608724066085034484760880430849701553933977167788447056349894929181816574188222795947051922730076571304324495877655748384152313682860143315800103580833933828298532467962495193797031882521342163907365691948642942091237086818286780028976388681732760824386097789318926681065526443082772542528506396540503972821852963319654135265408440934819213868638827412158954079674282104497932267581521360673026305503876165157013854527338224699492486057904455668066018194247879621320003477529689518571968127126878487202986270804180190847136414717281523917236803813303010984392304290113054111335909160258430755727712284247432461204726851233776478011436541745214170032726948798393187034375899019545151625898255742587977358796908031975482406950321402300109061354818455092885338732970490610378045454161469358882166435453396039445385019598171261399841044547443474316817631654923999613440092613287405834778594792552757817176427164447714387956330640112194373466781259136897160498025506818311121843193581699334689219564851461947352329609865785945847024648252286747644695310500598837395020411604870493710303678685950581525769917206458405430311391316564388893337787069895454655050656995248050592748633453861056349837894329078151681576191976978403362080263624462958315796250808785499451620839322856328898255599705015170693138249757018512102170205932021688194987394030177191853234101529558569428264994057674088207004805430918266453714124442960823766385339996878866541861338034072018039198642202799219055740556905373652812942097457922490344187296421890693766318020143345064965886654912196273935418947723634798627496397008418356117360292575587793540994803428407931742011129707106928793631636512164617190242967823842283487972980650742168420031820980692353080653830566160477208629425127050711072070389126131952136719197443983371985224854863004355283939042132831642374431311231094061409141580965951062260488415378187237366556359727440776073433872646847506350378324874252802518503659009869622879383184466443028551523081535143305718062912776202191693095877849082681793555757876390411210353762402930717277237251297453586445976578954219704811952032507681080676014802397607975476399345767367538620951118266349857697689541301376261634626882496760593553307215538134426024843830981006043863734642226900888977587452460788815767783654048408309778284542159732517366676344724446424622199385485891710477664084777859337000784714443905076014236664679040100627614111812073405127571422672046067938097516831131649506075995052993420732660197482434261756456793810527856026148678954921879119150945265644108094217445798016108155068456270167934321872139248999865532138688653392931574453141508046099652640206090433082289028311634749146306158665526494894719523153764928173249612752774141581091468435375769224418613167303247752950241791528764377529880826433726415356454335320816813525403967539684919060174584436640539929537475953176528468938586553940460185636612197464231715075654391911943696747622623085599151922115556585003492119300785905610362020917518323741043181537237806433730161981111444223497644228024461070800581153869754402275381953165753276886012443598100733793241463288805165700891338333544658095652601620721236003114453274185451619527847330866015960548751765412640853344756930187932026281879797056566189019078967106124033279003338417901004940408195932825117534680021453063151315694794956774851223937514588630742678135484042106207812413272955597080269886634307807165980284748352855293158901564473571246077551295092789996802461554621658574789685130786303527666637131013566404538549670962564639908160883667575497542799827892008678957963324568950028076018442688127851840285800986079662117092527468904662811797469974457865257243037745525321902477381284579965894278005236343019170277996799595404268952121816618897217508601728972555149773199051586154124295204731897933920527999161669958466903259673591286062064262579031297153192286808863272715583317349562343040969034683343417004040892662746887034712099151118444940570662445239792330465331716195141372782279099268010389716758844751911483921606897882038574682330003684840251092769296122208745308557064569586005965231409796054868611863916428006460686984982255464843523645903392846628616262973059561976589932287590936612634920563270041504121307647031265944711731328815431973042290263006851627552291661606509999823420275892831135507842195787120908887323639795336935526727275278766574964368176258787503020241218451269811052094833450642530532580370587156599631389637556764224507612041639517762614686798592574667779887744205502941431053869635838934618813332630788147008122376426051578534375286626381165705181696131297278014035215420626740835528467868950920266981455684221648398985238389004011614074832163530704050254636480667922419380060266236457316669478466033526208069439333919832774635397562976904977688011391885824809976895824420411399116991049612865033294792923256775843291478759525799635662422351657915087723484201698851008275293790282834217301672158152686722324168317409679850910644912723282926375228291109864648967920177849123989567750683670817872727935250756322519909653418858447979400785366706949097408213254508388923703185386908007504280592771980927315084008320425494682568878843090112491458159229334334445368743040494398565691545533991698382983290452578614142732925238600491558547644293379643993325816459350790172909142030072458458023810675032394130794207112196450467490105789063535704254335889934722861460915812045249746569871764381608352430925059333953158681060508556677450316744779481449903838830668338320175266294988592864576079596328237104050027141659929252394856250097944954962921239169014136848885060825033516678907156419665003297210715193850462140498773515622186032188196133674141116083132797521919529996600012011313974680142265628968632495655424695331150791346579336576189986554625316043231161180163926019359639564764438554445878161843912494242096425647817807962656298060315558444649403176639511973614734253354656343209149097544301691725542754434639828409424137636112165006895889584679829130759063086261623956665051588713694036672833022540292480783925804979558828560766954097973096790281051807577197684010976142545064063444164300992481953170308037799102180593242855626208312074523240910075052222853926250173950287547919643804817791671156562506890389995741899378748050745537706936453883541133761748169960858136154048531133241781886828622625829721900021535546585937539563002297114632937490673456882794996179362177133732916070215605030833202705598867647879283425043603492443860744825292685887623148923635934501899625284191707865529313120693213011554494943503233776047763279734518007441234247277055530937154120335149055395467338112444631075903328454683762791995160199253137851723685819339500874079628018151195608066101561965118059366343959905399114819469196305922577858694287974038515492850756821934491274580473455951841146003185588468485434903988921760755668457506708233790953601870577064837464285035547232225648882077484883409225971344623415274671497356198452223888994213529693713375372721413655175357616946229935588411320849343636444333517075777482037386341967115628798137433441266385638996858432716983796242658337672999829847912019527497065896990554861847175659623706881303105231483737566676083635573718995037830647167531491969221946644923102997523543233397488784462072471122674417987077260454252855085474579856050848844425298060060859570945198916690081492107402166723506270494921989849294857728709180167296153281058767725735596554325356486510922465464792707717928669660864348864400542328229860170252037278821526314369303993141046712348582969852470759634128624516667398159770507562193037723027519509711190791846463316701455411708761613003650797573759500199217369052095507388296019195629220030609313183273078415276889017296504548144106822357194289774008349465206855011944425886637070888926520716396966453984972244289897895909923182419375028716854094960628747021482508494053715546662588698297860416207030059920229927420143043612865172469929797897737537127211171423810063331183202791286913758324322978415180147151866801967784995442964405415198683267075630779503063017434002760935727844382913892785582565869233727489689037588733857610723319269315050660493310537113190180772368297106065840078851328634032017940719056042014463479104244135129262956505346141219395094749683776904742197932623047725503853899445194341480217895205667752264331784962818103530909836250384103830091920139187896374835646514896013970275979710961947962110164418656121014253839856434666297399880724956512453913917311079849161350021724435736475350774544150173986663663771471009305998511095589537931234286380745012644267519901581462569057796503638897072852590698971782104304133029973999738643859219761332401859633910995910427893165579854060778674679725702936936879108368961901891316078468118454496803018631509216511479768337146329137178029484640990290760618671242108194496255413498175800411056026164447139763106547010546477807780267066246158558483448142579370210611414554838903066216568977247070700679089006535060261744361177732402721916505688596952171259002309153161816568555507728378054711354432542452346110858389931945551474597491401359432483497332365051281403364915896470983321054402587486242751968582750562340617831299011921762705729105607995033038722215998504026622297084083066826675645262667949870651956702133995301317680375758802658840334621769966180093754232857703937211948907673392166952866199631226687692584300808186620416457191978659865033817298114270145925667012380253887093848217379413975662823877334880376973196559917992411572598873977369224777684761865088934780508045968206639769761407738658789811298877520457718747204037480874219683792034280147725491435471979372455724388529725291984644637663759857059985903914167327741761526882109325525322692123108592682733724835992831465538845359681839261597308833614831134591302412695304720501371487227965190529884288137231319395124601676599365726319080977028538232814050456765258869391680805044094968737298487766039189256397207424257729129689650058146809616333852759835476770140537385008047258431991511858535946433142572071530787302668110407599636923825162922360783061702446960833094372023306156683041667191718029899658951681940452753481547072493329708223577104884447003351526372384229045696874315898469094049330967671060108289442306043946851752102516131408387780767881213029843805147686010107843105324413040843805225599783870357745193787504184050034154700543766443714336380057772324620097411081447588264943762231481218494159012627094330354094443107711612476132859296891467332142442930625517436648751472507414410984617667048683377744880994675953125278434534304848142764558256508324226591053884787384914396983147088147044909456064964564622920241925731457414679579713788498406122682494348916779377758706446718699198927466237015519953523876066232374735596248418472033090591009408961703423538994082381495757879955984317068732785851823896645968764116271834039604874435240584745200070196266739789353098100982375197233316323923432620052084457542849866496157651001765804107161084489320223182825851781625059371853970880660495990565258038667414124488394066746781813749947702120782698496215587923857866460839659801898843843562544488930734329795711906750207812008552807439815596862657610141913547558472733251207840767367398182689311259251121287521450037446038827038837473682043656878575224574888274782272887259280721700587450232675152021417016464030553925348500471594590369469105179816080813378860549125667738418261547918854288278328974758485350027622055543420279120594955808936806933103016994928547120605744318657510219659492840613845530522768084243835962311708148900584279898360012581293592994780015559312520682970598896235312892450039236871705376487824244431154101109023977590313559190825665709833488726291197636844913520833773921171877846012968638670057848433768680800583050613382270646869672945228257513404281642285816550518358678852250653413856832026245709851875032556852288662450419998909875564421406375325974566111118110662900336579751221935834414600987432852807344737161684305883080210589209597218922499307616594984759044977002865462597704919090339825370395556942773214516221533833391376727120727885897398995907748022426459057240456877582675803473036094503089524104904826178590238778648486873264870576183370971855919126940932395244011206218325322963475085798402002958370632456476768468725695773940900051721950498264682276115966775473435085328747505354767629297294024431105355815138322775618375343262386684875050101167170078723337836391038860780519534818367741242394597854710294659313341878202999546736612529998948886500341216277989447831798229192320892537799441554434004167392000958503267502321013776889998220837744686649038029190624474134137904762018631234796290831325896784758827935568711015270136939572013268352484532514064514718678073862547170322444328269831919032510403233676178868243499313040563151735796935018169621497419337663218717404576936625873810735949608734402272030236312162370894512713512052011758831939503061353595559352477408917865786145760513547401869775412186029014132597947624767413163788722783289129834552944370434776435581250539399755746640619476754238416276582372000660731419959645185434302619646837141393600115550684028627411844705862707074403754749213962748932305658175418288178494912266426949819415703581740651587258339495856975592167456474954748735958921468471264091446973155683241892472775840366981653150562930454867269140585948192925555017427609378952758480378331452243204387264393169477860337393859758053517485387698939498215249547520397399552534610288345763553997808942151314086396138504278134044731195795893962801017609179784797641153539771783543078904396894082136481245747005712857232226636544193694589883499678307440459094007504449943156910681402579129361223910392947552321713370396973617872266690335975140715533488014760086394654811209926363069364692247565839535918943034772710016525693489632429970632109272146479638752504029117080071360957458929452679331790174127470571056875800101995868475865371383138683288455536548937872808546154635322758516750997170911795479096106434843549514401553129247513922170414183587984790548640127115459990171574662871239503471357554137139427851133940218858543387708324675312915257191249754074555569176276739957528491665377944190723563663578427687568318309213000333824111104204842881227999948496614322772817210675620528992595500291085420154740191911512283563374743813474702850292147211105433964124320866158359322041521142643565306636295793059499376872519945886996462042368129872112856782390391409303747330530804207663380712245593061019226662174852819949902730928970058759143950781044374373208940194447775520209896677647548444833047396518862109986442074063821185022739791293619263879929632039479192609178903450072896391777323954942772985068867578523134719891103081727295438420988134287249499650314798219377173293711728586291615729866833739982146889654853906035670052810460029431364987258170871102477922934593575129763673180851944179039407169918184956928329974595689393570887727413082050147555626227188924657187322611628714375557763130280463688723694102333375870421729791617739140469614566590218674353586912406276165976668100397505844712094036794311476523408328150769622515759384688089768040512893333052470173694499262314474846855109732815471149207365771010371661226252055202675987353792962517137021138733160416626405039779662673732798838241176183783725993606351327802104406837721484486630503314192513921420539499608201486566407819746732899383727999919826576271529512268749402841353016569483553867763137973580820848000792061933607954185744553473006080571187905994715005526092354553897213964797453415860255208222279417046635660353996048082421628256441738314125243377045753409262535305621930135680617118249472396383088381243803012788770733384949861301161955903776516072761520766167653109876865091561279619198310486539510959278340455845458588084629849834105786504535635526012990811743357496924986987342240340940776717453719055221292775273397552417811266365162156269004723627981118723852295701215273363883618790454914442888852605951909458534312233703089105426345411551331359484095522707818339716600351862401286569955738197312857498433701844067019287340084682368649381289290833713693824886893357828819916466222156424115288661594769898066197924175218294796849727494887680369778683598526984613993569311218692861171652136641970679199032297556608003472133648515421632706370592443568220517435130584739948002025671413380434287464930504477458551623350025010651611016869369100896267457909533719905999581385020220198461054219751935896856458769565943716891301938197004002185946433961997650625333888575446799952362857556283377295488414508515642831411044733317027622189833863824733901277995468913831349453824627037500845131018212601998920125542754558046624254818178360133911066137204798501589919134896190471715116216817444421683586844420817016549192221302846300803334795323452230005452201938026217422935961854781708888578689260071684857621532480495334371042411292234181118878677609291187624015084798438120438224026727602520087770351300218490708095564202473204687416154833715726631246898414395210072932042231636876604744504652930952036594683234625493530845883880248516380589589253363878690567659848752640149514895018233069964287293650540497864177138200757952840165171144455713572009815415292449665809006674142372397495249743348722927498674120574538347063454987452244289775582916492927869275118472513676747470487100295416835640056639979331451734409723281863991296463078697171202342163413482612673158054919543998118735951277062201665893646084162908492515795112622978528577207392104212134304559346560143672405620930231852263966853319238403660950500399213373762496237321791615247512076914065042781137536649244547460099656840996445276720374789866577462685081486433258848683644472404399979112749024890424019122298822807302817902546544297587930664390373208353751260293392604370452763950783292978114847938931990788115565228228104311205651817902455915803845387646364016886549055173452267087454613311476212623453789225925044138268299917029309718339855833965546767870516985070037940111532924806372930021052869769061590108860644657021808207833077507580609931001745717068113390965295074715614765985808418531329602834172484580022318395576988859833150228323531828439806992622197825859731884459167457803795744428384381880382506831689284331564989592196825794343655215011499393496240388497479495832081009048295352375853789745891650170166559157279325095766840100364687134223979333688189509600103307141780736439131657881535906652887626710030763008113237769285770620678257617404823814783639245013443147950144511158467830410797443149261573672780653981996724725075855073642546925396007829272196674164946810009598830056827159673849366495349323549548904376917940873059711822532974677521900088545347468665994137919498662430805320571523315820983865421652264843768684228904456860896288013134040059605123834923499631828424057046683672983734964546283035407858683232799112954051302615084213141051659353222247219747687257698583874545785973959091709024918860697952926088075808076859490196466302644826163656882532601910023676471747975551808289025098214320532272079691869258025244650595518725309979809898735414185645860830795877194682289607416242247499918893349165452993267551003123006394778910000417173314294662034084146775491448545512584769490974082724706137204454615129614826005133943785104216992413307216895555943526011365189432058764959097172759516613174080469801040954835421480483697970316752474165618471014215843838785054194060545141562387838122976281916997813821684384927002922123241544174670037468416515098919336116059971853471010049689268837592930913165549834286063863875504736017777807985664447276507405729201397992741085962855974989245243879885997566118608846725748475853217743933296675013538503943141758231236475816724120371190010615199031264743128393345771820468492919013403172001483151315889970757067034059397547718876941979624941206846482129317417304184794566535811573365994351425246466221529913057509531600614986579771623080428514600145311988769032606252110628939733159008759802091964207967548221916653995057876968675281415246935813362053419773797896874440377791000768569793364404954999125832082987818166259826714936651287600528513718121375858213882307487285941627479041628712850000876596853046454825927913667842674549736165842618943648203503239691438157785700415360711781921663826970271910865160131271668884768042952557618732857665188911843906251937742083044422221761914380432648127149966730814057223199326908777299488398106178758479689987863951034857897339053203882850795864053708824910893242916421315299829817594543534082043910515694159725691332813135012013452646651553746597543041036350813412607649102217027522007148410100144565955234822714691087454910212264411719778572038624175392186460734880173324276613230370873709010491448393188560181665614635833947093704012592677028164366452714310088168650529663532568147309612289923604124180543191416635914375871488542916101978278571271253236728741476586657063661432252483171225447703738954681850631621969819354204239175289661187506101871345960923078579690792889496800230457993498672324247595826499329058897871383865086269790887406390912895938564903001979691051571724115492792465144528341178806467156362088447523492471022430071205095650647617684752773916013961466944779065542402452312883458749767765495561327246529901152605872404055788205916648549684876030173319187323743178351300885555535626759356852732846594239976921724008269429018147050879627756062891061363685249863399917126757650794055951596765672347262484344869403139196021634225154085092260350481353222421328830693312124277043183573031088272346636044456570759716009937470756644016079080798648249554333070543374161682585237542023771440288644570968338655329202198760294624134344682086413879854752206963052389535098209526789453903525781030501312458545807238446942289371404151146105488169230002400482021949752973747522852130468664580937583949733065498989432581926375200815484065259002692491496921648501185104736203767604972939880852460388203937597922783417509125653769593184673736388520478430782889102390438786616574542767825471740764414987505497788308280545100640960896570511898166293241643676917451287824557431948590982529118111173625258540796966201455792344151035188241992493176630319129242518496985829915007656887654097364138268063015654066446127954290824075544056128143563711379189262239816642248501107930513793315943085530541738938179954659109014692676732545945061435298778558232722840551253261914000706345442165415090139589289653137781992957647415150605348482282565623371697501270806804369000157524116359768450967987847898126238667416820422857116382759075884440911241872917610451346495950923275819545273022610264708887009687356657069949977601989003187110276626334676484790404701722481616105560637017086350584739416816652073511756626404571937209311940094938773968224350017667664075911145620846579448072930765224791868378982159396363561149643030661070729373583538800982549907047940911834134321292406846521490038733780406150646148844132001543586855571060744040817489239380471619619783951163904293068548164623068635687231908818798024088330700192613804798675111035461168170567455191533928456607079441380426190531759615293422660428931858101182689081120136097664868701183107737751179362545536447075239292472675056793772842128811337700287378886434910198488763820436279549558950501531580615003330008719397611616954165663742691488089861684490860016243021386297600136344068791495433038375796819066381991296072624449998909628438410549559662552701756983713979537829071530298421757660838433860371332252920367320205483034980054631036362242909887791173442803799977742099646023393694562952889977452890233752045940298181043313516288236802554371046065050334655244976918344393548383351409034881506081318588423607245383119025419239523462441195951965469599987298036144245411665227273187861860390782767971458300472425329036079725689711247967498062405830903784637335792006413539565026817860823593996999212920520813094309784998770082470318045296158363593256128641037871418900745703176178825280963331183592593935122755496823849674856201636088607134865309501948970818119152801674554040983551354267895833661165297010975004523751409722973048419003627369446792997579331122598674715944809536963040089381293346250580866855159130396361881809008266702515429828633422578029841554768356749949422638730085224378649181804306172480963609644275807486718942095629397283885490302076381828128645402328799149845239234136976114102544659682628060440812681420118051967988009223669245616526511489263585912800597543951082778906964092480223410115416041088894943257114638426671761276937346589372558673452620838778841436934603063196020180619164025711184472152538859105231289333461827922609566520475948746134369504473309196208074221471031571132716314270838615037908397360090680695157537457940354203843602602726377463570333302407068190718905183754764356121350848016468245630348352544147414352087469143503080325907333897764692618803423618932087200306177994480195498117480617668224537428625345755108031835065150080426441063258723630334213562244523833460088569846391978443990506792461852409184414800816240271164482167784405860171440727663210394896067875861568737880943700791528673192802493061337012639248817044541733225551268417689268513336137479516862026304243518033718460211516083147366182672469273571129140166622572437881938916021708444988364588521215617140548637969202909950873689221703820605962866786233417164651041650285674972769764081513607197097106262009635761270236162307731725189699074313703820089979689810430432430429047656794862241584779764913083458162585640762279301718276732679723662793283765959480240807807700030252109474510260103560791128058270440522778701048013303929597996200549564316667988092590046383975360765599749722912290583782678887477502401701195778171267613687018214218038048909840674369721077860122694358973332823273811987945076637636522811761500951410345746511384010848948406957476931896465749496709099167280502236314972165568350158347285014156802888931304449087887250739314981927559384251633083993890479088885776193183697589310915816060388790106971208343786193889403995520548566856312060857408422386273850896047274998323510945621039296590868227524216285755463029507635550584774035319808870824492149035981700218508837316631226003501300220152670209499722658280095291206678755699841638360563672311085112126496808617435132487595064366196400526005159536288698123275212518771330334996934441124617924480225701209486104540385251741338165901486368473874548248114778078951079823507620735159635482767679861945548611622297476002951430749789406678851524003236595011415711606804151067969687944130151499537749872946092419807710682921901865902342228232987995829676621109765641853684315109258414684034257118975815882367549749381239206590076406578727847304550465113682710885024575840467429104708705514715458071236510734870532987877904768159984766806367099744768448027378334418545735782630346600120697049048588067959054805255320556314949757880481549622318980099539010534823981571453101372200829422708429743839558258754786943757088408549667635344358890877747882714141300689497582730885920686010686979060214813959070169357800306005844572029488466864991647026532554666845611699303716118183449761482899150451152255103667633535931129352804754905386774521354692031128983577112973051100205997087889350746528963310358041524893650087420861083625819381756470291250112367916771992610797951837698440397150930180810137694018622520714881784273363594981691344943114535158875881572642701833426861316329704692263488756087561983818479736764758347700418247942900107296205884575175557917063028389872278354414657004306011404722557491300267542027059330339856749128955549072658178701315304836865556321132405553629461857439028332859226227352151661616673597599163407354306646024741388747872125758493271355877683887955640483802917521359636132262160105208009595700319807126177553361454724349746249295107085936211063132243719260743438874526763943021834401622812778154542095737076130624661314330260901454692456895683963418094390206503402452011864524329788604677666986780739336241107124904353281414732496211208994451140688034821845293146945064634810063290380488493473801809266845268741304818736076312679743060281943306098428295767054036679324732887417964363836797389340590662469607040027885144022765371936878895011587687600229316904210840519929461497321478702367879831095448279856447436143140884670602670549968093223533399660144658600915009148283489036655661096262822847498173679365637521103525592083910156948169089050087539113750489158173604809517079537935736342048918608124131327398901387659065217792618194724963936172107146241210449228462250463049977439396594071469781908887209590920837768025552990749891777501767037915024776283778303536337280075726081665744626587415327185187261970864034981063939667521620043843288266301578130472177553531457497891363508797773415474577770010384130940096523846468431440614183026471349684043409466919986329903830346434809435152658205006143977824729856402123669034290873280020612712929552260719587121973128187902685557993578547578673973866883234857778343563310852516102066980202549059304907213472338114896331014845753738166890358774273309894122486318836877516537124832025332787461294289711002869763670324247721787839850449881763212143201153847931954153094119168826020708468068890864440239964598731265947470978939745665244955650825713764868164889779218558714697170184241753636505780695310340482872466404240024699175123354053026846289402331145422903053023496780561381516809648832176149440718967350071448145273455576302771974030624628371471289450123409362365778520344596530809124463807698969723193090948102643624892693024178266399515646774313808358908322878552845797716674396053937941021969356053350486385819306970438814018330804404520846812906240907750317968328202186624736597852822651794460005808322040321195429315661575987165112269699651643496762812783828238764539672387716435774947538201770359253835752454400224264726380307544022230737718064309620502577362281528544686656896281865085307576818626560929865545014690409379466300322399688492773946026407157623207684324136252034774578555832373788738053906726509459799538240980248598085817891892948695204077981116505367102880519347001813595311995436498638801953855076866646670763563559560508877095089888778308664629094081619293260165640915007990777870032766977943079768708341727372067745381395047699565833292203985765437061296233740643363837866731775560799932762105339700891776298110920058697736055530800061093172829682763094103809692470847899836447520442285129829586662581162774563968531489308332715751252215113383087838216121257249956733428901476990703734064030320293313524281067800108695472484396060903988135963797394289550425769317039713930822481966268050380177846364729488319531258695487664663342842986277195155430823394953277096847024108273507117473014260003454386185020901808987907268188232945201787792768338498107074311158088830765151045734479511660199225397311270799992356887730190745029143080783103668772882431748893781314048269838456866234819941561930592441120849001026193304490078897570269727272468906089386915734898957925066060544587465017900701602459202036737797065974314125180793122298235875397727433011551896093918477016441467843957985543047366383685197295061403260234989958112768289109561535838909542299389010642591462830598078223781028406678871654842311932353918465435827786900244476406907697686674095218065107768347076483401884729277171794081425019864714105725919453046272103275211208348360119665256457049852572431888017313224795487793017528965337594129293647667825343644711153631408251592079367161886381173300059109885623474821414022906357119855082122552946238707919249086245372921854858757258149008331886859851015102427311510847042727407219405532549711581689500841617172784377194546912385411782004602571079046656443144353584705529536301205708394833583101294703258583965292562531177769755215048623225712043630912164774744065707553260383641264259155741914010484199380266143709737691674918521892187522948382500845540767952929854500107416904754558770973093896144678861162546812021692696490296871631571102114795275949463671226127556026621352344606166981574961681488902739962090521384728579194209392725615735651850838859825208896525432526772131569168097329287790687765471142164677834903547430082395981749501743180573622332759266812743984329389674881249117635432871316365320049519638214282533155260372834884382548273607535563883057813406400954579391107770998510944319718198796096457315872847112119404559211030087782133583500101941130857460303523179970519290761159809651701255400978996617948218172898632596826929964003987412948972587635815237290113178070184260684598316517432148077303321948211781594245807506050374240594736340760928364741719689419588070072513549583024459514228609504254686898310735397627899703039151739894876946293493351896462384672770338542260535763826069792204116736790372615831511547029989477844810722236611775770741925475069075786113860787917702787879850897100304783112440905691074169027709769143852298751294314720332670240531407370039960751868094681885404691163854561694045155515093764213769159903571732540783354603708691249722041887860048433155095443000967649323210390442201081112909347666536734276975454116429353856214327832318250147677455439538885867366892763453566903027929552397447408560294251775190989508894645538398629183010680325145830386809978713177183840273038935204990305096439628868191726778855152851175341357631873408496685848292976192922240831793771531970435789826820332893730873680853606327839594403436311255586991130603166448639911234440090425735869181837962161703091694640134373432550366187037378200734949821708066428788021763212582699640971904674280281477816819612503217885270294758457782864416133886193981820970844639657095444823619339287434652016282043769067444993315185517074980682848390630987566600962442542254155709425900499876380827542506454170504020279867012511874419054430643905576965425494182559989221130246130018785025653125694581082980436624396733724909871531557447096036224896437404769626468559184007495561020840570045902616352722530213689115590586656382779409899716123012155319960645829935131625311144943533362055409415365730875904463925758664026809138580233506363084564719402066382741339726377494671798266908949222595353444233223784102019828696804402889791014563589781786636714160620335136717087312530100866554151645541595298457204337018865032096702430328776023667489041294262012152484099220541785971550880249439596466145306865978215816447137694310144233605160898213148490116456374881558782039326027047616667553477781099692953422155467431978946282378241483969472806576483932110726739455969054804895584491732068165855571861598650652427269767707638828803570668707736799907243878910853287554785641751427034889501895987415453052051667514566793917483045153683911368940422626189019251039871437708357766360066760529587940456670334637880383482026181768430398912090424404455742986813200992333884159009650510745270027754930769062819498194416596790156813356113219114767114604154666482456889708927147345623360596564891480994453114119816457448975104025883506080879657259684763826517198916789352047375622215402563570679672479906003212701866450369366469079559645716401906173392090369929822083688291979430027658944075972560364888733226090097190585240947463509661570415570012727017220313703060073754338330792693891423444850539588951051941181628777158201157995229017808870148519169623678563747963060633561506282739726505861104203146277781603029564099129796836178531026644345012410765064030475325496410718706471883738442218030205178604357136728967000867659112248403236011152429561463913088220337101606724723328231962463708858044486570831135712974393086933294829773643922197895862446914400997314635745317320121397615021626308347544232772323424649656464314005169706478192502245503864331703610518157268544757851911525510217091293081207402535235806161340871894986366106099417930338134018972687671247694285484846500456459362220721656143040662976540588614384431364661207289335208722265112163501684474263930332475130147010031113673073341658886698179615967421131236116702380911374437376651684063428831922509725498811874595400864416862314141157714736543876820921975175525833802001570783827294309169598746240297558979589242868399363087799806743215685640966817754328353878932155743116168893628031435396414386449532435434657773364903862531718891606674533632956364682782187897374151754657255640966444575439085391524964099461761132987653906893304139139929607055598805380100075367027078952352434297111048618032266326434186195581119187480068036589815359934500163474392391003234567182238850108739024121421463816894102312584717137718594968306173780390174729958880780313788049222736486518892782510234156949266533155669655826870241993305219292690648299858635167272305225428626862126879230030554397074588199010239010386253775467727066898387477267417856402199290321513191994457796709612406404860104786725794328593055555316057193727292372650690879329358621181816109403581694641409530600870930844653707541595476323878305889239087797587499789830249729283956100787667860768852422254238639887897347331983088885221870195151740325255006603434909605002249552697920680412489113666375400033903415398158485519542558448205970747273647529818902622479036692065006305274483083165115777013127701391532178199626131858013849467414939544792237570126799136492759668251659822303843559386415526792498783558548547711492599135644357979707100452428764561761731949990560661347343690886385238733006263139749227581743913339700610401346172896723360984318839865448133475320534573749091097396884692730521564435855652815470113642788613039025513929508578278494659926085442125697675796656481063160479221448254450774128745719351296744025825598565691060568847104131276317508844339375648363169210080287582490213602640811647270919299669485101010570832076106578072634469322836266900216641072657878241083500028174044041379244627361130418361650544273841978643225276766562826445115678722074703647470130319094427562275394246105780230468374990839547994755645823553723187773202384898714577091032656949080057055138619743790624401521083189157984909990416686743593166654640306463905520651197993243470233541453154351173468204350504313372652740159388969821271805125304944787213105313865579372606420787657705340539293378765833680572396859084055520990689712489612258530005813601336028764760197552250167737616508180767923011734778571578585919889859376844558290833639656669416276853060117354112983883038963508089461286677319409912440529475585299129758729543722509127527219511876056558144657646429711707227346557777941477974578745884725533117474199507391988369695598704455304488782853442323083953249333218774657383370504032935774285979054117602091183701697212716573123812462992995248573894788514210990691341197056614291433018276919796519121286674825386816158576035920219882436064003503226920398138637334936061329958036999568397890797068225335103729437669230057530351298561056844006349332878705893567870908334782170635956730149025129171755584689120750558694610255841498754980218911072414492839222779489633962810179480068564266068877059746647906969226295324032212379507166223859808277905183442091160181227892294764769415269487188105829357477022207873568716678651720200353712302625814870718753136669560879891930607081550246386808680171239892036964984023853391229701847810542973440310581801674782590809533959716698845313524228280157306626923322307692413566395758484925890358275312332337559204560084315704636776488405076946079898339144155305964889685973669447505939303873566775766624853967734733471174150752875935487572599674819053399644697974000585353747896333316446243284861929797668989376060770267416934386023421863721106924133162380340986710251140034455219847562536321224808691507697414383709708614140127098566869973271976459783175824527810887278517105650931015849437263219493208927599266855196791997320105619123958796659580872994096327160103734709385974359431590137830182117841869380853428694119727800146569968677150565583518501636704376771615058156251260591347909117884261440534514933072879272661550536650910402982944061948075134343465773398487545933675939799631219007407299826234766841422966675088285174658620614694711305128008665389221210952220516539579234137542580828648295454090651865145618414800266636195665335233467074259542147162451919009872606603398833081685940865936692588510023291508223246442149483269733363158625252203497285480730544293494867985852635238119138350014588161614297173219557558705838949107571639725565265049130072398464081394103053804926577428014024990326925449919866972922373154121495157709911298743405081334500312179647386750252005928021476335652055179804875674338592796638672184231661922581482596456369427791062841818486947661249384821451656295453596358071959291907894545136033262664032135808924289188375173770811254221661958712779415095211038858668397865168046676890517222936978409609251784463883077862654235272573040293611264175814961839149456477828565143230784360066571805769242251117714902464396316981184074053523092145797797545742673176573486012693527007249316062206167957262879533765387131113119027666923873706022202394501851271694232673075197793124209774684484256194948292820709893356829761947864907762392729448583336814302561044397979581794915436255171341991939948633095698592759493691448651873486393504626274803011222843075067022954926589389426402843099633875244621611250504434637690174101108506324489819993190424580913462163970048944418012509376076480955976335880438086461091273123800502752740766578246795968461055575640657232589462720479704626947506982895406345886005092578225223778671070717767987039536963280718786809705104649751188640730589874352290645315101168261056164407690729017298186111286869610199309865382638498007567355000827433201505214279828051260947382953088643401491009754297900209253898852110451278704154095716986947140108484935137135037691379174855064236016713888887400452208283673162996009807582500741690609021851507864770529221141505353023429345372707175222563331093208704200660825219845714932257859498044824306622363389860505075949926558917060034280026128130382060960976110067379261588797448690438258919254359900865527607612502831661203424791356836162838338077893215305089217183746613229800928531260273933131523946922160500345144427124103341532050751760289469059582286387181815525162149031998111338691734835738161547103648344104552839647397484047154214292813267409249324275044070761006351289701607962679930943264966418988028889122541635188652665461961146498618548089662790760200435768886541608305985665615210508608527784843991663479623532747209200113919301288079621705104185762900279773037746942399579129748254216374693340846237250200174862342053795888954082984092997970889608959352978320345449577731825489257383904229841907659443823869849873868271933856139159273707564852466442647028619015469827171809290939301088920809450522377500826234536886399547578085918076616419273257687741016085449920804323022208952739198150936265588970566759383923819903586485273503064775268884012716000957440270844874801079396243801186208856511355681157843117116378805766612886038962592361296826216664020391098265871775559988920105576025436694473300996953366295442782138898017384165688128710554550800181387286512550878486151351071590236494039462921175921650451409556913880013737846565867109251553827247038364301676989767645675232767230720291287209817136727701146367253989494429480237086945677764613424464779096500803859640557891613941494768902097376661487000055910679463414657169997841607442922995143504909301571676366575376330976514052719278554937693701535706453238300326181448507508773403013358708256923103014039495396225137336043042960936439687289841550655265746685154709861560465751662877460982626111380880924411841727758128968823696032459765231164290202135430903206829021177090853855378602304420969008050982800289828238562953114627468235453172555873154916899719267443295224918226243540715088247770681103601763577425154472239278295545566486691231271387171765272912718774983923358765718292437839835369178170047723846408324386449399622327003421541862398827207519085106318752665811115929617558997044999538819139501483179653996586604610705521468886008830149693926170126389706222533933937013345141646819323508083725287234461935755755517042904062574869525642258181036002140280983107147898562850774848589323219027795505417982036037215843775569069943610498625889182839933343271102463391941804803415885156198421004662862066867426186095164871398036249991320213463971334347049100413455306880738756556573005787550956915326941023764736324278154079220581772744782240072278215189821624128519905262855267738431069313817771969539253699711167580440663222815258846789316742369435323717377708210639340237763312155005852951391884172328345033584445875528609954118140814104689199456927267229656424615339173332759153198888689750427926195556371175782410538541914585022821872935385082125391673361516224301151121517583056653420660569072275870891669253424722690569334826830918435570837703849515297338064240847591270817039685858808391294730509349272064411694697842272966401812783446915979083163858113746825607564742093419713557171787403446813017753489837906869930460016497525469984794287672967356049278411902829486520486580289332405752431107904513036602701012909901043399940766178481592313125365071908729683789705200523299135243949581679503969396395358536566175556001945107279409288149658278269088276009108521031049952736434911373110554442353695722040348392039426573848233022562717120408908854349053047633543834153329955352743412188766197308235459411408097757570129146863154657304104808085422324287272279718298806775163487182244018153944232677155133766279156943030984846222039380830034669341709882226141140094402278915420309167047383750390223989313321763579286188769918752029466052732110594132619185966057641016283173957920131022567547733208716643067290550270830271343753784631050893756455534227938222930859956574693121619655481429294790605092231092814749563841201213824904476743288015968109083565000987033536082827584999264901656873027217610788991940672144170207780573704463587064258202263513165538012654772600785838913345006393972078324303838632971969223968015934303939510587626033232010780316169649858687227322177788784169339057914490990678562199386265932591318676565795992323455917216886214880963294174058264210950373520117317883868194132609769482916053782527496157512600810900462339228392670091387924671383732907309669460078677655940496250059434267838794181966356288363564855963914596078710453533035428200248286168897330790957417589011565447386909920188755431707175339300503051973211371239855854964744754509940261590843566140067304846816927030918104413537740560050724998510454727872291043831249927221962299792988958388200093915587165221088699384811235177536399482495329277853157430823283597555787791489087694009425198486893689041122845434143052006049777100451179644821102277284661235248485270815026379781468700925244817419097674166682419453887938413124285952893014194823658014598070251848106362609861006225363081896498798169142400261914785663436109367982253764266125904600101433067646074740033819226788119471299350687958565520672871236937864754914380257436758697413937321033267251727584939326187971413462484127050265984120140900384721427506318963060258164986517585013854309247287520738226231000124578386720796287014979263634066553878036150998821894490041493359147245807339298634439687303530613992254894665350846338324101802437310317399349459077568520941698987581796081317817708021848017423553588705734007146473454936606676267225387560402709378080255300282541052886830972466188453346886823825951333700598061203548199785963488249757802223862722910340182241023710773964625793222616390885496726518923706895417728682045678254686828357168039717402219435414706247267740591561049835433397727359495975998547259632568903228811289616706772639288459676561612742838185683371498567856422438343829201834499290477257873022816540156374123150545255398511177178932246254667900549447379291173923912413610933992523518271414294687741187709043446085579432510362254879271637596524310208487964172106254170067930551956022055007517014183466715667876103871846942296921375263194699760241980800871883666630557000364259207976409044148530027142477616544727325939180718265237062741483945386682074928291338467933272758142542804907709176830735591769992446936768571889870428660127342071036175711015987720495791147675884582633078726508462573701807328612675844524538659344929139657253392824730127634059057341880368261578579234061492584410844077163070357602706293552362735114731538833185341369480615040170497223529056191300775592816483808337147941265154825260844699109125233863901532986606617429468854393590038092983105453220444399728582249983671050291491181326851981377291787570763655230373336581745774281956718227418609096101918946046945359589055014046810443969759969032612080882424461112676778488546947159238015664510437297417822233048252342548823109599066474389694084989877938252638348606152829323853958981479852220934853440177008854517181105598766814568828818336044127926597541444314527311815301025922840966140773148508780928945109717828456700373271057076222216972030462529088875943122573765270595912467553345574377604456908827022076697984365270375421188478699329944418517629690975145807587015803016915319264668187750777606319714099664654483623713020468827100152567006570239640935989051529537701466098523889887102905704424794585490278569082143980757884932006062290693187462365420256894844757312759072873784882076207553846950854286055025476445512300097303131825806261088003072344037086426608003346696349658960369051558322784853438360093841610989476040092808371168382809451951401105015377365579756582635710213685443405963776121293753276980707264965932310093400378785219535044158246008028508077144510820695097186292332394152580639410017190749362497094552192056497351776204564439391910943869505461799682567685955012835418515447733592728086005196387507947664442113137180539610335043621521364126782893579620110855621807004950631265170389536900809308707602719992259904773411103768744071365140876550254087656723185939181231159126607291932233960203581236789057627568264747661466262820595770346502137154727929457934865978411079066543886043361617425576703705740841568766785404464956009445996624647509970605947825890049908356341474285245949522144262851428769836620202114110375248147747985584005129261689400227045835979439455720519120256978347323863873967821122785903603558968388498062089243167197545174435958895172618436004972777344414760060417313610307113859037481921454606217431428732528803089906796555486721401048647694492208116832783805822787767819910528914533288766237688732194123045648273782381807899558227797538750322332554407922536522279029196729132022885842373422482184725065852243875405622849875385568575224789227661378858491160935027596288285111665638988287355276784764768195364226772947848792743231531644797458833389390912208786176555408002024373430524435973500888655019145176957635711237549920122321650626415046058578880680326275379287979667838394332764492010265773133563971473884994106353278001034277214778412767280632311280035184023102209352790967419491852319808429520342475454858283456518980496016435861507718551634337725086723208214014976912033891745941474343310967432559311809662454826519042778440961704698767633777775901691183631432106026518167728889128569492580617406019157932007764014666063612171348133178322903061248048505613097461228595643668174433325167201446583307955912127118155382215744217359357097071125315744700010401399278627164680424472906262120435657050959149963615812454058743483627785376543578248378441994651011413878023613391738281120969946548222178921738663844768862738598081318324894019542063783113816306763374039904379399079388007231076834180638108636072266687488167815987868528957637553031391151049755465687423525567537895336350243046583770616213793111858913922567134257122427995075895502150034278124591806193033748740459742439476262676269768296491851482501338040581408141794641551947032756803267569672562834373766199374072052789857972939758233697638257129812845166578659976269759889032290623905210768977721983519828769756065995825233662292590850738493485316071179250984131477695782338912852654203206581627212948139588211698558695337896445516553260559959117460646652233908880527977946388448250137946449543364176976192244259987290533267367955196132440867428499342255175707861135110519221733142751037808333142110434731974863886822165931890796455667030662533318833166128898149951977026870291033400668230581352026697110157669850733998585588769940425778352100423444445626128031042359080524644153124611297683466529379055370745128729617249725422250694559718387784535580708041943583159219533741974344333153192866108978882479875795690984269657610821929873714562958653062468130822553812210863764403876657115233011258358110534606518175430763971323514098775738313425340109284863219217573124051126932740594120666937162672390343905039467256665653062125118843075969626286810159929252555674616364676233445856888222942991679996614836727853178675196025630328597055784164266347258626762797484865084154405827667875920380622034934328966314569100666728400874404021578150155559887901457437017484465183972551174477815736436795618177824661142039249908832665181626174757005999311862217386609258375679414979065509054390844401183984152934109274815258688056419029649100018606694113381120309800027905393298090944425715531442919290135646950162586405020630823367724776502514670097263446441147771815553142719215837998118305550802007638526492557192240064835388736659319733391404739058054516307629836051994265346802538251466282264328155795612226909760286787839668138026965975004551993463293361453055298934443513907463929768452162740836205318657699397224635437144075879006956301601850905125726051686858514530822607151279118012401253838764563891600280428968260109808111334613191421581866282240903616816693372133528793940811261327505814847820880773087299180376708306916312215179857627545455403022322587544492977221729559846673061560648965648939135985858226676249958126237021246249074837491432257447682018537659817210870038274642602184048985316635434022367932467782264625028087247212248624959048262564591368210190076767210992353806157993733197211310911029915522020507157804742778238855701624260340945597168664115912795643647742234320636052640054348017166327270939073356832298979165188251317690757790275413938871571203333391059743380270489823213802301494548313368748278682742658072860091754605109650923103260929395854111998733190540043072865517308509805945929842690229919211533505436006023967358458460948503985003999102896745861006256484843154837277932933489974117502540246056720257728554523019617024193683446719037654851619750354046434492125262458569582317974748231040672646780926134771472698403439937999245285072688730435544510084614566762069667051237232956204298971011613570018957899988426255710994350202950133959791251462027208405916935611886169669572683024171543932820858230877264675263672884009438940878522144778220011805194836144256055119658590212542646566355737274878952618290455050247703568982094253759073175855307063617371351522873464732475734472531292653941095129852849806195748499698922256825022649447059763952823395639537343363914183766797081272067381385809017294842670050237079528269103777962511585547462311250459493978869147423851683670234509296944356825131892906778650325401127331922053748507189490622452132313493809495994745619442694465894719793868904953949420674096933025720641565872769457542594399652776351571148703977876877077158602698523153628934448944172338889112889994846617968633407091144080227656394232409135876328577587445734300258341974343347568698127864850989119373062180853965039452555913779448256097468076406494967024572912164719874628121484947310195215397289447892567550814583642786345556096745735466722645975778420530992727314484882858371468217138860756394906506147518944774767665668687286924523683057310890148843549275598578967982135864572537676395750263887966861055145466095824431745629372001824913013927886694475196260551568052789275096595499604543062491556297726600151499145518049804824028943075630810492654368166067059819543879050176073327000149273600988432181546923932490691710159872567826503863162481644275762759880136321918220429394511970449248660022863686882752238266748739633522922755397173866614298660875822289639483219765921021824641318644588150479606550490317969332181812795489819636784802391293703284391014802931338042846035606314045195894682186144765374966136436544770988162180527367401486334103843310008218369434725825038882349709664629458556264007052194719684996430121777042056976641722317114286722329856753001984698645741383320320348603230784291285205139780157928043936070426719950610082103109766915503993714691135421315469967348857885288605989757355416593304730932837526416658188680784510589346574363081028683395426016783382401256735039856236065649119153414263666570184850655664992416192105110303952277021732517003471737916458931558929570393013051507050161092367575753315289499760200197378563318205021007542435507250378390089727979000142451480634234788415129705751116743755184559178379183104646998902765414786156594785529100929694173582680093681942842878499605000653627988882911156648183041800150293110072242794775691279102439313157780790820196260912248365823853745134562111300628041185535522638712644087966147201954957726788468125434816890790178672192322488047410286574590521610016382591711292082965072516293626472560665691200206589201650053709117158408325384827154546840046584551237700553305140732187732857455086483761795394832871211394277662558675241963288324838907365048783855859826927947370237532759392080867231021110367003314785338351137339275048316449902109754546174792569145263637882442635341028838959644836976129275275425117739789757780457023467687768452678760045355906620077979819959043298018112104426523750674921921383965727783006416032056950122253254353421408081200702847983678973408184284697166035359905814106533961589731091265232524695562177770358931574924250731953903267724555185922467818452744740763720894393875613383904617166824958245080601226369331067488036902713890490617933840596718561249854043257398032483104552071343991810712111673967683418089960428855971342377603853762038157732720251660337841847024717989877398913016522592421320855508689932155907136910890597142896653728867208748145968648359507459779408739658329431888705532335334674565978988501715033851268101855987181789647878321748959756176518399910291447933535072351025419611325359795663214135247255655132788214687963350915198055072458922147451716415949369347012468696414620229124447478916962432899729291738821240544952373519778638399868882122217945458589098104079405364098545196218220779824976833573187381004641091186934108605687083694058628660688845904736377505930160149523632126545942140091547353149851157490292253653604966194133080976022241905788648134572654315029448600268717217754015168125056313511497545942829773910400023052698702759374248657128249366646385215841722405433521734030464382050846021112361715538706336147260553307456963103623794354994356264063244014418405898624405460710969559198414600382183688202985609773070353806718823085136486669407847696894416813559163473484617925923056425370065184216690166230570298559448706849511092595273271613295475482305712367226793533683552540710337429078892317719649461126273483648784565455570562801565556580637004062840889140868881132908737528559765472965392545561657955941483122426130457886202410204999404932069323917917326460780280853598340928592423954157227412840716999444302435160222523193028735966326914214913911083993487143144825001173734285450437813026988670070735263139681738069763859587553519795231482695294464313389343318091396030426923690407445177489301893656349379866563194856329222114788800039573620511090343988440750242722132431829393829619884844962813407421688941088252572963447065652138273880179203278933606291687127075396110448993476220647158543156132691815004656831366476263562339655113001479722324847947463149667447796203659941927837497825081743408215542501733411415044737517166140781286106721285267928417820014022409408827025867346620856127841441114811215716356477529838300145868995331273743320238497446274731527991122405393943502254880846821557905287682623119682396588866573463558770745855331904408501463456962829744441084659848943468213721370184415283932138841026437681552777714550753458655171041204081465033580556974499804078197534126475789553029793229565884326431636754531384676756980478921072363039922406400753922303930199054294745834671905387416832804522529961583507364005043319843988413558662974905355182730125183998570171144730836524392960596055571784158439568769686233164543173146836599912282656803355034978860008562759735793019957454053249849306011510673397340469415278497924291023014412524514291694921476708645737557712821659220599394588443049326092932605504796236747600260663790435968863985091431058848516683052983074188934628434207486380461308117911014658999706872311404804815793742133917397448073043903688436670494149007905152085232315019566188469147336194706170422823048730133057773551640534298491674148702799945896285305870828221695292085742215624622253779258080937580799588259387022425614738678980048150662796891205313427629441238304133494753524257711558061487060759275239264752107232012043032912725615751951334910360128699473505262317529000840949013457972235573929088415202832828317720525672332095003734722279604491395197819014416015601593193196996554396903602259519200571913111384835905657071038990796229486424794078293177192983604876695324131924477873750876624452782797115342564718462043549994503343768048309201289224682081227650570130480446209405912898638590179918281182915431873389057420447469680358666856628554035639737922380043281154440602653705288029156258997925200448821930500882835251643992261532936558045227073797182101953986993675129451970975694174177796729497633893424440769566750685339656067618257311917474071174651452996288481399337137419902719029090577855576863788957875887718370222915294486611110205934731382826682747962593797779870055210774748824935636190830702282139740974259338632641858540008470300323551586131828682687232286699205383453920986859260011846386209903639371942354316341836378956815045979603178368027729644864707898483235442179116881316028616509361352468070906879090058874462360565749085568767044120731574228794430611306620182313490033660242441350083295811237577735605805221490713232027184466187394492152130199529714184143008952994641802440423715044918673644713963618793288803560289296355594226712576961259168440183314173427508946489473236803749811383140150702891875645038401388703447482997053908711930329924590747829049547597853482575808177121874482195962280928199595354872269028327685770487660531169094964511029886075420450820591355063029526397769988349568515665680797037988388933873116888562288372804228834782982747473399685472529551928694910467862018617424274853089037760121657003876648747645812112079798827420893396569772896012453356564163186120368719205247282960615600326148848329269490412257160055202879850806413170207105416589380994321296402779592691280203532158025529456023974809914089357035375608415732009430634690152780805088748470313277469834279614744456335357744383870719092862605252339929888409258948587931527651641216312117786677315898148749823992075071867120018313060550664819411684926632584237633016660149752618302381214206668408889027995667143473177826485391940263143297341745661886573678627891825611412951595095185558310148600114312453693212602324475254553094972395233542840947646717379869482246016899424902933445970429214311685735716239610067001626663546945326051149704261142760128862765098814911664710015781194078318693381556128743807885316112434165545813315961216195944938209075967605558576910374619079682971716404986908867213550388578711022609085304364590280256194120000941470228661368913032465789951467057598362526399222392805223415818154957501932233843299085522394564031799138701073227917962351487639217513303248191106515237378956764100015081700624753401943053457952159644187983425118766704042845510878912834615904818271818892179066902184618698403444846668455186894184681142164217931500348804331111233432137230524509442571863486185194309398871033934945666722529658996775448082573790813045191996820435752654173041397242928264073309359464488269535638928320891640557602595829035545976716748700682412649965947543069570903051540633220927804389838994105253590762187558560865521948911545218247049802943945803066746731314827700329398048776337685665803594619628092482177661878780044210333917814847711214061514903691007080908049254787665088383403648680250028042175780423026406854432573033308781905928010700008013073117856348023281252941750114645116199482908121301235266025010139878702316035982293189214543998782859628850833323546642883362103808511057976580224943146670154902685591278799297713702546326459014969583938570673363480172357712804849240594096520422693195806888890109204526080364224493128839479642959922791211139319148847125647254401759112115014172270197187735338013189160279084193116815607733806293607881283869381682301360883575017920039056960600818151525248796049586496790332094154270595588156624743514496667111098106958966867016413068159911050716977709859463325041729158585386977946875192830503532491514560269794145818740267143010803152141218964170182943718110345777769971606144527450480934783634173246747408023331109251192333464759544276734946483046434783845491291422612734365927348576157486506150565351400133265192037092140665287208965045086589871022865455484261412501306576701333059502705728735376794650630040633577873940134810227066047761831403674649351583592596761518154405517396782122958608969416994109329550646217779669104694095251466751649661272291222833359028712251623550049963641912485342991275475729253485424808140278142299750170284411991105517064405476707302762644318830424430314003733205864397771869541920069408637147672506028867862431957308985644737236107237513633236125312288343793315928655894420059752985835546053794861063629591511531834396156407857426205352391036243333111946392834800273707195367341826795458098014149304961037539689260814250110294963204867697639563955914619457328537960986469476498551483599482233983864586234517743379065567951732497465874492973650772281356797973259427717398830591860297336322823541320280745060607930261169522711016649152042559409271330759608389671123216034578317957565884713921655102313981282717163182325979729076034542723625744957975166957577094486345702381355719194990279883793192935242640646144284448705921261842000205013174590505597258609299695284957265135284251041837179330181086716781971784761603464936426837196781747710748946130916460256325476908391027369819620190328699481577087542963627141967292620564926161367263625280089810132205151311589823185251947714445503026958183121739067938376338646048020566431112349953970855463023944719542081065659769346649445980372080622621775448679734402119879446243320547783680655946478218510826968348685461051724549091589080767804889193914406451491473242760267112279753057878750696363921278915815774967593815054761645825278651783045580346226856290301480763324960847366235403349523796478276056601566507142575805298888829476331995134801670903072940740095606375086126605417474291221765900677314118678955850953701544617143516235605549910239457679195907746609723553371323370561192900401700124703492865182956814405738577340422704060018776491467936098714258323257896136732508389898165086138318652651063152256075291019101533952294024049253641283267982497269476661275842466371204166029001539515887253928445830009360517707139271240567551159414639551107610757627219262534077678958082245529874493788833144563149464537772416883461498716142620636456866260310681314022530762637529870651277460186649999440693383850007122059279418124376478581869245049977745024831127256794533919288765582572615218126127977248491903841965627298663256747351308899783932592993995453020709625620394931470115695593682650412067773634096643523305462372054218884377651702931543991918382118716819576421679004939130827992804876911764702409921017227626474836584233268251744420939832833410342276221452246186515996251561566468815467903649472273804873443379578252956462078688031040450997163500876231198279726739948974226939871736888048906063782515069501373715729648314878409344192309125331562204957533584171632045779320103119308893608509168009109725471378931467334375713046889847079498546063322608594009558778168841897229982791692116730177246242646632183025009676824228833051607599732948530230271308298713876942416590123729663998273392306818485902828061375554064038817866726473806531173042911077434746973796844957486261775741518590630607019836682879065332075947586662889069157293293633888703511545223643585441318533728431595449351338788985128926128763905454725807008499114121955319037187441146005695727901787800531809520709719527122139309803255549727299286927759071472355979089442196567593797357422868484709278595429540376098773026274270315869934490134922432712638234652734030148121942253371638138913572539320554221439942545307655605895512885826615525084554446568385405651008137162470045262687682742582183778940893743464396681759420854642568947621267749062158157016674783279810123414582617072910069001523641662681066242751205899380506782095945471918280324631920351109216668962296342547758021741968759633581857476277917008020776126829238528385349438033941117977409418050240249557846580152338921843804615624364615625253106163112198433976812317258505633376919250077857975716092945580311996099154369632710067200149485262832760997467023627008589322739593550883088256699189681071271102053766866100444820757673951964668033016383809314895376385903135611949425414604436166701892696610445928099294845762858037325011853176953525891717770209211986857875676092134043760639554647641850797548514585716828508217831088199270155801120655906052411515806114416716722009578666124092867982152254457162735118496240679478328764683742113327064218372478739076515871953864056947877374885626418877877654808841439995861281077721976820110735768441918381392901897998185604918967510296849582713726031581413731594612119932218073257097901654627075295542493742217295688024068464643017843047306182692611805658675537959821927535224046688112815978559128394682649814798089364419860849108935869407012465646753391558210700584894599513699965640043443689990629564978998123608174481234241842473436082389521604954483689257633537141757014345857102163253498720479951566160091279429005666476246424417118341334088591951561656341724393832136431864022931958132004347784180095148763985797773492202915183207817406085948829041029659655774171553260560752174318479990546677304832957811177419499339333050972611534620810245838923890627170057523588860424300543246426710891241959880679079067405421279699146818169587390675878640796458606835151198631569431805669591810136027427804200594593209046064031237470285311037749509246553412175310932216906804324997429299614640889589730725929881936677652705084942452575190868404554332883697448114295711353277374805645447210160602488878683658595181993502893579236760217391538739586422611431980997077778118605562757975751730335146170866076954418880559229028064498217909538241017284168842751202614647254180809983414298958684544615769514061085444470054492346744917764802282381018547378713801014898227851329845745170908142288962076185729663533957475581571842596126627852400605342704550614430445114667690516757911943288880438772658371811451167474657050842116956384620027406755156696209961280186242886320454794938614964413068213590136481686336273459429859194262234940138933328932341048420673138936342858967661565549731822407792070705863100903538880468854157413440427268275436497027308868644614761479575881941912607201903160337356860212017248764203017476551650506215686289793137281587574413299825193196282658757184019374098790143465989294481993224838903719235836575584459234442633476921971296891358010641201313481608834410233585012735170756818877464177382163851935264403241266180315806766142472375477263602157679732125676505828333460506588201275972484849037933982531329426970558532316652335602291316323103586727594570041821790093121366088180096944670297282183983379950292728285027333051825794127080049579521162089964626237016820770710956951777209766778420497315423756663644282832148102307327042001739228988607445745404597208823561204048195910775023017957909091316562838409353832872797740526133048901091707749420048516472836499149187344436707087537359962455267121956169440548837891330982262679003674629245726318115572010314246233045675624492503007311164717252039582786752558798818151128376894903086335447450835818199408842745496075839669515635410991968576914153389474306620932746932470451961263966500786958253195806665224901031512591929042905441192114906552264816177097071202840129195909053862598699463458380112011100926062608508730492455990831137581526311020008288002197190783642470159209206160805820919557668230481548346219861141513153328721966388181837399772059630540834194836950279128372731361593678693150744694254435223961385453204711998408801917027281231836915455967376235223481719652267910888255722441703279305117974939005494215979489350404045090613961518861847654365894609272327020147811684526038774496459632645012493188444355578830418484022123495832174574256226684717235174506386225356735891751223609018008476049380945927648043922779392665986956145310810237732414973671074883003531820321158091385220658668088437062416057586287350139967935025143214049597993158469867466805610947381193448019921440189791850546987383057216034922530178726384201178403167985944979761602028963992799782427266252988307406240051386869761419525188244840314035176276224333617324838173020964216487713491487467329261320458457805612676426872731916954611587426727675349360264395183862320901063944288618863152790476821894676857007010195157547187672816313740300553102164390929328251623759197390103234361112270224124858120997822655603683758473507306671826134706019483408608365085269671005551834612871542821587148490885245041931560678381964471708735976192101898232032658965304640308082077733253412126197453196940686951465954900670362561065435070629573306825822573745439477479908063527808597602730806518176145286505811252092981258841948768242860425287045112826377238678789177690557870697509931126469588381211629527135906099273560515168896836207824079391526777083587517603596282176961128899883790014532773397610293292546182789682902962257379919605724482838301573876239970693498233174509797273296837798270173106542810776898103289583370778505684954868085749061536989715130335210644262404346575223493350521677131827171463984154589751157731207485084976591299970919739329327935146808293381074933218678663031111394886425917542146616789448750518458865270037523672798281052083101797388282418929159261425107135187579579037573828989351869850009279930062302160926923568211097814014331264942638741376127617262947614223689852439234340083554068085708224146193778433749358593228716433734456101168304797961698202503817773014769990113699962858124467254672691934771561850212689459316114960838497582696118901191121740828581401255566841873083865147867548487038825295539482701609354045254666396512815113968829110491366825380130695731396539990769468915851117883236437495749658528985328026843613096317327816750238245805089519177943131780874558978531242745685490142166814925391866766582603688290394407839851176770557004478936053950124023420365642986601170849064624042067748798201235500044154680720842035398492213071942898297704548910172998329533943158483815269537167021328332819762674661107527540116772917425036015501015225624196574173947356066138810633960128325457165954383649857695532276549518822821052912422997194419383685101037628930803567828570962388467079102799567395574221213413021499189865042383616895166682360082954986304285836429401002817461508911240852103444129817724114338097178471087636809364760984101230210820942008266498777938673262519464339374061925074010799877719871050410584131785671591848033211736057016762555190569893234355242356206228328222946049219269559501249103467848879240039114578263621433214997930296637761879554744884898977411058545627212621879370142332291273021000712812166089604096446107299936345595655081871397619879554927703247350175805980038499872695283557242361210191882903394752688567989782918670428139008248654216439863124481012453555221839551172213346251620732812018693959734201283738059124931708662491845306454003861114909665646827436806878063230818405412010311160935635620004331912317380413248826732254411324351292954284440102546688787579323093407814637487389910235807468393726656906797114005017180056918261721454486924161101025052031338449639374712284097681364117548567281793399250870385000252463693049760345506446991231415364897655509321739200206338505950087147552399744807450639477792140100409065020189601305660906312752272201565482873741774631649522985470705380282491172691670965772699978713765645546552360252351676689181213776985417774284640433107036231839592942223972753511642860811536888067659681991924196878529784038420169706591501439886343522971674182501996612988049589596423369263291022950153836572265046504054477278121394472543749185949005689265599728304538776423081547978677859877045885423244546449317077311873779555226530241535841018668320621555508307632408860842857492017951431767185122765453379528190213236032999543516227623016869832223169757528057600340568001268302572352584165690786262287324300463844989311841233186413007429390021137141057225596656063525809477056435196560021538486802494017591270626386441469480054476142779398406827952833384244111263586103463769911895421264243022334112293465993398157577775657428081908140237068363463212931159236485717822603467271116532746471551096912136063052352293020920019819490113715591677488210418640241644502384219404846203698129744074142344728847264486247844111833376854575834810554689286156892536276666970229377931097661394145967389745014178494847426035011822290946812660270938217605861631928951843731237027781704990617748080035441085347538775302944879459401555894036187363484394515445406322204832253660972740105146017074790399581190579869321195863310392978660740721883127355241746320020286612840593678031760287554139264567909291247641867545106544359413116296852345957015310917860376115591848128059694791677228250235705951324226685859385171837661200712957474826164278355463000598643496377758698846674590307761480556473634994454570303679162245797790103644740981122093090995294909485808736663404522005141167012012366250608075827837676387824035634005719220576300178123821293009186899240500297540748879332305602249232568427688209622404815073875488421885670942773471030466140480433581449963641427806150569948069434623251854670420016974543466929563066347491776392698037618524838433674281791168529441490680017285910751290034146122405029780094031700332862567548328949003943058750457135329682323204269915846489165363081343870605681716433071587370419407792247718933828028517365164318301507725786532456368819934903838128186398139717433485394061936633186851066458360813422042514425773046390645413413122011279957460323246773607162082982822511614344607053030937542346302071871026508348541959394547760163665800242842967141837240821797242795181815672412762934770558905880365354724630403409442140768827620617707195010286656171724424445372987948789410619715691469772049023535675923787118034528574895579757057974277321597390213199931554258705053907923681638202666128720040317175212636672556891765969212274228967519967767742522251739953719351295795523033770439230475727984675072521993797413309224159853890923719520042226559183182886332717442580793325783434044220128361633877643071585344393819337295020183377878876236621905472335615233700531124322999351357213452773171298216987993824405234148215193546240044264900767877553756587429955204211693221555868267042031316517711122322783430350667494167349668634557990294818557195557069334476997860947845811298524587463336142645997996112417155049110058117985575136463410135038503530522850039208218910854433817694498804186347001803911753383855479783588492057537104292740546542470456785459784637394622382708960165045399047773022733350779988340787550015591777769671103137911935955731287427133478986148406553342416207903444743943414676080040490612264400319604055434568979615130974780239638570456572124887166364122012642725596662061297267337855418008133310290433051085360487808591308041838871533678793529251272589280570740532729264899980197442419088184010574892647008460562926789382833949526153284199238171171288414362590357676209709666589114942527241485432493628171825668194996258797992255949254521088575929773775377457467015509846379374940238518940582181409301200634527522658170658045072861612530884143019781573376815100102079202525482355222102057781104925110734825986180718983719364783126443303066498143005248316017778469407808740474086625274338285868679956332244170595789714605856962376535112683226203050815361727140660823916806629856891835869516278036543864391943066490663887951663412231038724213512886379924420181196791917994730337546174881678943884256161424909010755545132701665628799119766194294147192831969196272775218163611463346396384367348353141977000710645135357933834743794116698801274636637042043534977895268847096326824892530073450313376949532656587839806801352891948913229760308243392449848841913067790863765181949490018064942845993673898121129585996227076992308683794832325416630268588452364780494111513118037462492502469467498165685329023937137196302948063484694008194681922875879180405230120244218152007248998084419834495912442292588673502373447142423913129368688398453119510003989826961777028221738926098387131155696392951517912348643889811379763135529057691949691231071474729447834083864899290520629937161875435571803175260366290060627582269002424412922034205478530853069249123057722124746305652599369830277057735608231888464343993552520484376868137244577652487124195239883353870158963459873554325590543740967530262057700508213628720574117529077503864101245379033032688927648929695259309710542987539778904415953910692561246030872159334160077512714442452108295667748775149473057756191923541710162907645141927061056776402379455049253795494292095732025697313617519056296614711005283111551387049163028161753611677911782582818367019643138207767370809036731159323002017972190798949336253261660204352337029327523212007058837794097737429233985543568369117164337874715841980099160399919825484324056705524385788433391715018188608979701110304411447420075893125064889401468889781148621809608203913032717559140870423572328396978875309024433665310541134835357570451710947831489445376538770284701686281623112187947413485447239584417403418748033318808578341995912743540466218716458506165385944550976207749302712802421538792063163783164997331000870317099948612184999875802857614391586872040681512655699435281722333310517200513409540255451369924606816305274199076896085570042067286409562706410163733353313244365094136847535763323976137554507319931847738904090413860375120220152961350372929400626055820441382790202617480023457964990349464978391604413616095697227347536405474246184653402156399101883261715187446095751317973805584560721347914770439878730496210570064240410474286496761231588113346585344264684601276724273804452155179261560550844501479733931537668001937790801160695150488964531208666289093134874703837361341123930770998724977474159113918309861083201734553657916169690840358709548961814035260086510361468346512028178742113047733703227896211838342706978666012410472857599382345803150014120596844779375717737855417393684919453297810109684943788527670784598384049887346340694939582952418908061269534082482574751168688289362665340416569807105664448558374435414336753995827744680199951815759972224177972713618741682152962390612154625639276322215761809310125603868537736076538795516863521405350426613815125510828878216550768819256787504979376393812505640975996314925886985352910230348246234211627484526756377524641058969224430381834393142690619208629701344254661342888617945949781966063999022432711035636831038734944318665888436286752321025307178121741879917006133929472147891798015658956478971422497910251872711542678818325785623600444206955093639081726425165391514451189931650638207996285235398410987409144616927276179583110517043100260749191021953014883976778795666928843889332360369470457340703462025389973570308411877854734854580427143780663936833857934466068738723652703990454964101040048702790248528665232138421457847428570535510275989911223469408591028222065950271840753675887606322510059173272055822469577768371324993680719387224822321539270713406016219812679867498585550612208504321166233738563307912646481247664464538170982477245994178103834830574562303537078402959869921123743551263026367747462211664794297079780197768418121442155666654608595697083265316606497381470091342063927613109784436558345678759659493898787093142387895863771068920433317676443814184885525296811081510853573146804219892931909845134714996610409142209631216269775561446983507467456318186079501544101695888781382134856153875117442502668840840474104637064264291587715391571468807030575995200887405089336287493370421579159609662476686485964746822461480804214959444702274791387613302704291994413265943626108165251447618858381976155678614310123795777137965648229082504856081770665923940205346328945926507925651243744651223150202595953097082662761692865127732679156551501520962695716879169893440610612389218732516692715161878881506268470451029790429426881841670710599283689383530115515020952142160249852605253343777013326395613628149272228400877830327442810205522317650697032871720573137077682255630477521737123231803055944092498938649566934786684132031904206196271515620045809070182587892974141671079687384001383895081131174408694711778218467145854418541586005615700415209552273718324071764559536470264909206944905010083979399980144242152810301440905298664367011301335535684775229554189723175182437690095688072914808591238288596870957656341577800172674043541283116133622202994438880528773709367034454976514541218278953442359661763926112809846156228817862133377533099440396541796286778561092504132691727732513365506246808443255592441870075439128857492235364090462409198008033763904760803868761849624888201776719533596904246973045938872402860570524042434007369057114649099455801203975853892794633606235707530619362376746245174456925824564991339281500624863784862467172004097346285979954212481703988064153291309368351347554289040063067981025038646244148020979020927330175730504072174809730250150094494886192773198551724135400195168970114596771431374767337798415400453704277216994791069498499004991181554852333161719291987618250520409797056624916003282819624148076920596040722905194870887349202785617536372754595675179401866789419155949159144102757249810962736348928894647733359663769822481483137232574699104032308845299145435757147194521661185065418232229504794539219858811324384646094032294969399836525524716428475503559168436499539946353606422746545361016172804046030517020105863414938171332323679758835871423338353737349002889015929211861605183165138867701901216607155072335074691171026395246191704080926913565792165905983866646931789450589413183700689838306224514910562555759533681172804680993891109554277118815818205755381437560497988369790187726349697605822175483000182842846584841511508820551332914215930000022447418053922367598915615890980689682403656698978352385456842360601772356268587597142834045739464877120416023478352467741553808923588271930364941421249633356473626422852981579156184522936197503523939549147550753493434948341437009425869674489087826726592999937905209789746303690672788225303019229072849349474464389457361989360508348097264045479398893380242965861938410390179809583406635983181332050326651265793623752324490840635625379855763408369375992937009981080770818256982593169133334439142713977481029770106573567791556075274158099030395796546700477830366169932872075124070019190933552282442524641249481610731840181003722604553773635659459999879383224012396759273789593057827362222158147567261133029752475334914239284053138416513495770161220057531366433869532085990308623488020815934583888000578408400688663373317799909078414979368425961497827994158116549854518847339242916180073441332375064798783418059140849359625688966947444853722748297712615148129985025847273747816787763754237403802686803455590526826498602236857924905361997384622706302727533393648546590001651780733162867349243323072450058235313436876163645611415193647434108042831015131823263052368708685525666258202153742071056244158306006832174014880819112206629071790692366301014986841114692398252960088358800458423960957504622732208413716155430675571492922339571764918129500432146134343051671255683822313230482203141661407129344498922655869629682617163087847676842307799892046428746853251072283722279632120774555663855158155465306115579929883814052099630483060557349525787808570696922952721452344060459946461932177223456580071158710204011772255958850165368286986214993373213727061889576566517968527999212047136149913734469402575124793399027903285499435798161256764157833846137315745000297877177000065910647121082995167838577677514349336917229152711788326395611881971134736332148788062347942888428833025926156578078667993949189761944943867564289316928654340153107503435626100455318568632760493639323671416899844211876439716149886830648661327424971295818345883507959595761969244126459434722555143653201097759153798928004085414074134982726263924888390154374656006021417578674479552335075919186825475749830800757472050356041472761516455428508886739397563503649268818174788116132847729086296890635317595312819930567819305102342142426301527223959459051289781019825447064994750768178317155580977831486671340376390195342754408681264446225964677728499867801021664934447054287569077470209079567182885880575556069447574704786124970031911807536814390043085082243191267755117767002934428137587808348369660866039279428523104585026943000799420187771863297283038271680079003144910563955976513612589593513469413859972008751836514427775086553201173747639811523543643282745426498763340710050434156601606885085393805273302304035967697809017945547320639950073250738971210199459737448462791673860848274160565136059122756488368569993499983758898708715250733903653574396038128825842997686661841120404870568152099699218722701524956850778734192563349761280241335720710977614262852769257269789187696740560907420833107815656341114216270243285248310163583432026902640251831844912412879040767701503228190559015643881978147814180161232673011351227283092072014086382307089621596559510228154998755333095842226703105317645560975182106018876607037190694444989150488985619585649194204371893121829393900861255924004697751380804284828466545174954771998051298731798140685681530136331844789601482263876103922712932830879270322199172239475488632563161420944017708542576887560829955434953307103239179852157194609799236267894709721647833927857453871016438328925910936363056451957912369667121910927819718930512794403864818837641881621753671003001879706861486014946945538848196290910323141242621054873883474411569924519573331420840545388372103853511247630080488206246752207438883645144490838993232797934995087249885645656823636359493914887467360385443973723324296841587723529626496829751153842809125371997761033333485177748740845233976344854358500236833847869786562431952105707664433145566687961239834631834428237381584789108618927401594924427472658111646434630829859670710890657899930005619241748439541764010376718643929659063627428700130901040150885690961737161593576112452815290223775179179024548218178946263046006888755548525726700423750074960822519550511668883109589439939857242378194576762191599166120164157533146563821615478040512614843041858626242422699226470691037336344677537287574600270675939989944860661391362842730821039513574967910989101373918414826552024851225204547571658433886082408512011179436532201504880626186145188896392105094253992207376688786243790698829903450015574412396422580905119439784133274525511833106602190172932902894266504012063792662515622677167170503913634425284196973353926541980404233551225126520366481552645844727479279327520006629546412873163325888219975636419612324770542150608249566572932751767026783953743786941685908879193058334304092363420112833376715300816543138064223833779220986702367647507063071926441729081955976915997946310907255943213113132511538395817339051372882650522018440114077835305140238691854565217280345624508220588694620861495417754212703456631060800224977415385856289875841630616059726488212896680414937468382696535715988389851112633686653980228219821378069502159687310523533984214624622335650338625814528665399361874685608508109414573499214002779777036540907470002423893684951927217624038739934368971672403259484806753706508812289172003497148801805649584130949680508666358826507167148644294012758982281038703737541369442435819272213940702136644144165188078584417439783721137344280756098467646126486583931372657327257870922001547252039463629845097005530058042180871818922957931376406087215450900165291585173109574771923073426328542005886927332632639835816688247264327844771713566334990352436478660814744054817857752754773916692255888520380133797488893579967820183462699917952559304439908782625023767579272990640497680711351567139565882990778859412645778992638260435235176649825654791006046580299098279319926074772291744556661045966076197010366753284569410255726872297973107587968543513271213441849626701669747119721885020678627467436958298533864191156188362603207085101686150134993905343775628875875770024787599391727604897080898283159577204768002414036518949048133382275889756437598482529949749853064132102034447958895179007735946901464226470374770758044170292670928559781456511488304031448124588322785246223688609566392996529983500020102785746190100648002598531688673219359896943102497526149484993021807544964894880504024952813649879926229096641957894314915350508168406905085408427708419069917068453670491617677016414201654489590154775292492055792149663656006303572312298688539936921289238366399851412597763615450695185366016386907922537253470271816047825501657913886053237365705516126765868918550077305114471603091231032877065524476608945997747586485658373974451170444741373001294504670543525832784905337605365941564241994618608026372213087036010243679699237459627246543190076557218780247054831094445924819374296764027367103667001536197834511964339540567403663885619518910839413593046938628613022984059131669390035757303130166617823472154008380837829792423977519202963472664641533104827653769717454195540133778471138016858940393626232582760228516356797871923145422098159378810099998404929028348090701761620556230983888159985042820604971681201504157316222225761041167470294815411465872652054561884916937130769670143505063539253283803075514964553450764346793670032873590932961103637693698925190987145907197555410851959255621216079071826194524752048173437397960694051463613840807779117868671841086100695060230970651156666759412042006849481490914552102989310228378079108430492771490780927560033413547109656991882644852916273576058807485639018757797851645025787904719105586167569410282580875655855138142226447069922301159074733591705031950041297548741531270124286491833053887486303199962125882112427937875530143127854064743724587672986051099904651802265676540632109288380673487437261441328057644180317491177271608025722292168102095196122352416138887180697540909957017896185810138548967976007719193768402070114802039497675370640291540203913020163337858888745412197897921713952570393943024495411971262763305420314928276941222221440358190922734590546170098113285780989954880211580624925248444749391517490754738044843581966981630603880568348225962926090362007114980547680131757075189452403784428837083449792379947104911955667645658035502386671006764284084697182457096455454595462191427829415518523368398447178336531225672311226952561097555729991612681408241668211507510080352101322787775840296925850653914131817404705748992719646747363324089165897319372500797345456463234188282337352466170090078051670245638514492418522039228945352283939696509678181988757440950471000915403270092443548767929489131879698039755070068012695869304355306348615076062737106500925997677888742328434540860583780956645392591977198981756414059005687426918196160058970814046061912357598044277004534846513012972001745152489842243287569831968652322012069973461804267765732157181118109365517553237210820021247023422432106331755938944181915271852935720454152882746661456245084765108056570586758898166417165670563076414274659244624102065911208315624756493651823657625469926479331774663229844653732769251175094459207741139515329260868223192241836345158940780839275589437916084650762806920014106847009505473306402972624929645715058508993050385303604238288905082681799323516040462883420027772356158668634498314972222776794726983970831418271064282117467138167346417699348580219977671283607967086132911735265870897793171703254604563289172837197703656289787109838364318182707647030118421691119729227240468168927555942606098253232737028545267750719853840567818581282547723996719583008348758746315307389505628914812374531888974679059943306370395467667730204443365322083095732757688056429209325312428641295823002472695370675998850139384025264034218323987723411271923735098352456842317593514373959194558226222037505471223617578183336268044974708600195526368940128757478653364674220463713657816007531808437769500577624339944041962624852947056008753575216508116211893554739926123622311566080525838701786265868553110025520524195913662606435121122125923919861708370398135086145628752104808987245847046592797115350101903037697616236591430673039902320454585793706639266021286133960742035328624228937035311124561880798249914545099587755528961815564580568000918387756225286083703994945004921802220810761304378335383709010666332686124514893917401740368882056468710911494488820554912195183811981255602138729134444401495130143785985452713070513573093573099428184854550563247573744404557505770623430682329267776526209624272825168298067195167955582912349292839148188309841878721980108460815287057057824949409529668392219944474193639952076864312544886630532227757549195238510530231503708691982714726647275304454876269130714393945207397310063693040236826664503649593604586365285778333418357327265200371434535339561577711716695722461372742168936218963917583778119524653631713908691319128257757719657202367438952094483236447598349249084528439611551896636344206528593867980723663360104843850326182197869921075446895826417697785600126994336311213930004192405451718351670570503456023402074836733273614946867959479966602641328580052955150947069065602837504971009422054313970525230391844142579965634051052653243514312362734094122036193876820775656351272424619640594648751581536101036002918499290183711955183790090393086338061068079828847025887274894723871509773926474386101036621629697598588890103366694480679080516940000015403258895278207619850955761999715155338590836339674604224242523984196857001865182831853690750263527604905583357954748973913269363062597739007788930228604689584654991650216433708432052514067984871633955481869872619186555397012653737856933614189433190038320770911305251706587661779043120131695307204570445361351302960445786044615541603954104278559619432450081192755099384781496080133154599625410568097576525299058599333958728975034559429247732326636428729925306230076793508203496517660690692212923281047012072442160070577291011229853162072514808343574369476337907997160884685529740522745923557774395877844156545242064387338329821212445663396199373568305480642631034998560791182174809872156167840831747565695664493086051134174194251621769672728147353096381412935441483516357125005561563007059498271634989754303353310901807158461737165473315705335185609874168767879832303283163470301395802591897059620049905020288934058098563118253473411571508748531659351145502657011972916523712896058690024658790762336692115420890692735961221636043606394586031277605343726459234004194934520891579990129978920212526017990480443714454245412885973156355509114663083014409567224695704069291056777818849748422384273460764747124731587567578519321435243101692136011078307556992337157234484290158308207302586593603511403603742461728137598091649853761424710862555473093692264853305141794813154666204522459494307994863936968838210809196835724897904091421179976270810000509081226044718097710267104900852461831319753488137903717726392865154848278092950197034218554128624297648514198165541981624139937029866530132819322870639782568542739627035112549983191007774445916126246084155811600447483472325799259441077449993386629896164531749582897359626723012967609955923845044398573337572840783651429623063677591907684259246524445042789218199796139921047537908210824433066424026987956213662725745626779840383709103359501134117551713714825037758391509719451274112127780556071948314319165626542574581813567145403135984283942440607935066033138318420344412543463363353809371070652875831808657227787727704002330765338217790052975275017720405310900639219778343702216451584878367763267600909375585980658805786685115453463685182336790734015922327035880682316391777564810259310957671980913125009585009796076941883987911832631704093031581134570170269544059145759894979725263323771308654655549314225148149586722660311218594385867102794974797371923087039717077944956893757266678455343588636402418049483418882682404518540842867572664039035011483532384080168707054520097942813472051789696310127816134320422556794612936788211780817298585299046072513285136591666076423611468132028491522933391206493021443543019689448588911822517087901239533089793664100584127642777216213724901346835139527120257884630284428976016618464547978095164649607373517869962520453556497538200743038097126248478082341148600275707612119242206513663260090937039329801256017930666993327222887521209430292485245134284771624146425081686452626704322984977634483871139675365463702171004567611410913722230885895499701133349892886859803743107293770998938630662650255891493875891336351600219582718318541009909232190660498579795665441906006996835759726414206667896221438138838001244339584673439099889015110265572531489953066033085310457597534664002898606549722048732843803035263148988082353687471590661595726130911165667994022388215446838379690559818691494271397316854810204412681789326611991431686916509487915491646059077374921200601761084293788799579943325614361424720892519451396908098539960290345743880620045467500761696229902656867021529418370669096242599247224579498892437341063441543400853936971047328576526273179406938658718439306174255393625794620616793693648199844817761726846892058588290062066280454340894672159903840433971504293631031055790630644982331090409334936995663959469893945633683719734748288002926693921729933437688428111156745992804252520491327169790071549105021758054795984370391804168191289412706779202123060431906159571075471259573297617577160655199685966344890142101687391354656651118382601648399041219987642222300744113357771271682621109568941617980469892650269389831412300921972602093085186454242751435984336215907523592611124549282099253744412297600778913654232146943739985983510467587331036634240596252677901928140625505713274622248418223475665145682257853897659830421387237250890041499418612877387782592279819175786956951110417142914305911177067611973965059088708283523408516100616047531756869211375964839834476839958494862758134909663844325717291341871237670174993435502209412417029600027394931854215628986556812696296144601026194164200111138304189652606500809201390498342754125801710876560848378160125143232127687409199680698223808383972013208544738816654339563458890667562182547266172562861062564229663737356948607985848631615201051614096902626966597758321106127138211974097819909771875182981689074623830131060009627749810965445735288856536369042189904688399064645797229824314747785436436038986257927181584980780512945736570444373476253957135757218912600342335210498483279033090377897153754716535530297625638088273469974648712203281690981764906789971280955402625019104205437096184740590295486564730798507706382130951792337848426015751086768454518353920663457092754349821339531347090303671009788825079690406218462324158139557575022586992480374495796022810275600224238446536861481464292048765033655323275682693055808336842737776306717394553234116048061316865875826869881781651696320688954243674733542199007943224840908809773998767549680737609557407160241209536598490461340178843473937191545939085985964988598004832415933471538755756592636441820284956222418483340457957431042188702669502768323331695047680077999849087681192043163791738235822754694831852303707872420306746902208165842897859438107681695528505175604750117046987882123455635458183236146477915014426116426465119801609031744567242535603251854978977642135017601720300304081573772315465147920039839118260324578196910367617673791865699701098453845217621586037148419024957262699213305022340270393655447219642202053009116289941183310501660343258579541411053289086351587953862185710297708779919631108393226455237711297955136807837497487043422905327828475114503231338231593713147702804148919320876668939358066255015132782856354784179301022001263963228026995352698780750741115258981312636540025772843427035488025125013002157079500024835541971873173604622462507234631446183431744882018502169677120647197235682618875686873737616387333686021180095961642711378096030562640159180843713984272814771237582483296612634703546946749096080892293392771612696813376761484301961537670038913024047348497374865616406356546608170256227434380579227317299035850531091232530705321432115868289107447937866551043224408712766743491352621360022126652209699474083300318989152961522222683254927708615994546575413948372894318100395623725197612886322890892636678587197640522337913998692761523152363260446606928212481471078348192168554704233485330390213290385784010937129330323949714632147933891093058926287594899920713453771316872382336702280763141500806090305588912263854027786868082166812418968153691636832960374968750934427900188792514489284334143756506874294580934924466703792811782409722035445338346606190131820642644944268833410198156579664611802485020411460351011454461018929929718014424538129026613393030583024491833450212563673217208759072093873339711768779477110544923946945013736763073822727410887378164571993257720122706642691347477738604289200808997326232340731596705848469511172032926275793990943652667273789839573335445271644752231278404187538022944014772297904405338835736145933809685611960635094264946249001380472101398729290138954273240070876945599404427087802353599425405792699477891335653033042563704960759911068067651610247127217774567352103665602230980605062931252616536526875528200554965946884454364015947844122102311209402226417170580790366320502877390327416400384067010881104496633995569854423926846103236638067493414531216870100945951777165078510050138427984444853812742087033190581558158800385751519616289517653163042854238437302016575768587750265558711021921982728257244331641647006764484639629312726195278012479667884328591683200322101595225439869316373700158432595516243157513315672347775349798403159298041349811511138384968227772346309059162834615208777662822175198561042876712781743725064199101149248240958236430938037144133271811401732078900711611890625894722206714094917601039465084967544327829608635548314838218978050972961399447381712430437418798976002741851291585645977229257272479466989737803964418056585322981032469571943780627058135141159612965604398497017666073495477260499525354194339140665764971021071460847017418482925174896740694032265386657740161348627276608123591002544217020191976947436003364927092993202097814982024823988897379047925644606548168579894917574875370613997237108669594783386925425680552978493794304052814605369024126874683781581391699050970653394933726408346383110304172430889969938393844478125337171687429480396694402679159116195124335709589466252296063259390788330518359640663569322356625285903288088862379408573751584575816613807568642469322946544383806020906616802581823480250839940136916604567348912447839425950191629384423466466420634453139779406129164809532669465969724993830101901209448979574506204635904678417768456723203186624726415486595860422147314574281365249240871576852162248511844543049030924359206011672814813644197050441507841736401103005369440804442900492676254151774229570997516604465607911461052939440236250379012820130462373713570531921022794123244070904418100394963653221519603932834262559113146444836190211437637044477479373996133491271357899018836063232437823626693865081377027026628722142259995315425861711715688358385576576255229183669903063661521168642131903391454186879279270674451097928139202907791211870771621781364376093472814050646454083662117650138860879072881810632041335332942623463141823638208660685959899426289261719473930385804917655299654015186833974235584099549157415208320010709907456450774542824261526566100288698262619370239605294980780184734085048224721187718898285886964076180231088277637421642095060151394733575035715838190568940899113275939674317168710169636216218066400273561302410925286642696668471161216860742996139045200288713647542366393602503183089590999524940826020641715740696214267072987641751956430325946454370349802987422847431920438692922797701056579994316456387377022964904557720707723637525404802681979273365487290335198042842820266197636847435752850950143380139904716367151024785246783295273401252862742494001622381732977357042659298843487798817774556423949787274601916758353674526200760182511798253698233046897888913828134556230207630992011058739797689691041754937258062145703677049592231723886642962537971195408021003707562759073582966937493365829359783277267957628216168410679872999800752749175082218110497307254957766256670527074611144405705515440259203348568515715301486617244964831318513652748232223462691725400635343567203452763956861007609132514700249826538807881766441411840291503560042546424161876611385196897175153979095453452883019962648366573664562536911382828836957124693517880551593772491222755583976676520426805824650794505668664418534942843495768535405329004322231188920283769434747144788145464021411064643088446183104552306793859218993556780065990576461541642399176468200558979931780329210178488082891864407109981048987485518948964349231373921791108408160826175044828116504610374267409894738523541791625030961680057500147902397497059088004256311907962015710623578736131562450432044707959102461021878557902508557859534778602155438753348364795908856393560550145489830673470973697126572231495224136449533644694327420111461277207057194082505281998934169920137347978454138455697501340199245626018597890389010063561510285898537762811000503460294910858297577027791084836549006638140039287279101302524102531135700634620352289469647464018414658949105189516858308265754465851434772403925204104324124003661234063949444536918230025115111488002451571667183901553458425783166566794318942593812571843231562295478635886860639562407837018067975751215351281616731202788196189396014262905597015900164817091216977682214666425821140719956999510341471148610799552943997105557837867320848640578111050213751052781034064466600757116769741089579646037375648240004045663096193879415070422182631010479632495840325953029759861921170981118617057230404697971840344298928228209406021122655761219444938187862689108318411572918757055291880593379889934928295551066279386673905338482721328108796772770289803884149405582848359585395025536693948702829797061087304998769927895476913462088073205421990446450639682607585670686139544972018936558476706323995391460775518140354756344132080643891757309331580532314108654294657567942267214469559218454079814143627721376940906723881902043870540595562034581278508520237773923211449656315158947361824926243057929327575662749238577645065716557154536846833558234143039161727378164955802208703529443436000026809452733151101035423040010223221628087963589648224477657301575416041685323773671042245860149160913746102781139517674403590226283465949423194477553887566771896973532663925224366771290767309575485422767477331062405245988238012930871391082565626945240742915207078408120970815275170064702923537268154360185218295533389273835232519435149039618947902601628889179610903824186010447577425047626800070119909408478847915559892542049511939482574944401671056886541297852291891493118861037443950151817034325798696648087248293566156651636698198754968875625049919981966378434147571902393066567596897758234224407123453680119044359445475528985853915524250556814818299527766209379146071507443381714475131910563231950131159265771046008726003217739786925352101455261547570484514351608376475211163997571369277414238664233121822274463396425252732159830062956210548847879894600777438118074808380464218528429484588605986064296429257410263531543874749183098989363810329340369172128296981736580419092492644189628511605080548695639039501670905538136882172576180402659374020155054208055284076322695714312065761210844598741072606563941182140010491498510412947200382138451907668815720878232664297795608503131224256110949562032547688278297241293723782716201780318651370025945515789453360817655718567834593568927428594622697057271928809083662014752641364585688867037750096036580871869559135195534219763017339475259139454083195500867241004163566579539718910636714404249787966479234942236171640416229901849785616093545205670094008859082600908292263230329748948648720491904752703538836983383671099732935550505598883467512325394851016045439029358996133607537251745739037052598695980290144477448983695274892582717477852355682928138014164420126330532080317674754658294458134698978391509610958497050480689462725193292432993971898043419022548619574328706930778655441412522184183507915455177115494205769413476882818868082936193913588178100963207651872226043580460130352818618358776900272935751448790059526349869158762665568257888910508094700425539151721584210085401504273049542524270861000371631079734901352634744989896230230732652082393830335596561332773830178780620369765911042752889151197279747892168167022394546714579729600612878356792302156017330525180991283997584111294030034832283646714778990661877780266381327316964627247439297773332385128444124458724955728744060778129646359930861085703736725795237859616525210746629169734289996074556955850548162210592662132261419929660223545084111184487724340867438647568955592730005514961939064009217300836848409052381621621137932721086749272521050294936251931556468132937658511592444084404001276551792428773919206164942607891409841521771553142282186102957430752316061509705256441704686849529876800896376589335708501792917211238235395717148162484536562187314167547685048340384955737520364683004710899104050841591795649467455226442947005428495818310188271362581442703218364747022153432751498234626703105622019576251726803027340443195048116533403561182149644311748565968097172387420826611091856216139311900225814840327765604278559208826278989970959831506348954572245447768981175037490371536160170907384739960012136886382897113159740929771813618520793017629099748461167949012816267567336911771180172113160334751896557428992772927214344408964269593856625691972907111275114868661400611511462866244837820490778329781197375424820501626299193180849575300399885625550538822250495100807577388549358203816775733102123148156560418726407391270692626240037490196829347705333254902313737717370527002462486408533767124892380672993844004580919433061188629194841346303370375672907195702708268415237442667881311959057830015259223134893791214840918298307898509020536047703383124353168249595459312039665716496641019371638462377737745713520671473604205435263901607959582743277274740925644012020262702944153604584855377419395375243463851109191813292802050131670331964913353901532907112354625976718203708879247145941741547036791758605839786903612424041114653352120069257493928119496287742280607894749100854256363945771315943016340140175121117628451827543129459342192964193004531887181740582369006867848046947482971846347351184650649757268462349869678576751451840352998143647233656058025342533097372089557902091289237152447389857330776008817159501068312899427255313761232950032626615612220737553390986449901844480665811662399886352769580317199590550902767942348251453938456551822567766323827903308581174711217540838846182617614888704650872003463093005131557168034775460043231920443255291167385671381569344441252052251731277554492219705028167365295167374006041662120076950187083733217357317734750978964172190427307369027097688354231359113438923837598537798023997375285658225151029998950274693670818499092871108695876568242842971953956830363933639949005448901945609261583511566215799103309035982634340629665886630010422650982381989387393501641905666091147505485976016282318443869573737475734174529404565254842639166373023967901128366435561125398954924591927322123509602679267874851938955134968122507972759039862605142775621902812703910724996466042318658518296924728806537583364612825632537148598514167249623628303669922641331622107531928586695140960119216343199888874576776340196500166158600335619564462783801220940236941887901350540686077838150919563399275951730275479363534983376845593989558519445755683704135561286345829377337725679268062219594207976496984041029458619028899364326924491678258514511608882073610703084401986759995988011290093907036552275284744939289550368835521851664854759125683486191375775778309774344342081263679245376757642942324997349723464875936280027566570039014446175262470499230233183766162089676805709284874816657465179731818536014831309762716861026222837318112535538817948962027917171651370742970299148189468461206717368890464176270125643814954239610488139561028447459154629556354739212857197459574907385954702561959709696106974594647785152851434241319791705969856406063042176266558994113210408727350668117083188063430156118579338448496908047903001149925591451816328550062485557832494343402950155907882857823809393873696206512797156859338128587359914995858175652975554090792709270107458852669395636159429679105844071027097590064995915054020409798695678019378043686371984626558929658113308771729186503297193474563891757274136655148725268453815620325897122061738367048334103609594591593948655588823951618293810771664544043326458093053777631449367327283773408066255667150049808076969151012044618534178083436627708918032459561299122624994898912010894941906405152447863767406946626301572466313644400989882359886547709014730694225584961373649808554915399539179779062135388507575111431941840230307962790542533971100878704063598515336950874566675479790616030302038459109480883343430197476211435975301061879825038230591034669183711392664996239064584832412682067845189774416378568809771076129325152666343716031326094443586418103043121156083458857209544098226908627873091241154505931130722346327715687262717049090143661474365020780941281198540747330041606889437471481459849342995603701433185346248811307527196370993960675396944812998406285757794149199192594586315224313089184419058059157532672096309249450695462960867873314929949463557623493735767809956989231358886476798704591065255460838599746148057620817143754174417297730274792595327257530021529886410306215850313977551234902721564303366811935014803831726045025757183459289741383667536835715801781503630805358649976528177371539840552070977694510165958261767600306864920178729600535292143107012987818015251496983286379027736919428648513967783273696857962361259451086810973247829448669828213423130650272526240935884501599537226132973238298005408677798389942870553713250391198206062039335370941663124196825810818261960598049509725110004081554565554149389643631102520372368848749247243082644019883491817323738347802379389154181614392528327822654090418670603065378362189614041930554699710248311958695273699698327082610332590980047219883538126311510438551434864141922874736191777071897251108336335169364150680996316020062281107162541636702829074647264473935200985409902587417987589575558168350530533118315910448074168421831213301449613520546694529173779885912271128068592470417852381762498124045662013270434449965709430483042192411016955629432766390858342548418123575839367790351223612079651835303904844773772728355503166925142961011715753903651296879212109637902067230742275335265441225040265982228267844471162868168346637531196164993496915044991645869640129211120718893714345352723856595353624110722180182962576163199272135805877313775349430447629703758749939664171747256140285606205423209954689562816525432195750855391330323846087634352990686416563952124894374459787003125741746912227969537661823247887878705684024904582652689733448878314313381338246689470836486280469317289676355656816372446459717738143776554035464053717453094117738875975587276539419912913503469478857216255186139762373897647675644165758749712451449545914980285601994775027326217844948151810661820253446778336577874714189995114195219378385445874680498432768303164475197202886349491405074522503220292402488930778977293225444222002234658359109515347490047009316724194499432185276243540591201358934190489773753138235065297516278525774563006667573328010701245184130903324683476627909126199409889626479245391660356746676147173467335326256376071398985112633111054318401440002071257410976985569163001738797755701009269616908131435136250057336129369042898116852067813192681679097952608982757681991382638547930640558096407842124250581369695298997463096423854856968822607425307515125357212991276094238750656692301875652178953432100806764614437693435394660538598917056698914985590760378460630757614655538585289057413928585034825749025071672481211697050113654700712937486882716127399833059508064103676288410327282676207759698329137134687295203138625902738369867886828425523261444921234003483774277157187657657338538690002882484999248155400828067427639684047921241073002717734256356187951410244320274284250739863081200386363286119172052885973430005719856280174717610020204058379480695784296672117021999168044406229884331094706489727949249419521715254833453581917203314996663357083674892932203147321180401465916058066467338882936190347791313399611932020673523605190817066230122445471352598167963952823039025686914021254442798871897465759667324078693791554668785842958184684148550870215458602097794526244589903230132044286784141273217991764478845509657788724634520071354449056371016186118352008044481015627330279849946259183908313797833993645525909367019946502295517832754796496055457001201453986920394090911746900519484261796767099831892003249789352308941130309583051668661523216991885708994211374925570414759296593338717286257592951243109959020642097258122838758211556058454563959952870715890448280559467807783259317720309091267338731631501952191450128907121643469310610512977508661632025832917314321496591436650732121582403132564194286247520280810624330244090898816883864372550262911158702029404960965488664683057652008086978839153641548121018843128181495033327012076570584261508103499823635270314014443566355277231227495071838118030518643820831267374724131016990896598454629534238829042954562728099060968490676877094353196681720555884439337471608326023356324271393112804122922799009811784445932851984588183730780749053093908096608729400213959099159567887324599672385964932150902285602795049789922786159776956569364334923165429495183380658158078190112041033442051470484301512461287176439674704387697798267088842902130889276176865719746728407401496377066224395257264154691660283368279225124684414614429681974622208333383523621985808942795999021194515984684468754602487478917452738419646611079791574501259993217256890248614981383297334840328719667466704104529695289726573956041179803802725343040657959025050682851888602005957397580500623021971088050553863663225324879742537085169280281066541885357183221074827473077788703277567047063287065995152049333144855098675143880337416111803730718619014456130063755898767080092746762765797291662697322878248626749338727629411543756332774820288100982791630273901173948334676438728779679410549774398170328521651074263800842934349646205820648575300137901363706065852784249542322244200186575949996742687530660094271569377103301353909330188895899466736842959758515055930346209703879712308806491183648534617238529859193306188864966466224319283839903984994056667836718502797400204772451839511866697895229359821113085616573971493116347160971547143321566872190364014452068702188807657300791727537286657522597797118186804107739698203038975847469426100279907542848332723661397892311910867639640248967056831134012676882287869375226287585372273216870372322136757368226863044570711063532105962724933902619835669098993928489434261230433778769034806364678788273935921509552856577692204675398328731076335975417444802420505634929532879865444286556567305872001865812798715764379766574712287960030592955062752162289841270422781239575848953336609838910992242285297625332894675598567129187040682606394473599536733370086342610411183097413393438193871508961660048421968150272805850377323967992639745167208452632370749938107378821897736180779778265217543193151165541628632062864598487738095244649067358050106105142038886419832652869951671866505717416324398532390447783128880024697901264621698634479764737545621479843215487996006408179246914092099592571755200612153208165046516588782409866137448516355182833401280947873325061790811379456673740632361946943805494481060370566750816421810536616105494595086988975994573772469213967818102507012470160904881859137548938187777050109678437217207758944784174781160807797893934234304662967121913362372921869598541413437968477372740471284211838650985423685195217075785269587659425779664602020230088406597382646954531297464807987884181205882565243943113791964319375080244436642145736778127510590378410210027973460141179559743824599509685295450802984211120925220299785929183192295789455112266136184974653671582859560326258739047277686458902007314887734526862371419153089456085788215862857770090404896031298584520875904606289418632640141142021329505242121938512979697842597658887882010819216555026768610663423870277257861878369884564643604659313613528737893649008322604060703078523788793130983129907747439285734592887184518191510758080259618235299447075360678366228050235071897546075975772514960712723808122486205567670834007141895116093375419433417948590754095582716343087419950834330613259655523768721217039366184562992025786641241867959604692379273724295612859425135600524567134599066062574803347222708948387861147111594323120074793554109312008895408537815377005956454002972752336857700298961705670352068465828474109755449807130474925217472986666385412059425106459494672868400331170896645982214190056528892832394216662158546803991879984098934322770383857368016933812720671329318174757406051531751962223970582697535702835418107934999595755509425899779792382238999549367896331009050916562783910869017068715620476471133278905183350854542437362631601254810650273348892270852178864245807497188150700169286006079772422577602447244822430018798802713849597060766823774380195352893729100072412251115278195980104447277435293255848026065227223112293005879346063614383732628560413848967556843681274624216637545461722663332866772518137999370799039465485922069806561241138179099150691230520408282625323582417355899309312592688819964285074288145449903245840801388290291292229346382906779001375219749679496672261663697361592492639265454794115325009759296191762963994638853373566551783023406472075824275453511839267042914755853866310712902039705091457501567724906696497949965629276926125641681203042519191137623390547448623401505988496018663364636165369074058720169866795415352918839888328016605562110805525363951615612653574512274541111549294330586707368689561360952212787480262305830053284838046747091127881190177455604405767653107854435801189678172009704650782433839582513379845374086954823550640574816578208676338847310301485601602149967577631710930185517564682945193541155057825266319831435338616205513181403937642179329605741584330953403171246356126002672752215728761654382944273784161850919326507903050762625880145791440791501401049887307513793664237487397065412671806783529385731312254153167034801504934086156192987124533838839227520117388112680669606929756354989608308786172432545951005916728398891231954944866795740703874742620573347237177571286792180225090731866289604640468536677772585784516546277990611419482747501520679686703916542116566328414849031094141847057530939200350590602836465112130695326548559044671786027534637047579194279883998077281375818995370027823437822727478515164711428150703095020777812042321214883286441211367173137798058113677373081121881467555669901789683100248546077928142517857967825826190887717994944299575363391927915280865010656643587844972762097032096760855133630997224254817568993615114635329019000103590163514316584490666945833999803883809591832461279236904800587253268047235495842258039125448869940276034999275823010138433525689487269652634134162332465912784879291044602209627951033567891119369159935574244798870704637594109793780933281698587990338128258057509713805200439163656222841920939249251554046160804094187501196297059607319280197224823417802135604239029922944135306969274999183883088102476994444957830547528187030085747557396986078388197881919192575095955444368038293724839478891727208498125232317844709771121226276855768322617499069183061193198722815237993609666156131722888614605874191940488097648573344949872628736228064536463732200867685688033175589647316803948533522586116649393774940496593009240505343116717439064945670034101116012446859633183276502231604681317363593025552399316450713878529120279258699947878574156178499070857995362666629731776637432831326082565828697331068271589769334705409120884609858808677962897373336215525694087134874036279131483491611079622554082671317152019466012892304343301708896439652896313706851511038272297871918839284202495454034690987448373086092558172220451382085808097207745043562944593640574923890308543686477521245333359932660037362792112520717812375455930364618633663683130551872586720536703192389053657537867994939602702110814770342660050542301830918028407845898079921578840676656426276986337827685880759182966872973688174023024068577423551962824896456936288662196589433324569096648648216684196906473470810229224759498751293055656813329864131434991744637253990422484794612451895505339256940091949760956691948714544249229202467169464426711489010385492671785797057850637021894710785088665339600945092125072100619212167947947140022803563645998020464903362596876419067124038326549218976570009858567013170666290530052549985141972447828896157951301555801979020963868723571731038964604875789049340534453838251035994413010991087647193420198844146530070857459854546548330000446270618993153257418314754913263393198989712653721929881388930617888171550336355233347932629951893367333919700414914368920578084430821121999295422482639261870270342189131734387387772568797583859467219568570664730975765408813129628670983672624706803840914688033176148826449715226161000597564697864221475429353978544204127398014523176594623987379601435843986771285514548978044206201361355544500443338148802339019134637454235359594294018915898775841867334158810556211604721395210894381499117161577734565647466621961063712529886155993176512711678649191880950683492462036525243072382322406162455522465252154198950765546005128608445572317200964876965883304974753931747113792736405060102625714056527313548424083182447443385830430641161115182898968707944743300100874111649074364567242511754316129977105940506166911210824447478524512396765567112621587457589416392163772974054875705694080865624479836723464006555498862157562617192318190501851111429297552401523259673085044496204201994920917813442548945404437843370194688795237456039139516726074959366250778796646686269039802328984425442993765462711138049010579492062440124145325682376658989868670257981146099863597281680812377029321426430910811938341786447277613955085707659513419738044374408786304101941588539037957036656475178485667525436530513032239189540669795372458570863933379350147390323058530768134703750748179238361262234530725718883597395559845036790319200074994715634868050126457545286339138247443881821614465800041301655261772121154255382778755590448585810577321841855008554605692690031455086395923958227725100907557878259504658829980317751925128274492376320245344738312214017519168634507665923632401943925018166184919258560176400438522976400744323041741285370386435591040637695192182755880974566199123106692438068288942005214884530883071040524275599861786307309181697942800355960586911529607852777398978886876460536265093870250171875708885097675275907367551111913650759990385404645581040540003729349358949952936351414229224403921523796348073039912994302711885367000458929035757724959579994063495023883123027377966199291863201259874829770393306946224885562217406256941539718372106007277545767339845982123634263371449204286529538108533224928319487565934340088039714035010187911753710461449332049339555708935384453213580364857918014777639280524493087623308253922062726500218807516886486939822190005499844200665360260525302851820083486519004500070206329448927632274427549241303362010890895275896311425636261555536458626478562522590717084584681840962708595560779395464189028267823731729818193604359215583066902605870134414269844153550036699727795530696667507415092887548247001500553900375330679348452742455220398231435310602301020509606590488695676844021171041187085697117634485743809700395159996249654977349065003375118028170894576270901913788729261288806111449266998291245598235154268985091008006934842595937520792451780005067000746868205238959348113790337042940276025082344819543258609694145028294921216432596786215604186590401399628262658953064771801521567478639769620606383876499659296125314983544058809168648379004134900140813165855172222984392851294431817121780812329763584331088709701945363260336875764178807601735958874241852191161623543427107237068616277928372882487880900575046861632952207709617589493912601666614142709139963439035294019004584205536973395475757708889890002784371924595487117310230574297894219989393570203441250278690598289272934540317961246811976255873129938133651928765446009775857727943609692967463591184455162457391431019909754352048262140623001492806408854026845587190691965863761112630785873845537309142305209914052979465426982439959841755422647140629262241584806284291443699659650009830945339275915263650914868592903183363828701182064002907904460122641919984497092389823659375246870329230385773267359662232832224030769927185686753202300817389909399586520140415275391004989394759117814307673121646322675789088238856381294243530527530631032511732554924162811520523587455010821849839667627626134784280875194489943975005092158314390876396303960406850267940317360066989503212393932412799665565586686877796300559941495062139616957970998370068425432869304464331144525134045625519464086830916920040286841447846355080455440677022940914789950311951815581432544669546028848891568536451648408814914470673006068238977602709684033403682820908636985093918794131369854721539638304746685437557789152218985273733712220073699288222272600943687393214055013004349516135199270657356508983505809690884018981743051353541729698547721027245393746435703171875047585602174075699693040708225703070561791964235006519482806242632261356075035165974565575047676403641342060699426069969972771449828757358312634829667222379753237099816568521322277853469092189798501362579770909236633223715297017103226225276298999319282133338351846659695715018200702950392752776171427252897105577609717014935029401282125088278360819336618158814130373618814716776143588263192607650463299311772827915899289407841017506937009483372554922636132391335927131624594717685802574453293201525800663676391587129550119977350906926824339670832519371436098363460708342744933033195507470679226775338203558484497075053301236752496227402219792707680312069296388882771432339147373765018804250890745567414537623702961898853821629192018234121763828997583027005628447684114925931120110606696675226611103074056514642274165512911370650773742196362015843852358477007579981731706581320033439912849757512983632000675850175697328560173086011282730314183798903016768187970906771657174054420977272059883579439193811917895588437066456241615771154845085230833963766727187997263527144954801447512686183293505835988051732303120635232043846457812653224855902197613691512016129077754564931576426882743973250408813630726296256569431947790984117188762469230153727028296380833314170689515628271140970740433069201867571088707166248561641858754169590335692235437584774886775657770963148642151229451710154006518745447706946246229962592005957203706342750455155566916224103983599495082641843266144633667407864010179741982621057079745124946806288118028649997778568822288675826868326357391185308173903005266581070800725238513419165991905772944037377325086758123097275602712150099913653126511944550785982064371121840363036445964305065378194632916115890102284931676548771791256808153866771466457195871368951737831548425994898595062205200582704561805276633730806156142399233021532132588097742872613908609325133996864220783848962764770601318443795019174670551058164036547721148753902289218319379184460637306784103108897132134979711598695511631960385188459170230382246079757148825384177397403580674840643840166877414565980724123394321476966706603412186484235261706892789069435280254655779864793222269909429316814562708984309994416540204987315787498027537131792277656353983190025571180630236152338256372425829659640272968499412891404041044677895663016895953752386868464165139625300786573740411523251783248535423183969733167998926593987565358256001247715065269170422331969384661003749287687957150663801330342408197987167785830469685405335511517555727646115978343459755652816657136428647744961309019797448308626903212279203211702191754513620301365757475565335288166846798457171792486561204070003276464904273104367858146980001979426977235922193467988118063016042371151066844898766740854243725585122859848044458921426165619013031331493909738342858211810073318605734587723499551385114669118116321118151476627595101976100531073017609341312215965414205353061525852114791967959560438329763449454748435247145287441106230663886564748631642036105846965017308894850949061699594161659464965639942343713713309150504624589100396500951335238259959513062400372801185200177739370385126343560376381099244562755392089120988075902230852712635372442056559523814718788155997864237934027952136197379848395254692800136357542356920874402320754284879380577871486598705273169830063077648623041940046062210720350318742481247167916461600938592012839459185868452830116271236695339888133738053806712035705783359021412933770710074187679287418260361794643672461064584193939629120221322957421534999607753114953702988482372323602680129091968328231086780099765025403284591581164203903588232338050423356158624427923281268069444791593537854566075379691909445433233134747022022029270872930869501985687887562559934807289080738146469907163352365603913402590710484667369615570010073837449901410205658804192003673994027175587092464176833396065341639207308775192664561685975789314115344162921881338623804336315087096108914930514751538629709600621462189449517399671792596741606942339166382195548764810021183053620827710271883889116789206242091430519071131140913187456064762685605697981180127530706646136586792184857099642820344344510085985980298390866126971512598941196352147152943847419446266822702096459438811778895945292431508494834413256235282362059330877245146091727711012508295859483500626166345075419614971602792026104838852915919671864492132718658413424850637066542048482591274552917541336050185032234174033335648929021697284117226675535773955102647864514782047407649593058202600606182706630780751572597064958875562925886031926608273370066841486489742184210940580468650061184567638272933909227864133453365470660296638618945346328204683660288617635045076012380778922369244701873866495298249165032859940842188816041502912419466896036420457024788885052731261928371730066750478577257854019470990092935621258598395139390348133924792181323222058187249489743045479838540470879513540332205934244885503882786348633726806115385917523802043171380653182142116038514244297515686327925354704856648595909595210696667506792214376235597149565803471170051759854687631226569149661047322020115033067533985090031463047281551906597462078618304090101998335429107852556103700976997360588154138014669330412101526914616683421194449079775279836167455997681711006345092943526317688718407071101434992201805363911908602894730141450008315955365295276333192073133784175762598647764876371771079657235686271282093506369741512977110050251034486603836448878672323104553708398415451013423550506210203632628833215451734070200783086196058232126831333407907728813854927003025721200777331691833317669718955961189419929849894614328322371307830039210889901282431137386337932026846073741096373351922600574151538247126871889146170913438481097304623868779160590312238961595642648187857462448764060887692490988947388196233494176115046803404024711308818694990673835770902604435741688785625974598544034580334506808490241130536141343750362968402966723257647052356391552390857803646587318848549094510934085445102669145584795110043521794330168623715147086081542776843581832264551830357679766720175606258365782764923591132756755147210102924791727490372911736981796720751518426851360115739057858419448681836288471228719213501235223171256358708198271758724781710480648548335385805184340185823022948910844659196557951522157271541849951721164755941129591219360410899191712599605743530358677320417950846459918136950555306647101140778149932022389696263252967809570706991679333704235191783690957273034321591566231567252654851077507182266097317457634404302481827837237542761851450283907868624202974888486668175714007635138386528942504742214559257823338369069193467043715640150267203998641761745342924522600456648546562499843956712891279635755658280796981321911354221355737186661322239682160712993791721525492630371125781892125916910355724570282242751608900224459538037599486456507322661457464827165874564038394988597902546917094003092572491085354127229600984254965444872281162250843964286198973252390214737135952766545474729604464337359975224754974398583529835225189180325530622662185154415662299026978760915124888863731672101341178980524805106166923457212589112466910290651721789008536414810691617655036585830919487897680201174962130782331196860037266387729169991682713347343312173799534326802151150251593226998829893567896325251316161689850396422418754018260850417077740042072132592009532034170280432863235311265657308225068303795132989190237304213746662501902652304356171517425498791473928881333554948596634098492454999369443849321922749393389651300446498775007031119548139535688375220655707627281608649495766144984567194766244843863208582264607340133585128134909963445520049329733226138336605689672231807126243265012995531139260949136414656306197725666756149205468542468671610803473104852615947877346422999336433898557847279750650316040204676451740472445077942636552649777910349504999854625102298844776218699980154249437141272819577914816462417717305626060383726285340616872242991260939238047245724794643780385880256109528422161330361034807733184209259736159180741120435356361819439832112333622340803554191062296584694870843662680497715190737843232245519122406697767216103226738631020024278045523491769732718526067083729529937002551037905602557412447787084906245034207784857939345371503817380872904570624272381958320107962886016405743450466243923301325500431374413117525108395364494893719127177102256261629718482803835819130766045975639992940878066579544941884450920739462387306686220845841621307296992218495451371808073293484972314334098004430553272266765465586277449079821953904805656012404637300929752533773012327766096071376779604850274360449757170060975114136699738415476110173093243837819334147547805067668176208257092089374617526337263647744953069141369008507116659203172232529564498383901473700534214246206858335407521307206215289579551000817297411761001699603958910612302464703579154565959848071252034046894465600943158657425220710345275061233583706559791434815182856276671421606367560873383628848069365126067625336558993583098462367885040043015747874752679514820788263560828331972151129037669934725014500940845418157932834042491915323272790250848320589749810821955601847242501343333273033407911932509133475673659553155242561671675593230898654658131743731730008803698024382379651619487443261911808496597662242935331533714746124176707772887327351502329096970693534964013372212895197601548211998374156264290092025069986102521349823464318692630083659847155441572806860339100812179067030663435978903684623294658513614971474753282043905331279812963764245575881813129739266231056436963678884911847055041744610307664982301337800568784943772495900998299524950867328752419662667077359358924679221692265762961409193269883961831733767324650741740353567326252230981534639936202605595285135312690535839380727201343967536962819909464196914155055000215096769382881186570479575999086737883630878280109370173017862235867518254236292609656586981588204478179894637213843348513645959569705679245370819380645950851222635113953682027615662907612443205269256697146815282697081312215914832536097962989521461974462020255828132261892620840345265181703777055490314030014316823646687790179012353281156894155411375143275675991930306932783929666473675492769335980340081207713368039155487739865982608717765323389481047844631333907789375497496097036929014896907034879590100269833836674151159647134362660374735535747082889812706173096122369235665782545310080508717550919122873767270360634333684665070722303102165028943384270321003357340597558317356708640764920335185837356706996592174755244969531342814156841272813752719939076387676416518665370150853611857953350743538965254716722867133024032333344123793391976253629405907663574878487246342087511291346007964680307648519580326893768047233676999789355453451860147996896078430942243507144747758923008778763368398241573770664111447439105471241111338749434090727576368712799110297024723175274349969119584860334863636187394634063119106434251319355067339898740992659292926865006178979850658129583924897463374264347531786217170597482702247875202490965726191244653572765769832187859228180368177094129061449922227092500009608822865138314249985950291815715949538273925667669150041143498605568344970977605436185684777905882583662664565407512181930956588682337276920252474475134307014240476954449746274517323532772167883696693239550045850983837218234075937801389695745655478507690512568765252212774527322013128416777508300344335139982781055496752236135892092285607011036168977181667815442020963003861480491805510846132033783521260269878819799268442866254334854789734426803937106451647858423863915499579989394558194406077672731529732513526979126466644269522691835209196795623929406872049814580797477258787896001134662509377847939017853472934834738983681764574699709452297123930604191916309458396765235751563272085683832796811228178569710894967511217125600391338238661632937595694833332095963288871888197850749396671954016239142557952704895523369473311018851355515156696912020354192197435399723070913684722907421545231703814056566858780706977635727575657677091885870095464333677602555260220464931019950111321438133649232699427313248405245189016693884433560407266273053170520863572994047563396502999751696170907043101667440324470413085203338927664770565443976758675449440136133882251484559413814682234507317059217109592553530641378794909819413701845735187015339745736126285982356205183634258267541816665813269903257336833824833671859311701655089105077681709169652898302463925048207054564306388751619078419483995377212220588295818953512381063363746749298296094138732620572652363137691285571001489953942393676315274787769491977652986978395487153013072299764804117941462507908640091609433394691072792846466936960622046331295084297788949614850076257750314433186351739373584079772198085129582616200953728197794782102979954657252193768448408846675761532599210655704533269070294700650379386324892264028482962470802893160537313730217057132180200932917190808722015357192228556151564256653950319441538512040414433163307782739201828771286354255473658934987445157766015171771281367070221401855355374187238259619209563646161267334719038441891672361698113866140958267186797245891741713027622110164483757979919106741345166735082913040564347338450907399398979225658164092327573002001363384435111961360885979511309778732404100503152333985655621268900531298141897003866392767998348755178391366294354158002454523545544558522890854671167441307529689318983358083841318737727057365245193248775162176803181515686026424202682724961998064010544082248583640271435532741103864938744997000625262281448386168181293521199575313123310399100476760064208729530814141420889326680682372898759818111881588609623167956378578613114962221913762813295025743735458210231559126728071266176520385942662939208466064691821475108511601194221861115409552287836179947604510333283569309271180249676951055098510381512997873938952209413553390966321686071824900597275256579325917240109813366865129323067533368137478805178534882867578909702423919208696810564211780291024586959053206802598138163773022081608167853509686919916844561100543810674884547633806748785989042290861284163438027187761143139247413213382617795854369080347078338994235250020817554340836413628552348703008749215887319283257543673250403264207726186924329089417096966733520654368985792658561751819033519443668205224318719862293316895013587642536306319907698526477804338449686880154492161339146695445064912278860982752068923030665104666433372375593145956881161665827602876947907722395439748560634680673799870952361887358234483220300203533691232566226153995714169674529087059133083422384553682308847984758168169067141751658392988362562993672863627605703445759201321477442260710912285898513029368739347573759479853359415752223854869777502049099795244900085853988786045823854856698246346618706061963596305662845102705999006438459893147181849760639286786103276396262045530094044127823962118740388177032867236019211398158718628129524725376410403734203248328168442111243391943481269516774992908474132236206023107435338026085072894018739310238900016027216919943672054243243295918515302942060675603322320558230926530252970521568195023041939533463234184571771315413580963499258276324818772022183267770717247523606994402409291123962227358282130050225249111180986763452607110604052940439749447396035462443263976026454404128915923899674920145501204575888556284959535501726674701149757747256212622059272257772286361995437817131585771093780826969647090041815349750896454851481272731357162808310827188069572865465201692687367144955432199421167789959916381840268564460810476281769404745367469481767983997902765214888299834893557399844092513916734423770287157953847049611563674611295565977654283655833303939372395512430622198108553638077010354836496658921272661567671910231674181860352518259327959687652913974375426021757323675607787134846439203667576235107997503944315957970550144559480500368017292992704141703079061084118896026289557837655432447539589431339023379391743268579732297329284499887426607727897514543182942759950569659302128635578582475654143473998133745968178057346813725509370408701508134952977633585241000396622628815064574231774782463006488905236324826315083148353032857170085605282881530390483683904862566182909506972464163913389265723806838762312846491980039431136742151736017303606907214186100839752440833344175952595942540818431391217153221064649142191741594646076423769623149080899289190939337052715245930552903510046300311785374257816252575674535685791733158598159061804183271668620047188085450206621964073226430791607233767123538573966771214220930179032709209574812781618202613994073591895476474112539664936127117805728227039195076974540601946765014535773911207388503149182428444560423708790875261853482323034493110440878014022539233239472033689817392188583169979498138732441138976196751702041329021343196228502616573831239890023913828605088788239476229250606535728374413092951883816761737391816397498688203647864993319971932778104794409634277917211941371488846852606398085063526357605447614607554873187909937804646020089380330253398405908963783540434474980873586541964135162420214190755999078964332545019244423283809884443857673677412067778548637687389509475394145064034327212924562571819107323881756218066383144267589639372320206266589738910889414829104790660685659618565892872416152167740619272195571744256529849215853941479491182561139752809028871659070254111351017223956478014844974834054552491476496903994502818162321019019551560260539984466776587129869741466476260713957979953736349262356137176382134890047863947593335470342064599437618468061445714485085829354850179873268325927756552468029514302178001199304559494631434662383786376204437995670157753831684692878910794736308829976479164443009190868228898337243775079668032473039622942078963654944235763369506105108622503553554838547576007174385237932527542075926228197975554651523637139373850494387829604868437166631232490342898253267833864895105671979131810466436635709756083678988684924051128953526463343786410959381253321214790190187374636437233234579616985625473401240288249620579932155513344299342374382806932990986654282777523312437981465159949337020433301328572665264302691515306656970918672143912827657187947707353889065502532065894634699404475376021582996400576728542534560277763200607259366324070419899563259714946256768403032029623234027743445204325888201461712468037846771104827542125482228565460705295847837529564938534774879629835631010293937890341540737680113281514391127822032759207806040600235486485057334205165448649021604018822693615153342613481428336291537296872326215938640893870892050767570574607512350944937555740109034097486099205944106940552700285983555427324711116690967040398993021105922938351904883982074779803933189474898484976967115696409731667614384042140290817294398963961755789406787592224877409004761435915645358295993643657799807400221902639609162327560088290017392537684685881397934463406446175706427141104868264251164977754915991895135959812890113648686451416154401554625254784760156912582947043148610969826366423895351011838663318105695536733006179331503871004082211205310612823499591791709656492674636744945519387356536351052933898297188122169031694700978446119909371985380091281914723612742803269406493791393522097184536874289929957368748873297186474733029128543499898763678393776667807121100780603615993859946223420174026540867514542206005776197555852626288937115730776540829597936967250468307882413474834782242268767748724865925088169077640442719537144827871034808766078166730407442329944168106051530565695958152705826871659374520832198302635924570954925299401377454784538515414070944689583644213599721591880162759924865016897954881349291907312376539548488890963731904430595011529549227374438230443744912281708359106439998152876304921791744981600335117024783003322962144993349598676373360288587939115791987932132335259593074998507228740543234143186608653164920821397256031910682364185716136242422715706048816918012899888817931270940168953107801579520021190307118708867787092571512080266357022739637879128940857450648060056152018756052468385388763518786393654764896253864047679248243733570381816262100110288220492072784299683710955363289351787377710707868273368541589276763570288096483678888313895356762048609648729613234541535389230183070532521312436126733336971979873045689916167527324974206851239326377239919708447065984719402167013327033144692759235029475724895886375207005849363896718630796735319118944186586156912729911386925894737697446301626592263117777068840556152829368040594791899931677837818961246475434673516485566002988530949698645973173581433917113671518296595734119618632485980205043741335608928052647256854573481340409629908337769623825345665307190520128427537550458699293122493860316997777640065266324856579066184500903837708335503183786844221904170694149225064401729742732441831141779570704493264940467126324168097473926459989142274489276906619767426841013995898719419356024208791627824296275007559196562578496768060609024815908032334364170825944759571512531100580822165951748549237745679062352695579273391406734111486563370631390814126770518882892827243463636856935499760291417822912668259418935270319798845867841622283215274834472227504665600002017982184905274681305741311888904379312215382532769661814771927066618102724613809889985722771533420542710951176085353537293289310034686931282042462970328012022046867568512116203166055354710645334041712539720402906783999732300169991483297891650965491179569347971990019908709956741237703528160581917740822168064690632933786881432735701921926607793548288507191025964578118451257114191450418146643819916537594432031844326520140463599955654877580272210027004133767905190713828296879990488622280195845579667123106320667334152459569911215230975712095937120820871275514540898393369578081216735159401906187403468064489989744131051856055790203240116687358012066626921439553290916035954736589306426228474490208214534818662209573981456556755122342547558912785833864982070842694837631466518155067608549569158834693492993832677389900446179440766099614299201120423672086679212072109000496754181288415361909801317364314491125648843304746138940692912612331913039223116861748067834761570464452620232744286290690492510530838709036777321425878843717012939942830876983464973569242834948689650738962677870979170273151095799075165601293528926056610979147728488981841616972868542818880293095082280906561683963019568885818561022583511043976890152488965291660904368203127903504613022183841354700565559064505768832490241260124587994078780722583823062363199995522259901926066292556925769613645007922730929520595266196758662948394681191337632529049144743402089757228200587396010134288990726248979437780091853694911484953055620692992521122703692825055264520880610245300344816641745924295548309011568755961115310330170093975102436468086842203485757689491809028390433653713664000745682780729208522498882830775005695606697904870554255928441981523550329420316027568091643788097279032356005075141599729848341742829459242890187667482552129675837450235396042813499919022957206486152785267783360995787591037302057635798538236882854244358562408795632913497713572612283108527340750564999309768171832194787527396279538546757258360711359859957940880846530885279316020017299309693417478379498645746655538337434363667368937393447730057782889437336908063076564503211691305248587040779084703203448855550342597198126588601380460499769818934672595925560455289135700968700662712897801857447104989304082378632364138425547147818962748713669388333842641015743909458703116272468265111680038049625268729488554644681511721777771999116689753605596785611036883820241078927467687432380494668000656771657184809443213459893382230660411915245744602121201258149015431260541746500139641151834021077624488495150727576789627754083123302646225914400045160546510602579717797707761200390349560166219082804722283036409533855198452794140396790342526328648820915799385948908736124193733999167732369947975718430064845244002493274044936207241197228466662826244487908825054338533038054321160093672351032649527689526372261217537232862876912833847543212211455353532379958389045804293182362860001859290846925885159700854437688308133461651863952412154694802345866969420703425424533653896376231023291671361841421454876111063054513612390229593424631549391388197500698510862000044530955754064721817461437696077520017637461656983898912448296600406034694676910871327830959420470631622951067629920034810579629289874181010994506361771341483273711421464677979239716265988077190719721860643145557025845445998946126250612625905969649672299419449039483699286598396616840241913091156857282175312123529675122504151609948095208839847945268690704051896683065894284373557579749411462672471620508755490887084181352013633006072765151472700823401753213571336500909280170203807007216299337940579761385144410559933331522704186184129602425439209877632122112248152131659624722036385341507539917316485219988309717691891335995483387233500218797899956336489091404947353079976225882915942292007967138091251782061027824969688617002777509475096471205933603288901161396556834129260085327831866535251968284136306894692699677031242631305658183748318591605975128608232054242049700922213373597811571601455174433779061450368471830460091779017750857964730103079460984780061496978727385351312038491598924851543332379789919858922229887484503814417445361303084158127201675600264776654811065214074988528023457864579671460289957485797268735214143767974981796966958340082994950607259342714831255706562812922786320316041349156746826974199449319320647090385750095355239303253990438774603418191918748612240301090545476426159565655826042458561229072827736843969493844368439602265477203255618283317217455651838776164606841798536196313325757685700246776132359912332037996862136441105593500407066191358070856939513776493567496860301527499641463142368754938403518192321747548473990477556498383789308191935779539172848412055099977695995880300321760727585723963036394589299183279381764022327975896235709552425585204726773323981555390424699441005726592420196213291291480816543580116250528364765461740643850438371587345437147015932081150215565033731807968833630626781346850621990602151930419113663637552808965875110532586204962366418910910808692624394219739916756741699670436996920375564445945042920765119790842150073046853053429828094530163951110311145325222776763619874708782643470871198712089195815821525029808285618513858465993558739019749898067177502679903283333789706361290969167496121317598118109820008797370726350807898585683621099106550966643228728262650237302552359331763070027619872147325232838718487592089310672555067924311543176973714298061592259731943673927583675321962866528422931939478864274896732310285883767754733344070124928783444588540191354990168843839751411590489303114041456354391957849936935222454648234731710146301440507724918449334100349464392921201945472912781201994476509596063220994310432341114848617428682664281292562320038120105329372336772800021787798688109975033421584413584269525664242310090655017798218271474295409360483942764239256559959847626657585170841339020343659381266883294411256721902461179319463967182881424516134321248590635806864913271779753585460823716984885076310283430118035643082859585808926747649730950646404550100258789163472910176171426360322528971132689417395768515975207382095283245432804008903640497024960036687152224410110626164863022175211370788895020544707023777533311629307523659866386669930547711194400401679827429748915210540569752403477787451927085228728285243935628227864885699505936880977752944129403310278961001715708202799139386912399633254104325474187550096116070537675598990607952711766046623838353728454752528891210010884767010389322585956002465500681029589099994514846164001525396273046187351101381985006376508775615078768451065590515310013699626465843434025602709284793161123324021250604462543334745772145781097583281102250907773520195988674501644769098905585106650985849086623110869846397099727101621798989620378039189530942208628847251942133600179301645403339648097530734347033758337006715922942208856224250893450108531007985224048377715368965450420303862030416786203600779369760406847798344152831728023930301106605581733245309199513551007635804827229903736709078674628215350501878428664781510315956192331624383051266539434698643187547382328293456014808448920830509970025946824393620970517072926195790728694687575193043225470679901733357504229772172821483485763874510669670405109740510444444172243146646849092889452767434414542735380716560194996668131099347323218710574177660979413948903256558274726046097441532486976412351364458808832432857138503978684874972204013693734269514172984850281823991409492682433282081237448733248809629344057273840213005083806973590298695505803026032039314442638944567503328334189747414386696194564304523471375416626939883026047542281869885872817220885056703826154148869890573180060898056339369368752611607029958365630202899457795687646819395620626569715156953955890172384592671104072413294449070360012071659784119784175929977926404481335975271967665204990162848569247157015633799332672337348801768486563746912866471954800925786750298656717593601978712429460920444578262299740653573935941315344867899132529580746146405916213230015595655353866189785268358254962058409294703875881778813647537713591261150395634405766819054875127254355059496379764627695721669722821879661529423861324466276272941957176456626419178350068218642552384180843478524006316835222652360714580588943129915726541585631308161123636431960259952372074657157091559829743195344521111773203946941646495946586492069658717322581658832929803906701186539345039340181753414011502962453617252634372148968245424668764925437681479583267546193447916167310713203157935409451306210843413116404078543997268603418514010025459692710739542222615269162669836799973067352891581801846347005207924890615529226684852187636041892655388784895275494090123841244275107445277199507419667521137784640579012315033391195295594204316361162642657159545267223005400219889556515939406518129558340857937356261701074528154024030059005762822519578104156622552371865087463055406070281306198215992396773530937756564429069020051189461125947767490095787882321953819243774577967322113890424293485407471142144410262471332917395777497569791139615978102288571333312265328690827058706697432239688146594539521239017942643791835786909677356947353626133149435748659261121568077152789424057176768033944138368738750317725966336421371488422173434622378740935713514829752211281011792007164277073190320846624453589501586882358389427399969935785394884632160399006974194612703193499867633275861744042748910447104605857801335030098296234018983678156809327665193718263639772924542715235590914492671239129493440374527653233722600313796429281124484198439913514333928682455674580859220695773441884125956636011951516506053744003207679853550680655524416478074036073549587757978444635577135860816708679185097576163248429430243028029879313090852428857377070843533241561043505753538282733123690918221031922796913642810673883871953325319786042790332697623715395555893332435739646133101146231096473693365178869634975660218443958259294535954169227823690197225589327963150336539910238021618163720438123313123338037848891364995870066314214134477166035092451856667848185123261268852158076073598997257833746103762674375382918255465882214654832809365045344379701351396654867943362061868375442249716473759356544944874667742156157817254442838080395801043957643936490205619179095584541856124317358593290442218616377125077392118217616883637088491292781833832879144173669448162465716222943769408966469615843999742062910633119060927731264864172432096551982351873790580188508148011560895009935761695654162785559163768407171842197966020927610359777514144711720479211225031424678715311877174678918649578795899695880934932210776610827997241537263538384298487195427957554146493735655853128963811271291996573530032962123145552760357053894203512521424574897381653111870119779805407695143126956230366776500632844097991199789799752316013674347794987206032263110680295256704908579660638023859662554784074364798718329991869411269203940662942959330205724549665661844258942550855916175597326650432286324532878312640354443020674635775169531254799986836376557424197563204559489415962600393840271714908546089422163563238461059116065139330774848431762328390688717442414369672663226149089525898954870286393852229500104392076635840518832053188336813311135493930829633414335427090219028623688331156176378003335742864555224827240550464678861393920452337285126450741717011610021394703778662222101889020802031392910406133517476517914752854307926287786542437709295386120273976384434526869774102274756059012929659029893983137224235119814782006706026507862209930780813638635133059898859119948220880474255573924604354206413143220343943751697002444802118027059136917125116449468114343449307452066643842560681019668190208497639020455171539632637311558074628841153936065155128236352026062336274228338709432177098913443043748586038974516609541929772105891813019330910941844535474567164750683208045599274629387950298354940813171292428080416254588919808514636460491226849951978107400170404753248710801938424654596113800194809043777354870553472825106654869770698113233152528446528489064790815737376667340635630865053528888010483573986841679940786699946192954070076273347236617579089654422693195253464564145668692496410770471277923621372350529334652101517031869206980528155696445162352505695609568416750003144271717601766535508863821843612751962273943955031600248504147794215075327132779888593988940201402713987406484839833303657071644410181106357066632607767119960002823066763591444037832876409621909101128828010308071167444638815506830711155958559900615674638674991834501835075063740268583788531083563401715062322287275863678494776954051094024361978604662838045632170429446460187009181771812226275031817797630282893295284196957152437365663051452788883463066219514580284655625292294787279803546995253197869209281267029981966636176991613510058986196109784300501138172350229579270457835940870172431452188988887106156218568139208062930416899100389319696151000190720550678320771941270414596823002487347895392022575365738197961086153159366372279769324270663741672470500735245188911772697959609013066714744358004054691395504274335896902646776374823003934867097414853517535659437504054474461977803644460764897997064699284162132042848286980820923652142819810093954738926176824415190880782870878059183738458307090030251603645920196880437263240372918477045991227186364748980601650327096121697116383346473867801617773554774240345917376989595652480392506353555481215809304012106061562386074317527036072073238698304140191932269398245751968786967768974742424233705140746136651276873154030123923498713035269755739818545894796200636923005186576395801820983773655106040944675054143121204791416347242397970095796402604121157278916583079650281555221031550115514033010035135508689024425846374249985091005418033255232262441240935354261637466683837422422811185503333760592999176182357014395947731867865766476096683711180267041713633226916307718984326248297632500831007380564598461093030984672670619374585757979264839166577130395831606615225529298063559020828390254786279652974516573759939425705064637097727745280756995074430053400869747778847510191166470846026968180427121550007881950203050357776722768228711495837014738109879129521390996542145372699934605458062739675091374917906322071789816565303521189526507981306281681699073624015110512309595047927360977251845733106776888482281385328731835291048137357778884409723689970667423484564515235701048438012739906354825600971902731987752905737039852298413081996720530262635550526338416508681168279721324096840900085554523538794951705745167579447869707621415869978942201763752256411368749146598674853869088067503000028926706179933315230415521805434107677556375201843058942777038703570887034539577645519532092714217494316825752364566818577911691858292531341928223641840675290858053470267113499068126120236982134723685680963147852947973366055760130301544406329001166752559274856763782032204160778169241912891651140643582276532064240407850526511633449361859698048560787496840165540373629082127065710338876556505196576495485703104346421798576006865295295143141896637427660296664336362381505361984107949344568938412808441838657945183422151151294958480059964393794603747159963514034220019125016877299447636705820629506301247721997776784478905705402688382610611254627205322170332276094760337289430449901706709988365122050313298171299031042550399166845979890330248386747534465112594631926192707019098346647501875821023609719841721398118721448053768610788238681127038976533595801993189303301345139715423105435827966502960916248167951681406643307084821219116070404277155147479039979693993841142919963104581408496714880509462048509557161670461180634326893816522469905673523049775049901866878569843163635682515740754341595530438355496055515836061649189765293585758939878306471302150439460159058199282060151416837604244807068358143001518346871270962863980175937927885801084654899417809765642082185080128950630783628994175251185063358999393847184000371343655830191989411765914577149281080501631918059809708045509182405737330359293239029265021509931420718964145370579783265914401606440887879130923385124158891998247648409944471698416455816705282595397713513695644402797000242208833577005019386026086354585642282426496476225125828964001156228082128178347096421548928964054985913182360722094743760957306161918712962047314473188468840189654619656564907301766625491389518141200034863163864843836781875891327923506585388729075097826987807575061398135237187317867465135454105401294247686611084524056306072136661241066927884196641818918048198410958772374910259720953060240821678146268785582081409947529414595309005348892065445089966232829783968622646293306229376603854592635762924082974042186264016302098590840269147765677653433121437001621712297408959978045365654131802188033589917166432478274344376022359129889536601453250196160158092433520137469808579315929817380698055138186024944012303206305293549961244968793438165277202001479972220427717268309274481877040746208755545686375943373971336060894116955861687179731216758529209931165505793227843797090092643518517632044231636748555372238919898902944769293624882887745348609203028017282345677995409149646428727856256440530210815918170219658207087707222011297888502975809833452873027541513359734841216391827497093675629106012327860189957529471894786925713331577701153361479107825083007167155851089962677009216544020840082006860615335786438455968213935656246804777723328854270772078964715235403413895843678658834317471951313779851610871967003168845478981040412314785318476537460381732173365550104487201593369060514198361798822858253185370389683116627919116176027335663409681853702418472592394694113973352624706128180045866205292191933763458122059340880079092236179365836794860438146177541762191368363387128817460692782750143575082739827777091863344171475317962964743504724961617156676589010856178795183354217789536724064460189021212818973772833730491275192725100552954414525842131789312377424959117291558756983740639956734560438849927153800865472038589748574035369318388661417131095753148695444024420925377982871259315197322687970304110550372906817202790322267751840743916352306470142326602310144683698641659618681728298336920153103757313082821446951955029354673121024177774250955690556947043894938140393771289657777665013791686908079385613535687863256095741121232993416986544232518800769050057271051553314161987251878456910390479578711326747624205595697825209318967160630098670037563226527837350356822234246465928908506862662397433765961475849287528525581242347052160455198428790834775155558252726829461991370451883694888417718640990904915041520458511243940564112086158946207235214937636773473178058257557637153439364898044853778639606758355143818853287136706388141969950965471541931273723602007969230690661598639522692338711578233379118059678861720814882003672262300541175120197600011439692799492859148314218492678873370039524464300344811342461658492757519942475379123709871386284428540323918381100557233769776265454510568215435627507421079948246664490466449831535699208400312206400551206905108410801940903600844224693416806550380560848243415003837349953142065369812780618916172145592536530238149131467635661515046296794653595249743043846504823688393825348836876072810173998198381032089243056881329289455851333883238100444071655723884131321854941114986397490536769047224915984060593845963105724821126931829812002191602157719585281376053021322934499782655883135339403683792002051828689359421100835805533916655217558243605401092936474650764773703266951937515241311489616965926675612325652977652342393503336821650049083336676825024832591219317714625050983662835596923528652446282224386186963184768706059240646088477510365782379840067728414123429349961882329412443429797781415261127381562016789744195637512440693422126978143407553807657471863910382462500562746897855098295989144096212605153091862214340239778059696279457360361654870629802291532001340532229256851504394883175984255296101096650733532976887569022176150403542818174637333651651138706461213230285070534306249973450134071996019824650423579808896813818575355441856903113420498710077002046501287099457442391159259026614291932634717812726701008318414839164857681807012358391248086414963204665194725175038973486393055504176405050695882819771932484655599205119569866924170343299994750605225986197122967825585579906254236665997625552162818139757633876087631023687891218486750373459233414904921753244140139353801516071436225357354086462274761028733019172271015132613380697110867783270096857388280727029157559791921038012277988897133277857223695782025551553259016044052172397358137502555913087984965337401910504933949070455818754897203167556293030852295378114833966096454675108815869991895125886950841242635193122847162274698931287464955381906702041709520043917779507287304340682592241309903857204148891530732179980469294688379226351036085811725278578516032146014763342846152173119752907120441408116531881432380218869161677389260479828310775246761637869892638003006373983454485529840246947269398368671099528244829947926223987479743947374537811222173525536880724960152865510309190694183840262333710031498719413635016478618706401798468387808285684900018664937794297419977791877259120187209174716800253329111844677318837668211863631590697949314053106344908325987507303433065837004173136755491786283656657997182072808364041062227484180841415884738157661843968501711696969687992542911320268524695023358500402127925867512622240376048428849797893590704541781038535621269557337185345342780848397104503260265990733576018231907410223759644751474875398370530980092385029146330727696675062311595866950957750467705480259664944907629918189737707336573834798124261486698420376304607313323156072896531671295451780415525609110353276300956719874972369550145506837663516849646635139597313673468168180384645782307918302938767605566772070837962899716157896719960186840493898955031609992143196108983266137394668344824326148139238096786771476227847543157328054784363049700847471261942529113099405768755542601866862893658753142693773614866607553641836528752707156932412741198316984873257802574241288683736704169513416018075640944851027744809611888804395960037522805883165336037093572665166194830263272736489498085633888598724334009201144915311471905731797139872085127851799385215719021487390453430898130514467762874869955785542270950738800865939721943951265482796572395466666727865720686144934762177931761693999166123103305270711667615703424051253821099355795538756137389159242310865428822997845485129734659086651600841521394142630087516015853301541477092102010156359389623815990231299191885415502694239010214732883788590765278212720787978990756844584150883318001240908142614694188338883173672981178264251667180771353072778573361428520100609656954509544636674765174567208003534358544402553254282466256711426040171752901743957872945411245499539330803997601899158673445199894825300451411509679901355747258025436357733545130444733594151105530907120614604383914384200608740893019522600244684769659455817545219538866768571475625726900143126208794750507858371440334797276376562050416232834723910864096897960158922869030930766774405854960761987094618288134413743233844901405369860604983532561300699505612957411318627027983364051304360394970681853682953609042224639995997829211377545483324352982620249594078639360183455422879061968646212561292107254329832461615626957024271540792228449168399987026827783565389027122003575392945179028170538747416289880690253853894587395713245111213036432578120244332257302068986647719464600959047515001527874543641950823139358679027774994547558339930850154803159396632684043615817220961359624223548779790071978237424158324024536519380850839413003733242678262080549642889008062456090486703660241463460596191498978299786113584083943818453040141592358993801574547426470650479795188681561804812155242855911195021685029236276649972409359119088925751809327729016791314265704178260051903229662629213921440307687725318479827702017128209708571554254220246626763249029430464651922281900364501501122134421796003621158460278629922951710304211301927490602765363014960518051900930733738173727280613852188185618414302050493314896195957182615889011683690632869390234860557084956886732608412721584145420267417064329800765439433596293252002353079259007855323016274173458423161640960059219732174631738624231056154391972687908745481717766739961616061651312822905607342630783646902872039450922729624438594549908568181396871819174139513606499457426435125316791922631938931984745070191254835798850278535353248457355367720439640644859451256143456350626513448181627438999906723097405662043895540445619727337068102402770842749131938615832862585212139632126091019839528584239813904368825713092349820545896709284344383291896174208747119563506494305091339246384818772567082626102546956691703203970649355316791184740521349378759120057889490560237520672667872699462396683449957851416044382039063146153323243851281481177976115474704760594807795605396460695417034801224999459823353847658005521981798436537477666628876612830063338815524749368922971061853980085987936677950679162028240866898206226116945793391857927756525279473354037279898544838775465003646414916764113478213551886436073461935556854157938772605506840246750706951621238457598763540869977113088233272243789844922175445011881547615072200615354032381305819290618911883172144637516032629218999438233501290927149384903428102717717655778170963555421517233024250770279085688727217189973126034222060324230534659904751442555076770869202421557228608958361300415160950103071404244923156457553721730117291614414565712222773843457773570444859018681083945114958830740076664171691938618886761221675334376019641334863189983270341934794695754437886424008837803283387137411825429954633979073512366825578747884969954171608795443518676965143765842400522640585964411724083272458871578933699875988407043390814187456552270606560134073966720211962344269750741582486975763010527994955145113178956032436085911117171785620242915818234570646788900119192213955879931846734614950372763943302419665670694839530670174486276805012980509049895935022092755229440936638858362679096666250132962648467523412691085628580425040344821743196666312479097002639269532400773475000443384787072474022640017407673853480028286104245316251655847093747264777052448060734192728824654966246919382164367808259916271645033613819761877507538675620290130259413169040393901286065040981081866507098711465200197646064544397203727931831046895585077828633870921648247874945378904541986012887482299992598397774805772962914752206943519044619767280504678542693496447395578667562490475226412439480954353050837874501777851505502614759799414916350886510744421322678224404932288469843735362664256862554246206979732375628514056663386437882217392525135049266231931107224397927292118433820592534170320128055597708410695654410667893919396021560918978148547673110155620800205030198109971610107681818326850458734426463509889659249022800983501780237239997676672111491515589948134477872401622910228831234374883901205779389616407595313262453973853659906750842193387469967870404922454115733838168329957915163382901692462090802770384961892871046531755365073351396023641600856355659189214550822940442883466921639781219691044882050530394148696342958752425114017358956763887168996363775455861508728122308226070516656488284203426652832530352520252969617457976215625941027381252901766354393452792290263359556234920210333399145684073028615418023370542764079829737614503833695814455477921760207225718345989175031764786052873417916177734571569878774473910984664994959877598171127451549269085960402191702179734857628572890380729616998381575664518241594306375615914622059056017609737191133554936466608916431919548400646944373396687556625378549460349909895543896798084198878668423852300472781249274279604036035270481629525962022451756796462271495359380421585568065706398215400819406780474764644903131463093090948519910266698582036717756456280652135097672728629911793414114996151130181186563320367326902065523482244160756936547767736332598452978106218738793919734773543278943133390608806652810792367394242002162068482266781432656131962450835561247648804832211766445921165724050522742986122269934609474720916819962256180305666537205166629053271038630306654202523721521211727545931981221853131268435746338525021639300787918821118406508547912855415699761385488298456828718043395928013360604398745236579081644163083939697848937758920946321632794056569274237268264013409821123886971384750842700401793561852633671958382352590994335622110032447940872433811335146487376973112621075523004247037789273801175233766041773313459525374974655743545395803156352502953014537777117414595781113640966488857140326869109815280001827390499372661293412994017591196300318803095288587768104229176836433362786183025326082251486805767926870947789687503006770649805099537872654753822147172871107815434902955736811277603433288882357280998032282082911170348081461449830504069830228246387288605333008567564883850625489120877050342019039410837356450479646143939549229310909556406146514500105631924035558753041694932451175524705258304565781701846120069818366991316083989737339219379654044855796123408029085824276830996636340130180750096805795441611619558104571422013455045918235807736028505304093786378948367826715953580533068711092951265107005981279515071680214404774792199439456652575184061719434014501334421157657963099173199279597328396827605200961622584776957915835318984347342349930146004597418752334209478270642860810217680512184236470073040864746710281655378983864461845456511035131274373216598914686909933892485096679016734013393250557169192485321168441314912398727345565313670064495137637651988536829039654129045007682896573551469849474686075316482079777686051590997815602592168165026805036645409815068034487881761257501433793349372641616960324477082077716885994729104503016642264138651956717096128517374678437158420867733941897550825784066254470939973122492440308948494297803092537377832833122153052786422815791433877498747796184775594427076488440865870823032014845557038045293030995626221662429403543618828647241632901868543098952249624040619278227848451250466765953892262102907106381978722746041136128806519259589040751365123731391706794979176624873913297505666211104371209752442650063583993120362500969816015350400448321090257885694389273157463910042061532864987061543464954172966417997544655129821970258208636589589177552149122544269944445456509790996848098934007660505467300955954682537977060158706750413976306902865088175394406381703931921718347578134215984537294600068850845609291010048404176351073560851416402474770702746669140230497380653205918154367788488110171377260173987287254892036548896866980602004546008360577805252398008138223521070727757666471505062179554146624890806176111556651379625932379806157115037076212604725891168884079443880031686371853755052342450742726202461758260141639980266326860535492956576749325101249837720218130234259330448771805263606734696191422186261405331280279006660054546464460849039914965032000441296793270578724124901600685717975900890789359977161683219270310598306017145428650395003956132877723139040425646882614656041848783764120813394370284316169416234925639297853729806838434917724023793943136461541109575697302864658172801320380566152524214922777189290580125998476179985272162623588868284446561618135229933118976335006106220460338267862216004582221590660744648636612233235117310155663826506388416084259548018004269246943170855405367005392792668930326984521777525459571100332562442725104892414960000554266625699187964288798353680906623933859421434269499561335855553026464850595974624748230828708138682673960879504126995412913266758667992638974461200703712675465833715749357329372092171498940757964455472688166411990520653211361680326342460621582223289286514079510310992766879664430964268438652766535401329776672545546975756201676953458803590529320877716843473325063499105395410341158367398227389783523029563876723329941427921577040150609949867873135876866921128153080766133783318202299531659139830934095344572820368747308004963202166056135413866435421044294039777734313721708959929322885561151103822747395010640369177874352580850494004495990438292753135164576236186979573061029628550106069764977632222311950820501693889326474596282466462511319883593166659418483659963210977719838890192400763382857800384739187372114408740013032292496272242338055470431154496967477399673172090525817180418754447309956848326671679321722360585305627929421813630223179316778702323021560496396543276149515910473448924618249694616684077781371843303783853489952360452177472558461492591186912618104635868166842191990447122325932725838323005933395400930655000939153946610006739267319709587124194219081749558559454710554477431219469292328896043339011055890543654792311407171784819778231339793139567149292156866977019229225971860987365681889476048324755263582474572624543655978930457429598320440189989356301740523028362289191087382671509179565055912084840024890476293022966683262353926997540649748979745944376509851765009949299214787263599598538400950105059943477950698076168222240802916920384014049957263568765910674376059047488801462209334913423634757035383556300791659899955616049252401939188455513965397464873582612282627783058372161970232259908025910281926223412924436453857131047150398413338066703130626213930526727604859770561887766772660031982067224787809189033774368984829591124932593321584154199439344743348581733933856670958463247180124490216033745648638257418484704353583452191092671387111066108489291062097721050010867947649080542129511334812550751737118629656474418858332708882769050909709313829583028858668591021131121829131185595430155524995685180140865716904480786754162577507604914852427698292036227438160448624004653990666774990708762034510780226289319142890322369956951311918606376636127443121458496452202574187109500301463765915482247719048628318246075154349416608520437713421581982155504833499507197170789964255864208087150699222852432476621528422826712049524413262839485396370240661226406564462642171746291842956991596747358799451821225702974614999245974656941133514838221648890066150367341427842982147711936567352267852022641490760323957695856718720906860653475922956635091469382180865794125335141474541308328716337973690185418956435780704194896290166526036569528176524410980410346252290388499087009039648833098215544304483302871240523701823858951428414874981617630440173487762631503308025359424211905921761253569635477848043399799972834752738000262283584963248089967936313797047054034235127823151028931531834326073601019950329213896536396446156539901316753731755106629672779426933945976643349388218511476295079869993442253883022694626180431537238840357308222077623807121031938820411892380262876204442021899669303742926093277696657228709877877110346727437752549661310501971725695309547070932718248741306842057907337026341897467563339419778642909429817082179376348368280037410456592478387727591670621568612892388618029459288856170217306252069606247006969954884394371476055199997440669680004052550990492158960430383977723898683423291383813998108281371677900657623320375897880355591405055876554270061658759244397795069138950762706207274443881860241974199077698701131192529425002465174432122804763547693807279377565002502676403225341287274698127919200761550123212622618859448410994541667423714480117287523217915115311571379315562298386821841112551113968018827221948002129148478222508820980505751686246357069290131238220855209680368825955900331666535261305825799176966926443185629182113056552588925790883497996396877843275998269845708283348742905851657267597847768007059696535839138415160575340450922138024447995333600279164258853676016151857383892812635655920455013989641173623675103122352604975905077468401998725131103465196646913668698922873611353401964046738247660036288444228360731880020734806563749452546034775050433182000455097159304273644547576318266746457990922791996435130255831197393067665141467410700805262294089803373683371210290190033828165458332008668706037311360948484685585112566985772018404937710584176321215420063565912377582365165306923614653695117256611712909618892606501487900002530054368708576625345200920084129209590906449443485964543802540847377148957485040192665493797752270390213131644494228060625969393680253723232170835408921934159111557364450272926620222077640879538521604584434195094739215810099378962705554815813935927376289329757057794812173600791107001051456898095155895614548858728252073352352868613871342068903668155529895137960677752441209768470598570935785176599729449784396622509436401852277085882941381978799041069249245589139144043033413845815803223107572598515367787643371414388936168610463352036760578158896710502482972505943710652150398193423932663574985445757557277056704002110374484604326784215916060545543666389220110453970248080475135931894041038215429459170528253104440791614427364967766084385211808777107275919314061655397884287655620886088052142693573961726799226294689313093754608630466453918798185960241521282470671966308869320353080578961083397113171831492047603790932512466365214067215485732341920458456501523760211750938772901531614129698443725532388074944848415794945258774385801622056561853441782499675543358257002988770045387530106567978734720504195348830701151567452174159431159743944746446272638610513975401542942807185596494092958942734046866534555165822205990663143425045912112901668481487957293107870558770119984430495967278748674239545202657066275971749332708771499213905123413773921102142558408030961927964657922110157868777466401713205839914620698608941244729119764493865612667695058772322186475996438225577591874749238899079686188044597723873040427915924070103244450561909089389581461989089961396381311272926804559865730393490944159069167661198466753806440091352948926304348888621379523147192169039762738968443878276368877203774466201990677882984611461452226659053210728989962128460650921207514632396009443518230771869536595893105323683445978582761608009341410975216096869544610867228239871524391235247481403634289253492294132684647045435027838441632461558900215352322567112540789062013182962484463878536360248529692671870390048258020782431804420741263770347196127376290693578256176301980224834865442966893746630124632837277259160591754638496359638998090306616357450439621182613822062499710398436563684156108111672512009761603201314021111401189072368439163962776666849756307263083849246066514714445160372646922452421208549262703596985112322954661302414333954616075808480404894293505223245005189408828462425963574469081817369252254100256058853086092043002099550300486901339488107244331130578281650214649577967834314432151364097913079006595183405103429619126954230143773544032770483887216094977073285508908279541170433309103144697941899259744050280064674645284646186126699980571828398297593318529757370052456390901155850441170818005511639963959262387993435995830888226400435096376248158972203797241699971559777223954317460409704671979053710150031880616491257157278091982096320338797488467887365815234359283288828832380931068279938568777618561231427193000821961711345197432275924766880861052875848994600896477184676265124357938202017913361355165616707181273650107049617145456442555758782813549581719354082021306584203983439108384193799927839807484720470401142489624699878308463469054269134775210467270027812015266840230523822300236915717287896465566445385288973891704912209485980190103722126502352016885016082015132243770558585470194407481700631673936994783647585418381947599345985920156841919432781199390574943268661481930444965242350889731216831352463066217082431129039260994737401134198711272262259193875589206755696124361208844124652356156992784202873872411948032357835706439328918996238873534673445164643274093329534707067976995681952541360181653689818268579094100898326752878818477764752065429849113697060956262208348085348609793222209646943236508453332553629584380818444798340478662088558812319081017134015199321139782805155034322680846085373278668638813431499647338955223085457892652580973549890356672576018998668331914281391510943021163215583954719483678708928055304093725408486191413863593081629242746908451980398441202541500447023205733890124946685758385710921630036691135541172679329774911703243402684260155508916579707192987787138585038381801338635033355211161511874122349409622984219923351603952641023451251060433696055754241806947524013045372667273145110338953027131772225470044398763452673378127601941939577084912030031115060305424272933256989393918221904940739867158800108610424789090153322536457861414449586891124406089375383287552143459922968896534249676790042672440179350223091038326746943233799969454544867859603573286480982306230481406957171566740675723738900403089713641589662971336761083115143962684848516837199004269908044194471668180442121521305404953665591611028050318404290296067050436655793456191123973201649393648511102246358045566099246482499929341556923361683508474738610503815156972546215536317174519826199237785734342121533711755308087973169327799938936607339958177573396322660695095165624963210457762923144574134827946442013889072513556403183677301850385498791046544322310143142700892123511442986274203617927211408886929023681252470830144545705992953007265282957705402849477578229894051488925275805384742559131354689424176356250863595849296948759703138982041769019640324811518481733420751800823559210611572368498203017393745926256031516495213103317389331550423812398886001263355906014426761890940504453211866564609104916671345246825148387627231970356663247396708104329544675086221296236635384855240541104748209680167823001877790624916156992602978207198967823002534045910056255645871891438222898244106287990257057673490121607273780317977780447571497685677184106065529594133278457434586620765251951577109529186914112333653697866394428880110265554902785129881950549913536205668308634717308283947371460536069827907285243560965862030209370361116831518410271541103205372389600819579594877766328303043381025302894379725172169732675351664078524524518071268820973016145730458396033986119633843181025203899506456248205316110276535922445940583857408950886944630054911925177666142330023679128761350172127052566758419274752354118901222704631676977117863325358331029263388400009282043247541963453090399407897294635474101081288675508586378550361541966785195947727620765589960778168227522144834793278499684800626079144187501440205227334867867246149534897440932498446812679217189783076510171387820744906305594959199878824570253156597952593822665089471946930274226181153922256664612080156735877288021803503710394887397635915758535636003297390448126415594665997949227828568625699868443152683547465752957821922297433266458107824999866486168118290242324698714464217570898432633857481796023440548214296653176520758261396707731221529830607117475328674215666462421933504359873569297656315082743330841581144099835061675357963419458724459163131949645153747805903527110903697733397833830689479977022258294561479447766780664809113326314199951714003218000485443629121937875956495323255392169239256445783137962868872986527563551142596081192719495218733915508046261480859528291816952847682307358247235660513030121180921808445331202860577001262952013114072176259300032612228160810054798776533705310228773931028202019487145447630067215611464689006152764065130600179986341077195933212800408678882206357540120941426633576360570261769125675231792779584122038309021144632926262128320279993359859099302677991012251801205015300213105000057981607429044036900623280604338200025887060519914475256276633707205543691975204252795403536815516767772091659822775830516366764776022747312600400899996804166585347364775150769316726859091336855154259272869353076117293170718855890370755641601433096630550996494035323355645805000079233049851069895335431163026924021789914120878226899304048165453975401876060925343836904404141726009373484722840039332092885127926677764486012367872422759999718232546820869302116959633663183766649305201161124396856712559436237564594878787935187271751867940795470352042112226160579746483134126916977322283139175262242729575555866022714931912154424636010688941507061649666197760962993390110632324068866105488792329910037210301091301624538490199449426537277541943241392456879812928491363178309020978347216878219690930349662180406698595501465002933687960906020901586397535799923145465181463958511947568098203501649421490735505912458486122634026268313614841038708200814601878452869469297850456421285667409563621569672788057539334791722210545986741260186923324657168232599561839294433462550224415208044030223564928773464289984424385189294335402259568385376577755783895755929352700277236638090514062799068585324925076684727426632834796842765626987134296135400034237526875942931243728847771902587633839093888165344963301001668340012521032456700101200040075168253718568320844652808473547296440106454339597436351555485929205195034360682157988982471269660363394046381769355655724179512015778132562174714037337169554306562844344365273652693549660642097783120242439816317335638902391228105462445511486200019938592469427428752927992082400307019821083701611344516907820142912016560782642131606140418282785285260579643844059367555288480704989568853965199302496223275584615813834247753803527075729063325785441182742596385112046276348542012084595410289154803472725684244890227665475011301094416014552713637758712546317153513726951054392449774237409421123586061698578154643972044080197966340919153764306157329530393187430626277540348602061803854786458393708704058326807144661822444475631168076694161927469147724150611426975463114385783058754309216718157696714269488882871286620441400822830864089744418405272735599954183881135106297594282254348197443270326367805028461258630929880668190895724829091557822565618184056186433104065019638156149987735888089758536360857272038309219506722477179599167186384045807921195973655782996960328231899052355694643403960435271211610109578674532313788799355640289585719003720077543469900678349177245514882416212869806556059201188369376538512644690669305259540969216062189629283100101513562581346684164708758133151454103547809253371319726342964185329552680006814294439696397286478218417704462575321113119503488527467569595492311058953059013521154887493232609743710315709293343672321596325652932657601886903453578041997520378181463725747218353323842204596835999102312277935296074917681349767430575515056513871939095351764520440003395217308770825934973040681521062978643706939127259116765455086492017850844874922828598192542820008706800402069360877204550301235894133886130811734965138963123660633857973541293689070980486937539820832943718714497909241700266982534879162315355917878842913315599285991083526910815179664781655866451822575959375294331715766559450282603009216886991860330231352831138546062146175849412829229411376695066996266218240157392327271922087462586242597866892905932876671351456122913412694768295348797926652919355011766019365550027316375647055173874471248348436045624593401695455120497820457972373798167787235926342888799590876967178576848572467392445111072429610954284797425227008746526775498745900842098856118690883489539385884922345613809252255561041427387624839889042873291026428203686524536179770969957485282774084245542539182888668020962544799748312025008726715259091026757972814889356930253763483655659436566573440218565529457387870950655043449033819498035903179510641457500404986380086622343820502564191813418314204163156984019927835502898946741599783625743705974603344877159350529658296668719651987883467031833021249421899363651530366022345099829414904947493403523196293062248094160102726318887910441897770283011367806088189026370934671738534187480110599537151016277665265063306326114741450981582258230825154165453017111843178287065316311694904788629490757447644731124026930632959049608466440157417569494284235863576887791180357993216395272028601123799819860680059629068694495868996675037996792845375294733819799140912407852908013538499363655194042189819884138036184753286492559567120455986776135390442203310658178761625156771356210089946695720025853339884102592532519220033230247018301816155125128046316937477032097190862995602627961343574428548078551045885371783055978229030657591748088073595780901238138061202188457183400601212938137854096955689292141793451909594919063666192911960167142602570201986378838412322296995715221681075594177737612060041043130118895901186086253006978894681258392436689018966550678390894593651305825297608610216249733310917349955815931798416883190311121585331586034653967617731118247739556635713767670934354665322837777083778111970712185085697901838572982655835335290615816022733364626367416245929955762709319377489669650699130984661408268798530797203722200976301511325393991997107489491583755589941623145761566288413340776475667959890052265901307265909677829886780275462325383292511066395934724926054582567909305052577418374158131337074160304281811332835696464631720541279581666189010256027965095924272052119745216520024930012857747179649956400442704580199161642029547340013751256044792694845054671411195798725918604486154549491652249776809552287882455925254009001959942608824756344141015788488706418428788040520612259588695546799517178272017360899170816157962021506424711781562783558913037287479672772182037830547939077699121754813572839096840725291539901195087784329838733467178269116371416660071118500110808751379404286025991236364870228016164428022195143370613398142352990976966867709970467488723203287837139249014919315069861068911478695814267390791363795955938693301450245890961337548617146487826956271196938088331152126692575674482748589683138398390141018474973725384028555438414476686046252301773114592457427051708408824672903156301495657116357898764237080150668876015186937813575288406103807228572653012491142235879904220803018784692537608715930759889760038450829910652030389964573839106237497129151581239552443440680679362698185804250666493883842670890486652411776138525087421043075056181426030304804805456760448521291627361683544668714555739135451081339509429702327094425008650181095384654182335122588287741790865244866777562205333576225953195726122180857798727487249937528754023482585171604753154850606711995194182886019454642656265972838572128058738458672839450252587378533364247401676502395455538712529417055793791370470050123280436356697911706672314018349820748027970636671620746018935103655695329094020546984154440787009089977378205414452523022217761974844963885052117247271747739584873632370066070967371811687509360410911182571647821213507769887511590254282797066085360704754164838356694835551124216376490593167147563643132276410162517168502161375030538676648165535443786784891465755938648887227771397667804357807525111825777962731715815358242515623869229725201732159110744073357434462530781896307743414927421433987681833307014062480538367401090089647841940510425960280150776863825645865442893712120186738900197834094932884371061283531033125874967876267024150164944783424382289969081478830677032144810065875345357435974147933019941916669279575133799671180054663292944319833298496349326759786430158460615686133288832310088170945366414403947386615956810738365881399195039833332575424852515238534157061789333979632612001556120965713451605423989717675912715208540153596527808097023991049429755887618191370928584027285159724589181577432151668142070528560012267604467793208046492777449421805322502638432705030137801014328954790169488799288993166137131514473993101504092843455208186258036616581878673697722458306106182870737545525910922442912575583934870680196300274142972252533536886961477778158353120760119969216991688833869740139254533888935946929078991917382392521282803983335011412788469156392046161325477450755615102395407288664220045328067696694462104405131625019095618293308042409907450849828418182663956620801737111510948970734778437724885828974855621809208650807634043077856393319827591472075675882107052105118592351418609050563812889935113507164922605165656115706973099112834061282724195266458822973895488655787743137581434973315052239268022590196950149375776247921635219265426101633874192521278998420557239181632450594767663082942742710044416322313714594451790477709423561269847701684603522191583229740829739266571505942622586252458376444796362961429455175244195925513022313469225176324296991866036294288339744520054593895094154584972871174173943139031274512975747718902932312521780483859201724124698144565656221518165971395366743313403502602594188168100392790186746707222842035043567459327723682107221353418713954438641607401140486719997054339662634998433464715972332088467784111233909480798680702052042453926857981088868682393925276908333458375882467381614997111690278431456374255187401643687188070448035288305895259764367241739593787765005425801973051917982594975078146353216438172772244180244673289338161460605023258938173628437490538470214290999710390238505002878613899890917800126270810969157146707048821156948488934860763193794344090437555171728533176616283390235827029280674473360236306829872739289460787786483527407206755540115556680299038324299743949269483422571460726492865720627179186759140089065991080361214263653131395554557384391002357278949639449331365304482932906088145951708128942304038536034655281436722716720095348572528097280598721020465492743889364782572996944795077551105185116372886386707239555903081425958424004145330662337899035024025919344218670823812763904878392949302679702479806250369235803911604611628590499904790204464797879717242494803113084165566364947143069689242001397848679239858582958801936980991336342164780394991522551303663441515172805970079303745641160016949333975440728933686172244488372430913683258689634416754989404153756990044762439744174946771692629615150319679898661289787342741124397476842394891527076986222778039463855032097936434900412415348529414085516658191424033196513846322136290029953655156874563371574887941322080615804903969919744508931853799475604064612378975289879886896876920808529775745107331934686826750648825204789276563191924765016425506271984457108387354246958014949772985847522342116120964791476378635198680185981859578028966539298960848240613576025979242997624528340392102793524230583541177622935851328808149275886035360169958622912242602487255281733328316091688381545502209219678178896230849130033150060546522548889457426445213448664317683110085749668596151549328360190431198025276219948260481589710018689602753067636042732798757443624443774319863840050317834425823976956631416536026408681386766703685737259854811993614080841109658239303528767191539645814060777783747607133458445477499860528441081077717716799644604661853521097802269273362858875383474007636987740644346388449812513904720042501256733137630545717280021847677035361369086835153874792473144063209724811821194268322510847235935690020673268232085111789155349963776877001399895412349594109124600268515027577520773282892992566667366121393946571518342749340341043230101182957731776845959356070481003277370659965785091114929935318254843834896493674696753513960459698102392334437688783635511460379446389932575865704675582499283223660376751162400845251271667447813122884967829321610533437437636188322992355724821206389079203143094570296832569239559670082350609171453541720076178803138295623913936899926826501220261383769040477295846190761769117832660724237811802839592145778945274909587505193552386790516487503515006422948334132962874744172389051601801750106315729952560023271974560129984213625125010255926316292653754445066910717351786242690265926960802602156705685487871395253940544766085962448347871515194605017207831479695844570560026871088144282904667845045498961656440394993889135619288427223446683148742320776751878015329496914757712409532199962120930887773541071787940714804077380418739472568548189665173899037963473494862196669708771073847903822331757758894452067292508190092035792827891616297638310977685743691781852850822150459297435764622824077067830264643505059090389473904776736314310246933256317740861444235658499642464150602206953698205857884376154107931608686957451823666410946963700371077310639935143629238417425975265201188214213896197597528881960888753470220374265587767625785451593445973612485684298790348509812251443191130560512252777047755100802928205146214242648493945841177839763367371050827377075808863504812698250234987372108100852453033059200585195493616900333909592236882900620177746341779453721605585527739020884385458664685750524902837566422316488704162895558307936602685801526090479864298912189890110710708687725860661098181675640282580749527013208050995506194275680293443589073228291818174165673972037122959920855380058450594713849212737838977336121238346672303876526916314288139579210139991376184981007066894373938737761648371152105506345419223374359737591951484613943381121213499667150225358067234094702734250427438074821455231650880303155045797371114734709191519742341686547723745781236592564387712874223432261401274015910207107396732024478328629855829683798327103991647751689029383062873754620742897755175831917914593327116806175200427935061100765136187426719607740801697653020090807376880572521934174832756299212965779708331037951210846403715389630495870958349335591754187513944433479156564769145914306808341301928461142909876951384259426431434037062600263776742078056149661978465091516135797834448453469593493878690597012935831626054353130697758801070872471379178614328357886516386813500875031647827704466660632448500761931115543847110623049423725600263351672956547531942033955251245090377325718389127833198036566453624023755563510580980135866881850425438652590548964577591120638129550610071892246293896208939465873084125199809325761318065390764543435018095075377749506366385120336052455192619094139629330176746843581493818700031220904060775369339255964237195382019333314992664315710408800599120076035186521895106695236660570287177031227512842247036621420373804284942982162250199631639563201585103654648646673044620674049296211480897930592404081528051645201571472133543394285854936970578861782376976167957756671959326091333196007351598196957774502988981732745307601463866623529519544717448502447855714469438790170575417133274770325039014347109084062643962010251545105384684022009080543096027817550904955663101142515736267995638088822470821944230795733904929415936567299538125395520548483923340142659373280307830507723408557836942332422232022124721220657831060412072058992932406074986311859557583397576198288495147586664864311102052875838161091669180191502102203313161772681799472147918542872279974939903747190939049706863349038670980407829348081137921525022474721227693794034676944832637211964367399211889509159621224252345885968048831847850839273026792353404741342163596400482706300998521435281189498203981026042213325889085973029446033660955468153271172473725013091187085538315845058259762856533655018566005276003639525149719589786265554313685030877106748015111557991653989081836104829730199768128699043755095611453842494402425743077839659897310488500454740482789688573673092918160664847085604972102473827672652771233490050980966176700659879669875481017052636512411164307588667540905546894321475367006126794514284878083495163385603171912350822772278584579497964072785817612531471650959779799671018988286239017723711445944073399680627960841676922840398715391268218130618601453153586046764372954336050401288288310569009671316130589260132677249617655570685633678890056829814206872503690694917181140780122536987425184253325954941106500250891202333088017299350571134076427257167738986810705711534611601884997341988964366816499930381584813203170381795663704381435269761237843899068438852121737520691060815370630862930773115178961153542239610734284806039637147560716262342969235572871362236156643792393137030797707128911912230258199824372497492099309879765614568610813340980330352770654318884220905446665967830014950459862470275848484270505422663337449035939264180009663125803303672215870000189271959963424450987083103056897724089420545381135028821077121951510258611790040446395839919036318542412612800960691415753015956097291887601004303723757435061669683369302964458630126520490484968726621358111942555141607359827459217936201129260750970129888112813572973200716072387522975702525498451654137535332920073439545859563015523873898401814868437252129721550054989738010128577263647467683966980547920812018791809028361683735520079194748266797235302999467271302788921099844289803776357236532334752173110550296773099959378536262856891255603199465902125713239430759411447734800159838420527271055665672522896954901066009058834131337958596437629709193875400356071964580552043182935480461155679498611789035825744273501353997426925435787304317337012087656680073377171028661496644919140518343233068161485644795373705869298819170660075841979174137709949216593844764362553677856408299801537459873460608169675381361714697386679923275877505404524965783476117201558288137967330200823326912389635439910109237350329904554151201434320500720104225468247630234938771540218700425988651074256021549249734854389743868114133550180656386491412215122414907475119185708119015982183236382816327658471227458846414933666296685563274409386228504518851775033071257167392940987313320428745809245316642404265498710930439499089350628224065406599783048748487121420483167403282336093951758399958757038916668961388379765098414730917101659473349505546626947709038184123056501271638106194405092352195661084716204596317680926266969398159717808299398022634838175791311342367070867445029518747572420242485866527738993890211716828360948469176860714114222118621787006503621769273848846932363158860135814108824104820986065720723850185153883896469032367415953499231487270615995334585351623965830517360375424919239461254954039979944962920395891488996946136863381783906875555374395337899720609323621942724262268939700597868715646586709135645259353816713269171299130228121325781232430546755257586824372100494904075837504510922497070293062512213502711482862363781853693430653921014494686052106895265810466585797029591130147760874329651342645400275913387936635013717602759175145082291792906236066753157993624263097676966072283832101546592174119561044946618186058794577977178317592372479078885931789233734396743461680034566830296455262321122399527289986465982949926814562508244235764591791271691844011820223339014691186485688706889766274521640717387981233506963102997662726896202194993957408896641957718950604747553205385500468008434678008238818004544208018597529952470635174980173187225014727412955332228418507065327152612056970187819564036090668761632934754142711246530473209741103792713965152022374052260558621709400382045048124886220571527388170117288713003122552430985350647102061503149595804003504264476341918841655188396627886865914593952389959561485139627507194136921682765378728816179138525419709394934228398243706639039554530303286844132487327330216475780419731635797268021505851510946336394377651357924904340349009852995043897722704307195641234834065754690561526852034006399293465803054152015344124223576068491654433757042725642319858575527254152059709280854267650058233603608746813919520817325971688359494573381059096385879334595544890451780545824921748833207877686325316456593469060488671128247900049502468082888641944547790695302819800463270375561865199409469166173572075933666879477351486010311973517412958755733633073690418074257633380565523789576248429842119109418256907130085625277967018513285590477167052424349912183021972771241950947924337391578034127251757928093697065807429732627861891065875360293586393326934735299737705179623398712412310833876530675127662489517659052712690555220427031776529480869494229965115965246949820635521809376776569452915618426392593987215011848125156594278307028086745126460466453521427777471776379332200938680999567701827516735144313249908057615991934344488985289361111489815342443264668630672399613918774850383000015317609918721319181462427681313237309029905208077275190738948974982197359558536840686153795085980509487390659707526520958253605577510343277856039465601186450528284230390853830200304561882145059940488786035416611073405167486228005442973130918295059298264625183188299739192108820608283236398098142426821745577630337183361210293558962610940407121139996320885783903654090484839641415916685043182166338449439265477302529109384163496908743110395408934835975711471076186056698852758604513457784841891268468785330180103055021260050081246493637266065348935862673358251494995060748594717110285474169212058669073218802318508496210799691780387026133678725045213308573688034837954529024668773478602430957424917728664198445947832487484243624617176362884746113233010706660525544510810380666912539165124382456018755293804825552620770245290584850351787749843704278079492917530208119816484644555302929430774101700261547568564838451988623156439983223453069110687528208352764986643455545020984879106130655884527637416764302817010253199696882117344311499016413189453228461425293895953899863930253456137891720024452191767258073443649915560681184477382855295175987668452515484257166098989775498608758208571428592204302407768543820697384766178883294514780896077110373836781248753252632333623733758858186729118381185351056554299093433687030874890998856000292378199123332606948713282418621696893796463588719164196741272510021161690183333856989147674130088671813934490452453307725216068386193289265051048005157936119363477209067523234639650049071663856459607508635248241319726422454245811704325317602470330086538121794847748114633288979968824067466020658339127514903153320304562414270817595050305618833810520740043320122456869100210070918440376789694038650625512074365214864618191494360886686970145362789740691806443576014030381698297238252395263648643279452196390254196667943171841453102164380883722839409563051644416265680647325421907136933194808760556608784832382238080404325590519578466120717421814303736090830832600239534492259422161843788952858901287909389979668582614590102178969828566131293588043833949109140417079535635605476512239902058544398709945292634564697906263851916377410000347364638516806364899015056963134091498916603319303320422721950367307702193198824845408666835980526509964372527993701879747908010149348628632606795896097299112720845614641966438124863847721129840916592963378885911522313460594584482356429246703652280230598683534810279603566912212247172229154773698620185799130545085350257257993891574723876502569988304217779021135271493822632036471320101187944668417013559703180445329628552730824666821362767498477404392055219378765459748012662191944199070740565273703458958191658661474437026476527796542583904069430570362584648323447186712783407721329664750757798311433752174652138390202297706844326385526263080644480385841226549705360602023754937247153211369618620323317625266601553268362740399826544894269356485883399848387032019107802849544777892715083032062336097853271218282309226148486040733847530571753521681548301768001756129581390312282798528248688484163726550638221740617211239498687656884447435711626889818014579294154009454233995498875625275421857758932792519966541795524428372451476395364304953294632247483466425070359289985777442608582105098034742685204464240848765777673770239527432389873883984939085480066836665559939296161489069659931538309290563141375598400164133829469443506189649631083678139378712441920868713559166799227749642262005440320297090226126845966612292353527883119281358103423214839310305281663511523773861567657355488503627002195035273917260115949708325980784184363452611959986121376348305118601665058298777467106055924303728970155233262638928291011115346519189425389811905480065312501989512559335854710720135206092338278958327411581786021580826927928775809048715275536570139572366380658269782471055989864843884565025692108940977320291945881694882384059226774158249633145389534823809855237442500275178052492762030282243385264159507096681410962234986588376102266480958126580402442879813121998955823255252305274740183149321622782468992205117376494250033074928598791804167754790612264670073700075067869509335160927728625172508994448316057106173596773246886344651593718025821495544815963639439366298012324309348957554362349473909827419793549893905205240565642940094567769625508281924794150657210325327007137049938500670126154441494700920525363201894763184536746782548460861937856173459119698755326241689357107694119717625612943196053284014933402070370174497644763388749674031296504943229297842867465766820473999620994299609580429958376344562989393204957772624602928621800139858906254518725650903557241050451527078589077863793946871150086696417877440977715090029784799335434149736549779159755540836805206793041197499878383138323378318001255806158796488651513838233314055141320403239487477249660251384350740747381620610732855594833769818125651780890791680860602126981927720582128831781803852953344161298612278765804983405800989609553992752949596358721549692811651198770805222278638331793174798164888852194644933614178327415100186312846258196367466484945082753437909122105428838159720096331826586544774945481663300124965752541849158780925235356022713253190838865242240359856758473873181853907733510899788755945540779672035803429180003087002104221657525583821055191131600572716246862197964497368423863273754156636034451326266107185300425502255117195165344062566069303549099334120650660445161923362304826443716916291030492626333538795681214749650451159761640790226153344885818469455526157238450234262658036550929488659017061439794258594678470171323018350813411037514310038973194333096232940034883593119765932250988005717845467961186821617309230159097331575890966355487556180362905114166830532121386774234690316077740399022931895073336773549799865265699804036146987227963356952201610011144707987029649812698399328286490481807570701111174763235520534418008260187372395658144967278478686997317604423717969584288896594746688443702970708615613660904403529893284979174775288161662535936702478620022313745958379403214242150215961257243878674566977149433536852168388925231031193845393771974884324364749907765040854741321966020870511385389619549435003547646465811213350897531882205769913078100588974152822993644565606637359464196704403899644410545632405243780000418271930483259605536278167191616179665451432123843842168962366976860105065898717263599157898005446507357130742858425592287549095932687399413429044316907031464351216017199221955717803429979915871937236877123927640451839005480365141769129586808085601841761512579667548505060653420532661623398664673904245400966671936421878196629076922216450964977244237547792669796040244994585379660536317168490444771199586460883663312571639621916330808973323698443394231587640045298870877374900481744283031591217066828497399221848237386028302306635224675412088123364268753798762251457564968481760607693956121940476028776693343048753933811130883140870686190200084318480602792991037127565892346627087227603272764500288015874168559691580998832364796011332080588514155076272849868560359776906039601270230302478484995062572891423960996905613270107425027116900504802215272737965191715438761257130583003195642079852781025249763115942513253243423513590950518431132821354456741924749241630544625511787517204129190775833706503755166004820520832788050909320329434025153943535771529777952046945066188244426761211271514095160261139301449765949200577940353326209281001923924676026083255245821672123407858719782420751584004599124295810142710561794212639163071770292029883676622261391442012871162726120600329667645538855183039506539285148757345456551817113604577159528624116631462021610867362458564264232028669837696431569580138520248565992668483614735819277535312348862797370921777842626281437001843100877778283617908992726793924831856226205017565798544417702445819052736082435500948885212671216186134132898028219313965466798827740679341518736179891796145451134128054060027595049851759228230285860703828677966094016250057901293534269678886796368735856307888606852092891997728367429763140427314984137049211180862261675677740801152985631204413130369558636195517347567087354206484048134891057727375248579023391770166355043496257622806324549195395726772887900187932705979933513334202682990704477287409869264176291432261773442435304792562481736902821857010877451952233010786951576614084075934020131946538207986677121504578646098491410045913032559324729761738779823213971852949342700665080286538508445996040609376183496094567022630327142037059037174623042120001395976869413808119755255963831179001751516724745263624144518259667919490182395456956917005942961101558766505252785215742008953564270226007746065953464387647059423308451665074545097154728745849118568445764874842528588932852548070613595944139302231596571099028087772049170094586333466996624050925045030096204901551124599532595598863757412408188109211691360430617804705376487433492802962984102262631708141733037714545422907142650974482378603982658041280044728783837801924605492307690676192893700619716700266784821558801419805862133221830433120360654634813699136530662010106573182192517992492469649279705384056482125879411111971980418423969020157346127426778976350877157003558198495044188649940884957971259734481061769943487581213854921216705913651597313255425634716132566672212955715730923071171016927125292376389522815398899759926289484560270538337442785640482331500301889021014796709284312701942637542140588501485937456919474382328724517340990586548643053349122196231985504903741691360994985260531664339743980539478776497787720320253843073504584693228336564022340377679541618733633612307278688737266529287013081245662304589383870298858855217202045553362825752222941753113784404747981690558104659209358992381761479446758771004311491146122335153875932672329017506825191955072435207880978422534173594952149305779386764996410200395300269299704104798517572314794444661482564687240380681510265843706609052590535873222950097836869979215849648911187539681941478296198629205157188062778379095080344703405259182649320870920031574649749514603600615900919565887604152366887137596346576955039693150025504879501600960551841921692846648107318114676973161186268985454162362609748807623501754577859129533512428859808551281925967856293618606726484015899056016164025935457670790974071445409933526223616197612184697317025818466580685696879677135971828286559255083900523883351902442519719841408772534870064836929083355431148161411299912862975872215233483207032624500050407649076668605051130675846858422655968916657021540580421152306718675655175701043044306747611843562035216762689575290700880420116437507609057319223464960871670455460759254229339400752823785334091422156620047205811990139327220146201538455899929897054701476354745117169309833097023762510506223766853102994307195470948042690559901622271966606361297991842221114469597725792863791395949787384234462463888221869244667501087893443055874143857883981071631614719518187921409406835534685733011942678359881338450498434221982252592375380753784914297684019554040592748702999491942017299845390934618782459218968172293328676686977214644329493256328664666806473810967128112136698617981852585990203137370941794051708961251698543997664328486744480757639457333843985100288663045312857761801988997277707151383519071553963454066165022516475730088254998207501469477042114661604854128500641317007844424256729439792528010552548766831125505412106104411969553234378010218484123375579659211919300094109639281090452420491303578137334104601890465410231290430442664649515354161739234226173823522211748578983174377222822216093901734487925828281444607107512760901363224504729460921045469904098698669597610499367791015851516473851060858765891975275036623798079016615491562536245444321124886626152494081639286506659228530408901173719860689761969101913400589563077350572789476690945893715733965615932740317420199658750149700785159562001175366194917252045520638144201685770126329570999731595798630181340136428601722785447031320966404968874593265977829508548780176528212792146271475435701076666187638656765631668330125911664390421040476923327792194639832425309586079122059485307736066112547936109880118910464919591140125010638313322036814490637271821004062752519917229288738368949892352279232468819830605614727654638868508181821234884604429316377866348008847498464527185764445857863788866258152378548979862791701399114135951015630603404483349748092863917313258336336417032362536861248394364255033324886644253317957802339088475160590642966192322642430777862643412093624787217749358574037400697241517180155141820583103846892870302637424137208291471024859824810778493363193321404523559098195870990780117592980818368496587167224750585879377175009334630086369586191175421215838920119706346786964673193981660266705876350654499157087072192398800486655253058618905621347428450582948820862631290060702888152203521361498486084421365781695452798237801860125977937110733440716940472407837908969666007912876176504864488465410141677486524022698808327505821067575155831030191519110128746888147965140790987019417442585088482546280869190340055606945351254089326620075077912864468090191912692856307911409730327027602709987259932046512209269415707244498158953213071065788112421330340723475404501856200068494739838891309854606733724488219093058600584956804991293108180029608698049858584392588344472937262698229244198078959463496921129102415981002254702444234532201909561521696004151058011038459344794295502463672715660173723741443625280412238215640350291954399936873087618385190739147909244907680758703274497988229001920166574774751819558175835873532310286728131316451328930984464579974008839956430865230827670627237266131763162632205170709194040327048426583875246100159570084048410799128382974895153035010689035053198311325500851444882723188720839662779588573984753910104340690538022926167038845791830734750818363772656993624198019538056544860877315167023715979978773581653974909744339240302828216168388020780534922024246717058823890942857909909094785033951247867992309675457370200692762596722885066882931933051740300587108593264011530005587303732728723317545980233186303869020450595129260004007067865398841436233995246035738804257721827766169407792850614229313051620690144373379335632153631319496886804989712821140338958554625484795975836834378344527158415072260139277910955557143660322784032072237418864697701940448169476892538953096683376392883306688894874381413544919596131943695895381246729805042608228004924704878482368984942579595791406744608451222933237070966214531129195511168664628940129551871589454925798152409714867070661272981330197391879106947214436666990357032051102908496190602514280206189047972706370390138126656791655161750835678538029491248212235012227108842734340229393518048926116376537857942733635211171633960590217085388818950559175382503239368227845844451985859258045726523431771860566648699876098442852338067858666859088713848645200669546049376326533692624276683039457709612424494402415469567681918177281262413960806060306342871303959960464169995240357279126483256130975102370278171295373715195579704471976343555571236162089547070681757080084656562882055108641050232772450401470675521951550088606455808456168510883982530558517200497876852292863939681819311052943307178559987498830638755134242323388657660658326470230567837029548965876811075629054367949547196000318943880360011679797105722792918095890143692750857882738042579151219358835449193816515711501695882944878657518326993588710146240585573422617393030474098734260486197331504457204739851460053373417852108576285534564516460721709088212193324726435846589504104825349935229879949451407152131633442802729403138475724771027887777460143584469611511096969215767487388178205680122516961562558460544737451352481686080864824120979525722625059815497999680521223390916230579630980914653696685162352000354034734971582181271411656787377492422872747789311635884108329665492488164338176452272423773715865583513982951775853150977462031238395097472853276286241930847188174402019197612703705173304270281383690909447797598406462274210622591894085659093704016898014562556822360072473790257560408990025796773520763894460382761127406307404359532665010479062097137278078209851625237713720268063881143685100547531475563183475891939758257262409158598564572882266516016375276010743467086652214607287882502183226287898372280058538683377095940169038655515979251430890344257544561354149063668284983175969724880845214652604693728559225463275077817256332808430070441836850419592870079258680187051719474737957062099449619790828586475241672411495789271201240449355808024000383229671263785406164075867589393985674085796471324113101819554993063166381364341567262999715174359424480790738765169284403706698707771489552881207530207208943418483892178009646061673465202109017838513528539905309857596596224699668105637116694912020391646379809571954624234489798164550226033170942690977492518905552341348329765825790583100788176850339886795262363798709087885140005580130218603085239470132156300173108253662612126633244602238248850347367132724462535592258889182219498755444696564321208012244084717418290963227886389442630054422405418441016127760091560330093815375013842802669335532070192715470971536267649544197002732905503467316342823146890144787451311889834041970915943065181627350205004091045842869908745270871617680263752063695682690720062738544265519129647438548229917388435990219000139397575384393654869601722271863448249545662527360237121530144645788357215942345412202924111924880172599846819018770584256461566104917789489504601405189040875210308140904295325061805290867526110898878929376957669124323588761774430582408296817600205172384802087197548820654808425195224938373265598734699836772782090903035233302540269396348705485382541790483974848262823670377314044549830994849196154282129942694391687794620540626586015109577583505783629050508697497705781987157070885417823287313303876657140163788211653418649327553474218164271860505620864403367817119111175417236620491672400223364723809070099522172604136654920888760264444514391479683525030382510478358773322440890369837634968541499030910427902098442476016936623415907342920896769800253664203090977278687643705991864302740514732612706019904683592758425050910549412453726158099303210805601532469827514399086303028158869600546190494340988167319348867194840154557185111524290079086577547257488438862524592757991316533507700376619554031593885702535539125006882067142963890685152117737634058570440427157024624559857710123122650003406804340804996123474740242886322302504057992089611648718181948115414656615551829913154577128463991651068295001249776005353476284672731363360096540193778063797514278914618842769464875849091727248996105445090638166319494954780539635220684186989265420077035212745853643017131304933801680105421007464160091054152712434240159333830810868426429677177700192382639278837649974388747166190015586794959224194227033141162392031644268353251647130105931035978978740623279374632462227444376954215806093918904180731128763521297854056494066472703425587961851478725827124475643865372312052804308856962744282547327040498398185625219034700672947360997085045272023731630247273355945431396888124709220892153204019554025018211807167931061452776152639082668890615731739507468790926090239569731814724024774884648205049035588965239473224284788679043673024637788419454178693936931608829467975065361257547877000068128040371905124163230645691523208982081283340072077375846627448339747225425423251253993725277800588028631224564741555140992915159863390627703674960032956154978749260191547008316044777673211820790093212506669444027203097859965846206313770515522615886449349521625746405119000713809233967431357791452891683987885832529797098007157057827431835621202404895304366862805743737097189626962421579294496750682350061972767725643943901254895338573218745469687019464209821800375918130159504917355906596181021918579227527337197127763607487088224644403355002288342399287958806261774041178374134243363411778574691175773375966376750800688676447050070133169093172196360847384099933954951338710282330884000092540146578426379809286520683933252524444343247329610075797113105514478263064418690867674007958530091939643537878212799043364374103630484716222032084467737385156186479718754253039213561677808607422340965587126205791478559121030641687471906147511412988493532095039001887626527381576724969231351407433115298300090449550685146156300630223847765615589025353490923261557978795493232142011190167375377264013537880174377923341150699969199589845667259635467554285249273790303475543514224022250825251378683946624062092619655406288340193127103236708272761136948372581395282921053148397302227633371957719618305023688895121344894418051106274561744141904206040033192904633104337144027079704210302116134493476566808997357638927951549115835189301863948528550772875668871566958039115174099469744203747968089950959597847047627404052485243229054823705863599154688541796597328174575567183175495786206714970846316525498130702812219626553471337108787841157543576298424686096052892299726479273197293220278600575304917267285161567844878509918157145101770371654383733635414219114219969854479179678753128289710593149270946050598922769451908977060274057000261798531708092526038963463110242223513230864281692053697551290575136450518239328023029066830755051978186019461346750015787896385525254712809017194789705937356732342269622264805270672827300504153033548227426864921596742363815417547359187836177609586893824441424597972075789902186384427145226115708953367307134815349715143841479201811949749183555603158525506748903789116035948235962514637832890371263782254281325120527773738887575376413891728274906160497348226456053695074026148358903436690103027637329814000547178992340705071994248880061213528700674819707619994219060069132830000032303251247877557481860508056701389723508932519339282410628493851131524664504309219863921056770211465520581631146141748866014776062605955513648824061456132028941173453062024697509938403358672654479464324354260671256757065303741992102538122968670677696319702074504399400518155503522071751642568581840943423200476718120537257338452119355719320534280597075465057361879458161737334983215977960275903075491914238077259498126978871977259294592103560847133657563212947123657419426795588632289285627622432004027677049763465615615702327196098007318301029436498953323670901151046994939588430925341278277580598157601273483623288743140544557127835704130680061245566744747253247724882147101171003805274052196515012444495082352169204017799265749374467673648396541467043950154214050579962111361880748468904026439680211688459495885382758181768224247163234663492313174875259898370622259224821640668796710933937060116640517645594282559071502350643287744026211059600380187587391500484924672278290807715741186973038222411286404019086538259995425153749839849910445750927622921404450193010163440989579033579557790138261692116621744483481395281860060490963940422991211085911191052007901262299098302364474815358788468740411211338703139724359307419489761521361689212761898569208629143045504517929754440304906238304873061419010763830254005543110096098372769551714782193319261726382524343417564920117632266823954035357344336172081724968743384352748887751627932768986039694328787530574971594758326878138768837216774445170760134479534648370586251980778183451568056045433234666583998504852487757889803329011523217255420816157794909098019537595442358847161712611833714416220267897672103305062095363751601975229389106430543092484562318697418441453919322723967975981891763447755618369882624565625116282497816644225414270879610789569414091902805121560044995586905785446229583304101417772849779588292165617636930499261321535758533002467254282408879121021649254221161395812391698927193805747966070569934988627415195107432531422163106921585757918234205336164235034352883085388918358686894510108463427173680079089247051369140800430766808945312804727474491128204281429507575710285169807314377291255634027404287607828828232988289841997152209167609346585695278965660407846634499078786359497814143672260717642875514308340690924712754044851992207291763350384680459355684197127945276735011158880707930414817377585186709631567259674282596973457963296300093330265334812283283194276046437142695649114450582795188231012539543974963182268305553312548734771330505035409237987031736598025277388085607892994412435391027553858019255726061137802184634608049515577572792739939022035108224529562734842520783598736267114527905480990205135598025962429879068529343071926954933753464329528841266665292904526521589974878518230530445821031858572914579046648399774319660724101233994837631238659024411741641225174105369979172566422336257534471303691926480968584397779819262131491520062960179793527274907725745048676833848469540968027170824631471288291633674021837578997184525317670120855617252021366202017283363659906401823973450369149875421719885708166328080560447087670996909973871753735477168771815716317573096881157441507856242043878718556045243423823166828084662460148203434702752618861862473263762581890365999767601585489353423169129114572149673044590680285755458245068575938833283810598578509707795975635245747231252788104554183703798360475378953998393582216965216883075890852282711266932395287430883994944083166538087784430709679116903547974509551055046097990729843494883853915374033584343156384374892211333164810628311617831529358234333548335840296426406205022868508954221532243692384624860678063145682962214954701163200272548585014844374725972911523763416743192161165876050579826624482293391471789208620703428946724126746281923018252207627909281028241224786815378486018124142540247979058977398739588678762671331812748992347761772174814081275526223439283781961987195900062173613695979212909371747027593854165766342772703072447303468514017055353342769788740211557417316403782137763767638655374728658101826101710906127018334016764843778153735919437621805534442222514968383243036802668708083986585283938032904623032666050593512439198182906763101889624601206664747230451722993078961816029105377511864761690669759458872451316697093511516603923294361137546286406801216324006476361249548447383553101108001236704340329018453934909638063088868968577737617839861420865199538632111392133960386740888732244179538288170423152384908073089442333330897910040680464130139734067336901569203257597883615580330190754319716842629285769588344020198397314565510543796789040368844725973194100085084859944445307664013854128227966458379473844934813620949014395575325793623578085171456420944974629356706483052028856951252237895830071063000873347651382890762241155074004973907189372440748428172276612515550150974133066493101537904979473439386897265547460201852259470032580844162366931114623813502618389129082483953382461529283557084702022252730380204759191711870662155380515889001779699165264499808345382451594829265330966143210533567849634898926191160541244467074684079868774449304394136758260206104197838653434451240770902078509982307589289817519732448467610874010135988260872707484971700259724964585683917481699846601072389116524612425840932428250076436828862816925322056159666012699367899016816492184735433670614456989838657605207334693443524840199511948624870974059840541977969818562205680711705207881442168779689969342541887763274193007666767606753202189257468661264878500966357527162819858681876443499708973520630607871057881426577238014416898052153552971159191912505536199850816821251273354601147686898314363819112738536942446776099977925471557594857826493800716386418020830603975123808093734642982145888789696835856739690833586718496845947211970110909190299939328702591823925537535761251898684637007608464351627073672598868334885343429085270728576434595683113123125325098466269464820053188388461527286515757321900766022395922708737766423709037005979200970431159203120931069374121271027417658311835890469389465883747909224531462076798953023122111525420975202052201087700527179871571523822629920599952611021783617564728463680118348380945863194155545723921239733248177789840106110849433565917341347246016509887769771940281295245963427582187192296168470149690921917243579704084473054223625755010464611974003548813397179100180921160896760516909294146433284386677421755762234141621029890204249582996010705069185940787449996554106579128976961819488057413162749560857219409254232975551404252173027383359656627283244515709551399279087365385997595088695207248194789935031660934002821746583371379591751960346655894591480726302888062416176436576981994225781003572484556630069857490740550789860631495398036731053287898121290809014522331999305770561331648894441048296247089630991194483524482508301243884177584033914360867935790244444378649703834009293588866026216629444204993491863294842692512055079670141467029868453530547171407840939734869855946999215782807591662309336772783011220981275171818938870743712777972318749604966240965081710917829769573625594974386898129819860175359499923686487589987157374796090272304260715359922944189563349301168975617068416267798442537338924648885398722526953799826569163020160132699320103359617028251226069698118181859499310518754071399902565826630498325855616282362055771995522766687773376582106955584291839323562108911080946370894262820548738260592380978784340135688159848525662097836247335325535857149597289088589419365577909425015890157258580754379539342441461386948514883908694807209059353858063407917484197662919833427910173371554774435021831618937836115512407170813848710862340164989892139701628782438607064794478228777645143450377292706791955168219580043961356117586657912189164830305685107605605463011053453786685262972397603172009302390868992924943255757984715548894800164490207843168396875466100270788079899257493882032495490885835582673578769804042803908105985560945702903540637609408847674983355252701929620876715771357952712840625500978157159357886276400473359648475283857999289161505525725647800150882955250669037679897922949963862093881807762339112572141774424287315879754712371316597338796504437960751542664810479154102454493249440003343003645426146409557141889311380747999339111926831149001201488523393632459917411539914005048654844080539468685648269845760203213587251921432380165373186630121212226778271229235202962055441882913763773437565818696231227186883683562066032019860214431285828669148620250291128611945432414413376572876371131342111918763913103979469722864989934244645103650408377207500214930726051485015199778775165718689903835998304527276516115534852712452869737952059811706242456726791006714654290966521766877708691876794442266363816188493761825874974936223111613987811648704639031481916926583536868248047676192324734459565192602688382055252611579381449251473869932544799637368006401075472932944114159851657140084929389212790439334607757372382383523531184426263277456218725640697376216511464936982491090557836627384750364282408456475985770018979856695070273127787880562948483739860332642927087901581384165003557845068137927407419672248358494379198263495421619905318561808806201115945742260468935753228897695468278376174534334521975932834984423041791921389444045589919965305668063273799131611231376760201115661927215943273220071833973492577562455645147013112267857688152018467662883707565019242631962291356581481986342661489265820298639567403206633351439968344594437385246851670696865787925766824150929187415278225804470617521109171335925266293248683343326465781449906476915384246945210010051066787999253091709565139102097568545905298588768359544875672258372336071575615733892801437501112781717865183437020474721196613063775752849503191495590723694896003239302474110393978885047122990238250042734402515939713805459338740776847716726692813734783258414458706928120873769790391787859272925202980567939704665160949269809197722767927923719992438754185364317723909362987951633866817408278868443252434060912162374386793851333279031479122601541573952704958093542680887875988949170933152358423730287744161001345449852701008650373857698401714757444404803348880396212770444915487113363006186153264203733154441824007116277261059840226581851970514044737892721354432032984825330938436847121671044627044289303322461062676814221796019157147623927862651764600086477457939760071827748924376774512635990630500870695922074610484572418714043687716603180233389384716155227375049436907609416365408242574168914272309530103087481666304675173127605245807091685923416778895308845356520269191430501437589594347950658428418386582660131731106006994928286284292259808124973022311572187623152947926643121698782700406478160113507244732811179343996192733421612288496640839152896222410962487478846658626400121126186976205568830984663031253645478418476339243832600986701713877504391558581570623661612305842911237042622260501457082398172420126267573731262770028000292477275101181116855591279802587139573741587877747776517971794886301833889755606506228859070953817173017502116688906110050035893019502608260895686364920494546314469425037859673969392387523164322175523010162277167911490033530165126560229674409915286028992428529569697387396349306911403591475652842021489400198321507299194710997472391283718170620109545381374179122554137026119466142364608985305353970165825468084161382358878381100375214930312174408983157598510207183736717339485607222417224569931786002330455135815732371431006725514164701663015696068680428976063192367107264243028053952095213866698512586627506544346810592184708301190027077636646757313125091407742582905589718755316584079419548404371502011542309177208312059199571253643246837667598285012451466549627688306987198753796339102985216543775837302115315215702884295835381678578237731406041723024100622407048975881243025063240216092334025226756245207718052181617421992784460305186827674526940343184446580557527953449364171659957308761491214281432538359530899246237147871571718939092838441607563496464016326283350144212107841836866941845885428406501622617688729010292368453660112737979960090980322772569275003203578553549711946657110914804228287354845106195695763834115688079940561773099887700450495102008187855044142613281032805964908021689556533489444237463728877779276417140727796442675289903209202353696491799953983242286233412573528180563438071522018782883235738215258991332825415100351008538187868457015784637056852471089806885267883286620967624645974918105965894242641487237869978554254932134439009595994836426376411969230899735594152901332194580182567031779133586420157268300120772386366912783523551092822880190513116724476396175437245464949866211048792452877964039825761842305304553353577550953816663201346017952758473728866067762241271709451835815279306726324041410309783993958626509220779360452714839807281111957541190546992028364893969318418041635835565693736244396386177985901090276254483268419593238438808342081652915815008058304243489845772870060551657213078824762316802617262325593673369045652903015535255296503115603514509504643381133650419623268976470746335298809753149652764976190366920858833444474529276427686907738177805546448602372477313735164462976993117134753158273811175282015543839633877341273185581932734224959828868503277435394469530727034968333334234599587290491984884313641790801156538248557844990190761064992586056181335096935359030174759705919244954965426781778315899404942159114112201109048842268290583018936902186372933037521179535388870643445095084308492157264915488500827278290293945651887592739821598649943810114971598544617820334098562173570691532133235752068668039652299370923029252467540847939331746941067303816040627475629992335665577603802823860823306928056892348226591595521473369620354287448124104811387258720817114509424744618527557829422114611677789667331907161300477508510889574374358410716411311670912597011913427723706120710383977782187818634388737820649575445627149530811440164454095720937535099785779090719064807099477538034966054251312598607960176424219118470394414559863674921085623294801201376739133203590003118330300988982447983589009096487835494845823890919775339399464519846215462469915450671313093466034865312015333399294200280468626977618088757637008206714024157411315369715882281619962518965025311508550429791017654259416854748917559861350108622306768086260869006438239241361190060055369419101062443809886325851951010224957080505168436685912337492059716969226326201786169644497591449096737928403526709182449638913956835886186271941560514904224683802767761449686474025470705495843732339960822514159970075441061198357614031470071478781353403157955093861431251714319757307339728292152860991836759183172621566951562319207192814289975438362840047829177949198436739392414152774773447422625129371653158254605026438238068904030550996798582624708273155357991469585284773518556212058949758817886556790944946624112775986279698849847986781042138720728305033647049385235424853095054060430630888858345183551496945802601418107396680341927644515858488338763773227377469571351436964053944803781371422353157397487214536583149358482650415164041964891855651043970878278980573631979861258853985865867069548949064541817292923278013929476575284812060247463681356948882365661515843608838359199062633624955871302342968722714088628379416157067887523488367037434593722573831826477551962787683146129993832548935770265549134585097356343438480785936185477637092216319828465580954898237186195668775825841795320286501439076378006199359435465996800579627913552417669981395006323688642207412065582135498161291207932001911382914954694077535611634173396180814702382525730230022442232728584893422081229043742289684305985390295525829839105703634776517791606605888684414237247436282495716809867013166448161974664637217640028808202619722199061712754098889873435617437252599555820770869427036824601482170700809029688912262501297309261232659569010605275956990045496120453611376069564120051666047153211956215094258935194086623397223368220560664063424952038114545478446471352250399376755211590870970675817768330811153913863206560280304470985002893314947007364274301625343262955349773526375459693806885132236908036917496754000614826079707040913478374944463243558687087383085022129985511831742036482148689676696170088424416247147746650616466008923089399174270479375991490547136375825372019360196498348672600103697589736444795637135516445277616247125543092257448105228967826982976368242922973541885184893405377895174786728678855080012720344321823566157149477142904256469956540740785708588022537033622888685675084499595501589415243496319538239486206161945627033062194342469656903479703574020068336409240323462193741646449699719047743313893267249205105791471108038382824439007898366462470532301924104709908706807923130296105038402388731394266533066176283748856146398702917859430695827011252663142814733736731275595875780404468135836824186157731741423727142142059631641352830965681578906991139478637291657103594292556104075668229721499997626100911207324885912376731435333624938302664502778852061563444505052220810409062725468967371309349229185852460590769701149782003879757482780027274958768214088057825513346498086116120159548290598753040531470037374883331136905729528556839935632123222639158631549383459237972700889971265146320735888997629434838613066460738052318970792338206325997306061979616085132173759807486904787035435138717672162616099893906484495630117195006010768002308712850196847879428543969222813277348886927816599439817223600088907479405220457891898588931707718504142367321813630823814466736491997681364267629822522330471854864707349471586477339618088114056778879889817637500145690399863394536803743331886591747171656572531064375030622383208092331344493113882334960393724450328916238245316556030993577163118764399152800618412456195319820142538276094262935387953945061038610757938867938506793049163573215196984549432588270867963042553362513773757345074876380505908603554322474654206650912125028098516703620231276783663180561746446323063727137859069220657003560420580089478541960142843844016702686102520793246786024766205296821368035272741959219640681696889735009186514280775522808144535980838713216515303251445432702876120918115061290072311415966885138390090100697053246157515950774804184119190246877173398176151123103961081270762412971896418189238685328817312945983341259245727525268747969366319922805105479973820132634572669647340366111914059899682740414229137646038168960685458044410605475772627442912476254282095205647238519154395541833625989130462758717225200334500530096992956499478014477275693923725222994656782280591593355617818861037918338199987322479922516815423162342310628604638965236116371464954085434708582459654328806618707175037704175960717432679023187593769741521251258964347594920755532879591306154270683961132521638644655906289845177031640012570836920473101469602031428286943135868217185481180304105774493679682727269131201925340888177196050902607203624242978710252045504429355859349910051110724144485802812636774197472667231810357783262236698844990639377877160957947532501909759781645528822315416816148933467455592511711098131936267612503235791032447687007107383348790835935707948906428609463299218392699930447859076896975343381850072839604477669117593055805142769548897201171219820223254415746074113573508352238964512182073618842511704512100819199841386350405316626453857825637353275454726992625655411675518123181130518357878366832210425472808209918977348837573370201500105504150884756886836328516315506160993985366871603475485571057026208819248560334638721129733423892317851376469152493894060272067868151737981650649117540439435567852826630115054516914449964159567708000032464502257135502661653947088918402715427361990164816546951714251146712986221206999197797379687530911029041571041330016480967348281123167332030340955779554131398125193887286259473145140494866458672756255460050199897777324726592774318629511513580529092725721469306916626375312325505461877209342202213607751814047118597471303592555744617061932772402825322770331125682456310650781342722080045528440378166371440803926158575638057474817000492455420451870223503877525649043213001329869294396010389639220031703227710818868255597749591695794187616694834300799115846882358137971772858678120883608347887679512838218025116944047408697093143397928566281649773349066344267776975247672730573754871199282105129598367969457115996314534673432017728412576978403802516273204810138340760313147089030483449067348842572749028924539420512004114750698596859126893772470940558982625919517277972179726591343096452521995349608712252857193352436362106320998542348980165808039234106938969396204621019427856068866587933546939133711561073982895491563149359833412056535219574992257928832947062431114756893277661552079998069048653321352412610198684364479571179801926196418725481201564391297759075190666100468597581466433929792416187054143647338513828832038975528698438200778550352136920748234563874488045741402188507076753935985638602698993660460358421069304939657830219029589485196948361163511806606772218828639664544399415386103574096034528161604457010282873604249764127596577619063507095597166462928531552375531210962887644446807820242196966040243853853428479678589708031274381455233014513326490133951061428143688337404875148679008823760515312843544687056656998863249089515739862800245676112478948534043738698000105095109154357318224252463760695711627572154762358059908036810474834797132120977587472640284487023853150700444203165115822256955558909959258482465171871755831109924114257035550227478552889328921934868168737425426658315305660952428277143027437157911989196537671970338453676116885942404114216510046752821991946438483616170015245828940032868252902381708154075766959887233679306479726905337897711206703287697226536827898227368923511903017349244308458581889058834260922087252977218648741427822675340691118999054571559190200178007199903029741907100009750602724725117526139632367326601945606287811042784622663053479686515306856083943587158999531167263140928380169484054596628761989829866701057493386865966541666494713672887753040219562826140648064216143717756668528671207601294189348482103949973149978703013509013298870010606433458230776664598689068695075528659500579209377956032251900396814957867995419844523859363555021129163340621688458944234848025912556114049463219635571052081442714466485426256145614511486964942271274355464500936917994314967268524481746601721826817760076680676278996756435058861855538365511038272322683271358545440923431683778051174222033646506491184599845806748134388928057349911757300600390343414928187324069208001724853684004240047109371970470685761989152066975795369295736929699356731187878133273369614769718252360506571822891086079136407171411886880364441799994409715685711609594717074000363924361111190842217858079492454144359644781773774942159568693027449068759428924717452253149976059359223030719984469178476628746741651489931569159172158197176157979198044540179470698310061901244550720955371089501810163474632434248655210680801696286101529601464149691442087812526416456648510020056261841685817363861674975523774752546177865012054290641205881621196480425499251373720081748491181379854260864746554195417363973223309654328263898249674415514302961689859834497126441478969438853137511949742746940735395926852568805133781087286355121181366942288184111013954372857106954740818449906698218476715586926959607754772897725594987128906782519830485148004636944554095101498931917078443927441476094732160231698259884407005178232980839334022996039572765936751161605419623180214424241401874835509490515803325885270664648701289569676164348245501194546674097079696675856317913461430230374383073888666901035048709079630668939399445721196920688852547105811902511212529542555726369982424694850085082870284584907525267626745152219804028925793077548507059499714367302442190054276658494147455213673497786540654550184165600500197686648795373474659940068368906496242863354765899092847236927547507350542017997749430692471509338261405080606035988068466039371927690295279245905946669434016579610779025279853196137351171999941864801420794339033811948382096934680445805284829230645872713581231199731678560202874284848766981452250385252482530572514487792572090616685396714898405791573397317260462718799901981929354049767483110078669159865044147652020466151297238505518711629610009506886992381884517201888266482643415438533412431176435004735379938554228854971439783471927462250474593904696009119367789707892188787470753920772287801032033229972478967197580251102258500211996851435919078264198016777184759425441233176670171671529415043994824517428877991049943025728818380221934493942760874167311554141995903476797201945213604087357329588791683729018034641355118310583143432338919629575679647535641068975959953497482509503080881132290682370541674057643536030870032138606179413624225568696554014612394335025698519126668787757418274578539435472634486685746795330017470365858145391237758058724202393134777468366832345758086333821698310738245363335828589599226966215279664648521132062239516633271768749759023360276235550992837896219770001033799617787612629497465083005519670202890064002866231315065847945511915466677995869498260548231243420196404236655844046450409753310159886623230430657453232021060477544687299117973639912847909235917890828348432188826566459423012472401117353156483261915821325830903726615547007118652169393375001600232608745153591686909827401886815064626567094130286548653517961926659435574116540477463076542547651272959161289412369714922175428214843525870257191472437687858416659030935294068792164598773077320348897520816631389606165277610826841930293587224170071999604317541456827975613405231019309366043377006878752389220692868883570680098279877646969270046826002243303473946106563313748592203134117390270735108702091745396369093557716136283525607534827568095529716759554466040965123200373271572667141426708412019563841103164665292390681013230770875887705293458682167737303422151706052354229984594928214152904694650071740749725302297310945089540404952505488619972097324598570712085496091297714493461605211840519709992756734172674390193549050967383547802773147113369499761278278498532930289005664297676398068195222169678694475576740673168101621501092552081020332359763384966060922227208696117831446306827513700981149258844184444871660728515064412489511818630217867717081642391177869941255224168065253854577101623370424552900201045244964817790363423016083754815565008650190184984981480226667657394525716213916335065081210992119839436306335217228588061090939782575228388316410662095160243023265146742065012464752870285257095067121591341168491167746099884592435996467165255595508843151884619746112370120313172160762148299918984371867592940823440100758118734980707580297050528450704233967826716796401851878748762560754227976687419218563185536829633352993859817469700791892066595564408697904129094313024054483685757030087651343014275335282061569167379370330737319670613250654162846144509477552671846534841735660058117028121724458664867793036453911007268128262353034206582194148109982253432797153945794240806657783711806043182384690450134047034295903501286206945057926918286443794215290444991715354791701712322475447877881627374967782887357964674786896491370618006365156923712613161319860229701525987312076109660911036630768108516337421734363471842148137096516855674172698233818116019598009562067706310439871212223780358008670334706983754417480794865076633794238951192317464399628445099069232794890174347085887773816685891833776541457587925016458207076584625775935071576245749835846880645728751199943164717423895752365663792085850025464520626620273361465107705810449752999757401943555727146147604883376250251630109549453015658531598324975523584768475306030712916061314501052009170532374772102131852267614458460636815377851119418931210794965534175158883452740472534121485724242566776866270203044281734986441381961210421150131960147463786150062103147282237350408345404702823552017414463726058821121734576728929600424087566456294104936475749211906299240622052431579877754243484276075495389748179172511552962553681523361990130488520162025624416938210360834975017255996616888945798822747627905611575314840834850425407560929991235742192658839928745018390913056987171339333193653046035275489766413512706338309175156150246088481896536724511649209102842191718611415234604167556759756024267317717709960781786986192742554654146917786183850318486961772879481491071987365027250472378905511397075313321038020623200484206020210207929404681220631951969919127003122430719214458978636115470514091733352903274609262362571717352125863370189941493305401218536566556321291448598594819336706799715414845753629635145016790532821999353638083001288374594667428744018791601309911976780954725311381875004730190503463778132782549787184481708720577487279330688953842509134319583711607576698394136330499992397435976742286720761315724772146753312524583858872243383252792923515828202249927561720811460725965508721222964697466210377272276771884401168644446579487164571185580183432005850694158047387212081079438033494072619294521179845307629772426755296807103977884024653608003057407361681642765744743840831569208141442337603494889804669297239949342484033692035744876992358021806449280956686893043334534289287971759667791134059966420446825145537051382990757267472909581817364915858531621523812067051792161687391632722565976484206469691347124583324342308597454122373569669864365368447443319783635709054719941774447129355516323219565203064772079956541432938110336746475902223843942342725731214137562181775637782836520243218816270950125279135677322008316465696407286250162148734478642288598829499846685681807310198865238113763183592741893307418427699300910708330411303683204396506540256199067448272324249531078831628068807136089639588041528407687736517178529295513008155968277523329688182325207853277992871898944325428021892783793484558735686943091255544661259313054781742871155419770195547588971413355399942681651999974739022554646491104335722099657422269783674576694164486057700164582905928349082674140939392287421811984628193519153445706817757289308205388774040004987320698034566163710077491723263069000346308733264049184187112915782066841557463869468446845240154309859823319357578838674117107940601480112522856975043056400518197088923978232203510887127061725721266243276914764343554928922491219982397020934871371243058612678027534593891386566793351227858829803264475756804200517166641636254796480474188203777484324949226928717690234729698290773098364781799995521661647350281273893091701896420307251842819523238911648615391697488102348504089665573121832563481365269573062922440448402812164547871521873373115281070929512891105048653277586646856802064650310726058168892916962792455255058701368836767790457921592643964324176820002009705263576128794010036866351676321948318892001229546326860095185374554202335983767447432137983138428059850957359612838078712266787752926327023395498364769079460122098039287478408897865948972719418130453558510761986793483480840213089598975507308588919628309776742632477132618029952185888872091012412321870392910440121363342776348018906235606389630306731414751379905001160749158835782592606664358586793770923199001306268087529802905607417904764074572777734410760296497167562336636873553319848167641401999971200345907619061745671098123039264972752904799581825843226064357910661685985901953078776039934577368908986421194137621242384067983064032513737355994101592916837611855520377220682440561916946996477365204869737846360767209761067139829699210744222994672536766317753798511210586824957588612815157425890109152867825908664929856149861574145990499708377555595715849092188976536634984455141957606071573621013279171109828144935269699418259827314037912809197920498406240014362462592250170774017285648264016651648045688767381274738491753001546117332809981432740980334439749371760135315093527582990042370017985769540368683770900132526093933602731625214407916491061243163208694873300856364628351535631176951760977196882940838408948828296339099709759816214030927702905095752781072449345814982404615858966735715096832639156917015172913213646362577429695345624624664503509521251402277840862650614300883419781899555733972871163317901313453684105827377393909309216118048562272915663015433618560472289941258398188237189124783514137770496141534783979065768543579690858705662595276145579329450341721250145783557171889728511476895387907188648244850614316015396661820142407151674763679185765435398875313930750050346485459983945715704019950965363528996852448457984160518615035236077440619479365822064667259346674730435816085305644676399525192581484149915309688219815165042011227221383324426707971264111561149632879338185889008265200582006260736480286465840333676079335506345723236868379959410986894950553811492868335015465195377169394150177477837190362784837114818778153960698329251288885612590487512427768233490926511121709117504278435976016100356535513222705709832837967735878721935251838347803160603350779967886190079729480920156446866562632684294394080662606601303922432307572012966290041263228902622972239217582168279779205229519491022139842004250382902152135201452333929967814901532975113952218007457272249018394085767924912357515127502557723940114476843317202029589780097823420223153334091143793554660111775011608828141255977830462574869438063651404470821542612922344545264992344973013093925406279334053434636210307829117799045822744653017520872564351578669396915945701266369798178151203136749567760837904414530964397703363061537758188471133480181388137624769999001736712185916133095104513847771154061711961488305155848892804310526906763820795205359514905623544990637494173949037413896687309744263199340106631388689813271200395840947889309694542466360596086507904196201317096644561263744690288189936544253486036709888554985022403791203380905164947804589227701569732652330838868787740399453321878045264333563763318649962763961914801153852116077123964344078066881136911639411021987713571052559282233986358209970642436586915826405437341186879373447245131675698165348805252232406986008300335171328668409020733516126405630764753766192827314241308532617123375757710965271971250921560840358873203454931391425410615154992921786134594530049756899594698740999511457006077648972360111292287667674022691191987742405116133562225384383294326815448456235393245623673756159722321336229148088253019276704332086566912725227788720631971450218508753681994819144330051269480169471054445648500426790684353322139474384857452085013462964092142099442785102561641940594773950290729314501434041396695236858742671457961642484618243604329983413267530702123281187337587314826054621971659633505248619477042437630428140871657697723701290300437782785467121024082238465631253376928570154340128251460192814399392473839963810470953989042510355255857932301081632548950030559997917764355177981001070051794217013282723287431259244096471922280850664520027493358223333899135440850342322437371693427675721918166762694726764400400580552596883408966892722350854104891898215311538599393181379224582029851402463300411426580258426962506218637174609727076747136388255197587565319614670536644939326423920006758165451392309076760924405912687695236532503015105297886616530368598292200642012658048165773075993402866320868459048904179419397482959127297771982265486780241660115053380758356410773590182296367973810010574066452054362890585084647891565312670042014816898425508968121965160239763027489862275942836471758431701365410970963277878353008796266781103966860344816892937363656391016218600120790770193721729923060788256556058421861447221411801676945855252056084615980222333147676258933398754806961848386240971592540744264303285291939552626727642490027783835222671766951572873315454368434734536515558332240775025084737659044891462407650266611231991405163596161227870614888775081582786731419039102452554120898384597059653291823666869712725577901839895478691957666040258016353329811636084531806716756436376597875537059261776251944105698628448819434591324571222092171749588194895480219700109490143077856015416174136885026923168501135272603951376486376600311127314629262899046823328772984651240863611186204295056292150983965331667397243599446205993878017053624371794643865279786741989016511488772743982393614967841232781345814552360272683352515615852088577023588705411263427216059008384582298559626812268651766151816554895783726529377198373839042068237032407797568597060667626295904937752001389638413925185604353810464238061487457423415076517227333080681138675674630315530816454178664619519102008153260484085328116315786415062499971869681840744669709217700706523703531393869024189521208017664540167205444073223409131936709781959827231165049403823995546630813068561605988297900516708097923047901280581202512972242805573493218663226736225351159922725309819171054571830121344355711946394474375789934674891910902008143958091509068115929898276688569635717665154469353253879228727780359419708053389552979522004486841434294628883159419199497332904549163283260003038185688246880690486649449541972022892419707676724230823611472281799289547544452773522858154978294034509755887604043173677486017927643949449158425977443005735891939565972697848471346073193217561530589830554536213205346188883097433356470739287945803764286113199110179879351555434732709951580457549038339207774791881197337292618344483464054111065899106728127428134752932256002934531731735261640083916734191905353103568498657956052232746424430646098015670960071112224556220167377729498692854245637179624502460898123328308350304539518187025469105868257361322131986577541545247179968465404849457502381483532509581160475561435424920187223393379388817971716034245917857377095593187604656387325503655590877022830373794991826839188977410789067726608889287542924341447714796050463721393821911216688261672582356129830069725730166019008024335216637734986896870375381751210396768850135141385071434544330222054266300160250817975175606514988520076175640149901420135203988713981338270363727523509359603447189631778279462763217270104402417218154507188614282117384838788464679302044395664618477671741781568838290999437318321759544481885599718443827280269084730660769758897845743683567431309339254408866145408295336760584677660778997061136337231087482142815092451586699367919556536966184768274583471234769585168622594654321194154674316864350939102295294352839910030197061142811246943457812917391155941516004175158248796234407182275234380776309075372708642634818324397232173024551198800830204784829698710270964910018961621285248346018300462520426983884459008460027595650183601942045395649143763321065014053583893735414175637190433809074867067488882492796150057708895764035516832879371134982245283367308264441797642202975515519747241915717095738467463262716148924793906397833096810917030603909132044281485779453868563772591629837590824992375701103464382298881217632315950345286880768895561945314506607886607078719806919624133128767621021298430607466022406431448573336554589215127384861563773011138512810548017485987912373369921786571146154923337788581273303440663841551780633106605112204202094204956514254090788498462873400841136590815237188764085212041233468802310164327605430831370403927662503559542298836255140417243053562306527682195130980920413209453987221035895563657773628927834609263762462300438083346257304218826002742077193340036910526880528679812755728232519476435302249734479424885415051876837789223188928838471642265369468192844727193875547562390869495342072046712909306193958340091087062491235353971616461630579951463287438061563261301523961215660116501339200974784261646469668433741322690711201488527446274964708050324695417236872412991509623510818010693405308547245952446538752688448309212083141145592838298822261611722082768731240029174388750078839633767855403619335946746045752415955708314838489784968766922309599548239157472297322380037855306605322966397550679917581630793845976767737222835155028957613466123465356171213287064546751911838220159927703803244416148042524670628212079835065402129403716103252170405281333647795499910138991475269835179393880681866828344465840425667498255914914935617537629335701896978845759191851602057878163903709259133224291682181289548860263742864796063503684521842723034399297706254594169653698684576138588884867991476350996699643475615994476681689778065975618448962973700159664615820653680197849375814887298391786475250811918871338759694272798473890951749427856287471809642630395431974643908628761607037854229627782330049023137781495721002692741322250915254884857358346178992091292521889685004525413973631485419668963516717171407028425427446377766272138958185885470486424379003855907042730681048155429117792909881298480809009402993420158296349877434794786191578633254696974592120550102719047017922299248539185562228773063590840280244743908951781461659499597369411906125931929754937599280980778304376573580558245236731210022757000094053247229718134500960589128908734887525143890816265892614275871572742474661745958839527677130280172720859439424938339411586339866201066757603194756469465497496538103795226026500769750180018260773068952073738719326987623138293821878081109170471670431481007292899814629836835176359419341364627741066373222931396039383288756089675240573580399430620802240859486816139143271587440953307795543504420935008989984457933788031124143883568894389343314156838618665984251841086704602585701432849705877435457151612466887878957162342484761026458634685112505737231912479356724092772083899733187314771228726162160029005253953545529671523531016052166508788285036039411844712495354012790692726426284855758848486808384623765243804329848809761541218416138201753537308219698601314665226511770038946405818502749940373435573060240160730934388529926616449760120774650472380465148926589147922945933476529717556278855240904936852714652101196042104349437643923178916950231573539418218739705421611863525769264509054005598389601590828376429600263161148906593788627007280128299861890191854348359699118556423782904677500821353731752558470662391817373446355205428609141528371444119993425027717433962747404672493340205697473963178708577021620340740283766890778249921778122535394945560642813165266756394130141760236317786345093423660541143690005932890365196407135340494129675758598298585611861416889672338026769214627686447630394786759916090914620556068157155653222666047159979041515133128680331441377160950350342515476628759443746043758611445092858154660663712728686911203878695327937359021674039743839710571645550516316119682860750929733593796919698837175029351918967836265006669937415054871210790781445472026460132743280262365647947951303436657654386871384779419461469067974338645890623892331819504501121448275779249617940836491687066850517231314238058309305011972333061175095191164121664201060129110665006142566046771375840198291376584787231556802453873544865372235703317502928033457360723314737482059205000935181257982840472112590973828176522720144487494496831498897201418758158542846051959330922091352080537917944421048162887380343823561099149868936639594222808862200634982538003568394517999019615610356307919380204502144904556840336621090868022330331015102828005507844388101771932515196435057622762675015731821778160880197165501480380798226514080819081791758639429185993512905619604233600245252696891362809991338233227418734479401500293967990314594726847495316335108668761466876371979055758028327381253135791958494539315113386054600373302307796172000300558175512151026391467978134050052684459224514469888042522576287373243921383354069473756036860727398858732108701785159519283440414128064079798711051105657796475661356927714613861369201840766949368883950898664070105203848232799639294813307342363566629898914713680447408782719108322647188772831120984913657081177116679431407003700323390269531132714232875030708978971759248102991003576967145030957104971334215439977242036239779124571146978603732124084591135754815821270748726843569727937581273127639617566252123700341587655425327275628587912137270419157251383877427195607041420342232876215885094536853339286621942652974849012061506209374169071885540862450440082549801054973104789163881346673232371678899126274888171326135263309639127582949547587630833095842692768828280874185748532161844479045974231723196002509872255950593639083615641722872365394907823129941390257760956668442014222053706163370907751605461039201264948291359664389564100801649009383168669795232775491389770082102021431435024770134962115702187898441388185164605995051391058756419595697974314507808021117711568446719081444724541231634558786298671474488290727053715605025347656323405829716210871709266394614010680616452704599887723896940522384532090883933502082329564013342028987907574806581651429912483619542327167680962195752121841447808915937723315390874552830027066653055305978812827853620510426821820191530007804033044502161125830854932823213504777792608845010147615693155988871494831467451098347072734359512197363740710166702123750705387367784351186446098099043783529389732276779980446293609191513802111452218446062838752253852160691801699624568587376541383953731835512287487881859353456966862418155585867750881942684314267698851184968331526914308926608294767399590471891610661867871670227057664182575745058284374176442883264266184423432322054304816058489868367415051209370806688626253072142699082396068567499600603107040751184925409598855115825907189923739755175629693330149361722851050217175697250358239592164836008388974823789117715600094861076931029547893718485285387437593895455657911441362090961810319935292205857577809625002700939859398578220733968075829526123712573986855864843325959276684426227232559647946130060272073421326245313240888307388202971561246284732709583761342994577667016459120112804299266058229484572297185035418564864353554734420873135405045514071656465071276817956161370740565079214275445474937117746985249321569138359752563589260817725821955977355092982126147751000137168984226083310945764335521498150464622209060593106738336578715134006539298850650218570804782513043643915776750501810456295358358758385543249567875786141667270853432491927247997289313788783361266598551130419135193433777175508278127051210972702440042556295822945771320938409998288176384673911376052167060400056946595451607456221641230533644017147773722920099080281316696842499318234024404025482610844203688313141143767623679307180531463432635749712153542777009862653771503972188684550196738121903893658367426087055368124981853412623802713775637049158776446397188460929936481032098363603452669138891695831469379072917133612226168043489839465617111989977043384552858892675513660843796551892466867946156758086314822335868929017008000985894527260436384201746894496109103118951019841805910161388940873984165816437099237909831313260524634742443142252088487653837128475986842422092689733204852919061864743441929869144831670700070382379268090933425638400374336520726625438903889517052105366007661722174877423319961712491863647747798064647868889594547078561973185142462394263864893845342319262275536035951716288663858459354345497404710817319202461212428566959857151712001457063428117098955455715312635320250166899372918996317301481328541769643619017302881312283359206295690347249867501228388961439534984447093238340130540862190453282112550569899157851159830841875150874177352910433137952109363840653577074805243809785662519348906713971271212343971310312797436253627831915036677833233874976720328896956097869307387311194947768349767318455239593880464165928925789653796767136647155868779256299361212135730540893129180075045948738342397023624284418338796982144894412384756839507088512164551984315388398129573783501310211978760924123417575215148279489547383618623644203072205806038488697240217842453140746838171553088505651377881986512782493538177978083543579750003982665515349326422155804474302958882717550392934668167895989715473060925818456296278704553503152009453318585023796827686744707865164485725144848509963936489208925721196481669520726222560106145883486447531462075244967596617712188592745301958031248176927974915534281690498861991939816947455442014984031397104153184444491653427569018899347471658670462135051169782591075329937848476940693375170783472920245554715722793670662435119186453227333539273455032553614562253962175187929778083423860700707485117666298657439210981722937091946164309362411803921579483681368633512529764760100470558233504155237204318685737613053483137646074730895761230817120367914821538648750258681808132583074261020643338323879291949277304009959445668988947049814774372678311220347713977980515816956940386271355051046969702082096593530478002285680160665587858338356337465627251997661243417159136434306106725884042129459538901555936990665466901559118672262966572619756763485740988754460603897629337235409230243630547313349933688504355334007548826139015527311462016350734286746928218988279792589541818380711856702543632023985386230001019835896243432073647857459216945204955518993179721443480041162056844659324254319499553081976618941463530354656017906568653692913620417934444851622970042945708422010097719700812999828787960411317895648174978889932455264346067454872780455572189207171018842057128683071597934759225237235666236252586770422955064757900999019188153947845777006484504512326382234175778275170544751663720979158739899575046944927979408479597052718128575098847569277042625390501261356972000511228264157656626096020757454423013066871514043821340006138331790181876849766868452579930238011652509872064493522702969167158730232718849168792989978868884219905594442867659253041989706699499218072414005742372842593399374683039130004710350561472374928171589072133380590238435159386348873662624342573313942646033110616057112510468327730510136172482019154172590105119234328059090247645081905889066586557578492173821335808989105200685760097432774163316463309912645043801587197309665270516314555445563011146451488948022200265277007277122245708827562085835491218557391446060050152520401027938072141205920624298657874108348756421415742423574312249901741102590410671553760129950037617662723640731865954829640279424695404849992257358270713800799976004402167086432164761750848846870714338078523860324262497706870887509289473116792111879320878264535225340160306455736009279941575491067505985757940175606025763380458928645781188011994171704161759727406374234336402142329862612509708736152011944258579958062351460099273807908689005206886347387384634240762198110389857135412993690723383579202189156664092632155646492139815457402664141638676819820071597265961066627960949034525872568886062747691771382591884598933937278927137278823314331181462586810731344846766955328127682765706547966085614333538975960118779916586153734992079287222934427111823984167234807092493797297357622422646222754982475742551480448017409818431721684885185374106568324830922343611587872715213005548788368940097679786321226549361206206496132498045806090418117894885523430577213542901186097188587539617069063650213564786591169815017186731492415309066133040934179196448442120624844997208728451980592681406820838233411753455507789714213842299492173294583907483874924164017842101782131666214434989289209881466973890253267489940035323212538361883591272833466205234958857555453880697161105614062547842838892740011668877964515860118082269134743369437229616434919551112318710371849237357156121453552412281658253340549745962919384809698137005675506611105148728784483569518250009844312031684909771336781120267516294191344988560421271321618848991659803956673221238333736753292811847404816499632303222047761093377519621603263525060069376732107618599585468715776831109218117030657288158881777546048486948144328636024027760361409956180894073453435574983678469582225830786194838380372165691297620337873157596569481213604590977964236422935135124248852809551975191683507846370671851441956266476840298189311652376987763851453957746353571411873111785738935592863142891704322071473141390649910369435831054302523617640371993684462562119117410764120966870864835994045362179860472250812079752454027831508291729009832423184111180228626690950182838216956016342821850878119565641773533271088272285127981774947093015955299245130262712938910929235860452225106904218954721354725532031520996016266784116974019577543130118982435098547923585116212814517064551538082262432677174772468409891883437128845211759888372070820898121043260257046697958236010292898683012236494324984651141662661539793277558557195146098345425965015135389919929956705032889833422826068208854162445186408491586392480373678354376993916460275771940637383871743461179583128346684829824617609250803145221644822132315906880145807169515336489796672133842979834784008698727650016907721411124471883629926393155041688935493128424062668234202748411047551711457413059487745376647903511748691869618170605825949166739171282971592477692401638700570469685813958294073912485795670952323742908537000785617043049779243555206255313522774397797584939141077365642605403255614141842252510164216493130375505556514324556413237923084358132506794569504392698984959098057537948674333627533853522161864174473014330019571352884647701685089171085761579230701321867097369505787932629434950225011845424554927082472433172098427968298805275196453503450073315012232059592041778942018585154482148416282255636280383701528451331973950945035223894187958341488636086348526224428234009777691588992621091544662889592252469123619106252286727032201766301812668689399645289043800799362115670298989464673399817931011620351309079738875433271463270172871823648179858646359267763786810553456077497647910619631639191914219575174306579253292373275329801622455405883679936616053294709894812134706823430488367704874893902292920630619647228538953309899496269431096306031559031155917073625700301806083240851366462357970102931878008848768652565242737922484956245746219173799642570163004820555824632912272253798567085348439894878697439389840749767738197630484025510970178764283319173462579897533250244080998208516600809027016632378905567844503586315195803950573832156385720189239008262965722806657938968442452907486578862167986463436464643414040142640160956049810437399387967717198413461633239279323778027072518615885850303731409269295484823453485245027888571972903941083237869891347209359416654974800483465914407395778008406914025900148918287558031246002803167155671228385676946392359712714307278059701218916423645022989221813281577078123796730274223341349583277689822087272738876751318509506435452773930298786094118275429262124505459390544211977361771642884367301671216787988026043983843775190824954579725265377590695961203621450104160543924333547951718601468402924269919387473265838739279784669539404139191102943118539745201963484676679714110344938353181086341285439528952824070498614060246949931074970155267455740541450576189015621877997453982834986791404849001994093028394286147966868700997135767757960135986771596293534684008212935670565665156326227878793172782406707879550589017299645640387831779486109160109771159818161364181337119958249733104798218554583501107705487527299192733021721780966244715528486199539084986352330079329649687760064044392746703586107495289988215642317787861876573562579478577868182299669367618066027986635516206163192241952421167990307462812466139878863424991603106721429008785419538497334326171100352006738688067018290217286536879464127123926398465104556597331932893832435435504191403421475053184571649471495754061520635967961141282515795931839141457209836788337532905481352234378216449824802806091178230113161544355154501965149653194266536497603872671229814621753695670967934651427564024281250179058303955288355509505655544417033679699738814877269844523135807145527530130082534590296548660445108311028731813598516213018436687928671309574859040552409485033083335570004084049306205122739069768121957704644955453891730077646309294977668773703008236364326839308065101039794773998829783394428060325018358743225023340776609435378631824256480285167758309514346113983986218315102239714464744409212919674535968314590946187780939406103048730253635307164070522220449480927821575847959257720676672018115767695836087442863794698223852472855121482282555452818460945937046786718349123758584636710514473922419886178558026230297548917722071058878698144315974810126334924152064624180835084671928463883479949227490298590455848662909054912920937132898388471927647436568920221055723847634488792069860058039377380773935481498672776415453787377077253966012196727772609112262245953296806601209626800061620931010450882779407475550632150121108735833455870379728256815994498872310490035924024372056279572272536722328722128439092623660800636771651886205123702751528627702334934465064175745290715347313238274096147624290440344853625825980882337308140875970241081070340573379188674181098781983563437684996445521091229229158602339993294464153542402625750501490381317171463762552305169183192766631186514834630291557938255218155935695986204016241796366224892173262341922859365326243190852307974417509848826234577195911997137795221164084779168416792526461096216966544068053884607754960766841841547427939138439192505254123258135030690994882169096666529646997266960986028052750243112005496356512011120799481398827557851854581430813672333449035167392068254912656596056218796979247323526524907015052922334840991937078656309615426022451667666164043218193428128923984551603582064334742085161466597316081857223010724855328194280694377524349466760330432141824076434143818867902275969331444089956516123708240829216690715985142931908901606269236680537711317233916405767343157367681516427548944958301954065515827228240765667059349052152935477911194484936630502009861498025730244272800081966138782375258456793931398355490291467830631908116541468300514679008566796359704156090933605944908144829733171261013456726724416881741601313174330674404514677601879078481401967293868762629674606692386038866484932353578481223604170701587430020278581669067015912698572498205450241220125173002109697921325450319078045699336693418765966334071700335652428002653621959357510373217166609430477911355955764512637137003066952850040603899249272403133457105114296082555244585235336305054131840729622469234595930608004745296179444585324254763332575013511043660699678697084230888950095313797510431299394770887915510803687477660575327017080104196714921040977228715960926622967620977775603391305079330727424568023593915021172366500044145793679868645522996776055207990464642687725843331999762252734692252936936995812256343177289939397407789431824020204316999777666147866649051724902369216453806838668246238750004750697537961924525390885949818076589775394057862675139123021687188135215579023222901026570162498427149263849146900461427818158387918789490665932644654609834234555509463009847958409818931950207855915910062084583771756498542780631498968726776665104481523467143489430146135653620142009590300425506558159256452295720369796883134406162907376127978382838438627145351991483984006688903772683948153257404640349464702839478257563453408598249161258344970890151017557514146609276020141065182985872508422930975152879256987252640882764213600334880280302329736956595959350602281984685101218563625350005179587708005305552157985813355868553485335346791937734837918948053583216784225118599350581424582335724338341804268028589532608830302457647128357331900422330725389663508968156832498169628095696239746298255472015759852293233662222771571733878716453204896351352621988628877556272005024578842815005527473309360831331625832900512935871746157506161541938087933196288731262799659565725246521901164876346831328987889018834898768066259275125160321638791446708341013731176807429447344938741705627162476566057320314591272135059214239611695910124075812638348084622322037631562768340663782039934289720798325636465362036101131576896589441910568948965343363246065855702903872959833327528733188422028362393965613121759046142882064228000602440490426209506465184018429692706939239448260299670524096985914634526955863096864011684543719098986076215716465571599038278877532621047871342627419395760193805998357419671223279092588645370409300213483480907696806926929741451044226988233334636266581720339984639097502949298185579963755329649368891042147318416686901926934708274073281647347457848423866958081660915794409314525246941163889371933969522779005256735130223052891329468640896738582556385395401393337940567295636582468337994585283549958855848403130234684182278548395044184526050149843483613305185760390707819577400566638413522179318437853960001509893073602108712162928777434267242106488824187976094682662842765667640680600998713196606383021502636992029464245847579244531490153304051370156338446821461053204030061231279104395541824507068042892129404662446833365761057363645692474519391191925805541201970845163375679539350037524436221474127587170730729108718241792799706502755712026457987730465859962935435014552105225101944162124004251600767353169081010341161229303825575328502669207317306672008347498329377230945525200997348563779644883166716022360525198909930379442815550220576282105932821668804264871591353624255109699366106225675771346079755195842305423190840855290907238699100461896451680743696828500675491616616844646129253403782338691936952492202910252985117868936113315171162048649167434584752706374351237129856032380405585535034446971108551120894681091138508648316941197214118177323145512124520998896049228924105099845136642793998492447596184177449992023797637420790214850801419723496946535766771905324623887506863286560516440100878990836775215028058418738839941176319644646775845620317282410672964556327294507638729695610247169028941295933569113071073452036688980213257537354394803510359756648503171612694867649615655703695514977748081003770178118423447321801366148566189640166824555460230136374424178896766025532063370506321029045036857253324099758688608531053205180134297292953828591758145892531543344977160373042595885149604509205346414779763486659644710701165042439102726589737531689201916503866329548356173632324125363457366771069289682031106852544299723058185366594304675617701266601107784149292125628124555311769374297427051380132690987650694075869397998501108668485727385600718653001634128039126562614052002783683765720250486036633856154831514584866048673829428068825391564337395595812187587311635929891786911714788356921249315938863814845327377474380289910639378198457367359221113011615493816103112332697053486442789181396861878581928217818791773656019776054867101365675697186703757991212801582182588347745078000579953348002133135194287902315325858710579433934292355651365274311656878650108974925525839240565941069619372895541719893473612622631636972348520633415835827933988164334479858906667378087959940660246857293114891291741376790574789053096737263479808455956611866997461975683895738253935766300267653512246474807416306284305693519758729362274959884039436402451353023644668136702829439336842879659100152686698451496475503681975727136024424602264733029566278608649641811698719493068513423737225645783526834216548512898835192117142013233701767000766036507133455621158135290127933723443920288487697299146998135892893980465182299828251189099903225066878150739367307401690548942477566005147596804330849391557636738540171866760941071712448820388216325053962700707087650668084557942846274312597101595321903340545350124150574220629449970006593186325624544785128360905665942131774402767180419646066702183149761345626720618560275058850444435027110712211496455426477006774815974351510745618660112590624311458867707761656042040431175276268608259284762652637929411494029156858369509178041289865194779640248899270669836747113335036564808638337598138252179591864191257548636675740927317797565215449006837183298205623361473920045932931885685322491902188378262980891696612923691005860901639606658475347965403263511884130494954025796964004952698871325092992220025868816157853650356358580191468052838382234399089662339247468841531549369538923977105807502294235705030868182141979643691610070992259696621153388759976188424631280223415712270929878089599142679531834878461447542590316685851879347750094418620180352570196241541172319367851526050470721453312382879004974165165774536381523559338308485948224728163884223436166925319257622367067862671277995981481628053537867877895043279072825133759391387945676489824641527570461013055602992677533365629498091561018416891410280599394706154377026194235515382906424826338710060244314786400576445501826193809238432282085984643291097922740499715357182024323340967079254838685710456679208951758497679469306638972325446038533440748581317473497064669914469864395429662332185443368474265563404219719195193913452983266603600474014984476705980228150206737420617114226283627852615801733998056799014098212955134379907878131845333914725852892238335197522017365319964328467949630940809433651938251941872100712098114968094857131446176717111277255246702233722199675364428442131896695126627242135296700992286682271629713442439135893015885569293846183389547499805094217572686650422019024731640761530954355412119588087684060691358782404171820563892579708581705074483467346913608366534002804301319354808768926309281531605411680788836622617648939469556247407533080440644639060826267574583878882615699225849708093205092045287412806764908772151292310675112419016134121185179274270137098134975062468086965529569742133120069377496479511994378991358682203363366871111037485932615631896203768128231602311203418215519226848237767405268124148551867337394801731706214776250088652855271747849983059395675556849288635030537909851452905320600196073359127564951091067283157726787508725128796738743262370418218156718945570531890851972399356772827379023689048851441647415840760212019256163521874996627585351142714225369668706233871190149006536295831656326454865377032950224794763925754641945949505409944462594979387389596177567981883276795804768591662056436400667100902454010565398730267616715659131905431695257915775948750550039078807919596894077805213167620554929165578874889459204520390795021868504847953561925741937975807190871949075845416535058344219893380662505260008736222267291986957288331348945092702759580593337416820298515980700902721560137311266189723754752079007392140692188387986398812066347251095097935941660414582616413679838716920124532389983200238249047287300268192052725670525437733059072366535462123412839507785527506191907981894122486487887235031156856053612377838964019225458341277075456750402976067613637496465175647781255590214523700821921923268215305995459134192383566317066018193962881440442178165230589749529839220359766733544641142441968786856930145634795888075774537747977628057774603273475418708330327575098448548004145841642878446590139470533939779666684190956974250053189879248083952760981255657364601344442643339331823935879155608239041018591974266230563707520110850641242348332185552879706358288159518753466172524502757318289688314606580859525026675310421303262433679214071742652043933322182973018658185809349763927889371109575476845003201849554961561696669065688995522800848007994055885956413279675731655472253664740615890560208896968392780734595251570373919752396285607750189886586991413035052611637071010011694717444269280183188257617213801727692640292849433166781169871535068495567999485241356594061411502425547982254606198281402963286208048475909065622023463185285906529084730594085698377917236540563480365648474273069065616508916227609439812789065013359889119502561306270265527551080556729767194639081512412435042574751403785453225828579441802078955050454718605003566848989236039083019550937631592504183536911976461554587505258880156995178248828924181112519706233484081076647555831085198784866135931713970875218305698495677664903086945300145851389579000233251905588984644241455329000492367069685846721889928718056423686576903978661361722378072732716810389658334637818195385039490400129477597070198879680806816191671827980167916022033148420412766024152881276814751253339931336573700313773711918653135159750621277367971946449447009971602741536341123959982550112629497965631417199778596971692284598997190510603235761904497586309797443188131504348015683519212723060307782146503384073265095211805981811098024004566321276299151998272001481208791371141120207228406880338919712607322225984845505880062423332893307081294776470445049417151564482155163210725620749827625344594801748425619166184262575108041795592355039819129045769296266193006305718508220911086879487667634294135726215203160232587044288596533457737564564892929862239695484639152475845054257332457576447589612356726442205849531911556581146638229796668077402055978204202223247361003933156761916270342630370378216498969153102356101502728349905116880286592806415310296688877660483528924965910921535179573245741608716347944060818298500735188453541955433991423911024020421465008166295445477358490234599335702601797904658325513907656564478407366802905009778269195394147006739138130061476746581964649971688452024630297203605903501125943302484399774777755929027160749435984300551667067271125854889536473076589904719785414861980369239732554371851751931579654102943558253516113821764359565974047700431963342951859066160012180109248424869043763218199392183238572183454495433734257654158304009394126900647424696947295698682719475219725492795730113982216729443575972027800310566935740264646765652635410392237197318144880485098041355857724657667416961505867266065440928175656709240288542253412410164347705025350442795851959511340458810701283251354434660597135395916450298068034442261784898496353642680802190119080351176381520046750585817370614078999740377570984487731586162742308149031869966234633027351340695799320312073076315677018378066909319000734993429193925845634856133332303834978349325314286321678172511342896521781110470445640982880333549707553133209885498175521372006369254527695067941803875834217256976149932442390794033044328818524623724364560502356958991219941336249596727940363004315518633941096902341450310042569106890812527875489765633121258210870846640750947384025285049346736839665716038259433445282588987004128585190839956516336508433585998919000597635814321890822308322249655753949799464569961184132506338170938349698720228808645322244979076185111146910165372237112737876667337426276582562933561722564388658445971810794399063190083296995909567488501960600323790877266111724187695225981436098364514623737764546990012776967402945157189026008189646350867580444923468512655392943081803482434260139152148803122424133264467456769985044647817977987309968063778711407003921829742149836570535320390394904614366459890783285969638536608501192411307612806278634194975400970124882243938688667380844119190209382833455937653558976456612069662380824563425838087453780572866551711704691179305892349331377968102794534415837655578940141682537354904960684457337521516101678581469125828097707812593579921205425799276897947134951848150463719498247724831884598392559626284335430762980124779288654268546837730684721560233730635051413667325432070901071560007967558709024891925887773828538666970973707044214100752859821196065757604396502602057653962510263558940603885810387432241265763343132062877753918804475919970942680619753827564633012003574834253397270380310183327768546027988926836419882813921941345294723831789392272222387149377916905992693890877426554065843998574402820990313576957360058363108928397778067939231201277024111651838014833153582432784174785931184080630113910317168301347938968476028105204025039071393757293266879229614764605265838366731084498803882740829821373960598890147828632947069382956518993872355601780543728599492235539661497596183095917155853926694767138040537216312085359354760735495743639245859770076896431321092707944182158544956293335973070412299262979417341229434733894280101818540436256077920793270905305210604518364318057592534499522065638098291514390796193752382260407072581313877056262997149184327191965797621953051202578448882880574296460548348914352106014728095623846724283965580821590863510828603427183182256321624549637987280391225627823853793006127522538006533734927146098221694316352002396998670752543187059625990071190166807562684011106962255325312146011893817550072269136139911713367146949127412643471559076138176254418002230459410330848884106767409826567845643347782494273386776091112533175527926316618794673767237816654976885444383098458094668882978965542532614124911251074814760173217068560302356940325237203049780754915632888957960968892075284419831417987344283147528252648880934332546728962602440566285270128124200318507056178838749735629187592803445408527202834138353100481750039462178348584250682590934851913794100455889328223794838929604385237038737380371238336639256527424138367818554456063121645402125655883340391693868130530911271965091167662389842070433654944960172506889100075957665275558567636508431240616429541706342619582479730832232465386188237121585500365246730843595036675374179636492859772413808122812858830087373025514102237163449017212927057104771621258356729981820625711191785948630649880678730886888401226194384056970080851146734015707058891729011762583047248940309799337692505480848172662899684665427204018593096722965483193284046588647415142853371738254877233320398961508204366162589965883088829121206876011209056972274879030888541152493068106919729909589844004307394644990023608824855329462376603039599006166554688141488753033657875504006893521513891009875255588421882432402491584953045807740060050104418547197206920773679256466194923162049205185512415009218539799658288056507918948063822062355557451061570023471276348122099220224452534457159610173218511639698135083081278691666349481805446042271169547954074153102711268258633176876899893734076426186423663634033764469754805217226618451297001950331422028707552194436051064809020015584517370917624645067510553463802355096389389410460006085243046104811530552455116128062467568657823465810786263036168510322017106042985103729192625058053521836840949746517046236068611466611142023954423515813206126761109593939347943151101909252464364881997974269231816635403465499726766104382546457470239773932425183266125891590705068402526451992992288089221140596600616271793416523401935447742721660147578772367712975271121476706436968224150084613481230969680636304332378392137686905705117468220752680519591526985515888142725456335098767154674136565303181886598889920797103479119916817344406802666832085877688238429504236290717328572106459541292016221902146197079082970888839152391188346759736961877943612588802065505635358846936370007682127956581979012891472821074829876565502095479973700225914447587881773778553908739056447156855514169520929124165240077954962269048786926878015648446114256339390281407285333501127217723382856614854321138094258336047477196193923672415842036447313711428885634092575573914041242954126422524709559116584329551723014793975493616554714368922866430668327482119282190637451647618915684146138236933464340265661111619824094270985582756256384962618758538649051440998788367959737350109659860333207747511844274537400547024773806845263591623932045388702542584434052018344182031541780141450284525777209218278983862565648955001316050410713569284772991195925044409043371789711324558635761559979010008703853474723432541089181377867949917746395932341546019060751383240522182916269945829890011089755773898905902810184970541814530833694407164376074825554608583255492117504452472486448858750384098376484366621615118688642505634768942092970457919715298560982733715305963804453925522760131122302053600918576620919822075293083362205119202081142122764948017162924042542983002439074996615472232143240211200194779459344260652077268579651914713708586276122719271135002709634864102071501227418073349969062879161781487107555308456841460227938446576867619748632307541223315435093284552789316102943382634742649119558176171685808083664035997738567733029980693973940677564309386540674017792125631152741725114784361154484693332215967353939436234729217398162415728597646661172989856455713633943629165685015275843948158934836383594604104613447526595926351053008288968338533573093357289137149420175934753302306501421565429212899299738487829284118916495631995853446825415051251908215277104152754888522813394184245087225398632943871486485475544477921282671168498957868443051677719994596533466265088471819928053680442200797161822383978662521759116934431216316798794362101831015856171345870967478914650427412613696581625087444740925567180203792848388816452844307820503947326366286680737520552533188609528751574342881256186737561378364913840097398439855204320108106933413036395795995044067619383210752002116541799534836296873454815058010318577719591137044206641210639159918409487858460757076290152001235507896472217516581001066678482346992986979068798887136353578781440736585148101574094138986199045487052347060640626855957916524317912559216212454444359619250780177500326147566637028246880434313154731713695210161689507322005075117147990142103881725924709249326800010831776766187978929996408749435703168459619363874880552702461225105513456089255345117486454129855826439790152906428556086051267120817187216676655431367465905753289836633011315571412254268525461032941403769558780936419325028219166142892861591289424207875333406100232460504406082496333598902843952176996269604945270641982250986050464129015935743421935568128961029508884730943286622507655350216718608193038181726096551510814121244524372206256282404349119907106514749386849254001588992150689723665604397731585970252331075468425139876039545252533633673017574200262563955326817720985887314868413587291010179452595999495956951657390820593220034672269214321892236670102626337060905599398382689228061751473396500448030592064660996112305462620788954511276917300831182486380174912582526646822140088048273286337560425818258584029798672063185067978597708043088342519410924898119434833389965927021255800112426465179958631920260036742559885409650535816582504795857446853872456593358976790121495541944448407513406201797965020248848725634806407161005657474750232331346818309265154578555239500668939355260532334181399386997625598483071035572877228654306800622668535361390932073947201075896185190251915703951888422961134252388540268240933929138443076863293426598800841998463930955267182052422195046395252298601579484797581601365557902723441104048655967731649657372144357566627948523552488199936154165482445466101055956674762264189735212455208395107614654741860304949656475697518455054825981156319044658915778148341877409332059188742823313245734656278019170282373725963907395144278238326020157167135324818868430402561850231727424600245432126446174356128384865462713008287773758347182819219456735328999922007224759391448412459174444151738424071621752132967080437519177568764052997960304001961599080312986624943778692112370560300886439965073270563622958707278022469237154532988794543656828221410429295159554309437022925934659007095510086141476568923905047592072639800154386503616108421454836294076155150901171726391535163676057224678585577706638405903551576836729261209014546086326239101217079086112518799473758019552159902920988358180861756067922551129167703627137095806416880140130449264880833874424939484962055918825531352525133413202839945618952176020944703527722249282915005819171756303535583586906968221110422463322593888017336744232637679945061140898441554222272242621120811116020695333102712415482472097990742895871289441166697145795172141601132939207611981511981262383704078681438392897861683172959855951394494124594942827922627531226950355354507251052741759250499695408157295788135867742939332787590949069419254645215369722775880310248838589477606722272867346929650908017372791968745091729911376745375136988515402545187944679032912918568214062220573195695883702908904195908033489288098128192687504983511438583851624170379648330148555338249228687198646963454423082747242273609971900290729626412498830961088710666269254914979909160899105616482599125350341247929780622371439879040244037356392963155779619515838880736113076735180196470187359461395987557888818581856645447771020054275511477126405878841890976268495210253406533506787106574446054608415952189499692535900506536528440812994729354246304597566673282045482322722055153473267785573872902282868665440636471863790329623909647043688855608776198597464810307023574164565049892686990591951318758914871033231329080771826233576796677688506772107436202710977464825641770295296551175715068760141659431377850746436785766778363975855218870161542283154249163590095190867959873092431502059194720166178249178905958655168475412724305283956829146963980922527779736667995316844643588520502617231790458088131071572227057198432633382087940620590824146750357131923665487695609158192603306365207833016926220677875390876324451233035315462130094506845189808646162663550354483333642053669719849044652621096804217684447020114464525386921516568008163846857912396923473533660949200190753343064478488211706894037343917082546672729135315934163500373381313268443902173673196475763123534385747134518345263792520625008735301382666326950737951522993890645917884337181332568729557568243228825183634337923704689101385855004498324118688410919690437401063834875041872224349337197629532332940113268520930215553442870969622780039889450256031697098956641148420107824191005025519756173991277042321819909873174341271427527476549795155311142489688052778158430986871052173408771307330517380401688617238743347265192564051109869161409142367745007291141637886980587697316635258996583300643626635638044574081867770295617054575510140472980416250494851728604368365938965797287910299965623571860587685265069656972004208899801976613402937172709634508998285569044075867097520979192820638273823078551369678785492189063805860068271273888446152572864664727318117901545992395755670542662835656813161012690084410545516724932828351996335366964314053064718846241037610841070698843077395473349264669286568986596807044996589882330098669023712040163621724647012445274155468939607575414584423428419992912407236901413513992541896381861092848296681614802434459304956092526075109032449382977221008099758154042517844339300612187274514390550148793381105386968161491100293706056764139272873081637825851022363405940024682477072829915510572661866089908973850297013274370807253801321390690540779922163143139972171587594163758045055275236372913673082778972994909893072251392039201084129052376750557690016959383667434454823466246309342222317070915220969355008214059507454519488155759465426973337530104056584227071156149803225578117033503830039225664850206708213670352169991621952897800575897758868341676134441304185254797863043362375078660067306631481809396361516739716619267898020291695519662121087958038869536085655234427365837291742200052301036558882091712312435393421240893933740184407812887411350411589421760186508426360632937496642418208528502984060136141216327824111717706035200053399006517138763347677249786182335465342080170263025064835367508953833470536154255415494145102839469466935370017992037478609708305252362424126835962573804965906340841445598159313627019107771536312273958946689082510768322344885841224412470328258142860134095983000310222625956688506270434613758270284296792976812024440486648936513129159802036025712392222934243518192916579098823171395922450494716825345428882750182682812759125761779611269204988970890841878544523865952303652706810200916909136549951207328309536034192180330063201049419082423214700870729882800071207914337419470008116152758967806633527042594653857415784714792619684319553264513438014643022294181037738120612733357307601106966043769454317113596509028011568449852507930750497730347190124472143838190796248863300664554432634566351238739003381416650976577802163873437526702958918174602856159233848012758460890611999420802403019312414703331415695543992810074491524203896692411478973416427720633311236950801983905384243473538128869473122043126821416066249860342298031526499476268114561693813465936581993518450117662254629464037148519681137527337440694653714662619431890488984025705372958312200503090079411513097230283926573192980955585807631843027983727644462387532844011988731628153181922818409338197436788151813761929041906552531635715383305876178639227978634884474365621887531433169664263085794606629631312827097954041726423837023844589483142598252071907392582703032233323177884786795418980225844232335767872472686064245992287172056994347491889383972648091499484137261040427348728484362305593405327169905049220899788214947733804380071395441390090728459001444034378962101696922145644370430581926686092355905774859071553172975897991676355374518779856667578673293264661657909890920905750242621883264136419768601941479866539554577472767743523663208124449283213866721350613038889038191655737468056510820160472562805451491943029056360159678365132250010889672176318241182675817212410708620989426686509670614898586972784733037415800460105071536764458223745817309096915023133604448364772557759084342359483613590834897238347146321415136721032278396750948576029800598288208073254090922659214344684203726188481050566304135547282974957393249137100622152241911120678525786739195355087833851252864442212053550011593839784963053982661501127083480425185627695058776739098121462746845632689015373553030783315710087885826371887086670269599132325567310754772283962056464447353713794999678803762557657346922914492483236546767506767739115334385582405083267283995752848225384660884261731819579887447774068589967366481220395848367971446014745279087103220977883455685378575214626347280580347124277660947560635031705986363664625610931482792136453417150918427388738020887047663978082503005839956312044567083771010665704993038202067673086673286335170607494218447604046638863056882841862672454820920518962141375150302170509838876632759715214499262639834682296813431070517146708582634489888726332012440545918623342945793108298595245549086615778354448341202168393657820704999462358802394496089032620535007754555612496741932456155496258180525770810740000857670655614217900073378411678253830070393799191631422311777632155192374919111848850966370590543638653685165054150470002780311188029102382514923521043742944059317962292563145159689313307009746988833516338722682386181255984399757790322050121299905588179193901775058759718893099844729740668669801020953230391207163485363317236933029873621219339588304154699900449301868445662599391705290732202222616222216976682243892467700501556301549067898945134821241800372042660046082476202174001269586770705294835497430965212692521000209395989030856831336077175151105216899522000376372595245510580180882868438687761155559917730156524140951524809571621753044221678720199156381664671938002196611514274900936600572897644706622087224404608232220227966890858642832109500622601942501176873143731164641135120538510903572366140562250303616388714668758996695412469439412214090556793189900147020794905355962027720355577382376935556894296710239676694132055129625826376196323923307388491207624184615967644490220287882247358319674481815349258734776481667731730561688526479158854459463805885919538262647610297026713555349092782069940794606249705658285802266159436259794846097490618085538592206494350203090471520432776090370951223346286179149636619933663684854874848192040855078199616146701278775713485609789320468951312549202782734580022294235951401333907794662340767233997018282554126434211103144110387767765681108638437286415660990383759534134357149858676065702767190507954956986437097173640889709148918803057962675267223791850086789677633323291166039760225885864703296162736885895052359711102450253196880575946318378091109443074150848947703277712879873480144951116508730971220933222979361304422729014188041051787529114873470586221018583405554713244349426227075568877848021982119710458516247422776118319061152842873707087155706660053243063764192178751767822098223619660423736798102662711247708272605104876281776623814211558257748620953075100916658496716106657027494304253397343620841441008668174977897290735316189616435311099876029362777681932599369279883716220754579455887532010320440506585832497196628723610130341398166531108529882855104031306706382585874042895477997439269446937657343678492918109544638400032898724483985077503374987410657217681083887976462427076399397908486640323824539274300261628101031654526580954044394585162972103924508465036828037013786999167847210684601579647666334853945467024248226146625217522541091258276846566474757741350051521876771262227427123929055861147734920938175446554950672827014560835604163540198439282441091208264480500958930050209188431386210713765365747593797991979387734197126404894968684993510381723113315611833950890817621659698431247656699108659577470397795475621706235496252438349354385827687813717501627856172551173067199695604086749608641398810468434997840863861302527544696922215873181998724609021431081554340921270607428953496975647780634182912596930210970348834583665097311146858200792116150737267491388134096894311736152270856136918421863878579067059306338026712211545123754228912179036477405834562248404540843597292859516942746325096926802060172758423205620879558240243543954264042104131058891880620105384689170510284568820647607888219189104265248609853462299205812886184579589437336185978956973668298333221745265226774378438867733643345107810595824787442413850917495708662244398358812120374883018034927166157393687296253591177331792107610474159193068069400828738070680688413384128593803509517019677141904085282379919110063142921861811614949083202015316709967424556977430048840767541283956119715488615689508365294098577319959610065588321667091294277023650667263045435360959752744240699422315354061014191447203634094231091655399693921471521527419660859556787180846943619935974735693313555194236506936339519012292898991473581560301491970938589291188622908290553080655438276549098844591029881243687874231482783102318275954920707032739747155772482932112899944892719948719807187357855262514504347406019190991917043009320844912227072604477456985902392146911681990187615966873991334859346947922495694251812223283378766975490330099760339301782811595079732427999626788699076988268148884578419629661999950619125271679914050133464826262750274827399614082440894152546814173119186129482562734611838143852179938632826802620488527481623739426932795685523649973087997166079002788806441401293692312396754078613989938353299055439095605676826612628267027171212881113094951280381283840097035215523787420493597199743094271931170569886287128214219971578886900282483009307902732844391131927915405046602033315051960522540680874406689670511474980469309891790310218856553646812797692054243195338314010899441798940957990215386417756340423937653973716907630958302951549098903118445817001041120176438995234483876779537498004461775666807447751281314623918797799167623852666767909731262443182419253276995074281095584331118735282326652488680802999726813016333972467774696865902829385039955974548471501813005493390170217358094286741910708864668808751782105014251650524436022811972285270629546732310349013335419349422101899855338659332648794753910076311034005587055569961084690855210567255199431708985855595844445753549346137873490092150307545938486943929259870017501200693478891588101118937780552380987060510957238327888941039512379392604139851027288520713664547192012382206363937244256424027830542215831995686084443296088856090783637574034722539652914653138352811383952976664029389473859243789820170922964646288778818821687500039971099237236205174729354211216888273306280094549004670676931182008368851879371587540710105014055144945069922419631972660997044631648302153201101652021417512074269213431769337148038070524970835043192822350154234996226486797010705701574382087847337103311387409128265167891558638136374404758447936704017581590729982357391795495369173200439543075702081899685555779503848449147708947878546451578052981130982384043339838236041276625907409339848956144176309230915583854710708977182939094436197138653294291776802646517940233170230284933107050637976059575437768320370484313778312680113300322757066449306946790623627364172727613722386250726999951295465568858320799913366849983619955810142192200040377350684185972936157136718393858890963634057514007057887974165083818503562591451748227715976725641035234237294800954164852460995486539867347108658974701354026548715704417571012531190844531392181739229146176640536449011229845544107960075630554707283850320141372672443740573833958288013735806704102538916659294024992154774743521702043215769495106835907564864605907446018010633083625775881537339224190564128143214462105022578889911848664763896554377880797186092406270978918011898014751853596146505853877393724248996670125675557351503125538419440741528198090757109589326114985773648292659690796078487080931090635174599397610934231038074993877274802007587687067733636051737590473308099196290108892278506793663985312952749623804370416995179526851804413285502314008927393175594756712548209527628189283460760035915974161559535059558493822327957244602987255716904374430852103720215374944264937031938074437879456273553089773393373200414588338042429009816462545926847326270454059699902945440483320390849556204364050410657919697236375645754077339131464919022973430393274656453003656244823392273271915364269190053128731441526395719574260772302858707126987016736149066742710364339832549965625333809052866585033281060856218488107833086396049910056133332737110926960658069133227434272254046500141465353571215537420379468224384123525535918789295205277189955206631016720459754439865224682743061566081977878785821307839676195324409067984349503227507767092973937388163771123615075073990380485418182337561553694415263027949870862533206121303652685341208250845094624069258469975336656241139840501349739354262667177689240654336828364819977247429619304799119696540782534479036372624087997888899038650115925025184919072564558869488277893014972195894744241141701594212503671788618180653583318156891578391968330791912916960693972447350491921332983129600117245261671921770244104685051386445177337385381160673772828020878317598176384023561092776515392019887869990109846102273733266415522034491579691671577485270161625120899749105915456958630886310372894641734780962886476520769640234278555234204772454034126215502772454647546074098931357604286692254850936456963451200393711995048080858554381891682208602120492285475094261798985512258338842158601519384094956471571548579573025739649208152597596386467698190212549470002563218270301905302209447487578568986025001828863927337943531390848591687941481829532854725606518686035240032762545842003996269497602710542700543947110359215865768700907999191615198886361890805542148672498800220565728590890625791410951979048322283057489882062599455680230534379439959445627922305397962988868894119333609829258466832161507917918434903312851410197493237208362343352556588773849944382809926088638974519915039413561204337595347330997751934322267924842229076231644060916568697295137635556252459710309058711651335222085473984008748849306059277421665468853628966861378860588482953123841114410675498864609510242859917015634993130305672556764178410072757772270729920670105735463365402094119530642114687041730976616232890066638511610950550465949224902811372355207124056156523060200751344745131439743852339685816029767604107225149957200707512210068485861384167526924842613010345906055023885775007634507705202732809456068335887945728846332597315080360693835197250463912526618172136806297794337242710113403755683522761023856455316083040772552303528861072639525324794392627527360525673785682993931863517453404356436528270916134237826400273008370953614500624382490820625255820795813235159819369052879337604946601853156334064076840766539994463124953431873857579140179483788836845940356449708880167519162171879613046440146265112115662388658130124760038488358589104534847170650291151417063520167319923834590249222274551232329050464990806540330178418787559695850849299122717622001715653243399596734494624777399931324547549621215480204676208873755392749791263375832943613139509999040750130662282630256539607573300099830697192995485025287885479122961985420848866265770198555811131490476201893799281070988477540863095208331106610495265467366505319309855019468881368829773236506487572810448763127706579973944461916073124990120083455364970120619846151029323573647786429684941008540762190816978422010033436950588756110485770673634332492509592694434418435676841244283134265307952840374025204252970185626416385379589759544766289280765836988699882421042371338926330188443207034880754597502925308271995882346540225702158030821130530960821853368182958387650472931781757277147046293670684700770050629649260260605723960526115921703873279804015859323289859532685037843788944824631573759460932932397571608818152965119582510233119392930629586798861140566086122213327606823439050541132715269447945623091889820808155408458641687973649468839578781481435101267734252454657265800556467280042221210977623791382042314104761871917330822308240972485265629135634932605635517643019148076068613156736908831850606853074457586071357198677739638571446537127012180206225561047925917841919675526785053828321321514801815676076710904229693504626022836059158437840643989815939960569796466673071127003899685564435069230383971382221816949644600734782796248411089868010291018205262845948363397996609117454944482353466820382452058667415164744502176034127352664463055785197520165977339031189648076905775609035987775325962619578408082402753455820780599696718883754961018214389056343752171506738276799903192283691221381810458392686640792662529112862709271938108845974071115439066962790093042173865114749697863427023252487020830511143067172263107427505913343313808757675683256042176032984688705737032746485460725273355989672337059432687109849328621237192598430122199713725838538011864228567342299578676052179698710660772581744999634917261449832152135040734986860975880207896434065125890182540544987588962551494799218570537797653174017087157101688669258586258798752245708817408017099688107024908649598868733772970969170949999873009058986634797313133211687646586162541429529389421220365070551183538987660190831940874231039401348260797998647505517647848747085020634947001037484367754647236758548411218944809904538803798397108414478719063725135089028580059698205118349563781115189964526591957556498603356603764466226978303138100438911660866948302632071079840248574131803193853225806284058727909083105322238820565689140922631133407747075947055667446646993137408538418831875151061904433664916994087001470164077591474825248519501991596867541190572617066078219965471651498135397355351211984977468776500607590482219503897227101576885056955897739907669779812910294301441112522918980188059573309528879102565254944775154749358423496334647742203973843993614757234241301215219533251452233699635453976641941502034393257378476038503729487110073336822146509772819933420593559256992926938661328417844742035925952387349417201409988898212521991247794030782473949660108904989230155363615289152774150696085230329166685481510044175589630084120082568956387264039688698334946677158939050666179832635538341995277723714634436087430821905054481749590331573414172350548393978681063301821527673981978391197917402927968944119759553833626527746981854981344234363696377480078789264524174315327315433031847607286157064403858781537303424584598503862982016782589320909240412554833015274272350311704807176047057036515838331099288669492423921654691172852043685045564472366599626956247999824782848964534917728639636766819913816840463587913879023580080978029538777228305520115311913839712081489775819915727573174601899076565018064626197853769756736160152260191821825482899020858297696046500469791082880937851777891453615808463770530429739403450764890633279644039420864787586283464538579245097897131852215919549430649256387013596048604549387971147621240096167257230366674657845732530805773207952754626367942208026136499616078517823338602385435933506447664350327302019044481273950562998264307420422088234976675233803011084392616596709318897871979676392348531531718371999544788750232723324722430846598939457212489928657316861282868574597077913814236208888197390412438788958855340858205609325078764048496572576433299217113567070057730537666153758497940047926102026091586446081713169578531575919935697245956573579176273808611457228116059516589486416352719387806813905113405545336769152314070558686100917971702424799390108378804424124401146924403336502976520335335808392303104158053788156318707789672613934193402432603693647204134320599645962617828284400019327228806837229941364515149888680092882934092620805330453929727193691119035245130943616818921033129398078778233266290481266073612564748351960314112940187432390374881040071327286390381033762113032140724363725589436901066557112099774383868166311766817600404691718863846222857145856681425744913478333029476049033040596360890783067566549984081060825087772070198418385467178419627207917335792896277276493730816642243245948192179482521531641268534411402320439086850163959864807883551637291806795152760481418596223007603184733205034539542528058564350548714743693399352334376486042420805880515055218083226826586682774770429723521421862584105151199439742854084711458994461516651939977421725070522800480685763993296798065065632796733068167723212094728045995564427575061415969711220219017831835727157795634248293237641821830459489829451489258986880111694212315320345531474483175176615008917456421064499623541226170014072470739245692683330478463983876745466634784508099018256373018163115039357596253406597410437685455672054743675960985600694861347584601405374594360413643027115682339225511743472334829106165508473546803458971448846009215629498343473641832205246992286549293185681161171892446667973740965826059094445571609337809892125435846127367369465362777894760961236891160967171297422142456119533808136785945090776102239247384944093107246544842166144801137349002355256221551223995140973098151032434356090618226553345093256397830160210859650976221195611573461644131062247523652408076948025465206576621202315777101001314233386894541443033205818362465659474733247062568365938079897775389024166245023338567599501178678865414793335015072254807621363934529809208348163659362021613986985500413006786704339138666376391562031601819077207763881773891370915837520128579817465685304000646998521575717574282135899904698523705251313403996150042978386669436239597450612437897959997490887499782400373354307795140481078376960983681958394370142803433151971186250558838441711189831216070493120324301629619553428761179393083244154076306092590475494586445930710878875408372770440601250928161284846284055045201292119925960440450017766397077416784302123330539427759821857411268678224605605392261192863889528984219677746151216723441762256425446573811179250704308202575581126553212190435181601020734733113081081248090249913778906090771063780486596592775126587312563395864249064026851765137920959803548159806808993591911572498903570118636475703658364311741802799427518591681936724698747301259794740301866853127063908427934366488137521624930798616536392152158058957912413257779930437516148919285477820831529696264437120306285648040560549050411087515927974088885977868318741136843716196663111103711689643245729020730843013470282197107297903694704065977462213117877886387140333590643710975236990358364896242714351099386264528837081690303866345553751457425047138685157310804439455280769183822611347901016580967134643137131173056852934336948442193723102192486230667261608571475110427075036319312166814976208644067390957829832404049761640335330953342000869030451568500522314488678340593094000636408307124449665949185482502276177534383917354210857119058243023989814311968599234365503086743607745114291992661095243195142696715867472334256173630614654938807714603590929611314360138870794342207687717319746639305029925680476788627036564655732442494770049459403243732776804563478945929688761393788545840607356422192046957920507542468617375360292953090981600677783254516403683321613723003382018110781122914585555819834596233562357715142630286212216193972227890324296467428525855000158502997596651231562702589470783276929422781334798916979361688622539195957577615792075549023596836066856085052707345420926599229441280861675602503629827006981050168677446096657829765501539508665377763307831026453629027259609009872974474204924242865451419766163153908856173901627073620026208422882968431930559329363329670412142232762505442479032453747278519058037034928565481093460526530397336223520689463805561420819354418949606424374478079217447337541261833931193205514532646033050429445532919578247692898748200792718134533279243233909412957447158612584873635529624031057035383204218060435360555776866461424909663626658950592946020550742556292978743681413894633842343807356550150467355449007919990805547386694571198727903039022705159814095500428361965501099465491314971187769855671911828141822897196341971295445905170642743219706488327877838033168745700676875830822706796206919768489973104049010168967437843184647390409673959380137142584325547062645874494430514770217251187191804884860575427943867459965333891054901304837319671927842934267724025403806214004267039265210140775888267584529383758171670309086881701299558729696497566713180183954213928435851667445021039066491679185885760271332099375735784501590551614338040719104978356650188058846124244316962490414926367697088072149933924594698763638212383877924181457175080311366605049745248183435636440770754078082390091316765355734174602202129011979902295335973910431651596133993147979294530430798398716787985240486477081276213895712965182386643506250697784617440435648223189823708221470736386670628877027052260289183238400619620584659061225105104941651445333834979803009848390024762746022335229937802368137081021659454204954959773364345369695850348037787912112345661216806341608439039771139099658193783838415089485616557533514673778566500915039738341225456231786572593359015297170424564030031835896265828754261870052279653945479859903346000217229825050691054293280017131340457602980594171874018680718056579086191936603670844367407923155681078649469011951925617948583913172297344957255978827563782603201137499651826378725754799637290366768454937142422350689210433873242631239422500841777682338036043239107100558085958588946677853251155227781570299342526747756212491780176096710276129619790430082002979577450258648401496781346280161147607462684520863452243463028493150677810512650790348538461236560223522266071480989347111409361380716591070246421433808635844786366994025027066662351750460529022386210228165731238254967423742805558697083536677176197875018863495709490915459700226505690908605528902375000561860891666298527229218026027332804449601852269249172390430638265209382740541291996602940974365613953528432424920778139379598363775825061740916356618159558839250093303864748070451025113597875716937584677830967922914098294173582776087995349480551841643671379762519061973550938546897553948608254562448894370266478543158578207002897057210194653839551941098716253486423564406439090742201045013789682862445153473502297860044617600545962309349819016346503203812450042048463650269020875802376353084174885434506533485293283110464102340599000882273966356341493668959126858158985409574608642705129895463359198261397199583605594437639263449314032430468850311234507088598929967117444801006311005085869505223794903818232547249921091455901623147323853144319328519363437851451957195701102763746378005041676476567340216635500690996968513541020391156432258544510379640192839762413485758195745943564350142054484871857506132755430591169454487242101011069045886705546890285155554623923847452293019522012897834802350141700001180532106193326687853034670693471348022709768972567376071398060675270216751493407512458777229876932778331051574892338191714124611019314303625543235642539058047959798175131139145517335277518201695752522733529923148767500743840504119423961523649137157646125374501705999853779382385890881728393337987016840671491433222157881566368930650889740818135680616686705684015528269574363888679507903815604078673396829884908819560205630031598743858683691217511409203673927851863195353505812217256116971028998868161335231610898214891681176823043655739061652214651824576495088707358075322606699798950235987452052880624272493210847361429843810035422726639817484030879671725476264876947554805209493154370781271684230613746641397758450553126253561439968224538323665811164398377755355317325764168983633047040048878235903241441707186023890144497834523536567669287764058529201480024050476632382942852858634837543470981139870535782325939610655741600987179656769517748074425933589745446425383992209154594399498455217008725132346717500716770392866428046974395397310370274785517792855136850295848272868232914160384958319329870188095088059309037328390594318223970015362011755598797414931597710984789274771320593104850576141407552328383849024695771511701961970332650204057078086033351426292326038065207252922730464417032484875607681288362296376639899189488539512727026228743802811124039853835430249966502047266797470844496902594082538081581780557501386870658775101917394232384650743494072462481945594110078832030520742897719413873894835697168630457304823857986295892152101255411652682425028069692933117392111453461726389279216509215186712457209478770455154072191711035198267378998634533551028256008068217170385609242689821025334318784660701413419533287114699250079484946208527394718822633617628743487069494446120466731215246297305566877815707433748757218766307940839897411152996558638340816368853299088911990347504050965659514603476290899927643640006983872370883277853670902551642969960785235602047261029025394434579258871800086593902578530442207304552802447304099972456225961298721049777612718355363743840928510498274105709879025785575460652128239766723028782280871093341269704044464116141869101564668320288441083976899426875362324366548115014139721422239097334153519838399650896936578612094241552092209410979107112298371190690421945399432481598846260791042319317181367944677599149417966382542310984567503193689574983789570223060305687897075323640977936652191800334781560334587773026414525986126730926050271095868741621680048874478974607638250863786023199712153066777519552080975567659238994813026788839130532995740899866158211880332870042948478692397468248813915382061449638545324666875032356463986061819434877454504783431940908293439164114609380705815353780397650369649197729917102243276259301694263637083756805608545947126980211577246629089930003829195158734600247927072727506308681014110470314007270634225814243544838879607890560836840463852204167975280163083667257596882271556188912446412762947824350474910103402001664771175926040645597820094016666176739408416526487857644389037896870233561401649981566587618223365268926927762096419478016871995748985750718508345488297756494789795904916738811965093808690027983897010015229143478548875512712166688309359797027368778058982168363154107718205408192286546758843921394511896068269650455373944939986107723274993835122228912153741179713661568577112930177680936317583068509461978684678503847094085356205917956344579461509313914280540055133634330062644637715201912927915953870889153811937614666704060785510330070739721704145402912482968075303638909022689970909104722663365441245492328121030398251534759482366792279734813296685636767872156269739673752684534877795035403247109509082266369518427640818710908042886887536599306836432401358041162421034611659619730747901791966496148573680759730527746681042818544175216600624130991021744405160610043028236274642452738043397194075633070103344867050598452275439002243749808079396131977828911139060029588184771176642962527795759479479829149023358549434617092366996142104607670869859094751925039792845593690863534096705800693761538784123678656627917564254636977596721913912687459093528788475245591415481618063934698642261262656324612945996637575825574681197023015350711786996914742958466709197598384056666510445783239228382719085113167698353887268866139547114674107754688207316961757105376217550715626173089052109421489446869114892223978964936897050870166966248100829801499488383353109170694150431029143689381547956792158491338090180566824629386355606948372861153070885151333671635238610746317101485131905485961593512587771143237039962246425301582921232062708979283954334865006722499457438504907189558440918709156726693948272089566782447046214793963716149273001511582957618142343287188768656072342843258167153336603733706998242316167402033698999640975281308806515574225614635097175828224189144052196726900175461970616368598908970941226891033080085924500774997392840530550882004637470203310916070724732085690488512540609030538919479454559262992128406872123358074865360492136962885046204203588495558250243035676092207313089246018474072675432351754154510273954270391570063064717585085378664303894555390877531369861803841800476674480402524034965283848829279643906512012451382679746547435733676410638969644338426803151144352739562733288886068985046407522690807422522562220105557917865056743001558642640000787592240966403876553394364153791870852009909990438035912184324711938697787938032639989928579727718665336831000588258319528627680367244479739345542765116832022547415103801856368019597447034545017892242857023725857436184913255486987708873246733419735504224465472008820974138666652600601789737473032343188935592448449491161478799401667433549141075855925001380217191213078641365779616875045068214574501764294875321023119784651441479295870834028406764021778517086045691445477429883238733133845291529986695773071949915131681806678779120691569916119010920465967003963591440722882422356203307025115998369167414788125338680047969541426526887957755280620600906404800183785633158828153914453964949037513115189929285827589576018187954971559426992137655628029939744194542812341507313192015057514270059382936235401896293760241706504958806508233066600541307474998322377797602758717733164546113303414876406929866097463674441259412551220731336562534623496174552198016644771805302877163445433839201334491668855223439580431681160965770340584640810827152098436128769984685092545194547620853364565875749065947342760851975496493097204691796170809123166586653222742831919002788481631542303816172971575526511036659218258489171033941195115218553150234216647937089336091496296160535743530347037098058345547332346231387397329269835128143927019618134593592854833195067369626553452452576284368290040068843403987120633185820915171320730439226355300675269510414754465749324379046235209617930712330125582332126315369467531651257886263057401671422547331055059629099590107875314786381558744645244363635313503873808664526630477810973208865689927318229136632229281989968931209652618806958155981611314905792792096346818043192207087740509976242883828775308616760587651738305730950231411408493222760374869252269013110706760719130880391449809182493037944964729749841334722536421793320176920191707931597342167871791450526120592938015786315377442528201830241947405870555774527500726558498613155101808177722507804019170796978748185732712680086981447315629784515366078345648590119328130856961317325833755595922857486480813940917427707495958492234932984565436784706925354381288503336697498083504761025672116299837662663654457438048652964624381161901487144875315785317040032939965637499194645799766148219737326300137279649112005910746016700431695095399407402528059577065525074658660531876641454415000269604559802518643122692317577804039949487096690813145008927767268823582290250192234693864213211427487344794208199557420380811040276066072296812026025226185929547874395244244724795595183284620540158534447661943688490614556101129347543185499230728645863548101201343662854756567586060133471629599320018386358849690252464774964411784377633606737216026930357516822124700934620258778532652065673495960169935614531373143074924953427665127476371330578116416517042735200073243800371912843083022168027590713041777418281801156076653339170666129786801516643247695019528345487784247346867455767184979754694048853734777890352022246076718325226630078666333147651031301519897047856162863821582542651000268761638519676744442524492206631919939492417353516204102293582574528096080907766417257454264273080702486899792110154915625133008087944527887519632009782379450150456603292413102970650593123586780360251676313446877752079239895010010499213024582858359470126884730147870289887411591569475411069119856082652130570236941619987759081695044318235509719410279314655489559456902644314123196430541027633056436258123925092618127122218912272300639854014935907003501325864048009566737515212349767508922561632519439382815549408865579642428612004133258352144717079807872214304216201575488526874427107284678375682382155184689279928230159522098429864545018229685095658255067514375563371335681295300050000041912010831238598936457249885714287634348646430053147141971824833577772785563877625022728953216290019457472885978681763425550561470437319434605153552296027230750440773010469198907548957771302698981537331345923701625582814923180624021601873174157593769534802594192585138065827858059824819925944434956123625422083157946988343237820544592031740073536906378916799579597657046098492188248216442722615119104045364948709164349309374924019620085751957803733887065839228481135422576386010241595921202002457374562342242292668536445414084230029219679964368398706282978880854024838266481552638045201111796797124472537428672096903474740837198466016738771764881836681450100654589858617548254610120915814950452351308014420164757800618976488778885064625580602267091404320484258512362868275888219631304729659672140453259474765560199604534419952191196178069119466547985762271138697163876284586082459282468494035053778330775045611704513206843671338657033908791048214593250700853677297573761410520214779894614888319485258040193248753991485903604509444510870381998196059287786507492602144188917115741827991499341015906903433117965891207672617037353909967806967986019789248381877961709714083322304362937870751120201904371206130720365961972918762832055809834847398112133179156894118809751578232165743615703264815620307565683366340277364326934726602137970830939459640424303944461176997818112815033792614046053518768135842863175611444147060128830107800087093611646721895308384722067871627454313264022791018427408036200603917113436812561039949663474822449015018709469197709656648393928117281500199625219118130252022652156286868318504316357724762542630503553895980400039721831229935801045897428520545703799951374180723087753929309220427659284584425977768429598418517456416538315005202102394946059692256668302134838960876346937339456604313839619982070918501129271589582434188420465410904707187480286085997625223022233623617381012692906235748662098396677945258100506406967935682349410226188192166920652225354134511926552650739609075108114267260451707079576288644105814071995710977410698291379752513839405557372246958808574265196675581011838124869851669441237914645983197140705189799403969047172988613959399708140251328714886799156997061196650175610698461671563158601118098663388269785557792892927364264376265920690452099670783456703125704651069438936532750036971292547588202252237577991513623321042160946233367408541035785853450580360744406758643705520418075120330905968946229374890256014519286896467918885239091218607617397008490085839987038760059910380099375396382642827354816067636225142401905193598284923752414385228175285060674786438772384472550601460715596954267075218204965224653686118344678445008341075691425677520544415925723908790206642139827143070146220444936468696745051559261623628992652904228286438007130722253165206716523738744364717499142666866031160533795094995975813062945404049327029500592094650263458936911225068891844263932659775873876883409997310895785580775331284126806905609371895917702642896355356013438418446393958681224458975957921742753109731318093880611644936630689904143011419849990665368494506455781670573026875199409932719462910787029322691484779132289676067500632850118498855270756033852936773105335045055944660308285376871502935423124348204830563604749161863195576646170026451104334440440622445272866891101827790611687542458335949035786164370410183200280579296217195023157224337893432537075186177290483426324572981470732848100370054846788268869088752092223844200812613757615072910885120246356554547978256841185622566363796151343547009000848850288840914445190473557872013418761511401903741541505564693797990851048907254949343938029461013592699457064373605304055130030838345998635115373437249750805109369957535015798870329112623566859167854817662922983327825243990775297324556052623266977162393523561520032404573766063871561843439275225502553181549894276973735662371542262629532446513964593824449217638849860527044156675352962538480044009988135188507353685348387424684307310563025432014494113417527325692080519766214472917277610192991620422494949346337032750576935345395687757446858524448269160797626022693911978119408337017881818406367125664533262227980952215564668126244271533131591497144271619937831561386963533896062571993894517968924864589741655812895777902003141955909284398489306426326504471861094338840953024137527020148900095299743197744700482071216375446017894172135935176173048752774541201432276418700438371085044228686238769074827523141105234061606855638912328198949673960542365054155869135037737322010278950409161089264489545971793708023563396060207562841652389958275965033868476877255838703378740714821338911392596912930860673872829502848776761851917381775679510556887019654733888654665770822355849247392950048949612981655565462129164856416585861008398733781595641220003325719515497822033626108265654250672585769224170807504680720107015984548649999060810960311964120130183160858526169176706947116508282574925382465530856285084219647566753700800458843848877261125748781903663205737474335382002998115405221532874505969253470249840929997185269784885098953567203003247223068677256623527169075688435434514679139772911607692285994828283378852990509571497769006023100186967613514870446591627874948447190818459333994741929814191008473027151232842930132529514805228518398412029703446427203983146145217854548646672483967287664200266461388146854224813697430630169704472321663590290967663542562111681632280740150495883747937905792590119866165459973492992954211973768836547031314979258565845557262402355090547430009946399852391040336951078042927957401041277599446987291468017586771156768067108143114874287870764150761435638625799085204677193258527151462804939300914774817535710887921548340363517740055510024312698603331092471787879706668798456757950087569741009563666140309869804169490107660751717457374564459828426160939623519588695143526364721678330967275788214484776947909962994072988821528902165685059026417044907491934507886011123295359317988636164512210302704557385544215383426908453887390169030291923572350411404418069378422673669364604821527760084380237132070119730768351055507009390401043717814917078292793383337279890703225741243383073992274688883619045302658988946680283353649175303528801136362805784161690170162281323227231071270110303619365839834014348472673498260100410533890350305337634167492088683577550423371340562651348940820139025670268883306494234734821695004450459372113557430973958721339445360848533529942874313848961269716113161897214427273473387166631608361841544813303215049738744360979841906310496488200995606486240895141059042663964407962847150605659531733742635236857223748804054064562277713124683323516497285683006049623366463282540574484719550211748054832433740516641968450803794745632852237554467183228254780612868138720831244738810009545834397058737549477425866740959608368791662510798266381610538383640068575873837342732167399749094841713312440351197820701141310344520208431276209979950528216209813611540192146002530437514152684886540415743389894315590737179755741417230030943951631885630629254306972311965811372602440135350034361466391285049679572671812465815888230622886219426531177868377127467175125673566331417663111731973397745921318872047275273839057204710744013825743920018799920056111080157415958299606806496642142639795528189547759927662884262305927572571063736387413830081604241349502902753640560260990242779203290676037337556363482473183512868839813014714628908424952679701623513139739284658198468735928109523863923082404948832144611284643329226611927989153994266851826089564236014994102038158703977041336719780483748793187121788521138841765443357620583695949773665093594586178313472820967760415793733482180483149981858619636126494531110227869206161886997963414486351365250087258330397165961705508678211850315325167913835832125566217306808208583874751377148548274635423634071475482530794051064712146646205020249732179424838907675376754888806906780039273287927005857908535484476979290203666952196020121834653431710873526295628333054147068558449467880880550694785137960880087742534935636699290385360282241064629379234306321691026013182149039100811167231505833646674219130602865440763469052542499192884132386834980736969283166679335882309036517707998855067354427802890010945066880997284650843466901921903228919434103396114903792648426305200679532190279735101596135233032036864758788080918461295765916570975082073744807262866222887457264043907289648534441198934274997169695293772655884976251432752648343721315917348525071817880237886670471357425077951389870263525549425502274283096121332861055312706372634176532542955275304563641437188632811276064326705845624975678430873372527948902321652083380328995037570934897080381045883018350714697929132831527907013894121359059130510293646882092343279452009113467507617827974648791159133133450483636590194181389929539672984209178746103166394656296706329239827280331604230710995215490111789718208659693544810120268783420565470379424500517936527250946210142124624910992973401011402791823099416551921604797773541852628863992225440579733914338248461153107173576972168043602221618651658367970143804972231883596074733923150024832183549192223054347383877527012464003390609684975331149334528408223126511226182220137197988261827860286400447921777864828461333741093443428643136539506878720025531875854031392453853543832054542930597515127394016623080458793404009971832999949403875547730134695678672552066891731553236307318899330202851422483803101787449770393253153556471945034562134644583105109718133760537595559866346981410908185774533465576573688886993714876744299458947849866888727002819540670574576201201191603400524601681647784549008606159435299387166537950506248706186383377281187424677602877853767305340646885711519245466807071741179463103532682254127141425308822171043736136896788596910330859049569183567744942089291999371267567167586781645032613189436529461220876237508603144678361039574404467562727707076683891942906377005958820312962787996242262924849833578289447356667244542461945396745141600667130542204744212012127255305380298865154378724185540592709271670609034130141323267862827373403168381074365234102697755881231352810543391737287525964742978107520374380223433062329500232854454622855537407215713538060214771323995485660211083341979173849799425454966350813252456623791655813347009006456991665550185664337888932880060044608442871369871677439529399063559123300142313873071416095867124928452429035710706842420770889166715932439819814058234431743753334065419326915722520066116229798752697073132528658910432343636476116308575031432798961560107487234646317866638885663313041718872751454321454586334428910441807227477469411165476307395202215103437531477979517509337279243594491643413951632941867959691058962493448466046019239793964224632039977829912274074709174866738352105156091862512376819465615922693772871411119914132100209289833784846338426653742214286274800623268495502437604712598495165621298789431163268256851922476331967148199991075647324884358102112167211542184500842935003539524570000739028474426698492065982575869276561681374239788841685702720428763935748096458708084103347907108283396243144095992767223783841827473332515093242143353712017570093667442257183761311870956535147394376861980518736631329953407804508444896561690682345043497157701730565994736591804917349054590842200352627784118409719712621923134583001319532215618631390963372770373573510767820305454451426462221386165298139211851846139324590296139620628353942332906563507794547045498553283676676842565747480806217441832262188657228466212685490183720978154999886141117829182935456115186706865880051615171447864222491915026322957121704222362879184656477322346426710194451478142363659423362157198178986023582386125880710017344593558066286626372857657969255231038013814693274076503466769890175540806577465743406912548299537390856903046545267170499044374703352045350425383041944104635699896369873288774001981864070791325912136253576071261307052481835658749949285278156958055844504654842196880239252749440611835278250737455400308185628448903066598933008789511431104189045684589074757907267630499099645211222009952975441776250683830809988542317132012278815721045398330436464248735845306334443993390442078399170571745550237223912583097462311253790750002561104643680758621177188985910564251376706695968861324630191284104389432384771981159762233429821121111670505695310527252115998809475560753633378397294317076590180546593309247052784957424175878053963292103501877182255221783388045279823088099525373045899372285229744052118147176163950951519992311292593319679970046849879600492386404586261510205146016888155470499253656677205099360046554263564491599629015194812390435266131685158359816477143763253282042870057522494246513361256266379154939681175704039042352731239697474365993167291371371147053313258174164373993565479574557125748045219650476324336317275753769266107043736190649924345871106861032251704258332580420472141588891378176452776797939959669146038766739119533657777859294591960543745673090792215190019335043981996893519983211863005714620481572136716243617437802989308618087266401216695213955724937461025155701223766372298985464263972402389945326131243752285586469728429335565548533525255397351956287211285701800847988763794347360548614546867683126699740021248076285270148121556239047531947330730520644336862928608307955161145139390629853498303599182739801366094328196776667388703333596842238060007177181865194369838529490889549816017406259236397287709414479395975061603300168391260640422151366677488662492818365705096273905635115411944796513634437331188804359725459219931756925769717890943389095591819723591293008541435752758611911108344956450974767084376872184616948033736231556368493614226610191867452577889588456162217414475760460521668790355503100587069859752431078384260337747382149563528681053230239106784178052558620546269327303980637497053366741707433176499331534311090797066529264189031076068260554205591545601161056163028866899651953826832321698406171268578519756245854895387052636357424374077816745431171496946275306163873992621245837061907242764107046021891804848119943181303300049596197631253510637921398325799886565857664336614488621537352814536201859152522255181030133283070792088927550270994511249822604767093221109010868367219053039979610886151243540522306558143917028783164080724494277708597620694336422105271150900713122295441083751094338017408748960846225198116111207077211314954698089968503045432104122796821888650785807991292124702816075232106614477411155723342118562556910539250240623783067672244271350221861248113715588087987417058277054844396423572265450745338823205317365272042441222452783573370784160247374693547629037691147579580878716351990826483219872689119740319846713794474126098592238814821570526334111184635670864330227507571491822486973286526055896434991644589369044424800272894289426939014401935561016275063372760908822826105288920940455894012984373958022111271063626919163657468082147225031334167876290488307990378157304895350429416577685440083902822308593072053316766963276534487420738442922472078501752724760578870495385709276233131984406663314696606966918249543249038357037942782698790917920754960495992062885742993682203987464587414792285935849641443529070546817810837702320416799470676300202316960335964661457946041854949648667284611411116726524860165617468603382479911725555705066570822265424502933311463123042112689383394839014148439700986395830371483391519387449058680122490254568206961476710404606138793449238221134713234598655282069227271493895697618293264696814365804489787133150692609850478787729187407415793219581285475095584875394970021296343838998107766354873186959091974228339781540781091277508730255980970366392011709361605063156820151731899202669716672809823941772904073929294739398343784423763625386330654070256629480837437123155921258642381996362375247553306067310015309643868128874219690224385602287297307947552170389399359882670409291933333500440934621750597531942595281578630531048815989338369690276542545797814236311941031620242438052932169570503340483682281525758720248097294830110341836576027627327832434007862641100669788648094472465597034956810461923996674529288342713419552848370168032105995886756074735757016459415287643200864414253771612872078424250621705681919980890290174410638421125384329688298161077600256910414829397960240027367249144795289467041263370331441835578174220278346609819311738190120808400169263337293432613081494866630639657808571137253518968107279777908506853591509337039311360513376858249308011875205460758433883066950791022246776976528215074706851157687659437950169879759663896827847158089203292432351071096950322733330201661698149152357616587624355555646063440605051991599496946352266181697971264755035290891449527417306744217775441456471463542744731895714391216714828029513927533841284219298819183017304553841267324655823191701315993772809101744733523292214466865392915398188977418060731113047229947126431781382165237776682260389894521809368577722168227655050983586036221866340779001118377293244098012167112049024865794152558392007989369514216940230523502241768007014565962673081274816334129040275270171755993382471825232091116293253260417344108092361832595702770607010154385056319152952985258212309051887949404966687312609088356385108863125249250324568026452523701807729731853949708477436225290615107296480112119509808020525445796830627531089832745405147749985032859076191794600787677710093240195418460420303952378698515897730883232418174602497478275181199659772595610031744521035646028682545955673772932312180338872724925594153258354408074743925423551803609289198450704328657927615868109446351953222387559292347346924839515831413970889417751266860953904444028787434411933626964956848294199570714308672480511708348875102718414657345847185493551432183853384705665294105690594292570935526668991348564027152319750050005770113424071144583509562846486239510734676472986785513654627907941159608752581635900150806212514976505672402683937666655363037694375418605591215068732703968143644385632089702596206899941208650152302289021065845527470235734427940974455433721963966727153345969896053496628012525293851738323391477648148363583751362983373447066340679207109964733147563295189783961132529800868705512238961624608622528080332988589831445768677818843075907414675524193052368640080971234605034614660415996023069696118345575083305090389421709063552424256815201145327195445462895762394320057425986539874873046976195013654902994152105016276197347850182756367970580392886926861381814738195634983510951134606509924931273697297258010239737471179783444988555411275804189800197854184297785206289136406277225006200017318987140820350933573104150317622624411252104340909406897040435049587485503451097276957240282457073287608141977214616039443146938240831874845928729566771883660520664114058498564869043344588574157302784140419166299486988574578421918646632559474866207152161948199647038840835825794093155154432933932070286999275420193293013267884077524224227484090442551980495413702341829184054358935079680412458182087183649750425522389152023911340165885173582134650737423035659411073679741341301545118714467995516102309630868780865441684501788441610289179596893904950443315406911611712576936884455110869466270343503260085848850202772222023688383397470616768700500236774364880262732887218275473185948215364125292566885716938090152548041684197772326405358971454151058067801913670036069273866606592319593894456390849421117079577805010121902227335006148303567219574662105307747091491286474999106321834272514456850300470100249915885908668423105086640164120296174697077925354146973198991393671584048918628310071343312816705874893987994052582215003029095329955593327837480885425471385319233706613269796598023793149164909935097950628551253479316051681672500233478025827111863319014872863936285529516282373002256089377739557051549589306911646703295434085510956346018063414854145760910033661329856749312118216549094399866662781588514619545152416573292621627840571643111112265299233000792266122599449419145221912828073517343068138173085228904895429075866695568063152145001953109082373912812182988631619931700725340024168045953692024997429602118692269592000067955034884391107291074801987959719964581237925208635943040977397450412147612654421836693915160272262902261598344567346651977523868267014597008925610037577819029451544769172977344908251385464787402475029462363750913956405883119187041972427347698104371108611323003139882787442823756015587138529131661835604716801879128900369002764583972054050444991649412914288552213648568128823670971455414641849333644321093881740474439536709925962043257606149424902403039021322309779819013169988607173018400381811951593610542250111608820966812242511957349691139239855640132606303049509693681974265834284277420423625897231195214527694938670844973240495625600584862368430000506457445450089658012184484595587739752380132336077014581230769147154497532745998614791093509976008034165299308699685858770762451432728977154885884444215069631133401139582797271718719557176570585937207493411954988625848071871684966039306496086365342774777724585123347001857112614887341736610265094485824128986225651884973374191884926492882434621636684774805144771157127332142319786749811708023748723165699964824865812979493661422797691412476681600635347248007896527767357630204856859485858439571930814111000520596305707167313919400260677946229135077528956648719749530786989649648161816993370529752777014457939627138810074815334276158304302389072426617721747101308840974143138261103010627701507739631835023356119013873157562733264572413752667105970080299828039550340845710398880487431737082636279842050411859182983848293783149086245154859152375556270731046357580395213486384957917519474523637733007743155881380104676495998628044984136734001370815864667748884764443607903860325332819289569002497104028249258586355796690113442223612376705913871527157304943553435105735503456270602363837745884128349693355926974550672971518272627812199528851590785161259244097449408591055728644699901726942967022653939888886050827489933728919046938771796581976848802250166717202675784297892567536259608092602316163344746822677847962371946069566593854791196945506820919542257864285033964191364195761064349005994050601457085413483402834631474101796276275662471614125787205982544231132882709425517322488292597597336443289274923603122549980868321403455894961498301436829486468028212321687823388969296211307700380115038873184226695021584765073217275483207969863117199161197442771413479634356989848575371469932284349616926596970215803321363147015894262854711500851563234252465113851840287029379803737736914191320280405487762659843203929880519783697200807650148295245279575641735098501816114028400436479004996472465894679568779014270719112717690105367829394796503805042572954434030515071705643444856408513529771278864723683209144681009800378841853381987634865542092546285206578852209097237436616508601724563329911519008764874638512201839047806776818689246312001641969403496724452329713450175568007975471107409508646805831724733819765456927973171273950951198014297864800957679475948777889361266922186964361384209555259140983436669142295286768461452958917487295143734142867243431400518971791804358590007900309613473326927592961655267908351546107531454428554407056360119987833979009825245601241114951078494414632348147471377125240918785325995015142989371221044452935927655877801161258614291608855023544867615055351784150814469543065348200714885429529703916342057728760974277216274371451644127657666699006482232314856843530122077862187149365391268005868862242372431580764736650712733580610257610576465869170639219633937477316571427040017913853939787632645875518189643336908864538984777491396766902233304886729644147380688949674825875998867627858542926854768025366459841885930161535094072892286050423041074974647162810327364795584770717379338709485496248469654363321409362412044131731794755508566188971388834887431361163734651536023034389857037955388002345893648615083279100068121365708656954133785049304359394272417651113879330393110590283325186512142878879467746324431350276073887040890740888562139233985883260116764617751058435848070007883031156924319140755520244347331234446748032277605721750795380268632592096956868851137732409250835268244266394790441956992522682338477731658962529819559827901788274253056101282209561477082822094420371660895099676469050623776614920517050279205219331295084742543813861434564437398306047863120456282439122665923702318419608508876122862176006513608954471977024754683318716569567533556014040565485239430368754311627044630786218768355934343316771362613079969257526423591830506800081235944733385778404825875530880547275130545927254122043543313946427908230629270273476276194458936786298074478338437833088846025827362637543452932035145253276868295422745550318392297508563516544233027961958540983085372837755153472775111065477871161717150522036497200867134835880731729182207056581982257316801851583338300471366134401611109731677974777466462268484267825487236512696146620989779708231541204018281599476498734193820934612935909996040259891519644797373839731744325961936063206454533078360156508172893574259333955030898901314763009550846512234640650178147894808043402904190738913230111368801622683025925060456958760586043994145198490495093954710567240385779290551325345209787114763356859791469646810614789626088103254919286448311338981208920379351519553620752307355428202614958823061128859698255301273617622516891470494869923128963744865450146300923183479870510008345844581773751854537120942627746070267028202486281953428829643005559944209486318380230347572783660777734524339088443726717101068425183786389538153437079866280841830313437059993664521463537445946260128229654297203596105104503669618160669427288525390468373425783849267383899893598755087845673506914435270074146703954978260498275399893422998664668771748759751452764599689206071462844013350142244277034230428634938411991659897650146136236459772692970205501391630221673972529615147315014367814913616593579731274938807418370774438364081072662698464763896073393866214765313472423694212773300722505990861293129880253822387201517185296064032310148946092448095473752568240895499611635994155443236345701378875428224578577657201791369719702755693887801692795291109724131866985911806498897521365658638160938206034211666405184118326798990370565301210086958643464177143979459642302551854198580144641627700781908643555212782837937287887824154077386381698845580534151418504135079600646664015367608011417350730900635101739575547573735186887509100415245648152330287563200778418301902835440324320550223921973498779902497657806091925000695070862087045191122189310042858828181913082502074755325964147593297433088916716524936181760270111673442326417403578382893413124345232584346255896881718900670289002840923385733644253116720489815843692849579593200703331552041000880438305791757824996004925916357155363614526293666977315878904216130445190235903546170373386060356572879605748020556123271382201943038677646920584111598577522134301448207446358900826938899753553731318202200124167332295763575872280326183257539808470641043075875279621525279476203470631747945886659217780235837234090005571208518092905319422972811640085719351034225631111734016755476066912922563719491875418293234215030902429260431458341934000056324711749285710010196428429704746487714238983295376384699811880592935593881433128452622004440174879436900453277672146532609415486558984775851770533540897984577631138319749277787573974073558791912392473004544155358308069901094449636044035552244970701592294859061894116880361728138824942643374228533888195225184631644504890535896214074004966974078965159023774627501515003977600626485181106656565122806600990191613612771747120567885090584424283352735181728974707286102515540169973846617636638712739783634711358577406887097925314944562254922636836068631327010882781936243526196777468245660291358222331711832027475040580714440947663518483068643691723961227577610360049080225277763308190016858908206555188141792074910573750530792893183871463818756206305063189369071536658580754732522112072077329087524869564905340135568151672474335893848727982265997148426633236362353233801567653322522724813346675404158760300174854900664950553955488332947740313302614050678127880041850989501190017258687841406173770684438381456035646078193847074369179693384703124410226201293300789619774632429026117677456599616159117776452217092073073613581722298801029581252208540628384106892903920649135806281891108760386708568892519878372873132400519440296082219307915472606404064425987793029490163445396471261029387970007570652811761026879132116338162905267586287360910209694398464555818865610152095101957286505245461195095535332770371716547238746236108135082416066078483373600242634537872616572238623053774098943632869235181050128427979755542624322040832021267867611837719721700005201476747765588935839675780186971022472956709166805694905162335418074048176799666825022910104351131014630701994926522164706858901966982986851366506890060963978131317043067551988444174579352332003898953442303026390619456949996743473795221367001071674075004189389500295533080486421963116607590753850483522863411606946576535686273343134734991280379652588162012118764445640105532764695660677659732275000940281608843747343431770999769867728209306684319780793240811947831395932813906236496455962252720218072792574136609746826894191631947135679302345096327254149221181829184051905594792257896502707107471805547572433736388043882477019743205002132785265568011469101608223482323701975878838480741299396090737504032116534021927655442079344481639372581657209136756693859950173575844282602810504421229923742838808502449454880069268359940945614834578646389528104851746011125834744211718828217368412491103288348230775619825303354943135378287854335535018273128986991758561242809178232761662987382927358984169834499246567768959011493967535506678992254097149409891092489708296959849836166939808109148757141523537117867700527472236621632832090860306699302129591707237088074054607457515236205380915122808261123976166466790349640599203365422796744177217475279617129547977920214292731445443799698434225673072163458032997237702331924988872827073553862860932792558373249595212373564576403449212200917825448983114100672749819078286209060345662973259065078170572049369444073812762837293441447239271108916602689162547662057313003546499853822484156953887655359477758406557200233569415589495244564175331449353423636820864118129693875409935180556735330861431836403193359318387087990091039306473844458654488724056717766476459410710694128604597076351991321913519320271922389731543778184817841452414609260508269228267017756861373958291083789742820202776189475145253700078683555914903297522058418782817829449171157633162492994119907560825384165251894449407589817753169495940672971232614775311287803517754022639370031551456946922222821903371427201620491825849052869677530186395819290357861148555883459012159843886188409499264387817164654639594716447735585633858743240299329662543518915389927185371714206094005117161304850338577217211078856362680967228100681010638577769456329903615458948702938596819678146920831401771587786896993654562592530930836738785684999117456426917903365359121480498823069389165648357573692967621631963404626229716586320963521895599077720843583064025665491640658469608358318200260931906704009440584972984681458294989246724286215617828173116420463415594708315416161239084666874176664168105652151033700903752630863831461751580379397102661401285778102938672894028504950545744682054452610301508908612000428217315800376678060167700226956644349985591909280678981266022744032435914130207868262924631686996642742106176964813112212907540052130627850395014370777465198469974868469912927013598332393222375215844303869651512300863950859476569937398821783494430255232118327980376714656547548615813478074375676081829283928386737769590797810143510117598198246362820955646556186883091453900300567036587345873201930523143865403482018943911910757232453218597293681847413027391683387648407774727553124508451018925113520328044129495630300044775609740286422233758386575413927279687197648909118171311843155256383495152045067101927113008182944324771922334971804613053079228792960680349188074586051645556663947561197397241477462037158542958189259667473725005329030186605297048640087796152977313816484566401279079120187283723277698421480284203507671037163777680161396276212231245538433921546706898291143509959152588156038578018931717080815649133252686532210536471142613730301667738982353529718735285397711996537397781474564697200245970898930653063989759240339483501721843093993492544596216647954449926481689533700872863299044907425990831643345377922941009810625223015988923195618686164953336100074928837765578318908035882474178433342698606061457053345004510203643251944495583925232135935946193277621011505701754454236941091837645752736743318655582256699882299172729697599290317892540412667083100240047702396898811452776088772470239811075725627999205189261043486059089964539279195458437298792289450221040808653829907751896905579394336906251037150070927603548170626463716755923884269806426745282737427161736386740426069041395453115218759304668325966778937959881030034129030180363612549901529570861840017779812569616771774339763120559635191306879431499152063480571411689101267620717665350027342136028282920955528088763357303312229066413360618728274927958757466259959605343971417341119915208045467695134675751802537890667790240509042655194076924031584396381643875120826475921005739947827775032507121254337093249706319237758955205937017853262938505019547198760935710223061068810794053643739281049629960858194268784277370389585271270747647070295559075817817035790978500014534323665497767329850850853368147723897531733858045864017292781572252757500291367284092430534328553899944139522699651740253217592085783066588171365258838558250413876913051690798110832667028359503958697639125106863469252402074581051971155213860934984656094586185491865399094355311477276152126026796182859863454357546014331539700148608161011787256036636760663820230884665903979958409658051448022707586307792367054569387256242453830480934094444628430346030808294408346803032617230309923130846026381966618466454110279755648344725610103049496557896730817179066785022795866438186296679593457880432671625778933465088270045378554947298774103953987773765494655446588010926596647292336372725825859765836538187662581906417724066861901375878903179645323879021565735905836595389764522041321931416118253935935508591085007979861775218772149273207268263039550541775458813166183898213323612162284248284319571124629343414069325602229298110088355214383661134896363666260530490949439361782453221036504252704732101489423465668400237908349560224315021755942341812082522913969849201081653642404211581166326825856468130355772293842829643030624682558114869265789196272282537979529902412835457648427928924829722099004686400629158515803551249140791902967712831450461277502114720995240277108478352117876895664344744238540165007470114431550912496130233626670578242370968374327992760820541196134873654809712123428589454978661948935030908078845287391661278517909022872994653243949073873215696647551374334314948358644367334652102537732077138825651782535054797212322371204532870674019392123364444052030145666577975546872022574535515197289095644136747781817657545412366264204781054122313761090482967322125253111049953123977613753876557034121719081987514751064978728762028708291573105751222389765297093188985661306215777778620994803779843422035851307283234605915733498176420486891825953046039574573721053584318756394626196283559565825235174154375432646788448485064767905894736271562069971296415750117201052317734898137962397713930611526788165987251369933259684186415973903641687064853720972410306923293712262964519745941244257308502236338131068267250525118491769805641033833002841202239816905262173938748558725552026955898955350863458334075881775340175473188615125113527640575510529223517428271430289633510630446316019582867784136412357158063818913432942670483141412781857972247196292687653634858244136402777298391169797801559849209596680915773504548813949626121448018564102395172493137375112791255523483069428040773598824562845266541264257770152170826276103510238230440831539892464752821699240705045099433311189579260763379287084738631418384307185028092109561905864259507839622592893251489810261239626990242663366168538465373395075583983132970776921415912605462267887495520212887871061414763729250256907265897668210809549994781870227748105515376972867141119022684984803942226433475417186471456068999807249326238126260006525017250285260349313166462937683737547922471063980570355338755037104782369864891455612441609048078581939203955441767826031122508606142284844176738917514077306499639944475897018152029621844507555125210710914334626323505638378667804406436529513276924392709793178409401137384422942965434716931774280911763402920749993981810436101203704704301092127851702183377509079945015348854601167702564287058495817963351856127530677200483735930298194820100899100693961259473102655269014177325827196873703295391587304865160041546623526026043490042335388255288404455794801254243154750200074061689478954374023151210774904423726077462308359656103308065950829203092250108784129513451201029757087326931058728619338138097424717091049192121819059025031895491766893832780966033658420519668146340481098326336979627153835256464290667776059919691728458813052380316596832492716714386533783082362590222080445953466811155760379700012015784923444298435925319237189761491355018031719978153536447849010899021419517341983122723999805222345719488307159148560728648340694127575207595133173924337428644963918658061496578007539671939352554212896633069028546325921257608107347888093364184619889134269672815020708656094171698614347031718956176043088861262056417780386465440156088460105944935003806836199020304414977779757097813608176315448028623009067098654014895720759014996984539008784332981588669275741062756777756012957846035643635791248144936351335588760366514431469986823513179732023866062149439331225341638859503700057064154207702683059627579673174204294240952398323913019665552942993928518241191389471606821446299203160097050883048981894548721796921858388607227767430904183532796174601406626604742464682173174645005914547528219124674838942561466398805842007117166211002870756587641863630618772604957244674764467749708381309168327599248691261668306044508009523506358489932084365661195784778959349243095112266694012324274115082935254960699160539627735256775798497715042855021244217027892974130029695900249773528359067245753381239391912834461731142329735233476854007819002208306021673065165407578483981025292292656245763733972959002966251822607615051484028524826672659606282913661251814737309362323395065713904367602340054103282785049982758729843597948322165902891779247604428488024425357507265475030054231533923235520097654205361173981381527909937290972597218870087698695626599846497712725469178574802015206862964430906035027339790156340554752799894687092055045987002797693612242270147454079756966515940706770457020544806980929985934204495224048467985106982720813466085005995540732472494186453219948722892545605917744335257369094664995192313834082564687134512057222710830392687258795253556806990192129091404561738548958319861052894057009537171144371351869630310930998135313307634419957549584710014453260882075658949705524369281065856666969698680823192249648759274334781834262220706149474793323854200892683090522748306160836539781829267684583700741924346709869880212731819988735516217980316055162154400076377344456293360069837228890844766463193282745408482119260209245731084441694460652134919134686879127137297866521778477413764750480635829303206816838870823875407027512256356589177242419954780997375661173739747355195380327106366106333242335649528061193665619252295391715194641739852297049860512864196785670954416500789350989293532793175463597202592007556072602500558650487812223213740539405956495541043138527393181070480217476743774504779610975505190036067491493960990414291557790178096050778698964449107074138379032599735667884662626295551295137923942887387291632548789800026582670280115020313675451676743607490567869609556257636277629883040991794821371416606537118375013422463569726856677622227947827938036508590703229511437786553698798022683092404248694475068275821248776789257904349160662924319095741560959425811863117482622620986813863799055009766157289411454886200435012792031710291690898226553522747798104860124684472458801411709779156035438645984308238271278296356321621694340114323056631549393596979023014696880879828255801472765116115225898496120537250699235574520527288492340358392778440650308658241270391333982748261684382100880371357718349553082091030410266577616769657852135305182950197282172820017925148076825909817913168656379622139132959412271196726088461526811442848037938559058841784463142819281792280763059131939501158101458960375237862539930676359728855304708954423806257862938443004634897724583795191788949827188375607763872029017659202695042352571205307946198044197864626356168915477768655290738895109804787437017374877125487125000926822934212857285158746373881716161187415955190473639101248998517527273422063484805435579134941459316454881146990513298958700867799359600656585723059711973378313339529409848596152682239134416685268262939943549502075404200147888129382064038662817556100446468530915325591021842410523819900016925530876763255349602134914599344955612298371353652000430725463792569959755766877111591857951335181012786504995854500356723973723418607394057808688003919358893390762533670021683841729202000224677473815706026669238237395453651651319060312468727493570595892687395016358016943120314160125279888422612241916180615444718934089352174313207989421518362668936786474937343965911892758725397207964237040087517645618516991136887111828375974814475600087172384962318064788199004674360694160327687559054716564393847029878407184694287159320483626946406814698612336647008715820201751220519020441705652379138825601047292310325846821198652420361322638273216011992233074532327702383139805819535091158769405411907823366251331863066853776082821924151359619899489940253561463062430982644675367874852698527859085067180101817001483692523283808861216743906975121207085900052914178852515404679752551944913702995688210418873806129968136471422365256940152493307254813681131034953956515975815789750435384289056935027726548484048244230745654308684011970447818721093034213901830759900277501540851365008831977732599665614956082812180648793394719196487660279068795619466468194054373109131900415152523765941250029470753588063586826273832973801777141057887709761976480345991325055345810867889091090930747578742782836730034953604403137171868329317952781544936516966825351921635844005598836638869310091560815081208989164366063997766690002498340618602342938267463682821885627921417478270914057191141136011388139451511863727151896629323276129994444498037659653768442860589232943441445205193313494940229949056844693681897984143803784416099695410060905947096062888238962059886210095170103237737479855595409361520044210538973692224148452048818092302969012713693969177037327974415091520661428167185225215395300876325128606596445969995871629111864970182861852009998925104481891080292559640164220818778033903200098458479139325914703714069135813936647531171162154355709580536700110337502859845511221727064082220955939720012848442284505057871667154099606019367124339319150110529562559015201860439815190085451854305985953025634219343612406994844707303304710251113035024290462560752661472720490500975380765778885063919136353047999481535928504170493769102381197612764391244768722046560261574026600279427335115591765115718074625605292766947415254584354962488599479728558942404734742916541227032145303295800296800644228213434334336245338694820296203310561044897757038908206233655694122820737219052946706779641894502813565078949856966774580064283008095448860637311850064179463949831796548444249241701719051987984041195184758856444005689605645353979671502029024603148267386684716845354724348288330041269673667018729794600957983940680083150404198997377451148343359445955454412948074108988261638530269109781936131796489387616166244793751631250749770797946013275001565404509400508135127740281081271921130709437916204505253325015567828427906063974024755015364988303335314104088803888318060750695332286722328724931553819073574358666323565124652885761413132309942800978275008334405096944200795844815260746153430823077614095758566907156075146130888610467090665990102575648885576403531651791895476758223099720289629405006432124584633739010519821208419732660707584815091052679590251688416075496328330895826299485637189175225194389992800345691197622115571580141406030146013645257704373763750511224867824390267709920978444429490794731709542601336151569861746007485235361168215969278812820722669652047407100935546385805850227346444520663524412226603562840009411655113847966171332640629449851747327613443221097358674427537228571526460564373832246984107622788422276648795409671896999505918695522284440387293653159516963814003828377316602365958056282847238143181153719429733181166727237088925703964289163147339918030107514434950701905701039387749453500530992299088350922917822205703978025253631852896063646901124983623591430464151676390699909106606319643585192936176813925529063307343674750290608222368157871669790025120756969976082862006247975246788743588752210942604174920153752899554492858446005833933202893682831421148826064728160900850429373334114063092874268556641208592492802849717476823374807920531860403691870939243542722538114053206467870335237163265169966223002603976169807934425435892843612059078487063514251268224698625075380310983949827363336334762204743939252272282432843831660471546930594346895056370673480580637363461234540456303863658566088626254389693678845471246923829620207434140352275268380725448058120929713659655851343470313156910360127828841772072409211071158954808640675663023114603291229624177040240799278996385253898265848445292902544920549974255219105975634309303994837157863287502753986245399265613989896905278179517317750542610242803403026110422446261213421861703798150663056936522827268543214733309878686664076962308929676540243949242158279086718746323063003000142822556882746533891800191382092298817398419737704868379691898036386674989136309215571038089580869194275162614656405195941804110011007765567962618802499016602619875610836847378635407469274538517265179225606261833499839440465728865870327960978415928306995357638162782209356353600157300430259595878976620620960270470165636889202153123377465192733833450711792870060923001289326319719898737540382098508221228270066511082202342966294308108541889540798382591507986999187132958235118417706720390119096893863619852431108969014873867247774342305885315066905663477891507025431181385934691177874844271264462838847811901663695243418342040732254753440401129235665706527313550356063864100480924739674898602853092785093850741444924878290652052764064307947150031127774922471415874796994769396161441302654867869532419939069857566793964082260912464827359744423045076563128591297557813020017584105155678824999976493227189104643461559809986415960383168675549167242602144327008184127627616771413997298819776245048795674472967729827322778885023354406525356829152089783495552765185679596546126483304001761597414850422570261490484007126725728362456076576590201297712867989311884882231476376158293279640495929312008093664855379520997189118375726300677933261079134464743705728273451594421166139673819063821812506938819245110692531455133840728572283952751259305671509737341669121834059074471330479347694825151538555516827101654021018851477274800551441780183329185480778595735036457389201022263686767471915826230256572053729562347549724899596491263613528109213353270719714948381216340861045276615858761270184536264916182311216995537321881701636662361268788717132777430328416667739707135972943362109033782257642351424595806009476396780681674857130724551850027365272155939688329453819521812578158860353639143665994212074875934253506852277107687034094674801067261469435153143060113154254325989400148894172260876769073932072615641319427802980193775146533434204677858552048712830785016709096611781915361868165950159387824155397360527757151065775166902914802399555060097205901696027168838766115219501702487911831479161271105143903497700154994081067960934926870686257468882566982687690443207950757863893669979454352213499273827464849719802575059682347356264967678873756527981080022019516873595676219626407926969482903106372327932263678954988833881166950714221963061883957566994863719385265275191307062974822402363293140356432328977012140079078097553749401900835443600788284182794181335433076044614744051131553554010511996353774192365285760508477290032083484079835186816500249683912101747918216130731790497119519497216770564949754370259464404613935535719183922288873234970143336161653647467870801515821876309409479513648309490903527385242514873852700570124344514642209897218576987283974975188598927054607202801455500974294985530516240085051662747944879802748189857487114356496767194623820301800753601398859755264003224568764895055347277834076929686308543185149052166007595930693199685500018331335799266074611163323797711035353332056356444641649119097906922322953497982323565075795128179215860424888808685177521850366941330046077906297857329407695271956381830965109637668613033340040913827142377845102609954859878837334648085514848655667454632637113952606716917477245156770764688649998259865401946153347495226273657896183127239170138196828745418987504259894681365571115806955370156947336056598334941607729030487754823680789854223210760910716508353419595969956200719881582626893766523770781508276331700904967453386386390994866093431926589503917745764536025019836012393690548451683309979624350291651375227911842453201225407108995778598484877834642951580097400858454085242575982309385681856097498720274257424926335481399665563812936473946468667845411771714497776773987621094335705873455838010030046280574233611548714490813035809831229419471236709156541919347913614174488287023853338483035576765115865664109780527178804111444701339095091649882352430655746520727764047714374320386192485793133317275488107640677312409808928084718326962654544729690932528852213448962015508354650496851206369529701778203622585440481102959812626327545294954808442254048582853229282632347237109340777070309562516476998843753896531879539230067535046215908694930191454377341412009403934547245825302602705742384582910176887242850205870953662735293359906253646304972100832832547462310027863759037181169757907501494143582192407643320322811222295187356412448551378024964289925062122606984854061395061417620246198992806472738352448679497056748013030713243214573568171117642293677839954354309468338760854100931280795172504268243113936963234874044923632150567925882859460574352298068944932173804673297197390436195230396700993747325705630801964432758849494065540341526325479930446977901584288468036627252505247119145878059521899691298288609257387226758264788058341807088595901002084971243562779864696771142714248556080106952350511788808986095659786323505377998865552793351104256201232071611277991115537054991731773557933064080781197153681668542040560650165876935052326193981471545218340599142663542475692012444360719844205857220609734031718907879086039120847756224317895036162737869700537986297828440110131468153107786597471374200682157013128721534866686481684607385531897818728983534086994080229769743048196885720872605186339205747577979876919505952055447925266869412681946712645148752019790477320041678394861112714208191145164849981846089517955691589225195306626415491413241092002787143792278502346524678309722679600374436503482995958273386146956136620581341947873325933830579701368844222183510523245826656343895618984305008634598981842167283460054176913296328090850871927924749138446271299126507982222376853274130707902366971484619078537002660920459639379794152043671213955053879956913527267565156890902557419883366846279168610318249909363130088951648947270787730147127443738372823770989531517168434998138534738639674048475414013614312739758164437953994451722225016693656424629638466859422165814319562664922513999269953262776407717489857481609428038493755062601687074713249898517880289812033912824832345232028843424473592505541930348593378849329204427274147506846657645292554855460894980404009830583702355209574303791286187129456090217016535149013668115402129788202332582904336745315366193277792610715579953774618285654324404139413630782148907844521990316051308347199940640600980213231146790382801206318731607673021981437795791444256040616098368914601946589028128149266425368660973775512118961983743424305553528203628601437826155026680738017522360180930466346701686857276046529979652460763561850472479569029883044317350035018691943241302426472433864478874033371247093234980817343224388081764249552313586817472877098246404958078217572273647727187142119552569807436076374520230408529244890745784379081545986366756428086756896227098117125517218586062797748741954019329050339576450971769268528811586027667669070628193312837748654223947356233145976170299549442053639686110052096897969197255041002097691356975520432693252898658553235404874679524597708774902797049358407186464023788590347799576570694735662192899448887325408750577510885303306673072755708149558663666113860751499743296661986294079247590333816393890487394793919699902994761739022568259983256845359678528465460871823186618820110192930519580342053197590383233202904191832162939054563702495030605053974589326270049843121553652870022577021151883903325673409574178954818016116007820337072640728551379988430839506383151750076122001470835992698366037902411930197470628601404158227261799463679794119035402710658132305700699945118424143428297067449098751403490683532935886160401301892048764201351605844275555556187087072394368985658402654518561956146016236828917694888987069831315765677093795490877270134740922139372358916693463448609294561525870785998256432207139931034276717765015653003351578844470658925069786388249204622052908196477619389262967258896350853526927920816945707130236741797089848882816877971405040643932556078921279117513273277667198578145156202029284685978530099576750810858484432683123568495719406822905927800543579285943683393729042602002941599924105369694836397287874343558821331367716938615107876218398178118246997877380749012090821317560013804769292512262624052807549276541036042378909359245332112557352936447462018382054486710926978594746026820977362826355141652178749688200262655588999256636064676624793512217322196889521630635533940759002635480789251917859979114367641558049238524854413934985184621672321575005554612247799889647604082388035107577001990696292621619440075568828459198072447003300937527521244792893995023788012072658262979859308239612157728892550418405578613947893825663747546219728093633633872642306624457872284053581507394876666715000458767235127632374511975241230364429029774275072204884948755406416827984025758981535913504312767864699035005250428361038644115696513074597577810419319805073107948922715715108486131944219895469123646610774494144948936846286113976698410680309515813016566518529228561909789496410904810887952761910578884856014193627257687319963701105930935066958887721772451259645575940339619041848290377497822530236656995015772847483659113077369313722715496495644300816631111015449216056644317227655736547859980758001350448124824056682037210919393144063906048930220955580523134273622499243617587480711019902155287989104976104240271208088245092128638420281540456624272878621545171716385098186828848597791135417023652293569004896716102298247986308674124327514796851424142010144216728851742591374144034935886889301578402709894789216833016779058617713469994141977014316599997793872465233664956367000949435301468596425026510231754143714019116648221128320154081995254351992648959430883315602635713511288880677841308064091097878239766789376559063125207009939539911871788960149491493707219144884680684366417736081301906504195871678712579449347602943658210964641103627786071969812765323728676018601861650070476988215561095406847094118322861504918099647977231640981643843095712010728596478301826832270514011419532791049316754411406936114354118376255833016951394000431871277240784848507104426040225045262098995973142075451830501232578723680947579601778684142269766066680882383272159430482366222669293626069149688124962663053728246434215817968803153211625534889523411562540174129317857226421144355373636953677406574061264398793027390982989315866021482671913743863199973236376217788151104210384838652948715958294131289524264742562086790938399355726626298521089553924572033989196073852693147075146587316935092146913270908191730314187060924058991664933692214425788919022903452034875668575453134940959318810572789876565633238342501774203994243735534795079055283919382189971239154348763165791811121310419371674687521040730129275347614412416516750496231806825453713440826286984233412515453592062160236929283974222026451236070884021607363973754322128709237497466707405290554548233521710193092614173179231723750519331734561470951293867162570053249440544688473876230620453772168080274848250290427912633697499855842517456632458942496977668899187423587955339402550780012684790666355456762354723656610623099585067725548512899394972238966299180727349604865009045959207997178810019827447133675787639981685780749849146977858114408900006424186826134832990344538189024883451236046528572744381545738635958872762522556721934554295393061872245154541146041174857647334644430594392064842220818342358832083984175899744877373666753546198775096369799797565349260653273162941118990308773435501600567003746460963835022514964369676407060075677915903459578923234314890140965702330973243999771577158451694552420477698856544502985450981455911591413526974184556549993794177023831436512368612621238767636098441791879082165502070403023661124683914330447304151647997697590843044784680921390946200309263704554207313774660649574536090031263892714028147111549497249869913029444465301748265515244333067994510803047682911189005016027632115036989790104253429322311056255979569943805404570528084234151844679336327112663232086451958700739110108578412497692328009096294628229160968104089445790467756453667066393581929114314798746056885369411776895269130448625080611057408297496717304514328690473765116749033131883179422685314361665500665951260708561777751028784131820538971531667468484196134360010581939905359951969127195765817764823486006722294659091108759980702712231818497748265131853688463851734158034103308716597241431370163700499289760584080065127003818871002085936917891140246646211266923116479069100661537426265912128967146917903164386758115362443164361612618442456141414481675183841648996691469657422252513779198647815391695527498471994432986580104447077128365611890163080389260167107693709904353972413362656405873491861795593604592586204242667848371382931774643566317811023710993122383556844313387728236257149002572171398286313410419753079444765897199847238981774628636684618903935434102651099406037766158355732890029627417874016648653273534874342429611064843379949333941661280136084388241977800127431195910940957616123833494248544115234730600899632802895449743009769443053744096109650082363620629509113530508946760502125909367062811057371635569002327535897165039337700785643550283351261029755629520767478297863456303751614179264991692531782518740494096597612926134663898133781611596656816068440796573389022194405527761205452451971821866239492848856553382685151937055024035871177638290788527070122574114211473740960646441114061238221545189778000795881367620335134342823329465194336310360132901837011568752890868493580113160102930666000847198392709056676323954493092194147197055621767164379236649852182500358735552369471598630561377919688222104528712449413787399040693561663720062248947671824426275251407271553976916828678774195671441221806323658631300921203841787956119355209394947331501600131390301208283686229508270982288361804170315476394147542779005326883805325658094937713416813775674259159876889626430984047224466215774164447945886118248962840401662575546887004677487990481633819758250688638237208825737225114575250571966494991400852751754318786326687006366985375160081966003240827737670093612896097356057269533541426651343327185249980101216383382667549213292891110544824809251714426773604033973770926339249856968103307883610398062304770120713142151331950676768504699159527849081585607909409567146150703983478669750366129244105014276494183608193180742344402578338562001041464339616603215684263290287187746999277841188543738152066713655664351151668380579156507869163358708701609146612930083679287190803140024285273016783195433784018935630666974456417481009780118977791693191560782701024756692281299845066368397165474742516213685435691069874937891707133780299673442387048928931115855639078787269201753724189967948979503674283058657536218309292255293503904631096225388045436792403485009869168630669943415315811977077141216965080898839150165638504426397631155194319700305179806020403660793495482969364163274508547831382687211543174325439076933585580188616108041618840672520133195840549652670094954565854575644823033588512537272817573963191001418792202663851570102196230642542888570513328870778132738298588508580539528842055526580324263119268688536422177334849209644754510831366005701674215940766535804493635573574863860323196983654783433359832510165305472758163714356622026342112519810084303782520187625967649885538323023138553911638010716753557301343259190460462028180031253631275242292923852709699801198689959639847602165507253451585398493831023402238978971172611406344127807222608859307561163805522021110341844399078886202508736372969237293524013167639974765333534880558299133661844821366323555106542553940404702573620389265654658093184932342501258131239736932910272990299405627860907593577405138884392521125841514935292953831741960400299085517363676330154098237868604757790319135583202361447364292944749347074960454164501969488053720931280600699973353353078279181357877806582415217085813328901229105355692355590317287952356267402655979649337271353391448174621210139368754631553500351409485122036800838707428448301017379012878471429980856602594784250164509770546041218814754578749699884547244566199104741276227764551825463248315608577357162916733497694166626138425829532198620608275613263205273113273790977765382967837094070440686909143754444232618343740430370723797625329496066488699077517536140752844959595823009792098936084882000097666302060100769146985488416651512526821526982457154919790631539277936688219732875401768786372950458446734851498767152448213531404605106765885134469277166718563739217264176505226249649814044818610588198258962675552306115643459861276062319051275393683121097758091961839841712107541059506935799483099493175376410494723548563276351627315776950260808362688627562622163513069893348060575844607082646570498870879487475851984086459571192001150185653369092113544384648730725056209226101756573506771824783430227062243208729057779134911953696272258861413205174568316942213891468963468149136480204766091698299325993724681362686155701588454317419950442125495078938183581510975745668333757995946052360299906724821761472464653364551710412724331073223872362813006523678796748376621815867186964687075701928575860174998156661321346217725974455084107194034002362376265388826599686128941638906984211778801325692440479584462897758858228257762658528828656166738975305081088943131361955777222700160922372694610470443729683796576180096330208250169423619551755550811636690735111115183188247240979212495653943335969059613126504254083216216798249566178700715206710719870876165527689784227720284698361119421045592471695696902021808591827272147668297695625047774578856124108888819761497101375055839830932757290770764278932276805252128834715285294641230636451377006724845032812376862652966960899566034082892976937859949652445907008476969926529515844003459123706230859099514284360481965012344503373726602184378532360037863949808174388448199960920257146421340522261294603368350166978759768179194051489716163589032529658051139936898829810839831955311730584128454538619485787359313504861088493772340136443030827414577183006597443301309234485112952017441815881035673783212804955478808943701480998111984402026123619396896993083408749744412342959887135794785610169145075453468425714862786076677918181849112390973690614950184455846359847339206202583638560873691110238737752086931552076419396158962810762660434623912542698728330884776036115960156338027759236828051603822936449262909238918569359819180371328568836208194943001524600978401368986875228947766516500926893455301626130972193317998003791211772023384856984457481169566829492667114024186398975746868669396727878945044321417362756698989075955852426250243799149107083886786167989968603416345980074453404748826523270872479438484095872174484381482273419860883945103822072174917699182019826754544855450081602401486207326339313932819203358299042285170012924149755372180572876633060137199189068612689837349325510640720871134203313375071304041808793340537094281478946941505180158459714560862662844795434926668447352175059513703273805518980818825296522917365603449792239972159701967273931154594231599099618744021979214416719139346951188085429117633591906111667545588855358075441629129669865147224716580034302488223556328312494595902992243352043261469895276148508105435377789155447000613121926390981616669505527108646393350849774213781026660698127646148579285123119959304302830126797194065585539132992007903145938841488389785414476364152930153122037621774883696482825046847973423278342872278607388709734950221745801163887816308001463994766846443334505884779371440040283354695870771618969512907986768181761419131747702108042065719328203976531855625371466913305605810160587435916020642377466784880784908529617608850823499077918991792994017649750590380425579779827598108864562606574182800902272996643792640594286327909649900052447710663842971666305461413175042426460785232919900094122978887904988533990843363750977416318143072706755180138042031536456405280479284630988823338903222926784298550512877579043221805325740996580533009840466804150811282610150752758301829247215473768783100366271710853776434748953226845027817240854308109230278077797748943883851856693477342725008309689439052348538717985084154416271577344615336213098734999146140998135372175323635013928019208939504054733571825230544810808549997100509446076943794006680273706001557641436514436662418456242155218462259873453821581264067834511293598066026197614963059141573910964815168738957218131894961436135130076444527969609702491189860071729798247259636178347595865625294856174433846914077465775928584675330641424471215755661051510843424140405557936355548461677931011750440901287514053662061629032247061991472734214218543765953548445871371408209825196290658416150324015707966424476028295358716714596256101284227383360945286390426079239656675413977023571017842998984517657059695717621037500919049562365120103264996100107336701239228233559912994875458145337869324743773965719406466660055207112560339063335071393507240942961494140770843666764562480906511710859040428370877776490477190375108474748418466915371642961266485028988885167997654164338423866868579607522922156147370285601162692498922633688353144946675022565657344776063445427738974720155945785314526471803031885039831450707635974656943489553689831902753661534267630901248181062872445756290328451383388646155045092552325730971779935156825418110779665379113008371160797774046136586808237067730175480501242161710238092878093502627686520520381474255126892125036398015106054022016578609119898212152091338646677849381620344831346883301188056614057696050243424816768472769110045539052099410125759323343125712000395752816364503619724043991571948189866512568249071017853337637433771537436330258783302938299313107443874226128867902351272521158842248993966578893822527354269426471915703061626172612054798106508608535230296020583589367409744064398586837644619121543250757743315312958255472942413143783901847675689066302485168692966477135193447528522004608102013375102786972617603763637638421342808833325795726708103207967902960460988284958823812456402510110051951225332967296625934076535201934012010257435970247133366763196500415176052953544855214059523484502410501497139925148188893060124124456957847122707965669998328938828758437460804021471282987258158622319302956113109162333208110129710664220761961692835288193719079290939541190195099470198468305708880776727307320344584196798356548281911034743906631527976162159583547234544182028540935215867665468443845961435095690227814748380432310337293198119150299150655866817813169577690838625507573888210366385961183884375153329667507983794504687426043329452820528932767200564852207157330216140524049404025930164342284375147749658691892582050535965428043809104036766919647336851042304574699421004302350775723275248558921236640411818253006564246661496635050595275008947592918008942652204760329898756440261077196870110466306399445820819297630924752828387255481758120481891156758488034544344972079486212092461720721649395673319849568162992081486167386191350708485895085465751290681030364704230641613845842865695310992206449645793337457101955141055852043572130102205311586308252787125718562462819300676144936127421696774719999636446474866900572304898390908794469813436591873743933622965548459386817482682277459737895585452523339119974750281439742928738254484339007824614232812717519450326223078651255077519063120331057321412143315224737201330079542810733723513411383394094615306817060237496626906248575465680687560367737207074610010435525318243948036302694160192586858920455254674638321111647132611055167785693224128029835190863944179529323967305110568558711019384939742755843644708153200201825096403058543045283131498145147527591683877198263028194290874730167520016421196833872814268051035364266092362769070699283390159923971012363657594749845090493983746294824862504175349337835403138368737587747306739503974615871507501324711180430533336599265044280432575932677687832979615155291290937488498082557491279817345854056376182988451093807791881349534353228807429805732194129476815641505247051927786780554039097465812619241836989626393643475967036263520651939853169899714718754708191442828026069334977565605323304965996092894186350141340001346387398289617396695169457024931225511341481733252044947618658497333467530868099619111056628001827363958126770755956738914198236628112559495547623149639612884282598577684036861627361080316767385102292233187406176223002856831624574618623234302000594656979723781632858940906349352793128755038206652720511759797125641359251423566529791417882067520568847320138064722165070258172389119197765794639677583125492518285026110019311064586774582933534344161822680405020026557119650696425183191117787853198783727594816790499340110099720109271126538789934676090320908082189977081939367858507653576481467325700339608902612734790526435640729645205514393939158319799137838187044868777738775130717308908287711728607535314418594651119431788024166115605559713545564783225835746745284598661255224437849892970097352993458754525728019972588748452242854876189402145072463242843410484493971511871279069192143412166879576440094893847840647970009616784847384114660572414840987794692736197974580645462556936837943855308337381894593821126892886008041402699174932654867213207862341973154122466416897456317851587739654916403044647543835976227338713302820231459288918910354994013491160937000568285220757584944063391637896003919435841039760665244911989344756549469410278385908773887604712885118502693523688570489278094790990770064580215632338890542846472877699287034585461069024646500263926956251819792438803197259575349009958411603166168637256986671652309677286982454525533633733790332096337750341228916195201745152236127147649067338720656772791240770867589607524697717525196331304794752134482562868894080870221210030130104371783499811688462968024171170534140989533773330867152304164320834745831758655327843279153365865516975327444290204663938094566657318792269403177368116649060882886215025147758704500752729672582033131161180173717537612854942294446041163780494435774957210607670770419028015204172606242273404889765196397240583395061219801005759283579785343816167161816802001575562670619937425130384869093805667928514262236542917319151367061743993680762370216064478352601375702178338222070413707273199186282410720883123932048993567263348163109071098314435287416492888257153641981845653764388621949708462909542323259272883340459287250273952727520874488835277143835195915672036898349129195941325407121182782179176549256134763091397132904240769055414465656058897413271517500349948237514937799422240411805464080253745133489999256052942714643294311446714370202340050422268734658599851906216944781914640860724067444172479819074429760115561648178849770058262277611667310496807158525430712313109369902831192077883165687364174624570669111509927204476287903472466138200930249527219868012393671310955636698869870080163666036158283518053327760490581626539411315310099617152614386832954490677620644656050579679291624905058809384441127421350230892716345665414924646785169633334359206682844327373766234305992946384075797594507672743658218293818153634588376207892065876361857153105974332805006124808587946501136954609211817866611540913792190070459465566844514380015211618538813155458642289415456778087614848123833301544212815727909260912675799585757429054171575840224946130873653131197098979483107468761229589629700818771714881744340512805541660721257581625232839941688295093350446333719472880367410995659879978920742889908570917998265683727496293953158822767154252746071634341793938821208153427437307615606782201451541253642226382967957833709827065031157783754634044577048822929992953989690763565874578127284326499207865234406716666530613677597478798042161212395589021505867960767739591876060802908252244725760085325574239964424915956887550436152955879767852870486018373325619016899672879398008999120543792594364986439551504137127918928409034103372508472700671700852958096342565637767243306402279788542688423371700666334206647745137584179287630652711343613938172170852556644717509358211011453653530688450826197605165153256327847119660258124197616303222082077358930588450333471983996197039152826888785951852280129789105210614830459230627295644207235053282176969796755262522332488951375028259524099852876316940444694214371160351414808142146637609238236219678141449379319743662610052649881617879012689156810690335063337821024409345142804942468373412460001737932887938911517486103771202004822100528299059131185194457905350810368811824627399030107311376435344737287604690030670613763648949455398413876622718824125742708885544639553215969273406669139440055174168481294405827596234475821310771418696808045381746670278706190629576093928391125787564114004901308691025485029507444043565422517411498403723518599658818138658839155572111954194296725172283462935718798983093696116933149352422215144889012745738502269658411508111257081557572994557891433439763715452921295340376930199168980479884085006784872943022275405884670565835797150656994038720628495738714640024099390991304589884061866625255139493221591900503788063016479662324727494907482366290867173614662709276138042353203738254915064079027628999775993910013798825425559954498751575926438194563353436986615449727868234788774263427024602499391483446776684514816386707955880773828774485019969656880717229463206184218444296991409033745965265346398491826554893260794081424671453921842039168694456272840016144027932693459333653821707557077639868623534137739376329723334612626595783601265034699713113900340068360295412493857655209181477408670189606731138564311356506642375964239243210882094094942479527855016021174051588730618941904450210781921928278585489891669826213016524935346614948325335042008428084610550152187909164623422408216666491565536322856937717904394766257571850783112036509689328038956665201456354784387264871385940111581564282232649961451772725892494075779128897511053958791428354336987050739962050165977014738861296739337553896509306196777573969680303927301228238169496203563576485243165968342748487324574455178307968195577770518855409012314951847443227875185765134946369638701742958870667817714958693546280551334644137871710587603359559240701014087640392888206408760268132330972730269097167198904534978922964085960784042135855151317068013640252396847232706986709828654216098731645904123807875878373738597660881988113287437045264043350988844246853400335401359756343095449390927984980319712910416689155020277074141973995624963668945767699746489954620639937202557514851359283745896493523093932659560319938184432998939864177870870653450632130794574468476230907514085508421704380277882353170214634808388152886805023158916027163139477362476444879466388707983185336397024070731564198747126814638644064759094333076188378717988055734252147315880947683069591819278653125148979492014674468771961920702599423731044877370223412566945771503747227745102085472843233097534896504476803715595409154216643610292463852911420666657094299180543270986496783064942831351033150081006350970349285369550972127457936391547486375684404494523282347090961535827807582904971772802593732774660201203725449515660684510276053851050641918569003652555667222181081155443297334905884620992067390956507317168799795089829800820084933219852929474057488206517052819461755314021183344306482247342065752398867320522134399800287615371864154954775716068877430560373805906351263297241089635874544789293381875528767442134428519692791860918157387292004909837173304847814121731237287290557390454689781131616574769895397229162020647924173008421077545036453650380775273554669203053709300791382596182469828946671166651239296749746014191825597085474604309626490512949660824350659077888430656619263919939483126127345191098646950147425983655643343393349761607798625000085024050841112409027392801134395320567550817837948332131097285669137060120327867079226201112738308623185061985243851880697830486957431385673373594956114680143394295234725537649869292969951983481731276768054313328084207663290458066383262639440019622882097852975578986114146221176854950009852146796122706965359085674409309242980140748639766508699273692850748999661308861775160007164333037817941495996590820657087261742003777908950341279154433954454397720258967883513792899465844385919625938328406200377456634170017372327760251456620785720572309372970620341033607858156953487759980728308518992037551964816912297991752773219991330062145758109800840737916990555956516771973247358155294200983760796827913665328958811233336679973048165258785760695312536187587231960428387013473297429740508295134811582321002275073182177971918477675800276781183268636568282613898736110997278055622643878984526409270812210095775867924839253029438132817514644147910214589998510870145644835415854568883335208056993640006698727975160936250389807854045387256815891670294253904777408814718328261176053835566534827099267238369468170861151891760165630642247799918987982929723399417960267680969349262976873545201858276712986799138738865124746117939208219890386641982152548418271022540727660116569201672095325138911498864120045370999274968828638826110507267772846026426097718467263211406748348997806085124900219891194668335959362417727294721434392763480171691617541405757346027036205763179524821876437047086232026775041270291057646971396081888902690407991403911256240493758130981152673673043355332339076559114163727555743484172010951259111310127079262004325765560248409130784279264870253490552088243692172129460436305916587543277267858572705043768427350719433537912252909358690867383624120890958628593035569160102176739285166264106475458236305840741206139193230639414317561801190049391539594001631941547961227652706438124578534348076206743159752163870632131020960617966418767097053940167453488297326804790682911941483709955263641729702395463669153648355221152269063340805256358186989843994496168419403419196320930180992774052948136153202971524595959985988379509600988683544708645914388786073518533646449624545116739948581501779398606281766141901857011136011899152781854460807245411970792355349282415497641543558451672540860221021214419422333606597867365449866533821679003626607065124951322505739862486634378620567125167205633710753394063082954220665014060742070904261890339782566106775789956518919616823049594755171948127855604890018254497350300837800878136734159584176418823041053007763313199267509058046641090646564534586578058245125816252861723081241810520300665771112619518725430707069749775777233242850209052129059411922171138759661816938135741582668440382221475375307716851187284652834774095466388682577430976879934009537161852383359976759453331822345750198178638484333155649407941334525313802742022377730191481567989729747676580233252136695978811273158004911790889570626156393745811267513594993658363857074670746777731348813052805810051944116690300060352397884384175536121124365788665034857889320490664148074539679479615982269284675869641630912630605632885155287187047731951260193797756105525276333115645289910617249025214998811798972102768360334820190357129321013779423845623131497812346739711266402288242799094899745899935605428636508599296937524948762409409081464473332788893831042949031778515279240092032673751279784911321586330791884431462312507312125062420241723271663812709476195916804700258928399676784571006714299727673792437342490942623593105110138684174887763616362380762332907171013209000087237587928415768247122867016956576463456423424778741598673774787433872684767515910037240754773707898186743214552767888792219787415493329485479310512471108416123582310135487801193025446688152779890031924927891209250887909749987102325191319669166090532748551609838980801944055963824423031803182175876285140691717596280106355793599778711321845533179060267980753543857679608131993426727285084464322317341117603205369671375467325797062535939698488557847700179034531572310157988385178876020571447559296118366519979591448393791697309070589674273752542719712366449458932691810544908274871776882763848465700923441374669402926392854239743923823246246013451471111600749948275672243000717239497874360568954615439698983207073411159683794698159715475673690417416053537139443784945045530146683271073177505024054868225619319716429354537852137702351520420256031339761260988522242680103985675864620357786809177958480640657098529571899103434796450932241313279373983536238026418239330148417021159570831708543025325425413497177663375657105755963934669321266881094643948108432441223708574289705045822526784180079276382210026231631752825559984334685088655970632455924117702997514515980713878523609058886608338280566249648104628142832866062812081618321636240350279779916444904200193755721333852684720164489810891241357673908714290421289512546800214347568484995115032030386511964416094302230839022345208015948254308476577747989299239020131808292001266286450959047917563778537413737794027577958231356484081355056991618431147267615438979763941143929722749224717744135430342707654739837303134576766713808191153690588921474045008320159397855571979685874191917192529364570134772909119024281481172222137221264658421787917672804683701648321467316658160391138972528726128456431840797518010326334946562973459553051323132787172570373165969515290973255893739702400700808231555514950905151851531989816609264227481862680670937517558241992633589944787677431604739018020811747494544813104362238556666538001886316988037184154646238106595754282645958096014532347606193424030801100143077703414127725279374578323915394127818106016443014117736768587182340700034563748713541956568398318462317078465697263045195422753668158440234663426158587564955313203175092959206771939486608528154311116933987455596368424352616620722858595926662915586394401980206193354682170623260189593172611823006715265743539893721730513370998295883508864515889998295204946835368001064163253446694756817388505833366581077452664194204895481504338111469283398873090350548203799574207053158083960789315824854951585405183547174231179646382693784706661311568484951641284681090436685384763559305967301997847859897389254381815420965990719579780241337467693531889080450510206245889683436116848131858344791906212027840255773729362368257496875195745098479079565947885566671743761469092649786031713118813206193079728598671573860505232356395008298231345415889758248830807067238872097187738032388488105704081712789274054389542923496354310231538537257306782085348386772878398145501492212445511159000389628573025074939708341358607368347073307841394772338565841183142822293429254017393181426749022718863506597652594137467737072291897774654422856307541728004568803335073084164406144091899224859914840950656059687228274344228516710926670848962796798322070788944511578919783387083915968345745414422921635035058112159551707616602605082376051929152903887581051755007235621187337491424873966621288722749759492524322391868396576855243794950048347190201817556330183978947119910854069085387463675675304742890155787723754805702438620624665156220698481573217153505814324706606727317242993846589575050932854046946363610532193667185832247275812022344755864000468120834280870330668250019518770269396573965677297460065920532887254102197676390265334907041499619205544272749709351128377643266742044587381876753405236346995262064484916509840899963067684757146353590369541134514042058798959513966109784255359235263388888805098519938634269063934055894166073376233588886351814924943764613740617301497414927744201113670653183975148422007935783681964911608317011775872096172288922240639584225665760126651451642579499043965342236035808623820887066906012767753773374069557280454937912570145797620110559581997551196465173776702787909374332687592409494181565397716606983350795047086318036301430344988360049168365365702224089871379494613164630179665375660044800431750903585978332974608681932493216344514865803777051540239799174852710955646473228583122866795635770151020219429750238105649536239279458523344605224151668789984789693111592841607303397626822140547636494007319127187269751604838523920776076462838471182901335260541925437723322722568227464703020658462024744510153373210426821457125330217946615868089518947996934561462934662380381061529833882008303259686347556588249812807784958791139291923911212079422692108872687183124512597206629112335342346543891030168533703311228349436854738630399565689120615344823912861358653033900259651481607680352626998571371305773981691755425752983358528256057118525189080410844651713783450721677715077238751967263784606102637136562267403226382556800858608605647045617321088742379458107132422834475844762999215789752698153909439967741333328255328746621941569582031624552567105680229124191339178762498532640063820614540210126729403229981537665860165675526679122669374146110076881865013258710515417792536928122575797228247172194217149512749671133811883617390575100715525744442473268587265415710030427838288093714959851575849674845054660138445775252628237728955312906624029134772263908888187221570146623970569775065171494939425044058455469465246263376363287163845940152252743124207769125559879064646477908274934848826552521407188549675106630092900641562509135883864521476327208276760898165224255748514079016215328347308506418197118313311011170093172727183044283902700340797375335330164705422010781220304364154468192719657984119263991566259621132664333891433364433811690928189528143896097002743566531933736528969481630465096731089457190054867848738879528838434745294266556263932363076072566350899895327836144343429688507058248107468201332474897902302661354631816412130236921581241999909290551659799210997494301093194067257061628080807696645359169737648723777793335174526763979581131312983463902631135879046208768216041998211257582470058963404547683982775713075663169494699503593779706934218260915708940025931940714305655225246058190563793038053222546108250022819598411809654188357700319647686632886934581928029606929874861898055116276323209182570463413004602640488001535149924361601010823402241519424541258620267419935340062036503792856474951823516146386695982852355467811657093311876023552994009241082603836150409463742583331473671414479196473977851531345174288208627465614948642644633583410520308302694752287323824666170113666805623498783461381893344357059143564576830242352484142575619976593756346320992280528414300400734481294045718670640218320447587476649506261274359740195223981052336088562785916775731649060058894344474644763386199890667497241328133777690891939910138837558607905824922885948103343425501832059950564856850696346105677578794986640103147801620215045366511739918412131965499057092187064469342386970180522623860356477947270471397682382821954926890966219970848842792011609256496686416466010067848235173613525864517582442272955995334660765308990723204457420753719545390986252106443919479917582945803885739612093828397211846424631005569032605014115627724666199140516119180396315559357574165201218160442716665962736322753378841573000549105569901294401618998523948054194021034884243512219554094873114017938889667367836756792905742878662119364323163483923335149276144005285728438280928763383799602789038687129180914272616121927179751223334993780573702546932833648954383805759258599052638682117281168707333572237797914897091024300348849714121980885177551940995539562786297394462804129412584025623949753642986528212722407672274434811540114177723825422622358280406134985896017706434894508022058801466152833255851151574522262183825878566370821467375502515624274789458721197935450841502089687782138517404371189994558600776572520274720673878256842801241918092712263925088513845965003875533346063493689937543682056464168427019575315040052266998579379610956317386084137470828846343998114546117756805297911519277674779197488729145284253308515956649230965913617880863570468201701331322027898857359841564865128335926502551597836317294514747128041306985075532998257938042539994132433067169293035875251576885658762500782459269850272834885544861191824950176502099780807462807684341803445277654936020372995214494075171951820519168884159172435311346986416634543750010212161037607652311533703836084658294704886795094491635452795356180741785199018105974223024351938500193274249422564588354311353953186799422456096749267451703172926155822695657432400739828549989589981680407060588162748284684913565193166661743013828699051218732120619773185470147759115289116695670744266569671684729275808698587901345269081426641703301861491947839066623451924992767190955907481353917624851965529562964123969862998754255462578698884371444254988437467286655750894667289738058211312909266859561172954138665737765360669231497749163496582480405731941233949273125505043274207619094180541602926061265862022876099431022180154884856543180918870799541888039646538953235114830170620774644346896004906734750318806383353626353115384270462614341864168106731406704152194692862128359264808661337572751922227492499142958984046861977412896637072093084327520436549162274117883773268950706031902760605361771508773440902477944759989296726343593735536534123842364316101960065989530339609829134475342298733465390380385770597975262090877021709199328170839051390659516996728166752375935572693059373086737030632232949719576910386452269204160105679501194882492722346612323719849526656006900640266398159629413102795807186288174379941678844045895067089878064802499723839744832679654873203800075869076746667299047004622357415920065321085062468472745312830696373456939188734730011321878530318434679984917248193686026025011198107180865867909280231490870223664803366756580934222381951138984800493814326929065288344729367118658178325930956922067822242848258078313769888192556933354219945992116311802952772615973396566391344508775508727733508985222550198202262283681427298657201031940687939812043677394111731570060547171954713768238631060866947327096029285163090087507404097075142295716419282584995974750695884566749031115712731454936235797236035005266858985879783497527904882823609965156243173804572728225009781790572604905617726941205311885712978674719963773606597083035069443647485549358391194812730439257485357625097683857201823175608549488038508913145415818237376552304994414875467361047954740762985504424392402639001253844853944249612483399924922705519860403634949424333556515003157951268196256209419174370754992469409741594011007376125046830176917964283491354359280907887054338932892620735256869112543699483801782690493595853955279686998637353851022661303690276737593072063740224487964081796320434694572932784706390920476300390281808359095533900727699295032381362402478572346710650221746718974625775987515819397514309753997107645354445665474626144679854832196914965219631068213581573082118759693333732177307393125659115039361639119121922781941061693322344648984169469306083075123271299856177317568155928052919002567168214541706032444820750855059076695221574850962403660527117089043936215864132577519735647442599598047179639386519926495720061978182349248332493548710957829925676193916539992028874656674532743379718656882324713456368943102903204403493980114079077126146926096342168603493506277454130555891847530651793517294370718172288766022136760552127576328057522558847829125578726854709413386808902679437164243052128690344271065409806491729161215627834976432894393947787603026210704291643497460009150694412642402232798202132861505020622000168939130637992039819157801458460412492960631213435946082787785298096066301866159360310515171150211230482130611024768307183096895897030619911603990760118885147816060771459182535517959922636087295804808510388918281113110777005728181324644474842553480946853964075520226691139207237256978026103130197495193430250671967376141375518839484960153229256973533670670460775246124539661133959921641697326778347135970934028785583330603723219236055747715606514196857998703637727237165665163441819183101019043484843393929529192348812320672856272575752123655149465440745753325731928404043454817371791302735514523615019840926174054109685833818114241176337528232769224711932938918588210226112766430723387655352832089164357818606567563508525949164701909646840391796213160421214337845207306203795799421467035328100525788382469303052372398029783652667951389198680446570457286381495858283192133304591099950473114338759975304627852130512859339608199654356454052082510322140403559281339265500000831347812752772363953647107650176052282706698954811759919877450497063394028394902030900974930078360390227434232862656167447869487230774981349172457627855887881883275504355673103189058649720194936183527711000173424878741845444534431236875797856236735613185730116709957209660707654656449803386863934769935259748029144788674617711783155351161314482629194013284380946352156760663926163796683544842944519019630788414851526625216113198379516834026613150310908675700064980661799474454891202066085398447734948067596831765826961631230682368918290829396881707831781799641629420687338523912550806722695724968743874256546074452674797098054156593013629066238590327827638502111058033994500207783903584325990399839010868928732005327443488436026288426364068622036413158107224957038755875530748255166775552307614308216763128475736697359941695907870026331892183504695226099787808396722178868873044762179562312032195290379705055676063085396496818867667187884976820818183701673158049382756638249685017505295524176758996418680582801519343973192939554758734411709467886596165748146655304059570872201216052960695241297974156873388044700476155851449125281876640288710511965457980940861276680173050779059842632079225870473953253709503972028155361954326385271066897225133400913352504620440622724165694628889287172672618015747464945934198006928441371271428398663653028831961408697869816061178252048781097104991611820053408498258220207317007066720260484250110567370087743064181912183141006852430991593654369567111466248612595387031836573129903762641864583835699253841050567348929563283187180131763466323054867844747472820009941131715049023043258314047260688660367789961566046435343804363420013011627887438366265977328181249785683632490090417489746137530424652125699919669477442802964423178467961076273012109136895056729206624950124840319967584619128173546210614175065545322480806727686860522324077037571816166026456024358893198758576732337667103379109167786836089811469808488037514243055483430569990707873269942619907410691675407119255482393629182588065134875426063672339306482019756375728203555626935700820037957776589924439080148857988798706328740851116092117225780370560620257173289859205945716355551242952273565892629562223632343524691167559181022770203715257719896178949196827140609434457947370565206377254914802353453293429639537355430255939450819678496004890370951795292658999315380642276169890734067525990297335771606884943094470861865519504487198036968929214019698205315845016582327947773558928443066386844881628426921156599908009167161874857677962561210090839876941341772823189197157191022002280431341015710296053491941010955473882185997342627260019807983151169838361489575043303189335333608674453091885567147170967173112030208116613586835161747409110566653682599095205157843790446655145470720524573910124926301942823936626490824270850643474069838523277776866668997433710351299865388630253494170171442946045843794457135955120012238483149027064650592264024460983937870548152747083966665726449432642035264658361707413013637407836574711844738676022790610108094152184279464755322416688214976754582654193438628029358685005271146483049803011781567689293410309335108896754535231420045631958218632495481710272824545308532828333368437559326903861216434708342175622717805683234761921323257977461497352546568822088665790741793252151356808726877744134301822624896111225890364983635008796401929518015878669591770694267687442300507117744167346261993012529312203342145618820527354058581772627548950415603192881481817920459864825306636411442222020122463880829355164024024747886029835021933677454536474805354319271018846626982590536932579713389054692532512301764040190529779362304458259654044871514522614309258422188530958041377671390544445271981539954994068239213474396286289812607290272471992847711660541756345790684755909234489600600854117457429684724070922255144467309904586187118183170079439853389790849714992239066329723867714244262928578083025045545683444804671354776200333060386506796286527439812269069152698604332725491956843725601414550839662743402392930138202082187981451752883078977956919948114785291149969108140748133541995702143642325419797145056259629119559492008080784513220991620054413447843454254101579225202695420135123799580704603779397913091883229255053606700665289738159891718952245682517475788169278747565130716276114540721174819019661836688529365059234549817062153179437303064290361441298352112585881197220676323922153839342488359912598229914214974195643259618772115688110414397317408010383965551395543998478064556920714483467743330568617663119492370534202578124535422702710702822743023083451980862207048603552288508654037176642695528773519104484027164896919271918067025588387626344799772808663386966521425155592077872798280525043093009250630157089236366425594850511419734817163208854716165598799093885982528665784743450497123484900008501215854685447286167831313184580281785645198276922882421542928100383233214102941054185243123074339376612512583005591380805998543949890883997086279397050976048228380933411033839852971071851665721294020564026571643918601885263720049817559629885759526407236281471964481319974168621393116646944717976128910146031624209146764552689273194378981119742069985455860485144838333846981973230326885192613951877250368577202828632322071674228472287348342400955156219258965992589442479086546083852141020482887034322657215906019428454835980173953967170858938556053568913795327456361688967353857545906296461607704216619876150371279791614978883107641875617638575722775625218530198924903708492116747387823245372612284602370685838935644040384775026417864332762658071723417082742114895800743138148669532813452040024957488530936276835129780934219218703450474384343663484511559396609298691212684374747826121636377799210393837423597110216867150440107473095088269836170386471389808868617867541242153249612605150133749396667371131994619982593040161653079088105831627780783190268035569657176010766551665150573660945112926151814046896902971832199791594772749617888832058287262702244622533164304600905568291197059515659520906074062614778983009764933434495089735494863392139859426479337313367651513672316132691198922778722819016095181358104552718052265455352668774124902627808549905841717175867255996493214604338418733364060043373335327276886216963980225734564805732262608562354073125715810822971791963604058374158646091190070501547223309060549928508849267329420038424728959157656047923685011349634004501808409350512861275408146534648499921894168330891884308401622885443222069008404376923793476828490757975782854884695076076977866252601707236908693388146095610941314744433367370778354793292528554298376846789398510687647492205840478445135329889461140416734684851167585220314995934800093708079404834213098828278895128947971124208128239784778650510351264992963571705308592315567879468047100577524878060419875012490593327514227909089473471768777463855036006819391779281730691015779843615165403351597030006285479652423326257978329360497765137122992014309503250320270578396379103316127281227680065718096542038851891059008816718697674569596066644620204388667264501147815558960904965493798895077319107885844256505103680850217690769644457653152697956841833016428691132983104734806532646892646802827006810019104724270291588501819933943824539958209408246854794668434577896927664616133641324677218188114783089241685655363070415470059691106626564575782556329108010241102139223019922478359494155110970248245057039361026565958923224401325662684460914429440820819712286587803727823614240974862973683359528660715373703899879909603889186533887468282312968590551385780675393461350708484382412213527570802303816062628868225611734329376662658856446215194434447356420473043344130741072677826280045422862960664161208437411506747812048348330496333146836057869167296817918865498264135407270944252088191357030705081543715298643729165153652138087728552440895035959878297784099565949297117148855204033643928947535046043939228076143848845870053962436930071100106019538680929462587391342576571317071501553577797020404023749049489415825641496096390196012849969707190394823873243952755996091311724826077288652771531589891099913756500943255570968881621000989334651558972382431941990165675240107753338362623330754423132250733366495144454223674360126850815496346250484068974942360732360589127332462887918607308682563194714105619360979679523252292361551729706892270351273928585643889626729620774222789075620194713318567679635623939981367103607055982804085931285959060192374613251312097146652606908146673850151294969186734194319465682707045525752246166118733405124837254416831439627227343448249242771859674799797398510044468882945853382341803767814114431220365484683587401949222387167006398305237003563768399099432649916700964312923046169845836031427440952051635096504943270925431199203727779166228242886915398871585386043407974454349068838089616956493732152502917438185794841687795443716922972978664235786453078604040654680784098679878046373885533478084964932185339335628159919224939076719242932230929218702396066477464924478261178605274016537375363194705610963531205735706226330770220161946484551838926200774887598702815790690817855857272789468684260062662176244532418675689453933180670690327263809913236224235734958651810533951582836883806002392460758172892593691777762833969121658513016463303715180973055242067806083328806983431323756391354199623222478211595883997881492389783851638984502585720318432204586028322742173559508336326693568364617813627371690611983691647851964079785980314088324550807112871683827223884213098438710579940137389163222047278417240510381663059861566408892173321050006497729830925207552642750242215037963124975745057714822834287141282077004675737508850888739150262116882645657279451004787838698539078274039944337603644518115913859747696622411648499167939705329897867972940701048060895745828693649245161072637613620797402199217659603730948484187740337515985013086754591032586801598316661771939621527507777528309056698937324268541790746805360501312488229528974057769645361047050629852780405524174971925391321404902548016658933255546715040832929920391851035826225763250251504177067415907670802083676303352512379707546152788647128090532672739325940347741684586790278779761499126233603195312142267825277551843644723865246107533920025035219906629631087151424946150829340990255121570714244738925609995982655847464174089499347827679454988977073126732869233056148457523679600024302772036514876831242314623338711324284481468111704279716836547061837433243937480454094987454776569739088154466817459933382237462167907873514246919575567844448680012048296709637514944249558891533552016931631328813004272317830830972042887045487569391616487094089249295050113985685696533643377852669567973314461861508594305549542727923599288439230686054229695798540488443355420667131203794952543042039163484188512913221573150705800857210900022306466166239980338207593569053113926672221836170555461410664022496233310360126690540700064343999224658899584560547245968221592724624325698439563496350852011401073404089990782263722417005042070229868410953375184694411534579157570581935742763799363846587763441995267214511719750889686777219776264613370643877558726851325501017091288709471486128027546218687302017363155365989618380040022153854415704566215473431468452668635740364196688684851484350600900131085325027446476637045437290186638143135131955123630539543104225784675500413501456151594195347299917477796059025101025295517960376965803397222447087615474216362162563163988645361529216388626872140275127100800714020964380887511162212430514492506491393424286608158979515152313982413911429942704274986046532964872402642490313754866024695837209207682351872863995846598485283902470723466446299334769410751588884101325517743275024545051640151531340317593090058636077406926383118276112064606549500247613382141621813612451075201094899159823220679460216609364765257015849965031465224209804671809894548673728487469138921765313563305721796386678570916695056354830844193761812464557721458130882513266960099448305371165126084591795718464131205434621861770747527331769730797748075395153978100890635095532549345662363865149119574806345788601982305245626182160612376716213057457879047781707271325953650513942808025095566236253129476877586583537163566881053089003401962319665366465202509625669994429304779879750576503831246012470988140615209804107900510685283825560042219875645997805246718413659339661812481828705478031176168325345590751058385365547764654626552396345964876500968903631483036297593837543229227432597576964178956708630484346392502988474555822003361666818437474966076075012070599308284513984775652294693560847426955932585270132919375432525400890649227023263043926074749975832425985101478360185016928981495420039045291947545323936662617812069601619231413435689893292967659614235538358231760963967058388033851755009499436437316772758937214697176757028270944222467000077742287442627348335262027393721116540602537209187906982724521518993434959318713726224434947631825768793593762266044199070993825731309520891795037283065034073107004191986832135357574593099124890197568088368481165219917616812918561005950154362194872225142800157135650656253404582951265526892006309807379682547677309438331608243702718552162155661607362441946391602166292443734852251632618727693377257436461753810940848689476163334145523449149319209594706781101593829275577527727900967273633291195901069610163345315521897355726252454456865505404666682914624413036493135896003076731384981423589411241739284966914956472185940951814312237809842867082362051388381351294825282126307945590934094931134643170877367424174453593621514697540517030749916738990919134201140777861147060324261865903539017132154070368320663261702194655405760444846792870116899562491081936277202320249524347479279464179347111845267413704135641038214986336822045498982589408765750808048109769517739888914179113450300143543281748616727712987268297381586463460950328029672680473691673641176062496760930259575905922948504699869242182242180267739244241171391043386323694590233945370119550242037269102324376893910136681749029629741604655377029029387148537385513294120694458996059659900691512175203167177965838661088434247003201934432565474732887502168369299642150653536012459749180593077023309491087278207298756786855052119845620886942207390703201351810411787952270899852598966133569362705504750164720425314624527088831456452067416007571136788140163387002238369051446167230350943723364868480161663636107143181022584106854407300780165245494884092692093974037328593154034012009540984942175835677856697574311252109576116592522092752288689364303180566726798169698175125861754792075853053295221399066713430421571035265340200106934857322470804100364578445995083145819151414822851458621262316410744031053417197596404571629128894033575271712041296634840693426368752387471338138584876352467747220942163191892129291075087146198672850586901327434838732796752369708879394601978627407656839712432162633753963942461377048978344779463163439945056843442664481604263102997239156629108603547818027059838711108680249866195719838811398902078688834670312436606413439811104797356381061318468042390885764782388340678447869082501435676717868288561261547846230981989951075207843149682393339057985272877896513354635065713313456020202915355402741053547922591493194233370676335774880349836510519594324188036285116061119123293711812801683747415829515141959494595540148473054330492407687503689064749811931650889063493963324595291394546292192807814692230475550290678485203540956335128995323341236455112882345382552472450753871784889842299031571663358555565280973445981870151716830811395023456567616557205591140975213867709980651480354006338052950446257409329794890623545431375684954581492637933110789449984862572422191795094176840224427793665706488115052312922144166949965533647027518974047903453386565411457121082180617683325288976407338930220642001560647461855816711559125817317381972768545919356252130650609720002674874059673892860431261251966719830668682072476814809167140811584337675218181938090566514337248190329510875734845949513564714527376546381584677590217030970733704417434952488886806797390212927001845157805712994396754506598993952399280532015441131337184520664440731403064271370559734863292918624946679259649136280588541646322338762916515535965096159598372127028242292582595410000257558169714161704884005904840950232944475960491032869221773980784392392401050694189498514384975926279964609894162821945388788340261540111636943619969372390127468731770577126510060854803832838063146487976119625200318879749571094050571332376486117599686426268942416324718993723407780178845286550737748095882225311030275550158140296728468854285089484047021148363764358220344929169649841102019015250703694136097808171891741629759838233646208363634784063846482644422035662733342052027126567047339739148951343955678874957128712514171761511881195564876127060799937163174065080474542919694647083608328282640516372396249045693962654890505064434307327939816143297867860076902364117444314169533884751272103628332377347600803662277280150008248563501996921608607321364635394936740488927134289655626434597587063233463508995740973578610555816060070196987652518963285293725502953426248756444507103273771951267877547753837543003573768677367588244350955817856563587651042726155993042535027530671332671435866483104780791517016426388543180960863463490417577819998235887909055525857725958172381384218583989857186393372036137817467744450206063235635336361817127204305199968853664837294205367492536974787114208377887031893338033181041529239857769069731027697837872553962884358482068395138497009180565767888623092674990717975179600036536414556186303274761089552986609316014186506504973679581308457499230666156228772828558267241082101060016449969378059642673187041708312653606572582480580500464068061703355099349040346655808942808878788622414659520509884303171446820520544423352824232862525783560019616187729048800967715742347699633561498567389317526354185956525647300043279681439192668100653480415358557619565690515006603715909029162428675489744320260016002426822482379020558900365742782685742826773874944865886034553931966378810564908634921831642557658008834612341465509865512443699322152740965049155335336356613067667174960759097514183281265394855828147994089704125886082217973607049906912327282052637731329441245072854334092515178704978513829149998587884639265642315114689890816943861686328863020877383397158165359461760347537278702122441310810112075159134685627685239940672575844737162975529085241821977029369697266135234299112446789458639606988970586456724526765162689311401067286087940595935587864773680943939644449718419496253852241712645299369188217506057347077499816994472914430189175832858248237654808494985622030614126277715371724923797732612276742952758636170445725566019424572494219295578368048454061562987566272423646329474201651802316411204969354817782775002303033345515605729963224624762709241482814454682115776284719378327649176522721036939907113572978092038053175881135623876484008420481573878066423369437831013613183111162600069672156513524856867408036155243377864400818881903039927996244776661953163649038102600785719068784038822894144722187461330330048008523350086570559127915598000997217936891343972147037229157605607195428792926140046086860079755349918885847925042275463506414509312511436283315326720159834163858827277563932276959378661924404201063645484065851671483254283888911762103082400252449646932991660917623895959603423439773157695995866770666182423074460566267603568147906380171846166747017006738008604128097787434550208646497526715825727823535844941248108901910813308835634633538384327044494356199407191947460449494373205717363926466015790496216841557985160635330995581863131841524281844253133629689868318465420724488287903807107740801117888424100835280247999856174854836448338650038642470234863864224809997680607313699621305286897388111377208038750526853745080235438064368709697697733876537163035182094360619998078448569460773795635411692076091261054206414177422049920156538880164343526874095412330520997641014614705503420240410219354357475532653867517342863716351922312302593250027977295439517592546413742829631421446873806042879142240326216373914871171239933150768202737710871621661655333720211598078486060059443300252710429997255986036022801938199880739406900396846597486692643214057511625087513989337369603778553554763433997253950369071275613491560662242462758273347941217027145055083605966943410313426530630950931167586272467500500282837417580804586531762488586014246942615843386748038865307617050172959129326895303633738777781891974188223260931416502781025787672880224245653298419539166286523846754437096627021523844494832595525148572923528661207489058304467867192527217188974683315034047609970244142273422443854970990396114165690723116600784730497844870403234505421698333147403715421847491878095010170605772596024333385536122472886765720425164325913325836001969668223544813886451107706240173409688104240715288490571107897722758068064872080235729092005696073285078245919946826607996185777492631871562865722436828055722477872509316087112010837617131811303337559438883851480517990869235202304998226869469578352452938694823453343658284848176565725283707158999153389236944301935003612811141678713662249255601438740601652240805179780894041899070392186613767302697754119827798796985939058869590521837725239761881533267364746452411720515547000202294663593994819769746756693814920618735313883840505617855510727488267270839095033678811851880506466686290408596607744930779721840303870656773687347132066385882041542118436794334375770758215647140404936563434083069911054717366889466406234978678999940100263466433435016625525893196571752643254551750878095525023861023589697746105639681657219554230683180029232473470273930826055366628845356833507463757498273266089545080173715607941749743071694961924653870219882521491116882968167770096376899442924096953331885079970817285500013777642548910327981939481168848138726234427169995779758318137865379207707767252792980679791233274324045895931115072458926779843118461216865071814098814186469416663309006311682861193486584152072393439002508325745253236135389951842098071032990648940217170270598346873463894133520499933892579858014516268683969618156427437651961098384405514153823133368056122977215668951426581257281532610110451052439757557400949436000943187022805838340897564433143740129377486106493521503249445456100712997755431421356233905461201940719288272225691518878957948837175770863972884445339605666363125395985258939330234046383304229924310086911551774863707124821501575942961719262538876935752284930222919817006008948428546776692869138441081507113276402137531256509670772194354675449048669194054955495266197849237732870011193109641060825703030624560352802455649732967748174051593144146020173048267925995783488917715502377931266177850993905195407319639511038836578587952654561554735222284010044629032109775402250803770515202430490413827765842666445489543532967432688681818438142166164154214565972575852903008746326367065248654861733582967036419387178528570863869767276760716395572743343767412136726837161227048904030337881515877411710703271232433809316467833992248384551025331414723917808724077811951110113023380155789114896770403516966955481750850865149461719198782445874029940132235459676654361079961300202944614010923573883738944977934533283895489876154358559486611187976415387188858476229416549388206983887560398419189916117743001564629072962942910233848260452939756687929915473269799036431496881022890352511936718623093390729629977228503496140621701668254742315172258611567563376691216263158780805344850093874377499244082613824435535281658241827449060616555322085174573212760335193786806459770871381312469487321088783261368287210917049851299120903915525264986370032276698867572484014755844047150471491444314438954015248806742328427882886357036533317962434967861962499580781821694565929424205058588174001916635310124896037748656819634681953840006846227029969352990558547537349367731479515525398206038151319702741804774966285213274777012400685588568188363898943371439819751523672882788737564930536676752109859348568512959340125140909934960065659638698735726450000347791767582635453262846260980752459771091352026240181495758171788979252202179845320789819516567528555669013370550609653659895584710073437350284961664359317014158843662564083095212522711398425248733047923071672275308200063004650721912940335968848901083183640120211734382081219691954196185790564042585220990740461919400613057999133293009374241081755204700963387947655305162151191743311272391920031225253158317549878424273802980716588253798491854492501693718424012811174026831999536008204883952310531945115525580397457461372658235308971181883467715955488786708613996188754142929466307369346394350914890744191256766281073994089832341600120320286834370937910851256605672437127576878411939447737530864136443841664939447943103902482614683126630683397733192354981841219975679760961031776009910206438778055995023631032804318145405544422905475844794604706212330969150760420517095335113338172312425831904868590501903299441716062718946547041094535239903264825274145130602336475240857829504516896408978197612584822105280668064157911705154995725861612917893048958562595649914323474444579480967408193326995001997052435932046181313066605999720206491858098192406694760500735689382220159786086248437377393579091448839208798747630804347837915567923505547084550667351966610942854942742232898893722937860515569213048344862888256290399783584961699131615818820673651425813054192369926494818578792288357492157609048461116875269761562727417073205240203955046844223946065660189470433354840336183218608065172623213977234078594198048881613613619234635073499810832990839565493370593881196287496363224086948251970077137915402040609625136987881196633711488206532068928879660432315145164106753820753099362987198041174735493012143964158502614007115121042131303284134261133951491016658851890656247575675988174701492155235472032458360644612678834418151742480412792518295946434256093264081772708113133395502296308088953915554933146886700382740053287446271518616510048572552902094352199890568215174030310500113918648299416326737495586707295566596295091466605612631784668572889929922514958756887291531971887695773676485695583226707543554331494049524206314774417612294282507253342393064783071116745939066958049469949472439983550026020700565795334094073117781349906340360753038412817840663161827465878154938779073389816011766484910494676220029713110658932366156577052131510026531099525950851786476067715774114652173083486268542481194356595634697279108985331960010096989086226860249932660183844228521361804120277108585470354221915969224581380315058440977397044326119282902910504287848408649300582892245864749566405270313380833039233515068937890192947305290713281458858385312447551589332911563306712647673563751642952633367882298930770499906351055570922350540433141070942652792734049381422691750025848106455047757411224815049920343886092043978761446014702001642875834968689395383822936633674929859319598499581613671899048960865042784654098428030080772387057110152596854167164367697499944920106873420674970237708675374589391747285371023265835683246131935091597116837396851568703737856338740648553260846793831779502172883409101015682068425105113909341761121152065366547219942718142044246769374682795026935081668468635097468937309530705291683768208149125305334394627541532562511692926339823071344733590053650853095112978345832476019691651131905151257083219392036682014316961072348636220425995957863266072262684558116554417997994551733173082677547099656256855484486902997558607032685365170645581499025629907960456938095115597896595005708199684052930431584365063316303760247442234714168429493825648394548034810120690953716113441297273239109639309849249951687798792426846878988236466857245463302442868427580645765112834218649741575004269643112479403489954832473060050798154513725568428798528583234406623051999691472037020305602059221909942652624202869470347764486105647216266555667272947106451006898533467953461160894918847515516469514109549531383695737321459289352402304240308536648141019534500517406737341747037049785664502294864788263073694289360880406320723177306615630052243401748409158978668828021575890804426295364616424175758849253689708681782334125987035288845505987355111889672840580433075130011894917236731526630909711144955899976977801602065641846973902165174374472272771243533305116272608552964584928282406530530199966890490974164947969602006451877841433307713299130086805050859202972300049766084068288489610391359293178601760862003789904929628014971429074136364300753528288782168239137822981187252721722453153760148709082581661163534526416959002969416523094596589167347244966879424265360022388363952738636763415468576594643627556612177644655699308522792292450342885858196444559695692652092514457139252576493558742774888112458754281277790626804379604710337859823382720080404205877522719218904030748106509894218577512022460832258468024145052649144748746701656973087246216560260579256482678665648894262096275891697910093358743759371485198109079821445760863698041402197949898069300291504392483966361819047606987230276862268805348701253976781856016412832986491578516731821453459392327422872262323202106964786794000124841191064363271235903467754550457031223454645584814758986010835296434000763397952248044575561482059709340603575905677420497330121061884189692079772043024477518386036627666383654824428749041968442711498996479498753389449469846603540498192358978153369769181921380512691753528725878742556507226411359086527267713282773563156555578258948947435906818526649318794159430585293660747589734024982497202473019150288399592030079416811048230499526411197336335056863213576193719620806758540923027958943641085791310711087006937804810624394796767983187711898365860770084868221269638656143386248289278283033086964394955010582601048896974522153329588847776083208309304542008227089185576584341563165159637616885824936699057634643744775385811944715893083446129905207326736722855879416300480528269946792466710790742775445221353439898105374979656287193907433446738256338985276256598258663218179450932066635405898439766186992313768859169635137703322312694725376459801023631937864427003099067381730443550691120372045274319227825398835305147370758436984598714081350000534312404386979207585409829883730891199107292516027150187386554765662754474680056570539154624359904670213693109159504549591779642642185155810548619315114318530649549862194410876235245067640541678712816272785103208339282301876845243665647937256843509852910997913929056995919706758369287048022182781431931881110709966608574440153931192112741525412834778964413319570803775931395591446562397020898711170886343814098220861890572291363740809896653482454147550731695809141115609227254190277199130575373026648666757593389963379318829379404044709615640298782709375476116932957439557950522855841052057520447219943193620211714163294379228851357006514425410931376212483777246739563622345632099492527693111177999947997981453826175978488621636762137609055095754666961324761605211990938396803914203502014387164315982991388233152694012449989189242607620420641718671931375958000563337946913698464357622698411444745601186753607364566911699514433080783232624754167835577785331906521827352728404819650124968145367834755847498475995311813975287604492781460401271968275663337311595558070656534465010912306747776076816273914133414465265158225094755418533185253661771282489691216714620718895809608181837400162321636629574031314907834828831328365366141019216120389705338843179491771011538849552696655504858285744960934066550388112861951224748340500084998689348969740660231317886638041911021536341066498339429899499341935048105801285424232504947642774556026640930128445969127155989354421064905429478086518960013190791348442171474675213830629111417504682333389735419357985193591014641566409175285324938612339771163460894044339566337048781903557754063947210703964030636179639326183180117617476311303050302491742696743186305459968537552159429083656044378484815201866571830937341558218106433812176801186505511281008811440303266289857534576926096378430260144694383584349260445234028677591155112304352883053737191976864031411033551153244398060773716470660270873777272772027636510563845101094088881420544940240551503749603239682343913085210653777195181091755776785794362353909776289389393711474043096084983173728294034924144947383276249895823188156578186864675056861520459742034965179206627177961377879934736245099373897497229468000207030945805902054238087581771694458564469601150933699208011564874983614435668014935492550251974455575530184260771610091531130987153626503345753330741271063938567579610453621708813053857771758125868310294365820047918035047826622695671953014124358426687999737693005355650598494690067604279792764747297950787586023935430649492554342724203373190190696183731635481585433848740453834010462969213285590007872028314093106185534516909684926609397445994103828723347606186147238060867895163000600263523293398579971363861979258174955858387859035989891396693108027319626564611318583287797693466214096762794049165784798783718345860775117662594249424170262810450020491261776309183845225066793751155364154208178816132076926886516412643160102731323164133492050304853297897583198178844628061835101300056073661656259752254744921901185485723213761490370573074622865558456426060120959235973891887002754751697402569979991661836598091322979861870991444455247340864631015812837603944825768011518096638723810213676458645702666284056086645510588349917097158810055757905854021954500666929910180931488795735509252880140871734545607802610744007359263497920292819536099492031551320131377484788976622545052340968713503228224520252239820684807447274351464372968418449586265154597370059611315572730152918612835822051845702043576314246368817077041448520099897591985261246825151690020757326631375925149687692526002753249701501028685047124317080938377851564151214918720872632710881253140834723951299323798825205555743091389194043205719326983943342590886978153296959601042332401724221860619163212366887169727612223074757969309386538697787686357857718432135900249622896956348834187862894551798373979930250594032313911726146454154439071893013060605187724781196492421826631970991492628555000922946633441381618983054190984803359053275694073355794643913719140452495555776563947367926757177046528837687174991552260294735218188132189919728964818291914599999983699413071374814473952096879518955183327098945575096513412245226211093523532549289376506313524658257114912078938935856123736139817503255004179419633581758481637204803690383113373531941446280584114230524966592692108385484046823082531863489748746370274486699401144134079213822438616807090232600597454715476544320965647390689107867502019797301372061382343695049391993106612517006491305387000651741999511892312060116098400286751880349619933583112272143231164995171460797000993776954846598640431444853251988982553153575562038781812907545239052247698019131380583890617878965172757076674045937151523411095029244410797179994264172370377548834212464714150697585211915032262254954542563665424730307520087757652704146652796991173563467742872833305343493900780484299191339144159159369649540079856606285831483331687659647705216607076130372581168317667959291060945615442078779894706445965894193855544827812942869376018362049592997400751039992523880266273393676932758925737749793845146429915700483466860169632296461195912876511796852820527102616466806675543373566875011561502874356846811027497466983586705330462382174117211589990226396708575271081129332331816815287263320584748586235174902411342423619252459176223497617429859792671601390127744848393475886939626297437446732741853521280920898840578778907426290675344511100710676896624158240051571917149413517673966979202007566813377130951911790901824972429492103494556042449287745288286435369920217448457260744155565281999630001474652042837446977169205777609124663598720442944317018273467487003652131377071657832307154701035929693690441509138326816014632734459561463783110539533063686456116404845590678151480069502825938326882503133597995619720317210088377518605114568636122130284008298778499739589742943537656332598046586362839137566945670848467296056524785541894031134151669697629427392224171968809787186192114781408849371590558253505796775668484349210250479415877287137518172871391552007727782506403862834396098814879095880261776122442434816238615675273134504005931064150023063043109543044136346707570263478584989365026431147623018174525365559762320577750365210856632573808336440532634218002328281642266272613011390631862396369429246313862658328511535392660854038226615934177958538417341533847774580049754324813664734490486918248794052153765057900076302267113814354277496694113143065010160565627457659888719582429449523164312952150326514433349636921355934251994018870177196582370011597074770129067795064485137936916250778692802018262249787943942969212818282776155153847995397895777270208935991711851243965632583018247793865891798139505964642804279986889757274726903804592737114953915412414809714425476476104251275298905688506678713377291781662660821337622005146350294901273110295439508213460284019388236067215324544049886742139095163496183892027442824008665349032471983827503242085403664273795353476287036178520012847774358195435383700786558463966353604344053352246643638896414642792732008404267176482099572789198073641315720970140969684335680012493172772847159760156119997990428303297954031512490497876306661170306612308297677678776467419447833854449610505002196419139951130379360470485003461153546827263393495771384771245631928177238026916555729992782675534632246320809436817807977860884007755613816341062334101170409091321318651491458961097111081054793129015396756098810777852671315635941799732922056225015010042149498092092510752989347742344410651114413856351909012432328234631861922284829379850516555461089843921186840214745488379934136423668146085947436736103316126571472218872537013753048608157402260597761937137218513560609715661999126766656432666524697275031334978776270579425209546741580561897393914509798578054262492691549955079892122513671481893878590659511007479846890075289970346306610978576905377844707210719834320465152849073485790644072447519500338696271296852688448032788733162576829221548616754753457215407195868451610008780260407085924612569138389805178032553201206860092919473318168223348894165785947605776286021605477722849497815420239898643733233146754357998491895517383037750574874857975621117595979876163510621314143065178311305209097020112643990070366939716722296274687634993227795498240931987412052411614072792330342232084505246663013514562275960191205394526462076008733538347610341082979857656202015987147050427890366886843252936803341148627973882132886739636121986990727540266989914408048225652483241039591830386041111407897160879541518884176600798274543926742245476755903291835969109204240472627200612866760620911348226915576948446852223228122954253221956211602613714496031664072111610869661255201886849041965673142610094182243299561292194499019830389891611851485673514821692598609806468590187155222906591885497646761251932415103840142991372464949168247317304415865411745680115851271295759187637456949953579732756458157506358879662029933183679253784573896389306331052328510578282890155903374254831071520005886422913167286796963227730512321797232664102797758367911165685406905226441634313082420772680365325468362543927174562513287574150894894116764427976916466238856409040729599881026430506628531102984390405166597552373318457237598356586981157401570484043017545944268838311599564779186279186653944645021914887646317586320185303853721474680618949113263459951194579783555967187959643400069931187587628693056490855619424207980633584876047605352253564494392791588640236728320668153612799121596328950571769215365066864481858859237081610452095297877499596148363303939540720806195401987715900699063096490844398788568771301250953840606087869923794865141084410234812247473287471939441188128075482443262338857900078898594017200697522804724094090849368874036315675586609942272805667278996142103990139589879205979016746312506179814673536970595435412388428888104003906196056577598575930085568298109657504134157349182074487349095035878214807808961875486041800342180578860409511623740114126905449595718297789944030424970990941942320201877671978227679618560557995796823598316861600443202305117290429362876427176904637454770448408203307839430717909139514343321629019752445745573397649641960292897681275213501039833669868449272814449933402014247390459532564887405631008396348105912283378343770172153128215807337771268783724482268885718682477637009578819321919775708461206830023472665033304885645229877169996761180502475523770817138790963704827694217284825651339538196709072386155579988375303768793297454618997625724812762094142397830122355437071749048839180229970629652461648459105773136761277905381752266027692991147238314531680519291083104296595703544099042634500606694364079709147840258449066174178609192712211700746279377948395668145804107319507096963516714580297754044755844881459417487943281641175863290541659556653283175562367124087431049354108060147983113945169795133459156654109160430411974257514326038125432893453819915682749167558245479010183907044003684454485555061201744643339902463176664096863090289176525120730794121502906101154715988598657267513569794332677026646503865745443955912325622232847353350181549598411503861070584590871025842256590453018059492104416290626491008039164405843982544603943980743371008576203653092627331330290252120938962512938948436870678600420488838613548359116184955198326982284865091452103227690993769058852761281659471270927581291944404754417541460842595866665165149420754415098381496879177490027146114627937962675203244012929568232852124645555087676122371787128591975221863547151066182698651269334774976817389495025629961435295683337803438336948725321382750592802122901928540169219158116532711879600092922951612411800399433976396481270075558607090433100970880423204361398249540748267600560237512589835454017067921261962628848149869496724372879921246520053584383324871271150276036113894942850464652495954524654102057807404030285588234926048183878640685955026076803270862167380790752866167695287749141142413612826651132979329158711017412064369785865718752287191220594156032354854309904350456327536747599231918609152282508168244174079542204898501808678541846385611575458841027289235771212821323090794429232929283700570681646500452165721292496318834298321387330037101697277887351754830325555810718859627381064122834019822195272922575004786955206570882038313063341713383123428359700909382395551317678007467945193540983368562336376554584915433001236145852754692733635095604391676631460200044096250516986972611273041492764635806934081602155160036453695506767159557014312968761717460619077039266317614534112689770527478483596923495682755509736457444210847107806992916647172293616690481109284928450235965737882780556415492521381560930060856696447074855745873295409099122489046231228557953752460507030941999653121112734998021565902595784766213754087289379811232864137395963514928040882018558101052611245706714867172928068232710319190390917189777545613142589825764503497551649775671947499105677254269566416020906691780425696297675830920830455945396499667032143792906606231799269640915944743082920827798208615570971426402410059675065405049103407624681698721006311171958999673427771173147153484674377943249310388008185681763337061291906896921257932309700746786918914082706556609635104751896999609895311536257863107671359751226788416034180607698081594947783767915223811510688477632788100142970672612902974588661834710491717928698666347469526121579272139880971467843709442099510064246359291261141177123508873738068467594145856901865380010120718751782442076562248420209804859115440999521203089754130129411019676791659476219721515957119838017874951372255109836332201902617898994372999549646361752247345117302345293089329510844587124437910543455778440855386619538699415226032801991979101066764141476825845702214815720602099934835141523088730771308891520652616652203343143719901901038203606183552316837902577764051042102470058375089539129554571607656342711163325457198611764340233416226236414094815857940621439800392397279364478190179952028043468535530386394544774369042447927691132168127059793515234912727018283693484491860702356127142486252427924693144531413855395260119996464308730330596481804416188384237824880393277372742330308074915303916785760454144921404657377135836371533250030792330621172426550219598233663671197874803021802222185617744741259548827694214716773796955406811866954932774498946897934941524948391509221243385508829648102809156504943527372167514420663720843647192497431059775830875038335334433060850423347895323502324493250550148221246791048302516647098709228236064994357646987377553918201734470962913241806679337053579302408973556949074065207470681678180892793134075731695835430816116622814228622528819491802374137737227539553777307772264354122294577794709256664668096736909099887721726602199420064593746546892026528172534190417450208260680825024767915140605824619419384803577333080867730876772519530317090352289425091240763751283887411519439951952522915970599796752642585920639788666259966931600587599119128924881909803670935281061841811488898750983435985743152171838474822457295580575471839303523787151129336103212361752292733962912121586783032295589760165695846590051072372387571615699876439320147133550295581626472135983723837829852097752645518926865540431656282786206772798835334145944903215370340259083313318161677875213001005157786679227632956466600326899795145454086046271680070071143863407822216097806445420537520063673226116929738623668712339892585490877123026149931638305096888683218438072052153689349882952046510858451530945076120590903260577468664077290749929438712062968674724171343057892261223240172250132545516175313888946188390480868708427923278841379996170049117021043809414170603807789053524984390402393966088346793560130827072917855946222801089214238174363117195577454002677920343201018890397803503730845201241603645592622794369983116081517074229628152300150546776312356482202135593471643870571364666182246141037401247574747079417560502569970340521544357990865753966010388555685998762273925287544367317049630489674073318851488552886244171336865034905991392563614909841185876460017793766854696548824614235328945095737241984104305059172622606702327033717970250992003635105561563867731902449244906618122689439350317823339691267197732514087065253479986467198453047900051005073205765790069124048357358411899535062256926108827995447954268829670687729478806444165773652584746257964163593700728975792044318930720989226797000763217818857485459055494019506230475361338940109183954487854422668907438152769929485591472964953763718395659949216054619973440083341027299060717369600960512825153048610474804148488295365807894373699632344375058805429930790784312661338711411711682099425126806205315639144758453771834889042372472681635671087873068763902096526458425832313772026887963500061260184177480898862658113819967547069350493137016660674928093075739886821270881275348943328187421210384536665904940775573773149988290102151724375487627409992573172516573147013552456250790603723044521998407131504825815150725390512025364472110307379145205380144357857156063978107487531236319940358564700083651167869609104528414865239549006327213796548928356730833326387607470580096117477004239072994280999603087822651867170302539308059020619298356419163269017450513198053787002787803038928429801007541130242551889555040864219503851017107041577770357652228787568655363365794295883005449263373452977449870372344425630576153146842666391742417852853996250319370572794970305663478491701790639755792865469889319259804422535541849044638667354302646763670574237742174887761554712873262026343470759589435882614430128769116560433270056676536825747490145659417616424397594672790262925863701681663563878150483877506140819605937338770804107418795691940942720354685626283259810799580086027441362172675470116524057745464024739703011148894026137971651533187638825554155855097531136704174798577484207831966203086495540437289692854573963234646560525707181048368532725281381417889940655805423249664119011722133514332256586577684836344070890368563181372455694562671136230135971022171862312308536776091311374793441974820799337474104620317757174792834314124275470441898017829888530015777845018770753432650816772542715326290984983415697403029573302252062319779976988489114723982730167430797673698739926925938168024818616579182407267227405176313815458045691727603101211849404332496748533247725333153708647126078103823447125207250266075293233484964423215829371584056551687485592775458710592639359293628769734423626666127685281075313245450136433349914834791536893682539857370238337975285003072939498514259683053532203950956244030300409575982990960325114449708482154181201182045889229320388675475340956664151588985539719738783865751009731087738547265154086283386045476930387435330629455996912038309729296119202425014840245868857802180704784285486985026260351734408847338908280701745476567797396948101689770664992782293261009367950962547717396947424166294510843505433713027993383875958141556404968065168655977102114426553846659385599906632695730567355934946359967032857253911534420338349836140666465258974244333306829339920144660155741564147385957465990243732836097464648135493840510024339908755862442312612947382314032141853653020728488093021881000108170925680236642741066316468389947325089067819999415896505165316154872577426933228478921681609072388372258009400943162945998687822556824723483913586400100891219042286569598251407282999128110567336884645784868917042056529191838745980475130545538581712968622698365868784026337334784123638028795752297303113962580744259646045432419024131384912103586004694486178482846371191022472742736608841557432853780458090376482557296776593726463416350875229961918114555824827719142714102379294899417451138215921663103456938808024227531153829379167103629685099044884332659341304862468554175166617247419761599519166560100676170657058290287821572049083486096452095643414583682178830898971251519702023723410806309480973320307797351853783639915314554187712314382883539095889440548503171554068934071649132149993283449984815178337520160995251647882156120637355332634262694540808230972015962595575264184019518793920735549318368353846210132853165190687461786910352691181945618955642788824001370720137675242435478710616145196108401792691173749590564888558673706956073948848289111879868431942619709285506924928908199097051897019217210472877198622743930623653680414143133583779792735313035829576495498468234286528964789418045997447391159144119586477608155542917234742816192806444403750458666716145067834815114196905160604049626496063272247254590918363763476022424025229179424685234053204462039367970149294651000223350460592026040569722185865814849218459332724753126625342046780204141372861220214284431966273700068499405630741356562746669631398866402251283436000958978501452906257616493052558351308462979954739351872021162578320938017479687943482440966391908802718864942788512971330431078201490821536308987481737640414778755220681639379838961726756000072166005819924317504703428535735328140703030606508596615279718641197235116033864003345420726356966141382119591262518023711829086548366774959685306474384272776620578566767476807623402262009536168249329005145549677453621932571515187683175423760412125662056075732063550318419135703132625805868563100420878274642389838733450895750432202847834141733678381591936578296854783049904678367006738845465329610581111795027982192144392907149194737186983699048681498231193319414685128548477177157605553029000915667248006845206351666968057784970551354337474151373339486178420625117458312008727863013364984977339785687611633211896052052155205006958492460650188993037504969748881443488363445683672103871607370675737058617144872620563170429316437256324225287341114911177744272436231961651534048641618981075350444362343150002948675785176929804416173045271567320672455831084024943102112953632374058781405200176477393163994200845098973128450686909618576333572851275891563458640836403387595687418543412240979430476981085126757882910035902520640672933274109579203444750396854772786026691064536682308444192474603984802273420204933292534269269478066865531357441594860044775056667186685008668007621608944965217695662409878367634421323191831143001469034354750351700184181206993484861498846616289273783443700416755234897219941773628877421307077318414980174831153307070805568234412038267845344755631012910108167809309914935772244262576136336258981984609737305855112703374393536955012685245266190281393758545649190252338444661385292971712496330876244768713640147658608727082841186865502467294612993792988141350261754791476349622567752975896142204854104402457020734361466936996067899079305753314271219326956535351568850592695253439955885117822866587359504989509448798988673928726152734807052320780948749184939100308545207515376886943828698446683319760703765081620150909557464799225725754842911755058803870206639716695295053181396090561266732488280052543740316192378501136276085733613657650895221214752550202247906863213626963321254104328760333558340921326295673512197627109992318152304513990815512217540977888559711787149307572891060731295760520053236008978776126064583317990252418719910207458775312116817684478558289346202633620421406461717794990098095280383351366996540753406231977772359749315628272536480661810668083223688825780402712884747942372521069618345176555599808284140990266131819924741425743614500796218637259457652520631917802952645326362138210459172864546321828223490180834410412476177199530124080390777518735543672732899367649913615527664837015407262291994644852865552198327555791242783952086845535629691203813082454465363267172290066542111678092254659327972844984014007178384092541813962547354565913707949610751498108998721197515343544352466634096081452794495998931995857711072253136038462325779214827833630899036395824265020449999919955384744814639206332938372708798933619589154303550556254729543194501744298358047345299056546498681810232155265625567296541412273927340604621677728653650584972259195885986254552004951113150462602824950159407566022040861847168398972901092014876007992585548756231235390049867795676582254650879111866937914600803243546807400376184431002818316301283737513101053683638425553656369074432854183836200769316830100298530570393658497595515433215267927528099357649724195791427338533954645217678026844375495723343158894982891357057367437690906008740648038480602377784757984041758931396566954731554637199134943008967505783485923789394130378955727198964192349063749068659635821614061296987961153697548488806210049354135699504589804482559945011761645398280429604302644537103693036421953317155496722881654755146572205295804262769201977866070168009568537151837762307075472969713978097749128780750162111231946815652220366669728282978479019433631619048632000605239046852939268207922455903885726041161073959990632574039196933768990698602626991289970809664563777001600572768862429018918332443831563395621658515124959904513826210887251680098609269178197340401113633119441379272261910881477141626595320091851126223491083756483066331313394792762577772952236948931636465814576165214625352649276224526896914093929841726678244032864679988440823969107076466348273283145850807659297616297596120925365307426541454010264065564327326729965529695829537405390359590169541693815611645835147221377472937315213268155326665910641354634878980457836613571975475956153036240565216232810341673795441899192910253452091671608352469139261450155308520352818358074698794221964158492909948335505641420978848985656929331372894211047660088308662831631217695250409316246810596620236960818701354672152392841026784640198350178970530722963666519505595039328864068619446492292405120569865225976084474830762904244589804237244957565693964563364815738854684372316661462970841682547089635548503131265615725570223967412851173719374886666856812586002674832458356265292965534909259445173910258902446945334787413124954302888516129632472703103502550665977426038927049905931115836944861096700062860727200100860643169822800078593067311369556096849408519222918789104343180049226462942083448539025935140217141989468980379951042279585009581075126238668694624272582837645406589557702050482304274799158356942686642420203621637506204263473953588226434751153868222075388073672209929125593792697869656909529899486040384358912216562673338958426986653791988491183484290603926631026521213590164487364374652021117557681391453889617694471718076206459271715389415914182436510847549643052343130415869994977437874205274591742198652618638005786919366954614805637772633746833264790938534335363591457371755411841651530598445377409577599286637227184440883028360682319510751705271063917762383798131684338907202857674505635411989879543643943475409902123803868289386556832903635299422283693820028046705784109468026531978332405067934114085492052320407053304850107470128720916832055723832207545894323821311048100489371227534646046280930923080947324888414088573696267132150181446897111029855201222948509541771193276792166342548917401330097497197862225863376229391606239272923092623603173943337189251635689717507857174679416517832383770196363697931121051198768389517229716899687590025888020876377254454552964705148563869445180783142500904969977128690533396207368887088316610805504398930622947239660779582004465245299546187690320751993214996608851503844992128564441772687355577871617311776467491751273829876037538889299618537645811937266893338058790161934860427314696279215476495316511978857551354838451483227122152025763114085570048636392038630927423713066174658142768007371991294709229729271756217604649380485022791160032538323947602693020428818356082492409956191866280113362581092527610417028344343755587453736983774329432837283827814047617706357611128280852708790587213574379274282779734469820007550878528310345535056715933961164285260942933760588088533863692566346800319542569449780914820924279020197931986774267462620566457655714346308524002096135284651195370163461130515815311659573992373832772865742544032648751509762667872692924400071152330061900637476757747012676781970002373993038629539801908968933032859261051605037515584236967641812489132553260224639908691527849918886623121458687321425521200213626842977905643849955702829000567227081916192377937173185529853177490301398554981291125522769365483057957485517745812642986836033866547558837798825472010503394176709564827729448120307384229931554364899569727455405929488892055298094615065882090425441658928198797916230972764415087664944203353075654076348243465939306365237278424971847582712380498379412814232608058830273944447314715271404333333455361819825599362412884928304265178284067655543097168246871243769741605637257907016538409764974855052395858720052722850616395556021941817045766816136673683296320838090180061134987344075403646807666531608722130217713732645657388211098694635278237746269554205892306155722197294868749143306900862441887965582066250187395135720244759753169294139143189052031089516951172081236493482744143677268282905923337904218450111221779071895417802347906488528262102271241287199400878638632018430773525863622406553482259208334000887738880473469851583630710712224334161368280974769257360477844967844981053067614494143167301010231966816541460409675132521739111820294097721869652058653295715041406352308500782313052357623565378999845862872433111170568622123858758914185564309033190162801596380232242212539321433084263601732274944869933428524971861639039050679822878521467178482673314505696458822617034491928477349365798917743614487540805788125017473388540447212202874627322181131971886469231455572267321048720454261837698419666323317782457969864245789087255928215246720222257567382710660681051173045986189892717624317855369075425859302075610602221468140545036115487017396053444175311684545776520594292959746020684814360566953735348629660686654169154783812537308766619594927134346306722860842201495470597328983521977222022673534303631933458249063309146354083162984862198464700328556147334532970663912852585030770215187926191992969423711079166101977665113621136284605540639414730688982178833648634451572491549138708528983701869905541630127841006175287877927273065707398013856692021725294876461920905690669900219706165212760348593953589368200063547974080986733603440724290386480430259223845952723563771794006975672758406770402313513938678888395729028079522219317429116379409809954796597270990182566999463735286379611950495326237150933788643930850196197265329367955346770622616474617547461960768274796614439896836460036681978618507580881196422088267481528166959821868702983143110202641180222960005271906343461715671728773712411166671414144091673672214289614777965445381677882539563826122526553975584789025550673997080316298616072791263287632905518749373228222406070152523110654647434253832855508628549091721914985241273146573170023871030458320708069037767452424330012421871063205673454841544266412850912304445093421786720997557411895818870540038065856081147911474117887362185084684767253846145552910299810343425994113479680145872707140287016465313346531886600485563760628156778942673088060886827514452833470837424332207530076766041266151819125568820207416687154177094485367907657388568403330340354670972528952060803490928055100522995913881542263622170857723952684173851246096084167608798533233946802122509984468571998440137568899154090624467540351293144058743239746485324407244032093695044229841180143973303317537020801635595727451125146357353880399863424989797765959749693038907682023175461910330190230025861775004469456690677857467249287479492155426944977169953210965665631078263472837888994945918788777950561029016064812832923652790207596798148966722308537538802359924303234256766726880759265981313788810306110517595687849125588154447577256040386625893273906703864220481972002566072945404450701678673474153841140114408178386557902789936511530221581332168098487528979055347956469818783738136577528124804493197870167372205376357819567411321404595990787480571080674997946813754338313705413902202295394109841267363302626288201627639808802623535475710491853117817507425715451867385530030459614620494803832900884252088587734702818856746258755622669202871684158662682961442322387157749295027187394624481949515177382459642900890461642459422853015924013291796356431026437364784976177249237220919514975496348400782455819831011866563198047612762207727940597879710007961258266961569228878630822752875175603163965269497623554396064085745065240131032940630331595815351994379929837348773772134126047314313532508457295217064318038172907624722565298869507717142497049872618196064536536180936953042163144383623426478099760074356673848567206697654674156983169098176361597901913671163675439225676495575510976057319619182814552556026459223683790315557440446587557452431925156124139932381627076066590567590456951032944198764777258462615071187881017618595772445497736345267295945293494318751322653463955686865676022012831993632517734297127168920389880305838612425630763390406924031101402991615579467765594391946840059398198930532488479122834563009814648252543098740548668033945882342198626763713501235146735844619377169029080116584075263742943311948266359672495252027818508146492225466599338687460788687537297409008785361196592949815865633939483819868771055074391310145773095966190811314123156370063092365847333740748506569828782139445988381634483095224804739199545405573420996924785202045980048056430810905618180492430933520114923278463943087189160029140311592202001871619937859802008124741390605156452871173533954866030216364764228251695927930290892130747147274047072575173926569948033375822396155155738283629757714150776376867762573598018877620882465655810503528205342646117308187351884363439114564099427982835185559859627570734623603724081852246248611123117578092149326713088293342634158850110306760474579483956270551238865356168168491077062490040184740478307281239609262945017876914601441501101007761405149686879117615616291271411429355483430080016209893055730308218382003743992102965959366534875368831922510538482302542682872631635170732561899070307340694580404980315677245767089594207657063492862397402497973978065184487465891383485649968516336612357445087612778640644035262280504721202388022725566079019755089042493575356466838285088481910367648831442892552163632986233681129518969600382947338070259863844997685648930124044630703671202539252994605786622131621800349572196390585110521302951179571544553933790369490998320005388479823762704158009437224937427413484440511866545265352933446013412854970731565748780265199673617522095100860939957665207704141082517481593407645475269626603335992204174540006532750953621371959621014084151423642715542057608563235677926064528215219143536965369349856203175130499957751911538835627293507175577337659393962604180506782301334266565291402731187429129095363479678652209709886518631628326221876814093091778528835724880125295099496347184529549975829861471088994307169463173616985986662067521441061801142912527236745150851182783210184722019016015728944442170453909597746565036134986372392446992918991041977950363748191546791123767997107510816857582884845303550530252785166395419677954959591478561698300560105598921572192820164494925179275585895977081667556870207554334933709738904044494648929977542778658271991356927205501004032925853706439553622969623030357251586969403758317098235330656495634256063918952869101300367666541400622487365922149321785411409393281129945418468338765640330271234298624684851880756601386892179452415776270450084021513199274181784883995335401422863463636706301816026597372188493025076536867988160074696227933953587354515961430008679580195599903510054131255376754477482578867216863695269314711806523598489281082643874835532610125395730559574424661550716582752093472713919461809118188488639526458660947551612614470308505062679019017767401503318047949420525499926909353928600289504605738265732492067058995243966364676710861634153769026736421830510152385864015150170915757847287914715798152027810287804343191254331356810498191452313601627627598438470036385202537340281416897264102184317341057773481293362272701173061497988688042802457392713869775883356891364478139600727630290688379983597863073111185933088242425387932913274600425467659927976552417114346811957834093837560122476362437298273024020938089575747081785969886240162816875796466400172395409867018959724145689923336259394001052027364848048700595161274397826971689614664694580112180532806019203327006393934300153979885502645913197879680130737142889494546758584433222313419638508692994405756793969463536873819703717441594420089428709183064551884956823004862893110622573972916252823959199380980495903741904140812230313181221593985913630069783913073872619976689822493258021834940136159874179198390287008497653124525855998189626744528221270447534918634578724029435922127471392162647573073410998532855421700031511265369760495524776915239799475695864900382098191430685169929215744323162876343956364414230886815417282690082916929943649442824119898364288103321186442301100042700900929374649971008421664054497006387150012416801558581398983200193441534871124141556320947335692041953319782393189495359147111890191178423615107321231243200249084415777275484071756011909713432947100225266380282998217823248736299159329339723748906602833366095304387831849742269086562595260360395292679200974774421565517372126263148363298987342533203738953161872307125502665253480474541338306198733892679276225170372289873258770620289829645886005707802988473632078152949320695237097950853487234558045471098715249075399372482041370043334378753772368608904295529390511857583270231199742584139759134528515868222497248653008587022537215369707554372655849117928344105207923190935414383727085371693191728943927137606706030007982716113551994820715907084586658894395714774699393177846935913576052570084831078102688293791946068749743863568450325614378516981944215311976677328700053788571796051160975692496266421971691032066133037278969366856522166850701781898621547865019367282391624349051147315377881363651107123721261127908474397041853731411192241174567848504202594808512137684538238243421054415197329053779985374859470261259720026504698740380301970361882615220810265141349125641137183746439240064222133238675922204951185468639927998201751809663306414700083025117227274872503359246749092687122055585680623305596584928088280095593267439020703906369425199561385182958274933995978128003533357017536479899636215234292086819563936134292229950230761063115171011653660191705239225898939573875530803425505843050763860384137858640187909196924309486572992586096823244862438910500845489912676745664200403023478473230033658902976212291161649531439263473281604005134136241046291571535647624172088072656503720376396902949370123585234237083294822654279142906265234299004682243187471773534083554959322939730717826834729591355597996551620125480478512536499374419065019187536923838092189257271132516520123546575566850559038766685931192499831994968431429942242961397794610567228538290742390352341573649292915473067969695959056791687737988543025522733112059347692071798946847018196058023339128714931963841172633151472035356137801969620323233086951773492446770894313634367218332806596116347881961725071809257934735679467459844791619453733277068373222066532270199497654942058864830877100763882505380987037916132945969904010688687973627847029899204351573590182989540941959253429950167397897066379134736961424894004208631845841784988763203101708490404453503074941282155763962132905710189657064923613218427372656371097001195115360451871891567538744729545463802219440022800446503318275253080001423379878948218949922460727542576458549781572197786937151425982801753211940722320205690934642682200730617150189434781247261544650288562560052081559240970422381685200113689912527187169215065051934560842212875091078342328798715851549257291169997967094532838489164408613197012753695797877919063527072381932666126090397192216402349331506332198796945858778572430307344276040769981093781001836338997864233524374373288727203389049568236134820071877555875652403653402501950120180180160402798287680135281380130454345154291527717407902195116725277200944165483705904709189371976884139810143490128861983894947650124251359561010831546295627049879835393953967711340114205059471235711237677511857790962696899030714860508840182592693809764878996294919675044161585584122028134378207057700521696801281110608620510834288867528052668469420767941355514060436749219354976493534252410451830244807321602019819050304027581177627162607988359567085421408595867215572060270473497257997488425884593451687447087070713494550208083757910207567131387284124904317334989576442667132812949851637297341315222872530722179486903226402291771871915172585712981911501071336210126852215480104054526306279489597125702863665684835664103631963004002618518081636394173046617385544926644166502933462128910024885751281661338000819865486597189563561901232952425728641183123230925075999954012796821644516474754505209608437701194343927621290213330167816208207460094537979327870242464579169087197116124417106668090211666750388379940618537548217764612651118038610717366511963838261169919906225042100256409855332056828239615939063762062893993566037020983930298101983244767738914298765871519157595384105714476316412405151635837114651294912719517981431108754504408231751162008013261003084480704271587237231712814112429229875504851963149775835074455225127842562788532406575742796561406760245845487433367058655481999074453367228505613662511552662993350977311064525866411787461643748377165869227115754576562111069108084130949168313600187435369381997561047623877149897950726823512459634592528348908183082434359727956799825208274701549296553993980277434308934284727202171078529636195858700642963232806796196849615327361087635027272594610265127019361158646195724203714975081561401560896792592730093574412764969916196762006215782945402769679267421760776757377947249173397836500651520279216409776557078893557629787829161452166175689754578915313801733454110132540657096829773639911632717135345957376234627626635875830784170673862211051436262571758277891599498578183890845361961776691889503281481421089284291798952510852305451117447829919946618488503611592271523896021505694867919000586322676187994157029653307732464426623751751602705467343324120655301615469778891374916985929041918172957989006097698769083843658949341779562495443867988583158004298222090134476429993618984289508234106025517180484948265456082509716856869497082743582587861345351377171074964685626644361486903718067362411908054981329181552268950690600892987974636124654188793540159829795432673725964733690071493855542895585029559897110512586369123995494320368846954207652339288129269097414975432316997777233779465038906186121140111484400414326866817107277778743474849226065208216188188610187253773491709176646818026430970987692139424959018235266138218306222196163078403172798394097944436200182633417038198563998458259206992356879630326492034453240757486810401722786582364699376706188690263806896613147980863430488842633230967858159458427160521750865526693431034216218093508070646189932654730903658932105640293090424685159410025390042685538411728763729922419282415587018075965502063229110921389003838578720452260898333918998870483188155436460524046581547524224688345847215746493538731896811538038543128593356946200313347518415936855456969410946335169929195237551657190396265650606285157538253126906853301900573573714202608605754030328772177026514490133426211760515017933475276733659134017312347459763263483312431408815849881588059015830730642187754759272069489678272500919161018837844153542535561766612023243172891307096932127984812688987990457449298864235900900855359077047233009120911078056418359642006376099072308245314465848098358087138290071978174423656381513737408851150644422314170179832283384155196045950865291390523309693140623987217345159587219700397220498686075174556465179276171129104701256125127762152157881525526829955404829491261464082911050206733115896655740459504777450345580853966711638479958338186499158568473262541686429248973114213897967135604770198206586298143530486707516019664612685643733332503873076457662228398857804416382381659977768329192585652632412583926205352827732975549808546245585527368760860803774674666319670653039568855523641374944654534126128528171181207376021422425170239628311442486114724509223249639544252874541983766402343219379987715386684476651775814058132939403034818938660825994399485316555948043310501513683944629150070700208343419122090133564060863198108987152353121261028792592079662469869035553267690603934645626343294414876536239454051739833625152815008279422287086969812637288190280571247912812371984841241212032356103564717706313217996195519462859960599338702492800730031064592381349988699217218747612856742026499802659639458691436566324536333872064777430142941110120509520655961160149025073697351155715256933488912668516567665132311215111947379429741797679504920429572254781961298391420293969222693585729366921338742911519885679707869131971136272755369435194064962380110982506697794624517352627820431596527092011841888203306087571620502790137805563727297048849671291833238874210118257129877000612815091418701306751706059400575237471871354431794541001921351560793803127746361333847639593153276116860458356768035635812558822676920862924568373263585669749604593860196256856419738940182904929843846061427082099123026934640112022154676122477751995516366327400654599939324929144882545330764135188834073997542082816553170714660013589038074561917456753309520208663516760552191599233360032931532090433298116438077967989447832688994425713679217373131513216228203321127684224483819303439913646949133279112489302875487742002484018051713547707908958609238582085094749215650554396250698145416416384643062957371513272830249532591195388911512027188031006453122768341766023461539761582059167750394906740380291147271897486993892479780259367062354419575243763853651086175814226094077826125785404196703684316969118491832046855728025488058386773383348364958032555274743888188440514549274825459033790356094558696200606255836285582372806542300947973749298672014415793055328364830277635637916884204801261799932696980670761896742560915940841174321654474686589454935156482681013688428322895134938558304804322717041644003172527180219001765207077637723004933869002453613577378138100295366348092274573393625523654799141951208109747929337167071311585214444793897361936369804860445002687824634691679406935450365219757573467951292292848742323175341816364991321710663351022455289382280482574856142201432835158248685046183228137152150536476284458102264030952864450248688334974209674526900416405640549121647586410379363868653068354805341197451347087830988581621002833233120533350496361044787016791660849738400764045609571141450370759899671599588295986656751060182786238587730348714587019578868711912520914878158117738626839049654411170765925392092790231537181487855799946859814820520201912328862465007539726514867237065958319884602181435213916481449193512118616743947012697059217545257835273967809677512440287341724347257580178656046758546907283062877204567226432134332436112717910289811230989199427755535611193504897376737089605107539623578227726230729276777012645543637738958936163075666588212175793113104742762099258500992151923533068892506820440219296192420746235893187103441331328245381256770572332882081938650394082350249414501161756136654648016504277146145938139483592247804828704481236167408979773693418378031074305512575427579845297326581120448060811669245848671792993766418521987168390048906513213142263672960399573219016050020365030823885090791759108916257237677891391066070667655478634878068040021001589717316864952203904759091124221106806092000367407060234982984773732964633451603796063821143072756353080675168339741382741646171528953248065713304502878398150774663810498770779659424897324997619968277033936197977605624028332955632041539973399546623611368564769160684244501025003489158114322073951590629030686418391019224633669109121727631142024536972262954294291466017908349112645992014559621073455640558640691229125223975709626015759849026390928930638385018359567444860894361867539546250401793222111895661636742484741492664204286502563956455492616389283620763527467432407044359318746076093663812898445617023625025064904535182879057120961132760228370535131188080733247582361113421248316114586220843871804343940678081289681179049885851742322239208810649993874854640926175902703202297277643330847038817454635228402546370480224761640802652563330624377065094218359533335180406859929422534776427199262686435348742033018464079947150991683821022258457000268772813568158157071058546145128963359024676699818410628035641963311868324977500878221130788464550737031245318828458687318265867923610149400614275822609730335948483626038891095684561028565499937652793930268874505041930972446659128304035321724638194310330836944049149758475254617383233383108053195467390528796838541342937708946478145320428454601398288399123235816562866787986453502318920449369820973810534822051796346810640133874825337963080361848956516727034034310827729776205194102096789506801239574685061634737715732478031618778290618712670110100447312562608604597143254295208460953892854662266305512560802949511472964824452495978753901973978247998438012362025569762567220817336166464423546268133032901633068125049095890146072861890878874078722902710910322228331847680657046422141011423242348192522188775790915626316687058917722950708464203940002460220242679285295007572236967555128836234662460048316469101479881678458405086518728318556599903224091495987487647853549652623115626445673472127985289525352318581116590270680567656078269627076742299495476603414401895875514255847758695057937362110394778918161224859164930340428898030203607564293940669931886949101804838939339801466797389814791378962255330996184227257866025619629506979178924270646396108937011377456444416128198321211049819397526138661265425425600819402735414585487399962634791898516381155943209956138050685208986090126696210791734480244454487352863512728856261490307212321522895136234279414176854070183394663067078873585737410986806300093263429566386219399435868001952627445252977656005033736945665652291082234388057720063475880166156834925149318016185687012969148221899964578662448557960701317817105622539125906872896799622665783111209041345383758490921182170364710507040872146579791998690587901231560238751832665827738493895174283304724571167564322897137470237835516424474691592916162479865418798920554941512242497015536433063134347962369462725849326039655569737005399769876929197755163419616718622733068918973971898532409609932393207564999859059995919382250775063985865665573354617419424560557113027767326589160333285003518037667246009319645065365013820095144167024481001064474802007373947892345502990808972399861953542804563515094196201253890610573556671291498442096903460259497094210599391903148763112238418186709136922957626223979966553408363844261995571302082562536151478118500566655916956072621053181972465718296530248753347426592375947882960130221032094220686045657075171268488577251245242123366371231939666743288065468722680412784488156805393531071432972257773817168272490364423196184828511989013493156315169476633175305423838621732856662892203116748061801258203396949996790628349763484218128054864609220882634206716481660458467056590921368074366647389194166887501228134180812112067226352579921324418440755323808205634385585733392338374849586905412931183182950492649783327946943168416690333628549608424096299747690119013909236750114462374700096335192068971652405849788745928446455373562261173608026539890262404898041766800492182492115974049227465556145461549011048596269887226194287536908586901894540139099277063000481582984243566568199520448249467008678408731973805694664254854147051127701188161605172615223759447551259442363326035409779234561619399248751653057770816934500719652243527300917035104041271303990820646569844226889667761023364014644176701693149700651227182783069364482320975089046759111587755249581677024060312549240880834502535735995628825569100193150160192508456784121373144011171917106217836991362993985218548939384476528282004483671855405535539974851380783755854453056215680538459292574477586643136428872228582048204551259266274851511033915336749485530535570242602371944341227391292819264224565975722663451640553999823516555101015067125188695060851141122055150036612790124418123891156211962764684561161428187888151137511766920836000107893159019229044965708630578129702705488816851783633865683743832245260458461866724478547187780356485041495668597237633893035143905907202282725210609513068431287974510787175187496203648421092475425250148643414857825757391149005088755489068413451122213110017077956420890519913070819704570528165673714789957374998789905579432986773279183124134373031517941208132781423545062141274068534994208834268296845546277089083510094091347057765636544871472273878099981032059593538561347553058623440278894131460940912147836850143562729054907828217065617870520955913709934788548182808175442010043204788476160539864828075022217425628381011478744249093999476099653250968127044559040780794319624964128445639889855951203654438567856069464841418542150295919431149702402721524016366134456627082200391022472343779683701473106591105882679321916458594869988130078786488562417956045877969831015863016919942528628914523281843708153005823806102067929649758463322765997188638107437119792308921949315454264893579034754313327570353901329540031079602091735019525640811430020232449848501364852364468224049876319601159495629903183260773430660628997785850197131442652088449451131230643726037493273242678197037327510334587053950510698827237054525850059408681366901142749039763763419132648556334251327025700468358568133902048393928156406253784933852721526250374647250605946744835998602548944085143098315602661548165008925740558977710805984694231281541158109355421071952910783521515506874888950338926939953958345728213891588632056390549842229310333250420151123250526003659677795222645665270800671904868435227579285126797669557849845754257484366812257703840553860808998635406224329839014544661515359194059846048512024501970476667828083816641378068000319008712563990650794987227711943612598063862497693597748496926799025409735254272569559646481281510181949287697228032124298714233132800753460110056613847344714425027375442929505679031117989583154941820258229571273242220003259621278593093631210843953866656258665804971028357905087156480246420833724740998213860228260665337452999635600443885602926877681574223842104333303464286574822918250799846661955898421408590442964030575944804303706450201224816785661929803343560754164619482038232330385014906062638785394064211967247427784764396756064623077893763329081888368450205432511864475298935381217907065384205901934979535227687312726194484962750717491894032052893963736382646098860191842511399417675595236815446247762390407603721957117651357461216632287062406384452047382900513839970729477909143714212582167708797405928622559322582708729166387144811817543245555182781453072265294996806678454657292299241453258797829637353231198315286075607110248619015706499197609869933949862500894695497342725970401740996475016281847696850557587032953646553688266605113650421657360329308507488856574343489728090892552215285789270315008127889514982873491042328957586856601683995056005997476783598632572212580159038032383434403596538105447997409723071844117878388615285458933877236725667003797228258361106142847339321502352831212626292920872237542902000898475149253407420466275137208348407341431223293930428069684101330139055714612874581411601570390436343791002614310655353000044862281774658578863089357599656864199111631586275931962156812628260426173424731672106850221504078179733830500335799339867777004333905994173429627741653995985377349859520089380932152345345947850222033788081422996265847967478115983797075996162498414681357574314048540766302887573270425817102294020739153159559554417944850471032161766723743232180566847533065014189534203227593850330349652640671408031822709116781033134385881923806624497951050459483742676861916169299879029341851288059800894559103779219046317147987190765488510119235932337465648397411970672402363118516617262852437489618605186831030745560469631747291488086596840247693185888294034831645526216989157886745647761995893010008730537280528568783177036871694636616387003844005826641735378724046668246667442711183117947118478657480363191183741558097278623375745530878719475232158671721681868761656299585610233811217635487060817084397472149124123354988717180682886923042757980419623482050154064633607183091796575467681722026415930604615517030100386279665056887168964583415135133592862711041560247805765272699157676178235814581895711207276441929920696502155661158849158044780251077602101307828769413571322183990887059909891448044291665251551647597216798175883783271004050629170739830953716397742151315968001431711398200060604484779136163091931616719427021906750589138275828109840972382069216798580865917382661639956216809837996117003963351605408302428832367041182518374251530735073958747918848394859171210515401102631160504438085299750222208524777933823536976752113756135256145498859134006935754443359814541295348055677851681444203339623504798073250149143824266174770734308640484264533865416469108023865283851207676750899896006840924631776383444837093602251423380316218944469294279304653756769708567295300119317934886915644096567064896569606211737994888948953284065292374378873783097816716350353615843032671695187821811187909206738716892388693650652095964953529419544669932928691074764868584468457932906870105600046249910942456153906827686514268663451993500454431893734189453999359795198354565813049913445325808059279646808728741525836471473187415687580712424115937871789284312798877782202561210908316786058991645678266357283917263864475499075259977642138985085530934314515997665581869514768265728017738322306757663011517471703142911027392512747263317202287184322217758398149342468840444164912612637365230984834817588811666993683164177507104452006383059184547976262939166603950277479048877001922703128594887736031471776192974018002978248406599802822841925529618578514480933070005170726433709495002538418491015701961839619898506267387034252450053768633643733711902044458096633177862961967359543429988670789789034536410620952731638599891172169604848235882483085707234645127874330110459240361544862428595218091339881971834019461477212649907878514034462811097772212360102056956414289214408997213041731466237986358543402402619172810556505490301179208630235322050348199934242280672109987550752976248730984569028681013995881491267110903333438969581749279248240613898843858134035350023815181627023795000242212103263356913463977844125168562400260828650490164275990665885842050708564663773739712788299872027731824300116950607210022136830114539100140067502315226788781316348198551286604587682929905871491400863125189771093134035835306757928386198828873923884469038393982690736198626923639577036678175435652194430024625020577308440606384372890420756080952512861817374843609713958036175746081188107989783568975401238574883560063537636680995791486135545055212600504002769938946675282903911923040879075119928250903687940172259147244549808985763460824412589233596312170822694846455090173293746032606265540350121391816116223206522115324887181228000769103191912516912674160662898456569560904311126467154615466230452503785877809389328032819929852857719234797274427906945039325728124254723297511015441388456037332500953328384578304062723576335807995127120407150346416906712015384052295049255168659982056054880444988175786266870221868184825337942538821436066434952058471907517374495611161586115803096936132076485525021746900808983779017802664862182962153664977220719474807373262863347213047706116423673901509027607791082442066056674896636550169447599713771624543561099480497585090471759468922079909912958014517840117537096072748659100345049873790919436316332074387208575845190100996410315644924370095685156378607526872798662244175891955856867228133355359909322634216008551447860796578633526896927369153914915454136626807990094990306479245848311494949237511144760819075797125639943294782129093506835598247551203614230999434577772983874143094024346964627419482488775657348661166152547169325524363900242353837258684591652850242817835752834739634801347216741809165619458006019099802944616499797566346583494765974165259618811222260779778787508956070593292493752960613468496932803756657035486450062521425874779363643673450853353460898156582285708643432450339264989466197192532559072355953612989666156568703381217282304921902836663118257960595138261023755405416085469631852461191135556418860412552694145197692365748530160991348826765416237215370334792995871468983493970352781529907424830582691487331233446189992982927449996239028015434131489184513067174002637792324689085651212805073511543024240180703478988868963858710631645636071413054534200090348327122240883702114387287340017751726292791787159381368338378361056415396836609648673080019226647528170640338689716493493184810173153896830017573312160346138315626637892010903279726828789798219654490982848254300447656319272693263354946820365490536692139948378805994216219558963266217438816177947099123866950863421416197733628330267086686369380573743604787684775751550565084460376321171189980467662076775224238493657678248627114582415384393687522329886870865847890802301304266796437934037412818974445169279759337796375601779469788807505220392432454470801259466236160726068231090496897799107277672066892973417520649836087855815149525672988152236290535823516433078232628059353893189429872708853805479836822443418014043053645976046533671582507006942810968712097042306850647888967183811238990937606718163131758630042495593330863852212382819411756277752143512880745270600669890983505575162231071481872149815285945510027803561739871337488766292177426104471340638771683726565700208239058025506882591842307214550717564546193459313660869829177550194535470203761345275479234704957269153684428107313246027665664339525536698149345722472727295261236617148516729702707772384998891122878657846736739584188917521166811335337804371738058511215739980215259993453292705166610116939016733137021738918702562878721250678554938432252214668233888144852804413108045018439639680634036082592236697194359888707474689023027268580623338147680328548803595202019929165815910759512364383316505232934287310737252665185687264812116532989667425724576595428888503576119148471009791731071777617901369726132750548279471755312203683173104871903999574793095623040203895083635980098367536291153821872401134014055135139925571360398352491736408666577178737464191848724170511143703778143671227240196963397246634328038116968150096781652487787342334493970946188094984435708493481961897905172455881867782128837202252370185559222232159954478405336780677027921561564383787401359256657952429294336981164731765625696859026890130125878664178663618236131714099053806553811169786763701580885865588419936233722130155040582166993958375495438698143953201272427985224476098098363825137457327581943337888066957199093685550384028136094119599882776528631625509309585151302313297980502109970658144789732907134171412145473452237484420366280106851462976125517291197133996349037780074773431403842329225582441007071830081345075485570239790736020865172135313663393751010866070602994299817036149780508888715099591499845687379801505030998382624822287242318286703637255983207111985220891769403088111703807730837439621394068880479418520666103351001403272717207557103338808916705409556101004598608838690028104638109107279895602942132814241908490548563684737977811393732545071385636317561598368335839094672326102775522302147103138948119455219088124879300652063050309845958922791615180641213948633310252288581318443410669440298686115277797503802335541268372449110628170208198741017342502229439412316524450577235007067147664113384856525597856784724278121730058988017974321776125170058239380186798416115276118000518648312611278016591235646605704823511649822669965714907500786301169780585256168211345846987030826143075581574297444668445709669622302053397684674739173173288250457013432586882115252810447104505442047848192613221376669959452468375072878944150976445163818141444899281810843961580689872987126313956258982586341227819142180777096584547627436358733720063147193669415544781739672323082043448661051397584226645191107831242587286657014343168610341503310951131704409895473141244602172600810591322998983658693869232183735422157460572894191834421146913471677580250326672834452724154054705416846664694778172349778445045250263324284095408752986711880367735930011844176853402736820931311192433233366176612490642309226208849539519065519106815774542018816736236460380758271599534949623015499408069256070853713356644884114766428975029230161603941447143792857122584288053652210634325212004538021551364014536284044466860882985457724633530607634010285337127755145363434156356062574020373037023451101299483297662766543687941010969900199578212942183309271824864787442691865796443166502348772992843226478347963855372701921159017140331589323637046180879877766295510433596278324940487902159964212706078358208916140144851424669548631668079370960418800789316046963680381261998712159405488976161302677953274086874585198378508327609658968114571841492018593115513396562201480153927294781181095319831745859421615133749232074313966100254908920094822538138757918221205688636010510317684168843574661274411534444449754612161809116332340968460496773600283717700499407310585127188665154983992214949714481285952301053992861077300113464833290707844447209654104875792752679759280520297153838278873565696987661933642800290235160918211234472651308764363117926026036716591593335600699827924993827449020705187844676503505002438925197765177842410877451143914532781922456907430157251276444189989451245755917201302650867091664803835980915021509907886353311222487653573853106421147757920127285946667880768387616223677465005676501978247327034775993399429155686380662724707303070710953196680844932372559254017248198530733785833917161191769044490512326617252194909840148381168094328394101069159260873674634525881387005840089039373764460221849974241553810241002576643510066626527523868691355743150573484589442449512157578524113355742241464563022794263277345162421942290795594021423206136237410701795097436121911972192982654130285382023818321152035896209363820169908104790096317284143523400653312677527444439395777055333910439620900428691011569364762435330965506398830578055779620229615041749505004168270843627772568216306748646288125032562573988643454272724099949517843098914931933773103800444392139757085238811519017103543336102111485737351170277953859498605604626726420045907913951237843799738284767180027704113315502555082847305688522899755316312841990697236167479859939055910853872224892470713490262905388128250650856715161812576416978107092358009098792271262769102239546847498479590262740545052329970527456966300025226094742675799543887815092522608472865843740631691988758012042331706625649244181769343944590609473578311915173220996795932396085134864945997072269713480732060324058159696568764074253018941630992706260309351495571865725913744143436887106974780629371702027250493942273985820778652281064252308110084003296452931243266592807066995259796645421195881664939221802438274707589058689366657572988940064978777848013153299090214985062678894093955911726346039554917390542457505098656513682609834085579604106482757811920098660761920670793232303296010046544890913036309098897940077140637661274560271635691447639291904170271268033083243959110624586011837423327983356446408200617471477531944910942001162452990620209192389914548146618882642955958896548108083553839065420513254715236915984256702429955505205641872432794873315537826490421272400538632165944506806993227637990518927153115192736054282149157456932272239690460354625517238342676313552735923134680547478209051719585019896347390254394416071343405060628519445510885750575262098606086295273647916225771900544296103561807500296350836919451112775002950322423302765925651325230466203650933726881708923538928629241107952591225178184510230277660797815587193340440091427972326822021975891546400288111092844693200359024087743043220898502911431908870689239384943398685913424760546324330222656456746221191344079799855804465538485058007741458255444156801470778820517688158512691606528648897734689266223756422828506121131559603104985239507519796474479821700591796720820408766500541657739229142997574352390265241186342421653830001407662047584319719512503097058873589549620407668312185806609879062098454621874910725186623978229822653846807272467366030339546920250449927660159613205391412035138032343571350621101237620869723072339566308916866357621583130765765817787758467600616771978816499424096015523095417937718391246635323979524596940921467981376538746620067556286151324953285152137819753743268174992528602548980527620605358204299362562817633411143566758690721771911518546078151950323211064589215742127810389782567445843523508721683452556612500812122934292842567630099526279743578025525037047904617981849925039771069101604974035485980205873591261500560080962350158645681949045285395813660170133537584797858353864485287468170287358625843415346441824454197993266882476787569765901713808346449250957957992994931688847580943866316366128949397619841518883254440804226187334906675970703195175125386458387646602492433277818568666823022638094447170272394981876801035455310635536447884188263594898255206351827644739343296650200543421752879208889491345362557420468716593227481932039225679899061680152760480121904457898165916022835403071120412415070051651210389869085578810266224123472314507060887290050733736878247603247040684250145195406998518046374848231721954000937790868153892620684878831618292442237082202696548340075650068373024388224989330995700408235817515052617276422695865046795954516828709593861992580897278768511975813365992031897513249817912751793318877694336019799681933232967725937658373594935571131479594929162071927112756784999230822167475215549265127158658082873183831998345928336391765063028426887728500005629174085865862040148928502528804234922347115716053296940023316027557741194969898071310554464624182372921202233771008636471416817934093479237278543860618090777913193305329344253345108555501239439325526189343778582657576566504366549592061836486093689295952814404135769036160650661345146046273105325978206747022178413578244981633006632083738942348694665588142684188385417188899188034859982842812913567326054099425618390344306194440731848294139354603082066803248920088818507826664192014543767715829932750167533136448088294379503801497623037403311807689768089419825547243001293387948347636241589255207714052871192287962698233438327425881398095576580985676855093553673803362057929902911618649618739494847140601434021614272024674865103728981371999641719103536470130274268402952752014018159877952817763887449786895748045015396107240203878555430205762461701291962846185565310617263851696611833592640545063769112511137474399246820887736124067369781571611044242438914834417421814339157481769495627234175366750597065916528679416363646915413866031688554052351046315016262803392702427087907241395386507267771690981262119444261648806314762035989708342050667634169711331639012981844883967626776321944030591016412186827330104662112395516375084820657568538148091381399617466609520222413791275713160144178929202559437701049062638886813240699785001166226007770041648895130633547763251423562531600824440836889071284332384556556382870338048773748590670288999262299771638134334507847870711433501837506678271878889527293564121639054025679328829917536756499839239778037846908620697500646094660558479395448076640889306354223626268025926692001856444812017545830321097754694581993581051770970659891735846666930960336204477919040235334459268608846787859246780188824472330815672273195109055690667576464184240094152509745612068357611501891491563342136365647612295413250911463109404407661003329175345354713959047186137630013986748130811262822304513858155885045843633455318322200535758034291033349652823072401022649367865173786066227810061882681618543529843286541740075572621529291964435263941949014202597588347056665090066403026750579466033280767846609805934141691673177131509734804585684748599467129196953206509143887455623201439605710113428309210610551673690502450708142848521192909215834405796766894429906701863321890777317182333551987833673951963846422299386618846904496126224157151791638588088129127771133130876207446115589672295573263830783806752429365173594619764110657657650745059412088357921330588176433116010924420569819852874063345914176631872413845342955957891663941160988654001662413327294043222158374122804555255237952831309815687296721195700064196024995838841758008768734628198395526261116867531086337024135304428172405731595884359063832853374031248283947812140922962470011101514589973684817412946834782624968930414736262492086506106845576962719780298500944450905904986018244044650933065907102629505392815730390904025501732344643428592694006583192978668170736744423989795548889211764845537233604424265782930304828314994340198081099249141854824908028317823394122769195428842960320115562738676878675304133258969950547283181761003668174323431977696660626793316730879718845507347212036705473558704667682740585994408121457676265199191831910428166162052640838691263158025767232887121940898624733752511425253797679289072847427134368661238870212865414283655749850573860566547651547216729803283977026933259320382105865812163194813874737744381976803739921490987560983811733936393362635268553140636124195609668493953687472372987447529055868279470322527163141305026279837455718238539789183222523793575240392490935360615658945369749274356205168389291399873601974473194481445965591356114648896323022707026014404456562912925830013876358937214369982964991771839302928086027467251884583414916030432633007915038838454157244181396586238422891525825375041772414006672096683673884361413029708563118988098862542509670249143895257378455360552868112868143534758774203286225039690436106072878100621514258617387418298768726937722549982420805268976863615161699892834312204432438179229723970612333327314238394949142749027427076269950091550271408160309022895668399775848473062025566391102921911114140988272173719830632151743328503485277872542565011557208580297544898951452181543290761762452219358388289217155343305825590374585555160091531963582771047822821111830124612902655003468377624924088124413995720231907630291781545075618276701114932267947024633976947306196022391370145908165962546277595073112305962294892505062128457151068410954769702733759451836222440833286295986579007447514799838394066554549612409728885401922064345119679147754427892759632588748729853020478283111753128492968940974090718486274794486620125176238625902968395419086633934801742049092542221116147598682994099809630451008616387113998119235690554992049909406208657555977617585617990514363127625882120643283253202306945193557155177071706371013371428182305544624128718453093682699290087539037982255857718412561166305649308913942902425686346741646292378806037263589239846849771411117505340426186430066243449459505399949349043061360262783004924057457122388861447782111066851885056798787800356004191830351207888331564343909906183193926815019071892495794732746584089835637077953367403645979785827838019846810173885834633272723080768100013727190349766979404820754012416587711846688478765420599043100471318146617559771380449952700943991310292196626195716744544392223901266508555422908331860817683053704747919390558378089909484096477930534282521522164472785218053848357223195451810739517333720496560206131591475343297915151302138723715585276603805441541994557176248895389992259924187682263166671035977936567053003335175552605141466428452134198877929934444740003290005539713661620140143415064225400842902679066010331836351740634664900794232135875363003842714036567530057924532109753742184720342255911785802412841996914512822366174921638311330430948095097226017372018315173037993004439642813995272329026308230513562614519338896158475770264840549669070324739051485181922580598273365248855143202979999160713868224996358895475133344987360598201075995429402461572368396315047488212705683531018928801873408941616523207582340217836692209311453527927467352089869239596182798007466055639495020559177151611242054916793874215541979487657960624391260567756680426870923785757728036036602866920136915829508209843854611328719033174608442213050419938069703785459397451371421537297683601991376361489684612352139973220361187571652740091989381244430728782981071206810430155748955706629267483844648015931768430341610336992044423214992315155172827894076262104868023037172985785403837044018166400370500394544445124054237483967523406502672887789331289481580607703249772904905994793043797109513614104614716004341980958501655105182671573481117952441428078391869055406952930194629076176500976456558126544240541100710297621565198622666775996321710481715419945187067182837119594907086727411020930998639332959536769783728147812798129415144502196949156843479531530228183119533391313058646468549937656360646413012719061590731929259605782516792434871102748630379432702954632135923737058267667928568873329461845929544322417919795269767540666398716288121883369482712352464926087990451941600020831405738877846143128881233683099075146502799806963256875767931826861431230924919218283579938612002707240641837364179057919931486831411070198968703277026987032976659356636600915678040460090124756611072749066935431475935997613283758327122266036703632779285169955209504081637211084992910398109308604570356126778655685704945018971440551200807536549000552322142053787894079698600650222661649629682130438896653638982556352999420562396884119700148150868814649089547828453101988037956857911421514538676563518423313613384848579541392462580181703316538261060547200346681887540066433213028756070160858437664671723135416553596480662685814871831493370232342414797184983456481754407970387450203667822975404238744778781287657889227997337017403725710893438998741647225423376133274413222294321381870092873971139462499926242559011936039594638120885875461215954614155684761546354144142589449986037758251295724339122836596280735292625919547095817917601317491623735051886600865201428218811294767792329951148940202764252982024748160159111615336466713274830257638126503325908830561949307706213902467683755420804129115314284785967634734258192312934842925062334468648614469033311293298628767762252973720210954619876725625820686194333983308734881191525059467916912604667311779214984424714458001187926340364098695883444898505786757551470432009277973255469210582026296785834695276740933564477877671853389275401269582986913954144060006278144072567002435293020672076273464441878269751843294099390708652892285807973936769039142919086376728399248890032795231111311899611927573972903531618955078708240251077830694624799102617410399254612546544812180012623400308501982704051280556608304450363951915295404666741547791424993844903494508918309944580011473629068530856900530223263144756314754217888947091759413086666283844609598010237581957677252790109568522734095479751015278027247324740116407699986515330494679031658541331480892287705245821307559894704606993059237777655228706574313304213144429810033254149414265026852929771385322013233069664432919202925932217169717515559600709941294477110834891163289627321088096482470029742870948885464109988579609136653357176532346409862348685437539156858176097205718188444442104997381914847849871422555715042313975116979733063864881715096614128784983466313443644577211856460772261327133724763310666787142434712742924851512350891613760008225834278974939613391465475582606386258969868495649885003300512748965658423416240820293664789513835775539021189801118039006998453725581872294753583997526885268927246594171913584753353470393898877799581314771272954142533156232715378198643121379058286500616212567066377104566539226640512453819774827526067190295724704563115342894376833959704973678971333127715553037443906101585493143461332976416528753094867658786144418481584953563284080975851667039830751491314312085463181038032387020303371555049976469329262749743596873531735044476503444997370362733471075923752782570062152720719519958910070261935604532901370679309843078245501081550524613287529411317969787640782339753399146437756526712060908492740645079727213159905522314552621600376804130370888565725572216213338349636069402706715243692151830513498640321278361500702736046512045508100226202982831965844961098085693912570353797312605106366161120113261225433973770897029302553713726156303801011646150761889030840803919395636407439295843559655441007261670074055578830411486038058585619534848652095308419765799441326948610325093516132000066535375955570442062060362391063877503615677504213388847706666950730796380070326769454709232629176490775211553773630286780348965355928121112347612585443645852517457683279958533495572842317036361843366785781974530407935952705783544780294411200902593401341730620987221975406505239143816426124338307987973368687155161038422610203764255622339920707988718541787806518283868143976937069878381232494664013543122376839257854322258489525257140564599745184642583973021160401660447002643997302877368922507699098760022846333784855524430814700587689936017854949075307494043367490270057215540822770732821191428813123004678496641576140612292238470656341547190542992568787619528496254354583320521552308717136717305601898441338784144522480090897927708303821152870960520960961195996223758392860200107690069195649503192983634287150876371016821137009681107142091231055694770579936006276927396489121728134020366308654446120023956495502889664418562883648858605459994276474551327864131636117533803642601647622101425924811693765592172414668788140602653909511987821474090862203054051155975753699163512277704561646744767029733147994584057723969196641917958706192282256180197277888616566394400470968755281549301994498728340536951963066363355662479167458639507161094576921580029137477853797193402838862432778484250504566194071472036607048419109352236532716796027624134004455480611295561914233502248288208714662051193908367042401558389088990133378415658857355820305467481885141020518440744687699400314351400978809006015537326829315348667315525865364666649530291377968737248161444010202291098060182884945581047875416321790567205503894073645655552390792162953934793124093237523689348806002897853990935811113300155635447570461135186229792098266097216230398297956058257353286920608694877092685701590028427220916159119830956762231441761098737220247001555425070770663127969098631475861984755378233946870870819677325378539081756991876365338888012955380328212157626176694940814718366507466008056166869270311867123006282635734837192458908764863167936406350247445667889033631223803228528472487429595213435021418593533197672168951077337230886162880510451634140457661688549245166210507922890795229314863292928089040833389732956448926745701720279533527719726628043830599355484708606696212757673572757560223908075950332137475799495876150074571031833692311559094477836010529722208617491711257347075444463593292435646415645518902663109414586133665404775947983089191196807780842757360016203669973212980191190263545244602419434867369422716146711060615558122392339395500521609415598890941250353676019928129421652768886845454304202693542437591148026721735612439937854712770368725924845350996248995695839331516747334216635859127401563604277151907610821273326611616692594698875467742445020938032481378710688899999126551852808551128203955578587987284346793756987416099892534683371328767079560883589083743780404053127700354408207442443249533083159319650580101978118068469831531209638612373680946901001645241839034169465457930051207554829634842339099823547614238081517735346072035160271259684570032356219742929635331237813565954359317276214643082009841214644175564202819297305423974067626407801080309045541552845117135208441165685886412552096362741395483040458891514533040328271009862527796630092586675749227269646984132730830659518491824812204197605546067424844778858371535499400415382675253970584741737076187855243683352144520426987362649969003346367087616201510096917670240937608895040310396699178924407455865669408880505513142243629837443725854046675915761706914191633345209283628480520860043259342692065843756454033201841040298895306388049618032076205175212892527400772884036640380011493765643036163570149597546684732121125904761579338757392963002577495820392349482787822500197808388921406072616209125023851192426127036710891304080081102610265790485482271807772195787167475290347319811193527300100289694654036033003079582635106086168835379947517812101738310778198003582615999464978002521474022780739014024183802813937260624689014990145373722470774460534591103582585019593395870149318900344492240201363597719448050536822926271245583195927122291984037420451758157275055787017722028901268578873851891561984192443914896064902443775268499512584107117522940667292104339545996512346960707610656444527635636265678381983123586545146892610778480742428559260929893501125833606151339437189893027916774405926988438887281423856358336962732186830047199527891704802007853042261128721902587781388153883354635425148073814875041474162827755455414712177340453421910567666138892932009046171409366593896448711811778144727393429365649252145189039452141930274208096200026241380622360647036150491236714357248201149354519461655009987283281006425383266516323367650374272100595793541908275529514789956248637606063061644768196421686504503100782265353987467884409425295760112330337513183145154951677463517258554178669630848848466333803601886181966305521632708474882133980951319993439551570799884718292050639755880460684217635754595804894908014666480724555559173215063210545667572213323155545606384593255695484614427367080907415803070417920531846145138858972938735825405407110264979768519470260782854272948599467312838715196254755739699439107900963110783349741165388627341696306462270579018720297025502356293565370139157736033185964660931323863410603693586194409684188676410766045520832247634542151817753412045428056408702437951678606279525893583754941596173969236356443987996135399207974799093782444558643535671890678763860166043334624431596697646771121570838289732008534530228137155590523244127403253377969001306833920126837477622018849980706599954515036621140794003538977289094981490943296074355172765473973195981769372974821829197070071627217343035255356100901227203295767197878886691753084093966527537684183430031304871731677061137633189278806597716330468362093284014773077558499360011007912698222197964895590102925339013697270125515143148643987875229304155400750784302735830591526121834595815854786694357318559188846899456164479115852102473126928101208549932577144674697518650011245741490828676471030153320537748826467047952041370275135835806757913062950032871232519689890689551299214672448894601091213557640465834268835784005775359426853964719512491285137095008567447923360371347641176545353562584697227860190466301994943388766473718214943685420916479371458827986554485508674485214396137784295312861711611587973361481324120792850956604309132212173411083883092850369907095953941859390456122163531974221140043187349348399534962607625809595859720098221971893449702209031354102654915980658731869086519276836087753839943299627470108086743932768975461022049536911737817998496226634191937955290497636045566017607056630756439299343591953059833062071058615404157648519490264774725303400492146375849782945843916129273086738532458813917131874511135906869483062916763915796189223229022649485995919610286437957575369847442905747544750172398969942867903690379330655669210037579824183458738554321904589137555630812643439100531744776396372906255239610009686311505379885331076977222110821756302462125086705559280305341102868822259643340687605948291806497402786964312138859196605363923549745267074340681079971083774344762337475437404386592149343957371069304771280625884643978014703934313322512513657828774525932596621670639639625756000440508189335898283722496790872131292670417040655236040420139597539868288899312894102905063738129847025944955264983857058671006259852634741866507073432249823530337496688721075888301482769191467696799206484692863920283287162813534686989678726190632873550566198962498295624290790172053473707258774193982215236218146835841803367079145395470323002731564978465799108807621133451267294842360642997009660305839090671905643359063696727171340941393171501624529203250381788028199921006750048712205628003061018520654923936091093412487715643453656858021812710036993526804898726155235150337723910313591048079136951959002840202092877367964418140340239875658574858108717012604669290672447928049375616434960042580174305810306548790934656134178749326769775255530002476806802202087848818127678139125178619336875334265406134260896928518761503683403554778561852497735892118107709094156651903497845116038087388325325689619493323524402184137881384276077726348413984602912849710224088017280456981780723248629278085410804143552412576907935286025418540572807534947196753344318577770332676852694165760762603238799688008061048795058716482481077012939033760186577683065799854965332087911230362254024703613931816063207239224847100237932598192481202822481894881749597119843327463707529609414565997560086259194125573504028041454500216897282808324300958396366529660514143426732553075396659958258314052700009493862027446518635002129060212293073828686944154409283032643794035766268264932301668981514263089103499425706341335635664494978515571124732090850922066751032729571376747951314529616146252562461358904065555551045962129087072211407652135758861660923405237854961309517432818530278249949784294455858448310303396751708300835961246936154609821436731665748286305051829560889678242404946671682166866618400150317702234492716992851485048242245730653873197205978727209580093661962335243220288901952269674662116295594404113821312196463515468557929080290436664658129700823913617659190604502625500437136404771981693471141513484830723341620620627820253824187290555003754892873126600559423617292115737548680153726331687341600335338375442117500232909492590354361924009754497427540356136650483243673845475128287599112778675883717353450383453476611760195356134665031893094565743859088586525310912023845517001713111474955486754701536710682869293274960132895655427121797746708577013254767927818246420397409232351685076506398332457129094648695737661052711771203484455516566019292289704736007745970845072640079244622107637410569859842384947036153887562455995511491756915209386866130167394572621624018437043225708651140817862344133598558053956543349351393501701666478556566360534433025233267051260370576395125339743860899089402232227549217610496015187498399478182821046661715942182688708576618333823580575682409538245043052044714826346878587583981691079051944847423348375988671909300367319995978494749157893498390420297429640370589112691526413109735789916054495159805690788415373376854971444792304890119487614516001712985940385269432807376059661320595585192452511688191213040895869280094869779066195191080648799304979404124170974918895912586040652275553331698837894106541145631118322492830718621465396571728888783755711072579640522635628489391185357529662622321079811407199125334188488928500335256302260576925024477451699066699567055479416484996204060575780413671843459523454550647223656329234883712436495454531618688421976232965089302346829218518513364712169612427376395579932998852418967589956074143139876279279034138584928931047057503018718115296536855772936557083189487885424089089892210658354940598848153861386275746102051291876635648122581171272136416412292811253406393314799618451144704480352862763518494691434955035006522735962506720995692637245411356233134523001416200440422655188707630678184714408289844545025582737552769163967994810133615906039898239484614434508191131648784505152195229371318085151284804892917186434358309724232451509292460371260537302535568091685099516617040364380509428649260381556238413774203206984243719937902432814149116164215941216219025333576726294003252068454062909077328181203562210005619399173199737869836629763713792281171974976511879965893232381600799084443303843562060110050725072088470244108409887891822595532153968839865406836569988063259803754534440675656864523305610969425703457261550766520385933357582773506476654465544829922080699079011818677703013918304466484100557475559363416886347189169231158683672618657623622163229268432945507513976273370845199940073191701812396101418391286328462849338162399473705401962286245205095569847206215725464127215206748600119902869941640840638576138734510728437173058023806822315418825092376810064320202050686179091138509724512346170725850548488136012377940091828476200432737507009206558891241304435335821748666756187460465118377847565660279721118732273934378917990782485394749961948897348922670922547437926788504837743070532670496379640568742203103064178095727126290536051543714129329176686792233993190321787905655389938689192975376133106657587818658929351988553044452581953363521363320455885861217049907409957419176721653561825579526204235013576490318345869841379038041471253282222721502363687083831127405883488450002394332299690953506828450170912130914685869317337248540404120254289357058789336059797758420645801408108351722261553579103851209145929021644148679502135084918467930387478857430918217845196216048732556562217029163817428949182854792547359357211573204908767089939953855013127495599922196078605076647185978825519453915418030108538940399631236164284692995189753172154176499244623155170723583684653105010683957758382569198489334993145183794530177184819311347839020044175351908064336753524766145605426446848746543197804609624001393366182730432360643368432980923928021996983797259396237212812329172315650115392820550138972556515858014354208402210479034517882110537970188634084090841315326433214793574651722314733655472637012999116121980927523497417575772063836459595581993935417413151158458375988457440197763629038532190407678601291965590044824036091521181190756531622409676083728253068406809424059634067852066176122174941109168674860422209536964393797919385205258512957433334451089221450562152818714732714914082028583264159133894748736791895466442504737916309528477982029246834450665588836544222529192670062127072850672484220542478744277324960250693772675394492419788389117148441401964774369701416698795498123036333066066775803738860601520285509187813075175049468504018692608394702969158386797995931092965135717677713670602751762620659580702155746808785374205831184161395847104772637840826628111926842183352571845979498280181032126177575080684504903788909124934302295030613625305121713119064780753321009899512030839925080093486787299226611939828772201091995804637155279140309306874107416921477441643234877220201407185930348833251985291279919595518086964039188256625288826715510446243325208924513660844119638309001368801145544400934525224194368271589795855962157667726179544509953543233109521413294779564615815558483042976727846899244341569872611707733382566341140546110705447765110346282636297119445085963201046873770908955786807269254433834834570093861496548933961453545459490127880000918542488958007204163047883003937931891288307913323652483855734618737355790261976423423009126050061848356720677066792591844826185274709835621420115346313888483406159339821340435070348655689406625608926080623836588835452075637179245475002485708474649710974716235500407646699653659960124736374059228048286786542167963740997711995569930912206616595678483151278459663894229627453616825119587057124846388318226566853658157068634046806507876259284946199419016291986409428560994762053561922727610753837202280104613860021476747351648354808996588340509446679075851885473106942043334994444453551371091968930209743330789342194763493225927764957553914026234089514726397481742897195430307825892893809539158699067735468034301528409063748341829835219633375402702573478269470041968388736735826201814847265036424500511665293196267494630239869802983346109978945012669177109018504175779458859916960913451060629092380067911585340914636265180397944494211944304905770224851659735750256492158690748643594436346433790635980996954279152168991956190227397002899915278322575224213540339132474098349611818105983675773557862734813146249334250394043981092920327849075437057832118291338311850610279221004501941650021942564972034548877013986102051249641296953676779108243084631318689309850336450031810495901102511402260124023394939245952174747564548492395959456093916764975891080395962539378226725991943133394818098646075722382349298528287571789035154647432788894328031787499194708292605412049374899700634089835088618512254201833381614876595061689451266825495378239348771590879224122095868640242832172423138123202660296670766091484098282010414929670990406772693945725601103454144920153231828171635879051726875769941567612706982568508003084133002241727719890180848989215615741419442077575756957979797296684532043025785859106013629901065225817954660530377327609773246466832561090941767921386220675908223628728801388857142838210879548295843319502034995767342223903583125511660423124422526682833691110791037833035539287354613505707604312054392231390411219707183342952656067759695118010419353795484894502990133560933795717330275422407698708862990640274728521575052622128639877086634370490801963035358497076511463113095086501332749438417537459093762185292446418728592655044903716226869040298906833635507006609438035041383437703263165746389920259680197522348758056817800010660759920179584628648784652623861699858427601581285209322920838000664051149389279028989773588158946489802504709644383393776057905920278184283924072371200773430050004412762837304190446335750813091848213755184932440494145066456666168023302863754053002021539213473517736985999716350924815370196250717419048023485222302984628532074785399880077477176757719911882747896032748862403728682412246868811450526741837419914036433731053232566445181475832711781223136487652038791235636014541141073301384790315302696750337377145434746546958906556955031941348515017732417298739037767077091982423279423783846181948540222510423164288951623362554944938880841588025926745324353486690533467614288877775882632123289759294228187614206397994811773525875081167374693968500823451400951123397062042854247521872290897002158354155486040021636301553444790013134189717472106042065948764966461690011003177392356050088019605715708484305487396379334968455053693486238380440577614858960017816056588149284157915643918612372045965170233367567314512032478675033712126534866549428744467511476091096280652654386820819050329202718008721582048176345048394339922369541856512091886852913731065072630468173807790368564893218640663729756471864203199330116771672005441686072088923902943753772723277117298875769073119417226821953505745231425706152668384307863206115250042864631182383694571593627015079448682444666741011780323838206340965897377676334028598374177239607004967897820925332322737221991790630873971632974523546917650534693106468266164998652617569380418133362674473071652545241790403367291725133766309575799656262625719359021923112128463580838833196209381185852615457677117216506178344521048200055319960106254868415118564662060625174487302360320783525766399595995878033895305661151162129368983971449367570512303551084483465695392298276653617034112125867752650318656924508975277221272261497112931734583554035855364464125365915924416142091648677368709050606206038517325403226736040429796491379005702733226948921549218921067226200348116914722133934122520688214346427624809350453142465897501245247472728493023822657890718446517876192151582240164326004646805934481248735972831393624193321628492568288873313957129527354289633226565119848891257124319021206756594250076433981174715574047261284256314281537538276514378218750375648529132490606799886562049124010827375299167257496059249987417825989407891753465060219523519905295874019798777115205269909917368058592922403648198686463529947507944179103841636740399221438325403016176411468366129027121969523367039925030785764972454741517971363114940162059641571831483512369154145154766876874471699285918780709671583302437974309550550532614933025670706377832049557711060619478769691055154677428580613311726731669404761967781685497995647488382529508116601292355719738247681108484709342010847656858323080169644551118086185550407379739436451923151295799336458285339235755102888804367119882267192479860044448791002103970134341874589964956785893166841907253554364054034375828438884610722848212771263419289604933819094994990245800504927278168395530437615340362681122533782454471779169997163958394397282867622016292364878460311195411154261786612751953384618069193818626932149869598231699978764436780405891425474079589053875591093744413979011155317172540958888706488052275415500842757083237609576230484387609239796609036682874481576030318992331106028020026171772317983977181716429397422431960536581497904042978902286663680560709240292546478409982208413737350071412776858019235941355042551202544147617453422611047249508690596842412734874372424539442644394685716014715649506079434520142179785480309670633842345417211379576841973774635264829717670692996292162512469727027686211467790094313240064465242556544544332233518717310112363910583345014346384905438228370086071296627478972576359948329715717643473440318018774410178224891160833873084382683894943999731733922330613488217458448110058820291943966718408444740773385179891813942320210100245262972521406316825024240433697917712545720412930801256374506096884870257953718098439104672193219761882098379210365084767631975445501796188477038247333912207675229494242934422180939793941096312224690765130510245543893722946415385728399652268883192157581510262548426130680940699987710615713926550412673899355135464703908542959214188521258798304848990169568033666319325299759159804388367308248912548706627654433530523721270675409429322836021863344900729513785546558543762956446368111125862992727441745387258780495431532038171461126318551356544720488954718089089188009527771397496452703753067562528358779892438705304715599243221113613646070785791900690551812582743119672621342168268661244608528267420991372945884052127198796444840479883578782508804825073308979566902791004023301258413730881485685413411681300972505540932031921096480548233690302743113349813494465555333142921227558881700665321354571796651617758803654535333485843571977373388962278468049076537467447470788074432462153766332643073043774704085285679863509457003223902093226868939885571377256497543686037520379566744226101412754268256268283170122595077116698519310252336361218238131759749922269373657180600303704291600268414637813076882159552828641708099878462050717035569486644957952754256737666176352221094256540026173410692985900660534075640602650458405869970109061919363617259846805645786836311213480789106906386610594920135948245844837756340783414197262927043888453748160090831332666624926191869072632770353682643111743507734035411024432156182796749473318110826453981845422290277925809678375147404258461348438540576674633014414684437886789762065559336429752539746142213345022682718155337280121278275295047014693682502732107618900162555157423309461756215511161153650100046818819148546308376156545955828768428288641553114766245617988757363635294604105962374495424795888887134264144450578698192534646229358840948583478243477817861897812644096470520161663522720530120087558991028706684473605274860665938919225489573273148903164819272864841871050133527004363084973128818222271560009644124285718187553484426228058496415565695511057983476008641394458371813574946368086589501613406488168963187502471921015700927110891166095599284888528882433024673325273361529353363183565246742563445107633996182631425101428462350903169630218554202125712189461503097047692296661333476078700125507569560816057486442970053486802863702296550946163405376505613813285762579597194398910082859949453636136779829707830554900472540335468184013743953450939244779819920420432034571883681225365097972002386281777783651532723760247035907699600079875194481833217757862804885690865789616267080522294114657076213328739443921986936614717322456122568320360088228126053168005873876741006107612030965759617161105835955728997259066711334047466710051925677422431146920680910092127705070350920432363483038015801899925886620673451222958359934554140049485671512578302076325746210126045999485406802306283651978142954817651632706724707645445063698366198945569014418485389713352595357731187492146727176641122057079917636635268019628543735538961016412885711996180078472855894983133066223474315436747265830785533829570824252788344507867923064619222865843768582758978343722780367336534057641616526402246628832299255684995460902917800670300304629091576618481312086510582163448561072143948496733051063520942098955399282017923664817690796182762707239294857654278009465588498661580260923698919842058149134020065965001966902869786396384736888418103691744226099506865339910100153525959685791587395624587692201508128241600947362787124059201926940095449273563802224494683312585578969693063330928350813572578084159089368958883170001876862482355944030299531467578338456160796206891589937491134459838574976063111555739695328784561159397465535074289526096568742843654470200710178847046741009037122608439666836956696927454591443887334562343590309920678591677929523109938863025788749826479645148400681777663249069062601453794935443163587476940613415022925416006432926459525262819342410159363784427502409410935843773011859222703906762019802241790907611390449887679479437609466795986391599873813476233207606369402610836806007177779543806042302718507814633683400709822687349053575146261071311915506548745690922952870137040230655481389855033616829824419543673940969919040423257410225039418898275250420030725151631233737288885840439007386614742318468063440533054802658194263122692996786418628371674402575119285281407531245404171888226757232884232175798283911247819055483101440654582540429542966022357386130176788645629316091292058301236868465297723135367911599049905977264601636991218200473433542662082480746342748889988150665861840646124294176225137366044547303906739074010349739251138341168062244720030085608828192924039734933213424524509211856926981174904385685147308713265717473832542244815852577753547675761586011996550270231150347125627266484135876850076269706226217432773577121704281177459758927724276341492645119857317497915923576147112089024825119613469856462503054735031192718351001803123137288647972489133196196073356383156709129996894405088837508550158470514275178062637755274402119081047617470649137462817834304103245959165651537353763466633342293251410283115795972786885826383032888092289533067693411200753674639829932721333423284103980550689405309643765241610175867312508099058712495169006777883401525997265435045900541115270120319229683509956769476018971887532606350067701907749197083072839755948067939423912024320719156611414021676574590616993108312168708654076691384528372710279523364910907570183903024287756684993151877224249275808060428507658746317313313562620113936863048627417449692719269522200232840775037546029221090239144821211100104200465396327310353454684375812423833547894986108316822273769183490466005040021646813928881150942873416094358219258434235548440303844012559752220351258794371540649979525445242202053763556763216130359992298043738677278285209000585727099781944177462057593173638819082812760198787517065918386369240062023545341280871279458263697215718175762863528399689071791736171052586948698740850852973098642602921195615373628384438062988001671625169482546246328454218135965239839275274880557734338057190741452499440954185409507919253741946490070556159130657534596221631872143404102593932506916792175183323862815318736933104723281225670820079309423687949858450657563279584626370745425106150719179911822568616463677738590216865325022772696376828567101588421784445873816294230936779191817399898347963988985102821193732943766792456109667980573758217443319679122904773746388892870475147796012533050594660534932008722786748774270533052002438792482937705966999067850723695838881157268667801517713543432728541839843770138418140181572061597478219358098628961832600465273860357841928749841991969449996116378767646037226626397645531768792956710362682589538985785228808549051079189324788170667953755931336784008140855474760015462204895776902297505403826921619066785889679774794330010847525249929916221039115510658810413018509150201299522298256198254321611012275933567857948240253859127141018466529283551220993256221612347146281372030262661273036234113636434081221557377006013825862588180656186151761396889545469492620806202836137020273380685604166439367894641188559777142489498250187981108599178600178166148022265796708987756211686496000212350334863507728703895456226608956481973649069069795997956610264624087999730977629199726444577019131107568286056045643260420379865458489830999872906940645766722994968381769687355815095863642098850763717142101431926889562133661787796274602621339172343589365820988399757891202905863118373799731515064654569477523772711810582822026854631672116416866376458812900664316578296321185773982373063226731058549970882662758627099579520924263309804198873692452384283689759469912778815304004988434859746292114056852744615463474567598044740047062467313445184418521113069787690178249795727102768216627353996701865801411649043069628496206503833942351475861606019686746408645819652421351105678726552239535527399059739111075039150314009354280057077974044189140148904851099343389925457111384576744840854193521270663124971980027161966039176989693017304076392392263049943380020503413115648840461653670379528418035444788315223115157134799647094532068622448680813771638038637938853326866511306713838013849834243978608156425097843717687811165128764585449991869773090101507130439346359273813481380396005587420472112219381444322092247945055401017357213751649772315285302905711857033066634163698694248378463739931766824264515525363887236658794706032069413951037074048721054084564621046472526844066949559614019354384704625241459544294134380747674043231783250947443519059066721748410403858955847129832184140374210844009158778694859550226715759749888446948504164154649932123811744934956954352469060799226519850753775986314103403612996624903862892933603968345072995572094777379280649463666758579293716060540826755888373541069665100538522487107702966733046393609132400751075143287366148097322935162655013712095617661450874401236363958060476700271343368612086346944977197188434015779121332340115759834258934317438094949802375083453071795340113272466926171605126799093254426899493198111660866478619306893619688303657073422360791647633879637316858046573683213783515318773418938824360978448747902683241077784185789997228822189267529476458059605363523671735852194231481490116670853214661718593334655629428985138257282755569910301144246601159685243384364870524895510290808817038187150562788471132062048737932398145410595053857408779063554514857366611489304234465380988210545648618332992592916963386590273904701248841515557567688287677807214818581314855407561538719202662975893209894962578356208311319334983478171553091099455834869441721952100049511700423740018044778890853472297489261264954601739075888652758877677029471812393715642354313845406881428628234715262781268538832553476241692741289355850432402054869082692005633180841007705980022244721357743677595489064733291480969110102315671900852446512553559185408795343191137164980825463780971141195208437526116347967105623262279037007572048115665925939393292529809897307004461478854742944066972237932059310869306763635182683000604495873639194997366610724676969048298405643847447649520721017122787042295142805107038356514286723666095749917690966442601917306317235749768948783026795667545774872677331264255745303144008746404000308255792489522807794390919332222039140023772963128945725544350457095242171921521975415674690985934050122189816196272875324471261174410172852100892007138399171421564297220444322177760649481171146053091812818366575397557673764487071857524810201372957168892280009694667944364880189370922135512611198094402276356568698499763166870739757877911275390132102047773023680204504497625491272092730867204140528144180246584029760700629238404078130818006035544503770054590725401321822694689989794886466158715806215865209897180741897145408611071906751043971414249092672489681503134801426276815028834777073121228884698340302858834049978845356400831006669243128350031247819612796628857571159445892293926741035067011421624579833320151535838207484116452978183568373448457810218524032639601325485086991977959807025459846550227030228927566317775175107235960220629256023028824271098596172422438572992359853531533710134843046981269386949889092565787320717587720033777657734799201507189197534965291709992803512354429178216730229334928169639090148712869381078796465307366698472506635597818806736464434157736056074273339377155282595574781414179924764342808085162604646254817304719976051625073590139612324251647688628255425337320744041106890450647401482157993210015877297087604165658539093117812905751991469939830118444570221306316299097342098816383815672701049892017655974946031232223008419706274817465218588393667364110838777331413749607987395297621555336981255303874905317882823453009816608722888169166361374161012175663518852277785833243594308045385639529671902311751330809232513990164237541134928344554508014524773928871880592903043316229458685087516572568007268009952046309754930151533386080116416583891975776841156505102735152568076738101056151761504259861012650679850800116855342626642294312404746566988639232083844598568862119691569054715990378640624587906621497526915363704852532631887226903329853918544230997544864982152373497148869169798042123583078883089620801958995385582504933274758828530377506672524175398085603982964084377005038096080187027757322107638222142175093154524089984675098981383897517420187082860408352470822585049147207904392928720331980167805596567350780142225212849758087893270195093019733988459457478823246565764261862565124088875170826255450487857797611321296234687821882730356114645400313535963513639729028845350866300587621443860207710602731476608280390155849416454562379158922300408450394078373479735236931318635273320393281670499263975406464479784783302660311724449701037338896343899499817109429946438062105232543910923905702164007211932224811162529995212085286629575445148583667711789107281490142556773887292031127710347362245621659914429527289247725493775314786293579534708120429190343916451100259233189838583844419637800247922753161650267605087193918126858405854563712656842794430116172232093851739267397459230096718221147722146098378615477474947475961325890694228814148575991232683029787263850340238902787744182589167687133842315599794993133723752757221285866328544357702258381191262542507055243465795368534358237844488688590818774686845411333833038922719917139045769882578607940443488153250116456919118141214945152724478893960650121755531479808981139527075268926935447020571646163032639648174344588655652794189532951542348409570200581436032322123268274874900756247500872753372152722835014300577164093313275349462604094742805456488714880878480804020182659823922921009307043944972671296768937226172692084628356171573570125131462586684178718772867413986080314907767857693619798492978325392485836700491370042737372531215904917893512272597134318234666761556713173865090673287245082637716193091308260309518184068528805578709560224883849026832843106215553983272097168307229996991504224550907716165445439761002072364848534708736361288933442975397984068904859383553130663121764791241970548466746163377647431357083423679041322470115577662188573737111753909534626354512410231466102912058797032497397036414845237331633371360547408465838026377410520739297521862850387712277888158094141907611799748210240154589206917386162750136833998939369910841573400017509778341322645216913806500866535140682129136579939469209822192272615080276893985822617628060799649272825173125129601346863598693698873708070924801926024453853308805961773502880386533895144567650658379905627351575560728574643614834450246290890995267189859152625169129106584124872302952017491297297400747710888565260188370472754533201754395121030917632608315875576477656822809701256419927166341667355275603581167024255169763075614802528932276180851788825885990520867931651776612403110312725895133614858530333660296637100557360385999446928949665207708095892472594935338799876539074261200428657785069290945357196539185118618028765960589836229775139227007815282901020633930569123026489949436536382987857407815956697067007573798108736118521610695138615445670828771898577984842518776433072150463020745396561324886435477750471169658472287482863031798205038232688785285852371042900470412311424906458497884538083754851618656968598621870207442660274428117344411795228015442085907273581420177136990556455396027480147602464608085205743946653590036838369846790964566257324565893313103646445534640488176530599478097660137665902882697588524524196363476813179086364190528075600830663996491426323243814633436930950902974365184831589381093314990209055659735205436858737130098049106998988415324590977544772889803579868018357648205615061274615651463963251410998778017818997364244355711715821983000022353515472520237830945936461694854001548812033560723093565426326090394509587030136356681804861897252641772334298072781397174055138597976925595429274188969760722813365096817471620204564550193418691065403044975838639535988630104543087253695867603725637823254237586898443791313283423507136925222772636470218835446706550963358396855192170159060854404481011968603764060978684258053130742191483450510345481813248730900924243113150878817315094757539671319688852222840490914400172469676577852170602031516087994648554572209537938881891598251366363860135272912943251494826231546693714031221274084761569483157616770318456314107472186168532944987774791937597819234008062376467110216350763684588107407895368582152720945065815187007387931028669021568504392887496114248649571884155795291780339957736059559221597216467992120405016662155417307135165220268290590939327907472020303045243790748433007799523289396786118491475791508306531757023603870078045152746723895697256345441743972167361459437932253807760687308647173461766879614799204567697409223049858065869191451683591893183685932937232591087476195544747696278319336870039305365243785568079767155127665226242168668052026693879577247204529768814722615781205053821600196732214830080174683233909461902412992684941700201663937474381900030072085055253510693616306096360478065422845290776311755717550259668389062018266266886229458527219571076756149130506526989765795033140683133114224106852003312171323419651577727855815356587358570443334439641757790080115375870906482532008412834898763571012106819634578931389064995064372229740674406394684571939322793138805760697129436370709657049234185310059829718275363421444188714727601912448378553347346583854219240344228423498027937073832079382248644286223399933617857615762292063579762355717440136957925660057890494590202839506548500472804229052650125603834028985616887455991152864847648070866589832096851813504901266694588240015172938846438168465145776301182561155089842957612741269757449911524214327321214475374001935926603540680146175712330045969069464475925723966187331146974915405544491242465520499547215077283949355004493705752576490526332977853822112564545917792394100858970284723062599130858741628465834415526180416152757280360438981449303452499430235778509568105595251788509526825828076566027670649712424562818461334571055998399894902929581786964689527409342045844473586235112347897952503046157911237898297746380220450301917358649961098309728861178564527806672600433918067051231411963475636427205326106007717574861693240362768082291896480969971031037675357525988692917775905529493162249951090500586096927826644789596618369214299102677688484361136170122739792733358324006595459785222562680631813263288091662332303431392665567974636118456652556939273220990807355438444545343322430310380087739333348889530605011386597186315299887421720539900135089110632466424677370170412433598681983366926420328908696793264729210356713391504247671712248521845764531212419078980091332689051442874037479070384816917748714336349007930322479588551731631180981003837626719184541144663886828261780405302991977386821928968849190845870652563655658433792657101215317845952272137729712955315679977576806411318309229219358201793116373356728381670270664700963060256633755934482693604987392427908368005233649215707714129239969624705095565618682936405681018633154767858719114999497722500965004282176547094267156011397981069814216879711450474329543221952184150452163199524820243436877023468101971972616907438048371665208294480346580845929096814412191311566188459312443912947496093337767762664305315314458750011407866301736678952793320229581671922965703956428208499801808273998951594321543354114931758916591548472784132571357567177560936509544345182378902488724375052777752649304940849306577486799503015861894829984562811324763044859627572749679176017954583000779814113763688828584744077955005515930738091200953169588324351115892830140542129523026843361174753376998190307614736383092971358549200034221160744910143154106975113676537880239116495160507249613477849265914176556084346684527071561968554681095283524368362798110371181657568385769532176571790661694471843231971839250372187029484295495679528003028946096808589340259771751112869966818442397466771685668076480242155060187836127389706945164481692993961722239653683829013252939226294621675298389669820025295434432716335225728129937708117395624610959349193607807521622107237458203142830615052753109027771022116026827913333774132330948171375209256914373318050516585313979243707397047142121346131853232922266634384669376306730498031058626679526539761109546638084792937778685012738150369097435614110265685133892318099368312001422199306694833317704842589528333946183191875024386104535949348710497120480454696041234127897850848245517256611939923166257557881013886272916262797020655832652876164817628414827971154789856722101544962962475339150631551861418614561295378624496672485528950651732356507253213870206434124358158873618686617982871501211596092938867363620594209511348682160479305082924778447515281384846894216398430619034136490930058879096251964582259886823373598812937268519343202195688403836995365343971664747237094418576842371955773852013341570164835572357880387788350404029890795446510688337409435760634849341946991191421164864614411560952335912867866873336762751039174874383141125476417622455140666057976105167609690315938498176378990112983040344298729230925784799438189727452284166475319358156733737134294057339015279588377468430183970640902410454557834537431655391041260764836846514341705749799483641308747108134123083060370164989385684161002496426581835617133309230183045310213497474200636109680473031108659063740392603652660357468242669658938830231756567254597026210903940584205050018608024655157815939342119850340952451944261352356285079445745017959869936990961223238668598679846305446781862702485161586002436213379263983250668589501937558577486092037034939912366827100700078601725073342543555520413250444940186546238174722231205494412139100936406367844783583635962898488996987603963088291694721331100656672076288191058423154574525303949947542305182567756428642821820272853028710214705541477158870471066893509623183021971500910681617034353842868651747581803697574255354447823285407374224846552132745117957096575466112230960791269740945713960717122623923655845471244700583789015013192895792083399566294426816247709454305663245810720385755466253643615510225644472199915085251250703295229785541610328872996620640448913411983347541720856167508496316540640519241087987746205524410687633654741607666681065039857939034598443606425793516891790501470713848738548217291139219663948957652853899798777087523871201976341367957558052742764717934629289618815416823559234342216182848060936059726490063663901337370281093636882300896161561177287124573637428735766051664736461053743222124183330263113848374574923481101852827999879404158407132176952110530064171591552731925878287019727828343910271690327716989267094030046269053570138768439687504541628589263027929249940796370874919649034659183866839014481883224933771160556074150305614121143231964697588352523544139816660218282150713982875447370959758962049422357203403556188340926549224001381147708287347416570222156232030088958553355963239051415410100680906983975699582901730689009220789788774616311873370404964777802994017574622917311522827154609067516721444631906381475941545552621109168012304627832749792574739489357799168046099310464375279582389650500370452552387266006899065157124957302638985907633425218977007749244734621622248093752443641674834712993104761026562735285863080686888058188621420159341528113937728465237781408889454170016341656630934298406521270654475919863045318843479566039148365754402214371727166685162903591508232268391343473754390850402539162808819938326466429674784756181945892656547162083771653915801001602957939539765865899462497239606490148211256772947087222010646782065627124407395056940666337073117436516694391000647214932234115574506490499884777929015720702312703033091627867833571937437425163901172049545092115068893644264059601870874828504041249513570512782723348028225136594539553948555357727051362110041622729303470724787145990322571100990365436552647732168643062280376179441245082282486969203512057534116566908590373148924289903638700006460859780746116597547335667701817532262540448248894608645126404336508737706878349100311714851170425788285980195323796449557170306118726349249032233715736522433340390982925151529848249138907072468784606000699953152854413374152659169006748820244489591299831475443616607855398959412811041635964762415181915886994487383750000450152077786670075006249467192681388877483000470092930097009027945249253413503500072581219410033946535786874984405132391793343478449275201803748660076568552096826120042553486748708183863444499527539531111438052082517374283612019917584778281623609466360637627521591001912016516211211584786085837063513757345457641952063260996163426853762353171447080594551474985312464945582186472098617175553711969349776113281107123016755800126757538006059149851509923762553125715985746306276309284054996044432456682759185141831034575848326750794780448876452470057013674308047484690548452227185854575559388989572594754971129764939106703559885426718071154415941852558525050354075438235894939705535910502301300879443166684298554149222428324066772653813708986405257151767481253219527035028659387865574114506576610581403424019013458409181085526333273039795495353370794009072210757295729083577912176721771490247915133837812692309867614911511221800907494421162793756537033137197297317468989440535665641575586746993257762220297655164759502577583538983764780873062611615208261147645031455797023799888222190515687611910456773799634939319052285374234697346456517548192021080385092064053970311297111244364071667134321004670692800262243335059061073015114314020521475304431902610979754922002219567858561013824800582148880530728398913339817830825312388525933578083124872828469682539466544054424621702588159564376803317219376821322129914506540066514314327280358228045119382091868811765507747109438686914301701181364308411730809728322368270185618955332886724053155960876839179244215850546068857683289550846713503958518147221291365132121060881217916730474896953884479901248904373416168709865156115838176848571827107183651570853148451562985521360552510666953529929654320762735624127308119793973489274896357217034803396128449166233685419845209331423436413956938353105255911887649631010089179434966990988699706628831857760959124101713826564184980623322113707962084148999443397241001713639536118058958460996814677094319430607684748545087391231291940994919793919480665172236598077534914431648913259151611893728778474276964587712525783559708256520789352261013519433921449984938081204126931116815120549877265582827041069197225094585312160851450162656582550738413154160446369324731412090702266737498100185315344331361036949111159338446262187063917889012303508469181750642273283302040149247542149804033026488697078943456609130121713103713581053179049533489980654865900526648061100540091574895313741692634174789054029455985244182379661733047328595007486426999031895781486862855456894203532421817137801198443796065994840321903269689175898163310248649611537103829487758780230637152273196923024883262375234213105989807234574175514011807169271819871196257280285416977156909293128924396692432053789674874294559265054381759795076804705922163702788502900855195777443493824324511806329793490069747171549458785846547533243612571224366691612220494962172852196097533334971270182834886263985815091310711478585817629972402335414305998140001588324973668988280222828670774564503981305218445554040982638898983451556374605271457400462335782279105006124602623894594697231069802121015482080970448664394766910086727558576338824622008413533264425107116403463913290649034686203931635680343997683304405405744921645589786565805105373181939768946321746790759720042551799108054312552874348437198050241439925266128225257246694923381296780787884027903804406869382562926457263296312575147590450609874237134466673753903773934140001572066911908709902512557858173814057420012396668987471825037148031763447603371100824849361776431368957631154068369825805552689143096924624821968921835185038310035194297717361951674064895015713843438917052781010065837676576083457172592751708641250581191433722460880672276705707668591384527964864624533854347880431469386600110614524484074408559331061895732680416505247175803796547488921014548989735015141996548173742504731081863383171870108670812021823458321911021411608130611444604149290926245231556002972974040251609367928027416289594783329387873021971463975084012171346062090478572880114576214295611482894374100061346929172303386266037078130802819038992497409194979252218066193133105450959823892928860357710447512745759747688889230750377987072657515658315752888693058214898831222099082500471096557867773666612973835064299526326892384681611172179853513749146063521185366733263096959212117079449647799160245072482792734819577387567057713070723871695819786091105563842748128684087695045020266299832049293052161263917462873718567422337556233609073049944569164479286065170849658197247846505457315612138306798516695281065778168323803729232549992197930188453691209077556931226557049512308338357988315784799095389537222116950005912434397783499196032193242045041094116744512179500554983912172635428806077828654580816513661874935645623004076299671019487994181969537293416962504242722905901830510177458406412520169315349542672919329040400245708188551004908809322841934643994113314542779820772097304156659163574547851115329366116422121358836153781664741965736009726574645084832661735718069365601484951817382833122614489809259190307661831617060098624526385029048182117147556671857812109570059973202856063474857432616765176303465574003306019656685532295703861352740380701149288636195670160717806911656529157892816857509064518967605019130577573972392333830075118229347665482144743976125493082517557995610645487525048628367173913263040839742367695866694987581933311498898971203456574135957785241982077267811023136831697767927818624206470069465764833253431506558916690161213601740071561841865052324484625013139090637648151862243993106841533080938938927436669861356829039300553727249339819522994969248662598402113657492589982169902649691855570205184571681521090345151441395365892877987113194174873385255698391399272470048386371671689810462343645402889029471314368616544466179783455501040475063381226816076248619596100828157727819402681550758401158986826450556597030064008322986955440931414089566469754805627938548675031540228865934094006521862469905303972009722423944274542646778683250384188948601087916560647063886055970562992462246009446306105844704670399585431397107873869057881341362995444415576923975767442969408386516433029457606409507415922811790946884688401664081240018813447636563069785981989253168914701317388404492348985421774721366117620961347652975164859503214569466495548996695321067712235222262771740951174311054384476714615051594572117128321225256138761492398444657008419506428547631907005064278417689173134681954766875480979430514844692580905202830990129042423950263342560392346309712111106639216499181032493279026646978402891205475996338715242034196729843838406792831804868776989389178518441691549955157918012053530505317980774296379587415127511086002328954942238107640844701919846961298647061687034832472029469111218145507308037229467121526088422243061095825955828414428930755480576573129860085094204315893403860822539874217115208334027960070848845020628829638902472574727465977850311083945341817342034315819421324877180596602039002877518365110249352120309732293963751791778571621414463409047943948983152566935592455183964599535643825980743562021302070606203733412808100744053514221115128052305250798943198253770042857442766336477734728996127741889012779096166075929963171341506971079957644018249007036554047157739267429116488526628911574505671653926571807084943920463987636626105585669384315198816608898641157529066901992495682631276064918472813615524056879083160179388292648007058216069307042565256513250823431645952049737389347310616943723079938510810477079767418778983167137344325855523261180907456252436812922608360836405956972440498471621144466955754078054559451496589869537431095861026573147454700913234999415872766873942586541831843528250664299786603311494432626063447242591232061095375385199399690170383583306779616247117460167020781290728394962251726696917825484200257419835346241408178273910218863677703066679554461199037446711170582477790166148155109369645836205517068328164601774847020926133911767991516068549768768264376153346518744784217863263490910755778569318627401728099037838991740490157944240017322015001562496041280931173247077119671129614903722772565470099422694694366355264727723641018769131313128620324543391417773721062069156036533462312736236010358098424036682451744453412384419471712982257652773230888411541049816092436749135588383694146730317057712867364833227501494853342187169452815071836047863738756698309381392636094639200733945583209724025697985129522380705931660817394378187477432655537560030294163883460659134865102137228290511803595384418790361634429630628476330524928425232757530043591599134218571514689649841596926984574695283726886124033448475012399012506462919771693006756722513567332878266415371327321590182931186055507920785470704587338823378031091043594363970332481297759784418379849498501851147048389001590165623991804884334084547134390976235765792349512557055644304429104785470734731669804999296422512009991656082230065185133051135865935937318798611338857534796583697709284590331644535785317972438053941166484273623662490562387009008153901125810957972009532913970625206991006419377381096114109928545858942697186612687302643123620248931783314770421225727327320687927057046548130886886728018751304161008887089984151693409979359097878450363589776665110544641804755614368130303141075337845028239719176067981951855929250508201456264881806634254768875846118643839053726536595786227970733614439919187796260281630675581890946169594725558566026709740623273123022480560232448680763596374857879009531461932475484235450761094126200361629452371241435023110854995762787028973511738095918600133896121776198176819413340673690805947712022948332611873663356499100914028497338648398358110962464834995984741724481249368826647155862881005174013678127323774090730451500215832012244737442963020782515341434666071456388698358432366757152659270521935237523476624569597541955343185413806753406322154928802501122656986834062564153237215561258443650366741771792697454172685586056662410199957217909115817777247342257025907916165079768444869919940461451907492140182186026614131163273151518624264982543754186048859685652113852420241535697120912091389419976831401725790142381826801777119417626755926402601067512507575926831742725169600528946226943219318283470656702123673370803129394732072954855168819731286418512223121024097536548332908117413608986829901228665498522018814498123955582959617898608323041275355851786263870401649684037256630721918280746786853625089764887490106095672776666755645609029954558774363750226334016835292572702503425758528165442434663468706998921782818936617453714640633714940329314295794998896325313582925669109497454436005883250375197332442686608833112369302760078329444894121376410570063994594644598518733383669829144106638450804149806059288714795216167958349855626223817304918367381871675431592512850617056019736036458743539390596736336928325716801795082962456498402626203954033461030009370523242264920390040463510280417740505522069319487484960159120206830547004083525793701468798258159850989856844273656067042961739410468701376130327775749174921523700765899224832174492248626461548066858472981477626074734921896371248535156033736297053047749465558630702371341250096154560456595031713299589721387243204907306530969037692536891272876943098085697494171660143408134322577662242499247604663920329627601631703987484239151635851317542180906226645650446113578696933494178509621378199761830314487511747382560018853045297272902975984935118137684834573663587785184887933707659825755814364572420303641022612099653629462315126719638687201762033748075752042251629019270935632183857393969756621149290620270340123638361435332129768685564744830168374267676837803385278211807114550628810238068936439535691420371428103593793215809770236737184234893956088670631638106653585012181034717817866552905973110981342841908047653201824783160565290358413971956196138649756358562647889828810407190658547002991273718539560003011768823128756380765594707983030392231902116966987511750572314603285842071161084858902720069964244641100952386158079613492071410563298793657604013964997574208956520443697726998546744467275507278124035395378777683636029773815523082616969790275958894217456087339572690253560100862163629628156519188941240319100508688996918079260236565572103185397321278009466621349326952207436615702859569860451466843316574850904713158772277000119281445337024675868541871336472072395170202168343395371218768441949495395240620774870406839038816690733740597094273914752307217295430222481129067568407455762863933265062721523092990963210598220281069600636525276742605923544516512073134625010513132174457681540866806994217512396324006253702724259270807153252446952603657825050759984587488295664257401717275220865780042607473844655724533845833491361401518039065768346597698733235130529670592403290816585485199981345787584895706855177790381811584285656359061182071117566689491609597201035728916196646480119502114074258576761705451175159510228908699861471250606706722398981469529984658032798031189722325193395696875286545312405283231127327452145217006248287913800402042387904681696659593022986676794665857102306174035518050549109259022852055723995078217942856641160870307180670888031732196107821411040792367047092029492251240638090134637883503065322385797185741276735213161217059801690667444923117806669729147526059890961216302372713550767954855128764227328377214578116677032569335552884776127320060923266598627369979896553063314071960098630733699104000050576628929032140183554697925337937620258218499459653078491492884592528617369995768413618450313204901197447918825719631066465658044691216058331898425448014527294998491091329983566782924197925185279921107197602496195513602481614700063805424350743342820830610969331341783498121595171319682845041602443503987262994251884642090513258795997053332091205096537733623944923467265346343696217381688723589360182904036952776983587959452819570017696555409951545034649464443464869432683115897260759457149788452120688644223546752145164156442098286328029495132626132727732671311014834085143235963977174629243171434887919352808377249747960388108905069721343627485542051683038414748705664945340915182225008834450788775973111614532825617143233902488274528859833976423695126878085628087922917064541080555683951446252825936292512755491105778632625414134968469487050915642988326835571465098841769016765644340095040778212688510530053873340346107724932040878840839238138944566971549980336086412547446535455425809828354875677720668526427632245858346998163192660849444085212572015039847036013063046145812148109785641410046163763341210440071574551567109294266502019283707154428286603346675478907470560895722908374139971580025292272583525441781328401249341940040228104087307785535286513447235546549308706511568716878184021507381852141991737421992568387684022472377360999370233224500666743818055376933884137748758715644349297303621816713175003879192895210199596037062453232524055013140874411422226934392108233452557785040739365176409824859687307699357826233226622951479505631556565666400822776225804454735331046173418237061592981991657430169593464442340404639212305692922878938189810606743148741928414821696601698577531722862553690035391746073823926950088804489360541690490148707276048786925134703882778916080414783627557328594569481150255291092785145907261793895397556103147286253272388750532238015018557763563125508896666712454763894796962857272742827398466742686076589857820795051862515047403368629044803143568849673349250526101656088512376718061140466146874375027318663633301450675867121086762960048653853709391055146336753348563355536410005263696620923181571649881639488338241358339654570201576631984451392221624151707564054315742211666129622642381563961203174771699718149612303354635429141127926554128116269254600972502675036777150386829459507727461493579024798324901031506250632081878982183230053682284696222829149912165942385353271795142035027669464442653399211680423081046019963704761231133356516405575178216681529530733933403002137298591370440161161238479729123212581600194836335955919812523894339942908695614419597455982441446748892063474659325520600359790272391028813534428416043897508304855463611972938964079291591287635130913702195840525633237849013510249055813995784521798786901302980251905603389826741643880555528998781841774853879234349961662129911913681029562021170963111059646584081712398114064584981558305753750855043184961429871760084326453087838136718211569099875348905171789316782687147065013782382183227439764703988152489161829105211618871242244835262502343029359484725728526461383744236905886166859251077310940513060494580349482134669731004677857144746622738152820490254289769493048313377796073080078728633685036206648962309585262145540326500746002145024801944315845620930091483834509557452567951292207622638048238455632777058976471744377935609349061340728848067913576659618451048152319677615692443553023441796525509584686306497145708206233393444872315707648253336066508787299508311225978646305576238375349206477054520435192231275660500817794428065636346287379746926107676011988739298958532046826329233317865277079747282529563512093994816562911216374421869627721880235467074718182722616048940841504162814402765109379006812621156350670903400010547917947855867094257010015136335113575616790135516935220633929858158926408202001806426199430712497484785623267057012104081046217018177949561524527636885799076207940690629729695277365796445420080817734621305146889869116979503894661590015432025847703336658059602046772096407790799378303944054179353572566125570281476240074653309260606507085456119667980850501530678788274763410387240682145290510226954890099042538810596083273238419033595548074632367506539172861116227481952113016631861669816625744723110580144322683670617281726436538071675250891701174220886360305179198499730941257873929068242022658357143048760232944415268469035457449251378515509387700089117548208540783595045341165951951311033049364669007289733298067483255019263513923698872138699078248921655996047949304185489355769550336228992592892978646751358991569584161484524511879448905294305885546253393397429100838494987219130604626378034871456100293600552112425571415510515513994166175152781857653024713256152421228993210432113112487665233019126202876587003512533197504113326449027162489945982189422494950432426653419523812558936881398960249928677127134001153439939541463109876395199219395682981371598967813704286942701340053414469202805862236435700020378812629327270364383204134019757764258566820637628135557662846582108091511222786065135957564914589183532433664857545149215851253770444840152950755777702537162845379431449589646546728741391931757433562268821172831572898341473094726840741171612430827677767093373864564392235418068902916267253544664996269758344390206499862019186595768287342615781103820806371420099614439727542131403877546453175247080261092372550433160718906412810157325549896321730682848977787749305068897310831872728356944064170099421338339929718584724027356451105819081998850665191334869010342407813018419100652119690641769580440803584114615237293535834739404924362276541163226950402571806290879593671363027493568111802267982628749174634021597411920418621329192402753908427875104210996616658802918270948800199023566359682853159409007360068606812189649304157857361199355516492904415122316583743798003603525321718280877103547869023585510152977599094831070690220734926840754535406727453740567652918709999448031561659225134160808840714240331364275661887973279514547403812078315177639047614695586993467082242010622933480818450232757876499555463913438110611727602854007952721604622572617371528136240099268363774007831535633402572989817642559065619609826485396546699807763226066504888218214492540258817993463875141916787590290223179700258511447154532987000771670257890744419407604105928873383620776509908779837848980932956122273895533188839260720874183973981796036989816385523203592932511484019304943787523113460838661542714433490278692810130516472824428292367923224855260410681915516445345709279617841905667789734950345296846027862204524610128161813663250616078037593757133649081078626251007499661282434430173516832198125940205792009876636030272271762042050808841004706428993556066567804911276462335721228466991508623904209956409111388961749619068121467909316305341234224351114370758013909956728397363663539627655821105298913554422578007543863336599116539119938901235191616424827175871676029258284438270289652092738538896101614373001213342478114286064611691336195943205528816746790840505085641533767982018866779336501501348345964173519402153490865879697016259673782445984448522893588786719221874539804260824460706730392428077443931945719094830803769748869141589854073580113083272157482956475694087264235741850422827460042451182487821168785874385440779824356791436629870251074135983777558761356409402694066598565855550168650830323061481380458586371910271094878216918907843143733965297568543261994251038768075250459072436311136549413374446104105787441322211042452237116074820369687168292531763051544699604909279507028722874699383781552088480684581607976985521329590619558946034834792299217782451632525034643211057414058941687658960233041299696434070998291346730206144048802063511871784021578338822232268846631797658202068798935573325299348525462606924159548453387418894601998479751178613695723982487378291606176904339776325059782215145165518072781707601949092652728896300124719449895851152146414595562960837833150099645077557424406874164794270377439982405794736787116656763339953228575446182954168292921968367878438479888084784645266598980652009528382425030976881386710455691518218225047849524563809868261779507204995916921685131915044110398815061856714237775047005240529051551483679119305581713385045030836455861393597432851193191759033126660444449123347158316880256262436275177969600329649580580225426164363580135562062338320104869865446978828662847932968178781414713715983676178519242778021186314748556806665447367006963033449449952637503783549463415367896942828632347513842675288778032566009119847675581321607999638636326473835016549337430889663023597460424776049906595236311945611858858161997766622741371673538527298270628822097427600420106944181490355179828684545173905046744630308273997395785320950621919014800325135947381489284573674814301332089290787309170347572390138590322996202887720164321113717764853991316138095987194918559921089483195858162762829214383117573772230936396572310666811686999399551213319903433897984858576806333268412345268988017792845013975605263291091768354485264386153576546398554676367901292802985405129562733214491752044478223507137128976420864215265981535245704556872341273491380839629917467786318309051483143752168180976502376865040602988111518211598233640716082845549371599446990788040695687024642873147650137139014269199339039365133185216107827489941256164984646530000622053251391752361199578081475996296586306530323994153191618906142070274891493873426553665061342874737328684643948101971633446442818194286045923587894536567897027951559949097964464578453139725890861968497081775158961484733106132115744967985142117605602558529076785990443251444960727413175790043859179022986165260321653123780262934405377913373220376312295254333834708348425836926184254178908232799330080117841739689746070069700923239649670992569125020871697314385929296019586886031899245048640328894667621835025163772717966889817622936285425641145801822942142612511316627783430293956479675690168213207441640462745633372510104556485016201077285420426000377337932428148928573306889545509592095192418860317250576031531143810722836813680283853765070992416608330569597791200170320725324994723150797520212531530858210700817833009062315866594860562938671470347484801927172662620297913560397104479737485789459810540338958583886255834602249355149284809106019811797225153805214559812774251616094300917387746676813616228733507535165397039623959913068621460527179265718628424265538635427246603300138123420170798353296997256000706907304942364729284227215547007619495228855934853698541328647516744367968978454682101210369374573503844122257025809961104337231871923154727347501619349319090557692604768821317054667461117386353112563280807830535853375877552825019234794398592897436188071584960063207658606371222260164643542648119716086954675929308969088996317811194498989804205758832661650768873549302808458184690561022216312742677810793312707164601819475065992919896978085735853032898412962923721279907749462240254158144450533788589922552055102420960010108316415235672891692010531865716335194588602331398869649050821465686032833194932676186572957762412230390632158991924476000188808516384773684368175926481341272141934514259811583773153467605487690461633477076742306923075868586490329394210899710665082088725683359183557861857829330903158280154752014539377624022489726822453887306183380618748075327306845084777056460579276142423883154940622702842839541807242620985736398706609134827752306849776392578964039538985306380781013102494720363973316059987682543391528469655963311191800759030029411240034937437954497771616657430897419035932400256348813406320099737112717354871668895369906938284506345067709706560781656732914712568749591033485979208923155009288840335995961320378819293499565947185065407003343450995006512518023705977092632213969963037776227240029660857758115248104480446153502987966961691126820092132084543314779327340492126292734020886617778180634872965246211572470596973391980149825709066851164337456689139106599008117659075588673667111903173503187419447885923196437014978542899791570710640365914791144820064836530875721277233712314124083231837259088422432920374032207307258092201107456474740824064902815675819682387318151382937083391719111588576812407398588403944275522317857385274715563870395053687278441688325577692373461252295815295517198509222287347738858113767206245258048261530906140352564342092002610814466545499166048726187788469834160547821145153510932238791416280071565229595629759107211691324816747835787965781678436973310548912511711751322993576802847560554823042822553544671560532340814872473474350388986540644132322996496012766804157773051333063073980749676267712482659429000636287138217855473082140834033922072540728086486606358397650503705221856331400907689747047099063144766383974239083806841031410008014357227800386984138257024544633354383425772160489555720109121318326461824266852999440716340572289055993886155095310648913296981075449591513460510157877046791697512966977634675937225007895579881108644801469350268981408342013785565771241803265167368852094579293019283637282172152530565575407853205861053655541546797524998109675989966243495286996380571487945914285851861106730748474115157482779169322320174297132377130997513526385438736732008514294038752634210934211563497800443172876937285839567759833151005830812746188798503805096965572249994505741257826017712429794426930387543709040244847999746589657280844794878009347874559747676395480308301620646484578922796433716488455830674227300548963259727553632291058644156482177363440539311044092629507423469645008686250593631517419729704569207577791540665074537058799147145716408903063628872141722256865920920513539864806600927160475274172195279678654244907169252295810509728388269376640459596287209583181167983914535276103075342679354246875781867710669496306043352482127470081668081989541531384706808477177101103060950116481138552849437191292441551711852069156247961886963799904430681895185079231219913919910174733839030160836619220734160983493734622129130230758857355889714807123468572581601893321080483948889404639355706639988106850659428011929284395344615194141236201294271315811198630120602007112448412922600506655106301954941606631703065570780562089738251320771132458054773132015116926998269122477245883787103355553861136921132128763347067434560231135792640319846577367935721646783186482163887766440096448622604969742948063242807922864155658530514638192743018334700155710812213559922523122931408064123380427446364348421066790711814290685750003850380359000487256135233203390113171814068126175473775722698770590267635737053106059587132420836460545237912556419053003391560230419570198527824812628743336276994853828644370903818878626970498098800486295779245043330737262573109263960839088371240058250315964703211668971198706706457143309030470160148362066564497009994574989868015675972933788222824279410863956594715989446207494833124464595064972188076318819333958352968447516639921445839793987573836469846864989983446081102394273486447416864361025046893716538694723506056761797064075191518872469976499314522329363033422863698884034929052811477756023258198716712050343472535293011521053973560991448542027057136458286395633389722696965229236342864031827377535357720096461289696729409576394147071966730831356944142617116880276591871731286441699289978064239311962706544067772802963512596446361436286316945213392656429169950521227572378818666756781309042377708764324493061508592740515430657631539868451625188106331997337170165858999141541952125939357686837829638607170533145801395227530478441589234160903672536853006702901093049154956191523328505855126921928487477814972462044518063283376613326772381208124510979984562032503304687811273965314227580306998957939969569925594481970674814600217462256832746738325422277612580070522749598834466558935478820356616620849274544282533588834009580883383018338628705182396741489846974191513716339754258523691549973226455225376530681285817262910400591875000182297806533176718190295305277650524896133198490907948142581064303705699458994727111094059939910576079986210785563579061863757638028667698100972439049328366301850192747127098588371788351482570936284727572920276412416396717198237840707192608390439801310029366090876365045361871344151533168733713481806267298795806851213231941997569817300991582309462614512253510316828299946001185596161507262665315004553415093407422002733443547798854860381373766150042881910951767123882137842189417575283623660141808846849726769342810877999916615358657911730514503192176615404854960265254129873954607589954633470376141440019482057638577470306544781849822283795498913191795842768254992833791406660552354812046274392533122491021808307854059281955964819970594504352086831090744264181028077034705732711832808862913456359503961555920913157075793473426601462475338729771715976712225497030524057854084504038965402846405484989087151969868164965285733257770989509128426847414052884483738203083738158790678657184201950143080404420727257694276181641212009905211274403179150637324409060589200347553137855767377485074952028532109475537498547518208156147637165867500433933737732523794461239371010469328175952528359572232063746914900807818090534189190928831669526733292100176520293481825826544213631770033606835321902720050031462699165720332246671501993548254646267031351828003204483845356703502191681051531207533700973503975017813838117237360729632456371723854231627299747410709442035964035408434094000723180120389459737842624281832067699834393624846198412187078724525833554765456157123882784423998529587064405550963433369814182945380231176887613887191922255238634110887664143205331857600795883153066646388912466767169766194403396000700367483551369531227195031889133967380510681018534442184552952198961306244062394068834719614013696291612457312723041038591745521738875677957417155883769460588606934594770533096400402636898165442080008616699720231427618410448835688575237545084731271596109640171139685907205484861573861736455037857201018277346151350406152974689077218409240407501062883135354347604154867135881515453583253648617379608761009610904957037159223200438116437580171872261769535399817505398888652330566534498757162142945902475343291445551018203684610008789395096940775679535038502651800295884172949622141204968273102903977221837239705672673922752304753296125948901762817219018183544208212774967318607715955681402487354978180183854180248735546616831051395399204733591915480340564306979685285468107447921855062530836865572064413144472633080812085175257632678879631930189446594746661818294940125395150926201003953533758023452261781575259747321693552013475420082862364063021684206668604722460532743117091619691765342147753253317639924833833219827072322700499096362991682644130934276339866562207245522992447762627627422763452068178724209420306309734987648526490982403885307570927226416770973483177491475361841624419926596964657405335069106223047367368385129501811253634613660338985980434529479364920794209151736259943673737653677310682756670842558530859193087417206556353939415718034083201002190390735450479493935279979783584927218209286273500833172064043249368576371454426279756775184347325576470511252284944581433566133594593590116279381259834009728860806913208469903334078126902458240641022472495188176211568977106701517428950714394544217708677093214335145213172834856553491453997263337508182575854378243476621576107666312421744956786085667942388863667144034332168741653403388893404283821724749091968857997556370666509187688662192811568527693498728066750980025520400379020925442971539761340448988029006969004612982504173747996604862890444663083861559156569211618640799519377066604091889128690293703068774683596681360365108481012586207598264925125890606957485115453682769841409038586252093963836635354708201969648573139155655038768475891857323082330996145313859528658067497299439799584060190121875666152180459604560261469659472434692225549701629945470816344380706594489227010704331431110063396412509834815215063757792291569952880312519381688696145133262972379048169433167857985215434194898188875988297158164196278366507388301108208834899551780886318814765179323903984597160391270595917728986675013463712551635381865103169203864475102390519585785347851280391609610876450447512754340810672033783459026972798630598769314618008905147361096526797530373800611469491190513368214941792730511706833981036254974445269472303732640967523791813460056797727597321613875206081065298335048252309277190516115190567405572833294013430551088151697794256582850050258667520131051025582455496324184369673031314153175868429260436712081248928346227406201174340229772485666808201417910760719601617441753560799348275158972400129974696106322581604911899639744574346735965536792687754885379281146084625234399465337516563494101517839753479657916452280150357681245713509114025084652300431645144650522767222987573721544415164059865856627063360289065988794388077931732285245112611614249062152641887597636574286580697512766979942821583576733113478567093845258747964317700199423882057628794122134411118090917807521162282411909086227230653092860530529679385528688641505428897775768273319501908577851954654528202235274465335114916225502398234988418986539904405148195794715220910768081235587104330070363480529112656389451305974933354317742676305482437359693280425540225304687621244253628225410519692804614041532897931262522056823194302318949280840264154214913222654892242158024438430633172195302673563798221357809025357133880254582840175550177816520128726541644548726772718959803614297030573830565504113256195553188690240776717836577292280419336131785498453403986608715796551641907579111320386821352364367028264779810201264359270888600507944593290134177426634929216355296199422598335026242364424662101191800019679173772838353070178245271210434869212285868999267060274778134290915027968755787514635141831389230655602753925671223565863482133290583913095596463145699715348190323253117547427115360037182591742956511155634853796208483967299347826244579288632934287516954588372892705770616497951197517101369577377127439863025594588723721021302905961961914216716559228921132998430339711382569259148480331725716153981501278438052259764374972158934646300328949003889690016836896168159730681009739025008917791838045889824807238311422846067354902395425270824784056962594457593333573400151708088679024721202632339774747481666595510190191758422092609771319191911656924985641163676401690602353645994196094963289484569572203080564136743892606632071535739841616900539293556213451118537973495652404328351533339103586136776292262220404096693871740952584011661033893822274591951856515508826459122806637288097678794493246126748377945150056104162008928464778724216393354434841565050093090656355560474893023871504154615919392514242896823723971276443689217804477104072828193634043152251793455383363999073848798255740841975808361036392475414020809160671466510351155912432071280703302878166440848651392352712135623070973817170804150300424985018734760012848089415352787209529645311393925667448667485138124306744054593118862276982259644867937249935606540806561300876496148127910276238586106062611041108591317885177644774423305047584481106731759512870605243171805569978982342441991206638076714303602777844759827162451666054243609544052652991345710001398514142472293873001331162440724167110831869788212769084600337400950264930739954183680368470017875457965358393516514541420865904822254361451243933684196619343637385326807929636957820508129232581805815517215706378051219831252415528268351670865976219624580420039014736640921459025189070692455726616255150096126810949025025060910134284072100179063552078524060378110513324620186433055325235889976869700262136295205922847872918284744652441317508017308174424477895552071321386283876046696179364420062782755388158605287035616330615983250529446780157980212447327680181730528754090864519387394123096064476431975308983315820468798910566506692931380159561733005669235514795951846843024795266004472727320572067168204891008475618591416596238103681817921221376749971745577889311060501417773125179038674486423691224083890589485947139966282715491550450496119727235277920229955018221124620505786923210391926910231669853902809062148906049551453082387154196329615355045904413557157611793560577249635738670603863404915451198387908336787246912554144573521956886431994105408733233362148108547169908517323499394943489188001675491562954729022014722800033877923844878518970101743130815442267376497201874806841456516126910416535535003001297227018784357453139196256054144480626047333767155199479713481324736043256069745100497135424265783916179325957995598939459547279463235532523387505380753121372132230514093040822562083211589267652196281356348017494031507135010224727953209788902207461324183067679689109241181594494782076947201598398713825737863317341378351063007651824703245866263379710481065414061897106428669942669345740548925574459874874925142355814661303937915315301408597778213319939675242714907890079764113324675537994032507274944288351847709386967712284866573360339778632029076605523015907379750483808873707745118365900291555230402545353540809218654947175350880059354487614580312429547270696592818861876999807167646473471400436383610100088936816646706911293873831176063526334943527974408866780761169887259659181503710501817078204701064365489732552409418601676999871692413046389976857467744614997147510432407727709302750707381254691636579969630910034698508013178594900001724625783143353683224080797632524190888063987854068648425662841336409689953196126982129325132707710082144862019112423107424044839905155367457930520458543601536043505559825790867288379746707221359399588035181075880284530076512794416021662491109436873025935112065126629552589616049687569070868273686980122882434891416751248284591100694171254949107917963247918204507558039621799842126967015186874093121758225837438490265953214381029102125239892107432932766918216897730923098116487173618633339697284425086024936615879800248689369819053512487577325121373679159811853297910906506104641919581020134213271557913712488475641550893284547699527572826071594632491302495109313855289562343782118556374464371691402332256888225519261640529817906469843886875171034085751538426131256480125615312155036820760696041170190839941985041488544169112908621020663599085341498488416643484550747282546643796501846967055098948402947946465459206422054925811855372553324766552647367899934181092117731573344365237778895157491115541571980340356911017576254322771361291909072180375736120714228002599304069403535560660713651959365241468160720938729914904302159322336307459714418845151551672753666009554607661834144597035657951713053476241574328555399129894172990263619916805873579307306118301512347112001205267041756945325329564122325835931434442839274985685563495880915277115607493824299688424088206425868335889249468328554664916319543879726779327796422745790627583073082125039370932882079549933481150367931950514967957621268783120641708820138050565241339924885529788872520780722186991816695054054615286534030611953410866188059745204594073996162038209512214424195740597774097084186246260650884004114208981582352877061546307484990491450751327436727396229487887171387261867747329387586687528710809202805896372113641156667524410009119310504585104239188457874602461184815383839333925072008521908707648965074425837654127833093449787543549094683792393380070314974591230783087488839846922581048344151442680973344262135898942394478841494216826793593563226901333996188353463568992597006206713167564154102955945508133099979368121089014119037060902865252268928923712527427071102329558165681234548534714688982021019514614083245851637097699900995213865790047135550480561509874414520547629751893587706229867501847384131022951075977240920439119618854477039752907229737381101570082303341297486069597501675475333849084281559324382507543187525520598841777149975365791726080595873630927524352413549414925712002006163970917923276249424059773835127320305337559184105598401964165842185224709921759431085748603322373618652159104140335931135545547228668621962174991656842750281424591134805100530754148175527435053338549373661335766321693645023251967434678327726422381128608074704020171081272247462917089491841946306363811763188683083795710218926875553518784046445707310161179072891281806688956301305805926220120370007097576152882643133011250017568080326674358082933759179109379930040982964568646997199139896977618426179289646771095875021374991877694699651122919324362959339206989587493096072023980469104590704796627814890567094515553817197231008483980385545574941661555379141127015766880732661809408194817822592660613070118647476314541180789815677121372970082047601146422841828684244805617138551591551389527927710072869505506042690523522048440979518915901752635474954363168395668170868230080859429810540776966481160498490554505766332926435312872695182532321409379672546537144887480123079567134676206067420922038381006569654724714440652045157779037992102060993415083319676367261786855998087092369608880143640451788723386053606247476138814411047152058087528986317480503865542223567519221890249953618438358343885036301600621612526789268144031410883398157065526483790543510532314905950287064776465676173393626169025292272174598778729130594607669632622149244372220027554470288301542507939667142882831556088905765179834546152676866334422890170206555289090391778603118113282089966728452825395988775458147938401261244144538019535664799693784880697382458655848804989861967468415344231026355406390176707111524660575718374230695689965018442734194717143100070751736111140539836097330267299186650200767900281124123447602919900035608237014757413461343116790810638389074451670213261990192695695066662688748092532057253934423956366064012536574586635820228990829488008342247235915856990219965295392692466294734497275681040619277111451174495589596342974198672739142779934585684276829971482814585772838443753849208430410209023920961560137861597122588354097452356004920520651010648224711743534214871031012925300561399470004618082035839214605894593399035543538683568603795672063811844729272465995169935014465783540641858938583914889530172057136395998412949870672439286042552733352884663411108804392599680501193181692576721673085465466147650220177556677732725190417173730153996792619915310257633077626165625151346720661350270326066828881661569193274566532263146204616589572048813682293111964558704508162143417973574721291719819672622004510283389777221972656160679554434605072508506677211196532490026059315541999085027630715329450182484803434077167069855641392911540144872169366761393525641925506295807438611459317779546040252196342867654962646213520067741007468179320518220975877083643900752909128100421846982588785847446698428440173054618963886388555752857108580021206872717365469063506773739167313394117411206793828234015310286926755961072498076395047101532367890635598294751310582422366741337796406488089253001986427360794864145139409332653603180177185020392051112436955387502264345017839913626009606722873178915794768036132854381004803402427531933990907860805068250060045168279692238112001331696979177497162135218055444905423718522898381121752665709390785673767638722128847456279075782970796270921831612023240724879305187564357001071350717414920906880733761536131630245904400093994764669960279815704134723310571408892673601065009134598590640327266765036884884595541393178991527107241422597945100541270034914465294361381758041097019692168806222550404213659529362414306947972971330234520831917604101453176619595691178442794287014280348588480668472489261243021206994611163891381946274749484155816470699735623997885222742752934093634285893255806897209261150361371064545068607498448872744335945881074510664535176857399354824954578198150453545754405280260920185354722827938674162296644747757352777050715496760110168740557576176742008523250573182471649863944197233322968195606549573554061230169529727252555853980746450992660804305835563810646839011854330826839159651626511747010348855607838816613201474703792297785764978356667911844635978468735558782096691014419961699871477585190299173617489128907854356352274337775136352365750072476854214670648957260739441985369939708648234909066816806902510128544602502973600102754413588452323285689691567179500165132043866500882878681808578722915040903707508800597384618453160162834512280119810652378658899616445474250007004966983913084918268343475371702119638177528869139260090680058359897494808955503283046091611706890829879041888840512486268793747887074638005388399815522802309666848948304252894166328925153982040258992584252138662795524800495138321911656147225398007638882514072645880954328397293459551434885195584157004524368756884225588690810598591481445597907778150858687376943781547922782223216995986021612324430177086831843423623825990511135861368309920722073970680696276764598285741495678094643098207263226639748086015067446027494243421677415331761710706174800144410887274149324376184361382068734720605758349873160762176641752984372263339293182407805852298963356709338949404383044923117337065047354967876744665254111639835836872237119727026653113310895476404195009474369382479861665228938483736434828953847077493814682749983747531756081549563043546591325661067634697540426153061278296282341542838883766566908279659005914796992039628989362232549270649063535931840546810311177006793691211112027247676278485075659550787641542141229886999028067214853863723350703389806425655224842679517496601474994816424751884232421511419615623067402374177464572824893909352392770352698770943898009841854791571058636253390486204155624887103708521450916896025131363424582799762816912820690725490590273681816250926692891427620977670300877972186610227170334758571545496510506234094755064166175132732314368380314916660696694705171550755326943577216855529759684837010076483614847824896590988096688078120378941096572178278906999672991295043840962874944546790540972134701408601217749480186711373704500695191155656739998719649720803581363751836733901334554846852819290431136317936657433277824904034618676846446261254832035658988411186635050074268647395346355719972152364890080929270416807785891752407737229901677428670024200392718377153229526344235685486644621357759927238056367432586622967754146812449715248583726816095891636890213528153231700264829733969542058192003692200024601840910618692095823239199258034768166683192791210990213030773148352932696438359552996690579488470946736567681237676032954352732677073997882569757109121534877446765900658331482301118955772779971380924492014182706290396969136225037080621375249440357016723882457483939779337379967770443023907550975931589344046242470361419826204438720160618176765147300298936389287355849627929565378093701111221237776740194364660523954244902005759996574831843087216681656791615598794366227340878358614590797184690415338576221056051358104221992016616050359252303636157672412126541588956372808496525287754901997353462452571950194220858926402712863207902428272481963326330507243316468786383333197225920174051120502267260177612450232069289133849308284572909084184143675328136469957311758426466483883301838072609992858988173006046589246713126744345058050895924834680236029446279109418469283883380196844637257272644458663195293038732637116816943489504331061358318318712163435069108819516850285572780464505330221676754340500229906208678425231884335879703823568386686605531920937658268081061041155722550012098449273008655183905587677741397941164778873438974455410929768118609663087792896918399392702477626138946120601749330282726681658566676017892200819260121736634192860621966797789170131811577616643545606809686491314255488770248590959319737600716299029222311819631992517399950192280794526801544847895216062428158019254398263954234300500313167818063600127557603782441465002978172579625429840346939572562504773324135270059619535254293944770929534111159335523870401445001033694406009749957761810374357369111070938822207208190596008531095005162619180745201105609376031472107156721917505252580913757274770684337833796094479686978193451993768815921315776938896198561302429155575112517503004313030266558886461372039338899293758660543295204070400122177209198985507855813026943527682519355092262683373122295202217796221733041854425870579286083477503502418456248677230223477417059205611877856659987288082498004415690658179351180861828080794586907168780061460818846619492416461274705658223103853555232057638108546819494461693429175331224692852057812553284656522374981326437063592399591258117329688329110649400912992377323257578615689823071735071975959435046173534523459437581628347831701175455303378273563455638707616818748179503394457943956448867207782781549632018901632538866440539786502267407057614222081783012610948895862109176568478733887559549426190721250432842654283148671196407524262702595140452354486027965240005628114572977258274206301605062039670500160384069819635552279456082581710387736317646262497385333474157022707129201289004295582721122003978185588942783561787381263082450692862790002347519256526406847811468797852187672507320467948673119329226036403617854480701600735463939646503224089728073729079697665372595376972531322692168065470151289088234929845208652263333185103087484744100869908127135933908243124036399515558929056141664030507800964852015944891812575610525026169035302181900582155282872326077767512951233829703404001628387978928992365448720059183345988404342444344622085857651853340852801134425685336692210465557814282883949088916549843325286228844666682755091412194885967429956912762129282206757744068911119399726047157330206528700633830964161393751305307653487234279714992816388459596998153222644020096542383668940216799872553301932537557219455521705042865796247476063826727237019220982951955715926965291977830198834225946824029586489410891140542811953455911807925972124906662397164010105841372274899027671497222371572944464088821324007613051145839590991717363161829826397241451289439495984424450377232535805213608792127759242728183777655170053544911100412626041306415771660715756225522355166986281153013062754195288772595890557022696985215499624999885037004865220945692249706979243379505604823821408947038382058511025654347028929213155300249672311885006601785860242421972268039624750720555934353095580384642708649208710994283392831526707571617543116461071713529650410558886400550579416283610095864451821627872700004890714605364130598391755492698442758942369150857501887603317484902625105961068504366236946772451869914698842420988253991731249371194128363911660761995055789538947372838430688874519132380548204485486471891451807439245420265962010990884916180593548473997439723548553515365039707009365488043884276494785484690931218376588994312470766518937994829858291311051842160581355256709168446790690578410016659663565977589742400781502270635032835310083135251501896025186226079245184644704108414519445917794706450460400043606976011579012784967331055734027102949925332977454276656636424015858963372133082174965417511367269431167662886588944086398681073405404055291617325975138849474414369739937765407932456636785656152801885958928733980375464334982648148126106768973676863919967194781234710431133946741072265164174653354853227139011512132622318192795881302514970236840106648260668615701146790487895747209221553733240954855730941615809514058938562293618146365369547537221935143501997519831129691980353951704047764482855493371159330313559159132143043825162360081646915892581977418405174632253234949976524824447916461445003795062276829858858540537950767800330370662368739296665007079282047597419567892364074859554083646447670612146694858818382775426679479446865791062704330181313222791445239521903366409353716436449812999790046141831294671967129005018465141200586539398975306244919410982693340758380188004297929562077867358512596970337781344134638011603175173480230467924506715570291169536728211693738928673634472328378197186329116052070208232158816191589587835486303744567384596611951487673173461251342098613687532466263232617135308740390962893685023264600976007912001967250949656119846443429302368521492022139073174799212969702820797572649204051618864991681947901514250260075876238398034434369972045828584816235049187179473640109316100606232010120984761954777990146060391776729115741636772708814108574543079356802261949242775243599296937925266448663208164434123147151037964352428766677391489278049789761419361766311098329178843132147935287829169856216975797670135578559583938503651801214879694033602538467391612105769578007694717415502916354737957970465268620637691228056729964306653011057839731618123191816179001515699843029256267381432750640678430899819490723878665460546605418975319493484012225027704117547862678102372609013138417543636640327562788442789319868606181242126730645590226303927429514763256566162087287061487930773208983697183888310325128014811581216436002434135265078521382324855632355580285519728441591943329103235316096445643803979367970447243757783743749305192877347439019100903396047506993387818419982832461515193941288981417000745715830364673057762091014534024370252322928963726939033972205473084571529148643413987777114954149480606990711265500834591334980972632531738630392258011742693989848009129676424443492808101641204322649607774130269972021607088397944671462317497248129015472851609053408917446857611348154193184713336122073375982599649031173409903982746061909103150575447277601532220331810427551938942684887505025154347983001628730722524830797232746083574951330646896047011273131483501280479358940708459043863301691371588411976076308469841101099997747905469528192406666096989188428128890289621043025937591785067626656692576732452622122536980244075906127797682496946337801819178432724662924633068372140208075042051619542363713993157173326059385131096407169797350476728225017847778458706260976492416307906486176189707513126345928711753341844273818245760058213618121167448258711912676106243026590194865571309250204616924040981235163571964025556762758542926575515634625766151151892086261863159193363699496342269922653647195335510241099365663657040068451289505025646528932042095474638090294370503936179371618815632705775465637132531929618170857211905314363405467198770098732564846131719176884592614885850126652601783016736264275673576945187342440017861463373537717633843406512392558568399682808250350657187200806800893633310009030092696724728790000669089126988157611768058317111044929434758224329899668165132733999265849639982687338840032750653689955942287702239739142656752715543068477579869457332454139128417401267648277146038159780359001733746848789273698146280250785622665202900816748393266879504973616532616053554882988015628787669835205398738888075270132488922222759715978053370834898899108790798797071192138116725610832873457116755170760767829472692036682974265076826241610040990851108721837600797015180915135121972199467167458758624031167142751127102247798176021397665327918725017514150365515842451101799465035689042444564039902480889548582786104809097453038520143692156467205093737706195934655114008635242837931053586788316875436525430798908669968684093681932988472224816120010995938022677964520518607295490144837007913576926372996953790771860639773250517686044343929366104051732444146070271286298694109938606865767965588689913827861068620979588407120830938666029897059922840307927679918858891801430443876012360705665064876914227572376860599266528247448770268753366170295879546897888017733175088402079829748861481682536335725503928363460653996165774295542510615049839408600726752427704909762451230717229407377986255132407842967016998778610743328543629024072973210851974015609514509143987959760067531854542069663907811418805569398162168336031461652443978092966907926543772811742919451529723933152820234421462916757330963714676617408075819585349868640905097392584135847476960809568002761858533347614457376219528969622180616180320435156968177404930377381765323934307479098204671985998033836839284676087008203422816806784216083507697646919302328613596405214640236781867244501289171619361494884195897744558852942022916331876337373897507374928723311247013152482902000163391435124621620076348251480110574193704105218736021856579104700274982766531554099965397428871514737314686308766475295035257440237487601223859889662823691723727399412911214820571519371797390161469437983762481864522707161663426625891614695716660138708834563650152008264999210284221984485237102214900273742216542169161688124708074176169100823285159016718795855741207018210832762231530289120779823070527748439962439450225393759799272998783736956931852051531579428654389087991752360229843767134006329130772157689927664466177305062528513294393284291116929999376806016770253614335981102601623704228273998763407813697949338429308380129448740752343384026180729810352357211612216392788184810020850773497779984667958093366207325202674656321718206862392915907356581835897649324113938521451988295504937686681883682316067018508095007533721430550028753631613839608038918369344926573588288255716800802021759447395367898881834149082789416650448459672860334859118387612596073478371309014934716557054535477202688684834841450754778632132186743035694811149250937317647233814820916252766384159319470037116554687896561419830242033889220877542693484539066385404877854073915961763527029089730716044576933830600837401029791682043715283209884158661027671618218987985407447128784369082488382280757189046586844562260462638110763687120940218719151704357274488577616620672005440167109201955853934229178355968681161084283749606093838512347838258055940455706174823367199013302216237076976985597488823768176081319876010028259139173863243469987076726544317856801091679180749755965606132802279170467298356798584801665438602282997262628690319290727304450361693432500049740187286705893509849631644837978000035744179715081503497724803753419672594247703533513024038730596978558760812733082898616482756437239467725960227717032324567457044780971258675178327803563181341509071691512363201789215344599130762418710752821276287904830076585742768331968227295686017965324073437458828639754082462261564464365913537706677568924073672154732955721754627172030007148745423319860560877295711790505944736901489425112670498782410349585966989180795094863806528450001450926333907712648674407979671961030126866398216883733794465214048603056672003125448838741860024809101742665706925504686326263092280187443194349841260128856662810112672236814712565234209993222517628718405785843642376878531452621059432090191020660610435743541977139415937335081902055020465088986832346995653073585877988365262098219560835397500297952490617681934565838773455788353709794234674061613353610807738321501978433388902769988507265345449449035497140307310938326235718334163930477848923272685014795724081046161001125478475374884974689439728635061624557531964292489029787567379836057610897202663487918804919142365226717774564555133220475404116660468644913183978187279824596736086219041313820752141247444724670678419311956355812102493691587157547220299635216316686706213462197166992485102300100638919706788935486536383713575854348040780398663589468522721889563794089746232468561514861966837402494951596975202646464595311004523160778085638730854896949219781373511750555087512472196337938482772126218911780140523317345612431057708950156664634122610449666786709914301607068539995539091914684101761640267050340532506870455777902293827969291210454119011572566197660917524748598446546812138550617717182455525304931071319150874219294549430930169565597170985543869433673285232318725003445363763838266099288863970539999704564326850219472439495499269067844451136126211379269175924056121546284038968986084424107376980577872860939620576792321773479546222062011277878582802452053319808736209033314790348284253254183749727070397349449534488616410713468498596826559197427018885357775905157674719606132314904282816262195062399670673151301152577068034876110751926469124495440488551362273171334326029107989040374406093713262479975417674131131456067028743318059533185118645326726635695289517399774716210978499884963714126071791185734762032482250285336011885064787647565243173734782121852228828275383510839344413233289856382481603642417373858608181289737457431551604008198887792809848945800273870642984896013471508146513699061475347318075158915194512496188319371796103972836453732588763720419244697920079028168263303779444186301351502879229860905100489025596213083440015675381717352662717047172100350181196145172415852252015914876095528898789951210752228826824423057651173924232079194306662078948484625971588392716278829893358040496515638037075616252237215047923213664515849600637140364116826151684812387823359902571306098132580026307373046182413264888944950865220994074450803408490531905695732033347827959141295596991363187983648223261350246575779745497434561522293801621710308701676280601483258837996430119755482437438248181240414808293147341281249245568439832596310974970962671206164211762135866817095934466514362081990300073485400403295207085093897639036298657410229941426718156526057578843501521397060144092711507681564972732717833711375516761110816843688930901931304842587496632954834434315846073367578896656156274588824260658141582818068616727689592275251941578419399536026433269931558469427326695341105290947067136077202882687813337904104446144468357112977307093997154597423698043743622745082589040192953709159237350160162708261743438171107279479485044599849999879114840658266945125539723001834518770650939474736708282537002281177091341424656580535843495227412191180074999307605909829534189730582431950494807598961798116265793272075661284799527842361651688280600010141322565734341637784961142263763458517532532165792100012450397842734510896258193467754983499960352753646000674906896251280725063145146695217404029103946115074312415068660673347596215062502257674022122142768907339546764428185381903383175344446688765032052352402779777399312053814746589572974261343108475575055031720707549908333066393027951171547192855477551132179890551801468291667828207848110000769722434486355503710970368875595756430287736877829338450784910429346707412518376296086758188774515363203559136232162778373389163854329768317146934719277563819600563792562254546785885265018045004826170660106204164103332914100707039254202234060641675798709379725613239738695584385212840014524512056837047923979957718921694942856343505812961862000833262569597511339949185424280019638039788738407321645555000192524604888379926993502621355479488306396579921195259164092905677339514756775629054476860704770531472172600143400379719447928622967850280841670664267315770502770040507187360867432218191018353539014202424773935813249600784521824079300012948038142299695555862683974972929074457226692327172494640133304150668734977996110181833008778159792877998944145273824708365605359059005428805538093872433942127531531603538069071683892492631631346700593523579383045282006904954463772306918128500205765486616454415443575023744679204535302360663052664654229801963831215763924788984028016026949279089077169342037401250430218014091295482701363382594166384650815501479088440041058074311102180015186473953137367463282368076612167894030161482583126507321455050274682152891914342428743394031095711683639904518261029303855406721002380166611691624398798092779943015718972564738442381087682202836077747685180914918571972881275949268237695962310933495636250657274496335000312335736258221097719441295645118039584275942076095058184854861542946383117327134736018039811224395460311132366425667199402256542732023340186204290293749277722215350081327838638679272448071031928757141693133530123604469344313958691272170498531501291314227059823413750732307182777406991597848441363777655087413929565010564229627305708133638573319016754871735285040898678610057401481301732049153332309640570401355767290680473754707904911352471100281168968307319805685925289941439735911489738601356375918431243235883350208493915750913418853613094741868647608229753557596347822080832769518112102332944875357708251332106555216249992315069707454386062789053198408450641492845262597296986087528927845963284832435541879612685261901524334926069904380552997961616423021517979567535714567306005766215528494858181913760493925363635835968718450208824045526302655773508699075451738376264653608944872685551129225315612580836463442610748108793758325392721280563477091558498238456204965176130070691711174955208445182937180994725178910551981655610748316279930674978828981760805461096394442934306751702104552835251237307944500111725335773547849504738866315156734812435453071068692632439397689721479094457928432957888318780172784398883136853738091753713236356040000547162124498482722983327760229648602548934052018101401644526015576163286709216160039173217604544524601948641018031249174185358806832498599574074110087842484155343468199258131870333292598814285230330800497614732277952125086703880410443944047058296321353457243136120160410317275540505115918307251784038532655730686845091779683623815736819068472851788617777976168288885633145627413074564211785243983379183741339152396041597723604608230866038960514960999752389097660307592711496380169085192271828455154024684226579895569208479935883195172382558663611190328588344017194659758425896424147224741139166895836670209684160573420751069159456126847794361753836078004928689886979332033254062471029540857130513054829271713471076423825009744525523370788209572711177930300204443881791157207417810650623055043576903978447883974417658970488649314025182533384565577326979077816657069598348334921219934293960520029101133741942164491036994236361418464747436567705978582425007020943833117424824385666969621499849759648772230640294760907621784810064685728775504062772889711614149922749053356131804382811957765829506700963849264164012747491764159380013271504308329128508754228069108718104611003745674561522662067284410954098416848234292151106439774023509090402650414875718674582372774180621478892323231078368831797061003038705334807719777018549164315874095169986313295573007817412956935062575686735980295861488720807319834400998877584112676087183061299883806884115309799660927795398301883971424487587800584916684081742867446631820239756199071861325851529868774236079469226934086498211387477294914773119999689078762298989431439541908347763064239907558088786685924108789277698780078139498003036182121647463463489708678270711160665653238422242695816161750934367948483177811994038265212693833420061132433619970431704809653379928293867450464474572226598597380415727137648614056848946790395644790917976506064176857906906578747458710487157128087687177089502530095126251868631585804993666602232612686436867974947513718645030022512044764125563108952809468089339003199456198641238596124109974229770024205379277770303828875885540885062214519561982159776605729540451542182691426828823080072531093406348027685732349329403998904117013771110351700658342787782933307082623000972172493414382505822461161450451372899501816652483492586920946780899324977774556747482454605008010318717419526077776900999778680818976925452769958726404464713912290843294236298425355958993179774270578499957359424443194274889512427749447536467595784284178287589826657029617963423001818277898814386212881635623368591044897569780580053374789169483640859408235372342284744526819798808482108763292120999848025809204902658186873662871283175531848164065547223827298012488848940835268957690064733132641970618567882528176654402176946349368654673298954567656195869424817133475116628988334079300298452894523940699717992553864530866752772321082804367528395299613336947944380208611464907257088427489786986798277289164509461609778690293565599513350941357074183368442653088190698762067729263916300231949649461750196007413044334616381001058917440404587719793021172393236114592150553248878160893898351503503530015013331894411038878309623157725260736636511516486613494908902982048629011936625649755831172160264330394769530927863804098400179266427683332114130287408398218809601985362689938027870540337734786662545937499950567136157992666853759861138508472090624484484128689324590329115385360380818121199902767866272990120142027612072517957950829093009436332438267365823095865566856841990662027388968531660386088167863512668304638647070988729194105162990224016122163748083559522537366027061515417533285821405213291756595714423038462680349657547027847821352114965876038872275038245913985712382021004532371232108508637774754747138180186212748720428495894513752975309323949982204831652566302657812960004990503578994218366524907974231917266981701670004256395746266632431772578190561991425688364654972311274880772433884709770855020722542861717863742503032661417830502637776778923827029462353345511731627523701308834696705461018977825056920494913007433980423998727317404155319034035664358655427892427005342990394221979834281597655724926699492390290395893386478427829838304024857995210616885561344423834228938846270767309676041746410435048140331105461015541377255375555304811538535412750226992548796590298352948207366969915288369139227742481940532825572608721474081499971147385862462141783988464930534492288623709198192124074756632245636146394540367644716092495929210288351715875771353815450899993306647048730070093250851146107591949210138298709691853752348387375704824603573546497464870003451628740291101983835296295640220695200132087192183715368650875960900571686495629026630913228661777652101042277245406553952539716293520442545822700061987461511308273850414418477131978947995192785634035615927194566453718070547003489715096228109384396237618220522440698020055302661049524973133709892695396380762929752548542659033044820088138596979733601460892616564433873517461181451290930549979228147456720721035097081626271892564544720739029926976816581404403211583010150433856122467401867508155735614969888158155014185705921631927455906842130463875807417442281124909714433355193160037411273669970222077387370697404252713792895471950751589144338716366532712153866137333758754556119660167783916257907229018826499464968916268915942939168477155224243632207313413899388643474930363995760848306581972475113084717413388487476247669498812787204502403409172248978212299643942037205139475446881714759729490267600280107475408310936713132223900150035829163207094361292039016395168282228288110354677349259888112288102528511229164188411577847110408056249961303585183469330073002248197054431604253439877374239160377300575875010120588276747225127020020052801895679353729852661021262113235781755883729733858674106056020247104598890254066547070964008738209483087936041613592967761252478749828454598733375844608867065067796621434536760680509294514721956140052886484469891036125800036477982520861706393797496097317058069601971336340664981017674193599856863104911700622501401675254623353199207027308713184097654408070859227121490551771946165193684236379127240384370160793635920277288388379571964063002921331151408816160245816461914750626631573263911263221003494000852912089687874338160049987446912508949487847974151869566494208038472115319486926886618739193801980595210573719746356837672355964078935619543970379307085133899535405192029665479189491918908156077371347182792192895670643053802216653042407719264791131392702935710504116709359855694854033249161772867284236091390828561554246673977969048197658120391759101658057251175142366635296600060171268955055359226095279589163901206870166545520764130850431327149401468987812819191742848975883031029709096468125380428902697468699682576948101221431125961851166770435217141192613776946339364517361378908394569097859670596839301103424667522053909114110556775119336222940557704628693688828052711483639349732334564695694315376356004035262258383178927961044626332256285645982598676012914546473453715031077219837897602675104089987159263555944724424481596295027366668560826700127518321135489692214510210545324229284796274169557770024433315262477309686260279541654243819063368197668407648556604541632768116379572204827414524466597175050190732854232615155153103998407182879089271245718264024141566418301178928393624957221358919594945237672058187527029163000484649197161983994652402012989137265287257367069657334081199880134367637677044190506588716294324012905825013985784075289106429704407172788109261972242532686803626397549819331250399395815275312104618978454463250279557916785173536221503048413417088652233145956854378252925870103145151687176769181667774898424975450813297949120342563399681728913982702184710020939932968862253288861422180590647662400386068721781612609405703723625823821546858835679456890619992196821165327603949717121136644086688229452595840368962946710606421034677006914497767253534164356020567311755357999142669782749220366876179864333893853344137655855461921378209541897962389969808534206527793201744751484908214795396415337868012231288255392149935055736800797305436034922400075007471197628106492570993802633848310543815599527716031727741783078371155457347900979920758339784196709000843330827731391302435869278713790516086465774602255103523722687658782893424039599385737214748258305663631510251039547956701247996068954122127918688836044167171934104483745263967905608297881577900408727710351227641166702592296768700715868879564063676646807111860486446878142958138880133781427452014551354687919487408710048884989315170484731190087659127523873683181748902922971886309421130415412658091535342269544357106960081710565964831670737202184561867122574767919029091371969806238153896166219198702571888169257666770884745124934710654789005551060257647531147939061868504332271271347332068802870327634155384858691168938008453955589122145611318501953606149322269070755681771801395417545124509463856584371680589861413678977221030875728170433421658966580717089503995796485473390749149244769981385784337598397440939285964919715131752327241121521231470172661502234119823912605982514959259825067948130875917569595458519628072773956523313270219306235574291185263909160834004238527466377668020978755185127692011361432666350022551049351460309256305702990108789324674591743443416701922263399346533193836959210589160680274096453894126970518300689903756541086751870615790676430006450719863206898495636918693577221606760027338027300254511127906657166480628398557078867412672198320906888372540780248736785494850402925682719716486238635698651244865580042577865269096545573468234498926778737550013483130840687570801581021966059139576899234487603817364479071194509409793333940211457258306491187163998512373201612158551120565685482554320667225689910326370878201019493952124730085629024586448806152826073651417784438837076984265649764779801848985529410383835249480933492000810320369772526988297711953065362118972648462791419776739097590190577119912193840177964442335214382400679523117657050403743106736647530498425393765248064019015381947210370537155835854428082077310120679547896225418868449118891367295755179444787879319164427174994605614062365372421034147302139183030381435835297639959952508386196386449154095419762713721087867433595099801157705097479625227054514592906716600510772759510784927328871504762032299334580538305131942141674057313688457947537073199727837046162484970172416452641301025695017216479447014174804597905001863351705388374691078509077261618009391196051620448529295786538270897181840870075738617687534781566967807207559642532522311548110968576699974984988736337315266042871702487703062742383994639417028566229995875388285365492419752801865512332151080673742640018073416183088756285416123887556966428662089531720115952855527280738744382277155219947426621869776413550617680363234172674450435431251749657236068862724755374771763811129414060961742781930697116137807826426123461225471788388075512525016258398633611425385855017900557735812377306650465260680441684890115694615001898025057555710897120964905404365762813960273075831929386011629440826523220547078550952677773581747868343934814382674549752964418008465717011310699076071121398890313582422673313437691057471933935264967081040897699381588702544099128268755138054676339562014763387966799934077501616665299593953407379759600135089112876903273692921756136388128959493183205757101058178211308293201257266429475320947739414034527103019560604922418376316229022164404962785879339617490405442455305889969910485072882507063379029412655943625387141918535370727970322343955384890674901142831799193765665288627475118395739703035205742914977873700574534788587172058937685961914718545526659780428510945977292016405083461106034129794193598082477844466958018776407800343581581272166181211412817727137404502029888608825397762268706222238613690206469851598424798208400082928213920185103466645568166913599375720213998405922406890339917942418504404933795869852566353522127674704641845915993241688220738762289296201327881868655560459024340781964800578845743851308453669991592955195931317757687128618738554082146894708209663118823580245124031200706861133866528175360204430065940031735732805578714571052047369716952420902734083530761505117080797355822726112516055326709598732875494241013250014577101426546166269357489168304906565732002598055640674959407933291451185221093311971942569953261708827667258143458885325783056660685621542642917187040718179213827697792227080122647411143746534651488798791621570455944036144948051639011528235000453874875186396275573027970774645967324978848558702753830516272887683748437093426933399701562230437775992745700702113533973091155599087829053376973319891034848211018345547588558935862914892021625626995793082239387755117442437334674944918137822916400785358171698127401717127072393478047830936131301231107221998475570283435523326704340743788550940391486419611670540798771337562064755012448086421073736817824337694660180520066583710925551448669504282818258631605115507177002150945450211709249229189033523203553725029658396898067355741175651204575430817426034870561489382041189125643261852999350100254735316126149757060880755838202414828756370135577435787071501187724208326599976694115620712541062808616501545285554204090327442398753069747983531707231792353454132086299758388443035829870246627133848610614489269695560515193384826579961252527023529854155470328797763799696603727242215749845870528163463464820688613055198790032946004698697588389003144217607324107502748480921022346681484427582476849958415445521407249526976328618381375651836081594021353789178315919354574090935419077299555389012880106803186501885212312957794902123673790492152351383512398872606232973052904745008957969846315114357001911603630159508336584826527954258833595346600423987100415039598805651390753794806264499648720417320771313292179340215018280702213734126722825697407380281944674444389785434826512017084700613662328272354238156677620324750134000741522448090570002302101128741715539937965614898539963152655471703096582444857313840645643501452178515184411451094478694051315308505444903980196133367979174607047881008390621074668797543932836709662299488738941505080009567134790900340373670935338618821114922571501020542061150564213901528401783993054283701177226407714198374937388394916293308926385831210954777858460429866243678479110128272948972255854778940716925096333546498912587128207003692889337877303970669194577991570281438052570431999639732448013079413523001870591420404059853461253616638745213066138768483635143669744226192422167731806658491223111234700984920682056467409866254059512585327388254085681008356033877861099642823947054484719698885530415749007852212023342881720512851942456921150798945443156080756660011607108216588375345931496835357495938776187468313274824333022896851034529295451915404377563805184872468841006933952714979973415701261831145642642644588275459361341866050317596716480574544628931472843082105949782552643017348230241006210460828400090250539312156017851323603441289542191211145073557669254384425971814633459226008787836930973064749243338795257959054818378131502631937498521195243610157771923629286644980368493581587245545003937427956102856243450073144812730547613842565923331221912701106864582004093809197079585079180451103799877211198420016049296902347472930419882790764154123421629259424671896795303681010953628032611318735390165320771233639410437424845538490778960477011874128805653347242887989653924643572424217427507524990142116998436362180978834947122927891335155989516476109317589761211898188659571788320784363698147229945788409753487991753828774706122270590988714704914258996213851827038925153216990817960823625894039869027447775835249428546141042303075655108735916258195764887357942995440645519122765632719489641880008838218045650807991850773028388282483306192618340288385686000750623205537993256195248454917704047274563641137964200086798134625585376206459109736996664404428785706883018462757002970544736011794035527895039460856832761180816162214717837534666356666517651026850437197838726823905442453082854681188374089333420087439279985486660844116935116943872866587755393218054257950801498095875077976678046800811187618161986083000390664353916811517601557094260853383393338053619121679716605229082207601402088708880001887880553441351440229660654361456328273469659521155322679559769124725725205393587086565284186236826072196454302121257996703479273127597154129885875099116757497502844125415131699189351666667321678202534552522168005654496679352475831189356584044222500930976673405503794774038332770106261785032227922290023931504876127675691846235093050331384611198307829462001428230811734358900792226799302918054486081109985708538116760490147203970974664656105801502267328819294810372948007654464266665517471011939054946573916606049101550298659087350836067340950188018313350208150764339774531922226726963825071480419372512945021861437071654256829179105606493463477942171761348349000749873056109181433434249426696538576017454513798178755887869025719431692722640559426816897055463637641012863618287842532919669543908031765289042925547919944549870458299925522603272146283407897877234409356159928519058672490753126156946430438022924918381291121596467157610996018509689254149234083952262713576185819604977707972608179826613848194548170411197275576450368839818838536233878894960390499816583911558383160363553406179915357437451902819962832554138807691386604976577794062335893681211161430705926685131290680722293533754367618197483999586669876580555488178311015696145687145158690460264459020015677128631462670534533188568858142448222656835593623690543034876992951750923584488113752945482146048166903548819566637261813161271929339432673554868946754467487123412294745923452155759764397519146527321999471124143711006229818621078598191810817377183122038450436410307294340647809627058177495048334539106438164354077706298121322437400711561596518753090116019104039258772576988559909644025045124147812980187957486798437068428413829286675346007495608083205007624809391182368426839219695570485175732309782281371830161512795462868077021203866922202713005838871126780527851073040573775290260567035250914501747965518349651330924406116794641511349944909020189105477685450039886385273642795955660601475199170068132339761988709890929213991525973570231469311644863607971544521212382831163182141210576975559303837122186800588738983669089539873101760211590625967240004847480660087066151780526917586680172470410897340709997404764880702581661942320388699790642932020211890865804420869975666485353102158317919497224030719015067337855357142476294725265281016842863764279929674080520759284065044605990699807015487430292539239004648673119483261750569534488929412374727017662348343997678831145220411637650813246702384926626786589789575251022234203671173763535706465298183131589937203002339541150868639358236989628231867385726540004495434864096989693792167319381980965356281325554198228780624393344726201865505791020848738959448806529227771938488103839910216116939118306625362481412960853761234588525817358732316808369193926751478255639042409145467054263768833098261487406993901539530605755536842684058773194162238975850032264105444792227095688902977407512674971399547445072459247235997714515776609720339710431769970299980838498290175572645673558882345268067073099163994017678239726274229071434564025450585574737972317987497512841636525124052882950115181499322416696041112368084103407351297665403413641459716667870769591148240736238774386810699389527852291468218629643330942967419766661776573377398896104839275933809847449292578446931743649423395399841052802251315959488664377071851368548593696754070537502469176851816008411686762820287772278636380595376301794507425863900631106898540016582681557905397368707290433683417754318443585006934301875508304819545975371723472800504663751409704597489901775648582658934297925039627712913338820612230493936002961086257165436417916037312893981398175718448261083066290268106376833999157593797196325691036950601923483583444831127309722149749847540319284998898934509109725200483039141120748719438818691010064757759156372809842871039439916590678874307483038901040218599937593670613354108267936683583636363476965053139065930030558728767687459067207702730214479513802837712132296762342084094765751506113430873149422358040409337461653267614480442838269861415098882687769826209406746548236068844978141934817364919456780784907317472275625398587685664811331394464626364127862314959362322813429915164854607383805351203914325267458004652827608733949019035254717800276977406482201364244108233728938064216674676491341696376329762584675827504549368390930998032166178047433659625513755758239317165657144631329157766087214248124528003892301572334060996601294113778404635620840159320393236872062397421126849952016406599963648106504954450762865528606620735302516853001374826215476278550602106943707510738054517037558757533656652134423794893464250797214289144125184165959439357335690533391304943990170456333579018777907105677263118540428509255032987707612784759161990258370650288648909447317661867868537972536631806838808021189865966524347059435095545535443310469553688963862119013603096297981421743560457138086611654274458176675162435310065224929566662976808138548492091605902573433048337446214630302748112689421574842208815174976729896933559918040195352229171736073350167068731884526151650155090615588858385621756613126001918754204685281346568227211757337633588131815248652391061457790049423782111734083376883285130015189411242693378804555056766447813048886844212075302666925232428054562163814717384325481010367038455417966080011138233360249850673572064885843445475447316965337971171810682182185388328787691113713048981000555582590855854415131182680704718903528341413711724025271051577661856605696137991261482045194154951469408822826519876951306187076056015861859172056856706741676046896516802005257000587239394859115613809080309552733085011713803234472889582727778515735497863467564005792751748407854739681926011277855801311070006265936767917025512651790039524622771770291958437054951937156632445899258717746170227765828712083556854216535517030767199596653636221476646521161396697783053990739662749740112558745990476285390293267287393257678107192115269508049080595268353749327750841838141000516198143173315095412737993322787089325062691876474716518744278942032108923487757556692104476612715975431695930380840570378778627595408079223337204420967341257785537881807358034554452261809967879320809935419060553181452249711780055528474803366512127283012841643351622205564805025690731042394967485657356922481349186170060794711698525924939415215765089207444545278884051936740202438104415549159212550515819891069987377344176541783866898903484799052674413309206818591975142179073173357066420930271271595792389643063435525603928179088076545495746097972963189021241484085804650719651452537219944296558710188538703626791024862673052559180684735180761940404133357193877810130441838539535810159755594804062892919231137902515263321783855242164475791694480005559238926508696036390721038063180283271335766920866102672459969778458811962601652455763769975967905611595773129454982887423527819609213989298671699415643351936362952736006113124451452465802304110746211240953749798835978983156733502973161031496207488104527954292376750611819831914513295900022560645806911705417457970382964016446584638507368419994994259911375604978281367126923466627652261192552916676471783977688633514495028888380258456410667367542444771990357633383838389595387968987116501830824258573759925141448855872086169231179990075700901363289981532674581564750423419865351530310986366341113559703569990611098363851837527219419317250144457029774748276043694099513227913910251305482200872304300221960452909300674647964378035210987679682410468282433624987739916845911976919840641083186757582870217821927648766356140825021801613986284617500034600612417455696607868281089803288791636153084929487624136871643394579383455291086951897515802830569993436381411418923430857123000820148464820037386553517280444233436882615129584320341791908855387048616388334212241627507897566107038451248580892566994830661215805927920487139029248161864407183854782589772370076035145586803735421912156484457218180646998545677467450595473780981829882216116789240012114707798486360413970048286083129969370244240884961715412877322009380121564960810150362993357043757137851976697542774741073815529813025136890047387034949607287137493698088433169179752555424884183946941259536354276078789518682977383635631286609588499192655104507729949909631563688992660501802738276100325226722695451610456279185182362136266785773245383796538733940087024943780254331677790388930473333478544290477197697522051152426116060234490062728989984585193797321730197960376845011670799598746246917201687141324516596977495613743977992932637908717541280151183651592753888344914858102321822303373154505975516868304194565446982075078953488802243914407446133962539362944435755143072499046248018078830971332010506790713402787382785430468128210535662819324825485621884365386425183412099350230629040098828733386619693856708478378052795042525902768971387021026359402390625776593883812883948096530186369885647420352014694903308793424292184741080222520959031709073772364509317325592258509805083436788808186558108723554776342894571973563526354317531427965735669335690358369547772994009684197207407584540249009146964780785037073564017351832837479710864918743157280034369013167515425919901535572247657411450259672478049788412474772430412170926609277341865499670168299611701979811579014140022789964124190110781894851215318774568335363186245507319533493248728175835151600353347548980883480526044846293442970501998323872689672321824241381172033701998967799425864591409323462045013975941169695744350442578563986472279369445055554256635189300490947304549210376713074120871873753153797612417925058357745681520882681769384170304608344327127429992014370051318165184699877973360501447733403621694369397606726498845890076648581123880864722464769877307700952206881677136467852402713689128833024140663160257186736336793234485851046892298762552805945170764584981176949992560880604606721033758047185199265290389757250359597231596937881410717968773985599548148478434609471551162243511309330066401600918734674918782461796072697365835892422950164410858495433073546304462616942224758736854793030724359663382128120784075648347682039359076510610579217179072808248308382985421992908845726012471316661077034817881507888870638177698067925773260170815445210270530013393253236249858647048353563735658808268837115394209094170685659945921795052564604055722000886784491470447370783347595198177006446130001386006603377297942024281670806542159573270691057620031022997342469511242509830474570042501070764747894595823381083032221337606334884452693178473733014646987011182376309683770468465441099115818303158830792202401591457642792215366141037587946370637696772636555910538777858300840128219196703256693444504960420267864483883612058947644460766833673614670996862128980898472425861057990366447753040455348910415125255693322483150179551324053855401257298566635519183131191057525198803305010137888655855528699246564676603826212122203920868275720142116160356548333329386888719455507901092523195214972814331330281227641869192509903946894553717631351698978469667246304622890965188138214150816265008819554797584207593698212792681978863420997359845964066612726024783814117088028854920501452982406268284892038543610353207120918675771890256566390433069756680849937872004460509039641133419429992882090964053794533840804521291767308993730058400930274320186934531960176860393419820680622061120152243702851097025323557163512340872714228350759536686356245443875292432777291097291403696120026719950684752215111359960744705465038724769073373641893013565051264995038152369544776066880751345005111515601744291248677963303196891694274384176862674583099036438195660031916475924324069175965782961745692708416669775040822565902292309224108384757705814552123896916789842266905649140765750748623436365755211445618884536271664953910842915973194860795456749350846061800813244801548422066801841160848731802789058698566642355676742239324713219372940687817523257220929418347295244122500682453345793002713586441191087165382039196600105155945480950634430097120573754682469279131935051763775078134279611485641238141948972516077469736290174510045497265452140659315547010664455874156237263327242645389735171640112926071552856479873831138341637513365557343563870152184682691465173780203825527621192243502874717191404232113129074772177650611680082482869757364076513268091508089155735497477780819959693225910913355635017224707753888354730390416444634970649665404198427656960696042117319854706489648087052856937946776960848693328237626501348907363669002717909650679341981153163856758854555132039290506874277713326443056132108390826778648257653546578222950203536106148398355562069540346691349422104481123727208992393358379610156125563039717078466062694531210687988251763582541103697088671801348845494371709080633487447767884098952973766495986558388699435762811467221930465060181667668125310220297817545097519742928483674668395216113838908039343489434596171365622333634347374018503022364748387144068153935400014820124089163520724271240917989195346342850032637682296608992916408526819258671160920247265444650636223890984443950490174184848134003413389348962654040923610624420238028352281201145086417515418407717604107234875465377279659253982731718971215780972334463686744060548210218480819740214290142014313879853420872129573799799140189500486085457960324837524285599363397075076502309773092395504799698948128405852596054251875387061566321513802610182042024698951379970429757708258696245653922801445666899053393989401235888866951694157136273244941241640402934850542923552127255815733239849826889772771541310215347549616527675548991745991427619569101332043393572170249112945114602651842979608988206232233974398150604011664607232136770588455648280451050597086192257115842311984033330081115145260532799119975783530174105031675260843465140329868972752881222850570638800259807782903041740837533906489481802849687591553253187601323459055466660102542187290296247475757684757001001394494718234846801549388380336092790638230649408700541657372763264494611121840620719615795851302699730205580501275377332947185253909800209618401913543562963544008264891573936147184718280796480742158327909468349885216590925547138057381030779254779109628978096407019061526263734907370009237163524092325908348352078691863359293775772522563158385161248725232067822810794428199066380713244186433228638306809303440515136593606971347075743919073636572427025239610816512003045171833807945938026928873695490897692745305346668640826908146403955330864068678533103893151607728507574114803459997092874077495944013070528592692373852445484230388806614270043758548884825874432619381566976140205365667040870976153513069458814865408771758323991077472986466893666721905580903409849974683926058881857123930544357380583615799078188033272630150749020789748863301365571178589445816954394150009641214913836477471426623396466055978048628716568238561574892346355744302554021462962177561140381563825498926793812950626065032810035639872883893508397520658221106342523529043068681169412073625501958183216470579321732600954523428322655238267184320009195540793733288665940254177999771744854171368878122947630074276369328514553305974845029525331406043949077135940677256413572097949807384923892232815667306128523382065017202934919037887620918575829551905992832715950603630595801041295237687460250673491828770367699440122750774454459786792640974134974789129294162450982107337749615212561597421662955500199888219696088411827796545238307588425562342255752771287384909204813982622915512319155454016942757050856894593128380831826070843942813810409858171304250783359083880141610152120025222823234242743683129027257862794879303191424506598289092453780295058405298961328970484078995095283826557558415717270203264931487391060249318402167885268315175635642323888543058280650244066765724952234624513148936750010002611122787185014169854701015515979115025888625771444381494627694167025146816236998310276376472693175108573641812919565235933376798962086247485444006394346666779119465357477946592936906703722543287193960985867321001570781457483480409898682953613830860706546759627201013420310770603409976524200889798451355320569234441573861985772246772040019436643057629861129026440402608835600651764897854537449356399981337789552923952187843428201489045636872859035531591880678027046376310559150128271504609446616864621246388290895305323885150461522090409866263274583823504412490610952781058320554957122830465596058785887578271300499212378925761445342817133485659873601698981125676906027259037658207275898276015871605293150072189646404542497179057032863514755232753365188534596090938502886001183687409620022092955912365311637712658500965121690832140835348023856291310559993476321466910167951916019196047970397260024652654314914716669119983257718628958710516026357905430098203724385965706091388450256890846228569744383859411892802266770884984640161953002742993155168248733779973887870695390772839828257120454006770715999133295948451655542063461283449016499605820083903522723241319417003617027171776129801783747689589494140391293016660756367311351530626235890011362386319203796172279401190675039486340331675049287439111294516873952763854676740558503046925506180229013889913105090128730426251264474893876353801180424867989923100005269689999029768881699085835793541982925510040642727747260514497925224150246815082335967812325228547859830831155383716717374364925749767722203666840610562189907100597499326203145344876494993555055852272474050090730056357814547889866069741073549313119448275121524235547758570762509778823752196509815579630546600763761276328784140589222971437896885840810288867480023522892457577291660846270027499559333988024344220385817091433371096852906970740971723815331038822182936655125675804636655763794254718297425619105221494059110554658789133199226210853100038233017219940670882721591625195636618537352853212996722233078903576397893655982737887509066711755613458166348085119890803271159062823599323226718239591788174612656328291896737133682727179513021261347527140796529705318892218258246793813088535456007845430884538074282957392491207676550688586870562511142331902473613159015545294573455489277270085665198439605451305237434919281699135441981094824405872022712259234507808610808544377803192809097690779263405007352762157702199577961321767291293185687890844863792195905667042514629369210406524238452649574100662770880780785785978543509958405098557061626741254742291556414795397145031890423625601158876689799180972803429578186258360822664152619219219242011170480914795357435898847492732146070631949579281121420838617750732722353739796669010309669466022271919985529766826850679742930782919686453624597225833977671597973928440444195623363274750504489842027542736577018289505837498884949693869525046898323571739941956764976134956802242448868839106514302920933880682641718230533628480585535250167465247945151294623642558667289232333703786848741011175053702716466909025621702919618032343147593065995229818721280985625867959742068680661996393641519719607682668582707855068329790405431303851159374923076261866501809174566849301024730754331842445558159758103620352124835728503719430789761661519010686241512649003806633007353562407178955453330711886002323233904378908053923744092668975566516161793391858075455552364892176265657820037965974352510790849029344752867330466866828486853470621222574312152734353398615149093726912142716318391313666295078032143214480834318789374697762417899478736851871132377934128877489099915634372098898652313798682029399221114900293641113862402255878456428247056888835956602801026516345594309448893773199873234339996267116770212277230448537250299024306059635799328617573995068353293417507772519867176458153632294078991418629736111227206724536247514201445583217392118483599750866537596595524228759762363950370018217086807450707285334150901919746784872180150992656165153067609479834292488418669161525894225995172661970721566082995812364444951450644927306510455224760236806130036423951809332922031836198208887820939098170119939228860966766065088108642906941590184525863707943499963888396677064381603868836381210239301347262926691191532316612668950211931417708791503948965538058235544453603464398822877293755457417435653494308782316804962676666356537052411433091553034867747899745848751773135009763230483361163056220964059111147245975986304550499925304219916954142190858206429589659072335753406985070498555379503230528439213561549368226247656730928747935555429471962175159729991766424865001794203057999985347659585130901383485058411192206476453491730308190937116578957061029875913902425864838566161705665110331907712937722820053782828220906500627417768301094930359737472901231277883691539134783477452997728280875796056547487184336048950225164354821308259905742105098294343136476719262502206106404282810267705556750434399619933155070937827154293801704449103404491850926498960487395940458635806400929889058948898119461403312884640326579968747475047760459717037277733984360173146690810043339223689607777093681057618227535705649355393984475192168735130679190261106799831567344955895999827598558675287231173789657412821297567785781691831431681660115153861250895001202111689706612542870644535343248434849782175637308839771657273551728891928146690212975442330554294137498617631099330980101647692454422111167724794664392903889739181274603317276005464833309117816320472819210834833553914508256944196195093283803373849422921733606468217566568434638967254145854575943275730072390750276736257940866172755155279268772889188170265007968456261427670298201379820774194565422018515671747586243294007402168794031709925915118844189868514266790272302269963799297513830230169483850302468011280321270362377573507202646973608499360605874689691521150097274115769555495440650877908660413354916256002398605602162930009523176317559396029397393098963160931058935732543708528430808754306199856088426711102592823420828032851836982251550063657703397633682063311150550041393770384201135803355967099053002163746143058211462398801731483302693539900641053703664133670090177600161799296694879412937099714790853382211168186135046149222708480094190080708588762104910277006265005854833368054893418752878046106401371256835048987902635440446288664680790048353047070183560412854685588616913454957542002025002770309197948088847793617592308488146328050146789732114497308848172721158051688495731576678286190292885199050246845429188062278344985213428142230470739923907077157253733687925778629437887938544527865238107856717751421897062570330692396579502054612978832629771292765653661878943018112721778095790793969945096110948802418162719666580554820200603386765338068819734926643523455165742534393135496958782108743252041349434387427301980418118791076671932253955372619874516671783744845217577156473304182446175137427234500979120113100187845845014229138333493186646992527144658368838526091101395404841054859253333537291522787476302127157158613083239378291178061722633261765145767679327375021516261330951640240333269936939327327786811114826133242901539128035286906400660456024380613540162610287234298638244498891002351791879898143558493277162987200653201706049304132914834339909020212673733403503433874051842978545655908253619259826823577068284801454352286151379073262226921370442200099389330003881022410234208936846476001852169302610988904382654178686553619062601024621769637850411785451167239684104462625247058529015660431629374169144774251708518616460159187666107454245980524464114411945614085481925437933163882101512979636195673543557705334482751326163864428836508496034674386148282062545805912893443890311282915140706165186130531697539193667041245821865121840357309609370655026077761523523598961688525437331518752134883288597367771997978425431668684256032433313617864822717628347631883757941272629841510658362212727220359118849153669860677638363994252673117427919634456039558349560996204207032320206961470658701258974205265683156379759251892987470071498884961526900839478424816542143421798075396596928158450091711338031389009939973633951183414269804732656617738923329824187755214978035285124642760370962967751557722594349178628083932700191972129685778079784231719850678507301575653471787426314523444042607124784119267321751919317439407814502338140788365805593034866077116033788633281364377659267943681516453915756929505912857314713166539387673195231256967796990882678379883535569222034756998318995809949180688812243303997784629160593287370138198791140531289993764845557379209414317501336512152004999269696250278574402618001731482198398024656477260433586897827217842071374593230985324860070620067939370550042005386527853335387159776075902098817880774927652991229214307712283149482212503227450508983221994054219509654753433783287872607488220374473027727563582407004376548218438236553381714683593962280863268333391224555645024735434117058099253960242656512357893385772331199308905105554451538327410005382751870195533908575579019401180461215912981678069764739726375905940359862742099604244738696621316799992741897516929496321004357624440399314904043550743981640661356367946093654567703429861732962620800587135664790257513279149818940129465805097844157991763770181209600240532707359675981149419428979320886514551075528706301524142040285824978200846040135980062910998750487779976329201488550028156194317658100781865011803311016942337124243294399602900253564936809347950989859564392910117310644220339175488510602169802186946542479525754975958964994955225667050130975580362253215237128315592944559140748872115603606287100118141901895046174061099591567293017778636119545636730201383885417916089732695377127776635915972976183393650468133399689359821408835046829954324716865759483405515017213592400795099025522097943219751090687692539298654352097923019374702127639722880142424128869063101344719369699282998961353742975885062429543860194443768226429584934252981455907796526126991876803137952290515790318721799022835286864892243573803366849824072312089169640559849670834306390946864238029327525160604581941546601003037499814187115398999206864549555334149795348541795737240985192407641107241009239911438300695598215698461841975153083841280825812721679805715203984095321059766880307174563503094094150046260729949457186938705034461985646293939373330117945631282886376925211097571684513487351369298272962728098649095918140849465344721179526842869496392519240442223049470141889714693774831280477850459815003125095909834200015462375425244027400329492813531581523943995691220248425909683754824944121045090129241516843356786139702955384897063272589387195112027426144052520562652672418460306735073366591962015101128018356745033770812998323023245860037932149590064262831430467318032606548033083555483231108453125852610358013352647890172137360061778406953287379936606638704424700862882129384368497438175048645147444678363093969379965661281562085945138796704727361191565835739717484580564599995738392526802897429352359669328099328041764659006090455950183245651623291268401332680820287824320912460661709849745103269773281314465027578856917856688071488957576274647430337608495203122297644359247388737338277679393936344699581117305461196327085195557807072462188661460191439237483110018862235179218000159910747281316961506126486926980426545734460046895514374702895117489165344259755705065407855622043271183915175398778067849183982210765972807302632866025012136104682263042521156963024812645678461088408566492247130229971427776526681327653118027170650299879751544622946440569191473017436189355918651534484217895256292873087323100461925354959642461328917160757203759606032683106995800414776261198566111445853593735831395623667374460771553032557611627747927300036951687344618779778619133830806227989348385009368331197516462845719966207635208567973976414554834743785301546548096741806984564176214936845236689471445702441937785431991229568568407567483572026745699796683608079303012756046404678924397758478317563683217902687091413764889196229277553010792291948261196837964252287709439399946247970830328932472895410660020577697853760699028608721682752326960804959880534611705289057072652335734637741162282338706323449745079049616295836094595379301319672663205213952576093444913226652024977820181231478522664614472704483762051650615322262786620476190446499297180663461201228417127143713976715714303932688978128606241182939943266850188006006981306951848806697326686046910770398512836913170370591598425827427011310518552561426168868763510766567414218591984039452815985273187798548350307870476957937583301055041484826832439112918729883808421021437886453356856884831100645657904519730607835402395423179182117848805873480685045925474288622800389415777375299996404641883079306743691797746336328501720406314572775670895452609153259316053231872987288704088279253770575576815427430461204862547285098248088838955194830795989896549935184411203190175884831007077758164017370523176442841927634125331774564119564945616085095963776224297787925498041578062910940601458180685675985007051182401258430623435783354529264703873909087080375812422934829290391182752961133088380989075331016116835077569599889628923417461943576310087664103461439444500962753175425196592258018067189443237093468154358646965511478146902947264982911494189122253018665137219250756924924651096056765234016192256237942680802148950133180323727074476898082715774927362316589283893317286970922652828416129716368509687124001901953794051930291612343322319175941706611743854151634901499551898064790046791204874037301603710549483807132350050647591994057786355749296787395384926394240263707455600233319439966819679870110217147031052928649818256717751175252899595913481603944878423961560577213487967400134799521483699492761893949934171172785272743659857497862124845203920598818434159240398230757138076620312332398656495596568430240378086304616065272511173576765887363384602164262009423036506617887853682336638242624351053025060718133314555503564396645347994960630729492742258577589348402696903878529658078629179198556545217001297669633412068314295875842164609102515249792002542435080059333886223564074389322724868490450743932613617472687786424373060279688170143278736736004073298738733025951869626858468701571679866246869892375290531447008230008784733135260802742198620761413633441161909409038032952436591964999849457217452171761408505741108572680565188241239576206873844885246844123178695664755266982225435003993983096254537067711584058587297837714002300537381028380635193170860202528726878506666326576518231040583477368950511064946739221442490601665302012893568804202448233284709261453798994694240583115748921701596934021724410231347332404211262269601409729511391419454408373157130164823661119309159110767575301845280570816311678010820458623064004009411408896044131394479631522521334572678318293500093837223150635963823654790826983031856180284013630664907462418211257001809566164909686615522878263165356028283354975327231699987044069595745629083678824177881713432166896927456235938301940926971334629184320707303235996840225379699534812694415845233040405734426652993939314061795289822556174776759389981142377228710562248286176682551176860692725443555738872982084827002289024961877898751670939556046355562469966734710287153410031748083487391308822632903223161061236890551107649561415912521163162583320919342098401803470281053480375546364134058123510603870105806556879588992884533083991080729712286382998121633218083627591699016146145958074880314646455872303486096567596266985730887018665416797289666902560841180898744151345980089141975207575494213517255739389713535020546701825190382869343695817139721685543925752701961137575365413433444074831391235753597158150395667201617122141885563791317929195297013421729572154818255267822746326603394803790303469697395973770434323624943038559167727005502152385397251463303423066426306616339321737827462727030788418707462865433526968987228265404219346957665997683021396951953893010039976475515790742679443091232614509884245594295398414850168540585569430450957344700481782715187530921261367219840189173307336232204791785914091283499611252584040486092951046979087011522872038045566669762412868122206903475248515798064588707467284763626401640555874798803986961767399810672280736618037161385540397271553060981040816984486136740768510311117506565289301512431077032376111416589495018821623915342606337172540975266902493731102989791506028596988955454047805423415400684934215631517061001753537944831372060382426002722383754702687444778627100945019073372324858675877606183688426853395429607284226619806687457958311980596417054208572678795646485491362942612083152948449255567538731165054885169757345892490028615294763586688816224226379257141806446075153346335877047750922024833641379588953917627303931343172053967009993468250239433921298276013784980543719135496285621126595582207756805116651574147536713333432730079263365088859025930181593894154241213251070993505837315627834691126682620117071809728208895314229764717339660881508565198347179010626508025785782343558331661711331939054745235386677064574862322997133921131025881069449714899463704683150863881703437390927682713597260254131590073165160081556720550054576382471639612427627598157261993592649847042259972820049892372080634843367353613924977473507608167268757053113546013057280422300392140580372402974827981994045430851808078603323763874669580068341463327916823192264916369187354331793079365014658123733398707730873195121318015046181901953909549406792302397976416766205046253937885840205238937305227433922363068856716841110552807959577104344184726478971762062033354829427696344291425521470425129357318404383938325773803687560332713055822670112195464682080264618131473218901714513342492918805961229037625434157843161833261308055423081765002408549906082176302162145699507401937481472278321529478917119594905796068138734575938453476754608269340926163985142716850354000160867871933860278593356141006461410869774526888178114609545703220661973640590120536660795763355891009840021025722411765218149637312600267062767234398520640344502658469910753259502707189475293523295682629789470867317475543929754235959918201925311493363954818853579686101569853786404921629115622827642070936506349638730673647675208886294483194552233401187994473579909941408563788787128242196465704352097671324365729568263729346816705799573235863600491723247752433636821674948754838378059109029559573490129515330188098589086115261130914823878428050366343560932711818893928214280105338800806969596183035516906028741613115604098013424268160354982224906938618462996814983892293690363114760912550388001363903047964731915272574338088934611830727419914050558775162040508046938260096788704772141334842495233236835009354828274351119166861537463434017749559800013046697504948457522838304360102971277405570098086399330295060102984337119087446527252991948388551069084334454835270909858547538100711319088653934995331130493395128225703199953666195352625280738774856823779926509283433841074904568875020464415353861806467172824905001870472798527947587409628443345644845335406001901945525991276214754091528047039955550187256313931540882178251195142483503626929926029455142005167583460527948035199680587507492799413193668307209408198011764667662609648946960515902002624063499382430624095626113847395059665326661312059306226075388529745738979375157019745113122749872543344059665114832267690893024129819388721111826466928936987177271201133149256330919648861485577613985960354818401452417377949871641001397622208207506413005503161582987953920410114821145920935664728522796453822277724112214971513181142591180543193073000182938664749181200884185475102029478974055440340513147118399084680321155150857144796631211280939982207477746283703904554179808139273988479658976578330937108138739612750464190411782518645506267911154407887412530257959126897958589342260039280731122423433386262314157447726383547116380158078374194567020953017659475041263414603935155615236154969637766307948739348480979098901259458030112701359278392984511669426267284856518492136104019015713258329156257499248156935208420645963156751407306804967769869009504305739914113865474008396847068348179127746542477435915560618982022003252454185337690425949867616212999958849968715712022169116238261543439425573627686367255300806585826423723468298961265932746246185137777838795300336339750776578644976548170715797708804724926709713118374257563022724634302599126858719838635055977005230378445429886166272445804274509208970605922384056079220652881708174550133120255674016444800308623648195707661960351044350068340111771678140420829442691277216534407789205911031203163885603384818531258523165702461737985738232473591274038066289219449945182491979247972789186116771474337783236924852435742242595157982220660822236601240750925707889395867265683740940964263838593927228406586319001143142850453940001145137690375098076031132127472094836881934957548859713963880519230751909765657839089556871548624851572857530699015141271847276698369632895065282909219543153780156727887078344211730892903166793791058807332053956028516890796381300647378660307542222407275483883411330217324951332446319780037870561666716450410929822971252094305503097438620624315081368203913174635364756496782488739562226555935855090812624787250889041588221039151561833124866316023823055168144248975862354959971035512055513124606747887981495198296603969567133996273925275039332335206336226724644781939645397765211307647676426481866533779408814428296769746658679904763831734192643159236423680020293711346124615297440320249487307505866605974312960645492450604810463651565413607448837321050785719191090386670256377398450536585572025452213946336327362631635129630734476588713167961648165739693870655781332887434803397798811703011086562697379835802888939594294603429129156825674663658639084683840931767958593627180095256012695859348685693204211673483090258100366671546920428700836349275776294909030388102842270881502829348852710272806815749843959293177085035672454176407765853388491742154298789590653093303939902306590470797781062060445838916962894182287376568598938641940174885569222819247066095901630295707004107608227764700386663191310767225001561965068085347842110497826804684725334558144441594364462618069224830876821107124197204874331358445214215714539266574187033299817225941291680304792610964861845646971608311293194720867741820839059261803338594031658084746608022244750222259051193471394124355614463382865009136101100104725750361839590609765243889728129430949425863368127075614945955541584760371850286036716572324175380275655785651971741361120099998810847037143413118252329365720827660423315574010225551124473842877534739601269711909347884100768636051015327504971965449201551073472160903206846298231819241979455729844715182650056498339320437752394901686635298008591673116676851015213707194769239683979755451269037168724392346675158451364125661642066392743477264197883860944798043208510603249045037047713240419204727364332351713344552263697868390168361689747107157837974343813062505393598524212246412109520347698632305797033073191471004199326874902956587277550403698378971825848241012539322448715972349163739422687973451172204006057158024161154639649360271974477946292936651120475883499238171738159252616485448819770178020621880390888832951119192815498496339251730802672997462192594353361455525878116022110371276646030654144517242176655152496169143689447265307159250134906683095063614140656341781195995377401872585312370313187363508324371057717479870094433454032126719727186418340234697640491050088916904969526019106031326755269793645950984279929789278167713725916945197652181778716477451036189806193482140450581250455121007162603843177651546560051712802213236311969631463548079257464092424235496496369757998484855303947538151619173129201019266630479137942413562720561890925040659341689152632169201840675192023200693611123888529058357778084804153343904790353391354785162694159086943099079911718404421086742435771607586185346872786092228900354814736556050435776790318747230011835523244690949584760562349688219885911135755080986863050622690316450407477222937342037592672292116154672580186248263879502628871124998856768928776311483011668933544940222082470237859699855680399069220687242065019174829839947561344652738017139978143650391748585689745868496482933337766035173734631666746064354097612115946067455708617576752320441163033316124519770326292852817070108378676478962910852005229588461938510875270327807891183558479111072061227473667413201666452172685654412478630572962309852807822045770356355637260998024104265569853741266450712231628960174448252750344725941246118405272939332870859761490092457569871825026973061678461387423580293334921322081933124597135580652205198938079516578072333584826384628732068877405217404405216719991406429935668696903691565886570429469129923528940200124944548516585919699538563649132452802303502955089379325449847464193958475722385873583505192069035743242655863390914655463158010805830615731653476667026741856084385361881708537432993561711709821896534174286065941915053885138920182759073356921906636461472122827268203881161571812459318737596967596528792398726665568915369255851894890222428073113306074990310284670013507042901882812300989183488841113755981344784607474806165962948843845164729194592282488612993659765317429311826741886901601348432327980450783712260810197640227088548909215938708040285022880423845094195455377277153220944857498152239097005518451677310565469578277439911193737175468029569723954778130751564789360492733546324490120255748309462004150274182771993577539741872523932785406039793086635129200056005457441765433706853748594709013378976638986273809253383592344991827977791687700798433672980897619498494978702601863808944381818891728472426742743529449853661801578559995479758595843028602182047829494078445487890855459215763168135381772783030076346700859739095559110870756173727274535618114478622755488722899444695536340030444247676006959063045803606334673458331185862437944089473774892447954839335908833579827811601224844859924876012659967571619898544378654777544183128113423510387912323176286985243666861955328617112823467137803406723928018143014536369456679152051635082554862005331100336109156895062987339063913219088515218372459547612278795819506757552610475104873327734671609802971426678070166007452605404737354769241240292725423547839012320056569501132447349959978599803284335459575576716291971617930204196626711643416691662524846841278324385773459578118091924832196656084619990842966757472668242289987729979163027127096419018898068634934347799284872548645468237146947709431328885375240255283942582385808155626215998527180098886662148012123415021738924954610849862908612961540828278831243856582011306362426192520383652275034412613410921450992484309909954799182553417426096596145317583107435791941417997950039302874875840490770427854768154100653385050163582219052963908896320964668503225189438647609170257352330643387773932861319657887498092766069404507328402492584846479599856679163570415820647727349176141740753359811212583866983071480852149852757612954743652237465588519487625340941957993151514492566664076426881191943225629743468664672315194038688916399153227559447318955381829658807612239807247558437325869382766855476075158125193070119855087673933738198371933281388544074458802954289574253993410790411221674328095233426971482013065534552906971445871296438831613376499670929479643366501226234786516165361681919255017921890141451526614781777661626023913162651033701558780334469872286562667532912421435009033009948194204804293153754550778637416652281795022259032164259080170500725869988788696687184520850260505459895805774363561618035211322055674785003826603358018215519479974574826369317508064825531505861821924125153735652264860564583155036235923975468196056331202185904126579272062625778713873217998854303805091143987601407447637198988846967085000612979104441010804806528772566230376541295336011006730245504784699941655386927576886457613745735510354672992541497270022193076435153610571044888640621596722459522260440682940630288372829374714265879846758267340755214420668116525630242915955321382684069818795933261124358924503432230707480929379189550695311859340106392343303732573553279836293650138477213129643138403551297014226076795896109398157316741433321589293615982836795768336625015739795894005957121107808797441164682939074118437781482831745833080801786372281193771821028494509597010865766008585051915924944198467897589365123038948780460610115802894996784977322422859925419638160245661023245727935867011659452715038990879553345144240277098094453184878472467160430907444062529618615188860143427771019724959330444750216158813490596480227875859358256313285910154160772940649429294600865646021435233138623024894665883042240328348012920191954494824387232957617362006675783605222381807509026982316629336670176367158423511349013258736468805571418125858771462572354890835259820907578758396198904364062793165669524825095378823468724550421145399919167461924274432265804773308130962713689875946435263846432950055493378404428419183588199032232516484896690616244484141680758026991368990549641472450279137513909476046261689737791675905388057769376328082131247101454728883849903869640465750662322985609557650503998782237582835305386900167694292718195143159021697554946495452228386817994936210636181515391930385105073947871891801033083121132982087423803157872272175449963583788151528387316674453874019466973404647502146555690687603597683297892310634411302651687599411527515960524172859900273682511005420460166564556913596181156830135567004326760471296817048530980579177445199054086490433039137318179711598839436267556959610022990993758911286469309313671252123045156526695953282516475100673667422219904347181874628431443903020173657377730663768672743769601448719669239671071750700067086588107495070978946461189798288911359204242618328128698445194972481808682525769364514743735931746313015862395050429198738484592736133108895824338871348438763168040414495321005958366345203885326500974459983155459330654966700583386272990539088947758012453235327533493615989064958758998896108292423316026115231581988133833633319450366486287224301967747307747048136982805587165271281359765604037632657666360469283232887242405125189770014820450612247318777197592310333297799866072342612424487418534513391064384688771762835680352955496709694836593398248324142326572432140271463502537855730156744978563531557028794196783246917862928908876206432832772358757846950422881592265455909379758465150778559029212284636307508632717856060619991422810744731086940091086289573043323605167242793282513296405346118521547334526178699674198958696554822193351262887277010628937903100917436275071334946595791211068631167148857703176412480480691016358487270902521658687901724532210368631688814610342197294846757133424910925142567994730844675457223315670931381959135054081712101173438840793257302669909265137155642889967932779462951988829015106229157506784424265257129861289203769621800440520940074245669201346158311799387835983666777817492154212946223299847289503903901347661534280930249902884930001332172047229995191808716088943629291807803558974154834755801422331446653647064556368376314468662188810749605309565741837958625086318954823610942204140604917317127635635216719445004443738776245165477735863942546171523854683751047941968898617494244716360233422400315501329039578608797650113147443038366465919454597901774937481810082688950684907367447836604161289535553426098307389891527478740724959139254245172159429630464451503314467012275798282261686418730655641561265512884022080095385846504230576256188680475762623739795354610738658817650003321845522536480128995718995405309733536698586008192260223938736970234259355737505177262457683911829237677660904974312930838477522076910352376404477778358016042053802696291893551267339678993762932879239214404919721072611869088087028580045004920074125954377197450461290607007150150037161792695642674014261364187750644050034629378044153852146225330031850824780945648694124817603074441185614648170944932639687214067908342910682446785201068951095428285204901661593205940126525715159773248686631801173882490327184387357181220513845537726662229243391365055877932281519267706722958918113975154010401466781212835716617203757085538485398804501311413636940117828386791783986810551271710891499867734879396008547864591494031999847303845681720210205596495139023728516652253424388320062275983389272011850561478829438899734358931497763149294992656618693926455078999813724194359202000429587702748801898805682953848013501183452911537407427272882271553239461810292143965271222779732412696817386942218234471395480710684621704536188474619877674143274565480022471824842220848279119454308157885832777354917896781421845702285687302811047712053724384692175990233210433748132945172380421448751105037075912624282224036191642670951534355540628106717148901225692862573877333855307549411064302967273080475496489961684711896949740888328058128663594147642465399033164703798575687173951134387843255402836875676473402500365848549232540726954339266506748689741858187576154570957555545354858453858694043507313835784978189154976093961761586644590374398793105806382422262219533078461460326194716365023765305524971248511188655620542630061382748913879668689228857377362035307785508285713478875089979960496061697787779753943285469648533693143196190168445350443829783918188592269731869233743616293893452130886208177042353057200953360010737607035434604204738458243141796614848882000510628793686530056886487501738844185566113208923788792752894304826087065383380730120514982172361351841985424971246403214619781412949494757074849636306413075721774352742198820202478720343495151053216376033184188539957332407869604527224058384493413857097535546133501739100485680385908897135256103771683328476398424473977729348553906011987480729210709475936586136925989756617917685665187746616507884742586520811665354362576332246794932821463205488016828336511234764847353692076326764721566867622563491930427523080927481798283211698859852847328861654673932306236008557737087548096358840951445738662395024342408139460754485251305473304623202236112842822658663016375584924895518019932214128310708277023742116815299055558233247318966158113721559694541284212041034350166071946415245073919502444829027524611743345579330441639594657466969268430651425746572144371471698229566352644117266361589507962010430368539159192085210866022476502773964139423438653863794214429978088151864209546624033153509932810275660021657242551967973796199243317327996992275025321585167073108418462629244464039995597093808051675751824132111994493791541826328603558764349174354726234237426865914884002923637558891870607661192153199045926641794941405199170909568441214788171696567273456058851537043683626217993750081606045750855714605801954216673373126273448263364891395266030401653192228255333817900547706208197435410116290965786705809903515716767596798002918160152587944672096221081138903410539119812378676747649583178019993355153391517993794609945233785438890239205728172440820263603403083732850687553662224343691109196420612418202750767104120944596862559550049058097250123313808360021582152317954939598558699870558288384476835937789110841846095486632978149668878522290894100234561469889809783442642792061759403395485159001650510850313046142727866872388409264255231888540322573131755299693304417320289140319749449376427985844494662838355873795250740413462681644590173456497583139491979869170207281890613250719352712946101320182496190009613878936111613923130455933094664144177916416622730390000714287000413511290124667587390561079731406551957680727639608907189897644792243259298253904322408099824549835399609227779589903220112866082673713377825725975617779414188137498527153619388846256050314941997655822806841956974100388146088080704797532356351632040436314905112838485941265034521084697461494933237580131585131592487716946066348054908250942679650901779450489956933719578225627990315980508623435829501419179309950719878666921503263797874950789632943682245360164042947780532737142247145240407498210109581345476305569847539564071926849624625479858599277525834312579974615631074197327710572217276653455503451433122761792399498376892087631562109177552738966137905812112092663913977633511258501657661634253190821360896539256595808600090824826102094161852369993057971331641262790039435112613150919892172423319581906521586035306560465572935844102804099190821688357816072672779544252156249773200938512097577846077197216446164862377410496986342010835645533539632756202301830452644763346461955413241815707194431432846102832815493202369106179760480461020548758907179368859737730460762660736410565407844596912507942723122460766151738700274539233142130592655079243536055863629389257172650695513818608850480428243020299928706427884873315884778165548919378877082606179926706239493115051749004572960342341417676426737424608341014681147181016801559827141203222181074343731502397578066661432324778730695807496586998933298278541975668439924984794098130875993832778639276005432648164239020303571627314349207013260194290004177239317014133377243331832406498581345962719221734547889684834305374796608043779574383471813622844395843834545434935929943241304531713746693220598212639582750213676740264275598241389358450513409583277162247249665127872339720135058322553169826484134807237298976262262259954988191018441818791983318782730003872045434457023575286330992598467360677687663874446940119502557829959537458099904196960073373096960351730599002477782507555072570154339105384281931333359979486169604611489809223131841194102782154026679867984403745655938151737052352452281437893684372255700793309455589214338790509223931963054292703089381981566783417241146725758424303531496655385557324530318287086892791836089022118500115264080709610962219355296281864212620522029981992637769739234609803940902774010880592073735206067473538183281291529170605378688797885016976438966458087344357503888989274357857309395512819359079011183820190656445102829269538279179714991648280405084507012652000022351714194914673157400799435853675648667608576212983509568010977953080848633607105709753161699311253595401358725542599990743924104000442542004194067286507004476482089928796197611236587012312481466052594336352696150129022381311990013150165157274130627706407767575171989993751544292932268526129862165855610741373846669785035478479413432469071353244481186110505138593472516975339681385074775562161581316272104943865831848583755377725231774897616556118302133498431518461947128213585583771594008491986672166965009552858631880760872922812929124480503145058217597240635952844221563947146404661570594606333641879573807343033056349913556329925077754151453453015644919488675827473980624847868565685145739591118443772415939137741226838534308862130814446795456699100414380847064628295282853987663996751797749011836417525789660851896693072935118716727297729201084773611055220066017483064190218561418789213540607657233256770037273972091140018620379934090161371555582337188890829887824077506615046404697654986670588138755112540723934009082945578417318662902357734398197244361698931379851153038986692438015674313960913187757854789433364582318705525393488158080302809474449195338907531526411376450015630589514142600001517121842215779220295559028732100130244541082298384131517658866883489299000782203375584588727293650928243615214498057267044489407587197530516239890151123257622176407050757920197249478454183753600242519459214491895718202172068207109902722174093389381421966452275160202360135683209284369397141408896901910367876709540284861655039442475675698567253755084844154324373500395498374838989770640336710157039495903792685493450188406159444386760781434650249187685332419310524425882854648178637514048265285432814270558804310738548929939391147406300666575479202191261424424120389352159767763999404748488413308988735071570487702689083922425165329760670295959384594794919136725452481067145830053781116442863957225061592499310179338315802014139769857022021967206344227602220067878341061439699862584676746090132957573639170126551954633259765791084626058879317059641457881069576322112595812810086887764351030722276084050775812736335099189370375479046761934882227404923237508442056506272884564132801185267871999732326855956643910500047554819495679925813491352938063999240254309148054822577471788579188675534134024462482158646334778081544002374746466562733842822448093179306875343442866793747302746699182670574052388066635196898643450013815390134043386384722016035034616103283006667683614678991366267727776457088979632731838073269846847993247970323013351293186819432460735199309580503216766171101806497392477362145936169974394200183233729198795511599846615945473833187032242261988992044312187573811306806713345147788090542142757216357601157571498653913775546167234323115612409219619533141491488709643963945457829278850972679244570570433320839840476421993551623127330874776720561925604391348879088351998244221366487504907428992958648181321194978516057282465589933700011842290148073292635956447392834471057308209537212309423757009535973791789404577940808684691083019663055563842819545898703656487899278255603837176078083348675431760583068877903683910943472466780835740211595305747753553219684716624996839190099917921827693198071257827172643724466619963876618692085478406301084770353081597180575547790677806515160285110107061834364577360238090585267777227503401686891548500716103397076864958554899612440972541673380500291639815095377870759097088843166525472633897064320820161684144425004309772615660169172132578068978598671545624424784868821770214008295094841122614906478982094849551483630571861324522761927328324163647445992286552822978629975457562721594065657234215944297844750708551977315268073384479057783781076452892146086252909879585650536851685239073072127882222007749233582256622257205357145644208337184191927974159201235449476461053111938919496240862038534662077838127637834147436849110618158821955497634403833726808610240900813174021888024499975437915649094925390458021991755338428440035794110538436851444755527631115009089356817506278721643639417438285791136909305989565274878776479564522980852506005322622403989148010196875077474001895595841933732327685099247313533495246603701635728714306949103239108832473164661119222278426437526173201537229828829723455955969108030629692212210625262715313400596382880604063429704788184295959633171279419724295538584251855448929656440844243628797552239188559136035591578328701485190160325297957264413931207666536444732321812610899650612826696972740569594075705383038036592110109169749220545190773347067916345438950484519472851371376601051958179566353456989948679417029269483192636366595724666140575725219824290989581052590814605428507288934893093667907724467656857554856784073463355953031003623777888004270017641434180337857765000108479601991655782901105607034085753899338648277752505473043319097021071130708857610396556815987761859639209271679320616530538457068828780702196602653829491975557205128501678399641928082005120895761461127081737933354390056304905442799378032969486315724086384268591140817138554028333310604003461770639013493933908382383639274817210133951741339524254756754803984568690755648181764727445638527022755003247452899173608152967414301169464805103608084577287082736212457806407930149478541406956645726727854381911732696224275462714865479623018890909685475783821019848304405534435418834723346099094822996306941005056600988086872917201003043992496336256211267528668845815072922827554303203805815555092883686801429529588832439294608727964591148970784107141142766975464724934345739957432184619162382908293232727497601359093854392416837140074790368489620622058524415868564777560972569304247841672288490624577989185029009491574110957309047591401593227597769074402935254058866832191542092241529748407006937562326185794924189619497296875601371455414460572228822075330999433749433931585751045047699555409690183051032888768264261240785662844149442333578537211239640223077444728611926190588910715812482233671031114928464768180378576210619801999968999184838991914263609378828329875883002436276999819405893151380546870540934834260772966083437650300368809515430962883749144526150496348103041692659370853983112665356644003926658249548332378566784632640485542403893766726358047202297516296535584298651026814256823075341782800510301372352205339117859638523369461633563783741827353821966043782968163281915206845500425755499223402100238634912400884272367783151481369751177288172936370693596057586070708653569965660246429883786391272942377166163770843685820317027247490428752022939168104978934681277329593915719882384025686698502593751971472438268138211362745864298547793440803507796606281102900043049955175946711423094228443769325862108618729617208752918746252270653907934592099380412661380787754553522763605228319543363252804464310280922893524066676849210279977655391340256772564676472530819327142996881091286586619881250354675995578172894690935320034996821176798387970241483381809218676126913322565476106085902382495731912529130342622107891816988870472952159647590615383036705284363910875606716945204032966941714137051023526457028222262725692623989776295192141244780182886407794090807813166571493418222180543213071893947326237696759489514690880067442082924108130080422404423701468985684840323118180183856670965246575930634135577737919751142520169932742031549234920522213600956907101042571813141609750203132557932779104342497046069262005952362102987099675599779189537665952307464834647582353692503934603993144226059970402829781147125542858210315996505347639950613288968333715533533455219267690929542424047767917572778804936367642802956430564543566785183405360681335575836146471031368738205451029529697841851466317269369443426739092947875718490025713178577519575136239848876047356546474507260326715189909488410117798396605196869061240864765730079227594605163210658462400470813176535393070044695136017294014627606041053422232883032976855773096218418269933245378546470916369700536297755132320433318253785020475799665770314515332030948527615128659430848010367092291429551188402083060300173959658184504078150763045985765393637093958196484300816246285745256373820760710502293826633609048522345569697625491059211096161393194728933117784268960285692665117463048825677832930906570589490218472307274021893986451363829500868997628666742247270264302354723023833660848289220648056885831221532155177592004763187298509380913547802986132207295499798889995396979339163802448025270292180558519313376959788239795695908100374710355668614671094313234437830766964962301927004239294754374991810028234617067156983206813060314161067787731544547389750610506132891146181067648980694630596778991251364537911851937316254073018434718251062097572944164007069626084166509427086467655398852868789653344234349067044253865881438836931802663009251506387303948778364727574305957244342279773538247112259085682556142512001090756464841995752836856554546482101521042683055283258001093743204588092514003125842458797700788697343438369795046050944354150438917236341779295947022076166244022422998165427867229509394141442257945405028622782835204099286450089199072943687676656258617800138866487055435627583628392582255910552755533583508384853920363602234859367136728344218282610654661113246625417710506697066738349702141932505041807191496854975164189468077730466601889341222120813182758285797447844116211526651830113585754837472519557411937580195252396518088924092631640799165745388352086605797618563555241067174548477768856953983718361805336792950418983688847029211491814669593041638513134773201522770290699686091855186528859970097460272550393448596850267550239360721057228632345156541790296249789401904298513867750372564543426566450320250795091415721506756695812767573717818621098152132628230017425800034648854443589129400120850442109402094663732101295925236048638654087950770383813590879563915956058041383219578841043526512741387976079974340660669950275111933047681653681099889863314224137650970825272932654476526185375040150121495986437898240167373448785613734001836225397710592499971066834667374839779886502228861522207183362545211184319785775448819282031017394705532317479362570740506726684822600209078321297315305066450768395112914943885313736949463430363776729721458299762466125716496055980723394860568463166909211765091914302590182910128260675082000711394718403248341190796566480793950897295191453326452699447304729271475219394189201397026350702160288424794102996190809793861593929464635372597531447807969191093540567683416529352994982569478579336011540833357937351157385449091769136655271123002128156951739913087504274639700910670030118510886362828135377870731230380922080821450094965245747622939513721884055051085877409452706533236764748549820172060677343969126385044652054285074254777442836066578889710002443613261694241161002192288041487919524198111332721766521681572091655698656306242207455326938633363883143110204827106657381971442717172141354463995965204545214862560626872174977828058735561913719813437015417237775534808706542355699537052467158758510080396974384593243744662068980986133744801477600385966759571892299605977934362985971484782840849043895413002252642311345534018003055834619136439383250539150652380144377241903909815606365617784150049780886444695238628073503190849842478943730185480247106425090610650308155740697746855761957552581134454497505955667334613393462943908614185463467881016754309793480841348824019259858416437001332218682464047601563568478243216275935125058644451298633428291198615455781491736917050870309645944397490774794603510499682809184552099026485103211010336152135492406756243608379009376630018680263983491937447752170662262399912068228716922151023923203072153152201997682773622847386674221255919836555620970498695170896066629911345154974915763110294441822523386643354129211670251251058344453423297148088386434824902059235808337181162253456020505339300891000837542332543095383928495546525404849575785049462908349939772249846562662600547841418806006438335424385031252931311849255414753036459622793746145504868373281700781134929056285468861766036530699586474280044559917029393223625118148811725009656236285057675956824080734419897464373244153887090017076194016728269197611425629538844381065525008716016854737029012419598779915213824721319009183029769322512290840076980412534386039515748577438157130720205595589811625268220086440106479108357041758031080727213820783591067423541249589062889053887854398144206366119140572792915717272347316527549099954249707490711700626112761762088706947090853947989143498560878516094324915446388832256923605605465865014078266219179685350363360591657274473257343035316048953921056233601617781325103584210004860812635102832182566545133586517552056651405666813655941351378293022435450819075297769541323472379571009843804012634693206970074379166954047597587441398546959326362743633401235877697831237288232744218244719135577672670983279175242525711954614823200861065818233740498804834675757446392253904185446819984352787446308140144793325716144779555190254505657120256097757582784161910875140294552330499504349122889891983167985336098880865467257680530613618638905989693066201521539020346485375742709139808861236400854891145666641330266054399557024257991519938359580974683517693108865159728750323496375997143886435882605652826817837118453871677566083418617928217456873787721724400435707702484946029343343013636867963041862230924467230905759018642289271842505648226384595214439579280101286365579100390610567677649849209711676383448576870560714342032076161123442284010925944177114191738072559027482682733962119909983724491998240369463354724470071603443414530651383004353073492499460876774271464816749601683400182751621623499700137625173826173886951986344928397400405585373731469307240139277365352100384788445002600582205683646504579916642908477499314444639874349252577547092687719512782015206816990325922936160242829854453941192019405615906212386596074610745778119583420116504575186587483595866996413797502850543095676671107772856137632274200420121485502609061288098225154001176428983247438604913658125831939955316119773429558286103641507603439598132811153872700212252488375682868848459613271471960898155262944040318653505253387125297845534876603462112184488673350955192488321108240139172854760531971831686642340539368141933755216497394843967513515846998137994837375078537104481287101801840122464544501813112381713205369545932376751720453124940114194719347575395150083790487950366821239556659713618882157129027125206167207223813698730353327276871053115095282315439208852534721653167305340389895414964644245114033569273608367595073412011403502079447852448207349567874339833574264013164760149450180909332086630679296781229351850445098133567996265758453682689721833247624938328568724977910201668648692348859912874008358833360881571808589807781515238249438902993790968650824587445312612246758699254328617890482571031358921731964746937039790379209929043727593273558533803398114600028897085159008824585606787907948296684825626276495299597533849044260736880695442394797738328335856580610945781600551612633591561025959569976331945831250526370780266709168471002290354549851968103014525836940774903557024191196778775738524713072946059617900317611649836425768101067845041921696676369504763024756380824478885457592745676094663725824300999984311269352114533260444786691715681181233910389368061850549241156782783489968669889827530544946559461594915426351499951703022578223825639793205232680514389218830387245979581005374717477378856000445580037669919312121391125887956031769986881365927601578168392828069173748554935656634832673809791775020278208867684754325522309643525151657103877295745016396647732267042898834979348866130451216569298468879405515649597845313043766127342430714074020443048164534374601685518779890587524767452265724038847612399222389619428377119410740664289495819197658953426003280920105717802235559259875284202887232387645974732303783335188705177785552114396309862595716651117774955663405234045037419232666451023313506280806763351464701745956116120909620408340205935065861292934601499003661947436820861134131087054428809252675751378789683586192527292950268257168654149935123600765291397297867587468815385167805308466872754484864793891819721216532584205787167751261865034614533818299849944196481884066817064188704059598874772528921716815370622863694708381855312304416260687852095693092388945879910744079747530233414411050744702319105321464928147931656622381313463205981099353631363095869171140094956117617790387891828003102296430103937438882829529290069830786308165982020371462244382152416400977352435205212390647424207748785737785822507986828095502178898861208979354545676166277485526766585955106369198578309634155213883031280436062405488189029366813748955554882490534611705633404006523019259693920306440755005654815248390468370618864036699276439762602417867418644901624077884091488588484570756461230232597284729885080070534829415815007403489339708009723358488046647882358397659156536112604405651407526282841951167734602603013893727439318932596753660449551741897893958614553240793561211593183920197309558756150898145155842551668968889582119637828117391480253568258849359648360290757455206937671911421075039102915525319541591241766558083177165579955449470806784187909001881746094693463856254508129671175984005314234610494956512491334680572749713575100537411562666486637686169678050391945876648526706005204060990006351858903686684574903423010828699238817391271301292359958336761397426084666576239541932891335153242460957050390923370635676411726825895204557176384731453272867031127777043881975960910866582460331099721222191648807432545149600687564819698747875876530929760070890248149460333308050382527993070253252412078836297494017578755085540106651501766389645999392842558248874456576382690854668155615315327791282145050985153916711080882377570299962668910031311731046935616948898963876322620009895310921118253152426327195451292071681881523447567289281123613872728662043754930740510487250785066031943621598238499548679905413713388229454710187880286882581636073266321073529895190047308827743463334709892574967356426378642244618454716604096991285370642995575451319193702539945214782581676621258261004686161560301791821973927113399007791494428990124838190605561643859425095750502443091274992098129716166280674687550107879899975600865121448768063241256012638827129798948883586302869440680488480273312534137191153307643365459057896612038460306120374162674492574140108258675892366625465841552434792467717562500298574988262356016939844011380782105309737624344637109524283007657186179709669939852703721904664623107362109797294707756460336995371144331800917244607865909232394033455555976158723926871994385586612982923865531743034040540144222846609623600378914627760129215245997756315634920351949166486768056816704036016448682019780211033599866261698193618648504866540415549247929503011136923645204599695313686751313875231591636491579980101878527494976805034685621919932188169016909979137952583379218803936631366431919800140744407211548536070925986428135123257153807604339498591774729239207425835685918723596599983220268821840462879010479926445899003497363682440405582124201793515044316850534376047701187089289726591967766426206722532661644482015731161548258971736214969023076466693115779277261706577476774200075559726421059214419764974417993839228035749830775421279888565106190864942840884775896994134440933899297539796137079978797513773623001648144520688093492375699924171180849432645878779240050679798003978244018175758970823294421303044473502097792316813950970135743295424641339729082828981149665220287842135120543727291480246299488299679094520913339451353227122309936602810292564094485469387740764331768953274130398386769601175687566213413931384113557409951450078068928088406595742434764060947637227493900629467402524908093815788256653290944349222915561193718548274299985049572877530761304696728491869423268684236541556109348010200893584628398976269469357780264391248769197884152516018545864449862607658367515774440117775537155961798252955040250479377625448308636019011689152167046440231313239323416968935354757696028988804835995178314447045924873208530180217555399574563012902311483827113012495862461317473432348726005602117256039546940936833370828428150478697322591180591466532092234961364055786048202547710953276796834469767738799586428538265784326073205137909629643021622094167145154220307355876475438991651575238435669203279228481613901018653467470942786594240040065617424524621891042466067455841488828536257759716207412700795879822145334547525925708773397008782571003512488421024648657738738060045446691433535837781005459861417289114015284091114503816523268764020591227663421902776339751348466800772442607159884479830177575031113951749531449422388904671205758136805250185804147356976481320712054819612911503146696304841413988588281368009681357586322442243797285009970176976694925262922138667815127570121086767860937348776228318084893007001305614244699831458049453010350065239034720177031714089819099092799110488751913725607854483236220527333022091916619990208810017498251439464736553278994808728964329529102227649346365452931832229724482379255981124194282133591309928989937623137962319181197098917791363411186575833051954999675977388494886351919854572111077720520085519699922862567728765331362272513273200409608007499377404513625452727682533694257048756928572794778761600323767114482005089122070084630384062912695022568987831170370881406430600939032094622992640206642832728616662049688517108002777879673491815603300796046716173429308041410112733969844896808866069577467413771419340466913165240174603845102684122521742008799811939788832500544579113878034646425459162713883439564431180109859320124592888849327264516320266352509876422116232109910755953871146551486470607514122523415562906627223818994351834840157653198983222015032753257936836551608078063550716886428133413332853021845797555940089824967482755217591779204193687390200130837125646587957187709910056719240225382808158317548942647687624876494501718907509262657476761157674619806508791243834973886623078023279845889824907141031558249444362423356875025574972207972585420734639352583168600695546909568092789363436836980524181385279113438934330710027878864912235318801188948508397737497600337023138041509974590707600798679027407808116014764434770257282394902965006197906706390105965178671007508601426043824210897313618093762507132154932517975136373875970429703483836988653269346282491521003794152211810880369778768111225981038571601139115222792189978478411256966366140388342007073513717516541615228658438464261243308553766678687460912347559403403944283527844673015035300118643686583550881912785539493140351672156633452707964990682264375887963088731091714475720534747904667294213004361589540648435953907815016159701910171601868083280945132000151778039358153169500758175456647152620294566766757114529438629253250832494224769678562424745947149994108787715997419551339013973938355606398281262957674024292576865527091804749851218880248287322758536772365974671842716465775748755592161402050285540351548106735034701606818012749418184129261610827768376911179011296510702347465928809861788815400358709477379734294729703570435834422966505738500830587704231597572374079634921846588403886228323402418018154493595008058184404398454844072749269029987368202258918116487198054420789108734585952857172411063964335172445986233105260326579533383719831026997240872392362510360228000329265563650318364030922061340144778917672191944761005929295935096667002109376581037657754151529794055814125136101653444483265756840988873293680761051782908033864363913927927671833586129512033430534742297096768173201184558341344560314658073218259866793777959690151549376235571907525056335307157101064923372449463456636592307496521310296427404855726000208123949189589159578780062728992140092669824959060079946764642071278671175615355449770296845638009319289402362303631735413271487496095314536605782529354475987744045779024866987135470274460450314804485930864626417462187336650180209058424966152319058927873144109153133256023039547925429340004761375020587847991039750549369367900897207694653148348690713303479660038378264906735988530793668050795260366738925975450306441232512541961613299736544999885086762629965559024828260600794515436593738411641252728479767831004430105240583828186950515900499098949100039738907657823469086183502959195579126440633752288996822415280612100926665523576149118943492018000317850761669515615237131937068055648366501892796124475110162736949048540235118387693129767131109627895011816762447871659515772625856190668497963190030097050376478886050480748671686232933106421271290762329596785806687643216045976279060857133193515392955896199581651547894858760964146392050453671040807411369651472811830070290379674524731690016627529228967006900753969745940504936971093992095915679656321072284339493810279832247078653806196073016258577805374769693137417648312820641174932044647495798712846616355455233773765081202963511997176512514179339403521744684165249391170093218259230557546825894063773385341905726020774921103419617210842924138148163704870457896271528973312973126035041924659816682182662676244827615588207636048512793426943616119067890034174063733705742710469117194887649827321987495644559716958163200408700471237683902133858500446301437462179516323815373033438350592629921467520368099091057655174168798794979403610756960055772215935489510519464935431168546322845513184726306250412635347506615736568030407469262990407777309255982003576305440649729174449261984483111977633443314850316792713804815369287944160509745055802570294268744310429869287687650611454820433238738630770932103158775941319128757341158802244603412726007651479663892737513859305833176141405768630926968534030682626833674293018744504829041274283671310870919531127574665744557996476327566500891230224551712188966694589799246737166602021300579662548350577493396904629953228937058250835025252077191649758481179035617610003974273755848450217666191313398997427921596773249500861973687192197519655099641922312714052102028915624167573820010713968776736864391281136582080688881353793142686093134620505392586632849023412395063734281795004889563485737274926290621186096387151345087569490937873906760137119346659627117193217732495961759121987081982551392576661125018400078310988911269361153228976294247163018753204917326266560959203902532720553998529752225928224252944325973611734924547367378469975583701844215575868535179669224531847379697469611933661295468135751448886596508305031789376588500477240117508467498413064891132005983984744610416407465496675083374523064082105116213927030283283905047752677453474589055805587704707948302785290860781292794827277594782665399578546340036330214385964695169841085054526373334857770082173309444871959203346690978544485501191302248806876209960501378986757324313121474995889080160762867255054939068377806558688852916451459309557243124726766606682942845968961267680976929053661048767368638590489091618188580060202998142234870261022694396862870840463147315288822842535292879619667180909284032203549624434745107949859932511959871439878855582008855123963614942335414574649103780832552546195800312044572831184248500831158050026630867633330755151350634335988799534494221798410573551152485493556636409696569449043100536638926372747652824349862163176698752170214023980121437279538309448471130528829046578586477894648432613429204469326208526716468327690061536869495233259484335093506503134025440405547284964449647091011895971686448527677034627558596257878897791932121787348161995911443478998288217990464256470961790786582723157444066550569630724975970029041324549334441959934070791645153203865439223163751132250345568011024922548516761101884075871676638224494987041601853075830638475940486872261064328447386396438128186730273569832263568086308493409319076346648332725281976568916230186307133653790234756073866109374411772549599988699797582301367684344618320924395670876121503972284188715279543585437849884068809676565757092593324465370520371635376544644980473902274238059884652953055493969911031238162962644773445863206618198377317710578987355807286589804189507613777885196269177645799771186472191497971361520822001917168158262962636720088461568042990588586575017440021382985469113976847387980370928771534289870834748335596791188550331336762699001277539185026758103858312736386295215655152254925845222703886258220562249924193276139277051573589010471605826766175003956546706773353200270723925758149457009452434960124098635980459946909789743683548759551165349969126638320733308321331842505834646480035751152433612230541790895953670020030330899887413031077498561282345182993728612965925886542614977931615906342648254519150256673219497943230448797164648737648759658564259066003370915663181107996255232529968791853729847148611814897179729251196255341026830870121144560641098192506317030363372164274249926842691361337543994341898763706392397384587616723669701930601211787308999070320853900124773481820039355708100979908467433946154652781260031943102848165089482584529640161029394701944049956920898131212872445750783995146675206366945225698549908667436176743269075000788547766477472333984457395857972107945991275060253204103312278170046310851795953075610015609794490258598925460099284953838282948554522273152287324574959592210555589458008990240444308731702608752890159157622777803638832393177751803593757914010994697273972930300081408334206551380377651913524662994913837431308822124932055623204210537172681464342306592323755752492234895077829577559393006567859541554201202392411174299923586480620557004494114028515697718493476897433074289315478497134013194137861977131471180246332730354188365510837029755656825786205113222048418018588693612205228677847436669057990646648541521538938836155909594094206406539433964791462412580328146699804600932338132776542984997524864427873366849273739547964095433166609547314611962154861380835919757607430092272432990254563707169771990703730765993527452122394605636987391270409597808845754560144451042576392547769700777778154051667475313372585398531746899197433896764587725898195304540223710575595929297720034385135752538491637230865388026053087003031470143205117204526404070280566996565363754198554112416706727347802681655422220830620983241435329443801290194877773623109812950001169273483017880795487870628810667224666105889306702053365956132068264055197357923367174806160249641940327891537364224469560990246740670122547464084379039187305115186590847987300051038545922783691787252011991010685962432974479991688346697456324351687755110411370693642152841722171975005448395299565202755722689539656301359517997540603041652986958129637341061253834674370672453640768699705504712678271631647166298583256919684650670439615763013069102677754252658466386831429937058084594207918365324725096119471715405099855429351205025825175169061768375039702693907435787084744892561555440224504096950132821343408036036325590758423106701361013511057291521829221966410190971003223148699577391080197483658419867781232434990200683915100589608543668681077798195559331864162419059535968754477705364064572685020594548713893666489524344095992521156444377513183269375695536878908389708188376452381358825186838333203881617326540060976510792139871485075466893320231459385059701606701904867891145040543424462875582697273056055141756798948581704979605511097028499030287346758354641476812272503658503887373802418664593622881131931222703363505988520582355752300347851919397962468106449945051692517769300291528776682902011848457781565469793667927545502707606067458658102564686459735379149161378128432216948496316878820583236661183963323950617157214941124272492441500373465884755568625422482025523656422722933973761437561598975843791967973380216930921020092567424402004703352136703063718304482066151560574248600270033137237400826726273878327277031125122141821233333044289902284112555628192794235941206892430944549186530582049979134767929272351029461863130565694600904612108286163074923715026464589087928164789819036163280805851457565662658322249943630431332342341681568252257478432669933807000062590053096901242749032036801536710101125758733807468432264369689276977997544103154965119155175171590385981562958645219246127836741408225552492530970048034739587217945658716224319106609859180576031913745879619052524141072452202693784514542341253290582519250240011458326605505029704575526527655980546478149330520531692380509296574816883603103723897782660684533856068770741197581842284720814209460551402696691386621194920473696115658523532723854987783430210399974306945819708265171108608081822025118137036775427225210122202033261561558494802897695592684744650272667190528531185919734970681326727796832931019623157116162852113971651095829427924187463054359893238557503776168633516922711196604320303740943410258777731654524158993896664072756201825019748818771785204431762062578208742120491952287563930059782455474739086247729982722855800898057656626602558486905355692127056257813862763636024484018344951824874946520104400202199001996831779294028599762685433816603202392489128548228180847581188009934829895063083311707255465053205596828328509418771459662820534347352443693100968937506965651015339600026501223301818474485555732436968562094760845368471687738055976171192200920669954343703422172757855435782183387823867633357552331840502176386581218673115882506409265538127356468629533579785222405715794259697617766764999889221106217679212013389139003217406289269230981405723401097415686426514343482117099393474442009565704699134400813613132747670886820498835362268170242562889508118044137054781427841403521085724848252687491891895543230383542803392124694359525005266058829645041058379104158363066220176798946201777163749411147344341284136304734138261069161753449292952987199468476226696923766063122784021655108378387209624274988819819710268848616197047828764097471001396062615452189230803405959309477509246688381382526277968326397477461692838256040372807351569742046282683864236326029093187585994905303374013880086462300257240560257511739792105768009400138922554722966011174553919426468383351413192377778824825799469663266075090302840562435624035207523051092298165560356597172804428624752190462927075720026821426905306569115890628349096507847190606003237805356537134946833654779761077373703279924907475338836238521864430127021026916105428497934021585391103842671394740070239919821597658990594267615498474513493285408969386047620423622221816983223018048144671513361846188903160564415333134176083372740693615037499408898578003024205124447832065670466260705410643618868269137465688469298475921216082562229514907499759142274538009631046334981635569896248433370133037906813650763728685956291086972993773903383460707008659846613679380862208170613794434857434825998748532559000436797672473256320809344391655504811549918138687607692108117976766885001608310422577074599915203025241665413202268038162189320930361753481797330036375555868377842527864281212946295942225706406169626098303358907471600868667331445303936882739526019945295408576398620259135815208116140129327507647915643857706616048219346626615916058735570710646174488527502605979033657550183566141634612297211037328372144983768461305640589268814668098337032075178543559206552289105960217218325335044297355815084765031770062427784129211763928687482677997697323109345384795898588824049046523485534485965912657347676641525860378485062046593399454930937591000986526145491589903233578336818153085714349702728655659240471262765183233094666103232494850074833922305955638471472261985692284007419378917149149716366885030700640320163554376289929588125356716406172632775714542298663757074100822303413567414275366519132594503616416014869120758724088672549622877767756074857073371886960650985487180960974466478999102312284427824323757588601810969287682691385222895637688521367303501706618676677178818476639934238918922326562054240252725725280828657477920444784023913142682174798353941389412035102986494494170595748330623216692873574691736119252845709118208419142711729540744426024788490438648740554672316650232581810044470348967366338595093892832593240631646540839989940056274262545663282978611872785267335195556502792838254180882543408866029537878604701562954332951816916259052425611310439941171357349379717897082635368661577521765760842527091728655582310441699622677272328350791859504988324778163430624459727748841186436396647053707489853264834006460031305239138039844107185437515404724088488285987129771108098786946055335255270418948689881822668575316145921213708448706863757043965156932265786699241902988859387271934665789676922034402276437594519915850864158856198415036257935359320992522710081655456854228619923158463280230622967362401276433989213591153180976703754363076820620244894982931127210991922093169876239543708082202399544648130061225689267142112553274021459412221797791066199087014444857906868067080050717158078925183638506607065887844219825746911747961988903146563838722599245647829592775619714324717954184383433031543902851509238819856290535157757722638149661268790594660208500366478367327764475302528719039103015925219043688668881870967814320042499189584921540149649467639306589933918840279183656291505943826219753705050308128113588073164766388394035741076441148574335872928486875192696551374819197272613091649779424766773695880674385234169194897938089183209040245232586911822863659352553735199026074159902992561422753441159307457475219032067513021941097557873525269493412987248543919866925363278830818608577513217592398442238655174678959737725188558786424736871092562079513128076067099621583084527900364045126434648246367132844191019454362510259713482708108160916074243700288359554840408204873767604682193454686773447971043771516835778928165119356581200854971599051056833725966961741752060847200678287773091012208976628708855835092165127763443651037936860313545248437617074212567316028024945353296828663454183132284885611566587530936017070648827670556040647138816678410919367646479597046620636465736034775756802581275707540765908196505498052535489439842941435687627940680088721463798730850400778653998642887427613997897437823663489564795959022829521524610369782338668443419918330559297408702601340276036428377293500924407056524670748256181090845519305634465051168824193465162228376448373131767043008379104057353087589076123506150684333702410846816796016010555319619126055971060900909763083649833790794285828652400120975695854412074655841298475363229081151544290967656104407588239008406378710896691351734934998217091862421138701879528186334190933708031215462481739466504205269537939702554157120285272414155426768338524651016300551283203737583546865898712221474318030132848913028074921970537613705640587288788931571403435948236300056066968264136041431585465340507286002489242224501223283706812932459671144279588843480034853113102782519342466818838956817273355053011307713314274581320878517332200632353268257173362538818549688891099143436227388549042576673348673111826752845170517423866038896621309760518553838454293186071720062441995043519363087862494908662688581006357067580423691667855427540952262712901876354354767975739289258808437948003476274422252360437175583758533957583985235116865807090104840456336253244587782203905908940152286964441335820556480340395423381353664400828147813704730023884768475529395507523697654802850449309775163758848430245007408867356806351511172286412053680153321509339754290403042875478584123703571356194539537354329067357657417710747691509640505001702450506977845146798497610683181675187467821272448850855482450789008912396842638348736339557917431365911984139465247981285444014328113855157218348750227993063675877917704444056075605241471953497540714225866468400972219859848725003323443340489118961088897839363034850243968231834575645553158264099620182427666624636469356647896218176492567068484765687301764227563244212381410004835089699106473013472709181098064056028362474962404630789737904635315692079979047678842129781466917773831647618184682570310410039103800700474086929385526968147798245425666267921489366300148568400635035719378840094722971873929329170475203047833314779925329938569527938643650061131031814941973826142523451602396145631694931382879674228943773904760141072677498335863393952455273811283374417077805874584683178157754598974577697182482650095668007147743501934869403780319354553802579283561079419651934129562570944659676947624202701162284779411928959529807679765945450576453872080747491150431647796760051381146541762705573155009784342919401589786767185070554558827461445792603734799895384229831671793287413788655003023643835724164305425730649783171265230454604313276840672726195428664011765725248305080010226159076513604223088380588059248556783774398808582253408236333040085192540737508240183078773705820353922196451803940991734940073766798381542969029359377915180500718676168270407422465141540929714941138069609241320312946104924190074926000284362337446588377164811800298290705197903921721311098447741377119196669471086102561193366289518483476559712623439610839067540324329892683946575390184494711707764923403408581597492645767420587898043139457797380107444175516468747651295501215889300931894914293397039690671153120416549979475730289694314625920145815132513763557891595777373216875105717917130944354081481418314314465713178806987713015968234421334141957552720779840981543751756116979001929807163221580945899287806404230167487047501304768681571226662139935197668303447050883001284483463420167594399262362137708057440730853152272899145594192746435224805554994021032812157322143372724603987435468628799383958180550513465210873409697924651864707602045376007789533797467232980962311504521765309155332249754734521471211751765169898708645506437943665434108271648967255568748126596647944499869887491259437030574584322482877925370637665157656480261435400228930965178322859448654848996606854672705534736098181656996986126660110900743383074305930817270441862048429066803432414564929694807895188362074259219281182990233850947229870622578699228401882109247041375906231176675308391205452611948417936207106671171495877367380891580693802381848242067318419818507601123854202931517307928142076890737223893263730154068064121893683946480773964648713649041530422482069093758496179012838027549534455781794168310214241732248372099409552805951752315772247690508396342105335812954517661309820576529183862033791355170432283763976872119896445192543250479375029811239380801168418047931228768893844507041092462317714388559578320954560813493747680519437068695393561137384427591920191323120835437129999906654817241644029873372619574958270534491719777918624403513554471719889076418561805762325956095854136443331936886863004094670448538834447642042882845460506088710451221125928989476082844651620034129694284235578874604934572457159498450503170269755678921453254683250508731973374842898186588098178931143220729083893287504111102145761503483255733306565548550850889902431517124530753315895382356362637182825809458673756742790939889325691531131200698550480652659295344989348491469142265017713647503504656006419476771942777979507864977735132269712396848492743745334962135656045318531551651181575332045641222102851502282401466313272252586554636432114275473358344586467913466932205336727321960230481788925379405561241668941761090959410085875587311156942500424420814497167057637060260472159222652287664660136449839103167831167265948880892765294864641917723512881397070510980823230748685257203293456739216622514059475335833492124628405206315162303081082696950946786015184691701677799891996601344896689510996241906297517657622090528111771116883751104825278545197289868139726149481794784783609665209244045506044634650376585064588617849843146107110892344643751841221360672742038439626087285958749889369231852379080171816494572862118105660266074040611891530566958644420714530533523150789138713960679761424807110457714163478523127262386525808368223739425038426586727897247330701902755929901457208541440559710386928905610251458906878269000821798231323057360495189228466425447612398151205243157968656766012817943452630262461233877614136688190068450753414512668978278837406519548034193174460857618547788934295445600806960524621535666427323435342588551886418042076288158917331785984426631580644099085271740087892617739255141273981778932627344230669302558430352379543598275581337634205778727879774834169456663091944984237570929559723421585266884731117275298521343477238122371660299033338325786987966066716599932787891740454722451976828432102042268489659843786935144582415268022710494120840797520638431819637960324870739485363567706579775774657122377117584447124959611606806544810696174237290587929664137803222886277859376063815512940520561673796227150033694024299567736718788819497869882514539681148029151608757666087807108931504834644588135155176780193587442048431755412639743311937644454991120043203015563050971836027091222023268830463313846982597296554122055186613880431327176456940998520382930457611615733343596706554532528770387749882152287991615983105058702308824027658429415420385516292428614231723695877092261044453088371870125509854243376488802887942353823200989475146846058179311202930091517111387755243036611152644873888372069088360857557316877476932377210070923566681217655480121378188746590851137906907538895927401688898919104255746070927656534415778184649272800135549974021936487394640030824511660530499249453559765610920215245649534353306723989783330372756780778221959986043476196613831548453378337671174959128442980279141169238122808658716755829665168446188135904535443183803221192108200655116409756093020458595446935497473334471848661689211636755969674885381651396438677740901563119398247947807348075478560395758567271912556871197267449361121493676329073329714860484115499675044055940867720471272713762850787823190236094999991916544703533220637831788654614266142257170417111562231038273109726911808133927136758684960755280160564827635636295797923462815920065593150926214012860097003300697499597903405656082092589105670583865408077915706891159178459430378587172745677955466354105421179758768385222562823017799679966463301395743056456182427592674310557155589312615957479361046696011490453200980315708406887626205372844900045938150405640939495078835611988259424830481226675966882570148172989621940195714533416623630631194648237946079028776760537482007066497558802090531109469776122631033391516666999048901713587696183460989875418872215376976542228570588781931022446913506949441793888279237956412655483526396785689025838061523847776113718077570804823735096560227067639979900480171695353437428739069908202947043479826122571737797162965663505147453084824880211918504788854459356731334410704430865140961703515829755000225552798739731987582584598145997461450123830431396237346124553023335495078543805715964508013614666705016353575775741303281067186779841122106931016323994143680036654267823206617606352978539664474311322803094879711416003433336504756418854469561901425236355529151091521908533717963269712817853616879359454866001166596099982611352298741564855164283371001972429914686330098087368213850147789980991049910277946969200554527859279290029227277003432633467213894476412096926849387008202954616964410425306872123572466332940118014363795037772015192000003684990655440916800963146698776566436489645538322472701929499766608679727082200896530518566566844811000987997006128737674855680717193918288660114223017148735677943043175999170841515213825691562414278684948853493253787487142605024341186501878207827028424479404873580549079175191767891709987349045770110153088176083181721594712379945834140375854439331145484838040428154212548134825924898476838760612807930797274495413804981865252856948650753960178466821409439961998163527981178385472038917465616367763722416309301341287731089717409155603646452238449737025712898384247361970998298740542463890359626021548617449949221023881687161704817846434784009543994049123841372448940393313356611172027879791042736453589935661165743263278186706519988084852378406484001992952581313854495493397824235543343626032219564882301810699542534226009185886575758266011579072437578401063871921024902437206830299507681414195530414361379085642988485865330672655828501507427017812817431053064365528583136560981215135045489475109328770329824087198376290655104107997988684160078796378888275250774731345283695971107158709051348366909519012817843759177039380576136275013405232940823249479102115010257715753116269769267105625603564977699255644631025954163009934679906509505566454558297945632888219145209513376414344731442836916912997384157748490491398975908826477158149715989334564444950631531473715622833078395389189613596416296999310045399057901763711325391123011198517402616526022411968488421295292703031713116960466175798281390511037858329127711710002248193838721202827425732681004232293155013476428246634387057187829019912376337459536758379641851576118182106530429478278906684994701661465033966761611291851439265190921755689648920863990186693654686675924594054892137157590473485717230174606425233711720977514532864158190606777102151769441895138434919993645925314537264342525508633880930342511965421455635667188662428491403157483561336931998906617165242650330712086751014163511905561883560908279439442390510514518233693191848683865063412199748301784521153277206706626483802215495642339274088073467755491736420131115137382268716362894955736502790585913723925420847625994551336642284716801397306546413313870026929446426881246348216489319849360984958147487141705512488184200760741221880183613242777121613581476762159912420319585293819835196587488193476603442204277357845662361540581641214555239937944629503269333104428725895791937952931404993474446021191465008800271176810455538901467180579292925703402758116167486396100689023973256966058251538018308521892003967980239832838901816781966613938675847465529053853038348281599396252671785483509141672851699790945283167562621938367689728609539330259852223946867172277959080659163435076723283333665158664888871275421764825135177190724869744148860433411670139374847840011836752885975904707300439625387694431690456325478323067573633490471763393074865926794617297535398330284528948141424200124969338561251785664564696630805864885075894827466874258999164344090049415602161297725197011082228801787944675817715451131738931593478945319128296376724698204523373434594251048783667548730154643074914368247885719433062017370309401531894041325451433619613493250388458280596618766598171313263100429422573273598995193803273342179393127108677725636156209172751003398249508237015984932017588522062525266907057452971020143793609255056269883735279350656834625145118795621574907006457001364750136562564106210117085927372864167569548580867732427466024334608456142274372708837146781140487628089199625986701213759582097736172430518144608007719212973050170924177228055584894917610156772300947137787182119465164355105633204033697470432264836759278008279310893643738301088544055275671472110664359777374343916964704170227854108613435764997162259323237658233819472602711348074902441384842362714053824111547864851911715146411682702765075686033314462847887016740255585276051460468716062277922976860949265972580392466987282182637128279338359341289460417918069010512943060506788158677336247290074748986194419422265138099716116744507859611362897121516263435130302729146352830281421993369134834044011805354441983504903339621214010528244120288031913771955295535608953414322992908588322022486379876643853863450797240402663632817348258429988337032455654379148814318893170133122403218559745042822340020202615874421532532899345459674346401836881972245728828518934598420327299373979500942808054835597636505079123463523144877339061777415144946922956550472921514888856760757502692889960210636411311525873575106263037232602160529383177144696524620484232856140986873408723159147236713373178921032227282356668971028195635512142003040306924743544902438672172454008106401539880554336694566820050414333606827402806729092472533545118980905626397462612731073451284074849174427300063015543697685569050798931819358126394711752302100444905646757111625756905573915771389117251256208865882062761196147486035980786674609910137227816801079388073001771425540917076412377148951008288235436886011507731920354862769879656313268767982004334298710971643611979315913877757281961645282265107588699638834787452759015799350386698687579578924839128190896265105006471550301913241880930140746562538106637635507966351245853259211408779540903834796850541273864393689779504002008936732917458566851547898325632556055723397692774047524718126946289517299059313817266718246015038476964737926453271925055541601822865119328286074557676349016791150130658833785995154362830439542561307337786971907372257488245719032276381955616119082567681027564403904859484921962078986357687358284470670606952540400034298967795687594335170139867792398802237594773647703781835459113000381446936701472821485102800426055065037831788274326743181106072113797211225035523640936339132271967678457301106445644576530632662285112017561588011976654878982516087799368642002365933459266877066400404546725626154797699842788168912234237527588082333919780748571408258211491377998501132447060020831300911535769006601187056243741248926201672549231583940076747094215160049427365568315931339885273525235823548593250075296357468407019349329533057149119651414964587995628614196445706170970421743220469979838137537012609583486071535050681434540682886001168699529494403659683455238920899625236941392967871130093423229259398821266637085377994184331814643525222408396066088627536473963797392446538393803907630568453529597578209045270432795699749483883469651044266762231791089991873039828199076822261996310205048303821722915127347215292524399958095190964068879346118554232876764989377776399326626909541944148186154341201809019906116585053926518611271324039264601545839943688078962181503168213583529205902746094861021750241131192576871212481210738664195649999409313257025463045621156169119560427571784227893278168773716879474246879585410726236922482404465933573867671624545555544133465744584112811417618656390336364930934559547957947751172365517385573947223313671878668377946458218104077688693464771431380890155628746815197536801665765521503956488537282349998344843570162547253907871919384777283526950634311290516545686994400677269366404719342421985627147800614315648927480473205591350255092417279785011790265385432975891173679093879907015223503991949750939005231875349897524219491933104592729932900043246292104074379151574546859472576916663107613984175764432369359956426552520113751843440991757259663209532568707820625150836321243842612356957980855823818898190227832474175272810474104176239892999181618874137051105751961554250366552491556027002112502704937240275729070246267131410053290694435011280549186969512254109295145249845116890556992415510729643788798144168461707914350174442091254372594922152604254711574702032462953364655836386249248710337729209627113169778668052587292639365352865398193758205864063074670163596304898568009297228478460407526805413634949063536635584498576659636721229407253608174371860624982907000200688086889757354101871774585896022171260641191012627502050455844424078169060359480270169244195179928694705472889051969200920390273386301476505984503855347272726424835133303068918856527954566048541121032025584576485586610231182245171710419983257853292610975115113649488589324930816843081907007167257132606245377888656379635056908865576948403302689811207927290783275435509905311377895670093384176173718413887975733299559537131547420738379983848810508680973893527804567008733217593880731193783661494367794064170153966418377253623546437198427439887980302638098053058179592698491028842598539052392045297245560387619416264512383674728583789614325572278678554327814030191607835218923539989030735720759152917833083150218160090974223616595723479229064903104332747868225241850568040559106628362946526853696588767121446205465625042837952353042087725417182186566111222693446890828530433200145977420217176182478517888863169699492790949024414448499304279125879771077080384962043620188279716265282482159741268158392459970406806093774587970900285551554484099592725497213869866497646413722240929520192003370569217360994861497252467010117980970919604716767498156943941684890369188050607307341337358917911007928404887963646736246616080474751572269052343320642908352032252382801410932331808166652633653945672074208191762531683659915232706193058057296105849456303584389257517687221519223058040002985678885837255315546782193742157191092691222069893607309697738803104123606157396319214632701115061493235631896998361922862879656214573594702978285288248438256192495749560688057388372960298008181618890112780279126272540965553665891568857537933435454522863335737617622739349294609012820271646972662857539961882956756883764662244810092891822963780594891998219240648871414680270302205290870466897649537917916408295833028695592276952880084424324777600243121508258943261594026521111614598453507408014257275344116660579915557535225813539020605930880099213539947298840798519668398446660973571511595251819866950725233377003102039377791129171320170875482432466967003552206803052994472438487080772138137862540934732503889790673014109852753456117149190797520520856949995357826926086077821715887150955668910557114513704385406710082442570138321913623409255267637900139109450424795839707224563398106695835503914000858901051121199539803391285144109017863756370266832518436210424667017158707463064956768083114995938113064397606915168745940333376752687991325771798746711667392089597083849817359286288025102380160360454917697233836633997892709125241768677836986654009526343497555766309539481560017528951939215819233500940171248723648298764532615532832816581001513846789421926425382246188203920976552231238317680598259177799718580328585927694520700250733488812505139369944835674678431059019916212232198143188969531083478447952140280562357973723663849763315175131476227015329119476827909019033840224970014876913298166559651619707587238683304141868195027107958889959259222096480881330480551026830519759998450453830657621999895680267901432753007154936948714068426649618815239268105338979794242386833637205313782543296845009098179122666686316055964905693535973973967622025790552605509619662294746932417367554028356150682588657842991155978491718867777419531096427260613137045520124509810946176826682893145807664459767893843103558063726526926309952165574793043912622959262387090005066701852706783578684847401151856802867623133606558431901303849457704140700134047932095327263537056220482422191666710811481245723791184510407915411493028886988515165060835205501769338921698966113203709722408893799955743750700189989482863068252846983481540418690458837481919249839478958745264462466169441769580802923343428526490012211338219012565586671656375307072158496628576423501706969178917972221410040681187405762666046728683485756243348484017590446220113509135077130428677282609476372996992384452900739257807501376185903054862582787427388372752396459369352183267016704995594148959168179043676794366100889322732285033890399511628942662305938071825320068224775410704584126225516638353483848413274527867997764001583141551040654469587004614459177296710903794218288567934481984645046448901126564393488502797984953344364134920287828195018247313189864275504799628560053585127811783859803367467302527176259104538345228116032886510743766896013419053737851660923659183451147902184231423919279301793653164184269108338241572142199479162486554664654231083287864275953568822121940598534532703790154191922135196380003531671448792138119568029334901245994392425921787954859957611385758168959641409818462590936385631373075594434800829008554234931589912340547173951291561659916748717716063461851611194093534453767965538565420992676683624543940587352266833944124043789731863834420723258921755836083397197001908298426154679805666498338232999542248982243313789824282526095295571907878594208354056479852394995356283943683395025163593650097049528356538998893544892004379018234070868359302686020817486600038165289818648722139336456205749312839771207184987067168702367650443794530583976054490685919263230523050124773506951231885964632928338230665466392843481976832299155614485455146100374490486282546379550264774135266005116437319889826188425259963554619216221541713682143501195029490517057049948850831793076700064424532770953378040062648815700790823448346372424014321242190548368693017283194262975494942953642762485889085557314620565031956745049321200134011989872317143341281498726873963216605722181954359300834982071310818653709970272744484123397694651030686954938321138952671731925832291892833401748390521255479517055850495640807331559037232700279322359202586244915989192659145832855374087773530539758070046196578723759122738503386165543117603867399786241548313541778876888639947421797646143590854492173071912856277054371560741432742688250392627248532059081477518275498241239775436133458183087059293261241279007237889676356179408795342978543825382271666567604448883394614125710344315762724993977355986152449630809888252715216889016971202641422519694497441105823383190110947440803119466089191582533780360073614979909095478446635135454907846998638963068058823386315715809066087455348396359953460795355771373367928775415186017325979462864483702751306647379337344687092305151611437459727165063112319184013493920233174235580117575339512313428057513362109055610501809059751466102635301821315874050774007785993502185386484700661500960452780412093772361722751560025270134426519695393713129550569539243542191007670493413151794590544233617330727108567362912411779200372338321547144106235082833798033398518013544055780468784251090265468357121224986593968750321205977828506267418664817760684722817410615040269911217267492285085505297792942373772469054165438009178972966009122011996157192691214697373200236586841948459061071879415487182020949541364598839445830865580745165220140525728366716894649400557201846060840990228269049629197903509545805266386044581725613852011335358653870019682230801972433445633988663269480332914974303948621368906450959657698816010828512626900843303128558710435192924424046922341102471450818020814789434777438201157726918087245566780436625648296259528833994020253879960704841458650931880371169430749062289122524759484324244434796704750685094927564689770813842273891497824744857891026569336567322425759486147613987868189787800646618408854116502505917846594997529716256897275219192447342461761208758488127821344521262087741273298744552258000050935111718032509483427167592051463845743128746623852051843933164355516576103762050745538977147057943863627754421510628022984080894939296898767251249280506640485232240502598843606752122342865968848448376856917426517063823145275987694848220571349508888101796053283998397450724440063294249851464351023407377936952224195599788984503336064121677467958723650112967547143368854649167954690087767727742334451292639369087230282230704039637403099477713667418973453196891632656466695394375054629548497683033752389682926362212123176995110155604056715969377288058547019093487475327889945915826273548798742803072077696045348794408191956803424427185953575398507377013967404559897611165825288410016869977482564491951592426286065126782501148929472275474675653099975021314074165231059879796018028309603132220596531203075438836916174716037264771090401945477725853473566359084459138804145405004000527681348190804309104230006872169033537130624317009108333830400393725066522302401452235290281902144508552720773239324883255757063239630614727002332942348311605560110398698972521503973620219643536737352216652203594042552076342212891306307488871828608336325493425902380456059907920444874333146089511820821336381820493805884827508139284670385216859210883646905899395903248389552269693521022108788333414600892525520415015040446243034728625955450602839549916865342498620124271816463950603261860967306765284547433683615025771388238473517002607095128169139248684250689562797475429498333152093806200815777633988874956611094863589372595727514425909737430347034192242650365308644903675484034308765410356492144831651464914608958276071636861060044077935885286966988755706887584264004700038042135693184375030660641093027288941480393568734727869347684574403139689909402699681929805833389317115711191121770521200563359364676561285871027715694923721739411449853002275502799826647541544863989625561851555980480559778378038071314266839847153503919379301228726313707600037673689142815666480089071839430086978789192865661341293383278204140980914639957148358997425784485518932781873265597817842996853156871372337468231093449247795566967285646570952156256749548553152439360363775387874799330628222112813610757410955100662599109284053005998786294429339633552922339473983474821526244771866570334292825511816971708523389301756310850603697862318077471815581438952842826805058810779316051761959845238639584560014035325439467799493966519293519828263571616694051028801025862570291870863813611684094563536677198206075419398121539654731365451621126263880972277833027557765758131241838030870103660077631393892872405335334775475811658975129278808359607309992042810859554961772275708458566847137948781099543642698540920614639352657156450191473764528654731910655910844084049392793841982800061505884282360883367484337027613673281835865327620270558153139116706647594710762964075583079535355628143618762975639445582910586943963374990142127468569323647192560254440574398907772928025597939560848122256575730146770929666925072515024987263839120382444876694669613806721825483369957719799304270405689724739200506156059982659474083651378784634327132556924542151630113693892754754014184234191351397177279160720930428623326581076450308832695054625770959654704617071861140052488743640709651930453822225603521099483743736635963090978272545214045037189519705290418659191953927878234737918147466885081483103435999277214656591512540647989047458839324121070135481570558408870269324753417089217462319279160834261787429794482073932358100754600123454406254978162773060755554523825830192808339543293750546344119535499404743444425994686754173224250979901750066563639284648086506658732155197498764970914801420484432143052857580429280249252235146943769289670134717058919562362882449404088460904567476288800478978569050517935278464231485470511330432834888967217546157637504421790666115391929401833977523349619521936453772505943812322557892414131796418430363940724482579166605566155566149051416455063398553467104316174274473200353085240390716979672992586750049835158833019185879956747174142087308587077151699716308788892321400270622696114706581498839622034214607728078202240443136376883742085678960394460925289485027446983978602958674846244949286501212432873285789817860562847115121824319336841870682403902454168427159380104180853465907045775739277273497993499863557226705784308290025155326150297374764236193679620727892793580510729875566247470648580342350256590011462398790273202221029005311136812292235933738321434700221976807545710462121124001622167210848032580991487862930560074531780007279591493104988095760833714350946766252232508897885906456018929301634493099085546267210605635409659137929913459226341891540954772573689636901645538608681173780890705055931921230283302048992953849269622330667839693438416130205098257166298099120496362678627660806183988755555968078900766246662147666338849298481250315601819142424248437565167208804494087455467679041578570900763272610725405459482976841829644679745239219734697375791244077037623664958127915311555819688176817688350072154701637175622278479327090862725851670893745485967661529138500931280420365500170359052497478414853517978593318707438127511791931219412151628013928471211262496531725573584743483833805082483655431478682807880866148086115921248820133203839872571443730878537811138575400028410545259502806968563175622481936747116819147970007929334964645105373506942761441037437614420124390102933073074623019395107326556236692755131837734776618040914304357001707054317692940101063264923864082244631520520142105738541983819330333557557513439726552041491606680362096250606413350111510149969871366437884657358301867386623856638065167057551108254133060630224516276886976429984146681214254182107019851390308356372577389121169720258845936178795843297882642511701619955272615777353618499506482366615451121505640840952110514800641201294968076051187231121315740134222607320215233384283252095479000028863183374454719748162190033875711089028131507734422789352247664527223625035733137618904034028251958292024459183961774807540972129298936166954558944645276422725248931659764933202265482189324207467533493056405378836536590263194786972701094556885281899886925238095403719682347773867408695678747175876312414999681524951217506207917268410675299632677431201489427133893342641069623858765477328000861608811732278166360708865651321980258499578650326235451969137998308694434912395305971969686261165497328090560540628027150500051692451220516761041708120954581907935110337325052041563143845553198499075471725748837424664990011575011013897590165818544793095266293511159587467297749887162969403250981400070417193900081134274337571523223254839956785584183464978081214791647086002068853195541173516544706771705657660373613874594110833454899653782123108589051975270196327021485427599521776808632627655584954726726420817094858995427243861568195635971284554270248832424936516475183135613952569497855581200037728380386672058153381297668564125377343903456741794251493997911112848019341157655664712107292901788247838037006533519167411488250727465211884805067675873195921980757532321165483783070167304080993443761183815957556282662683224340976276766270739215082506608889697927067306784167158813652944333286231276454226298278744943753669051882540890328894891403888728457098956993989116970842175397489417200000785436414620721800023101050198266770452282523216858396862537278355516755110842002961220398030819439199141337623305065311898238973092331709144334420214266882811245568483816080549084422535619874517137260640970133709181944251088512866532283109384699453176318930351439224562464624475312790706544882620146449799997106920311916495025515288500325367322399010264617414953204153008109567165340489439854856220968322113464653322929383930421164007361220347738740109679020048221464018769143491520285251311417478173718212424516951126631651982298442140232419603126037777416533066442795904174975807367493337157215979452383566109096823915203648011136731538234293556523483095782524210060564441615182040127347304663551148882674154419583342489161953129975335632367757181311854849546149895480485872482317999813626066334773530127125859746750635965471966540387212491049802502302711566401982514905423066717872734565768975668892800527119071413013255814965711197078480302687693119165016642871840987012942163327085968785383912014864924254260820721937368124579389135578019000428346917439937094765976675854742187655655240773084010111763825785386039875187939109338215834246183098286732380057134654850801899369820074311434179467956456710460714379056703861221261756548721226900769954837856164959370518498399479660328104342221655444098024457712621521056318238601615622031117762214127001874470249030495992582506454500359026523317539474225852950087314269730772901203395328827528321418354648310115488449070809984735076176519481084548384623106477809283337485152552119550648379693335556274148583878151723058039035445823175359175845130258570500174141984440220892786134444961339007585001936779790333353734269596058592846456440455859142715439991110866482242879981024939692368774687397796280377798115920719946118893823562614470084417283533810781949968060817765011247614087688499152980618576327551113182194259784565995641543288601018648616300571949798335238106631554995826179748805046324068462484039661318162866774713489240447541484228974144028995689891627465961491013774065945672498360341634385739876182307783814274219083612191714591916839900840003672285266567047521231729813889841790355758943812703207040098307298654487871913909955768222415659517685832053002945358375534971520988043329594391220765028965287615727959111937301441651225624674510385176028385296931005202224355409775264718150177234478882242003433036291941001633896333503303854446896189632489200503874818106819338713076925023593604190417866115970716368771864546843326893451095427759425249391462789556470707392998281237808909973325456601246148922241886000935979799587068369360141281583591834107382536789943674838630190930324052242989096598106065939958066324071990649456673019851527822197048774478977807206726001612496047322472654082813096479581917121197386288432193733389275678420231499040391323058173212912524929042729148773218222420071506354483732864012015298816537658962821673659635515463872406734833551517502416194725960384400940534083615829957932022987472468207235078100621910652188747261295421424887943247563452541167341617603651714081701973406603451672292108964823938963592307975380555051364712473013080150984974565804758949090626214376884771809422823488522335169530943769346718922291109961048411105476836939324652912268795827110344332572305539746516259286948300988173849819901885391189411870701992953140092792131455710055945072015744179037806253920876036018794663409481764364626415607439009845751678325635324829491303576944221164896820469151000046020881085360489983539255979447170064812938060043466387392064559089180989039329724163159092039640172438262208398563340960972793487108951753677131065510729882202959739590538014314384366495204881007124617870661155249337535951536655396149297886137632971990052078004001611405055004038311429736786563358590384313388135075969175860650290768294889356576144329728800370898772426384643608889169359030876931276229127431362540958426448666731709871677340473791295839635341945889546808349290205132585444848437035984927064264551093619997223164087403844686018250133474615048705814541914429384262560111287373348034511590773534501437651548579804859203939416823708824295743315152352839160939629749696156977946050184637924254397741624986594529265704564335866509649557749298230729752088081722012425837420324687519200556466009059548621436911147062868573376921918455958311826619484697746682914563159707436013219227160856836430212016515280424436236890113233645924381528695413142284419882679205897371143782038426239707945047354236432261215866563477993452013247501779709896873651178351880585985306287229450670000460109086232979062290794343933396607246438248752501104513876650257367477493112578922559604615035785605088239178797678287238532914420151317841309596399773062760477078437136216292096120608738282747743734367341151968748413942732451495342157592529450364615323662200871983200153103816380102638672842222337777863077063270574292564290024210930696513306501927301930672541373632431224806343431838416678906528265268963653779067344432192448428147147372562590686883209086552919262603350637110596771519663997822315869441595509435555519338198898951852985188883091970133826077011117244229761963681713019676087650363147500368447517443407789661478872790702127999297382175249288896422533615792463927281358949776983892997783021136291426943323099336991720764409370378386911116966867428250072477403794168542991097209204540324725932268667939095690424140163322216281480872101857958025642889029656759765744316713386394750182190775909508075164580922781071709151130652091927723484331073943559751543685366404136735397100588178402629432931983568157450084748609778838669556969084248198310343944562803396973836279417810686164906174775733821191798010573885965230996732292413879927230556759609110062367756897056436836244182213665014466243477162367564272716529338877205019082631401863187581964315756575075542262258613596998622100439335470961828399324538957824474294860289815233430898055346476040500251773909672158171845664840147982667164446322187635010599960031277063583601559510615291374607691796899162457965851528562024272413759265780285101444862989765244343038709399381722593988532070218231733937773590273038549433012293231000522159192017156180657846788172381789880467847948558811741937211716605713488024040464766902922017175957405564235342249013710394085271916547013478378370868378402377077410806525296059798153694342886962022029166788616999293744025122296522690794498892558496821939669377522883825875729606982451002940199220487411622604328931103309752272391315703212725110288830649640109197620612887887977894802277674412851138223510741094104312721200777591932863585334551372972791539832134585654925221544821401385592084687695623509373442413768951029003004656092092774038744017188945994289384374799829683137819354343280682764339993180717778709412638277937287820100379390844124123038751207281001964663166524632086252666903033021574341936142756619350916342452013964057156503205331498605273609048401290056581052348639532335159642953667206485382633682519952140630707355523571660491027553285036484962962156081886369026305190846070380008128497917861002434881437363172931819279802554981757642635656579526928167778323178355368421835384431108752366432252869752358023343300370328274511861522594622727713922489431150239603012567109332103465736111400106931230761202808295412907984355029025675417229125333646737445185078452862317603644669426588906101054318045027743288021886971438737077545653085464251836891873213020277958105689773236395356580041158589807066362617066466039144684866151953129040162207573056846909890392506590681806932533113884102822277295850290206835335265560284204030252651401910476897957910293744021362244214705827300977935097272393293289360670785405737510406174815620274042037846783427521645201702352764132771353419575341076908579168114341011153925761008122972586499782944508577815214550967511013206164048549637308992403581376376563021191588983064801306122090706038184247424712246216425445992959825458799451234907999814740216064827809000239651681078768623889599437595473368166057490431334277000367361557711009034851059837754849259144505120710107069928796003207169250013856548218561212856466146735771626318375039691155039063758249492232846747046725477591546000937842397702975201086854871404964766615701024567619354240588066375659028852045222099156040195118631073341857118198873443801655155360402282119065206791137626699348670055431760710507304670385612552132517238175331245639528648486200560472912653419935180428029439564092605005993883569495724218935109354080098803166527998503069691265222661393236371625814962533181613302769788415693442544229502548319828939642686107135625160321051004670866632901458468961836826799166023922439130636986063022551987349426554918040245082328522185045702453448618523035084281431917592967740514637414915352529975318289694749169414054930146579761617951547628236881184484239101076464443995697108371604479768600956651282176183172459429634583939936875939573873094164201558927214758233264820195054898111250490956875926547743795436547263437339690250037954441030058309165556222753512989876073677449239469469201170758234275019468920257744350538817652905263631464388359719181291155897141953719843908137297231479728282617503641638492105211371976879387127513972417443490385942772931559566758678724355970257918635325688879300889504790043752706819920167897153836487992598739720192656674054547515676912751120244437269686164667219323935518427548890366276346697761324461204041296155629569826423976135542853725427965645913995222615839195326964762393794340355457817028757226437071284132314085129545577452821534676677172692217799255744936528362389969340844662819908608698557716810462623716264843553929873031217151900167092066528600827609838592946829773179751628088288661249715352375297582983953206763445852129537805600902737896106179949833367744954006929767964337198581083716748630178603771722679718411595690253384563401372746464118405213546255248855876467666816424160900852525304485163099211186189410769847511250296537247273532928199164512043416078613365803280630786032589434338969493330871086649808025842704117598497223625632640356848492664958243402843373812727121469090504029018177135417192369511324242951659790037495701244648978245909237761424923136268550102268289491117801821718116413066841754999170795001567953017611602363110646306533979361699209759933757628712878653124769420176822564796030891007515456188708273026875748907658174107066128535126359078669415996897519434029823072811344668958606549439105381610503154363097809538300041296479005682408455275953415806599421360457455246230091073419492290676287748884303217365544467952251516187610711824731378776795528894488502918938103078791886316979840355279130936049427687072135181634147910968030620404291966311380669282726619486834463392952285949912996505268265732714824420252398214593140302236261785483148487714846104535917652074610516718272295901608790867293370210905415826276351431712748658844862188139826707302327360732097909197754679628384961536798363164100621053180528685227980912426638649017648681992350109799620176034693320847881009997117358338731355084999540061304560489521231861899328545612518820919115920615501989424824140450913204252825226332207181891009003283007453912203541457658935223521209464955217220458447846327682307493441532289883125355212322045768756010919695675585416542705615059611461075003670938392217348946607954061199472361265883083605484173574688624169221626568955515655162850063179825508837433227362719227911104666809429644619402399048851481984499271687224673869494971089188886141404891759461962066645998978669265324047312339340177004056487306378136405521325579708388741039129002089246030701274844613144900923538335227402694325743545511653192024986969717026399627441736645511743969223616975308176351221957684642540610021062228266768895027536666284481536650265303610007820775066168661986628731436057447432667810981365381031754076265566736475109036032622990691739185245941668168274688617858239784826356856377257339960184189746667063342149627050008188127536864394039531795468212885782128912858222233551282817960991471866972452732381043428693913106083938573044660481012931721284769405848759021179556969155879188587616687407584579911031963532588065618784758501063091266516544133775121385783854452438935794405092677882998117899558025457845884234680116951459472440368794154003384099111124413146194222259282242688905284126471076364946942845213971590549370392766442871058447713611028808801942583375186689494936892020693046778423466405776975844283932762979735054686489904296803748763570743676814653709518810248985067480669185829963626525497610631861310639030120549357726167636633754866771509696864604604587923029708597942571749845068721498490572161964561602933101382370196087358166470617698701135906564186184516430708977927200705564120994129052960688702744143198324997082612171490740137718224286809154280452670893175657366905476145988673305556049518922753417934912466413687200606665642897463231746894370381326936318599750913435073134452804362944841773251172685586847291229492738445425559898469559267105393888223615025573611590604009886378250079416237890669793341659305707350443490749257561241295011270470416198665387787062672348217283374597590205450647126466380029123942890354382149870204812423793991113333403364039512624277041849710161798797731448959532456213324710274748326300023608269198043773808143104525663961725976672573096144686129660819790665515848413066638973098604219994349179076537735524478365045116544980056540802510069717820562042658433110365891366643054349534880610552906393663016152422920354844874888803159001952535826362286269324507674877136582502079050996146843236227090039580231219502688384740032762281732862497750146711818640573284216442555039944033105486621055650752921253691131684950964271155852875207300981396986586685644150110991310485012973604066605721267953472748894749229221184630635233675112221277931055491613354698064205241373175441509931991570553460782290649654041995221503901675020672356955194267697153281855870238682270592555650906967143971506227287272867379189687668170706203518089428055797540726334626334932092309814711724319940130060304464112553107380385310272500277358138194454551229193592031796805474518363531230456293588243501982364373700453052807458809818219107327364986658961246248592146559602497944903207872207162426945648480460151315226620652049980052823207544469300358404807857159662498821768269562154805104478514544025564847791917765691443915983142261528717397598697725346976344209067829838403234622884101807544117279138696672211323932983521068308930742889760409251763692615299577286441648715753367824104844087299094648296367330996084604977601569678565113849419587481978550073365165025216541874288662188990959487076286678630185022111759026749581204639213858675513768046946088901869977792524388854485724368385149522540155628510065839952961535359443916423348162759955113389538620847743645736700830127177127081530374115381363924863648816678001224611409236231171742330655410005373722389056630088036521770301882023661472804509843338428304521526056758348459319035639917631490296027020738642397201598468773641014681358237976120783789365884937016969542912224925932324677087161606017872909649461198765527910993675302966361142446345257550421277077777034862205808693766107076874725215954603885105577191697971966689144713547141974097658391002942119217288287812421716900007290192651707308099933615061594529936794836606879245854842629134498148159296822303123056593891247287159332448699553218351906831286066532420103895749378484652809519303035782009314167587921884800148379715171416167658585705017915647424158121160858623633774845642463497843082604147759839251888606929252369055882459903880368902950758237940154121723698400810320271357393194782811878367520569657027805293179508646119491822075262917718743203859072762180817674747346035454171484383815366711153028167131381009979695083406701759568778688595453317084714987247282680019739259347380500503900152917841527028065057344118654625668349893953783869872029865236459310555861885257847688763349975349732350762783998681631318012549252537338178047911822398369414250430226722947809938855867547733988761082538712463729481658218198267303883479469182739188424920005825479454706814094256188790349484769411074401926490310397406638777788487841013695989368853289109900765836151281142025151279828727299189903000976126231911751616850241780715271898244179843581486632163841849325431118693332703994214438331449769879370269807348136172726697354063776499236339137512612130702715643654026506249506964639991296052445349749254465349062981569630405445818143948175414484382104936212638595076330741024719776299821462037907759659965173492610584740626438478563799088471964670013542534611270822253366906852899385627528426930593862726091585713246858674277514025634776015086959934145075981097189739493852379550550583364352588979041417035824965627272203295192984541876151189521841386209330193385480605887104350756038984265236079486872420217460675907240742868999906647025094531925318150219115010041378164249175805446946365763480672095648114807901427405428583647613877438326876430675437331990438531421062807651276698241075946400625747400501700419169092493175598654996875268231697593242974055650402242239697314913843469075058128072600078659864828213410161319123818725003063205978045627475941750945725095668248476597947945841814222412122891926419004397685064583567259087287498686512984018700525938030496005829032598246855288633999677263510559388973439893510643091639789725402780037306120805686683745038399612520150655060096250310438415532432129098186215737901847497440362428773523798750024959119125150022224139945791721926159672722175935672045530341698890547833534494879120126528026009946879294677384360332722625833841572202022314792271092676840300540204716076413482119073762056378305926108756046213966783781250512217267119689722184021862458950037796593163587267230206493043673771966533468819997785749879380434154017381842464344506533071606474380144885747170287778034002959614915188773326433386840108881469117289941003696669493889818380273295072005726473057797009916776635654593064087516416082980531653194857602319909016334570330007924771299933981885619629904190561134992312628636440175521332596517549701203277762537477688821861710143891938079253419242414646533250482353541165416125932069204092073021597435574766561046974188106367237345453433457026583333321590798643967749333299196882070431393487678162436681598508349269502279604779446079595915931904671770963810334799716881053505082706928609110025429674823621131148714412118832975959660116128350202099441714038862635902521747038855121263046987772333705702079108345639338258461067710048283708546289970007394174345264845902022655329087975199868655991899782238066503029701734594785035360437831888574694936029322473200430398444680721617581311439103114085877709232590264924809132235439226515675783749625501768677698424103232912400503802339704038519849452379440928766495324261034992067896046802448125988525847435847892178350701868001385356809103224115696957945930804204458741023953839040297237716323307636843064607806919874229152806627925626395845290008160355723164926203953225717748634737844819353115802746299005480794739141857077999289360191995247913114779630626769922243539850544308079433147142981650280096409727980887228531470545642431405684652948315450542994602246022099517962246609210952364431822450536892070350582090308585531150815132185041970222768589758377211267666248583115595599431944373934131446932700918067459420507150148791120477207082004275425706096367026687091489197082783101097793540406540573404877119747421610585399288381297064423674768521710642594114105758199570280462920719142849453574482875454862071971963543737805449808834146414293214668249439060443815835110515650592282392674738018942183050766430340385901483276954388013898462519711851951366794839852695583338482318808625005011592844424730935942029409010580681595068729082488082395166784788822709574938288086415514308641925298596224629238779379400992570662713114249972898549505347729181175048004020299754917072395068021636414068021417280698188954721399518100969625265170262205915513849538915177556664975874048396696446522121235773768280733410803967437542466324602235728823819916990813724129551173660607420500708325900228299693281371535260945002354963530895725243845553003124515047083388598300306168147312178079757747387285225459331511272668194469306375459588238410325452422340386727861374612798884415001933583782485721886944123525098994972451577365007075346395471607724368102541776132535268337911871781936195977686103545111173541266968405122280737108993779368789475611375649309453131390463597426110334619750934184640639050769424301423019045084949446007509265026668651865262176068538371954117708061530016905040215369876506894801583359618620202354515936183534452107453814733332898129153603393311705818747255913805588611025511571807218678787772003056471160375089681958837742323193946063128431691694170588005031147522788065518823072950262152707337457437558998052728027558630524219892800590977382646817767441852576974239171246672966663662659441187990128606538187411115750642114596584972912106759240558785931722691436135106169110003698158903990521330831028723953346401536031759908962507656792652615181983951640252736382686923492350321402983114001786323231826865146805147898929583347442781910684488910321647205581898655517122390841721081267580026728844642220140565157796170322103916168500164518168377102971647569333158250822327222531718380701992508970826427722166319815079417562908326892056306215011074412459992158676445383309332527939210174223607785205996821175863579383331974138190649494140573196812233198600796211112293430822370575853570613265528459525024984808124222224566065722583038666031390878305140752949831799171138914403635471193307966619501584081855267417483398680829838701859314308678823859303630315520537359971569008758201735391112227435113793681114177238177893049560272035951158634712455763846282236331548988328765413943605412258334769522202873631397460924371478587766825776292754712311076300337666822883704340419272498851525231304944950756111925588574125726899792613115402025328425154074171254752583335444547194865776820034083726603333082693672172423322653442661102044637953981463882938781678941226272834561746172774286468914784679141664117994581473957475392114324384039143362889382212588143035765800580561087011738571898724553977072777010831762598229112817376601020068676874816772614715720153049728937018753610169517216807758781781897936681778951802180144637779565447274246535848013427406579909677588403846314014181776026608929585126699868516447978764738702505707303462460030738669261411916402713105033919246504972099428978335535125017295511963377046113541063382293385922947723048173258707659477890664176593978774323383996730607068751394843370887533003559656333217411749462579408228819834403524411985864916604131722798834158410832039468143460057077812590903268502788969432475125947564487702861508918739411448238820160397444356314970867609414683193067383569840914752252215091856905256279813881074751478098493162342438712053308997931467949852937705144431009751603654229883783391078735683894144757305584989851626407410671241019495466513042995450626119286373918341211722751258257180569043697612218932938590665732832295898041057479750436924660398270668851767789470771566023120268411308243807787577480284798760671819255299322466513311394119163589549438338912330848766114768941499559470001094112983759698947383043404952465091258851850697335011955804500535348267320129915744067421505324790745085724443324541863386919455200996550439501530556224821330035905577753841381649117465326927957189587649322694169368791952126835739288665025226587780667469861114517992081875788721992478082092323194888914205574242113539853226065586622137058809231302321675762186987718635995820814945042716113705872048648349184829581596840691602798011364712390246785118840163608245399696668060486406394341888004071834781935007968483546557095512766972376909303492096847106906304819631469631541233419548795292721538820954250222068303247740038166290705139074871133159247488018726474003102231827212696949506318653243461460761202458034772878793200691967352523396824698569389150977710529124192859123379442431536294833086312228079887838078760444483063110636145903207955045936784986666663058885240029248911104379029145823394754675216801438217543930113900817541009446965731935570331447883734724615383454674101518096123110305249701271762376022058702967458796425275102929136758487998715937420045598348318816365010515228131191859775287399006880249914046565854511972111972851181198027605767877758247403784413213670271475913334929691936407015877936748050496068657765128209352054885355286428651507641948588682980145430240665090659813673541061308825489252586943370142029791546213817222260392944854318029707013230613819447339778150959311316712344822738876483619333583678866777458492054011765172729586970082554032138649005126699908918224833604558934144433346838733094041402376317497320639696563038288800133301156444627379647512330809434443854572171685335786788005488801618098261031720588049044977435161447457854526294753376198615716982977478868303083327234618167061235682012499275169080065080685802448868613844802868835413582439103678790346452618729989914232642480864009129298859434938237431354548846089529442485383276954521494089767244549956305942472648847306453618080125050097617268722811294566392496241449517819365907513784722183847124428946797840044052600724936352413607969523268217515125635568786131658530049654633483280022107124998233369707854230316009616696372858975329214137743218583912789120017371107112447806069853579439363317367241119949676885533857029879363374412848881468601638844249929728168808237605165387026676229407009957432824766057645526629167361529776573521651246413321578101307595267882348461341918027344910183891865054431396336500221178669281992824702689252516391806848009784537835020693029964988913606303287743160227948092067233525651144543861298361008189277906824064569196428944710637625626791208927510083314387366348875508212074440553324992005322713391102349154336406469125715746143715567314022133053054706841061232911491187214318293291147739891069863641096686158003435256288550478003499022336255570434532584948647174476107640678216995264326769682871226762951303338432843288886295532269220217827941900046253725517588913916556405063963782196379830809922341896610152256605082912954338428959593180514193181545113481242385543511914179657181120512709824718127016835025533382418446038995116505750069452778681056262412818257616836507894549983092624618701551772636646649388844427787286776480488791511697750675251677003242276257271706830721443426016651192548019913549391741348039111415984064001225688396919445301101191076043034716999337199825545302478947041991344468774632212858102309969658702876493226032648577984551297511028990795863287531144379061598417148942163050454148672303919179636481589243144044706881818855648441209992330772224290184613237226121689352231429144679358685689399768363893304786942615326612609696848884750832171354642420774005652646625222738526857071921674754837819322905880437172565658843526308679478512934425173620499774283214524935268346579704664045738574103046418650180647002405111166915822018218109036475852177903680476075858574040826745843948032192352023808346697143896738325439047554091591538620894906464979438775832813477313730476140439123584450581945278289099514574416458569321884371268951365580781680128075785662302608811395376717714083191944902899700377198526330592773650439484444601020260450416772741811120565084292932149207376231852266449463755286590724488468721199586745672608699408249436441745563036516039502788203225499969547150901414652509505157031415208547969248292787001591755769471867364451038193466870152307174977664272761248258291309536955562711858541347514455195158722010143809305027346908120079415528441008198828226211506352225970579283972762796282908286503373029630430642532103342884839313344881278283665911862406462717856891210054565863762426487494018795782475204653668564936117058109302459745298308531004468319796667725450437218755458332599542259211061700050433497819758401401233365568897395865003986946155518730941313917544637348004993455065183207381727970256152984870236284384139986598030648941830063151044368480800724673709083101492713072302613439843102521499159293194817226423625783303571510324971518432120505054468080124593658743794695165199008163669856886440451812104658599622126970011011178028981416487299940550804342215875679521584716064362428874521316053089365854442637999304781232313162765372710367623717057985163851433192802736108009738942338491323582197872809582283272519121599684600793315848313437639922444499776065265358516083601688800652975337572687891779785815714406184469263070542045956763209590711019454875308792274944035650276763423533858890301824324286156560088712806683320246406376398981750540442717603342631586467445085651106800380725203015395785515843177675711205287592286663100650941128730207826919885047600495751064705631005810279357249557440864396957086948259318838840050331188034055203236108568927807171634661268936223271920421385502703496264438025574401079076447741388418757634499887542886791430586795432721910724683848314913400271808630197392380320926554727597289446030057388263506799663863567462949856693820995190962033218638177798439386746024359163358926084079009093262903934513887754873986620747211199022638654568950916518249379395381097903243333201922101050635170486792380513990710026236986455696712337793504877847503351656131787810314682472267996603073277174193660312910423436357052570161154399273848063750373679849675392236490748282976216217578280658826656706281050577016687233842640992079582533725383142128422984023924644801344910064198891832581160855142180218073653729832873878609269942523046380122066202031192823425788046467654137363293946447142625565903626485508276890126815714784835132514421365128328521975309994682975542586859921833591630792095659733487896972838516065014797209755128922574294644751584150746595620071066767014906233876493747164737054654165212371965525580504535592874376087063340426395494779933568564406297429784464447984439061023605269028078321823120639606794815590942767370039734622187059545334154219810167010949350286298088581078183622070564112841311097452939397734773483630844056053399556295358299069007440511677511872988972821325306432264067490861390465389766989705494418748748513963318192413428042793813831270958367433516781993490279067518802850826721488421699534722295831296612761565990916507952844201719504892769903769680450781403047525852228957289875235389379490507718415510074165700840007618543517397365220497994113326106510739031108682426475130157213222552037870850849555102644098193274205756270590402008221724670557525256315360183932244020148671762549491317512226173278098939113486597915891753886313263506575740312483704131947678177393525808929326493869919032518743892717539743131327345900262302438456206272714466957168687065856343196849722356686222487379768643600680465177505081282313363143052638870318839565569967613965440087844777745049455348915136032175098225873455840665292247885205356743079619174543080426304892243930466766937392938448600455706307889139468987849911581152046322817052931595011314959921460753469537962806807876880200636551117498576045471330520401870140199177191134419085687517054556841292701985579194515092509454637281026695143901458249059000963710783614246695579168032962143886588747249094080772165204781653479362364262696557409414115409402658239806773624758095922552456438260133758569024423484805107258091700538481783241752901863295483656095446823457161453194230415835081729614715152185890715656886822747080151692320200557170812563201038607921597413898492210716683302137200116336700548362553843151461874498164782101093716709590276497512017121880331319558301303601849816829273009483268435462519093840475989124835291626065072339285417810004354682835709954137341504423490209625334394544405457634043272521729783588842039035160239270020857872325899915701748888166867043313591248310769193184572096463880849029456219631359936335418269837947811140796254771220298571776014778594548560874132202031021165163100167801615669516788170068510344016854834662519551901044124734487561770155536227327140815707422254117180813236238987862243895862537606503729563673489954561288952201381639325170450607633889615051484231765364171191471265817263661792942194913047079659907842750849958476518814608728321130362900605002221940787518245063871020782571973162253071427150486180459172737949991574679600623278698331649609493334266704145583280225647480006878214118610496975759961713866462126287241121373929449208198336465548329199453047136806224188334729198985049580959520609907317153232191552539713218887193500427425012072940281259726962710752095520735326434423385614549102993728811053422036234489889510869931619591230651537249782609634441213282532453264736236303100157550455364350145070322148569739114318774646570727959427752626608125167402480855552508016945377419045106233191502956218349043282144336476976400974241499395223068537020150652737363674011856693287721008564541883284420562864095014028836050815903899836916599188613429283574829758896279682999753762627036656816571981106714507988934056583453527681400617932730215403269494045164459539776327097521354402671375354249045082058193865390611082508130291871693868625787011539293253474220174061020154985812236918385770844579937313037868807295003848725960220962411276832692677749005244128912256121243568606825133736638593179872756173104935890575917016644323455839920928050389877091546223794473021522651396956278136439951057521221560774961734129430037924442120120508616644145178645487947474523199999137240225089737443715926770851212588668054658912713603808064223967409722828187227000076631697903888980427447168791926227275010606303727722394996511072436852437248728497081321702846200202530364939062547953514826605706746628583909636158012461412680948981467719893859474207983729005180661475018535859816902398996371512365498953598336297985266835449672843539277430805526966342404030240881072846552734018552345050618601065731001877428017106653320584948707330257396539788511562090245010254036966259475124691439122767866512532598615219204004018376824769726420390557897595259538624968502431731090917976228117699891027652656377869808779256064936280583811807886707361988599683803550328120951461755453948908551882154972241035239776237349829006982321037168212960787788283274709633408875444740551917747993213413220185856201029750581012318572191955427544631823857429393436665091859089893724344728855235772692805935862864443516994443019404873972578997818565939650314772675604691277161590547060804494873210184966532729190232256508882392904467892077926289146275941249699999085985356670978700960897481829265619975387657147539316064871508848480032158627710242301796557561820673962507642817371920339122304788238465931748014017178332165570705212165459092351845585951017464423163674964007835986779935867772041731569791093368244662460830479517237889454773873305753442141144585898399645218786240990354279175799612945558562786328988039341675245751751261190295081375808509403312720542257674442344199791647936740901834770108383127206821004517178370592181670681611516897362551742825398965652585220260976893716864207895385700007224879310615916049991066816261595973717264158817424089007006691167842559835517844489315940316764420396051980970605437344606231967415281101111774506854253952595344427989091208874441838919442454224295595433771101467830128748282516129025972428209392116756533559532839801502930820009923121846791235897173475165381663833752942699611232861344195996231572582835010913769503287489334181197934141951934207224030192467850092940617526813844946837240772472946930651874186336894531461523668296714216189393124316184519553683253072469689015213155620889725331302673132023832302094605365649022122138520866951882004182623365737789389150876975946197159379714820490066562228623065987172667330696237982682920936398622166897452364475152022536189200739249995550502127432379715296971964207215382508668019274373346798248479840686256794131275978162755944847080377020546592096816219201311587438206336431562147044136459134171037005390376786849273564428655346926298053809461984154093061745942806553250509722911697198721641995234390552876829704934844331033017556533752944251096097314063647330281579096227232120059881726133268497252236040308865173627007620138299492495681562826381470975027759241013935131779248426075610626559049019954811295685545343801943330450454081949013266850653791265602396302105225498247570501753701467949384905020840116749052584576479425939807802128205973020779419870130783521336420045754289638653588543823400546938260336446853956103738085263730911892500169361158693914708473519938822748326303807371618569473382662330242337618625227194521518596614968371564374014021286453597698160826748085822217419471956334740645694124255174287653451681424217987029259781113990109314475964579747648345048088543342709665224477289885478295857675586206793230425448642684431526715549819150431339285072446310242278645017524007255812558826598751605182834398566621716165333103250267668535672872301303697181711769662486035634423354179894820424328982795617911029419347805566761765696142535215584443317600305065244579456791475426928367070683523877440958983556531792159938552396206336340578708825090782603779982184848827108760299969949364861565401777514068342501604527707946266191325908617742424924893968150289793705982008602926977801138620739830458750265163485489246313465951562035003443646202405940597882607087580455308576978824127611189239517704449476510584295455151255121324913436670047311035010881647843434205317500371284045411740912900151049667180347561531589093880798613346428910210542572551926616133619307883127959903094566096469358296041929213494424889981909708139474554904731675283767370692960406106717417226638959025646349982849516562114548688507139265153858834875987801511812536138735464768731065954088091666265138206493550205928792362192881566483248332421703058463148236542449434322238512254556373729136217254785146739396878970852574090784506783573482520869233881546077396920046891451533185841109853078844570021284483642637343863123151368772343421462886494080775431497137609743485962774200734595137067830536202221533789471811370429806140822260616570826734619873447534262299405020683332112870416864878439944299216178245423871265729216127560024412263988237322877116473805109660017433677927192821257986990406825318934886144414746592188211795337359906170313735011531547884123308899968782403218767632090923531090364348800820639108030775220603975911601911083792617531586670670471368154576497504460707900717975608992463812693724502003840067087286825081698951928011671494795210632503260058903342515017198932986138078595822112406244926588133574836536008153886515153973416116333563103650423961310528284029687700429474787652004056735550199252932150910965581827548950827067012718066103166342974757192232476276382941042916973297512651257128059328865601264952732700964465571989893424713037233433681944605368135728267666689717737262148460684373853507174466321081545456815172825318590836623319920865491277000012438483380130068160443510720603207018660778655287078821300410080247719673352261145705980487960331601190907970308220637701112114053724300216420633065152587429474184164122167037149734748488399629590646514469040991936957241227310837766901858155015286910056157410173379222568776534200999274906020573707693650450580269156466387660395182724900255308512093072999823753027582671389669332440812548397311184609082951915578364942083458473649185592407273791617429942923774259007045885325482339871059064858344137033848165128036124004247255775722491341492751675404732634369200534519183764995784826672126724610409516050682970535003926791153953819079235907313260157586539992481032643895390372074728423236826225082946303281130488413339749817244807066644315524706004959247790657134449531891529440123008168917328563887374580526806137936122438597532380425621355374922298929979317608104791350226457013999289060528512896949572059984876652667617006149714589864058690283805145764054669861018386142337032289052640196553048303355829955088085884375137137980368315401993289397094767933854234953432327869618418485353233505453235447540307746342731780977077746007359383685257182051800392690146905052178232994353306973848579809594456022976326175006345244406659472631896212146819548431725496019556876417121478828283024409282608740295405881494618357477036936347438820378768457693142062505634759537500485705003443587533529189072430597423103162289539326838456106526142688175389024623611807269574628365633800538154130380017230225790663295801228476394492488927054056552303337447601481315781575408773295076837801605730335441274325997958769542039920650503557873455659490223565086837427108394536990023031902562688072440558071032734167116707768093052269973421690710011122838631880693105536081178519536982431812654660159028597948748387686215467808034297112530383367473416082388994971183108999755384016610605303094863665762261818613855537101794404164044237615294729820651117958819085132538613736504989583979584521277167643521787961575768249985613684417471206138703182464830246578292179323928369283922653881515205139526752651531188989488225317148252780392007523914828656426948905439031515122010609540402354174032091058982831479338274755594682112218364195015718915026779250194992000768338709776653190051124327914912632334849353472741715137061659342572614238083587585129971830002905687489134985640483990975458744411899992756823296216690712385525194112742476277183722620611528064535812166528505639985256649790982626253152825920108275749307299144901680958487074543275489603976545342484329958519365720697642756788503690047161451806512689848930628637126735975380323881498435352492295240076152146969169764051226115036655908142489401219516468594684562653606349614273343328441863778260994311314035515901111022052237113421546180211014620237620547607241147318902652438226419991749450896542819564290458962318650274818159875976077487753827647263271440484907796462442442664265337498792558040839632626769919645601921584526137491121212820250863114184886542102059217518707144442445477125054964259510999790346323849333879096218064512642198105637673915082507759358239539838148739648211251915714614469272894100760351554559392428815800367038162798322864147583350552189876252917515299770088353190725298611493352367567391669157357456312829194866699928655688537733486379672260973104048302125493156204347464355901376344565539856610889874619811550151650600655013586400091935873267545519477775320814271944935320765300140452360969790369441501055240523410172718473308066969024861271378608552846236895170811205264803611080879879476470633277811092004403755550805964535949536274815944804835613721887061412095740693191655790653714707879325091589666200270752333281352915055284206898994359862733369394882797830394644009765268903709408295506928288072833695227831104851355771853178457827995761019411060855555874166409336008958319490098733971005944662421898789213119539108364076399133477419557541621264909695345404804238919241734967837408188796311692956532496321905309825800222106413651050644161351662306118011586054898646264460263189878624835641771801097422332772379227302722932428231420498855036857873275187055835779360959751357667810746572204110969988495809429409190769102968173856197804222177386587570652593490366830351238910238723702580852938760675851602703509706372014385968455769968881734872228365056506270555832559739387389419720654482633661527267567097017440179081856042995678612542154770457417966317078561661202280772119304111068460787758847894645666619700375651870654599547004139861584290702464979735919542306822593261848036314050091153445373507146785127011075877893960945846477841208074793340140829115025591871015239055711985235174322862532882282065099733725062482483515232539857288796524963500921330027273807006860544402343212402983290263036725770259687162117976208053620823160471623479012298017553919407115748177876056742513056892439420054964005824691341067449613989414375947954576228193668623023290460924840744800865310720399252465756242592530273656204368092667338889326667528235156212915084867037630474027767427737761738306156704369993054642953456211091792704230794657127113209915828995663076422938948609030756328446192282093191982089898702168137973305609668279378829006065594957189831666058407040072271453869216918893747526661856796469636919129685567928749079094825640502540731790708706800528661080450342968153475658030627721270374225382629752682954537359279416770089807223307081608137848495207613854626038437228841433115510860500984893938401752363443052901468459740676672277636533377908849100197862045678179770462516818609015536935469083094744720149173581263938681720483403804224589917925279077857482038701038622496147263655378889409969764569836280697673687909847969558284360899542855941093414249404573790591998942341024917254176702112866119187556965506722770173238606476885331161121116817787334884957613086180794071975739937044324217290319401898408591789905482363515609135180980438329195236894000553360708052326439541908910657045632545321642361108994878479986779407061573298266212029953953208411225124232247656290490493674320467234969103505315890310185563471111142952756870131141940248371458114518587123661859997049823198691076435857788917536088518365576998660017342209318374298043369687382926154124032653136830332514709625871391630117754045182931935052597295831402850233375817399598286043505360877117204576568112528073382923976128276144379101682225323996863634223041194085072301486205361589683592682575526940889009779204079700256218554184040900976263358810932580087354162874918969930311454963175973636664382144540749911617218566192375755823246139184099624566925037423205590541113034138771128319611102433622244529980141457879103286771760379888658038478220044216411109955532022863556625013152153062826501932983393632490377240771777573263663197642588836411458150702916666564991096153530080565323076301637584952289474070985892664891652305774888581030575675265630637021265627929265561197280394410288874848320357793751234550733882792827785405303092874596491837163347662701672205756649697094347897974021712559461450452777717296476088848351557991200546096453448742367870287984126934849459415582099862162044360801994014123449992968020626680736299603172726860415942478220245097019937257027831704017907636305895543674192038519973567832058942905631253692164210838040056770136079389554873694217221240353444408415066666115379902399559940419261824470103918235817745524290515334629787197284255611587875688372407551972881426213741489054204960919203103197511807782442182299686953609981642943273060143107119588880396103387633777342800612130843491683213310726223479857793837487384340587552646578951327683149561781521541033034470244579859587336887130501007954366344065709545928209321603881081059307115286740838542134308873865842369643433168156209348542601408419416468176204451702868720578318745256934146196945172301053757089741605201454254797531212407854301592851373070317053319531319560151507027037444964117783865363196185557980758078952683850122863761278917423920826360409215968564333265849100580408136312594668269607072830694008092895607191192924234465434188568940303210644220739364602072941277903050090972986569042269184107217708531606098093857446494051805518203917233513237557632043085664212629310422411091830083468411269550722496344829211927668630654972211712534108513980637762768048640887269123543911210595331179205033904259327690678391797910424163695455487593979891419460953513587060092432804151306339447950158536922282915789766757829379499991153367354846580428889465097945166857720046668122415610303036135135265602281979223312860619986365429589251061883548649880581344506281103825673304582825798545266023281618955336964156873311423949172694287916717210193439250643092638609516201372084639690165344991199258199041883762761567987371957035458086052375809087608401127244961069573267701124312836345261422130918187092970978776221080237948715100136444915151130842699841051601914734023157622428312549386287693426642130395323233626536027660278509578732020026046504605844299592424920855291432364990235185698528698678451411344470731171296326983899386543151469577166536143153614418485038807085581678916406222910704255405625755321421329610839374745659477324214133328825116545711258198240017485727816717499845987176512961758335370107835750391947516053357180194511303867806400703530412627799541353237059664375494882398313512014897398685765016543809291592561768838912359583357306504096983777919719964521438912628659464916294631358210362970164230777986577684405237986960047359260149613097823048000760541663086381382316432431292105556638362139368917194578116072909020650568217156466660459888326346178865404845756691061565581632447876332587248306697384631642605626726923799831944413787294628546237954841036544562374853031142667967822068285427810618180932822486078602706447214594790898387427347126865487499943755809242051917044949449682012463714102644791538579275509105902047336379486468981700491606997852143582011424178282275887507169390760452889478992204533635686582389913603767453813735489094946479690129495741776094241952588999860643840111807863877804706110881966740138656298059619847451378529199026315435621761342565845530866307198366253099271466067556593682916607700526644213385248000759822581675969531191762896693038944770261134743393263992000090368222706368962711992880087836578974163462285121521174894746817951467681852753971535955135202058919255923817633402042892194206877849312721202145247806241575709817175222729855616683712229631087182088433688708181130785573355439980764479125824532476836622246975081327707866990730874138273995674165603938333845679168570282316789976553191552841095430007751500356441894091462458131553285323785108707932446685703995127579691317672543041544179291129212876049801947074992148627201732814391859968467381753616378696796282607157018856399732343334369723993033114852311796376875207385650106548094652987014581743396267510568654153658913288238113030476455586696669297018486951093505260660589356532394171012079734245036451771424240865846108405378515641039314844947758809418460923699477685953608934235858512415277254521634911168202231337492893177947121231695104969298403750602441617071409837964000815013909395050409020013823866159865428679499781342241728316473855956679633375547375790745896578817104878875198324327725284197052674049721281590273392738737352512506187918289045371137940527077676880193866701759151029769302185852452679083906502965491929191337688423459754767542158132656367201720716960715720678087418353238828954449190526158305044798217573792285032975381198441248332620375450669579759619697680407613330201747790509436814357645664073296207951795758900285762147004263217493005876637792250162067644904527000387924554136374892908595992262003665165620786828713332117133835813172674290890353220196575952198815212313315341191676465668386640408594373963734944633824517154215282025092127366070143465354338770941535454095018367796027637959656848169143386680268503906765768018689436587786615290998118815217048484999984802253383864285839378829039870984826938718778974656139586704899761495119783603753907525769938873000777084471137450519976831748484723509220883867870840806957412764882316268017617952040735021424417003837804747338961088889739656642354591007916458405583055794997650490303954141626697383287146324504963818934557525633933541124690265097660562603278869109345108151806143726706182232287770689802222178704961376121005847503246526911030770693694466551035833637160871265564145944143038999585598367122176718085944938701654420412472615227766963229605015998323045447762070875926908790617051442375537282562757144504626410590693096992155628228739425198780780036907850212017121124263884288974747374565060442794764914634147231649187497340791156829782541350397349033610332124680973071929858287054862905466651440331186468747237093227414269016747513554844148156944984515430538043813058999267420315466241997793706709402255400563692921647560288060351408594914985126715607228289233035303839265444145729182071246464180180964365550552726509375644633108147854975975911585712761273072388814715125873464230422908557220791035323291247264913079891690220296785460294930683370482169517977737003070290660392692916149849494880022833514107977026803342019678497169755354574600610173438916915508670877363384836167297784559535034210743842586758180069694191696257716962858667452894486724753511242889881550080670495394361998045911476055779750106173532290201131036948406744081165220329008140026173946351510197696449318582925785273013171500079145535550868515218654216393358944124123368737220572816873253064085558653525497967828105285321227752454010927298883917707013937116819105669895195962138710530720135697516799448734582890954531887530072891949070168896878997101949530282071172925118368059962138942992515572008710124262698591046741813274324621146536844321980940797216078045065178477907552570727324807857306767186938058939916732807473990101695187993833056332846526659278436167463762673514838400610357457203973465676961074827323519793988863787973639632277707774326232184187433099737184539749312140736398490860742177227633465008369438250030013500684811221977861341695857954125756618783201272391763717219860658796812377956665484699970165147676468909207344000812962800746178772575107414079926097997889792118117502666383500395269697818461121510166449135880040966141228679385352149596554353454644189052137301425654398621361883564829449783556452782414736403177815784292313610941781513833144784214058919113104467629905511041171955715230291042981303506587478031116942577264217367111820726427089910042974838584653872629540377743343830839272426009052477082753188827144707478301617817857649130322180425938440833796988799195006963488549006348420019783438797122995077967784427801244083234306459671160889082098848753031410262168362052248154603907378194959223554421884362849922280516413582248753738465006873824549227723006328283778624726255826460172133227273568940341268027632437412483501821258128209739230819135688820069186397980833615824113155332567706064885925426634834600087511681860071413652658505978221174160802415588468869036173257352456713017398622769120428426943635775940717842310269986051051445259172168011903878987501402394746529638108671230548786821494406408301602132952379521292161877414727692853434575715690101483812197552298617353587068132603759131051789807066115712434144031208226623545129758436221052753080972366212886277088739879537891611773582171738743970252473408539756653712372220946096650827338851038460854453840229200848439073208241244776936757264213916072871009957591280635978164438691763468906458078250541144192102275665775318914778200902545077846455164870785206208531558212854376335164855864118410591778285136891927294349005774307441573394608788119577705847319127264243129445242765213945675945658252296867639991239395642356708051594668875879784556828048539862707492131995985971247290304345858731906548208120143530902379337921374930394018590430193773313863072677270316116353183685677240664980917545613746239940696483705322440071655990874344500548315598861764917255778405552735119752587676235872762832993839509041214140235738050068899339224104022480862175594958427852160507897710638071285439943321402814922254433809356577701590579319920773301042628621415391663581961476152800627971984186443585163930945219809426358351375039386583568564978950195840932688019950850400258131999763586570759884420682472767892642017990645046054470090140845108370414812298312974422881023140427860137957571870966743295023688883632373838148367730269385968670771345290249307053245682992130761214048051278081239653082023766960507774213230303009307577371971763240583837340682648087685516627459954915923568493753070493677109571391440550878929931959042402180641866850464301644646548884602719181735329471370114591458146262801167472906609126757025625337733465233203476369222980251537839658348499593601414747976540206871157286570028177236671670545011553237935715322896253613331184374449474117479009963147223385775017584446429324150096968590398515197304424603906727441779188039069057845136335460155064100717173963253393936607582230798713470316962825748340611986909172177147883583561856309156936271066915612722469302670729860078611935873642089412589114382211182211601743539686935237114205706799057039365952608200655029359326947122932713570713213961363992084472649663303574151868688270255837695266774804130094250821896862926631674319480151965626078723733670559475872830640481527758493169095767732780263181412035699449213412367562631096045163558211355844940472665097478049888715925393723884175046860170634149315564425487261796784198718673294971054567940768729285585768396886095327672438877775997949066930197606007950206900894162408303191806254318913849622565856087152865780066844116355128182380290583012929767528351341196363108868506484539350386564943095353176250730733122951546410882582379143620586737547860489313664108191955160208783338871835935521183812019675319942037109574416494414923018210233806614467133515907033358492432866397600520994018268057157080222867447663735822576950100096274768302731962500657071866587900272624408567537963844198701915619883641199819702541843830583443179049248814520037589371748011918195476457551039665088914777134671955428867966412893506346686571339229541442354607589013921185106085747163400484260128418420648591701839643504606357912572980649333505431787895569718707245835355158530141134625458798884823552528869217568942933640526234110348047514951587439075123880255893922536646456520398757020711208534535473908702461591343066012274672732124978506331162619481568381961029775815558389059663312811113326510048842844507314399863302388431714218712341775983362895854240666936380807021754330112525613084668151630737239862558685108477906160848170514536174297250120815865142213441021345590863584657609053517251742424140595414954059240141838552818504942203432263030599045259197817615945313073091617895193297222494148204621742592744386318137906788504110913090648271749942736765167036763395321425848047152587723704335908205857375772223518720367834986735514098879586381112987874697436846308261395434929044394155731097788337999308210932200521868434297066954378024636824911053271336181351702668182219855379625929298669960975675251812993956757799754608822321330570345850698359519237685584219575969738027563524790361318589862762184949171865522213966657424391381777150817343716687482000679774101971596564544475959621135143163977835516549040234115089892686566557238115681718748662666554506835516233476087591982100674388640096166713823330047890723474952505760541324198338877937749122607947760023836770841040401856914146875730427804981386635305069700174739752566551138912990400240957262202542901410275439162078784446607298914118740303053085386202804957670075240807050360294531235221397482604400693594037994646877793005260496689181419105610966666411492268678821435021008147333509277931488035157309733715071387777679623142012077194581015045569150050999130862845430640058181928653490853184097545916903112300799646805230406923812080312328891554896436919960113875741862907055727032986492681201091878975293166171624040622447220394132258759569314419811391956667653537289051088323818449350996016107283074923092343931341304699119755558589781383975985718989559029456880720502903719325027902379183054009009516937913284482622434061379305587393262915118352364085363969757461253489412281723758261750962052685364572556110564780087879074143676436679898905135635628354197776730115244054448545617843766572476143043513032311321501182838645743859723143342862867384844098065966055604926561896851634086032887997953574521278650952099123410145341908415141181030339128418063100020161583056125285489210049172752542838344028354100290475033945099105575621291164956121152195142299790977235845656961920217911434777481543959566688357342811545019560130636999323934873977708853804012213667497560720283077072775451121532666696738234905292333005035538178633966677273479886977316948816866957865406239252795657712284472512144503211313458395897904098234327858910457712881378613529825291216007850376261667801170939083298622489093022081238418464592153877207143311193636107840000090332430364812530191804282285025774212164733398195790941365781228009321689441933769499268964518404170863904949108344399350116634248537055958524178688477522495250126779468293187396740105304526072858200109817720895271822774254167226182796106961202984023473740663661434290837428403320690470629838265846965651588267223311008740774839293429542283107123127596173219945890838490506777900749204867842559514021616809928671514421027797485863502686207172795159186627994130724552495904969285678517717169266086441381774884587668951652638990696290555119966754250122090639391389986513810332072568566795154781711325348218282401486850482311574680828077568454712361070107943837089710901187953249373207257458798527893246284160727868666993220934751423897761027246692620426183401437385284008391863712110344657323448928745478028844988363210197455196422094620680810566055693116341476239884915782441545518016848078571860936401239490760058913524667695169148745994641206289255375153251447860453149392087629605130070759017692472128643178359568905746190562418399394182589868669844125610788306273066930829453855338662897335601398115862019564986998062281236461102500684323162248180122024444453713796583880967902129434124829586315592494194378013887023795533250765292122236151717778145318167451269897757128628617459459431918199714146705533106667752699765636644629879041654849344388827571272941788170278692265559054275026851150539796693948114052257814803953826579300381694535513088452860901861444166922819668014199679013529942714513862123195657328214954507087477712918526391388462456797186981120346474068929374095753560504200545090385295787103618775372815444348696980894841464581191532071071580155068142944317848721432105809263283740126880646686309739508856440781223672533511641176116394890668648580307146089397834804725289121599133503848023393950745202034401193683371944604425105028478246687288378932012336283805347432617383976991967852738225191846947476289922919168252755051423673911531186636221775849410171282733959540264493474796145855204427184356556426499270032483832514360519023218632539872009738151586670029130434255551661284284917190090328682945642872375110583584457638879296255825710335478671012945886993347698515085214452430942567014961907976059901498941740619269594817017128012898056095934654871564585473998024380693747794728094592274027845232569793280511875024242319667664242172991874367104153403777261991248695150165813415741059932796637729859502440392420055389525868599986030904490094292423712166628836305957785766721335066281385918759569594588853940206899916892633239568097602091788308090158693004203369131012514605763166883207457039041590565909254515458843168688101105334335578401413433124524351678142940829078372712676615124467348651615587513581764471745960913987764659468365248976342364764739202579859732071772887249869881048302907074681564413246847284587746550161934119253252576978037340339842297754104203412757122660400034135656417833225055711920945642509151446638425450488996328909005276893724959662933810538063138134349914901628743992352507417022609109194464335528081312889227413724621886979908928146049671186582001059188772858366056929162808620547114621260193715035417996228582347065278866707850135303901882788067911761592463573239431830737378253943425882676959988667185995777898352759844165117828815345820364021089075758296691342718830723594508606900322588162252167132346907740811587190527600558503994866503621144273157372388694356272394770669508625372204303451327326619146434476768544642425829635622435619751074858563887521068786392960864065066465326540662212534976092734014199761700333260341627667875912068098232185040001884036123524062106429946544164345960825295798079025100077343616336175382526599011517524405622306349032444201559229486813892835480909187660418390500074147920470547147679768259425648061349633562037384264024477809780078221695600506486731443596407319559509240844314544791737105301388330967702253620046900701863581638339031540910481193194247618108408124612869941079081108246756893056995927469920359414953488210332210729268172577889028088046599749411603430120900691012636155600427365067175935932208764050524629930217610071673770323993244291776506074365567910762283906191183994441933312862832987449346917658863345554544615898129162431804805434021609795831593146725467163235967519672097626045268553172594317785048335196159143815453730336118162585375410914153619092188379503547825351212614915473444329069880301451028201143834323821073471284785403757959967844442157876002632369845948319820374073405794721443350654944280657868636089221314064777078663756029613899968713849142345909710273820212993480782847826295626920498990901168876267914129145326375843159127192666829260515907808183475935179724951489890716547926081083897332615803895946628927220780273896797128630448602069322385487388342881645754076646425048547409987926689483381285094508740534045240517485815462509367028123659379963188901375697636410495113548647366789421304084004262535369866453511884561587486213895631122525911135361915824654648031845400991060416651041299649599675750032605781186873796311285955165368438952698326100656665895270461841476839709359343500227308381745014447890262326570749174344794713206648234679675524705074424559185207898180389040372689318630632168337022765710207977776259093992834854393059387181855474975825330204213469968857492150004368180013068287375521317938719039872711554943989896256981936507949791702336386626417356544553219220206158215572883158283341412002932766209325127419230573302541437885039393282285021163838119853187818578596952013415869099238980749497145957560179616018962109230817133887207873999606862043678294679059269197033251637813040965858367881938234099448815835608066073056291259794649746732485074147608729424446937150583489232096601939527796447229276949725482256390910623494176570335955641658268531874684863086808373357773767734688851981734458961629241843468967034154551315964450402142442971976776464311257042612388691534851125687632615272214329407752216555051823762020925678700421603626289317012398474364785325213969962432544890151406561608634768277094670055697430753760625041421656903721581157403917852767834741895358688387276056538360155331756170423817846605942252445307786643953936717188408227367807317838852136113664758239650354166497551419494951171658700676102314888884760165465775516119877275619311545319767032571008929139300154789585436949860078256601136462511052139765278414015612964753285602306234783549193640859352136325945386095820552131432282554050587345115329481232380785945737965517218512129903869539966232881110550612165629127837368193856064619328154280887535921435533538442693514353606243331275123931223644411464751204935593811447263006251398542177599940827634476883511705634226135079840743693017216715800549429752352117166631171194960285089873348724247365466007488390777402903985596471956023176755804947630983588958956940974673181928295407800098697263171384722874373612148503148800232364749840993359059266634550520860431195892720963421393177803297414475760383514074699092469831234086909366985232138371871687192654744797511649205267403783506894278857167797936822752568024322307866628255233912846573438541632465953392650864220963647623855798276953004831334392479766373722139832838147912208002469911533712126767987934634595114649947639879829374004770480489809881013597111183319722839482739899303857028975292452806240848480493316569348002656211891550020510009062519007056574127282361947604341460570192106738550538201416896998076059346624805838083427407293606010518619512728595307687023716720680464029772087804723761286344530002866545694841337665874821818770067605907540353826778628004955549163950342625493123661066273183568808760763940410576574640773631209633550126526785548161664715819832009652675811635396667894903067172920807557288788707060954666117302035312246660829696709080300409761499026111929283554798227123369724241671069848130217420990478200895887788054615974855336552253916337291189217269278704340662213546040173204814090925814152954818349484332672772631781524531856080290820823052474564325664484438171937245332167141894141675071847974374142804975079282621597730730801840068228502223582026251948093794699700058851750204158340079431027793229934635189291756234137643020839744525232065673150087252770337408136581981014675665895892004575385572699496544259926356685835830978832846417053765332654891907456397786659051449558739478750273907939522907710396980128009032987356665469304564503440743275602305171241287463582982805891985640330042726780642744891301288574460830359187228053042349319857978306908637928976061038828338209547175231367966581397259514481967696545136521149926677407621366486626519059909152476800186789193674708576074152045140996865933275013159220590184835417500556119339484912683180053247609595322138210118840446835761022933150453763428894157220891102268398317875206857266995530136033949682679803327060072010580442601632534626374349964501985300396116819006189706242592373608298277440621263703216863976744590202479281519728792171918824415771149238961173831410655382170394928702190663379487809526323850867342657756885976953698991415493781670981691143620749928080527937382648890130138312465671393748988821815091030329107440735064592916942252147141849072624698974439785863138147672277016978301150026017458378522642993018156000224679439471442986957303739456628681421471281518450158261583193998764023191181054957327863661089755547369444274048884075428461420321812189473936254084959871288497069840865108889383430967528900776194871124591865846744153713851777632918306754662219601765870301768984736531961367778526637329370040791388192744425783788348814130554441684121422104616186625873075457187189818962701969502534756666354145211337316781635952863959911988180195726088990862227696911842394750525259170201254612752811159672653614297452484874036697679435934979665220613393650393038504146565979977099873457933998611987054616967388579617548628770123594699145177528107640901407404802720398880293020363619192140008699570667488006605067888913007691095457666975634985572065197783057630590123089100098790461939497305917995366863507520012268222811196491228843428030490832166524595507654299106032208162130563596927390685093518063350672504340792147550549329953472077985573160513654418485565977648361603760967459207566115257508085965713434783712527694018266366358939313543373189763099789281120369407049390538822097313507529786260327909312178214874235463870936301430564290459627129925318697477868190525506034300602338552548197493232680512217704380630599856124338928901180779195139309571735623046316429943008963614232256434521948865904152450776976760927157917751324579875390924236838657653026649546558080043069161768482573067413615219308995393370553415298754821481697125413113788061984832762904237262288483273160820138844775984671423003497517363523025951675248592951025003523418703316749828059234869954666046486960100538829590516512230322905568230868455490283126784211082308821211574971895177521640850400375313298513610517988155981802593155292536066991666607781787545185876255212568248678126308304204391330993053027190861877035769968153739572194941711881951900702243100374603174590726811729877027837061453419744509673256699148166617550524730103066134740364562651335883835114534115286665008808183596060214220600613025834272403875426445876710926399453273380998549202204248676588289632941609649327256224861172180849482353851663583237355327483751956700010060812482205270017816540294687727941819627241375080162279991984253528655701827200523274407271726936891829269185453311061265038527029511339060156180844936809489324515107798037395526598348676094947737911038635342034136899577329295852086716508428062810983727947853239565762710843073215568921084459344244444445152115415439708682063711993663193372247323547399863633182464642888857408437304549777086538006522373583489393339310833816178139697685418677607106447052829119669390177061959531929051520853387984900827755262429028781972991764513355695885450027039635407729395734516602754497125535684778501041823014916064692097365507089379062674876128457109258804521604193575841024532394737309018613441833818905036503855244340993988718513273236305587029442989367657674156931132644222679482336610493734166719011303601167768112067281278468411323553646188336173703990550975231758545443367437921218084646059434701219548349610089198414658351826823667876731086550916247410433476431635401151619954456592208241279485839352428896971683740313802249934098239589711552929807407929970222515545714046238381039730963126115399630649512462855887656531354684904760477600586117264397169918360346416609291426118237356220184797967629653266140747498923468717086379438966268624765223512572121218943726161584352349590724457096881889923163523487365031394828463915472058807233168894431333101720070592170250991842818551920743421503136815289483404522367610505624231184790830513529585265610662821269201715655886292499619186265569886042674185733368824441700689691357581579264465101983194463416751981986384955071390627104468736493412393120644762100547326511687348106739619286685304741900067030251319919452652312774469881297990912662786866270769890474204941171277288951013731427775299151112015833206596661147975705119119177295147181848621512579144105095619725987997006021176295549116776164809066934646309000257798138389765606188207466420703583701940839544891394617470952664424585683378817583343427742356865718314371179693236732486403704579418166071756445777172318806105892175492544693104452478491983613799622743110401514508543047761102954963464487424638690670692725099297246627408572343313060882751993646837791218707703500931316099246852594592446666203835792186081280119536882490969890161032055923204760878385656996287089155767709784321405756292436396562065461809707574848167136824499706831713291329050024780181836207755710212524207442340042004214918647156252215048841384679322892173115451850910050789513262583959788704374774208148998595534226676314715196590381704454462123959787564955124834756577817039826031043269846303418892055936040432668079247870524296995039919241632051240257449953680612192460686527617910459553729170194414405336379685662631923147740285518119704979750093568029392641768468829988692867795175413603341843440918412157740744779846384938815979364745976790126271365768254789529499252503837270511899253117351778365533561110563636824034534004250312827630784579062630725732357844799393885621205897181754706160245156839602810945924626184310888148926641461520199588848478030348812047600638703208214740147233011206668923929760061611709752702274167587683722769366465306078097817256147243266638251249399751730772262187155747092426468703742473434676758714149971859932427117845649198274155705513586201408276188077814001853725955465874422795277315898835111855139134010995735731708820939207434478400333162061993401463904492632931979790080743815339823276822864058775007194909420194466121342805133717234862425128723593635828422795341203206495601746622369187258734056573429639715110313620048320916628331092891465021276648766283333570753889595128024412339249367311147319377704097443365865992977839655855776271911715965875384335554391952409404912792590305218992089180781755129749982583504088159946973492413101752271385665898573946431031846364870013061174531079468927109792240972798446301364284398195246036357232274052330574643659071569609971919295386095244361128213762214805261109311738403528451266442373259306198978565461418096481596483539683444117372509308420041183920573198950796962800925965301330646915524373571785115960796754153179132634942704763844294080967625454713480250464703431043648168295093814411831887779231114825629691133602884586877258556653639902560461046320386680596731823605747548640741827863375165787924711371316645386032899143478609698416599775827606783200789824821160523986859325114656403689058952782350624070631585601189234762069074575240404489015711930610836877711657900066900696752408177176502731075088955701191523838106925030761836424213755493768884569020840003857122571234655198204875290225236848774870146264954686716011682114050217141276381439820958310185758656291613053062982546486228483577400668080102288578605918942020091639370103240448978171049498415275668517109805648409576816198362732826087541291099875583013837621800616479784056096758131897035106793119120398683429966961911931427642333975629429037009861705552127782549424081060066582855394529595677144689234323157537748549880093811138158887981169778986040029047252226546624065201824769044436133544628317611460428047635240598210208407325691845232687942065821018064740392741581919357642486467678296770247205224976243146688372408082734198465040675844532410295852157184026529841891339288008964731278293456300529889427116939173893937192143282443295733661007088840674364701865512915066691335681255641444647030389304354932752973397653307891912987771105680768972454533472816563690174958880019620408914303022422338188105085357158022888016730562469487933653749457089342573712936486436818656555088606145838306370594941168058998953838436728196667610338787707178842971419870590523349900975573472330256029971458791764844553682379607785060018217213160271603621793316281185906765110681492667327894009939630075047651325348492736451555273627257781478242652780933600303157237436629151430875002218572478020615461783808760548865109576226112894974776484165055976091074322181739625169630023884264912969117047938820003104408714928829511927411849185581087781292190750240493641775874184589323634903632301774555837332206981920787968022170126047777405148692685085118856643938358844832637847315002856794426896294170901795930300575722107600256075830100872313624436350790433707698139677481204406451707993746917006591277236374909694006057061505669405159069895246105329639320954823199114895166799056893638905518889594032157454788380401566140340492906919221414106037147207609305544732597764918324409717864918614996286139662864452452846018035375845949397371174508907058813226028650952165142334013162431898426198621948525252167228492600739201590334272068081682602634959980479559248944350917991047627020713760380254943632997751201113973246014700930754756908146603474936192420332587196439617214322279162160347436773455803599371793834329656590513364002955039286676730599783189655565934473043491182297101737280816798863295029791383474188837169929609871643765061085924693346846841386972741711716082065514395972464670563042893057731495593253457100929710405292179881296371146883933236721826113088247446852559103560579929110908119060321286209905264874648882408100357836572191824747201644124443926500531320792872833208883878157755746173663006255983045150691647442387591536248024834473451467784634336562553939374361936270678475514507568423938629959549904874526423906232274500518180571968343386099294683619839735247950995166134495405597410245725013063507425400476316523332415968848735649417617612249813866301952560724768961666402771492520192246863278553747203017663459653666263132316708915823341302691564966860197488668226942128096707799357941979658696495579887570848799153160593256515214763326622649702413629003400319918411027033556460943987541786461792260856052110426049248542408421549562344652605496668431666952444286667972467875226960075381081674393515322424259064621149416303683438671428969837209426225645542148754934390636848165620838618899160333181105008511542770922668821663308238841988127421605245394929391383746987461092931324826798343508087127257375280855130298957862490769547928755619901337241736924574428382484665888530775645624072875825106500363683321516221238541935050267370592453757027353881773268064581914169364786380818439227789571119555927776543455344065952963121004843143794942047224755260810284564661068382911555584687268280365441744195951407265124418880818311984264341389522087463858551846535635930320768636631188489138407441040932039138900356659341424853915053469038098293870823987565883311503010958729419318786531956706969028320305661094327756971029568011475138411918176642326158888023447244764121242274157337981452595295175690858552783189918609611187466257816806541391277364181152538464789485715058772904508622353288849976442249106399283267183965084470313189957666809394233169945479686396618031732395763852836161942182635697814735707812475436482763632953271913260635065747018779321770383325214146432613046534947287250074715866893154739447192620120266489643058412097249542881521744248275449285847214687351211696015545640403412558426404078118156192095130585083313240746534921168865426636406695949960165879617832684997349319789972177992708368483016760248541142686986733802576179287799246713372198438430219731283046282490353499767606343443588708432875410460696843650047378169286628997412436709294325215215950774003155319571529113574370197724750732975821854970355219286945620199213353383091382549056743184563029711842459673758263990983295285811402900584169792787907110938479039571834368297889538538382882045572865664065043314863606416654744574823477594832842782982618795567712199002917860944263872743050290114078032736945854731382623304471813771740280704872098018941274535842443044326443880382898635702247249160594078558265540170429668149048674665863363030447022395213040664920850780718977216461974566165476741041250867438486265187774391664637193775265807978339137947721020931490185138111942742175751871914801906721404498010831110640514857117429647062106625633743383230760861944581744004365368856278847087425501408151435220634564950750940584571358746062346457730071384250326768199732279909635579341157392087608316592334101717876588779429218862324866189199053746627361451307464790029772694179839044689292177065678183486873375583906666947096656112793568372702281844764536080547457099987063043012076075936878099106643050544352921093180233792577999653631456593518413607871017261753105841671635168714506860345162261561975830181466355634441206677767862414057471076242654544722668882583697061151980790088173087693022175698900001569405914703884990518285010123221895557047899814526302029901528991923530795330119194063344978539670376707950954237838139973673242068084502836826258461182616486393855063871880563608947834638023553128216728483519526251189835354403694806634967700862162194778149829692981637770977040492911370432580526461583505320617710559740442342693767835084661361709614946742140453099265045966501718548736276147168261108031232481879049885219820417717590967648670248623885210920313123851834762532732310680728774278799131759226053916486861283721582563747920068181023284686558127444751465758177305194363837584424435164935991841750446609756611715682088407016090431767783403523132236095753997131946560759707231206122006981811836984593563354088233402862572731559483935684790631456676204895383328632761687454131113256848796828481717063416478642168179176409489653658768095656961473497642959015632781383816683056340950406840421739647370463130405003800919844296730035861804193911806541894549712259586454340701787789398833132995714744280294983049019806216198562416535210056646160879050712944306295943681004225397301085399594939202125370926233756655088656862523583051992214465084647713851851322602996416902429972193471351428369506970789435106354477825554276062929767925820631999061945344789709668819945354392590989180283706010685013929808493480788593783995169964305756767792456221364513925745979617840436199259629758853262221497640962445042797408506531194056923871061842411300717967580796498018672272227499687239461880621620621363550531538411032855829462251565693500374961587187306125153393442776188246133724527301952265251769132931256960642685587466533682418911554322589399710152109327195530930395122432703819512183693166003938207334672684844151616429959723476641855961757021547309580618090696120697602181238085106957867700666615664444034695662865816038043251027711127844649061626646850878806356800308531284387001078176067748607806667268538129287336611790222575461452727716138986676650854771349431422510965471853880908364769213051653966643085609946279546690911660314726078463021696099693902276398184837993060316737691725666934465674787999753797058183209341201327274896038835331146752541373435040371580774955083366336581420781120039673532000508228348711283218958018300546937200441411869618836178921397480841741279504236055154105598265591327814410503280787914084563761277853327866864461880251962086962603503196444461069131825800606980567027573238533437538756002505694784318855079335266606865107444844487467619264595991286662723465940223200269528792606599233364400455451235870795975847515399735722216575987601646907425619212988795319135863198130312716130056557638087816242687488257443032619047584372675916399812417854142525017091863348540394324581557674431990353132434028970091658105900250214202994223723603893860161913531479801902362626994246065748002149544466941050977983980970929264140982763953815838831699524409580761847350730742546557810179142554744543158803683002520483118538832266872162627944343695687898590987747618889032712120000059369849328237054460666774983616544553446570086736366198100440993330119923357311414059850356879106117354033785012681139104360717678045391573977875107181641108320821818348819579818441976286294965147784823273373498899872154116984535243002416926359655885634769173807984114563656459246328051326675804095135046312469886293700949801868894697065155983634801360811750758424276245748239975969022547920570106252726817737128612483786423963834772121136308771737886698612804443656990554627769843183093348807472546511165513484265251828174902702512646296744840690546163517609997509516169508811961489307303040289052281949883259044070252355426038771527480149041371605270563424249564144593141236081212170908397302094267331257267002856110519552222994411934363107956431386968199283388561827058443738076312824764796155130937768769171025779598331474539690451210299883284535832710591019553204292742234691336207961395316798342390463985977647559579444967536036388854857025034799347688936384624535881969428264578962693123441147121848075827892019796080811137102025356800097629329310415850242519802645143335267545212954318090475316021592621104284270309155014760244754000437338589964696907466506095859613073579067989831917641576203340307246657677595696366564755598832814032012437402864711702372696472264270326157107609026184188633207051500341693225959813224004228759225433619551762310493766631174862100760815809048903706063200807691572970951506110456411304869788258723929979611192672033775429292412110198710561626709078234685308811426768082986356250440611161941173863995285136191317466682642081015444304931745016028987565124817376777876942545700174011689134535527534797913664716515801488523510851335784497681052647047449387340832919584754878274789401261869954229782699923801572500947434155519678747868998048376335795027576918139097199355384018500251791384118866991302743839113110231564506280453644501390656606347422475062691699417518649155296657523728949312014029532443944652610662176013621240980184243239417442106119962426829367816997853273556900149708369153662476132717933489920481851296907536067008000676886957966986375640885004810452961180175771759494818298456659047625932024160985008639208762074371097622750803954242630687747042017360468964591898976545809077030215833056860736464775420478084605529137538798013237161678084932354044437590536186154181862098480394381134958161522949365014820200010809856101256456460056253902644402668826071939077417520338352945984253213391107390112424041220276032464553830303645504430071370444756767976689507127375695566908646053003262623496077886966844444846852953000393548150025200942627197250684237133721455324906787479186678327096094150696576327441560746669499724962395128127563141353829013991499431751525592586122742862125465407443240986715298897543811507045868868700121912961142822163951619074209816665270005240023116840591098212299341545592775277622093612990941393908761373483509930188677542670202470727487126867648806363524092444266378715550943028194466104196449562647056365443245873419782375698079043477810377789592079228343409664387514506788655697438756413746916179303298474640765607903955402117582257898593256291877356528446688835690721817071077398161603914177324390225825845551048317089546474798454961304279475287355297307287839906840489270629017133948119858763100558820846612722159925406044990675755713680513101068195424303951011653341667559438628439149819043451293886484538002466007256370911975984860034376840800757684258963715186694039202494158042502042619590675778750236055017177807068903682460751191596194236146018590692064031010758504462760315304407472777540487633847693926016116797416007807731832977049814343136681318905323219046193309782705086628379993241581654918088693356465635894874213376276102901482670473037278171241705702049115963266694520508957287861319266435791007185366366227645452145591519296200405457685980295834474804403766247656224027354294754831011762169050127011820165380052402072638945941307220916041949686845893599225167615875729660090638818175985393143711258232969961978997691372428405120657807368304360058040251371069728073691406681208325294323476958511636094671207746703626766986786402602238320395990971735719922426114074469620589553328799336602351143311056398631410620970469253652660340694877172817743732222125943288240104162505210415501344896797526881822138078478345481588757130710694683380215937992642710299065823133200561347071914648669668463573602262158595520704115306136347026445633855822765147800169945053787017997563194182941184857051624423587438873716443501844667979767609327628974711056432911137354910351479059149728483829956487890206451371415420473769526220535147125899078991708405864481339238536974694099630784900549100039752737752160272426599815279121541594670342524737751683903665856815090576163440527007995674035942774513994260975750805287928025701168640315246824531050231323011704901243724130858947561761279212178574056597376515437831484963361149802057323390807773703003358055998687505629281838538456083716400991224022434557167758540080372406483786560000865871317119891417898628190760176810960022786563306975604960546746160040273353406333985669851841743154261276002088110406476011447631186960411769213797834365708079865964512098702466101659948933391401949296524336545272949533158796805848143441508683374751018964735114202593563817306806783473354073254974737060827887927354463746029310882535674084293845525011280147916574778116131081587355060111098962586232432515692027903576691465363334680170394480359849099279375470930460416209994524322709366083550052908944382794668238558632053952785822015171908994911733275669223399601017610406819656600945092609994412211718869371760556365117956856840971641870209110630210967616619539161269586887869824739454254786657204253078652235077520228561834536643807673015662561489292195598928933682086461637214482254449503661920840612319087895498909426348894008188364601371648392492275165551201926345140963328884979494953640650495927730095407400373001404349316563100575623378479563392444301589404325554941945944394827171159460156770035163622388346750240803096778582900048781307449305613549122050049769527051663764184396561134271137562650383842072308542028912759286560774150642315523428614979952930376864235296648244060173784137582662771361995336212978867000520458723387936566216932373899820731944457311328196431164785642824772591336171537477883414897129897153162642185293815938928999595501628372457559856241829906614977998064281418824807935533780873765169436930753059260329133282128063820489843095287591241513461443306815491685802057716333489632683176599499381509626187156356375174672555565673866077668573597734432072568906047602533724817896227829715812127501306449848180250269244356368146185912947171936890316963848920113588084383900567821923180494549062509441417052723285662824459628813884183729060731766197818542913345690800373368695204413837739641603179532345143828608916321859787329203951587289179447234706963933230656262582569996577531400890199639936612276329371836383630228795103839550417734628191476398334007484489142946879318504926402770303324240915010613071718007403744084021013091005719327950326188860452847941872621540111641313914905245321676559543547584697910769977378947866820694108082750393175658048017110987235100308931006058817855060098734743650417034731277720822857499435206924726231816337048761904847643607740519160363900583109674285507961532951637265620897876137216341255924448216760749992845954539988259852225304077775619359907387175126668011363452382142708574242643823506874149121175806748014607624740646460184855076302295076349678483630464948432361465742751449853478295180440028292083709611085768776170123802568971757547574250019253783734216556176580641299100679785661560901192269804017744763339050780887561282730956872379450999892187217535819251202905509589571661582430061550822359324997596490538569712562120746813728718301538804657358741966079696910971328235980579811737499557073323101438050827959968620727091288255038861015393494691348383874390874545196857991863727501399087683845043792623204242644344231117508024393600507674564104054596833042218937480879391289045907196347580788819221217126423924595721779279230882139869525927489958023594779254573941956678655707744592057027182369271293650097461766881560435578327751364138803686977346081828724852705308368022532743049286925685986603321920052930795360111715656978088020140864700793811371232951971269683235816440783555103233409557035641771497368797746195082458169287373617553539058294728457101934460042420521893291039218859422248975662826423519185284777105775505598084707860595898067438031569556701602073340260652368770536593018711205899534789216393193445139477521527405927402552527959579475327111228873656570060505417429658971001336292330291714410261709001592313879843993679863383020325105984473426607258921717017237919928481481109814200412650674684809918599608314383277108733013080950946010705426675184835785359219633344136919037971397304639601743417340393169408592672647656389868070690726584008426124203333866998303348821239119896703895912566195930622506414832104256692042702281340851323120442217891383620234264099446826783238857898226346483101933828685031648550074163552207693708099489224215516601031884740580404550468385937013316673503284516541396750754288340257765380809885594993152231484364022297023553540328928846954977919026612911914354956095979917169573076496174493354514990039012502649497021180878140079857703223121503837978648522962011078868361660505122513751446164576932943771738232344425990773543241033101770096170015606783377880471485993587733215281997436959821413938516822935084658763006910632455798474938312238432154414753807094699468612459943884900388554618500076336846991647418970502672541067808620353674251029379527110042796658856521234046213524966920303712976385135385243354099385159368261106519283060440515655118176656922397544380557432445113549837734794854148649744493186257989742843939837653424716019580561288197762036855196289579622014850693174462869615132862875673858228451597510297409892978033034459882530202323044284133744395989318263107724888040360191322468833005684441801757034493702919333341883766637608845062191196097103106288808990844894372852626000736885428682952923822145347227884264126461251875271915138032098498611220554044318069022036813769804813686987613997551618735673647058337451848941592062496287263433771276597919140228144102396282193709218368163729109436767662956766683921833326149594883486046148560600189213385728348406189311616802161361043452759043966945911605135144196333659579103578264325022051276993698099029525892066885877697540222132970459921167396268754979852082217480749682355897273685577471104516833264618527254261804268482811225964591928140930853956771460787204305618528247234365456392426672430971157907808009528561214240528777521814080313688314705125178207495200544374953719865837217303712337332014636265804897049192456394133202724945023501332007122027049372067247715821149887031440672837400248257569088923090389783385657785520594317921386788895367913679355430097586424656702012722523198146289131982390437458264567497221799618487528474958779146575355735422915424209612771611110633155223163805228141177056743569156860372987852664821325498504099521570583613731026848612927215800346211448564462264746984957241020375026518974306976874762909722522088922231457335772730895038023111200295203282719008577009239213019437425995346997425408713918758601718318925141809427218839728943241305477930008606688033818363397736391028606053771905050191336379902986252078922890369206716178256792843003090693948019500557009850912697491536445516200397419942451020305131243708247429705293420776460103291213238846333408155956613366700344758329598826539348178320574685269532196778141615010732994051263015508736801375934556296663038061525309886794526059316883385701946770496451660966402925086066686157885638490128751332092621811162240638638783529792937669246650865041445308823780275439073648776946468686599258375340176822432620879380277875436207293887799528405771273163518270124731377428242079379206676380380426725617347765214242760674345915231723088473306004326681669768710653822081806105057752329661608488428316028243650590781575254931158997044983637125652345289497862195179452561782223460149964303162734229491872751270813428866758375308189001763685578682299005256983352673587556596580800438238791621218625579759624947334863768495693477966263938061513475424807310462734226375574946282411426006730587805336731422117105946033278915423730059153489145422434010577342925198861237087944967967975584090499921617239041506822095841893034774413925658209901332449558728304976191296656954976440366014241677498821398234942986774344948364600897327023921418939080187211450019841810828611594118761063082001133952886225757457327522692548013101849523469764929144983486644757333002845828038178860808566409225976340500556257204486033723167954638224770617076506354607228309143469868952125956821489850955773603514362714411540619345573292649331947520371927300529801024783481302928178638921355554848671805330109174271035455920744991424236264004873226122195082437759644864788513956179352118100129154778286477552725593129355779615587835916280789358759690329680541932734192241974944463783872204025560717493462631137505686288240321705004400530140817380165804392281349810740553676694093207529098385748927846503180877901893928088433253718310440025778850032928093863218779084148854937700035121705373084078075001816441389224332105496042365194971707408932626776115897813271691215266959656457922054825578832980269068354570721983909891054020279169482769515227916992762612601904791407112007139723333159507107523972119797994427029086397638573981642871680192441567712762637799124332584301684281360285143930856808691820162936008913237865958897599141305276343695251965354399995416738573214880151882541255208869999870288136941598614110670501532075663794800649958596948259794801434897766607242460413624726698341533619413709873023653971500378495725444078549914965091905867372974022559225374403294857992983483258559674339236575937651209433915043588835067057513056125493014415935711731034522318466645564013956678478822165319428546774345323522272077466543427566369952421338358653858656283754672445620399059109252686198587090094861774947275941262373711700581498621483710754761767777128118364683436645279654916117946102431697995664112961012409031556647820763766997177943432790663368906014312858097022342147320135404321200373091077061718739294976568428265075214217798207943040210852823953534888565696466501041981764992234476055001157907528412773263074686130093910583429047341873385227754096774241888790694457668762210218445666142394298892451067987828555942450593022401690509651338680034932566234250790598669850868857985831155173791306082861231285098908095315919146845458800562790156863017485665743236919864582601142578945783329549729139250228158883576004844036038282174500251667066320181314363313679442265287250213259924423232083968925334631074253302310920052396329911279862393453004791462886248564777157761017745087489231029497345422597271273776226395241437400437183027500292744670148097558045441149307502066794359225020890112326173825447516465423598285694140250507153867723784437666847030325205661307679933230512608204211066260561848839849076903103570480205871218347092334781896722607933883546990362294782356410613314082110183964114386966378344457057996990964532888722462134358976524050630061742120917630508868109657866155783122291937401203540015292284985364967896834564119713725338510251592990009848200244593811080628007160903707206929557200384403139852159989364754450463445920905208719831480377378844873176778987582659148411541222926794134694773691162651566008270035236118419563595395694706844258965016170896512196818829045167648850491122819947347565075390553960455675762366972323922304065448877821843587379309797973393742884603009345627117698801405687485462938267482986390044790157293096952805856530359730290227856806115101086964880495701522002914355217098557892783817562354238185974968069742580844108544766393978174061222810248422901866292756372902329745835498192414801307175016132187122242327007656134136190006499291482254907977013829733423720451980935844017733408261582114170915574503309573187098860934015206839967513553152898174298541567512825123958697764729096891224469673856366823964376645943106091840678201149967890144877085062312741022993328241672279912350567659284859415086127191796315903616458905598025838091402119787192806676649742850136892844071746354263791854488277077016122197465069776037040544145567764052737650488457065938247619542153991190584657355973810571635131339008952831107194709775296646697596853484293277602250511849739115965308613950855092895673065135122276108618335297060081462093485678075136661495611336323914590611634621654824577240999208288678646824721465260055989315831368796144478769385567629360626676010582473375859805189462178051189219060337572550436307957561282003119000734098166054828793716117342184585244773991764509645925204970972575989910933189182074914447308373053362304112740599642120989410892014450205914749556453493856191977478832807236708419421143506597465951493003930176767314767608352532314150547578258030736246041406189612665818753866743584956498623142099765068398579643500993817583114413423578055367086975445544517933761402656947256273624890258412324131914160294231654277786384130587631188627942689587229267636244957486308515290400954551199193022545668197672707957217852650173566687273195772364032856134518945447232359815419689628649816396020894001000080076090521657172174302272478892092687431106527756366106290768770292716966755064067239706817489943081073032878299851574219243659010598183478751622747444983359299359228784795705293206307777552232147891921252688252843577531511355226003140462042362437628574868886237756628030954283972739415579844460601525416492859383047644126478074112236945343853870237717843335354259361477791995636295399144427774721127160472303723971089824455101822983512233534452310015444818937997670632961683398790022592353682302595289154051625626441333391803829635834478159341989483369471312989417138054816594071901220655259244596833269826975886470750235921625181235851151117673364819842752185187958155094811805130729106716927795587924327121638358446790732512248715379070414879652128031046780333965986592032277203159563161144453156218896771273987522529793096182757346218576496347525141535176254341886684449478618015078586034247561491935642390489761102590651929390477014308632104618404154470954392144553282215950159520820343005178693392722324331891803463410692542362065845951845086283077868208890202532061409237774519788913313799549403354726882029890396391894166732921029712918109780061653376016163909512975484896624523897642556703038037644909457438935076319926632177172369393186118804874425851258285518174847948804061505882319568520254484857363291206443928996752677167657185522800363911464839029898053039231118933800712403795662400973982898017102717521039517462888130176834861722505441531597630516145707926092316019897293554809002871385103400320805871924090934020808685855317035682890117592715152371135551925363260532944412774736239172039333057976888670142456136564310096226192364952654351962958627810484052161696782055504893029271061730400325463228109061314725208539797355046859805442255335706845400693851621593313056518696379412541756000192626546741732909534521502795622341599138902810070456116377736117792626491563554054448331454666597415069950495617000473024023975622945980501766537627217994505963103390239396485109490927264751492397138217407060285183949570301071083182853292111848901244032226276200812884497796050423384879093412945774547269723832713475198411501594853573430544996281721660109823534333176668305863940991905833591115103849194002051212507673573794588776996404248680188023644481816657331544164550094089670547912743973300523895387475822456199947122801007924477769479297523027018953910682999904572632468087789567384084090876513143123243042456053179096633875643870261515601498738303484700786692111317537379457369233046844272171203362473987318215592678060011267444401588107256989599902780049877574780785023247411858809593974807879269478544399090145131788847454468148861265916438194724611968255505841808904360374582647931370153092527336266170597664224207715939663358512255459971445226035771772083334385129908112967408598839517396232072406446090582897787592749760140061777879838661716500774060827653815026095668855924183034040904835283355961086059080975764507043810488853207495724912609676466853855752983809901255436252119738406243784524287756023394106424210077073277343125613604048234378956182431860933081015531129959530611452528610482162506838638701753704671341769309953535077281377020529000854312041727813044251040491386220214908133862430739253973421485623336496537907368987224190805338948366141867091591950540426241324205856968723792280486564877184740193981728566886345196629521261772632291376884758388350433135835012277185612527514099154669407459939560101766332175374284776620997104413941889392613587015997846089053705852287690646127748398364459889825360959025031174697194601744775723050519487215773950366010113807021497674821210508097674963866667552945739644891160248641004074362559306206820111981318710407972289001440549413960534875058527661564110658199183549552849008358899873367179884355714657493841016310851070602782553515474619957011471853444483863794947328582522804722350548751594670991549009816343772860166054438636380053156439277363577200831791575580509679198924584063285406915789576210785034674146523649967398640109616177525757947474756115903179087662066445150623532134781976598146909764037738985177480796619544136229348696702341798585621728774641756963302965911712592263243074304310185431356358571922434584758017019910890985394852776095097490701172081965382069892564533037543586554698624695397349296131203708139142791727485789628814276346139674035058573228658681641290165498859548556341944670870871253631407983638210902628594205998387856506319124851093175676841464482799472037302701267158296047139859031319062203794048609467509330168997819327577412943782736265254311059395885399124753206100564171159035578495632790984555055043397199109762697980387664382506935946275078736442897397604344182049400730501055627774534976363547440166373594656336384827875310831440314721309398662413874123869325640741367629164616516795171295439747044841569555812355857688980797599686928358660923380437939628257463509865199268966898588323797691643455364127898541197503646939680585798073532357444020081372237596023580071431710827729995711536375883331754801976235525909640750143729228454893296871675539274068639843400998979280006634869384565804846895963346142839533912719572882056109843946646217357852928384144422245226292053693683514252881480146105759552159489856619135628385120575022132252873629832401040178550696724904716039812557094088838278639801603225736209280716578523233614004279232425896534977276286888818393069670186081714861559505371753712689867427941646842832153724663349797600762689765439794918055900926678517467804517085289896400427783603090635512411285413528222679536195396969098320981441686024957439484234196034283557128100904472671222505524880358766734060740027979546063053126784502507190904606466320858616624482823929904417025831056818836437637968437266326272897937546199174930735829938491077339649894727124184276972139424458467422729547631470779948540960375221986859010028936493853241133894763819956723700862544296817493071824545518229173400547218126233676389804589879052911454376879149652035683483483070998850542278078833439331044411853357351559877820617312244785889899759655000308195864045955847221662993889736769069141832714940998621770168949822985742048800687585693387424132416525875034863043625855377875031063182436972423077988375421658446009335663270902485656415611749692340186739035174891229535903146431045334578896264459020194569732326343935239029029547755733750656702903465553553209877256845043384978324390088093546119991536005515813902938425917249221008662142595931269790081509791650075200468461709901184314631356487810015464281127752934513168843567863527425848405772070880466405155956291185454744580608654059680991365408363966296654267679325863693623534014442328289659234365155610885445633056593184450114581083899003790460246504683019955008704495145000528750757137827702706599299781103487943581884906353442194137964355375141177400316722987741309684775199580684721101688508634296181289466716911601246312287183165385703950645839923304969096757237069648673048916888614570932576445584012945637139458615539723494087649524818260035273576912220874817055677190436489547727026340048815042623791764256731071601218027052587607856920686426824614779152911110114634707158890128325691911140864665029208709340784858865106646562407194525843182041924574349655805249709884494576484361693859283863380955050018888378040542082017729732105077682349390287533666821479715509247964047713484841252342191340041781728212375566617289721851448489144249039152422293271850337030680575563112998684273565532560844281975991676809038073044428192047889981400718778254735004977620807153290048667416117430330627370632272659328335008182866306060275004982415580168138876150356199944942495973763761220294357448899680945103197001646911087524293823146535255508541482861813271964849996637762353164866005076814506935202030612870122099929851621734790697954002390348747141943496983688892856710886446566079592323199224627229922165544517021043426277670908194280849083115772600805890561249481954429349129416688133978779111388649081428091608672748944060180011705830605859412651473911202712388631404934393387497004466022142258686268135943772909879348796092684919383563688390192226988101185752668103879554790745102854917947526271896759533741508429722731066985673952469597558819675809584902614416185688127845612203342807218240551280146706726314486804947309299837300905553165611791248383317024472114100350308332610621302667152749607677260356824999451115721571091500222832240940020617721320835569231388187779029791001669604781128924707270349867250833040900362794950734380478985776614768429160991060854576379860835410087929002392885543977283202694570697868542228625756437277844154686755956029856328611736337889929065948183734693030145788091890752190840682273761585058656728935380827410800386609985925386032511470266541854959984974539795162295572424113072159131988859247476374846120726965729894762256834183658475277796329412258449672721125667904147932242853872063508104483316557907201762530708766611435343917516926187158899262664994686754094549494823361351537163405973312200630862907758055940439557804547450494517494238862384308126015776550024220553195796962309405203707487928320104608748126612650612854644173768620259789647283193586040289165946935203138557175195289295386371772351727298749921815731055956329324516413625260838620691098280260509418089643448816763344293018496983942229984480170481479097092872341379392761054648630285470277883838364362513472365632138566776531368589898754863697074980060638063460287880937920095017841702042732731209718480901138645997111251511984001533009742622218861004011708179600339391377995566763193183803347353284976712774816467757967709336524511621298347019553355087575478104838216232184946151543238033029716872531707644503015511630216596186833136717079105589399337151146225145283822412880938421669302752151763114578139930975557906322886748291275373348146884804481428039039621145621690877362415099248263602662503949696675449807805984546075669132033186433803897992450312757042617423927430611518311544287197734049039607101472466423229728040526720866918794354568284090108549608418193689292300437378306534274335577290601869458815469870347173880735965530285252897381535021142846289676690972108452869314501747814061860906542475714613317372001173284069490789568677911556377722440772520659230549382372580268725840746850768015733803112073539385365465444681645216222891792617863658664828505156542610560684570933739211364074593763340318820809497917913042152258219145065330666084528882110473875133496463090087684522475499494033568455906382759765054815066312213050254378462010536230474671154276848975926986564791683138414430837948491560785049245456565046170475798116682728436565981117302311546839256364033389386043841797793634320148820610606686546733736452044532328557905755023306658789965093073589036130711758788079695878653193856216145177273417522463421312053630187527433635756314506826287535486242704577237622097420201730294400439203034488811923968621389967172246811854135551518459007685417111435392591633958204471800785322232594907164985528929411753319925147145078960323039624649196826509105651566686171174447922910264656805164906736289843269576191506003109381803641491032002741233521662319779869095251393076925913152824994840244973780352197046670245529163251836320257057955885592287765523432137868115893714381891555505976648673569189946074622295908978003848396276771226744083381076104702940400382951972287583819883547804892548804780813984387107618218219324529487214247398835920202186779859787419551061925538779172215515441774425948026292237155187027635789447137287865106627978228275308021060280746473390491006727406632319202145037468938004913359254102157709835361633407830577660158852733848306879809709875209703117908066539851755910150099364905466963837161710578554301903005907350274943716004033204965234265931861958285886382853217804996128284193676816629324389572524025906015751642466418306297304164384324864407807640481019923180813184565123064060242113965798028635524201872212269275255590046561225335227824011173213774525241115686764007337779016040800018557724327180083870609856962131397860120069816956337242011392776034841834475039883933722157086087823028955142801701651157441187296302715233654629260432908207970551823327134449627448521618263691925424906737785670315961041116713171200643791178376962816960353318909714725893461939212600083780753427938107268090020739008566002898348624789255622592831621784475022660454247332637908746595755032059444623141413465954841156166559647024313177996287596929732407475377497444033291548085332526461406126990045322309252643889373541107412889761501216326179586557361239665907803534257058857106274681392279712360060961981671273305833445668931146099627543623853960321746483149535544747902298073119749846283633922945771770901974991826901785175474167344419354308810099309797431413530547831956459634163008783608687114795595617873670922789041317528127388729165923165875905891683625078583682211576241973238133042657617904548610637505956147574887331649734638846534708939885821400417853982710156317133109441602074636931184246881020634840199584377214697814183091619877364672914056654688294009418943076594010060869600865363732539226368878785605749269802140346163619498285444654030941249546092578078975652104855666198382577057938530056113582479995613620279785774821273276351227620637006129029808138727225759044411000584022629694570558957771500619166059443647788944929742137221808523724311570550269982027619578026154902138284054934211180997598076769788939629944133076069831648105797548031181593140945483397242200097748122918924650613610421635425986416737029907809571539393726380435490937415847647489376708403897390011964489429529535312856256877005997911844144770443715427439473457587948134347693262544660974703573763758108816206717804015554544707493768828841631964474538585101342019487854815130403681975208852425654594808433091423711062523496274235654764901663928791077710421013200176933247869329118359121221879342723876227596656970067841046874547449166517204046673049940034718732782821960134047015218182550680345464879878163959236186411437294164221255428776999457919032145509436714903947185239901835827128621724823318011453218413060577720406232878399487751728492067389003020065274852196596242418188778830872697142170344258178605887192872422081120640088290021187514842258843354618809791048894189028909760063162657210878363899046263423708725979373431914792923927161434221970040471119544261670722182664950968979739210883111298667310481407080918632538068156223519824970457453682221786496389420582618547469084226584380221150512821052116788010590036795570115129018372134914712363580132356773225420858662393563994520848112233877485696665212652399965711816810287946684378599317874156490601226503551500345059220154454849499535185234613493818801153760351281611922355788153553857862927575282482270644112345037791646892186036045766031528608107502088086974006509710483280342151258589049771816484866561606457321569305480899118640009589956244342134775055934916191715384447965361317613100130662235683923021335893895697487885399749368516357528952061777625221915050604805836187485194043870022894557618961921932691841531219888713953134778682702191870443030231558683067505370399528329543163067054033734617028631568136127007314312020204093819523562968552925415196552478281289560845654622323853258722880241053514192367453502642499462353601410316429745229183671202651693372481124384185851019834349465821062848434080347666251863771005470897171336555719514643918552098133215131826976326586101849012513229181135461823006225344894506599527759007140770180994917260856394436305090509223865936013100644454234309024492234591254950437144568780282422295847352887972212847080056795285841266242009931777176016228323452464676352997980097139230800344131027758992722823209663531790006494924066497457985004751053634394397553867296858579906249142963596443975265203129575697989661157147096603989440922498022066943014754803552331867066387379616865103086470343986347205242606215002891442461858172060780168506850653245672320293667801833961641568604996548961944093052149764217386344732913787128419474419149352803178316876346307024973639134744015992830334251190536875634548013158196513655101356227824820888526720802429315025256445822153663718631899202982430695203538916176976400358744171215999876447434429194304139690229521994213714034591612399636167850537374127927009921928897480948639159806244976487298218633552317175342680144493271178532382480357060349434318779010097347711687773681325049306424663703025277959566405852484786174685273232869734846793859942725158263179227754973074832279947628925788824431033362300488918012698838234265148332783108779760964563165205041392345132640186452002826216986443071863401730827481053491342918805562978796795777206082369534965054121440186622261710795576468289085191313547015284048385065288307717741047619937054436962412646715891669085754660819633755525741968567397741436932307880882132853843460931108612428862438788310843377940388420264964241675597615568261534210924444164152778908150125963546653385477480142545663720515806816079458493816497322106798510068681786393837943067995390268847190859873528596092887367376208226427619245042557671164615419935155597087009505811355545677291421295136550701153377296743261371356886108613215977756926696237625345943229184411101783282283360722704291606632471386162881714862388908500630930368603648531321772039709153248870144938814335301578105959316698353310347070503943867164102411140616352154882788711294483675542622521722266270261211503732339275211965997407782015927811183062022622386443596690197873917448796541687889984589510889843701037066241646757496543901704073703099604462439273550672078522686926969665332440450951531330390288800437807958995149461658767875150854741852929164571102774995149754618997309225039087396217160449561646969500156045169644902211699837501831624776810681819360290109278483054963688260070685417479395356481150360073156628916299456454573636378849632446816596537169247146900980008867162435008155589570387191924391690786383516691402134367091010557945077252502090440329128584909039855073826505792057522873242563171581262244472879176955030088889108006146975108332196833661740980498080885854635968830114350391300273862455278478025080830561568588010490313720897785897996082044760681202390920059695887850363896973261480782592838033033898489688807416717250828007401917362454306635971901869018410251038218675707978238233621656269136247446841616254217843326534959420909255528807128125269010071627041585258147053962403808507698191872175507852578694499166211114174897757283321767229554492126668770524881460988885694790563746382401058424168569767167760074654359229066222596978811249783293685716709671975912134414753014204712293964621053226108017859434842171230166802464159836652166646647356012182089080947443979552216554932508474071535956955162754357211809412591009283457769696605736741283713824488016469815625816793914145249879545299110295225970570964085981279659533044158644655009243657038707501456352237281941821985340149954742300090495583809113513845508669547051704204210855049332218074806339267131240104103964758099647076697200132788956350968470250442492126107310207241509419990457087591433577703399946652065854390649021821105382341427279189340487942546497202757477726824036684969642071330716876139073088035204789658843341480921212948725206950443212200267363285805762776560089578866937409244116865329088613447467929337549689544801661280296922618280472123167872312313767870578244764966174006575115474518682371601399714310249806681073797740438847872846153583060659543226930782122469308732823223954557061638723869881033099290721037359358683773265796939616919396924076691722139034389053596068427571647402417698138018399182609616262901959579802665880310039599667360331944171966050517925916996805520715422537362490524380303715440904062504550399553496442806321054401787856285371468906245043604382626975044680489910195364924899962189448423186743613441846064784354233247506740982673141460261658217828071530234133224501187154840454041664550914965707877365410492158375474875116147783241264365287852920981637718937741649924346551298122561381128874170554487320500229907409671899577017046462365012951400264630006020134537611703051007863844644307653757879907572715188963290339614964021407557674069902102172942378075307719020023478764900550475540785367125732428290829361495098271423722959557420476069459440017133183692510923454042501567011349834902006741636482683159012344638453250108757727496253990547370036443476914465920677409998853347416181017299726923049851177422799567413501240835666160133376871899403342624618895852693343911632634546419461419370230167981987717684053392399987699568849575270676490831205602019183656718680408980147122839309814321248558977940679265012154976000888935518713394130187609384357364731103697775752285640119286150046938254432102564837205000129037979915197422003872841475049905338335024325448342865931607212795744559609575800311753180588171374829624198332185280912227765266228252466769372747296067435196067593389478974254745127274521329414717035353734181041229874214812740613120161890989280516324491090486958083220714121895413023363245478008959420529310260593568547173098916851644101123119739887505819501699972676554046103444014048628214845962251380021638074760608698784749432371085202284661467683010916151254109934584882470371093189045958949191472620042193287889179305436619532464620955817114058148046927151251438132930410066568567500288401653055003281982288873713329904084856880243241533086275936621006564496551120505793931714149767950652821017157909055596476096157349911363268469184348066629473734035798514844972362228848949034226639049095526380453240873463780029250828988815396763075156325907046836438166887688218059411864804555241937374606739843933957788415599668017049600188270587809566374329473988956573729893727176080391913599099113877664082357241437299546658515401249634066326734821973399317632469769728025667746143452933950206678202496392876243931004363806827204513198539018239750197887617465506989521151117289952406726570811627152235725877026368732416349599351380069280961228599494115460242869652262836596587635370794108271337709164441872404668727906730318195731930496006678880636950015084269217167645851817396430131307280114512239857205655503860132483513663426843144932593045097327459377729623991091158329607426230774682142099169848478374259780673766287868294406156132327423984293218882628200815002118756715900832039582718384648435782206765733577278459908546381075797646461428353929450482832677747292766619236266983867948215089549766534639874185076041569570452757690016259574155470839432493167012641930497087425322605496122210841324930009327340741290146899013400082561030629076583260507516552990270396151204415364073554013196487747531923382586713093816866234628710799640654496131138289124934697935690357598102309582583602734581172116823298423778477001386308633688199676625381191598083032570255806261716533267340791845301865930841676589761662543594256702368479748759344281498450302576638780769269680674604797016576390168140462258789719671941233429537982207383475650266398637842906052180375597713584386514783984257778649329796699069333941899323485819451411506664700214539992467109260491037383662057941654401170842333542157415570266352402945933927262496010198723652544146005808501319864268778611610164267397500349040135767675703825013039203226883038821850019991247431704108128269741039670733438614127451985722482381117350139010649992411213821009723265429885144272715536413132324755331297275360970183057721218579274865669370100368414069968681101324357799303595933597842108103891489213178829062228497518099327591719423997610230823210837363033920020297399479148221646572602133226149918849088677353415345647415170938450593611899869147411021963409424582919541041427671391028248354708314827646624221227330145446675061321687345412799973549879555229132127728937147962833508372874015164445305751358806805271684028098538883748303892318630185324517474471623996395198771045002949716909332359347626351749070706926205289788253442732701740980561251748663816087649772842029364209855815281045603757964189072043637257191511987212650268301858701470271818750998642310251418311433702983802763525102912898713125354226618154593992434958929134050983691284553699411653896607123580518372517038957613242802652220314413417327245609342972467239567356817828222053367569206029859485117088619597674799213144582799813029237255813248296390394764753162544359897163729919245597616995036309022591868376764681714991131848187661525461801819237865147864397366445766064379168028814814828954231376101097278376037845783632112689572116442392261639720478538398355071194223578837581592244233543794627794429269215933471163252713231160842569552981402948272335139613011332920322501651887066932193428152286516400266853246996658706672610279830048858394673793457305033282172542426304453930773887914978294633562693500347199751674661209643251838086697274206426267930681406102859312309978624168484776145390590650352493789409430121880919239252839137956819307044112937188336504180311444559343514817782368474791547908411032560763370892993419251398728021597966478351342223669475752667547656469608817885068809710525926340592586812816426556350882342102432975229411475623669118657612148226384214512275275968119647988796890742036718682086881356934258950388022840112316407948855520223822642705595094063494191798073028601864117093046798496026536410009800016443826450222647571072002026655189152490026977607010637692421683593180434151820470414359472017793274497261749421922012776493536049191872590958343276282370321882192374565974285355214318106931435367785460470514112622373706236453724070754527141186677491309044022374353794714507431991829237939602891956012674123110681065586114387698658229678315843431993062826905532784966516186561355389080145803260326134227595105586361455858375597346845083437934696965728056378935618552609202957224375764372837674776104616175541491314266930277264663249073691645536297594449698153278256220228665591020947837075968238955146013643050851252245636888741802663824109867103979712682629964565154301639015217570228050408253626892877685434017343040558421477763340308290810679067904658533871563631393543234950526642467091997997013340329495031001120359459883310267368140728625691594652061126988050112203532255021740627555491647786791454991519022327659071826288268811645420352866732670694035188246984244501724485273453839798031125833420244378150727092478398357237379087725033970068391390387001843072840443217388196165740630651420056568841494751659707902203024720649198640434493002110129597108163707835550398378084216991595997506002421824880708051982812162152584973248350033810539250243920855285318162770606469921094946142939116985434425524858509604292731618044688948836215458675959664420737613197551737222104898939926025098592937207414899020761040930346134209810658269252723709592146795546489435986402972982834647957013651498042903770273807801117264916739473223153056093556413450368792637026663364418427992816151843923965981172319928178648490852729508516310007604460330824140365668123614189425491715421314080549012381660771348606280698314906681748529333137870636797358281744466838865938293792685415554850952859779187419542485299710309760559331203289255226965885040387279971569153473992788391350144764572499320263909346422770141092097514234557485647455222792224526568354591386120700368806587729650032451941305799489837454013762646780288952206810482768377636704676101302881696728143459675174778206112238605450919063323730168996224277549257883186983554406890428359468061842788427971384014584658914809830369968415665292566137152978615664034302064714082364203892925666438219420951679977582561735516570573136570281367757748639389450049946724002260442568786376674598181813392320489149755820231445603725024900749472220598579101797486239346900664789922559906167907564067604001945304382790644060242503598684549724049261032891831622554419465767120380574274763178437680866930702457905768453287008053169624425745237576183325452778819134907493722155951108592867221379339195975294301152013953108887094615143302770120105589546258898045422022509176125075278748209721385733600636479136317226382124378125333782851121707162021379599815949497884107355275035075034403681679675739937535293423249481962864137170140595915704802789022028016794134062307526176723496305067753307758152010130154565397736460782544309005089879055497967387168716713281946953857192857247992509550614898883133846909031702313380112634222396209553733052333779839344428104691108241469558890180711961199705112994667586745999599386417950628232087312935735905531985292569766624391544773035377378465246282772676301513782648336565117766450001969242284410996664147540930769065610339833008052847811204433567538898287201005039183456977507100828624985514719284027440379758014539833925333954272248704692748037342715779212574523738855365452916156841689343431192308855483369500594761103504576964952742702721893299116290755694740907447839173694990129254365257784299245327324259329449829386200574152943420756301101355430455159359179525797150850009455065406931079957479862058450851809844356837993731416808278271124637715662773232762222979176937637233175297054598902620833500729427661646455907172952041757217741263396280392135149984400300344938271732815092806850318438865203973539919082803454611493492431428863762428447828119471615867422072258985043091418436617922853078504235620699834102376896007706411370425690748840667558074542203715474104147183755977887707855142590246341959750758687561684845639758130109237091757406071047697951763975063806135008597068263738173752841826819704359129746223619913583661638796950344525535892080342348125130684509716667471068888811010548390796583151879112515014033960173424060167461251002816860812758078318710471221207230994169906918441099210685271080774628874362984447895684944858217557497519914687117924528514788042408288065314178493864115685235847919099017511119982293835511303536139997216598686266234475373992119034365270110800589111974518782269173728981249160616862535053093964246094518322748300613881684174578162341989682198590315270672033428331110258407381513301195833422976636154988064825393600608870518559090209174715900733842456174421425519977188488104670042954126604155537547078524729862771063120932052738812112650229014158070040717820093637551987479654406867796169942367342442544463164412027172706775756162215217813314241836751842434610209435282381146470363817658022670939138134984395837446780499166284891186224158714246733760437266360103264411950061338921541217737011958411318303024519475993266494213366761358704028511794503109913320538825836250989242934110934957350138047788793807533684365575974820971327823719863176530094327278547994391757773870666870095383614608446841746396081128270350488850440297608450130497757901590705419189014620178370273834246760204123352374636240525984966854832265477455719614660487487948105021783535236181526955847957715594180434063366812445084313177301031942299542991911813710408534458973235207243674595795375347778115829031751795612777543345103088037417599577865753246401672184861459401088874293578186739418925253383405515760535144495113672226955293497753632336284956324094230543130497468685166112183021670693895470181758607441105345317590742738083592757797052457952308102708812849875202529111013192605626473836947938916879140397315456188826980154729253558469693004715904725717541101955256308147759382277353891104352070238252884738156635257600643642455876801183538998742449143906710322869081443485051191523069540443304582895527106001116113222694138888646912782060740422733491289790688373443109724486898966927280944434317668982174756380941078005300411915316907175701099829797372629433673862156231572344419065867073095845083229911357538625791933252600409755727703144835999609048873130366656060534936994171214824294599942275385985586234932685855644217352744396421774772587746465238413260015856695066239888710520614123890944817673897290934483956335478996736451779213544587007413198507117361373444198607403980491048726769896801411737561493567950519652139430998608695747917630314657516145266447589494343488962756724669107426213692831193748374096236734420157862164732351719112122974968429915961974812478622792582026811573160032123088855084338927142636146305861657335428880812973073581453023564509352263419772744381431319658936809612160656130192798974597385306687677306957556969356063834643805988621644906623126123567536345106573834566072759253388543869561019024820192758084115510161602111546076001717414362152902563176460615439885495087133301782509054003427528680253624480913346752501572209354557223244709197470090644387071490459909465874318042762856682802924058746679903923840547029699329554893006210367345034748110899613124085153874835263264475685068886149985559774587669346378234326995996599965272826246701506709018094632569869395119531514109565744301854605338675844619224479427030335227426341781455243090705056255923256710168445080280339280827107608772859168427082140783380324831748972205279902941668130739791299515562273349375903009242853139138996778625735455801690354050191909863173301892606167348104232549036344754939469124349612538289696740720601173012987704018286364753088527759442514001715923846906440573325890912468871081224604885268799690376349416129963553232676699530936851009450467339528012620762505808964609681470118171689915364970391740107860712002382224285106047409149834402607009448559085466128932052725062219048992087820279783191604943334212244820180947629122932046679761818937098967618370702973851398941642026091693981936307304087080587387059543270835139695184941293248837061535962665784712648466225567986213232914833201280525634755247000814402905127802223134902875733879626651921822918146123220209596561375043502283317330962769237593807144087096554514989120720175416413764400690989628733926733669691205431770343858492068467022278991933692260220480800954857954287075649141896366846296799134389115844712118844638760917525999025713879101840795060949669356256784297521874285578368903623871890271149573523907475278556866542263403278761889427048516767728423073201707060891803674186200765721945930645373109500638658038998297188345559687414053359422470888851712936486124340531947328176549999616404517867207830183483757680600047974011399957431757995677155956874162020019877157138313353609863610194744708498265301567436507679834431216863613057911439700085539668076892969407568420111279069739675451302905096010359051066947563013254215760698004970898497924162345320868421467216524123394529685954224729896628211320093654613979502653048601007560409072758048723388666396885661627624071984617971437422567275034748953259283945116057204887052269915869696802639080710041748406404500521219493186299371230319862066579465682684774578850425442737552432045678914734721038403498179637115042606482362063111008261426507286085810169178054002464168249915029550938930712450820425977641167193549248007571417819597029961064965456245729377141684681881602724627353254774779392564884343844747456289778907718613978865708489180381717984844264647334263322125119801159782033929433294934560273177224524787951863242925957498189992463334739379980849052538113590593544275571643565053220763431993709493531123268709473837080137807436823879173766494367863888399770107787407721367662715556440269382016501384751307304055924743432629759106774311353276251254772505908238067262181573148146003496567654328924210531827931151023356240751806863224195792159748642027831195128101513018585519271731034013527999414854946715315411992970464297436984539884756956602952998345297309935326271974453953832406872568519657224558812136519781570749763318577045023957630007587415920814906134773148297762180623359035785566114891606475274448276486208463190652461303322763389305025574620041097677101394067029135662194261546173309108995565386633879559819058997357808993949330774147039779924670662922549553779203836146370821725960769379878457623708695185825472085362539410173532979176634003775072450912963307913431453626765877250519845403659107480222436208998886511719833059693854967620546052950308223575620894758715713385675340091437527438438711965593652770375838111989112360189350841521069396042256360322185668213244104364940798755134341807614544739391653290342425878410580067070521251372087752465634626342450710407951713933908319903201773020221352159143937753525038633452738978819348094538752842791232269044703832757144944322633202275957189552772590579791535576201586785785386754858859153388244250260448058248492428365331497713501392026515709964263489718527439106670982111491597679255031793587536669613837548179214004170975968266796696691456866811934763684963445748487376938171277229737885043468842953312896442096744269496222305933046756878011821813802729390496343467807600427958793736812073639103523552300654139197135340030575887175964582912025788889424444855099871229517804316146225482036581448848419289009050952760291877081311759419039357891824690206854729293499117935469360222351599631746000077766246156553364877970670677352879852351631215794061290036117379645745130338519832800334768342432196107243675355794889822760718398737248332217471847627445061635246671644377748460888489131804993421464840124646099251366669321013009885506900118525301899032904459248615706158581364093338375072085166071496127208179467885619577656966429495143037752681742651709617869935392498439118716462528020682855602581072543328105377825617410667406863456105856017790670030067088579275767101306034027964395525400344101646521204791852302637079311342986705805323283672312692248398145871983452337362278058518227315572527789459097456808667999677915258600748932715331666112936752756657170384988730186858339176465312566624104114787200870170192025751656478338812716693582859595904686187054945909458378324405427665645255023489007476157400553348657637041314195696229461839253535711281449975437460882664441699313967960903787450546776663607299696010934225803217685965437995774305848723917019678433088001831656295150037440608645138952359184031117527227907179299446719736196515527492227640184232052461373763772670930415300197097567854061726459265037155563095085739265818507903268271233092786669368502321597206334946379762742854402241888711788099188838628076999468552057473489141043595037561165579829647890782032648959686099513474967970536102080902908893199117290064456564944190827970359526180271535981550204841377305242225802236649467392915248734574321115608647855287865718296864651311425748744731597839526336880946786567100906356105814673478938254231718878546774095570284667849488007617678750294125429317890607359789279011088032771694588936278123270530086838642495135757090125145605404154661484476010209316116865292357582562907920777599305372395505457224229954319217348720274705776434770313505316799613385166582698868902523346054505559381168831125809003756746237927944055591080556443010288370578403662942353666712681766424502920540764531933320347420304482425940556314042851105518693632753918240654646052286692183546769488898948180553616919136252980869702404063139879831118823057342040067175727232194507724096176845885881286516048291989241013740409133367087939608910079208063129996280988631551653512048352921610576940636529430426102069532421133704648724855791894895902685850572740140765517231493400272732139556098130250124062171832899608824740293485862656130492346026801027275023607114807241529211974916363412890598821205183885010322483897327446662833143430991311802770618589482265239656145208266582648799164092790385471207014341860269441412344912567075460625167919960512830668119173149243312570654134678471675829550741986667273618890144671434470744633582377735685736455100929451903508567444618816831187100199378662968010397329743938200005527511145982948811019507107632494934184223830517110979200300659381783757744957851892312154451806065682758429452769051901416391769970062599198985524582088331897239622909071805355078993805740105028891206614255414017353270638264674075784046305814343407458674531198917001846704119276903891739268559460387686710782249621785727180039598543410087818851826994025662512764449307178765203702849665120662429307667471332526847012298234291095588047061134436825922131421875361675544507744874978390450205505614481505007321101945362068829067585084226482798761239717158290642337447295863817309813791409642840973782565394059637213976015892191069769236838230687967081855856371103653493451932305306007537997863040264168089646565138455135233648276232127178739263045206864402154947815888364297560264054940290133146655166175840325960697412078422510693918855459775631386121067500949495451689089757075689806109127148693903888589756406762410599692611039653924949708160866299507063109113440249823662834678408894607141476091136460090335449137844481880720958881655146662828041389261297910565287197856568761999658951787637878777445789084765166506463288086181994164559904987796306135708275402585871554454532699395722286114334019925987896673686465961134304788466522533176041965522884522579309290337208314427504726542632865801799926892994418426546733062966744940258728341641414510308938104453327762448949813803348753298651647173932721457926282221007392634481063055912418012744650261691657940896562547563784907335032182432349818432681892913438721793803369575251633845314543292788698615046794376086026258451995321344565478165438121435138454134648251177306482572199572504146308126096422981240753169515360021412925375169531995859857540286991192076061706306514393992574050578923615650924130720490059113117809942045293180705079427522184024754948607937655383456213616436002574334488719468684242853376424978945001917483664118570994825080541084639509003485682213557061647189312422636841782828309004862817702586261360313631632949149787142303806168565176504684174491043539943830272997859644147083699444659246255289479216590757309778800953722754357289966254191770710148566359611346617535188008024812064172608238732907812357987671871834041236284109574665933437834509556902371619513791125172930942866662889423938199005207299565081487909373723212996934842486786853741233095076438860650021200700418388515258866781201818078185650750939290826052363273288491985797769040935111045002687856659694656915063912351864268370065354394450782807383900544182098720944630013371545916560195488465881517906331660837385815637844580246377933231558761255465627120685923608322188777186974733547795480489434336171075674377825824973987865126849927406917223880519677433032483622027069977978741029137491564927486837508396095544690330843330398162234464216156108157655854713073437971107395691683209395911859082744864548517192241947762926145772745236517524961657716585543053970438116912045568572307919959166859731836817549131443678044240325579490951849846848267156241709063671235251387481650944984734687990760875035216184701327428372839684457232679098397868306450596655135592430334394609574695314754077449443116864355533652130185942510808275475301974797100381810338715877791111097757385880376036802621121584099622215736094136901128111200489477785172131512905101237282759533696086359138300185657354090535382553658379635586032260224082996855272069272072449301253215749100659061893160525971809105765910720985207699112019380603646447336455794221508979552723737180338386276730989170136373227940309571129326009601507481027900775244679964596182557774850159641515295798127740424529166314075074763614199834209987727062262398376306729416548809349170471100301862183920524258799811596813942879264317402975118192858265327191663231137076707269678614540463633174572183944720438278888152367763412132531518152820806321407328652221532875679708830914030627447283670218964151869965104414115457844627966280261713788994934881160394819196610318187934719680823925308335560550849159189416747092000871861656165661147839170806545378809506759892826342659328441342537038515014491009133945556195700317487585936831070544223339437270124470433308991936173389148070210342214888468253783300180933110067297039784065805532721895883981830840029935927674913687220385048765283130651788108186962035771198812557106693479231038870709583094261801454016506268822428825269924463109759415666736850302362921014836972032828178775220608826100239113759022833188665949824246104260662203554331815166472257995479036309022482984489157621723564475563864639791416791806087955193556696829336136838547189051900665613330116556375254039956258661238097932493585575717316191377319650020311921267535685124318732359228485984830697126281135827621262115011335538877042416557774802459093841237768816800882652167508731251269238643711952118343541273704662524929461209067088409584564376969318301844013928153159090487144940760175010030651025974695820664185517125282762401391851755567822565692478090328811402094528331801442178645912339684056650227574418036475177394848972603359421185053809366232223768727416820002811987840317930063317830885921233680846943072069494076251847354731303129375947104842139918427161005834688490132562906097837530672678659456402268357767202665229049648993643772421040618420140878653073484253463709321605195284935255324104716486587889150408125159719696143160207949563626952761841019941445420214746613719038867074770805275078598258362062022365543217811857790496137375685139369898509884203811338219822970140392041181832876842630471917593575511224295332557821916620021644968789686005393675056921032099497666864834825094440722265768044894834539843946727610161309804915995357762347878088799972590444995761643025409168679013036623891568165932277068032229847815907262886905099390315608701527364476992146204700942026235257066893009204874456998854763199222405018443321943677860150198881187472640742527241001328529126364828019578299086372301689058517024468071673787061541642316010609949384866364654798496106228888594191995402549294204598233530904542018829857987764880880677064588678488398181853883352937989997451291499674232432812437118861278005060718219021595129158054665611345849874358722085733017160267217005674817700482217464531432856682919982586895112847044925717049735877913455129594280116765278350433538923371798047124006289212272838464477631720502373396328831511314040784732974687866967752045095479149047989967524119508298761462798400481937996571300437321558142408191926679020079042046689151284325561251385908141249436206592873541838294190181962828724635960903651554834936313097468547722910394593909882944590076026207578316762347436997918494358284624348651152696242545312919745779537311367562993406067638818531988748577007141724769650766661426965771692623666379812389585850631765535738617758190283115106266177219923244781324202717628780684504754380360527704085909435424906945560933385847313054306536881077965785277017113248558659844241894773338287075978961750372124536590472574468809084841483153871987450950039468587566928878646306729536429529834510061593041718410906799045339158419739321828628846378206492034097939708615190072391852770444725340965330865415667620783970979774637736414322207358534358423813079233435336531922931689508239043124950606701672691838311055965676745341621408630981854350597341091162341939380261880413005223631162956957740510417325989972059392442526917973621610935807946169600158519266670637324303070248987629060835687330837316566386899981000224893955127375833854480426973215594694031290772534423114473547239706486451930292263271817305694508310227704886353555185063316655455289678519054253060662897277404064768432312447394881405614626308552050636918216253985288003132809185379822343122704688290151619784311967706988337230853903580039781496507329812437257726601427997624426434983302483438933662328579321925639197270952287090543923726297576535991915222522877564405502426782003465465700948078731551139069116726891988193312902864043131210141897097202647263785904207774785311129050953279420890951683482722255317284030838259798934110586464406711232537621681518434690416903124431318395505701995282879144582427182536713173965921220005221575422711114999942217687563117853162925917950885432712483012493727671787907718997951580827892504933106979260028200578504708084731967270723829689805260867310483965192522085216149193666383081788350227072365248122920604035175529653824272734902032293103317000582272825690650409824110195958120225619586276036168801730544203003173325767615700378751513296935784495751408044837325918301906292738173745660828311916440411355116318582082711741121467624553588913645501911348063921743654409961883635488862057003517596939783443125167906968069356536331165547487886690119734718038529571186214473695512942609242803582624109982561395806998386901881246166910042119613114935311679092458134775941942545051658413459795361264948787959900992901395042247848049685090158629506801246562305439485412930164429081345573856004349990680454754388398496361989863990421808619922783738510156546460625824733966596978182218487967972001630824096790970910812473745909958934440295692194967648737418688242628638895163582064559744873578702203192597322324968475331438591706302376803200154471499556660620467382471958838115755502129526913778559435021207923875448714425569585305548922379173830765005216952184247299908837652769039097602954395349987191296236392298122074029101121839595752452506929468587887262202022564985204798547805093371254815528102739995841526693959238172847956280487105642610525928638473911538719468491060877654555052862326057544437965282145747882366940097764482531852860441208814725534774930970847412722820351853765850058876219242185971759658554542306115999144843523584492073383913188399869632261342582093373164442003098151729367617325474865304924694534743900310871126804279060291509287755639088970344268160376918380554261448757036910396602572663828674154269266876355006501863104900928981704236006883699384669421361516215590176332678561620693490633006800109756512689601176686644002478327506259049294123591105890565747386177054656545610374129775771151245302366338347965355057859568986240127355465053275772229818012875185597380121552663886662257732877176818942899208288572833552226763338821029967529455575976440269602105110339185760091211462797496794060635315879082336896952434929048986243069562439845600478659564220254285750090941682468311095668749130846879367083943810129051711848302004377929525987417420071225885280194215021081080122524167997959976410667163853591658577210443092311026181799709898332885668531847617246853957247258182364911626308582605767961349029352453049307088898510760616999798873542031951518946883615450745153166451714986951977712396967522750187318459518866238085680403174985520239099344672907391473369499387076511365352546898320842016034427628617995511990469126755327538808601492123608725774653671945216441698678422008744877220920701648839221513646720058254017843380057340192984692143754634893987915014284894403069875336421165030869660334433155171012494098502664209977896754436580978174903798282404491818911704885760720531454400994858814776501557374188004661461317677987882809370995939205717103187454305857715797241403676020934510707083491378717227269752928334293116239268872827832165329566288034451242394752441876642630731758412347529773936032403369627281395836595459338080168455088997309454048622233133766744976931654503661064828809961393213832376119644468379675814471562346269368369948538525584908517765636020341185454043890165247775392589532993658964822563147358358575169137903566478981864183491858656958471814111027661586489533411357918370960049189357140304404884111967847495501540665471802612078976641964904605344437475970469175676113262876350073827625310577070648608355063305324549882489757581198997825706237220309931127726329384995327689404953833978370177375146877888801487222250450995299349946629133046453407901579927763299077739410749330841398202271854913930244363022396697139759573137571041826313181740243538797467893419164091422868904247788818426215684348478150432725090477100711096406420241838934079781509520731284106466319227315742751736015617411829059474284839664297804666745596045926613761197984532015843836467772873418163827615285833508514128227738075136498083178338119676198600412864430470026225826533254909510023146631625558436571595131621582898546512223233391327869970910070902493738269591032127727650450106566016230467382637723289818585378317692212377298487306766127695411240584225175241059254543847604433260133073500767677385259850818254379300161660218217070449993671972218889181101110138726686275802999209015044911361297911585702799879614201504850873233254311891991390199533741741085916318592944074233443088370425103812861229451379033104650720173363192332589990694966643458879741549669727562653485388873368779405973216986276411585612100145418070106462443787371522154168536525598809088888196508814614876170661852377093641472015757219321428845519761086365475319442138893713940034538569760712938519648385054675711018311391877043196726572726947412597468498808116421225068436595374873050780046779982558928297378321076603048390919451348428137025413903657765784000193316135224546198785126120757892312486126828504346727715560208782125403885578428013488025264866227220669941454275513336738856549524662279158225889229086200336872943201747822374819137851509703855605884012407080774755670968364717073836741040414312523850956369368322207610937264751185319881604759172233703740012193485086652166419148035255472554047680289051978447697533506702878451917005780539924094409823288868925431508763002993986570869560670596406442571455920552456009199860518045949354780772309385219798995735992493214483634267104995107986019367045694956564422638091511292428369728815257817718712493341775617694969663791830844443985430345997506270706648543757039840372296059397069474196196947584109904101838884601663165181432300044796983754756570073438413734048446400618658522695072156474242370844334329470396358807933997438347604097576481703216115518761031528005180104828181734198886487115125046505143924957481414124993587420372832639939112790926717042294438375791488055129903731696180944372219752041313663268038430916752026661998165022850562302355496580153333718012505030200520718700845370012052264967342381527960969305657406961044548834499163557194364252686050502515895407798119126870544712291983566621093264555797269316577364786031546086045959088580181089330946151914896769727876129513393223027089694965693382616198084586918360388010900129680159278791760701184894308754535998897740650790256109476413441675210140294101634960204284926002624105866992448473580763120644601276134754425928265462088771281412235679190313199251341120301439592895361856337161689465206349438015283048875948338914960949763140634493957660575105318470897381596331824733346056931170979761874334335414013377465373247711819174387528005570992775224566597917789282365326114610748483708692478217315114989903318427058964479893628114369026961180692301173070654526625999313065713343763394473833354683191567388097271239753867824763968698603135706766731022946461413753013738718782423946661461857650752468686716798471303149614257736445099994042256756919138319542763882111273526267317056143514189351824571297315692658100054802066474909978630059786996500294790198603293820322554916450783327197169406613878976540152393243553728038149892304741749371575875244615695788587582003740160172200202233376138088287722565275896546841458245309055992679015979837768105080398128154353716775915732140986858564635517652046036606653142701789059474458491590785934525586205892258300268706602044945171877094015050500760107602254008536879021440058014033944227612223578619361955897570466779699201873168402918494912210104425573729207263687644979113776583081083313735736984874947724228273560970066335792729816412945537419759200113902153883195688069975392693031116505178169994615078405766429973572285487552816429235552810095581613655631207440137819464802623617865385622728029784940600282910594341519323970020724572943065313123976335478584180322254780826982844420956525138199020287149405594718854701845954800204123012810797091211349457588806293757899101160731237549323615003460489250903564358302422496492742209196164847354902424488562773424256205335672906848804504594048559565282030211864468926318356116911413153851758071006480366167316728908422333108713669191586775595005849387553269546897518898121929601401475580911225836390614092081415671132513853895610754264020952024177254690560590857591333125047522350260647099047107018689751926027405713562972009698874844368253103253772195997576937188918562776198849775283505209143704948881756614480465878146247010112636283579584582223997829122809150292173375479317667898780939521592189328463577615992796087479271337205677333355932500368774859659855702728519914303291613721695491449052269471922558200545656714512699816486706230333377733750142982684148506400386560624210197915628809026445667850415047590552072195127185666140803281596529748610083689085487111112288785556462394633342131798854773768970982932385018714303250512407104414372131035536188875240572617190091086218506367527609119603925535917930898724866560145709893108062653356297853092464720081957594497843086591339491114422599569259954533741472828169439614777711442108764566481446100326406644605482380329456902773042893146034753856479456937042312413832130506411521996191849542754531182155696179378181382693157183928013822591692596345936485283383993470751774660171434953448204611062288180316188426444910747207900268039135924662656061227235440815788445699271051329397882074122345215962981067682262672736098410377573752396885679172417624486144114527225669158713520853669154661092780184716339162793054371114955682124130984937083263878655579617853660499962245846322509869298006131180667654030730499850258419022086829768165312738490477081165569084380847255241361918978676984331316517306630790462347252435116899492835191700317829508545028378505474251451027252931654625564364502541884737959288157049777938925349881794008976419694102317111292510062488582532962134525031112415177639274269994016916019182472543132275920950252934623051757006459976708698531883734813932685728395543687717679454344683218913228000892439183456637072407854052626441090812405709094474320139389435928482792258730820969475644482941483403339622718168930869577609069315776587791533392747058297022425473786180774695937402042160949792159065206812101153815939033082467504537629009241279937874834803054031846963254298737284015867053477117919471393996829201588391502361283327558009022217177802398401696189183188627803629031393942819610300750505287666349306503237644013415223942936205706305725838488365839845613373653996142473062846688642585298493683525827139893649487888333088431305672954375816978255797011320239705816844120131329870133191523844353139443367873076508074960140269208174159549421491487840194594384712569420847469700108938827357866170948694937888851316566131263694378140545497848400213184767289326956306204614891619825634044225476030479876064754980262635590229488987027323938034442837400104054766324195718822589933476145749283596865626461693483366964785627516419493856682784438930803024073145834930729376546032091987916710603412934427516447291864852836528891815068703025874381539351089902051050936194966834164197327301984116465322522104562424046837337746618958547353843451310070670331256279215703549642266779613443846353781489161937744743086128316454477610498317250935317578857548534643866314300890815609637489103927860744248263284915609722474303516136742159291254733375020534784759482426384983025369513508839533343549786636024578311366070636585426578368368956300884473197357103438275710600748009753469116346435071637120846648329379234841016942071911541612095358249382360271440862215058197529605308665381893903684559502988673886091367790011688855313181405955875356020671185959921044874657726320632609872650308917858319964767136022738982722191400932762010799735190697254636304186859703159868785593526412757006133963354651635092087016782090358277061371206758455499445214663139056672627708403741887347699567175410426722060612939028782365346707146489967220314346168489141375794114486748702046153849853890155065762680518989703997412648102542113998767547317201148034746283892680630592029390813075318898246440529308516534269331186749187642098758783072566595033900212132596122859431719361529611605146667365073374230027261294530014098057742492550370222539012752030128127744736227009533434809961526963632088300094815181979465470317952299321838918796658269571185148186745051790258841145821927673181007535811794711882901647425888153532398045541533726164740690730847091758619740050792556488348523487847327738991718647724289187458831670818984743543771151633461961898410402629789012207892765435872260955987692337392861540774818449053931241574771895813971546880679394442435404275385521934557956787430583779889807312602334272015527157356966640702193098584165367355147411677312199390639245202061772792165232958208557160893631079899759014175674154743324876158957942787485248808206017516737359415883622446776315197335404074095544166851815362164695231725860800580540741240539525917846764056156484929871810777905763544452388363371336129659493535085763042657581513439436761435393751689809205986005110164565523200323409619101941612159595198529990531464144610782108506701340353453724200855430632073870354156696269579459791524800214758137810683620395980830126074088222680957660282139849695395839861290254806727184312028542836764838661570438044396188572607043733796505536517033829176523920091622375414715668589348896612207923859201535364191152135404910105344793709335299852083113363170082256959494066411018020394246331821708619691416008602671151977847274507796675631553543911788382119174455687553594362518979174869746490263333607417101493752123499764491649485041714051713965321805078157000220590358798685444804098624966722713982690391856642265216695381659103297800408458121065175528907737404728593677106560314236721128811398427919827032097778375959733025003982451058021875749325485848874544979493391229668836341611753414713102325077363205234196745385357391863415052579385083059102991441017722213075594231695944356030731323216762602718150433565585342928701472963972322869200103725715500804064266808489409683885390578395720887167660747323201216073911592735278799483765373137544245332867120407722002624181858419876770951034830003747128007791230848382323871596289604544825588330514270560866347290749914089838157968733363491276355175741488802013026665604425881816172673346364080281170516909916743512661971479293036378589241961746366884175285265509430769407031291059174905559858547873694704377135567940834373142872730040298341547463451558028776563151253854317668404804383628822231330415105632594847093050886405523628034366181481459403521747124115404525971956108056294948165476465682796684653062023429446611958465075785598892449961267467709842526378518439986546923739341319622932313144298496936452816254344666066668118115286426971472356134477417884143895062143673996227536624480464670891785471759680348843889923583757094601385001394527392570388682357719614521634480501436810196098552290837442695351803528668809675857815904865509941901708550813281830839945276053425282255197315461659352953452943734832041043774629310887387582105242264489736907113747821765395853110996743006796256496016260405606751974345745458163883129930339513609334670136856558014193131409795512795338650672820418402563105876908766036114197029417100707582370199165255675687674867929029969501659295834496748400552915076940843956842526468238600848379992982588279647540781505648343482837086480683978911260068220741738276254757235191217985912244271019673197592225646183301476007424530260932949124161340821364583096424187002086003727868379008093326382462598290697662178609945101097228560672552566306178981571415090288629525066174320540166297686852364654029389271623071941559010696871933487067961203424201698438726282847352493831663614078911285600150193976448040089833820471337707671149648171829883782556994124534584262433552723379690519239115775714300011594113532779940103527888469802529052913977344205985277041977501360715371477705155461783863631632179644260215371397622325391581563381323695578376530715752868236723601847260904313944161126732218571908870355568342268549348124109737311052770207054590951840432933865453717345468898619316752107966570079498206330125813067673551393610229982937327314463668991164212140238722766368499691034854517728533066693188814246671734625083190418569112339583097754316334756687372862170736074489829071945794528290218518614761217120207200783890869741758415232348431166769274891700311553498305191884548693721998965637067409066311315180694755719369857581473518579973362941891301032923964144659508600243159039652785349128167864325371891050572084768052924207042822229146415901971871565095192654363821077589034980454174536579872036079235818205523629344870319605533775375282966193645786560156009280034909654595105889794464102438123591691437279761982700534727972409248308071049619763031252246998560048735183681470580337914742084307684951600227451426903298555465385845445494949971377191677889550205076307596494902802845035748314029157614930091118285205285299252192799665206201942497176925937066983568672141639093396228744111124636737470382944185660463891740912053353187249032750223405204170415382603841420363321705593886488432227666614149810448070521593104671418157353090675974201949199967060641834993516231947878877097303822182933152893395495662880579644489816083036136152054252472973528531567837649482279605324925686126440912992545637943511646376624406518793727460444859803889074489764083373088521516904890990297623445697814227738062244603367723235405566782889839040573517099939148556961205399453631505676630380126555571555583055943839311342726023008028066769205178205138944458964883450194977716854145205935755315444744242478663893112725137662983873710619151095183660449489966205825096989957745233606430055506659991482473225084189285776055946637674559936686325490748127757308789291261317192094013641920941277655648041789382687581041726672842095214157370865310239596578442482554663083285240749371001344913144645281438860583502330606855290214604095768580984541463666927553215812565025415800340140982811160647385264190642569166428049810804560235284091120524948953558510497535799174180461015437707120821237562790740206401554899879331176275356299586452949613008421067566933604507979196018890640569426481316655736436877666774555115438885262350845344765849706381092224038845101843905945969794736684278393150750910003380942137963499585180123026546089200787106275749126284955213195525477243456403316951744293719516932267140948089687905681231656752043387911337327570950694131561580405726455503999774893309276912616924540240939385620129344356630604856425963047587053137581449096488153561298507494973004813446723743758161414626947053517330248401014742106047355313700466590864707212593895255397194886976336960463901527791229476494061504665503178383944009295924656272914194655269014386183891232272967299006640289974952941859666681609537115534976136235606865649674958567241299520561369386836985356601248444777890803274683991081647330906950064952672511804357135014554744968358617072081077692318511656119100393279869897310941151519107462527550948898764296421445919620372892640450645544723312504612280907044392748439883188266161959219078459007248486217204962390499626261189255629829789135773397113781458668482691128325343210882170550926562193109265941293557633847737520098550639536631546771473658192807051636961237761206237377993336864490864413806116339021402554411418060667546019022942697847478392610100181881206731756196040360926020047579053994804131882904165637736939947620834970357538441188908448585198052727349956663192278888811461672015751688183545847522767239421397355109002535708197693094438084256602290244887763931429427186434565608766603588470098675461442193572650295635965844302896724160617185951693020983973395997159467078899563495815826015973713993717193458409210829241365932635432986237869582100013526641528388571042425338474451625562011600673561719584361848376473950396870526030046458537774257103187605608767812047428760318279260262481055195956562795428953167781824543644257136795685836815312040358567526680690918729029329004666372527409464516681313312095022900715147564402453850282936162744356523729745823176721067981432492748515715714883954206340782049673351056100496073754638068757064774210975911994653522271823249054913712127639488919550506128793077039607556520696014792425875861871750202996297636127224325139788091505220562580606179288666209167884315359013599543182548344168855446123997874831829879153212265613773284984516705793351599568873953769653348849349609925935734328069930639680585407882025962774027663322708235570976770626957353866381655562308372632999571502821308170515269287521444176408031330358549432114821355293349987632319006293269011240935996242608990280778584494436095928998378273034949696838581623386351536436665642471126229563323748745611305353454616677845330021007455503355359712274105057899301254019966615648099611521638991601897893190797003085645332852781417470423523009224879716587170926385081315841942744204569410068410256062855214688286398559044086395499737538596684805550413595966893949394161186518058009112325821069344199427796429222379427868704651075358823406863797889598213610550772500716169870020537104699299514511675753193825700989763115493272029804983711821127569814535403037042357221802662626801960318320341418336091109752878847201871639967659136864677096752017318101912029678092014319104495840267599773256195115860253109558894998979364071753527411026941480287394722090773915802012124884445672082142238718154106405331075170910762001765077130893060079980303812192230920581571637109145618785184285405536449427815535664019718283391322754339684924149508417577097628382541704577069114464641267153754564886667846424534579870737688028393746901306604559616317857067172152027123916858466346781313808874809175258274257096233774303797229629340437039310491871133610495152171815355005985965597947983863069733113137705223903328646934439056225253696929273636557520716428107186190028103786026993859852822312979026439583156128474744610849917107966563071284784156811800424502938694928027121931871493852794792594928382441616148837571320779556911397929471429699841326446537414894324872752718652305634592194859873648094858409911760321149289247930257514253175033827610247580271113535370164252316613006143740841849410296586637888527693606428982587611932399899585998030799576525420560236588727380567519927197257433396808471674464491524050494444084049248272165508480454202847744128390023801852565440337541645712051611451124111213619356703750212794040399195172990729293691632802683614815376884460670814988216647122020046771599883408399782140696559743163142721651456066187829557567489875357723822026374719963312786191249782473017664148680705453593248348181896805505636396863949318632636953132844971199839820363362542013467136352304693513400895994785602361940908405579716475577776309408984877500845001509092595584449975027539488889520611005303879149842310331473560124481279910890648240763424023581459939256371062844504459083084150529399433272460400023745319534369255941274683694027772314896897971078613450796863469904812956898263774839845087442636341055178193286489525059536208566041498076443245804885016760736493077463567325952224721361997085974771153490168105462223427576976654201552303869364753213980353908864225103698460370524951014108019251765294420009407920057980452533717595387417546778900143285132042274425067205551688620940101994501150480999499017846134774101123842549657453298664412500393297745184527766805368542978593325502111201774420960919852587983209192879375664165281721119676153444212758008827359135467850308755924049673925561367725472766348602377970448860133409109343743895291660382714547198210588491777878071751669144189194723749239881456744154286704562219616423977712431399506232955319209875661415359481984616299363675602188844350997772399723925581373492217544499542696769559717533194962339996207795645396959458483023113431069912567326707729771273143378636851670034332363636080783067587723815216641524043092609661899391917530521009328181588652374988856137270742900502576791531254385482562298646908198545068647391938233618882992183443293534697786333934939401708226591055344585724885175382056766324422505626229156804810128211376183171018090864444977074805061824208020420085803466124485098254529750565250294471077426695528856414495578056550161303057937228945148619512989793014305854273259858962660343420400326217205563669599323168626150369286210431446188937066512954417078381118317679835438773751891112272823520357146881352767654451790739378605705187416803015254241501969886946412419318513369659779124254833308414300129421548431395865037303856816488982321338160509373619327054580058739862782372323824310407394940385217948935073711379692476604832168133710526230432353879998899972003369501785020352491937007618859487582502389609123788257221125824741485206317604569765805514657740920862129327248232138008320752102824408889764404543134134235567543587575060784712400109397258671305595381753543807519439556303333520126336690723987176621454149501575198489949053880823937844628779709188626282757086551481908872065743135903698732417928331082546156655812444423588679536273755053302961177237071662226404007737472016077644009350285478604803883691090240354749720658678380938270931936528155140801538264081651196553873354114352426284237386751807700363278518245909033282538585420871203477004139978506683446648446103538736421067057028260828812716790956173885538053658960538847239082802856437103962119509040857141842470031445444984102143857668071111435759843058536931924948894268877580810474461382746312254714076644100818903039556681910289195385960366639904784184238542208276154758257608003161996728693803947151687509190573509768519256264388019737263047833330406057928900211448862352774486093705711903659097667237791166731482935369635714958313873021592545961442893437798103947353745310478023940569913994902352533505570642746551372374845240179068811751350012469143563936415277118613250760869246466308441278571192641314029343653795392562573360106060994597688621051454990498987383388611918417873055650745122528619903432468499207434668932761500052440372023341961240143757162346797063263345255742824747787168022076424309842327029682246889285166578803060252082732471662416835387944361622574980684585195797032212738497569825190339375257968794378137803265019215096068857160054039516111872971655720244954014953297154630464097108562840299098757082343180289996328384939901116212418424920324045831919925394780704949898288834746058675382020655670414219811221279179902203730865604254497539058381124805643760741083559904751679351298276569555839260403558253309252382826278805822044663069656272752086930107973320521611345058607680946770133917387556317283464497302978839035359129440899699825120814425278808614483347557003055650474511384932505369530602715307522513302447901559120026538582347175843683915722553985683244638155131071902154936515021640176001962719497208708186229302223812400619955983750273860885495023842449018223138205305167310135571292576226763205393658306547472670647874075444564668134671235831442072905065549157989417342215879670950489705209108533168627714116940431159164764457488311063950707370465280986591978180586803344131154977205734668168513088972100289970508173565979772958200740702632972223320883913675619212262539115229206543429684148147439546457114894498638902823665913915424027058756101634831580241337210199951460286712890215509877524341162786178152124680523527368915502799428125222430576414644437112263840900045630285171555585763243941346709290274195954972643945452237840449117361075839972389833954909857554379090667088011044303508777299898818271320818975019807478088622519295614226155217207102550102010854498019005222271625921985336697076769218216952925704291172649470478312575167769528632821823513326615437518852283765743104947919585596905364755861512779833410596980739520262030948217402916579937318408534553928027872938834292969145505230960623908826861635382327439182103452517973468986102206663742341404695646096361132624915040047722623787189797790518227184628337175733044847198497412468722448198164235380995764972612452781300050559542798653867775541223753875024051425057580446910677627079495168853900012882089204335689937609227258271106194207344930805035994193066663582291508333114930905423999404839207424771851419927131594359134813469011943141971125813738702511787027456429416277923499284591036804453254218659423123548557307592001436971309584484995591289072946856748879133417121962514396524153614832535054587629446259180835728342004443934356390980649382225089410055036693325024667078110414023514253988950656872483533481352580281625005205085759322964661302433459369102446024244194472467608898560748790960461151200988425455314944147046149222853817453237022581862371926279934266621272371676333854877152936947347259526541592495294367880054974906185219735847115320473724626628513453063769179975415473641733830839306252973907175730028310304164864979300336720122014174199314571702594744292857125814335448280478430539607886552903565575189416014214850750385584986659983920068286347415560684057809152498557562544545414643577013094956365805929753862119644898259538024258379787622611542219481756300375641483420654851802870698495280795670311322736956449156289354877549620730524224089234185526976844965649299332108803101364459364854175075456566788097162125298324159056398129055662109776230455338151572003968355629367879092937898225259462171906959305798177018215603924501454088382986595831555372977135713648204309941463644566367001610098840610371297484151983905184151896527267069331046365455942824906875901546090137228093667142059038149978853924524843783334535714973054438931848157987342023056620910771201531897425720773115728555966860086422357278640344552682713935742390920670718680020127067155171909101119955830624919740834005947633834842852187900511932957545775738723448804948411558911468829644321344434058546011430364126436074983993161691862291003865866223639638986173287243227424851972355532905814391770317485482046623250934417625834422737406504216986405089066856202697570984132847811456034056249511700692825738900469134037875185493679904192732115516659107932439291108087132261298612652088535287374643948837029013996762896959075343624170906382390092714066986676992670825866803305284063946519359881635005085075459380132516140120084791956898979578199282562648586156176270865099221375063574369261832657322184282717350727739502081798157952405371250180138400923623039412823829797474298124349257758501315074472819736368650721884147411287078757834617759279976987591111969545328911235737981375153191802028076227005739765685262128507750363088520972894811159423569259796552900311945805179935447911675990577847105479662499200815679003686928836333238719387116244382604314644501698154917962652215911978591778043566428915069708843365892843504114413972864584025790746127805941051614717867014931263188721963382510521263313173825278763588480644923301624551421496993016232326877763971803080908142536579205611246786817614673925236190837951939835808903116602011505411496928200344088551670615899767281071279396042620262570111997836252211282399208107642431006540500211834662059349847406553788680554811764222350409060160732993475128355454729388052942787082733000639274031504554413565169243023929508145605378983375105465653706422694323525494276968141670305023203133139696564796999624553528606783947831843328973557775977302941707802214655135869494770418926014780850998221513953580043460761512140790958374703722401654891424349819864055734839247628926715727580012772726807541117458656769259280343510412427855954437476333141159922700759093160119730021681403186810651503021627589091374460545103977395788553047967001978120763083357139982348375397877875732524602253795222662093649906683215698287072456550325646111543918637837093888973223784223875323705282902626244611718849331457287684029219089502951096530771911858302599237235705195052311401284541991723721261403294310869351275400866750185424190791281156500272916348804165340571103087041356121035170485512899180312881780057782346548129133614503810510887916677814019430864411822255920263573694035827080408896951511910220790468605435806992973196420202627099604625262467660359055197331326383785416906258071142445920950760650514329499723599710860884894010621307544315926800053017458168229775058279131917482836322631313272170973025801971723181665845903224707621679692887070922456621677672290721950327964020266270675413325356158341236343499864535231528758789392230819950439062920142034264488524362068185454947237443451617315798330729735189939019779846408180577386875326788861374352114739102385528739659322529208977917954507753347735936407929543382291138727472655298918528626741536754737293847157307279009808261977116071502576465598220653215767080147149661062587781268787482003948686945302826191533482395043864517603333785597102865086810662392524514921551760802267054143768742656820000146279452533256177360489985672477568225386010121746977433583017245957189930638209936011725148217630841294302706399912534636758123993769333819070373784668028873566796492352161779893118495013623880588308404411923295930798818530198858295990447348351084859912264612631816768419013932162685649769724246142586809824415233142793729946418134455866577822571969809621970756334062840976286799915916506560516841872776023756185279754552897644892607268994075774856608115761894854420665389811607111125657964527313512726883865679119475964967875116979212149024850955876993438355927652389613606488149987271832990685905579771658240428623993891693442267646809977832562393844963541805082845330276831009658650617252506128327023636184967935122191571533437336969019347780465340773897148660072551964398918992928274382446580068815940697158930922285250347344884086893952498699173752816059015768001203426738120590297762998802724585861297849116300041940617605932251991180580862595490049632752760909770360863666467101506757789408511122186833135316316630397921091740622468830727832954155303941053709461852327196747605885136063705692181010641922151283407263575250615643668291812769734263773362489769313728015886499816025015817070238578135590895385617244786077155409227956990356445607297081994436989646399320102040467810242484744389515491466100152255871579280208717491868849216674823137635403634506384760361619531984861887774214032983271728027281154711966155852486057484857128193249409551570375226514126653073474367646701727727652871024803371169401154638722729347072036403936651207553075276779805045788324381211350699954442845504535637804611577435812009601381227469918795488509926601239603590357400246916204965405167536393108823211686427460203827890227786093301928746280511988322455327044653529638350408994539850076174430422343267768440759789098252425327219909915223299474367581083750177045182230195192013949101485719609584643782163414945429231377434023208024538895207205276197812555927412634484028445848924359466854423465662323266686523276623445785427103055410835759475003144590554469521178886331468453593366853354924664879424540349492706136102668043476554485605520672503529853648593853802184603057324707722806482779445616140740094162096726377089514719138626513262867020706116815791232934820209403551383639099798151893290905474198398749178869013364725952782724641522182277577641094781156529140931672317553462589043148569580819430181407896580601666239972517109010751643824867565208010341484382408534260229235633627307466367144154947411068703699381321445687566074095846235933352878776036506130061177951107218418071152344318201055056165697681822785549886919106037640498785768072039577700449365056901491103615617113538677787535024113939780046975447633136362178590114440853687863059801960764859272588105559814862371130993816446086802016987318349694293426798427931216286723286516425019990817060659261262364694948047055571170639759594158908735487199354572242914370630751344306218244212274338808826353562120474078039718529425366637461221821979813490042619307858160677680586691209161767717707496724797483419800417205862538715211863164465826160678373534762324331848557963244053961126247556924314321644261035050503851738223299407444775891972708413273311505691088364476239338273489862052427379734487497575405549767485617269981464961052436989986880295355043292151513853806008671031386535475465397714198947686732661493977362204960950945589550572287641706948716211876953564516782682966537485035813338776176241348489164926989145742621287286125850696228016944764261103679471864657895363429188826223665731457752862653685775702037705332868782323247500974704686530945160191771799887921060801229579222747038223157157320979218779761478813203864305350327614570780189841358485378157340637405431954006271632803569751005828881402040565894788306501216010582791359591710972217002301297283942322372831718851555138339182779805083002397207789595546971310918389652345051037079875691727155949726038857041082986959837506368329489582254712333955419976362954641557211749155891165583132472288246977306960126071385874056971382894754453146968369447679084978200442441466099044946448072017641922690344251906650523698841295109689962340401503551075898136595770053750937378099150941828996358464145164168137509766099460034020685417457471533904028421386237630386933691392336168894068118002366321091332229227251988029588030429234193948179975439137432078598260512620751037849774844927320585495523337679759728818718332051827274906735070049997471707724011645158621434378637113640581318404736576274181867308947072367970505467291903233457210608007622399676498900418369773350854536818696466896611554977894709993372750666456506053919082110097731514351160007324467326874265783191538897097761683052451275637793752830606250512289950417472342507452172956187100994033469855697901527143277538706533553558912379101216065652357747314067627035576255356522972054141462389698672521236630310961753667499424295425649177339331477876099855891722796270254925959587296133361229090092217146380599785189934354383775987115321880737341102276874109538899591287623889551835607603332656802036183792417408134798811306726798407883891933767885181522062313406582086711534948546986178290728298773345019881042212686359696526057080093587690118945144173216386325138132610704838691116682971949564205147211785447080552384807081426961920871938885430295076654396478521017984604372069206684033116122828781563232500870625249859036253339226656435123823835267526966633038258850120799444277724422477682990677707400140055819814854421598464718095682835937628148814229605288748576523188906700081934600875906666261204702428483363233576253686868787700897686989134863777310785337402178938066952071702094906628954716341811302380415289788532278260440607139444654065925879560881278123596281360829963034591581122679676804634638465675063551219277782930738063166821728788341752669049908114623186679227852318047078412908351502165884105372560750878584086830486890072044755715451341055296050737874345626507169793699009265564194084826984293429405770548176259695471159898146033007417081297335991791670831808150948228229572563132858174819487587436354391742818496685503766854744886696218338719892010578695594616580274369269851400161397555922248724962114973130235586087754353753377731591708683428623114150708450551538476281779362230292483580840447750121720787529745612462634907188949385913937585431498570808739736242906042552148942865848375957120273729792095172174045239063739542976903412502485285884181658019065058253956591819802102247114948111564249203890064722892074146779614237198796500499816997374515230010324478687645937964532759458074683586125491606156001803118196801693279531324807990702728771599059472726089157070602115138231092180415631247417582976186301037199166516671259658568186987024566491010658510276453226871006456983931909865990128327882405991878401398009798157407866764406145002388629577051748455134380048511692317279722676118496326860604565373323859416062375437787251735361826231373741335326845117266716993996937645254978557169858102435805803456907762018317396542470275159992319186950388623236658972363799508173068576791677160124923919934836557971890632895164552644852749112946777133692449901742397444075555545284565598917353445532148050297376603862074057055755979445880153456889888811185640037081223811504550513778847107041133355532513823754428554057170740789509147466647915810539199567965235883876011988572555805819950862849003824040466997403820800612629529420079043397830267138832344441833167238296789943397991246912663889663421536406104058824802373198765558208806110393397309253625509649606344022530041534287994018923878876750137743458916343560099408906657273520914138360491110884630828362390536347059373142965069818763626382384158447349069437696286093426479836278631296480717088446809021979178653718932161031929746172173726183331999346234693221190255701243421089120689866385519122771356319300831287668959456838305678611233119680444392661573840519594571588196837321436908987493905885453654225071705018414656674492405623032931145337000558860317691143584746168048958805145261894322444331541181758645689976034584685661227897389356746931923282158447014632975256661141267426207913554936975634465860116026186027695236379897496806069543672739247392430710667239987359780316029671815912230652832234432254652095990289988666782649330572355979816669746804140564193154060729613454105051585525353630899559314353852546017218747985199305235770175609952508505301816637588251390420355087247954814914144440873484227691754231622764463296683437205857812365572656966384231970697374561686441008160759702835482399352969852475208586181711864035662943225985878570686872096597222832826700103764645767534063589720397632442987088617557610480558511311007311783632928221261439063528238205119020872921723728953017368944963836442015542427885585795704838373692709445904229181156810440564527263759953101534102414985534729065469949692265665791812774320252293679775808841459932363381654243747396078891173330071062497628381893117774563580315813366772136683592466453500505006150624620681003700088920336906754230155259865908739847261091347968472400901785215746422076285836260638037481147687937396852463834631352384578088898014571037621633202838920117673362306782555721522048107091247467658612429365262854434979539804715790934927382978818742477128533560531445374549073910048041127090060284094313923670936738834521465283076213957660453548038937615766320589431674637095586827154528011363614677856631289685945554043887346211012823855967214049694278444659658291870948073005815457763583949511384165050736970051083790029848139484397839125844913294642984883662760598494056743105007156339432540945828749380380883368835895867040078185050575158710931984744522754016410483408552135260739053668917306005113386614985084814035706364930820461277708443794975411492238045275489619375802094066038956989686024219340273151914903648316280463828284955459991984045959135870478139097921127628467980083215881153792129343041877895281394032089969376008587248097838306761573111873974330910911442985846974295069218632350473273800617520107107740489276570592210309358912642463227706382915530181758621609349409642832031654419215776721769596349128893174528958848396415509187863978026297155162440137897082371482748171615187216213098741790870524153720185286286445007804063815923649123806457766063400043084752231261848525694347624250156540474259959194001226277837993094917245657478321739104216163960243321672053943998908088647618220543436511902408086264713075164984463918192223572083943877712932720474327934630581017805318335680065243021739983333976314046229285851103098598923362858457138553160549762753538092447805760122280700170882612640260779950486879224564267542416120941522532502651911753042684731956881285295794227994344630122823793754814747066260523944148832486083754297309815370418100637487930140160775978936350248140991938836220287145536532197231811453429794063560180717161536517864795929899646160687397612120447432096576663243419889745773213625468832260492814536135219968327323765618429378532726573999582112654775068326264869473844177325585841223314913414502800808805380719926268432153188430668588368595052529849961672771316221906136383068486338642144069188938447304945814936683761703500318887124144508423875011564908168180113224172354960995938999908427808362865741675357282604788577379850729003875244440071889718195362510911042053887877808282436421048746525166108188638603262321935187263621225974310117438986027474848648128452717701554146368499766247488233206024620105148243442777780343955278131251758976018890802569272224427788094251629482571995046369526030525011316982849808407829874365861954078288902278167659809580516727497985085270883379450500638679640702096493724511546073029751902517605775940826961023425489847171942037212788475826133832131964527428811738280872486461418393013180511068444973170121913065941603124927567500079464816417669295649397986503821607090501203764490419596876724941477387565190166150524591810851959901341545349371306861942061733858858439094488775972629265731224247685714570946803513191358451430240483091518920600885542483255710704966513815557209528776251645998319770650618256194253023539108421481439627660434517411094074183890077757438384830644983968663541950445566583614738374348155421238515961152184920922420097500581403685476011129238980136291860673678618923114736819149177656134161703007586055062010874092995960776109576947330493537979038944453784588335551218507621193300922063925827037419659167085597481576843011041617957731232170922971034227092532651686352100192940338768337565607242088311927978716400755976593965185919393527989450938605750433787888305356805465979417045402204815646338373402554916630920737247633645809834184011773052521978752450780204589205001480123670088788354475375197120426800217073503668545642025158418229295972521574030746091553258800821558174150434992576768024947966139382652015375269661803291656411246985476482450373672589519842590867632915137646750860224020115028008809563848623036531678950241820338016933989204784565884777251774397734596222264113532514549790370322417620773460580386535216547695035028961000713761041184265895045006553009780367980083706342860441788207531420402084749955940775464776956874456642735864200054336649097422446861628188672859738377153141989450349488792917889801020801398049618316458076163486529456574797170766105323897624020542912903607203190362166695597445438038625664051904227460475655203385023596516421260387936084043303811548878729026098313864236769990238568552406969026564318688765282838464020690115136629570740389266370278215924827760634921703606979984108038448982312455843048417098401381989044865733019536738792446936035773285298788620928203482797118346781721465903145396238429450288483085671716383259526746693810160568664884283932093180978815164141041005156910770247208492421804907127470963671125277799538932198821884737619405088545440995761683204559703923338972176072435782171482890455289374616002791171572691975316456437922071920722585877344837863072889479135468121853428737384990382257361684600083159053957722403304331492252655741093444834282869713849412978128964510091978766232458671274410067884108099264119604902958094307540936901094567706938388599375906918781524458717919045295806489834767486856485672536773564499242150996848170155575757287853042558468441839784086874090751542982231186443686755547716335980517957901848418763497017895476375158643601830544753066356238201910960159845006986753488718574496365058457162682273839353955217089156588098381989628993321883639715343239811459813701949668181365332086239493360878764063222386251940766663914603394859295296428244870912239813138670568600156465957405805025001547483194581353991643028621672707033225010829269932478044328051302555967094309797554832041599860057351635664426700631055933523853858654384525502195020910478187206853421606012904920180765411505398504342943046572589705570360714596589075008136603806984471042486205883305927915698125361052641579709977447474501371005677337684122935659491398148952009403127203050327432163046927916680170860666537788600029727762610991416978257806093768290271579556985494908884742025150792708991963814400431329948229783007460709072194127544918564037732920884574002454666496873416026113464457891933771499964211783006045329584793774592660516129734316303880992371395283419464142531762692316473781445813275696376459850587376816402694742341237787650665194800117698900009347949731076936651418687562923293649959130523677212147685129453814782702933867556488017422754691573307165806323722162660485334999844974892074865534560147352279207537492055197343409031230518111979994200748433763798744417152710416629650520357266093772877270198176174695833937759768549159129956490968476928035334513973728983413737542545033119055583025668877996414267677590833088412173758419406970313406334745834861506340185133436397818464204942455164482606795331347568653340936813045727114452188719181073927104869674255804260274214530182299890222833464584023982844216753911609834865770405427832987810059633893377235260510840070630819108042735738737901181405017805353365243398917941373978498003626098693016898293850661351117012859265326151373708765215638335425164266796741465866200060362993401067962104551705735254688200260420545373512082004701943008500475795307967780713440077111305410040687565302827072127697535534895899781280339040796942428679018421819398521008366838747381859144023295658410960404607873091166426239636917297482788439189602119417930885448357755134005324950340645532643339126064527545685344120008286007090817590559014964231520506565390832205786991434196297714196906548462568413286174915913607383212376296143907544902553568016753319495045001792679832727671077903200996719293052544516598724572318783584769578912731875929610958721509545134008907845112479061808189719884381382221239257830708313429272088635899711165334114314261901275218867209027478674816990208635716150803945584995337688440593019467067295383938186820449942958540167500553116646192155413682564976662879520018254137889235764955156008096112500807662152647115515026642511851184694140802437777718286153790031366755618007826540535343248430839072783947180925070861942406586196128524042131573119358681786736893559350366840417902640621039018099470484855372077766239316014863565895202632108771910464930801269781666972335070548317957557856767303876399707725458495064133734120983994882947049916863880058757980624491577356596120163871560423711226422276183148936327106105108334838552276346828124789140661388142586739830793169281229523943553388306561399893095932582844079271291599453166201889708132338344703766831222524867611874405267041566724493009892519540119699661644878801569227109382523788268919567648917595618049298284547318988926808330522287084364353693120932563501453294720326798829638783557046162785939965340841930434139464697730604528757711993530650057854949849689557666389708739263038727930486867523772029961821245506908273205246194328902398890682163360062144721376081944674434075931253925389058940792280458489556562609499981173162207627537444290476012757547928606985274052781153606082684403534247896212760453857014678996751000655542531393335733781613270102977002817713952709092138737885549871925377637280434720568718956791158750909558808065576274293733325949890200675638293880578126868273841596725074366237515844780272979535079985377713755862239955734375057563637653420662485939674802203613221094269449384503724410483890100355014482825310294184280332406740845192985166120885634868797582867317083029588827041211344709699652384856380723577438187421991359015447452530929635420775441636214957984338476468338245701003426599533891697325742370485934285051771803473999029589075720505281019157094792498833874523354808206719401565918398397008039613934533488831643780153466559883794731434395743759158230680119339363092698586538322748505985302025624380835006095158297578995901651178277395521015552473332500827065230393890416903236508812865186072090183274110816696268425383513110025366986250993120282868865008109823215153959578894943840965648411026852867888738657136026126605128977604969388599816802433327168158856280224068010493595984054720705942837197801499179115989547844938448204499701982356950099932747582126317655097501391501768628625627815478580988721354926335766733569496578699926678576681994097706909875764565455317296365411497755524548084810502490628954019603954818027036669282572247839656075505377288721965480805013056463922546273908575561521916390996865989087258851227402723119188049967665092255131182847971298643065482035129533713183668876194193431929907101883935787198953350557182142540154165451252833592155011570595800221192510943290051649381523149005370317053715153974615484863732177222745211736310114079764502614989764586037943464653859414489519584848304550324508216925000569639193449652281472480238916071089703128887327764508121163891397373893029713166086341876643502792782353509067386626318241815545498329284089994546384178703897198046589112304971561616393591703961977358478464312003183790630650494069568349416645133930624349989002042865839554214213803528042037062633040322904271991538540182197438591924381935620561537314144701120414642602682910760798387287999938572295187169816458015230816681312921870822131477311719622953966426030022170162065096484419355935665691112711409246565882177793994788293875773897227109417423746501184994214497484583492180636892623300154231257213503839411680457082437162632176744830308195061546016437049694492953494795082150775517136868687646088641281135365015191808156206313290948945589307861080214328166676833522951844570280397226757971203878651137954709465845543170632589286750442853322476702199390290240257781685396177707364029258820840310832742613744117497658941161988828883264247569139846181208634219131240589978970795855583277336868832564413003961599452793025153063810574711686580959038203206078610502732574907641332342331387475962337860942137764507409115824426448175973485837342681223749872667966843589535203270133000414565741947589747423412392861544572186418348254792373316019168018151812028599645497403989188004921350115547168000903742699544730899795597460462168102803730240010436553838745244160924931854169662449190204570369666063161964460616417274032363920185243543905962740645249627456727812002052234994537931098091009087574605294101647298648308070280362915001896828890435542560159449415723051858742979708253174750324058666394702346950867993267558286620318421142284144058089170903015704724877678104854825713815934853002181755753002668383820958941299580942509033322254815718515999830542487055260203365661513701373630290607327482824011156994664100333473147178054307008900758861784026205881214456451546355396780127621345507578057748423661162698687527984930432867124444191904290248385190565351784442072450955960419014156916316306834800009602343489311429937356482408692143648208365389817538687932277246726903111529820258751430910348082777306903036416468652692892278580112846935604902291021937377238999432593416540815651759525987962286554051854860607388769615326818870468081666708316839923329454950080827443315372356494446038423358722965723268976355940135557909461757079623681491426481364909771442123747542999108816948785337242646444005078637670573302070642742166410590444108518390632735818726446102114942268730518800225905236620335105196250161730304431305600621311934641134671572131753333986799147723034824563727393567265268578264190930049468969658322266110899296697872964324903215878092395944562458182492163029358898775538607595984129576207796873077056442287067429407567151778310757390195046761890987320804853222940974248317671649411602455253662972801136223029475196038688118176707500253471000535928096805911995723295578455534365229571360682181388242745132292068437004963028936845560751573177361523805996340571757818493731351271089691461687583057980849782039998058925600371743329886149996058892704429866245547819877333931750254923511144335518709154755954119978161232061216084095107356193612975176687709318336640995955072443676973177437997350110696267408597751753694002025447801660782191356922688181345542082993927553156639451419222060263751550987397685009117915338908710174237067506328807935365366910124482935147112249757077553836790108959739979111045404133902109586320161464125081640361561156017175944427726995076007024450044320544767295655844984882131078384797335374435568440807572264606268788589117956340466512257756768789763780070118497806958592156521642406551899061012508517215483902622650997085866023518781414519043987246917799444099134448403330343372643994309795112802398979615128357180948430978403627956616068553638825155651800525527396786491401690859944157852820769329418375279738274972951384614293984771170596887976368707006973811470429934030899974982356956329277244120609533670428900257489181439443411199743723010277988591533228094096720781337454149413798478246159673092462690688134685980166052606673122236071205975344681789639274138241204154252911894315680448881088476297905640888342004208931047548556207821335423498241649413542609756084067722830955391156720961180916505848950165774103977148770374311889705669801554584563730403283584032893299152560020869494656046623719355161603595347304224503298039459610327747299138007968635189956492830769592410042931973923867608414611671322896945595751466286984278351734169263060338474269665561894531539692258389516873781556005148648875397928771552302097809790269572525131354963991770816669171568198958620234335024822618503548439839102204013998392685774867476573451634055687778254945303596824879667920420195055002237922795915804656686758639591936949424475024383663194526450115999937497223619762165146934702860555754598721593864202911949085041951940828057526244529973452487068879088233079848559509276777018043481252095484082146460046907718848725757953527790871036363367313926560676185489251719712778709235068347367415204500501550728289243049472772091724114935849845325363429866155960692259469049222972916133330712724714436124355918907322718280634115251928867731039073208016936548181036982573659071091787387012100921995152316642434490128294223313041562478675336057952977316603705266946215940177605414016870574925688104263063166853308715681670919886827053478162115402232062081033553303459985001300804273070211159018936333477043562051817027867691501252218932377147003095997240197940158264280736554339597837147477473456537649325229914266084880409734066169314214572874323775521837317396605439672086665551879680463290311068922547073780480700556509544720818572765745946521239148844284884978202663640933715598340591759731629593288984635454417514705865496899336868523190051947853232175401820074628334915842532590599127527026478856683599135793735558166063975635731054505177427133835870909030430166332852942797996727966612085891302862762916989721004178908914283153763318740527204822796547580839032841526169242035015149913267978460846694999543191796789009822536292400931784988765490228848372565202861492209089134217663606944319772328805301272794337774133577523637342036311754605440188321589565523796456910566919733033658942171913578847501280221223053685491247734519584099976483817995471670036196332861632303379795162500097849804961659072767830275675217744150780195127621724921833090357395910973110869078230889326854591208268350942974009934028525626878710652612684212962892447855328849157962530362133993448129231205940370371452836479107659118744307133569927091836595328979539570822272122687131146513323953197924795774432895139853541490648202376215300358409466665465618229198663059537944676375223641391507869896409963599657931722498935516183372142053504107883121494212917664274665478788733819535985737970236072414218325061920327626156241508880540348968299759226038943349960905108235125523292984088943704907180060348023988214209196798846224999417074492058307134478589101344313575201467485359561562498946240633038474131438655529329797666311648021672944699672758985339141990303044954869151113443415991865129087587698388400483900490916249907504637467226690456647593131453033293084327565056046096396722946838714646320812605465599213670095016791630154849194672827575101923447702113888181785340319585985038341954932490464157372243056622871426328293748569549673817487585056856284214994750235843543772561888117958483776480966507346750547251228167282984185988100179213367693348959463227001007040061414634446069104877734182489710979235413279607391993279900591762553375992409492768120518557778626475799884652953286496412260313459422894574783485246605549007646701624525017869044173944914511261298495779508631251564173456038064670259566039882456868705546743743178067787854584403245449806867963430294071210806550724029280515184468206241511035276610903462349717223011966059981395343400584786520151303182930057348977300653976763968139412922860675246749349936286155232687375992648575234329842977794949095016806870273635477024337432081905262910280902976118377199374121167279596684833831344113450952324104642603161752026626292658344422344659888246552350170971072543605978575656179296054861595328039921216476068033802951839754920500061136848917062753567626315219826069288303658320560904552473713569347951353494114871372206224082757221879015823388017194050855431967064533101663159599554974196022068938142743749624419467301173592873250223057037919872790364435110417663283780085545713861672830327662438332689680418411757778576393981235518030212438473402357459249782058938090676604421025895182495169800003971562963749424183936021238149248806101914020435530030665023959561972562494887412203638522003771510200704844976160321818714714556182817648824058788048640822529697276527724375033359054119467579446773372869967562672377674103320476404645220762755239869040508679009311463278255591555640024862853466862142610773078665544069911508668128685339428029799534021711110854685917152736930625642497586404270807810788076309006937773429632016463837735229910397445542513052874961830512667995255549109354051263396565725153104516776072194261386007223217563106938392679693647881650427085279385558088250374922506310693562836874352116557922250781780461604001757942681388347205608264076171344903847252159810531648093848688648124478026807048522161810630473984715997084821198107496706518624143516819558503724155452253994716601857735228138980454399696241310347603267200392672690386566076565533780258397494804617629670569758053552207462182630348093243138382497807847372042819539587920179126977065543004790685117351161049664654490978362727220650089804640813884228778280848073330685771917345586794240212457101625014499980813929212216778314618590009103376101533569013363680443099570900192839753318266109085529237427334960418815341712020549209882092142393846286384743084096756424536435640468786158499674033960842792722537125010030919227641923598559629526369166714173350695390489075268867475617177699304710695783614476304895392073545415732254216271383339760669328472080831423690741346873005103665093070053813271381687158151302815560928249094959896872538638227539532334278853797408486569741504470252558577166923327922725976875336784799165186056863500236470865167051438633869883147514720953014196788617738168011209198787145203842693763986979996012698756100566962213446601319483684904843801194795621647241142814884018144407830658222496880339897836790738149353179448968570729007336449399450577675380524112421995138461597492899499383745829641730277342022866979059821405405811791803787415862682033573417762024865410357982940803711447226477300892538861177827843849974499379643038597527851235418893789731053184113661564662422534758432605894399642807389954327476796930040588281395493093203665036554523292232149614323946776575487770386201683338503190984118629218465681893970933514198893439454501779003337024367364818322465877303250571884282275135789861616628869884533007397585690961201298999314233917661580502653413585662068055368344832918420490839612084622275102596997028161192512815819539407540725629850326394361769152555881787835236980484944923355399583321339664427034679643063694493704514966645464791723239371826055311371760854510257701645019535936506492020512421193065247812519712101511688854591702310392939187439805644594504816264313876887889252617966588254573569105680221558155865739144796023087737307597039583046620742033538295689882531803595013394444564531392609072136533008060721379840344795225696710557596463509291184147844524366632681278879486799053537203651109899028849592277119775864453307338746083630412117287878080174260579271815299643181745167802556129490552531960523275706886718916548229929451476651109187608078663147216161286537919542443413513203296688830396979572812397691320999523250419339128936636186728390929595910692067294088913010704739818570441531482906369744198585711046549653755885197785999634399474574165485028517287617100226521255013377611377453334975114620093013116497333866474700392753600907690384171206834207250262611748176039987962869696761731125192438566891591509270583334275061745342058418287887095565753832112317441356142867073054036683673734195215710417746715152269909573944670749322450559289100927223557562844451749917785574754269058961620202426898197180139378411497560769747069644803396453452234762147271394264400203486633115311338904111468387484038974059072841910759390317097383120653680246090717352586627322695177811297470138706150571787550375923198614073733499010224131394014186525463781277602056377251743802258573796294805544193036059570477743636225479898521733837179821114704143597019889979108653604702494506891223746096094081842621967635623412199011823148875168203574043123618409350852215384876656554768765170365034407489320353562588554603454797279664203151271293437403055996527888886056046809567906100415121318170725269261496380282519268137306571823224351155027892437825684979452727508490422019713681178348394762489029346029252109305227480332807388826706239231855923428064792990803462506934319712538895723083493654040047380396657504602710908822140994914040216963480154838490633196741454777694846001659874127648162785393979799128234913866725115713214525023690620503346873491611040649986446555864025090886801970906741026844831277869133574621790245392575567437986829243560523173084274134227511100478893058127654477215461727587262512096289080932106343641772179982375505962106334016386753681439262888283424595896262041573978291244363152456704339887621793703719966102432616915011923269354317193807811006480963915590493041111264776276552719121444688213030995350728306679504557058600365817527410818535813087774005989544927645225830086407810816796639681091347784943928388254425636005405509965377018751788004242865950993619160448691899775346898975153828719538111066360595703870788430995038038745853692280026406142205276320807274286922756034184695826024268085845576990505285843859238089355910351799687809863252702946728274088398768523966377636024330970640198808209699057653551604491292079518128089441685251132405155168984988102006278774979794540184641863674797378023234481614048602577170443014629693367566861362742362193148313322583017294266558916811232741734326591230454786119567727925562138499978315231630224923278593807249236501526264444694799395224955399363891750114713373647681891934115802286910490522273506711600389891643388685156943160624786437193934586573720785368248940062040289029261607953584389618161557396905338621108957762365575817872464492546278488415200515003038150243149526841483231117903096123897338635383632582315930068632298441986209279381342472855145439383732857966102031111531786161415394524712425023031828802557825106385060388675283999846620598365478143329383000815394916209769560456893366551016871096331857030515818268336036830751389426962474481117990193284427981033813068855201949133178508424529798889491096727159035296572947730237234033910948616104864732726836091978888586244767664243651479831263642807028131640899177129217624940871560670321107687001124879624722826273961531096638121533716036066435363289661560705029903864027464408163322796988573492879686034207426257591912152079015564176864738640202552662180846869821617845862350663842667977368594186605963336722282359273892577386563213984860618168825094239600603490275848729532655237667925669473527153647556182946563135873466750145106281951571220169883890345356469557103641577279862416148803887454231480417086383056282053003530721924269072996954889693052461050920461825427680846412862534414039271479912857988355604180870786537513522921177770229339458342516086094921370388122080673460245102016729645090771289279182062305531179630427570769829364667520846827267837141553992673048030776374301067005530908869772907754105554791010234053300974669424467766234179519561965719813205946710656411366502886729242986556238888061729984759022445072981744157664646231385228815894849369505417681045759219772410627243080432306088518139908054632013632886634039391763479827628040238632294289152552746725519333802187490517987465004828934862941158102217753157400721324748049085831862242613746665124966499846507799900985815420234126844733277536481984639326873212290227360775865609600585254352685641423474663685442614037415799405564101278723847392245532794629167109501809501069563227059374756549964410607303922772723166692290628796873321944437253087449912453275829143868303210283237916623049890763557214178071902813849628578539770319283725816650009257654165293901388936237456291158819468679494898181975411830999679859982146045297508533178852812632351494042635152566518868486442593047264578665647700317632262753556631392300119559887979291548875178013563644516819300196541440898643254480537608541218979748545636587431799013092614536736563652601012158537180212301289050257676904549993747659430304752749214120597779058336506251768047238179322063594138630695861776594119895508822701136388541065625028361819844598387309108703339469181385909539133011602356624218801286647916991046821961559922654081370229885629078566020107428800306689537634154820056990099446777796271274954821764210058211407993611288125583428784378640911884883184048747387779740125473580825326183729369713847192417694375565937825054785013050657199670199933003405601660789247108409166087293923648522593297239166085763070331350266455344028459116527596642020847304435983140617293555195713862180445451009819534322323831420388652759375243186804173223595751199471196571162096578557229756124793110008703110354006042675589921950504334634410870735509223421372771881143365119238999685693087491812200922840658673646224854301612852889491961897727649825792396871183081852810040574589741168472637247365229722161972855476409959572497797787309136984311655962856662607051794867657701995070747431951381839637710832706994159288555644269735753834296011860853018310089768015319751298309335017070997269423068141116833333429666954864768508790607171968242815907001102661356685291520132296587515469969049309123081773316179936619200503697812615357535393173005535718470341877999983412343518644955711633978206089331463090238541533868962052835363654742340329846772233563179091319092620635127975229887528861632940376182459820903154331676591955815734947148705414999632594125174668644021217919257737692927325971735605799626235837142927444090941354923396087507563285239728788493459611674080917394649095300110036052647636761368809219676090762411129981075220105006254297313736937859991016857079696623243738662885816759409040543490043843994809744072686740274833734544100460372953229121357486715045254900676499356592616204523135518466072058301069371494292486797705336988826269339520008508690703542573658015849097022197353698004627237037024896506635210873507988892119048803045912996124564987620654085829330460987390490264758034301398622191821378111126624705191146323593305867852079293244975442625277439938230255033047127500378604382926344014533927214201419462720014805047448407549710338327179373673340094125616164965766437636720076075682885511517597502046299991910086145367383548753799796184194522075611147118197916680073968918728216139225110712273442991279381473712393120094257379063214669275099053904867891123397950120741452955215398333193441136254336956030831490130667027455461133734444937489533672302920139815216470770060832406930480689468399265119981170069796034221475550801642326329144165809950538124621630470928410323675726134295836624566816310536732702842614549392110305858270975683019188869647833406018678723198039209164770132542854045492453727743170029312879755307394073306183833888925434565329844581661693960691324015435039963134597266963168797208971718599775788309669889726024674653006619929762278077531319685773394146960379203137613791729908629505021629350345769850593323303990191935243977606185322720035545121866852258968727866211816293122069267642853397576654880925776828971734753324633632261763678352615601740081832793321898102245535912601189004889514328690667093563139050074360038216366976909476237555429751183333012993006164539576744771674882264805871955203371721699367134799303854397030082106460028991454365732302417455564926355560582727603597434447917888988507474133731367393731201869215060834193850028682385332874930719093470363614998728835096836029038598033877909187730681818649371055259782139214407966133990205667007253016160094020228500360031576772852916835507456707395282393847819873454523715339650289204866128861640195668695821504555646865098019472223063667436412774544383463034402648535990394226591113284537147164344475068725401856929879587833995509639388313332093122278456872144461053535663109520386907305947272853183201725513265154931136399853934599574554546660521546958012623687773507625898295501896485591595204104490364882039564844725924992012033783590662162643358082563472930864189625188642794940501321110916915839259332062176048162634796155324327127315642475007997763400038139382314586436658391694047332075179930553830649469778119471143900210118502034621078754435966545195884631517109077386091851996045465608861582597300841510072334666730844910566420716625179355505327576442558604323830247722445062075273940482782730936929703653259834011976019285149908450271468753758665687677387062130017159481116740227632903312192564236963173114584516167117254477538075345060219348546176806797042578120215784198311002264412240889906948293537737120849735139166361396340061183223692671298019766311344261033231220645503927208921836610118845860933145597877873141438501389666288033314194016927596490312007689592807725585045592655376518741745427130831933641501767895037988887019176858340330603960377761270559566180518780990025352430038131922784395324311983285573996730741029924472655273621089901408996696442196045037455746254167143322846142269476857118568037622661295355904462073811058973124144441147474995806314404675878937338886709960069653822027163835535195609661012934528565877922846107679271461169126915672503034649774363540364686437317653638772655506813715237177036342341478258988003638399295711423389360917266232693952185530347951318599961271975105962384757579423762007612264561328029060946012944770786841127517822848458947908509546464661869342383214521183479002728912135021691695355060734134927733035644459100706770721218635347953208287969464566987752435655914948596799425838852821946482762521140613557947465482831002149982033753680388472255897233612680559168414419613551937005534960463622860307542595509387120601268223895484374979191033491053130258657837442987118008145505871200204677241314076982433923272502479023281456405455915472978262264747645101530966337644816077075533522887252710902323456670159957929458520897383867599263456350169461362200097894254113830874945803199403645690524634707507933654993471483983961845025392229044822239323782534301742314249936808689411354448756919452128859715027638282681381712037495836360139524765402202705939132698751969228429111369740407454111071646306834488523351064399789665266353422417509048311642994004078024425168394476827801110248843786855608065657570342454032695233345575548529044686699120001611376074392326867129235042683576709782239419533178855161754666044461187488557273247901087917375586794444533180539170192847408306235609090797077043148482652702078395004606867585829172092850583156855781629808126417431530552451622256369199451498262714242696310329550433652383157030118012467838361175020716243838261048299458697162536354397873462138817508105072358737128214075332425722747820564566998511377957274982938737341275854641335324348934775495341620513196858739904963335754946392964195595453845574411464144973407214445572574718931926898018382383850874999126441467633647127722265273909699728285855770180010774372806720817756690411336279632974273036731660897449920822613080724969513177052561284917969149874348899203570651023016446304285136496852950107831791912233943723553368547625153577394767338029560995526153690602096380128463505579875278337071606496245184504862581113248596194147665261233174963924909761683145983862420048439577529696479225633626258755782996904390447281409556352490954212513510116902979466986692848675441498978460571653765253674225799972710624558486477155207488181697029512169000413090754476144627769175991525309613788283410950286839736621412533858008739962603803957218461284861588669831977279804621270735710629665731833303951345907473062217299909629543444440635711963686756291132150408675615547054528535172926417822145002923295466265034557071393936342894720515202637314220958665688426843945401279647295787800430995704578550066630306249906726388552476314382795170134214365047887525600745452313012750047736201849237430443939564586229586021246194527916321293108920201271266779570018811006904004658515830363763366271826625510651500711305184847650545565878251567447791306689229292850212523608180954704103969873037454104293898700633961333005660999460743506810606374987168833337867127628715645301696017999437037042576251074881421238901569767902505982782117650246894005747358581203341838500989403776246496414137380096219507657862121841498597210983196460386101892810796392737271111469874283992128916543198435448933197097734988694222200574723806318030665460417094116489391547919654157036383156618748350554232801414691883666476169083329630331682587752251772438251715674072838630952991341349511280930278760760268655591319794730182075883744022374101624044875658471558622637927119754801870798437114381588805395565910050037106750309713944732883842440692954477990228007587677926708610262494199662824680428979473911349734056202634254851240051699874314470837026499113631651828278894848628368553096338966773234278352623163195987400191486957723440777127926831081833976288440463250185560893753382235439557220133984432931795390680611683634923120278856695300376551130528222017882395824485130402437092881727386800230727035566792020884824443380998018018061185958490483748517107886583934848173157651323633373733991131159559729261268138715186420748271708054184903103453914457448996814400317504747026375426913965177552932802973355276332261850800691989660978973188394751299845165238104054199983129730170610927269198308559353043991387805081076744833710130691484866648621487666638848746580411927829072320106440945447320911600806938546754408918314849263308207926184041401689771904815175525507690247742339773381598427572452048038490767544365541779942746731126371341343336660500731391419340735702404874122898330520496541293069191794775181665865836193949339539140010051401456267931200651124186359248989471599124053503752637479446673036278124536436053684069792919048003368828808315168510832061378898139189534933463179257457836822218196062213688314518785488376652358403239053398447990956697801555531931864862444353059994211446475595353376555426988575979689969776848864927284410163575393274130551771430427005956453205210232758281963449184399086585765583634688383711441968570707886573587569550927628536865862063139558748902005167486596805279128870563378172445627710845138061949071538503742441389111316768268213428177748825466135028247959311042194063374116395172843033539542999399965669234164650564967370098324728268187971451268570642323489113727797575709620281492311500560640496280843364324136042478649129520709013996599192861924888797304041082531425549477490323648287479114224789561321767741070938446185902382173567042455153270234233472968509466353193767601293794848491285844494645953359368943924380288740445214852907147081390945824311521827092980029995838592273837749485805589904494470838806281270354374827262950043578873256970002062315410089479329483079531381199249857481866998219580782942675655955264833749467669665305404339094799158259552932671031987086360287340910597403488117816537915141291485283369643686545862635132011074830954657831164826632376773658660035997486132967840312394846893183076975310513294518725123278707580996734243761536269162544133414804653425513547089941944537469804443039641417058384980322349061755494044921109239389222851681398979561400891057075910173899324586524658259825171987335281023878237778827049511703387593946274530347440262646887891354897146307879748330538901311842325667502273261984179847673477436227846947911549197222011410496731932067463669801822532807199828000134299533399769050828239575103464137827897211612144704897078782012333334239984469890829288630682160939727166315301298781489505357026383961734772743922952423103859587508436962205042291631042971295304039053868979372326518524181472036954674124092610857328838279140727089408207792254070615460994229488126197455932912507507785648986628381675577288428687650664617717273218235498182144223678020272354410798880541183313524864273377891113975177242684062430135012005033430141761183845317476671620474137207563076893135499503960378294727563910147427675956819075951119171536748578772125976434733242718159827320197690990310876629425945983865120160671791027967903543446811945227374817793638172911238104907660628042357009522534620727953449545191673234236289404708489798590603838775077525817863199146026860677562266536308420094456127695536302775263644255709090953492749492262868009486081464454133364365489855820015493392160076528683539083371064412358483198344983805387543396053747423045015079944653440466178010874569303090671744971342305073805395983135962632953718691341965891257532891568181696013064276245557976465403106053119815682470185702549365978898329189547126201019315645623928129886778364934092645613526113060782377444126647453415505081941885018327209114401797465155495402608755596866813052326412524562427427861929868626428286853446739162930564656015610614950911727595520469302127237752086904051490873365162805396122930347370158673277537587883376287774989327305058739111251314145049685959072875000466114322781411560679592521602948535223687524393190316539903724746636912547705007395726720340439342965506857201192230489467996050292733536908573473705364926739875931367499694213219069881340665486189881407545583452338806204488745587479842894163432606619192732350104795647217592761398088558913218251253694272364974538401177482240299652022111151056169039460211958823238745082585400946302444162441989482867117626949110377214186710047442203812554767885842835961206318151118771870025414431152070674347830603925641775079458001015803030498147410104117340606455020018256821081757045863214494193600815437539193733520051185057979523627342741568348828296498801244934632787034560769832528265465755293795632663705130026434779390856442852190257289008541335113675477368427036172602268962437958111805936283499356993964036264384137360628691648960912701284894932662016864666282477860712489418105084180358063904835739846674099157616038041619399346393154757195564271795324594177501203038563304869563335383714698081916154238435980618554664044954980039646832430874573884569039746649815829356345482507941678596858393210904392314510968465519233933883546335567862466950030341638544204949298940058867001409016331430506765283179337829367707113439027813677145735449035409285966615705201253394573107853772894170293007467640313131023720735500337834998910824764398793252180680013704344318767604988110618828953934331824748256844656850709077856898945212118659826467447744091962289632092627036787625694905453912654095739425510861492574857419243026409482613817414106237775852587464714504842541237642353907875344164914673253038453574216607510540989789959976198161358523897852732526381448650382423913479225162451376649427866095459644494222421185143322822173265885101767973023238694698481312591787947727299897165171831624701737908547591284676957154979193650618364816867514997680133765986205723402145207898746159216531957158042110749730827164512233185965850587583802427825928909485652186847436816562000464557474122758315421756217598743459776997887389740302201795979917937252366585253166166436506654768334112544361437699649271272064081847239530716654562372451059765605064490309381721342708712084883018044601409356130174166998326849166703435801527244857886114505041105269808188482764272885438735609685695644063869997604175139464551853828714013079522603932994580878895268372024502808294521812948957576181599691411589385682302336074332828011369518642276496286106069734967445635033543730871638731861346836760037256510505947943529314584962629218322302630476982697245945291292937838242339996828015115154584185487246763429034554918088565852959247871621759796372798484824509002691742197158647465263706527597612549838743257650720147697956195403155503702488679218736485275356802590052870297977371704629273317461559423296072631664132585456153430777932743012152893221433182346462665524715678857487081640388723745370136462400868616481438369405050588353803241113735576362967165939806476857507963579175833986630066035531760425620353022722354681212063553396871940362424809087244964590744573272452474843692883751348002627988853121013110067364334818492448004389728084853469068897231497061962107243506426571770275188689165821230425397937639356364135162687063202418812734292001529985106959235152999065504420673907032123720860662135942186047505105081850538643451107095667426556857299056723941405808606747392067891618705979671096230520152646289377722612753600811269496207434419920165084299408030941835928960676056985038532074749772002227586686247342344408643322444864799630765309614203781244414086827852496109611436769608117677280825548594898208305294400172948118970725450062270630332550698998715616769994690308404733525005673475971027458636655417617587481844570860279699048011693134677681018676646651430214247113292813508554784848067273229302256322003509464758319309382795056851497166903576409382063309116625256832724265165545770896901536930692097491267809641898778629538483472819174451577720318488145701431594313972689482205343607240754013724834754553715641309917744865565560741332445876366970730147763481647333799645328925647514740217800855927848715006586240293073637172384904191058786172556021040943741687602370472653825638650473742863708560255344935948389790237041980160011431879880952668347728641234264742737218957084976319607615446092646632027853427583974575698224775549988867032031391723766075487700986950059305528092111464780995482768788897842346946666216206064584375059634054887200372323429808188329259701974845003414871088776368162538539773195378465184173172729205790137813050416590546336016566572983543732003003193135731778098582068250375436520609174109100938481124994078224638874033628631462674013528930334258599465327570859794074435520583707590749334558258190394245450306065134546957394840895589548278876363146729767509313897312936591124903612153273379288767606825536246975499014808674776995492550648751144953321589018985813459621047117860844613120290168116044889065108524104146983918048899967888742239845418966063589353935934296684381304731651808682807167490929903390210672371491685921486001208637032311231487006074388756122624566763721383583078942263246302739721829676657183987812805984070743146073555873833454157446190626188679506622884614671264970734831676482762239576811650740147083516816787944733878272055074678822138453443510280533089017803748924786419447466447546164620616803167698894101065365550842782633045625398130521760187001033633680695299094153134459893569135143443336618580900543283119412112047522284251242132902191413836427342405374771850890956560600467716471611820928942268130426046218702945829536133631575464662982569086626000790203315797372654625703291090043543836179535103539316322778456841353284419049834756214173480698499126595430167777207889105937358258498430721611831357756897918555420248773574122665240422255282005681805943933914872667839788044147284978048339880280683381697104992415034588714574907928731069038046631969155375035614938276748796563454796149826694440387573375211753497275701089628195463685762806636192797432180823280750347688882608471792244830941678642773885814738595317425463186231567195748079576755287974268894830146124615676405162583138035363476717181491817141395896518824034701401117835245688069515623206668809974381649112360640413331898304328684647580365251903348113272640416955673519339401729368848468357666876998613479266537298345767188063399088794062559115517836366295274278755332635853293317689096296685530502756816532997470311384960858195966737955961925615401453810660602939124016928417527258019817963927368694038495758761750719622728719698264063487062775379096926513264607407363738664983362580985527278957189556981857824943490859179659641874311805771298985822936041346984308782256564900272698259808422425800384350766986219278350394157973537178638423218843023905898047386823744927819435771098754271554689377721139220268691461255260493278541716597201228882037778729526473089063887298528524356399174945094735136921967526053280735049457124456821790147569984200532245496615789978583343174898610193505003502972760558625537270264430393652419884876118859720001883818703139675434213981554884310667683225091724667038233996881542946751171702030573416852111895763793748893384090278116711943273082874761211233031254666474875651588220923424999024905840898355655515708810510318645037774203034262638171184218499632718176696670329298310988406104070768321683953218820446644471667236973998887006479480355679769979980694375988973808900008769774515278425883164585545774997111684568639385480122614074425275249501275441656003288491832503149145672097333822233822867938353768067111075958355483440378347099172514676582366561385957905508805331975670855528408210367758141042551639473798114155845662747984197241615516199521503825105323220550046322312906957309698585504641467160809893514793162172854393161393706014676944136891943575054082557151670626799303755301652927782716159673720135104965461096779461683957728035348829359933429270250103562465624545622319045121387551406848343292100191362908008601523608192146286540821044547442038331474614070570079149806265952117206172580111870415411809958942437356790363066695085042391435661872585488304980214803182244493529603015040893937415502756513868123601521243345365306543868166091172065738165243910279122771763939285770309698452127183580043098833733563235678052986470178743287720695514056470772788603175507910221382521211651045290266477498148117524681477161612271965170424838120252660075779805006122662703344819856761718288943966253820088881479700676901389363175819117719288907051843127910806918912844332312761408935998449457315056644675240099221814619439481966820734218693147160208847452321804471869148913436568959486340037231098814513518878822131600096060047140497090116705293578001035558350037432184793540882229142621582527668696591887315926004706119247378334477697805306536698292546114002240019363597296453222489523766024285357101346439552317592325112597126489845511439042568852837927814901269619543961142971095712891888008051125662155788437928322172404773167993983651741368058094295853308928568755802370301757218881645016606026466208375356423548802154304087411431204016147269093538119072093518426681864982800189898157130506885160917880178298772527646326691717971446719661906985648195782444908060221698766867397800714460112233736671572704792868235529499793870105213585459657261336118535300502993553970444802196724251443279435436141308888051926803513002684220963958524592224231618294323330932586989736370411606274937233615837231590965537012520948990902153109796255391543504733688740755879538149963708802975493915343368272010213528648089056438716823609829858938524165596029037773832295639258956755595191476585973694690167616729797471635613710964890698624774537052111172572589300074352821957660267038210957418051801730866108675075975879550957582739624578893239425890557844653807329999756930188534529020079983458274824183614037863511479424727777612668784453895530814643892773946438280659137373759727640283800837682388098516506619036123574685253405734119832777294733200406649627317801331938801590034862599494685034791023575632552185746593497138876352894362513062355511655435885702876369132356470204492968533468176076788473799366655676822179074866201134003549937582794552378591647676456414911202738144982728848797888065767744084513279246872549413227721392972600821945037364555831927099694525774353441455519405014449593592187516770932368793533703435608805071462795532319440418947086821683516524749669522147440640426818153867602250977672732779761361062704278834233009343114920973052388270453018388049367287219106919777623324340935820338214396955398792927236315892110199980163154005264586716919911831885946103611900492262067469587372666893508310333489141329940816038567360926148264731837420504017546559508907883069664477415726965178729200818870254925256029964634973008313968589838667972095900470082549462283618005166699955148363384104123225477481244946038642601904599730872928692935988179840615883907441219507508249600890495782294503971338534659308397510080883808701280068577249175990076046208133683757240463669859278221491883163251669079593895211715415066944470020907752513949608699302230762017553516353130995044547545722059105848093831694234631804302171563912340105462006399861528781769933077937284439279198953908488320467155925389086403256394435483684695308581077693857382884413501810046191032829559297590609888081799653777017942524900631174359426285575937970382689341986901990303301668820050719135231488766583543589796528481392056886291796392813045469468522246992402174495461097692729516005652991127615457280159016022508914810166410347230761763450570398426317827836942589596650181098689131387465621017584425587838884484120011876942370706179029804054178083066048100838548032012833122503936509952506321619599614800984616929387829174186884284015223301574367792729102487805729112464204126814927813705084057925724416303018249575093630535895095643230027095393243825628964800893203039262045111293527023802891930323873382287212589556503621535722721911375211288673681640810277911137985576240563590998690422196371027481469131893121849787115065848547196120945534502151472468410168744787832383732082314815853796599692053435662801497718852256308778144925225825089048150402274066045960925075114586806491382460761131067767416093724560432686761365826916411233418347574558787644900450029203560056372538708219129094712526397026124745189770708145434534170462686973653305316658296704314496381932784709229089049496665540054755170774713861664655576998437559399988138424040241544946733723797659285701067044150949305751847530349121936356992216441794449632248396323950222326295215237086997350333571087121980393560870026946403011450729971946308703626210155664831376903352671585890966598486059382099214853920258330610404338633021731064084879133625575077139254564551469703113525730672903169519009241356228030926269954947688646418620421083763093855276932359195562286289052969259118459031874447617748591767090171359641032634802817483480432466666484321096489891773293300685510864944681362797401948372375936188993724895261649317210158473209193981561864762267637538101260094978675692693011708501438810738000343104245838703405925032762497059987872626223647563759060063399800425074728964835652513137291503179411059094230653018955912778164229904924138084629798262630124640186836119877736296337749072975009719415677998115650949278457397888590705323734624371213661645111132969454718856891166604825353192615078545027647064469150598250417415625602988574569612239925849580945781154078668580989732952607642082123726469422804699870825752531143587390475314890056329936537570340628158532493945034231955906603420146239912983898893516187920911318317227769177730570473848211700611975752670350339695384011623875658043403612220830805731356153561716059808748806293868361364764313124887926350778632950509944916328997090320439042651371643052402567753210114241891087277832648176139695676877286859934050820111613813052774694565329106103601513337696900399355328365188465216003319274996027810596308107756794577196731232597809343168198436509333720777661414890785499198479054269325881335876193764143124392259346935193087839542209866569016447456638450078254494579413047121130928208697374310526447153200621214220137651378241243564755387650514832236593934639784011437522883690865590167938306399250652130290675460449906599821388730074013661751360410997051001542063816198982744394711848825463108081977173373327372264980728731622374416572122346594009049280149015568072797550628507851841033399844548193354365981866535172647355042457681604150706029052710996092117780339438042898346398222094452747007820714389901610940655192180863483853007392633853845542275973503108202571299945986156863840895898851929539151938858701733170706739033421541074888970927258461500684026079747899022919784134137239739493625382063225294086332310344080338161133197678658619016673474088706222936150642301105934715967144166211104659669344990453916313964331491677344618137010493602820778241763743388493462463707268301256131988708963311870881389305860977423472715684761963815712203164190440935320464322909588685593325462329757399805145173447739086236467339271449314688158661630147508194305579790658530121323440834254304790150729402616783763940306844344084804985105207282746097020999380847074219006672153373367227098173726267166396663497122519327700512432725387616460868345330927332662460636034293627636420830922310539786136014321218180818961095245711010495380945109925589809276440054878586084147715697163455139466083726558228265504894007629891302806260494084558521306640903103281588333061245947994939597838780895442027913811771672447638160983404573607817804029454742907548812449835464527414687367862653114470324809914617369071615898902842636586246465781382673464727180167781959507458955714499626319113539709653766120138675931960219798568540198472962037081784189633465338775149321693866251847106093327185220090321179578775745466625926729820266693616741679567783448058390328503520381152684159210113904119835646562307581995774868326485984714233742775289309356773730183278834300543848950023794646260221851435130514845871788026921829646721181239475652611633712998027498250726830709214467935646547875117534288774280692220022108833132959993353549854442998329902492601019416351092151782300141486191159014943910816246512821278445838398293217261299759728605458179947014908926705118099667225966531287680714507748576506428938200600070658935861915388288309468737384317025967985224751761813463486977620011642098530105894294842122034679007426902889947663143227953320704249287172510758130301407006567399450678117827063096513117091705755450489047872405841216962232934946014577089369893819483600135026827197188813290261766172163625840480627169742522985979027569111445609827053749881439333248468807893744453000340095006213125725510651862681764129604486401536791373327522007264802844355788067091554880124543150376528882472336840746305631110864518554549316349372617703632334268419986988479844739936448377897859984533272762825308956492616573695727407216879299216007673567430272107556656262831511757813174087145821210826980463502808372475798184949119550196644067709950346153912874631226276046471426133101712508344747477097164248201019224046543737872200347476759232889045552582336060579500810271246725617602550071559336498846417119367747668727193417240760765435963793480660841459471419241093797625919955036155112050302774467178393809931165705200101026561812929095660544878293031031625316092287963421894663987187519726401102319303085007348128553351628568991205435583590205858588607432796592211585409608986882315412884045692383320322143007616361570859397582346444458514541025362569725564404626193005567909700284889644459878776979510748745927431415362225715850617449553318030114610077968658356476259302481176103107362502145617255465409708925378684610744950776746892024095267559041648425827502771716667661232225138772016312765818832705654150040711859393873996043827576404586578720353186397903194829642810801491451149459957447017121958945245205113364130937369190653186429001840222211892682310966373369470322627922691844170121646045832932019788128999051432407478877122601040906390117433133863741651227594800821458950829418556573766848949996495190583292238672416495817387426299998116499333681361799448977960089641326713791474346280654525342968461331298522336956178051517013202404392721371886414611788952943933299829900220089017540215378250321588756103059936618225053528554244478539437324254012042068674189997130324538288181878102022077585924196649028870790820670193290183484852207300515807988875811833140873918899156242596780508289195478539170222650117146774152755077182888460078803737847752981328156415657782427705493623516123155710446606045554774272057188051462986749623989486971299315010186989956783817176325171841304252156745124951488171566249814652705170659745174475287605500383136590152198505192566625269635905848705223469977831949906263098338402806472100300592056480249444725014940132195687644420848615785640493930180126019807320479478069274146398665768985868118245883274775091396220062235973077926755918393842347671131618947676997561793633735857966207860143219539292035847491692710965887039957744847108329447167631602431410059378100746061287351145623051758356060142644558842885727082107385075005370466176100818138134180945884567937444174473124645897048164463913001205050564436583765374872903263020649909766331554968386651889790247620159039581915070079482654886351414920148013711358011646694448029151903029988917186908761602671504641176331505705842432791778725914807588503200549128686896241594868868662866026486630459700828382727032592087505508653642282894832898498883531876838958462173774246623509423368597742059110653049954312939800628300724482530236011332872444697281749398220499717646685908191531558639654379182510298231283339255216302165072530590147804950315485179370972826862609495434279745477137041443106956924893547395673366312435548403074049823620485044465080214297466652647754935589648920262838162527068717767152808416543460983988350651478800092898423097341633075682815561331675548287752446229160449851797677374710545882307620870415529062480742467513608673827302360908653466450052143802796289611660245487402423921767882436816864414689009567759979278481331336741181396098744873511327012636938656342481579197523336405953166815146846035685432776168691437429471656270914593975072206429241712026325081203661362100468232140366544309613734689145680932380832405928607015492792568557859350209515058795841974305099102261745590005814821184476197960435365381262950815552017138275827293210170579880940038135792273554322043924060417209638458145310208002894530961856708561131880656796027213020595962899883940014834540999058430448139426767380503094117277125177536843391638142285048219100823376060496518933238998332992651922092230680339502005812679216587523174160184482298310778181541152035484155358169845095306618381879740086405939976284619745527466064983293082935945750275554920869309696114809921646104531450063965243132441260849641774339652970582280271223947402715802718333382856265673984754314702092524375434075581041985516843914549784307555652941664426893594592849617509243472301475326949376872044162261950990710049540411259325841851260726237469731697792632736246359695565060626563294776472590093193033735602182364089868426916924641428412944436066969799369917518045262551016730273482006360590459554959734062384874006614995185438433261083752991470835222397253028196114975189788196358216341260119540440537722241361604621122993885220771078287138688592488167639768833485767855209507238320281678908482715373133038697897698393497723885277064296865078474928383611194167651576767562430228201802584663050288566978044002263487202601451579056265113651764636262549889321456773601399250229948379131914447944736338292242393658681545130536032177995337067992074501136981569969444587104192161407230553598222397533174463637370784420781867302079972179063672919421965918586723378313956014364343806686678720446135012657375324067140090406977534159849817623600284992159992822695300170961472728763705378714070036660187928616600030191096652602270383342981379390629966217618080635889108073648980809206831178551402746621300670790510590046484100759249779705785682113371230202713998148854281081706038964764906512055805697305151124413395733100036815034758494154911021274329704563603031476318210609360936233570768591453026501137892352124437807764489553997246069759230088611234289858534435113629530979484774672821954471596781888650780508665601558170317464319721893364001418037209835083756192441705965199441825964117674363098459464398495043592849781281657460982968127439045219841658835247193112807139783866950946259913424961067482123143313095182359376048047885947888038866108230485969822390631887416634924654600496028100284818962203572673144073489185525321236699577572172961693203689270548249369249273033454116553572985426368450440854920151537326145844801728418272820790129878036347814114695081650917249205875458459275136038896658829419677003713882010090242031894322993420114648270909171657863431873628431578126506503951926301518958592296547694108675813440318563684404460111727965730757411620264814998579663611505419193018197329789629392651695868010320256422426470929132943038645465837514475716005788696704826040725075063664563462869381416376660394202976459404210987380044150830831990339923824937737612036131459339678542853702810161774845437862660557267440617332477712660833340822535096643171778802401034868871789667699247110603480047765487577774600333064619145591519946007085352028142815645028661734076059403962419015831921866585500268772801228388266701989787141250147531265627664293403412672413098072285511289363051187733877009292414955532500410858816538188280466347073674301415091525683467193420422219252578279507919055818682916581162195873046128396014835903910313965742967027835615698218616724204673778801824787533965156273255584179174641029676945569146397483073675876582260202682660979779887210489664305229087114376937146133252714081620187566484724478040494954284599547348742233784940861856871754247612419640633262951137067323883348864239280883652212055196874802654934054332703493627701309789462345086143999362251778412888410487990645295703817043193038754594733547350441086369522478098740975726890124159114766235770205458703196622058108974335916951032570793041676044672946414766432125686364360453262979536207206159962404377448277762748707055642126973900330160262698700090447364802485479232574965849765868652615071934987031156331975040337355289843988838800624035633688036394723826873067987455028835076990571471191253410725451435868614787914353402503819814454346416506426306918734243570203374770817072716335271698290877270256614596267484017402881194677555687257790989213245476470153981445090423373439570090710231172290044812047421751554188390711839169177026595156623541170645391542762840989682848716766127964498453252705919744136641432943146233082876334721836401884360569247721882044733576201656926263476313840662499350813696114590202497758984734845027660844077849943174109349721546580844844765232933132622590013850975284216599420208343442553630503471976447663339066603585937686188089505865910184416820151288641268226172794880428944007857143352016328221338210751941987505002768955879897290836198795654846304919756140523733362766267649618649026280543324830567399685670951456935037529199058368219391720926685066163558896069610052965317053478743103065298921575311961142418172326283765179883596328234315137230874981202733888264976799472940282150489374317945076202015854914395900629510909548694865998560235741399726474185888940855259386983828658078308402266491641147426772037452679304056069984984929282105267692374369602795220684765147913635692790783708849749766325753294402698268605509929901885703903711417910037079960054764226526596297636056005850938687140002115447523053100649484431382587012286011743842296402342127654228966986929336344028903610993517511625385011040887196327541667691049133303658579351546743066448782555505290984936023998088703622253914339005997366094154505438890583431383453926636631008488049619602473121972257856119130439283313582268130339433971692714275782245425087464176659133844433389058138072822337908017667564812640594797009559919350294834795073775406962249120577882896806580601923441405512364709200722185018634329834309291154226326662481402549758517949852373682911446812643814024169919861990473578787939215713918198812776594124145413342015164716219648238707849677036176389465617335577779270354649653255333610968608125044215141937963663414840899449538389698450724630531011537770068190377073788262066489413223243228958551804308513360547901299912488122726066492242457470470581332298344366075583682154151352919254169353294024171046304965519896794924921149055756890083322474052825341694234224738227687223641683420657142495793768443146598416191238974193481508229046118549255333775287756740842138809682418601711898919234113437788236787912183001325563096143528331186769033982402032036125892244164630248053769306979882963698555060279194482620792725892169422122109336101243607458110290400091997383732878758596612439507118659565225656653407724663214359752285972043444267328334827338435485191254031306575881144135276633368875987789785864913922942893557874843584134659843886368506876060242649753054709924134378667478748492528546945121854024723083519572290655916401704334466485907809620406006286784134890572790685178475916670733658319480113524794232103465957924577980934527771790213849242841324154667015142507019164853889492359825385947060637549590209354635026258063967314246027801084267598712142716730026486710127634519248367730118974070136416918837922487779831783557157985518750302762246500014840632018657103274953069823255626202144321525379919129806130122798574397229563193791570074042533383488923706604583687497150353353875806933778884044125086328272029210845358973170065267145469334950803921357752628738532436313076543902731619264998039932219986201787266134405274325698638263273583019752964970569179483202946754779209011615311867795214010563771187205430269427668308040967159449108090870323745164217604657577418333164160999229453220548298242257448273942557104844394874644975319641183053649168159658212595363524896601388602105101168634039402965826931762863570779283580217778759187743652149970734495474859744960265470210533973644323297393893134874409809165101845158483432434082129984394409443862499334683236492139263685387553179004393140072508516101995086306865418024298834872084877258812913264828245974834241163602544141952694930656131230880029213146955356566901260861207368593206062638884353687656074865844399489349017868671400191322854824444341765103386044339244422857691827270817691556236944353473773202405838877494145709624887994984120576760979067371322638898527107781209803080458451072303529333191056058707131336324710229843875466411548689616554659548064929391421470523168183646711254595909609120160204630628034879187272604656537159910759145902397002060484629423008132531710330902883344004853357476378505153733507151915195140829884315655744349973547457263711124739853561246428039984286329703157044578041809521568502792667441865175787123610926720219894114564401202482757079494456836347526437728611054417786909376164486170038052081771919263720067929635047434782367212532894077652726278218740153390956644456321263995220127625924569080518437650252533740562245376496305419305792911318343549003010484012306098987802006712488718659747821318549899549090624824270789359896056852638023349124444237230837014506238935361166394601482676884645579748634444619910834589078550123537200018513412662869171888916105020377908824541449375135947954168860995392822034268528323204801508707448997141390501899158204655751416792044644924224173042325124326897533868608942233654610221698883963256692427828422141043561536384977539775209598577824981019221557653471817119510348680780775393504355218392852378013684842528318094601571212180482418089127991975952034738313419109028082840931864776274781949305782153133347809419052355541132720814799759384255841408277380297399249876247907866139752677642669949198019273221857041744792176852353213199134738801287525532683981058485796260494346629571252254378450129291287925213422737750260968779169985578822763277247850935695458091998842688133970114784445444092433091657099998109389503068376323492435012322223936980990973404257404923139468186488483879616367953570245770003556485460177218782571872055022173780581953817620642525222194519838781857242260082791088247103956061308698547917538856916459426723940477238576226706464908687910860312223813298684594638241192146105801161481700388726155234241544042385241538918502367713109054291221459650999391971021291631874892212736891843575418118783131578259928247886240805411020804748276112938105243819712115349260626645685284569303672815006452967662164080655746882334778758494750045163450299331203169355504392997779014133593540263942762076949759419978567506370395614866291573158098935675138808249597280097047414773276463930252979750288651240048775305323311090555810550613468774220304869882526818665465014476451495953134229784526944209599070476044619085636064040771932744064948171858280365041181679403496493007335667338316503220085920231589087102600179310587931479286344731313600642858706342523937584307786421014060380220558766986000309088630717181420149152009843379021641293813610336858905100484593632432398819592838812792752036477867328132941573423408325354517720658120029619214280877234714393942289522242389326017360305532879129662995105845686289746307117642260032369485696533093884696298264589257850164931662146544897356661256021586647509855081807233132156392625292194632172221084793011166039063290146508852417905487510840390595057147299577364822738771076857239065176114521589893603975661454862596807598176057495551041586056791972699922986803322291234420203462958965131468778321160648639854414735749224067816352200648799921562981011086204631800285171432626880508085882954712159622965284411080134369816093260483655986790157029890295295033388978403935848157167559651580207537345383807398902605332581352663130298851716940497133245867790900486287527198937045014397531803930078901080485352582679836798036063258782580487386390317710988688949989465985909443779219638205174337846544888156099460046860984256079714804622135609754960915576847276276009075090433535097585791870066695009000421001635191391459792181936716215489859925869835628503345304541842125003003611862103098569620730175546221131949194195638481639572802223887167931870840717906958828487473847294423661021804645646519118733449941284125068606355784206691210655699683032836392576281220944475288746854454696959010021761057641513926751113544327696935214599092480188481722338005459046988823330642053099282655709035305351042158946788421712762260446230517176842242249539711205948310332797890021814467005192213768125788171923591622538012814898760324813016989667631558247294619764461498440197088077517837778730670649098249613955379503702926467738092215052134951152069461046794641145620356924498959107627502524901507242506921056034585498668559716093279970483675750465777319032397001303166931043294477531459643146151437404728744680538249253714555613818558595818977802800499154918914563133628405834196692823969454892449108731678355061403329407574688488783697408735095478463723066138670533587639540306748938009758897373414014526536977075263987303752348985276124444526258878374428072831918411899477690729371455354472476151980444828541371987481755113149407748347019663298724268860520476008624782979384994246951754357589633577954823234642068155851499833992647708508690542776354041212375239878774776397405487522605863879854303348629061227464983649885403342774983248201131873791117758626522657904390717957736132873805600734903244424062108856752255740884137037948770493085245309660441657557044570895491581794996741643931165668250318300373624162042789438132989348516062727971148454851012090349070180039847293582991177892175324328218918671015468380203691124113908994951519133829290641284272470688965744483081463127039976008314808422423527500247232675541891011593895913810170006554724611353100430975067119501567088314183279351736242001541224620140783646464287779934233598054827740147100333986305412230644708115684430710019522334281703787935391768022752626660841095620710764864833303536411739225147466187040156232011823148872744087818617667105335214627739855391178517081369053076306532295888167582011176778834610079414117199866751140404410522833744667856094210279633638235374028703764104164498838452204112252657928248427003967649605558154973181747507724825427707978765287490957650363148783931065131273518864370745551623947012748928220292620918044108290420168699097836897440979963216332609693592123245649502412661632786852752316903446611536733686149490497777454061630594550616768942828895209437117025842992830261056428429441083276894303317299438928315547484350968050089195710527968398580299176835643386445727333063054005276356399227370527685321100184229960678564256822337596379810755121017314531324049925807989695865968002927884047879121605200107650833237522615644802909066448580983865622874221330434635936039646930230543298542571468399243757210792680679313778063976005548752088246389964471449450808680579145696612894125302807601660776858220895875663909218406190359306715216143095702079106334745105664314458114360932398045110142025631410112387919787105680231512395058490259600391975112917232031257533394411283122447605094356116865306008915110383712046579626321868272291194776909102820069511764281041582009698291039789334617122801460094893411439036456116695824749037394981728984294808659638662605197303119407002822516827882251403336573133896614996118461437159409479079599761697600649762105689848920642206655128116171917128493795409940276560457257154267966554355757714125768012019920912195973337291630708458485119380582906878834764484308102006264394144798220876848921526149911480883756503511475899541986911845846852171199769914790182154732762692367943406844952431104945207555698883305995296940460522500769873535564226917829857150405569116831123197849676136521524325103259635048976137251649718402989663143517932794012833820550925682412332092633021977802146220049450290184347527451074337444927165780888162992835356508155266055487089302970476912822784976379201107251806871314200364340054668389121878878345384419193971736159518074772786215990968684139531213054677912505623108696849443338339248680568496892145028395685757005508227517949216794674324202842660872954485229597097615205865391082076323850235534561276469021107328339766055922799831521569816540328326677691272272736051632174559499407849271394590501425520882247930793059232178936875291605444649623966014113590703967743033004212712521290001030008131047647749894144285013387156855526140992412139030419180996907468131425154893928883780300365787441695538364812499802847895517561771456367050006002992497255714662399260187119834184059782439008489090588218797629313119985746534881406277129382042674971258537005947329585096372043303559550042475519074369863197714807910516576638666631527945504985051316670371309593110324711080908088365935899596969430351874045832829841226735111788104579702915884858775680668846180109733983067054083472216368917004330719541872307974503980682321133051317521441307470450835453069906834682507446978466876635130762743819878784484452582262318853654477942273835864516898077846002153239619196928953533904050535004550237162626716460125940076503634550098851940011929645643754034284885049387352995741439730660296747471496847715672279804131031158311561231173839940670983871890893764806650286483845241110992278323513132322881072177978588763878288081051827783859312200702205883562417849256801582027440130907388686266455412063069818728776212164489596958125088277898375735040844258415295596782887018146143187646383285407508219487422728956478473061681993290599144525740704609963569650742801028915705481732117611822163313406746339332833320380682802340462417139894732176489003699023522317155012350526813329060595879948570567420556609096428892139853176777565325093103200535278553115599274481018587463688672890323547445048331422536584032428538042040313528267636635319976833592547495667107416753690941488991276907452669947177442500517746152046517156426590165905335292498488776026523921185860072995198453976094157404060248451924556788578351660794042939800543518420832025543306349056514613267650051939099079476547287575168231105155069844491881996352606286115812232197390334225193411412960536381594275446958908448864067465676470081492800759511628422456510435648229118398676052419713463049051276470049388418149348245442330057232972489327658278452047543248704873011708079117179665222949629907991821294817745944819402812215524290427457485308427950017158995702653048130122311615887676295710071825871097183847396483036361637157536652708451734673000605183491851251516735307970083615858315863330429414046327128518460010285723369379037403282392269828508989806400868307153988869493062999215870851380988108753869657546168766227547640769180643151929035994445689431138873087070111584416447424315562545007143774998172062191892047077036899820214151861043404895578753736852804552241861732568654459518763520990772359446116622763122287124282848681775854928330330583399834081934896878668680807787036470734763728955351773134681969761879567361272850266913698423420146636475677598474653594943968431976943639346338497600660841191441112191375045544753325145265175754639150090659378122496349368074891833872423112221833629062896187213519107041128508611185250647048761088697612069758321563545567207336818542019724508331190953111244441950176561016862838166439558263058669775535171690223276682528577016574331522830052408607233619862120155600136879048303480243033093193251503767331135620094763009982023147951962505171782026309177271562574947320454084330432193792373396988917365325638385911070809683566541582627075489689279974153175537622228097299610146261041085452184855907026748705798430749027180308035344996659373426689650552846607736020908337404642319306581339563849581598213009472970860199064731023961968229800094650643856381294733588617917249676927227791135342555144849987515165232959920419608946240144339948622519354395211720929797242440953961190252953084688827959150088188435784342777502251588574909030727654248088292169186350162720460310573710406732004896207298248568817623658788766869991711702390284700860759824711653845196100593311566902003824434237168339717610996989820854404107403272652658509905113571195125549909558802639667942567513723467695048923898384736187361246937796576651612472270864737195016547155119054860371143680311369294485516293935193501528964553713623409664878436098678182036853857870752597797249854569527185196958001814209044961907755676157282918124194959253710222812364801219272834584997052529834112897215181638538984603568983023974105255642514956428731820723837185284617437528245798286808210091481712701932403372213957093876913536233337068973315284673375518073318200690461907115722657584430060106761591647156317587944732382719178753161518452579260718544344166594101800264985447246804096483173363388964790239025127098380382116915217789358163481727982474531721828167419328354101946681939941949186736711078397524770402071773504409295876862249937310508364221797734512526068001346199143617323491049218095206830060571872600232042333889271208662157135644799855416707468788597072232869075507716598959964059358700730492308709397308274915818877110100886064929533483150633828681953067524735706839896723462897374443500960306407412864908241752125304902239227997448960800151265728137488342215165593786462475594534499028024499922637497757563140325016323505999219152705869401787526935687707642698770667194734005857153394442381632729240662382747695156107425128109515492410926755753798664100639848610942705935116804102855023069313790689214793336328440816966129376252208517097868652226207792810068191406499856481247919905932518757577564012321509388708771539870926736640586092089345341623835359631261029932423195596641881423412599101274296390497145699930328889624388275516197041070685511721128392685299041556651848027877168505360745710776098635347780956818622753452046175250452181111908727005082381317300830331882303646095743431809297539892577272557972178679990355988083474835534135854792295074171313443749683043682514551792206168644554834421438542326695879957705550975939682478523141800704779954897848784177342995826272007879648939461917170114796168613959982972634780595925845682107341782442192511158589071559802506709601794560807083165057550469747200802829099750997133972274747828856846338587688242728979453145824526158814961145262724344332883060815017411798192390432313194179024014120857692465431582850292217651212008474914397723207954794210119382134118599220234161307574297710467868651066697974906541096573778980552982894264004733225718015257412244262949496065019206065261390754365168321191748549002148662950694906247091581952654427861291086658061813643964282007218320044477996017090656455540220626927390434686452419386269043876319377608007935758656726893277978748456787445777859776546675065779950105774478689613807946735109761186339581523180581349641042345487495794686419622617311504492885563643619651336428615002187722970647136621718338273971369987722774942418465967161429920975515968255862623373529105959409629336369577858921958940821103481280365124762346606723573890019998030713991366856455722878183384842086867357460198211755126837128625702194686586714174134436026729054800957154973521029983531704913542878962087075899768112507219856406314708114543982225745377297852940287254310234314372947219630661458634906060150127919702620964499086363784913614453551948307249900187099521491088854569882915965222816636020116696510009221231221683784064931753123930431623950978628944487927036760404771601635323273118039388367903974003713151873228817104655738968800977923302142412377192556061458170220586497727153849430162076922519583891083451042710158396150413378313470463473232266549194679189057104750036313211954261959421516656042461225060226985327287254702131806680653825780622096698288345749142725661233731823869757619631533363443175818744241744557388783568604058617314280914857966153194457070285506277721829932946966785164607808468843360941996648724962055365465295146847712553917714871394344313393995649885335063029866370492950858226508151070999752843285642030109223614720711517722318467873589502417373897510909584182532137350062677380711977329484336822761791083471101197215746037789513655320364306580620676659221973424910987966723189602271261157030930223453192646356718248616219027307740560967989598682758723606537105229949583053373912403727221511650744414461219179835375856752216705962176176616107759031868702129444461568208070956135586310749314732541217072616011022983437376616562201167624151389957679966150651577848350312469966094095421577867531101101394494520588619508042487342674074272084972220118079973112711470158180594335601744425930168833109723398619796469112324676645580214418630741069433675142736867768051862585676895205274204773522277377703824528598099461612747927106095606836340855543092780911658087526098484681690619583708935798575154083370606350710886877402554001168022405082950062345905768385123140980209566459552514067967087521483297233993893154419038837671267205807635016116444505790342599093264102521483319402482992867925271157297367215660876967872565285056518996519951132572900922158297990735733720139185009465323698748104172006585372938134278046324785996008425614910767427974784239508874680888059059344557519568659405081613043542879828339354814499855227814203853805425343227008450242051350344335859464462550906703158009155557443795884727199596804260265440856689027905454877947444892606337859004395991387858923373593929468539555453738352194676415025874063248893587682936506803610792607403694108007096369032375368049126371856630308884492820647781058706190669059920301046287916260145516312865817397520289693441914189095879086781083774749525366200631835785336398909646566358517718074559907571191412426402851029980781542756581616384846361410123965972272081822439659313673418500941180954327224950455277294731967062492119936343271853747947277931122208272547456795192157043271583921688264780874785685607210386858448906700286353293834615604953350813662833960961971765871894641128972830484771194281547202207426313877061155793765007158110581337791322182295187726428146572354322235162780295290556646343932816931258658258806473188525476519000303757488618448305345048610767368388718388295217986638531142505765975224471314618879049319138024698133983442394446208355392892912506671643609579430338067344634540698743163397256291967727633244922470977743373867550491847340802383717410435651398740505151398234025181842097046086750596388956764042399986971124481968958464625206394307148632958617793272003418454718107207837701363819209077625612377814871793834458439030902314255751938942192077255007680702635232481163438659781716620930095112005516178689261573053113887884540502575873257412201112762429928036101009562323695550860625677531362261317017268541961382093002830767801065688742657337949652735442360813105469139940373453304276022138046040236627181841810668747791649442676248410501175435304157017682829535941540657056303625655279090337106700274833192978457395294865965425688897100063581637957254246161922544744938609249906912787266273701700930272598414162441560647398286243884774640266042419668711583436956534665009461473668639603915995917693819739041864782649594326215829631440730659127532528870629883941744075066145128625954907932503252796685412598009686242095669333783924542822009527210495903458306294287876964406944845877917689056618997130761081759846053743125221402564469038970639451344275695534859925512962267486167309817180628570707723169690433627951651200923468302970985766157164321052806101253596629671149055383942476576655737455414468416051460071069054390787156150022820515342735818665663582906146440133564770758457450519485100509688808688325102245611372522355945854181225586367964918291979499194352644882587444007725140832556212955612904610903312533520779057745063665187939830564916860971594163510901175258274053162127832876807311299529366198207972678024816906730997789682583483257592051794915829410578602858690136176124274420562976004893689570579801270093325694436105834723907848039759373033842798328146475544473173783265807966301250905470725467470895364214039971420836833406540722135290511375195072530992468576840376989994388629804438706440215262377180590484048079897446908255590179706968569485914106532217561651472862290816992126210717818565707155455376295147920383601271373551645260107891180581006898156569856684766056672315727753504334882455718118104752420911072166356645981800392344032141982291619147695131886992108026671864612545557302138880953192124775451464269227924982049367514828121054388902333475695556319147301390910395801585087932476479084087914136251667011012132695746644483533662220425581009961279054740410755756748182104204888595448120747447695203472177188772529889858821882814362709168676399574234129765289743499800373553473807060841367917225429589404301562181668657984463812113440319485509967755412870841548613388105970739718804412626630472892390200380877030029995314940125800284949060532647214463068251019166925028124069873605101737808417159002501161549726668221498587249597406794205734180322036434977989701522007404639293334471816175627572984618229347395071154523108815123539657039117416105846390715376005661201658835564835574154699330119973394822667520042898339998483697446272726447880103862486922537272696953852499645326131045104806943659555316995150109535494049781143444059081881343581209077265693791989525670570592165191623432168165779410117525234163247583215025519329457988686474937780278757021223026286408363268576518616078253432895750219328699760481491743361403455178932412280138036262103621499062863170086708543304837745095575539312146710135742275672047362587955844026565045406704726516901896736381819722510304075798106859605494488954407368773707832641089775927186294941025453334352435081635125442078721343944691449396024044486339589200395143006760482415654882462815069654774501247409237254712837026478624785100606468199353194399302487824446194402668554062381176776636846520944230417044298100646183135418306822316073739150121238099318421158750752127395374980717293100241560159681225676005021460883090837464370009087627874438249711084560961183918535381511393982808793150282128562249531144743846070928975544934650866048183429127210723000953099169664974884360362757254792919882751127900990115868150675309546056839862536068664521116156211136358247999480521235936189976513031057367007343649784608368757463617536743712758842829020261505883332230288026261047823804290066401011370406897367643331596174524616818103321563068522144234065321577037774699256517403554358216504466602999711396105165499848332117440353151843382382427563793602380386899746554536638641769971696148583638249617572944637352620353215192658691976000582795714041108954556682762074118452710160500897877251392898664843098032856776512304312760580151247898726501770220239896500383291078983582328040422429300603304860128786247114549601703731055332985066413073778173613343977611734969991569798703553780818420029759121346382805337197036247290207547122475514985245470651326555724472414179663343637241669080694251879956307894978294123461066889267680890249060349425688131715482488418484617663629917591187111483371527564958248460669250216036932411954205169753079336285108993540761825701764374937478097250609090053265732724593076640847458051901799273272793660359079417084749927886063303062499985569904015897441930082002547079721261107162550036372964566728489289131417747036426835966939744471696631655854856943997458660264674104112690392894756985877504573964874525646559684190959306289040108123826470526729372511194089149583775287426859238516912219626477730377580373035751812784416772606980124389464000055177144755096848924852797885385665903531264420629296422687612199546503812324252867751880268738059579862068428234980480164031124392879770028056161505766270484545097991595953805632534999639349881812951077067694104874431881500892286653351234948894060796105923277885331527473027964430672552537929540975943125505124821494648436688412818644457107317619396156204860874213121103506241192209781181685799694681012988059036488492173393224604727194396635784149952599798592319431109779083411422072452693828356358133150342981729341472563827757785734999627495964021769631322043259427027148897463255890089089932154613757879276170957106542506255216826931437426459789454117247487310140901428124406940943530964015057544502537415494446069609837381576143160688763854979871660055136265387609989459968972718752658749918502622525160141125602841733116420951952685142938944534326001784461285857142761722228664712168185615114160804311303164219888374625342114786704698832819095345290824141458394547009330089598089265437908947668144905720827639201977173570474044386114225479434133557818098306116881742459000671982252054269221784084847258465292106793136013185095871187014614241009745310307371514039841003280331130728184657214224800676500721632165923329806111169506029911511175850878109272123227473125474496047939474496957717265511601154197096654441289006616823393373623810428705009707783708912009852277921753560025344426808717187757404972860903944713695590828578961111090169133345715367416517795594216907939674082972558103552766290503119664218515741584191445781507403380177516277687173183944065711902018965262168266425958232284253191764096243530344538879918028277645622678242220548233481079772839828049317014271221887409588524163584324033295970077609767296818741819776353190727890300151896431655785569868781177694714253271531174407413196788932335332738429418108376708345900851119338814696627419779302885958677003589570059706419014430406213981544080103706013249523647518297071713644940433855584917177561317604578305546939372105705654676162737288842057255938974104811462681096587670213024574088178256174984914332482369809298217916396915927430156915043724916987899605731183470479065837140838418153971514054001244212236318437058721490181080845798765496377015564260039153549070752082155648589511684418233826579286025333029586592992722360216703363557886508688564256480628460635005637818798086787761666008450945394892361847987734520889734427315696468646397587787135441132029672589412859161190805719073590992268023936662347317543733977138165562427818961653534862086427897543567461609052639351324534136698847079502273487105349858362009741982689334670235582752884206748687671376962853128907350625370655635440546966723599198219859040957801593309715200806508098872764247419345916020946095275081261995184751147324891100199163758561972819298266823366710784582710858275364053294197790232497434586082417863696158537999150023694050074299658097079819052405315548356873322614143805709189063300487498332965784654399762444348128654540794070611617443659607913327291216886668363694048752426016528864314619506655985371239403003808293687566094160200394877733955799981875609785086213798166388883861101195590811171812309435968454452094482177995317685069639872820819046906044972035363092527687440588193349432033245956601422793287084406375086655271834569217184998014921584659276255739142952360309726744366467544927523433951766722369894789762824502524447678462730662405976270714910740895929340356300019984619660539579884207270995089510581999442390426501248718969430385900423262680148191672674984947059630543988018881210395461120397799907412216363100208664093866644410842873107850266333328206157524012162496931389157266283068984694382448147770371200127236088072691529773381594168902695611795529717976684579555827302092138534647817981237157018940692455241040196354222760816213503220563700566561618952945710841135241462776633862488454785000389109482076105326048695566748617402069673584174260952028582338354234716648031179218520754953842539635201583615673491725155993307079052173681166977327442637455372695298797532350869331287269658466932601152102555550700072190083480182964298707991672427844660710246456322229518955381574591159101945830729334363078543668147922594684441388346033382228474946584413701784648249343199870950733035853848268510720828613060427119586700444775113772571626886874718107258192123634916167538470542473372595692389048577472585998827288028831534558723326382110049832146184097972200393211599078051684493692314183604677229810829652723880141636526827263860238073845624508246544783637815978464922989902085995588508135043738142313614354616470550978091728318265501031278278389596594211736700540634550422973247621261733556754472018221368613864141562361780443967367108256987866756011267322998881237140500698964380211577734097530770740359298402219872246554449263909457503782886213204327989671175299845680862640856380314961251890962977385222682612152005380379930205117752744077636300983639009279055888506294476586723688491322119263264468970008820806285007563148138643217529808428971732298762065598540738505503073297048650455088593120776782583443963280858885948505293345325293663944048184732957052290413849295352853563088937140502636714338834439491404700678073319791219319916520902201013237474675688690320487516756868394509454070641424274792346634251525423303140208766242726793084537922984410870155077433257394785923087153728269298797594959423098960772051612723604328226332467110328430934356808169697184742032177095259101650472520919291369527138301403622558323583667464231117136106889388506572377282626436139118561359830885469362927593306534173798056186000164988010600445997088635087399115087760043811925474787294558325301080015865658400543787716872080181386478685202595720121515575621331378341185361037064595574545791714688016220151818651882529640876877133483592001351024286270558888912471099081387423495950613740282688934258784611697809407847204357188475470775161452264948744682658490342741872319763509312793183864920209866628413855117970302939710355369351374134926034608174059134855662515242966963559042468038736537816294940043127726015799033704892499929969809252246255731948322444983232991709562736566318526977880492899770555598652261791853653683510637726627281387245948074079765017664271497713861063965192603901642797871953699604519630724811602596664420444794391113271007698004448093463982652244252312684840994566700163930079173628564740430059364761769865844752160975228834755351682854744759547612091439873660249982191798534033937271667426041658322091039736637515104321530015576932412870746394087882721148408183997810370759416362968254351755026735364566600446629174210554100383686773539572302786052946718558920734489865175839228411267760808443329114869342113960929799380834787478629868339228658654428350591623323719965579117997277132524594741486412610578832756839972504210908400900728600939197355427493661925448375144085257828563335931882818687875993394360127920430827574519611267484225508483334484460924507068329417556388188070002265210643665595312123786487241401473548012993520828026687576284973855630134548232191556478313724241738056271512079653731329036103973496143914898888928063550632138922101527317032708034870838910246529310833134854534941741588158468160095439999259799873720472319743582276393521525455656373486996459963888153552986091803491184164019364644701300907187317995944922848714523398111525146343819264755458456761668132539006395799480971063328454991481138552812868006903349325950898024568891512367800083033358732377304899747371659427062007921303925189670269557046176495525771336752485548144072241867646737208067092594042743434529118116361703745396559523146847693569449025563169919054073711734824056657398839829988086220312984922581957199866934438369687990411571721256954199334064023870594520323388975602257576351297731710602965133149932098758781352909649118789129021237589231327778192134255438320954876701387234967870192232633881253941337580613649228585525542527849219934524206136436687543558255296156327152305275835454394431983401458049407065893045024525974031453597392438872027070636938577727220964643802333357050942041685551476972690597652370172535145900224261082441562198616545556361762812250052888883396509431807684230190420318243166249362216234413936086357410048519821555995170585631610920069904789901402119871990687847864726547542001979712286281048567510769539220039597737660001961783630730677595699587726620450003287763459588944802060125649206644781479917017409802627172546598284465228739158408727319526177374774723778422948682149217637757095697335031940415196908016007558058659560300724396423745509741596503418142275462369865374214118401045628931694480293884268670767358743800167582596924347489534249488586575634975301941638820269899623820334139473717792045729979700538243713316247313600092954675227991636284707615510330363235611072504818910006731502842806530697917005523277650948111628628734463815720288006187120649195952972265435997020942838321696381721413743637394365263613811757676479699606689633386563603765297028517993568553660320941405687663094425620621711178649608579937300741064395727649149544068496614941416355500116613532756758043124664818972957658575834148573260717510112673860713923333071060116162418029384383653682489903442846733314514270094124773612291569904829214508747676789182262046620134550172601968080422386537993533414320700718808521599969815267557776975783536838775827944570216235585616199228245557750032908268054503799280413090049384752450510463033968063544779654110723551594992697156559536722781449875813689859299563241868693398044204276623776783052723186946697954687949893742289201841496054925008890434050953363769937135845961386294854532314094683702162561798006716764168681729072014708373260524430952099881321298432193919883921552399973918650605057571115837180615539767457179935525446466021072786504795713155118419275931881938433082822985167039554493412899470758391485650082507516301397898370969758732497080137395142726497892569337890110991459363687001147248130020814759791466883794795568312097278047090726327113364884250544028189815349588882121101410542725490794655753916410934667941748395778071536262921238269189218158039471107279062839736057447044037735012859227649898831188205599279252318945292625761624804122477861871630622601190956027107135413254519428150163529917370078194711741444099148818953877668745236845574419820239131812016654298635552817186865442777087067462203128130952567358776033342604350618729563708321321814277020482899440287633242330240211266963670460950917407509003788980797040869119039730678267541170778130622953342446187272810500613499620902173492892558754611922753383473648369116985266599162823382425432329470732119143573862892211409154902667017625508314185909238422320513536369026082752934990342816881733119521543005651228384399393559229911268474939754315738548642583327147518281320634474111484318668549306225779011094911172632775566074025573318115355767633855010295427414128623666109883848582901551675779147947807486462258921479177087210498266419802698493995149691237561055207434105366627534373661705082736531826644557578854240250805843921121842664257388738116414842166833317582842272543403022891509189286850951621344319496124179509281351026694044172174179522960031025490812028990369025758739730642788931292756925236497060030390373565119843425894590270777729425155146687016404816860753157694364269801822028426166814989040101437909986353904366278998588757590547871998106576459727403152116406028629994229371070741234571259159182271815445462563374099455682616283861737512411591847390726580328178060782028064505777556773772114969875045653620251428496074456687257575924469757270534727185675536239054630022900341856547116713196919089874924478977154191589296704486229407693461522748849490310150031605711845171315927068151416938246179058327641213016232320229914567285877924692035985573541195079531522113525615081337772612357194841025363031748492710006820647073687119755838142166025394521606693375484111770241721409352617474057622809494479249583189841673527316276434489571207949100024886939592169459352441372794547724911990539826657049044695404476843651961152362451949014510691279593612699937802947672697291581198063195037864992258657909139785415203314182005121121337170526123579120659642314617943559773212996548908509589968430461769890793894913127635908235387813897238302484122365748385042418518974773373302076777061164184735804918233497619423203930160880446171914192611449224713688060205411310144884889911859486200799292600315690022393204836336915962988229710751856065980056993204930932706023903609728821221925452268223222043260243250374561782576201112227590698190659545841506655662399508624402513101097693488749823388678717228743875547625287357130756947905038929256210315093049103775001769721876240466408064628002861743593470585698046178117387310692596435059384525157867282665716712373060129864424161409070447588017647776438698835232698611330268357191226281661183739013048219863359752707599504454153488010044882245419960234058679029019384618698460529532297935594209123781688273091263823463562192632939874848944570391445936881094413896272257095195315903423881383070291072635216416143366539711001922610255035489985948131957840967440922390563578566538084268673501315353979571622120119012999239592372694764345899429564887992277342878255304091887176726023295195315995268412360824794067064387632205525975290393385782370748183983755027883029897349151263433015509453422493799858210154114554230352201079890372857510896517464884825307536432622781286689195482016653088217927269602834066224740317085905771356374245977552126263958060421496761177332605979875599861721076457266998879895782538898623254432527548830990769514621329489837713158686474502902062534597178009343579571507086568131225040682624360224753894556178865820349570046884739763372248577765119336601200683678881837722451316351068334287270855312517715180737184442369690647349080607614304172101580656651439467628205388737655333653568918694229549246913752724143261229253089141284594873341372999456447146730347529351134591450388673715920628443952804812262740909553347962627180285767879772112908382334516393943697340410205981672960658289783457727860657195996741805606756008246009007986091485648512248700678651200959756168185325040162828471679132891832022374621702989520306087453167115099510707477564148785292404137882718393830304049582418222508243001157449172994889961808369926117167044523945474176408683363760970209701675301769043780407668329905535037796249974658490904566637024473849255195384286351682958296560165713966349200090763369455256051464187368975257908705264322428524201164696423918835244900806760344378953335458484596915714154959127730081676805355285869172139215090532539710013810467193720687846584340576699337938695501108907070426987984570816082324025921835376334849329196837400716141363724282848110364095120053767857893348607960396942657078675046690789954912580804776763782262290236199836744777246921154100464697472316687249792928531938168372015990168431335228497967910595313952813233508052390647552433676311506136557942398251638391605880672994606468115483083634269825574303253089403646509412727831905850625448339809579403763046643044169999232336339995009698241437374130829590401877090309111758450814142894837047922286128122725511268563385266091158031442980854627625216602679143593587842815107405318588065137551353988628956049110086617719469446156274494282167928096680070255015638700104333157380014161939167184422483463942895781791660862546574389811652347812426855853780423528743394923099690137021350171772462754811003297485076971657813190243177282124743991185076974824478158566507260994118057466197866044849777509841890035093266776935780113369859760368905636473310143079485855642430527786109880123036504167353632834292063404779606334262881931536704084884899539140869519849027697745565102248687617721111371441914538131822418626122126937730586289403190567951990160735544064596662629891680305667908979349672164879621995265358580742525875815367983224167089480385128990635178512760533705429127749230144825966950374233051635864138447182896658356118102983758081459953208525071594699948164604304289511057837283837256962875830593128284943584016754132651094240387429375943057932042352558684524345906464774053494038935699658765364085223684031405405234894657721369909490002014169913862706231384049352755384320855905492968313491070482330419940845842237965825777038969173001870367025452293028163475935876841953640424738751100345457112562626867900900895048655952241441034412353799295194514515051271991784095382929229063692920972943804942404812099343269941088866919626711558341827018304999116361256135231417946434818440000189993203697799320158739968211301685087706932672848608460758005446333686972036293167657582280266288596060545357556747928854462258544842328585050821384293512124769966277093824783258653148038313665367122942344705369831090704560998813717503863040134896909165267803265114577517524649345225561554192244870584334800960470736817448707900927862943279921959641374042906941346542804402983835651984457400437601069577326325306055722538928769866312310206973506867772463346760284559700849638900339195668739852194734776521807215840457256969912792197311002890287150731118560698881568236780121160543145146979805551009994301722101478527282340076587248373585461938725565322874738859694309941180775800867455287020008720853594935349763072626971579435117425746856213848324375551024923811096021775636212514361472263352313430765782361762041016984758003483422357667361925333985554345676152484606733122681888724931451151626623641093319882374995927085565378347296322937429269555388230415905077513262754469134775826623995230703788736637179226846804277572757046198545490527312989744219260951261477099235042949274597281478118043821715691587537555717319998537580481977987665841144096446171609014281911017792514227512779776929767036096069022022913657845993770923121948963815457548501765354700461111675439115902593825100410707816631676179828141759233885626054602803413721756525840326293563732818344586020037105610604391682294899260517702955368882447802154543757093725895799646552599171031935613438919183710391653457600456473118283615298609744352314769489418597464017463077023687768447251364362294847087582701132935660211610377410996076245169660176222101413868000054782682575918757957942571841380363178911569813156302663306603936541788372749067803642194749138408844627637021203476532656653834451933925264438273056875812466772678835539232401267907181970526707105240257357531183973900417456269254322378693521942060024631036814780576107823323428853299930366389228033778582616829305267736235666692138992607376628252510177123916682061355882654634804259885717114562107374288305483709957063285798880664472924252341086617965801798207490161883107305174978528537306813433003461270895338594868286002330348757134803200228294446704287940364595703243327252937334050087063785158273260898691461462668958114261721130392703670331442339560332836099962573269597543531501554957126746154055213382258307613449570978507204693306719665877775410852174949684139633977228101597627577659617105508478090267275177740652803107719161311837720120518516721906300482011359124439721202519887731661055489100356457975223503941186829411019266798309697924998755410018621741125262662430010175491319370523495903900264607812620528119959507901208514266803301745669545243610492143667259031413863140973633540753703706770812735529770317295029171035559490902156316768455015167866626803849906832938937306121991308201822971268770443499090698447715001753810785749332342739792615387819089995845450734227753025197242892306570144982682650919074059035095741544272603975269480889394285631811425429456895000740364267223457165519033529591043366262026033753884797224886428397505837862213378485870680421085103244598787996110532841471323627826672138736589160577526975220180605174050110263276779461104018875671096903133923784261151480761635625113211559716985548258837975243090155094840172728578523603774840354257645340563368209106852205244403539653859416889845973141368354885055693087821820925094236213333861049349966666205307054554127871248055854868289229537732775705715974247112923294026726154832926737192285557035406265766016818686885991931240845695046869096890114653358570806048701651335018173914683788352156211930997902519279000354512660407877655095568010461716144773706740246874893534715121019080838178485403725745034115233330819036531920293544097483788416914268328647587913408799823552350524151856143591023901173955432906644014787150649563365341448778242315954533046926615291239783658768649818747819130452422789941518028427803911731656494562928466510144786892249243208833023325203888558456944366850614206094921845209585016195884483175678848636500970231498598143840674242751454995158912257307367244705871063849502589098980249677267661823535336421225268647638853523631109909213626903973259402854148500292927158847314114836366302457861337690930511866498562228685100229585421545266783452642171566742815465035201465092773210184427506231019678235276270078942583991308453532900808599668479338984619227241291770241485884368188567286440399149466675769377058120498035782166932499354322332902651014526958213293204273960900979198634854775297982149401928152638069045695351312436929249186989957462224928919669404751082340781972844252691489054819214546298720555300748507849767898445049892382096265346777737704897997605370465992471735205384539803375112661493961052550368134275614030780469911349869966648607415361061810176301353373265942508043469105834851102714722482289099799541612137024779297105640952249646098957822589909623404034661219443169545646868425201426927024888835805588796507428104728783759981620319818261126585384058434550627315072987529689862746829467002900375650719130062298545455476316579865675948028323194134882819381839521154090693429918072264911403996454255537779049295424490961710136595766264146655597358706328543389345307947822578403204606571942506984535061671446729278618726197916143766736902499141900404406183384015498214801051995828533188668783599162587891815510253953635943103890082801869550065168594555623460573832491193598869252158313568246007321472693984116794199110214894896750400300914223902959287088763617208085334030022642471171148502231880683256887998104539493628031309267665786950362045546387513790963911093190289294872566707964050532152386954757662984420032334506263088704974614458651712454962167813223278512342406618872719718591724676518514032808031087288704511503885889073718428434664305416730967724778807077518903872711369967657306281428168290302048181079737580478642156195352454636915958793198259213465807070350148610181502600591573243888357691698001362649268883445993955954571924811413435793627084254730785538863280114697574679242623392464873536089683390102734479711379575991574983207564379158158187132141808710012490004621029780778340420074033551025712439408674287505492138002564903586466799149334560268918954806966351173828899091903215107267794242152441465632914694351016883588899925312970468194189530705000717315059544330540436565269760017495419520687474775637356400170526058988685558090294173441761367665703099922067803427664603848933551415651628239003808664867016811142096227523338002243970129045190001842746840183236646113829530907614681327586000786372807929875473879245992782305978125444190953806577318594334218216975242494313471272132062007409705707852789113225364831706280082675071357096916099014163803122147585384529699681139594113799510914734065597764976606005080797706792298473285546302863462632402904202816163475367127990516129046018718227720376773859244191043818264144636645979733612843681141374411084830929953926871860051349041088540084305426575547768221474922615882202323031959402972226776620178411371066758776373076132522395902806044638464413729723024973213043066840870115430792266272834078090120105756296604048656085285510804064376602515789931370437432452481516776999519286936495830053453620999407339173394179385247937431036789220063762161351985855909149838775103579745321600724129621889450576790151956371109282305288663193331866061390781057601129883604315549916309763216750132311979078921685212058003397446707053604921391402764180414752362689603016484100572875894131119194385695908143320930227873270428782964546309059131511835508392943741772606854264217961779754515254694860712290769303750326058167631785778998903620766260135832212644081895858117450877675257965067126187583399062377369864678219464923728160555964551982970793771495130349327406784879763661325030538869595915979953661551452003752109972196074122237752864714126341422793239645660018341198947056206603441160778208212592020855346019272904874080225609458751699883190993499624864849420957369357581410106023189609428527925105650674267064925877924274000824820153887798923478135808476542495832946489081004477254899216717712631649400198349826859852150483570654376449393971794202706504503046509320240995476098112984854829630641577950004066345719139870712092248869793255939218966212597427488265736791165478299050806346565991432198441092700310010340419870584250531017050942756040724800115982350499615825684227195392485566572798541995874130731153324969373515355936529461827345155673731760449931225280861870279933811819379949398235552649659713894507952573893127697504055050576714521871612999037233612187990949992770607646716620662776198325501462650998074987406303650926108162556144333320932649849943497562128453938478984234064630706962550026307179953951059538982062073367664342792312163470210538225472507882589406077625731926353865614210787484559691930944569397411109997179551916591794041735676071403332202711765658065446855273180249741951384238246655774431071008579041047348280960263805906505662640878925475908284786100740916695533693378724252584659910398333143407271635918277463444995873807027114118267245121947232433543751414959244314101469003053678412163068514858575446752758683366681831618251298896561226545568632727076792450246007469838283078268705085964715413984319711916420147427542909183451720433759427872760737159215345642421136127942523485813301562881753680301269354465585355114502232379957271959239430558203773829749154668197145960287747815468868888879092601476814338576722806491958375692500821996156559468523353071981053490206887936704295500254265759164965005689685114245436696571547525396823914623179290069525461686162170302285592027845853091887340245195780199868329691672531129893880370033913025933570794538463235928638630282479353570273399467855402194882300870269913267126431114134118064397980650389596702082099247066008417455299118541170225245256708695790769482224622421787697893571481447258758398275203319672372262487083993259343412194808364155674789798813725098501934442998955808231073021747335942029252364624527131428766665550723350516794505947879680008599919620008486700429731717578773409376312515334417600493459055467820422550014301986158168690260913215592034627263368848338641743758313075156604955486640265499587038731490620870379963804368663477816194404514553668884470268865301636603461009871797623469097876946380135189610646294657922699467195991846555100357441431942315197520465140269295942974333011609434898684209983187950939286338081124827816800919474026982490122097890987410370253272029631673750667226046652914099351914209091402583732930829701271236272539047912426973788343575692044480298942846063168906174041810867406963408633524971376817869019672258054828412009986772078657782207309700868298798670033116449215555193970789195709825171776759399055245073514815847662711629709103210008942946955419344174724925405726564280305613068981351985010605915195972100221809775140602486145356756543500012669623063216692798656033043990241368241611790712977889362975398599627802186348220046981175886793095218564094262203163212408695756956763353449808695446996029360886401045258000904425641953419849874946932995844861722888937381858302421140450473956022702492273391707810567481417311708385637324324237417120296770574334169391671447460318435746705551521715986438917139753322165211110329904461418480444929346523843563261027634240836783274656312994980635713169418449844395523024518756268590241491530960176600154667256175557302070794749674267460587675144950808928744322892309773452750335935199756439272090830850509627238923933655967169013872245732306568983849018615039155712687340870020045260856548531280989500278541656099289307712774595854039014764867876224504874310416140897856284499387327871264024680892380968444402975297643003336733802544104194846088080864241658822880292357378427266009005752318451004203219495817168763588480095922568098241840089356841523570658625636233800573997806326139858858324466588685843791456910006885807156081059696572075627337147710216768229966811826266202587239415240384851432004681809299751455726494310463795543853484489980152013573419493912406829733839383969415091988245160939395046102277769850943543028969682887954212085033969600998446972813281149088624946666532541727979270403625473393736483807672495731105089669892975671819674413615936841811569811514135597244068653341195228548839138401835930464714798924254768442577630066095409078731715399348366907133858603569556781462024668093319565291073634327687154305020302722945724449980092785075127389305130896202363371257880072162113314776862109361134661173739856528710289098600554954952478838330934415262251105405068950878496103237873046179485497193006655240049032077209175076102765210397078124417257381987820460215889238950055209599693371058489533194355873315338560052257618471054079320054758936269255724490286335182291200349293774609153671001174087258844225661914827186793157698680141279913790035737344363307998880291904431326093070513886142152230007199596586702801279499431243174445917370109356545772106900843538355171846831393248492715654070317419461095301445846132321044784257866441590825883235422123574415890698305832511182067337679063990318001747417017322184633516348861560292540909258618499194106750850299311351695943072124390400333985289801604313478458095082420335638065418641874791371279103013654896302988261194237613225680181247683591460687363821240032614477445181046288360604158161975754287716505230715022453486275609755497864837427892551342564668829069921646036525016233818039977530566631070078454837907367775214149300279095387249852817361956009090738114746279956253581199262993050587958603375861491466732064289150358744532214599621830142245535920359117971139504942314502075926205958056536325511233149943659749278465019071650361679631122802675332088514479671410056262237193176829433639521037994143327375318895799261543981733275218345138806224899974772257994170841209492214835907746881227365842379522197928251574252411741282338066034261131551453630418675865872978295402678399354533967210156299807305013841076772273357129414326611234636284583731481616576558076964751698406650990988680258034530958040042285978784065314402245645936719871632683016384114520197561715696884447501148113433809405946478032862672419333716832992603138969446420495474031335937679653082348189080258428074231377403068578008328170662506989674302146257981250430923074652101875342010946094962200561730136981191345393881656610947284733242425528546353320872693124902878073289415538191729485766106561795695114021936050196690662398250651422248731220618966070334881846827222691676591922144086532306090605655732974502601685959882823530590308246565520381496274566728960130618187376362967733449637136838703662879354703278317916175931754681386583953811000735482611742542654953384503013468966144424701203585062035361641033239296541343241554600902670298210389112919351227626121872203280032296031110560770272225727652616811043750681021829217949316072398193193414140362027383045063629602917928269249916602841568653237663206351299154550125011649806829985497869200868261283956720426635169876067998363814386365119752091091918467064254792621151201581895550216454658618442259105711006213769209027004061618417266579093457302675147412268016112948686752074723307087299337926350352028425401864086121139679512172741645854041363013531923002653099343697442459515338121193481745898739842465452606968698090918395096298231448072795087045837052427983655231036218235618862418828136851067370233850628984663586024260423903251033326958988949096846500209477953645714182138696051827109054022454597284150901116468373464798225302691401140470922119524756460233931575403055717191663925634958019528280465199922672166040015001373677449415050226994436203225953585096558467746611299760477830773828190952441769970539449341046943866276349257712612008382680740999924444410566992184177602697505509542906258262708656126759037650403761365985802455674371747121879126009592856482367565106055466068163255409426401657502946110496414852151728814045824504202991081105357843174425879615879726900328874149149884616416852647289882918567776837323639347630751525718074732734728059210343791341606985005518164509643795661788986604254310801230483540648012378356617197061380391676334706295780365221999396271009639433637873280310994458168720016819601115200755694595509005457069340076059493212881805874871730921387359175450245518961044448849454204395219858551537418621406417266386230329411921227658359761352060866054952737339428132850527571849922207092207869095737711276291208868619858709365659951497031717779379691666179713314641897413032249340496654344330794746485972999449219715087829741922080137819464514313392873563803247611438523997077931099395928418294342596580214550497032406976299575064007378781472730074976956127216900600559213267287845801728517780023004476224697513310759496150938684605437143720697447617535723454721075131569921983615607675298203056475195105598418078814705072441975736907966093662707651547010597189507920228766661859303765575417303653139661158422114504511678736784411154635550606256709411523659185393637109096565947316894290379231269126617502164274037727225377182658907419471279725719888206443834231878929243612858125629812951973971535127847405763316163774881527160527566690412805640950223090679531660236875047465230100200096269969019851318722506921670296588346961909627242367422642931562961936014322140846637903327380526445829161905561038038274824192390225705771839711744642014705469642248599002520441196816822649714493958826679455265634869534939806875298825003676500208502802074716555266209058687970889965112501899232801930040399673647897066393499546451970022744973740987165883872995621367415544130381626846298615098401111860724711319243603339964689987351529648723471668684578750928780269773100449678475750519123437541322268213536788926522857630378554406805806398666669744501475450519195012374966536433162513229149020072618825477235156981600037699253193451796458328006211239277323903264306982037427389353342370855383520703581836460098659039006029601496442555541324346591482617958500371878486991457628730926413542398343300321931457354492086514891658674739657755878308786147772779312971512231052135069140843619700022205510102381847699808488712769418772992282030921786999375799676307377292730350190251122630415535277252654235706269177785566100397442561581927176686605333628413053117213867188878271507000726352975320876830872950783772333777158391484845201219423800080909289763435040700765607774303419714035556326994375508691185037232151637202022561732088410674528634556726830634933835343615280239666964351134751698536809393304007201854350872677567450495227836932368580204863425774980087075537358957809104809403269291509894467331033250054985971777355763915220739597097580193206740643850110084827653351758731218215918234036189303034827354624170468600178960342928050902930842567676431989424403269787449636625297896388845160612207140492153432736119069396215540836177035434694427689631124116490685141717660258300262409441200485448633543243528790004519838330207569772557360154635009052311573747797029491318467152544227169864771199374170102656097228756899475584822586017349011527151437271337998416275528614837131605744340976820292277748748530629467796066918417871385849878942325163134351815758165748294491904767363459059860307013698758894416636844363758007430908494772504245715174398403069238204509579192689381035241926944585469429719302796126564011890967313184833746020728633363137430933735480192276266028260476632541729022017492417870111314013321902806350768694686364229207175246684969472483314678488155671182809296054251846446522015204278889323614153561963573756276004761909705969347434469787895847098962298510262111713115788815852943238805738104917798877135377827554308085738155577877155042157193385442671500849525115396899348507730918752461821731900839186854232993193143541415102560645569508158253006966604528597908321606873224837986421497717941754946251821266716748118654164441494127722017021867779332893642762002908787832629442582484721599951267568362337329665432369560207206118993184774529818217095871334258882247888834950148316928977060461860853372393412597530864948890019287687742609420945622237084154814108251261655361258591340485704834728161659449074595915171895238090583149497156485926621338322275376718611788360453866524358414755597298418423233791513461097812967858214373959044225632778819555761575526760418360712122993260548769208553016571868868363961073439881690365111702066602721051300236780610615271525893228158557843195048615009643818914634006669257990259985418741727459054822448677873504225250624711470330324061717349479687664794925564861228859843319463207077897308098160708331281395905399891336445195226985492430542983302269138800695518997606772106730993628473789078720470941303654740170270369861348886457603587099491301525753923423205019890059109287952813328610254903479160177267776288487589333291037997534686461055312981692236948330912775709811086283468748338487483401926502531814969174097259181495210600922389427337637609014773725501431054185720392681247172523900195041576139296201705823758227073710470955793952176666182166260379564710707730548223441381884312669177918941017735999569517887905983764357045999115307207047896382239483292808609549774966216538669983924493691009458571463928930502106800311025782502585816317174823483320071740070236976443567919386341321527164221420539442263083297187107755207601052021094183141135407742620897654371301333533103601554434728031401181133030030879348851626663014927029980567532885643926293505743549460494666254975596301027603912255905430644362278126196788509943305369743656678220098585727449307945007208278922021279253480466164798241478620229120465228877545640625511349092679160282513885854801985765772268982391058457490107436014859728719596317467035028001720491834094566834834176039600473459001438794901903694608850730021816635651428709752249135415104447329889325879634153536607314059692278423504047807400220932434428458822313241437494282722416489704088039400469893010774097606161796505629937683958420247511233598280824726218927331763049322841516553545966075366283498095852414938795075716115258909785787244291862172943263706314302991112739977130661863923470152274096365280474184403470330397239716382340817597206078402031868731514066794645783811155486023087028591135896396221017636298917662141753959397974744073981359981495316028469398295235795977736694011082871040060529477410151206643235279889818241359271902969384988246798134968518970533266868698733932252042947348725491990421543118879944938573703321000352553922844030379220529779593564759566629670949703149452066298078403512108330302187411655588716009660822702017901331838202715902393438940755095008944314420682270558987891413770241383475954712622300085685911786686160609295820519176699747303027638613043807581690739830499569374650675658638777328756658649898997570875916462407366950989060286739729790240816353997202887203462775155174700442405945865497414829110304741412555616799728855781589626671233618012995621335652962930671629784528923692748565455906329694229015361793295426368953842606747145848430523913636407009507969710742126120081073972737039606435214641691795811744204216837146455716769763809353059680354666629128895145015035214162380992349930386947178406985452174961152937905074887162800390602441680318727156838860780325293704416742451508331634629670961442600085606297486200832039034387914101843539934150268552418251418661662599182390118215387160685476631924137304610781272649047123656048935878482378955302587540036004339355341849036521665186801815050909605461053561795055292287773327388952285532544236161610754922194776325142097671183141898856455291506334496327580422909434957727819020515356973468073426730142857048381222163122324166687984007599960517586296006665447799230863480137542312342550454464742792178646340829170535845059672043217950276190202421038016865686071941449546075934983252866435610140209098760748850444679307862915860424524268620480475624287620320010860995139825020218459653866889769599581231064695394217662081666746843937350879304039257496969659570731536002533870863341606893349795943611374271063156175367238955936944360021055543905249171564448649159156920040529025907384539911893952629218994876351241295765230304655993928369556468261616008119740407917244299774743639929977619706033745704439039913334762788552560989326379171828677560063269964741298970043922435939285548520012631705894544321113525669622457333929165661134827760587026352877274502828521696466970901619864861994657606784073316682808797079333426893487466792958692908172011319602690283077198748501419487379505874523626003878361403015749571076669431525760413705731270571397567855108811716457567283664852447096057026570441056875682164473400375922714269416506492039957262254096730217006661133830466619264044440656254407162212817031660914194596019120276250205016934315317146425012515772987759032917771062606933302586049346097803212745160137752789363323778862191991445581599197909709128870859351044546735799393117160983140507496825082483252538570188783952875874749371174066103844446856373211952931100861599309232264548100927611211219260902953666743578277403101903702598971313985793990821093638443429918338311260063762701843627682656087361453121006556055560145567137089757440149004993096070684786677816039311766548234625387462310408790111790365270314003422971348806767143455291890691814046349690393018311947560682673230301839005749090129973587698529507776089382714499271606412174930805097834462224177266919389379352430760635448533772580850130500823137404559136315868927950773082156042283754275346554489698250351745360655361117009835718929753801480081975920600486858710583394385110005921319824285446506218192152004883203419557306345192315068313910059983340186151653983559105368586363345426418911091810987686042960713902309915297644682691798044239947416189099207005053594913894269006292482490503210887791117831473813831831930498125530910529451876871129984874366505186824925782409143859810808429046402820989934777947190763257669940028585057284023848086853911625518640765862237448048154253973815390950362929774767324399432914065001703716317004469089954795561144017294938311720743535014319604092167780596579641025560196920081936620196845509096962202361131800548287059583224257309077955428478762541651595154672525728840520998028662872577825840241578436530624696595297889272893857747291317825891606335909564309922275815366892634675559884343745709589763537155694560705207243361500257264199432723167645599241965205074101273457768093413446087742229509956708506398201089459084191405641122649950043087847832821525890441386900406137342295031230560449476600878220369606616070698425310707466455972326353629468161107869279563792082521085671465190576682043239741284593183817232982734237091187006630884578269461412639332266559638195482889066436634608080325446682357989464763918401227917063704983151887587609320885448951500408914591344512615200298857467210087636650440451663450596398900645478984212546881185576033997515728435599225856349148605363000233338974906631129180185996842836065610754844259856681387714813377363237246288549795728874494494911479361187335235307462532631753939324792651972576456965465340190804620834776814282373246307207877847965874232943358226932450897144820098465819159013318460671525192125173789849531731887799372208598719025360558754134702750829821412249928102738061555765602035779308019350579392122616368459210801688830008128562896920287888967988746059397807409973347030692210685989100457959157871523167313018413497323825438954636249994674284505965013118899575769053364729547138495949890860037118519191533237073463433758362055878799657132788875832818737822452660750121607512358251734311678780082063353431740797744643090754571508271013500713164624304346013003895769040992806422622260449173354217624028465642389580288268914985527522997528946382585244819155129268452507971639095343877044106609795750350562131947775143503179194288537491792013423012831065416432047802662819024407494265815962629142021981633941693038424545144153690786353499539482096721429952849961575669905559384382054577155342613542383403592737781891394361180170805345459560559681872490228876196507729234933146465578238892552845942844985050780794576918044747000911211176417231753237453404484744236221120229018291656851762812673852543083683743936648218037566557599856846081661507595776326350975671425265710128048231758762824878949104054595470711308862821086638755985339678803502650508448912180403930732978049148944773679319399502611727604736582512817824615457376210311863859574261329051023510131689118438821785175447580297326535310989883077711304354445459459152852798728922801837702944125855395777873393907975346659961989529952387937069421723550586546305910918365723540715154823050842895074861950442026838764957202537130703412792526224064754073775781153948144732482412454357472612018677757602216255517138206390158708587180107817925095788951249962652391597698183916423489278245191806778900748721866446363013013118894105044499986554064418658757114188285526737693972028049479479904365110504661355138430929417575158079716634870544662718050334901956992706726289630261302345438168968243238871835078394498779017806697492700608167601573782238514990227818021402461258071774803707560870120602382840383084637228964416175496533894749530572574882864660366297834244003579528758568035606977916188426035838615645267280729799697247622472073215420077425558404467444359609638026621084915610934969766185871356443368270457013232413513291381301613276740325876895252217293878085748478133426655061547623332640938307924906634016288962191591601826247866948362092597293633390463228862402160001377149356930612256618390920881601882744326276387579990063426148214628410453427872826343781452330977347913586977938222000730721783902553778623564943229094205593911300932528740199303078114376533409434023151756144860650719314927503409802806355202176532816551672400256443390344460187277637893740795252846555993676718988853780973692750609067713890165611396805705958590874142821385040361254053498548086875511380157739965952081295528791376918651799443103537326014205526990745326525846699000476678161418181995768056579795393794871502140932758529400001811550262578472731455370614823480992917793286546337992069969009679626903867213424453528314169711694525868906358063958239179218987695153165035288273995033175295668940533321400717849384044266993647615961054952661322730481887127309096153595298906447110135942430754851374727994904515835440721049237851102872901621041120660715112332441952185199383284174811273363383006489327047512893644030178092522188086542767709156475708959426006110669049472131862875949830513507182637202276976675623498845580185780534521322817091865461838967393095994365097749047137413815448766170093611166266598351649226502431943514742620833669160692253788339200428677247558639238437028340350268946433748144801201752046970755487952096304150541590839309520751030157579950788281727966156892323187731539772425892952912673586672755083311542628508852542547521720942770270130063057023000814199295777931555397351860076906893151038191766450729103995516829012833383007538175022053711682112640891894467824879691434357511098521222466847794335827875542212137937474874243961343343304917907774770751049348648142146302954300785162187352242369356813762777506294213349589547811083387106758924902576931015127255318442885720675740133108155016487247767159532806606874428863949862616613700910705852727387964602908884673005511638651994979186934657386702177881085211483944335124789100188348606320479550462583874318166636072947020688265379313361345129739719030942184771459053908675233550929316167743803340981614095646899562253876950368213910364912318255683141007233691212858681909120275308545455475777858032349831500664316628950434881087784130549047429270063135563671143405362458820966907780681450519385587079670809143926693071979127957859715917875052005093700108029340912893647701391719314519524619338400126852558871499271873449484315583253893187662449033974734427733411636722201610204049546343505406944500220095527873921347391071573981005288577079072847997450329150472912966072696255775573091427279295985338639298452949293964359035823272430440456860162110769578292922255269330551891840221252024133368468945654733133637741454886982582412588534796437471752722979452981669542957058124309441119679158368032101813043677242467764645168315195567047539907622470431485469951456519585999512166472078145577631887776560788009028794501677986786615309648163834243558856883570865203162716072683609851483559727443568367636961122661644826300358193712516213987211148068186645113415202286257374157829502889798803086323025718859338577534327953435289255857955889687915701439514529518835923611410590416054193709608557807326548183676033056636148620001084029816406053013717286934878246575555669898263955445915766888598481251497188338696877024982264232668687581297808717937578541014319935923645593873752083388501155992750268238879575623736490129808398463451299683702588945310125135335920674141352707888169202382726672632888638209442577475362769868779159137649005236588053551796822705948534601821931892415757505081234334853405709902741241641342886518521109729359200529802263478735392354473491833778782389042057652281167614212260134010782837901504696587120240968578082251058685469526813984929890512743550938691598791161191124553604382973223520018717640688237120704798331440988411989488170250030754706885156928513705301165341295199294123488831991131082240763298852977257313815906341156390017256824528286978051744333753872414003634777752394892986003990603485786849086217941213737646241110389575036486146984337517878168153968976066613889322133552063957676303225021200875951280290219511226786680558597402222111391911424372207646400665231093213592102844200070019903996793361548262590359950638951559382498130598836006226332320974529020049336828031959286272209576032896343165242411267760851946074270153346699058459598126656252234534675580795584157601835812628401381576223378093793232073144613129200647389356118835081261324554144335445797569600268650366429364812796701537735344384910665369108387267688787479074343641627131457872837151504274949776038881118327682328327618242385063061075066239792982354000050563185427739742820614702873056161402944128753700671972023146757511109055877552978129951089788411107206539795218049553137774376489680773298116354217687896023789855237248551899029218597093417994924901084025150580661488165164246581097097121676325580065974803978362618008265990803554795572147884510073955806675364810181925928195317420713196438940164372524321553256618649541765873760715114293992959050494283954406937372441460952757170104811523144525394445137067193032956391755010769320844998011310614775596225421610184329371282895814885805074017013602589138556359185199145943881447198376894789971874026335028852209417673221629402332044394565976973189587050933115049057617860548767446945256244419374012726396623418057469857509576782493605114522731120587356777547731435970658166180369021474810732372905146979882744446645589533993749574153181707056609505359638669523475744474466633662680716294531725486334432282181006945897504483936615736466037178039451704190526746894135996480647635393054866204282287689910199206637232255573723479233421212818845513108310872795300660831851632676046899454165262155710587213029963757190767433676779302794421209086051128450857598121612131645494349633235224284747389909320180778937723242945237479357448534527701711285339713036759564010616587384403008099104556154156657453351982274729271261587112753768215325679701760720913909553546109780923539615578361743942360932432777698431917462083019442038929630349040240940822316782971066791111692059749249310491404441947921730565536418588389734458057243117536115678115141875211043405334257755070931599925326649321007205575825855905175052218406264709564500742920677859716239484375165189203737310892969106441355937834154738441373829732129407688221301414146021774379645246374458060938589833304905222606185141801178670088719788037753466068240482285301813317671836089629056103759853582078467215077747207626425815884089631934063436921640157895149320084786892151154185457989915962608072060303739523787416756426286123462449531007983830511394915574290950784909502743275426497115786883932484800657913416234159578962820489845107455804316126270985585585736081607200118283788171880202749128911135018551277600954674094904430310775786198025294966908771484607087435011707034618215944484764053388742732748493664555090862315671361953448643807784542005147432096751866673162575662121017366284715528080487430687511575649484521551590261334512648822444860843649768293805844494969592602553334987547452637043111392971880752379177631261290846284197661091774420548922595604729240641697266172161767177646633156723168579915143913854128414088146823187620988953787428940968396636229780841014770198013681959666065862870563487015543710704939944986544697845747134508063315098834653140391174572800712673351015735613665851301547699107793122852637388757538273717111399778888053959031680927715866377768420780871884720644699051570108592167602711242337826427541488698315475357864208592700043308284784691340632991957085683921664338654674417003843125531884969619406455025895191514798898498827924416356359750494589918303212201526703865751202510188844675440776925999897558455287310425873005954336762655987948434953012532174405408326746991200908526981727983698850919850408323148643477067776728256712155901931175526370663022149164921563011854619909530161867704928388986682285696452862915493401071677485358312921784125498968508419578500947628049813667917032265202334795090036940178244140008314063285198494825993669206082650256325974934978158449348040705276883386019957572683103782576391683488938301809642735129391268590108622363546826220750622962347436542121874619482880749273091760417700655613956459932721930554692718655676944658307207510832251486499209673948704943035606026472683798697527402223627022445306096132386278039381068117953200709888620355916770509207510908716037633472750052357340868906343558114647661054353634920796368626063861455377013848101383906668910080521235016258473484157268479878622428005978494970225508653286818258099834214078113924863687733787485383326604759017970056003277402716498876620290683130301798398512306954495082232375177309443646111063659092235563731859138470776951107112891198624673291324318239339528994146293196923298960825456557748921244281389631098722407740960118050970886134853787998986482336058468934978909685314511602741315279267408069829261304013894273489429290018494548116368372596937193044787642296995553119614177481943482159023232198102788625413878109597867334369727773010353383695056706973581437863128308054061308632792319822510991929293535642435295136177882519314145084695408606426934585521439575367011985103764896774014392680645530370166642086343033145026143392053537249029785093212972671704647557605698538700461830774510346361291140076832734839327117293377332164274314791302345217431475520097972069835987807137242518613321347774179628670292621511791013029773040679611098100659542600696422339337760242711264930109192682730419454818179764502347017999801172303498675529144061991799080508863832943884814583807489500526326190001513526762401884783079209972598820840801172727146354583248661371359783747487568673576937695888662985763875205099110512127592494588875186392586568305130723385338860144287857499916492332415613521899423907931773926372510406326269683798762938927805210099519124812234948453742406722340410260463590961539857261173027157279692199430308324413964046997323504628516609094988700012368046806566236305365512943738411014283807047814644239067539094604391344896399358244630598182344855486900381712452055307681641513849097617907430962039068789809916234138573115063720315326026027237105968218874041810646670207774773837447415731431799096413830681683954518507581150689199079401124292074967929793290690670115713683801922749785845934429371068002429230437063479592321639537727937574991683665596429708336711889566518179754637175122232636165446467731342126748224984037302617244441501638683996286444896494099116078812741829258950817509493138139524523871360057088029996644128754496345010055278860050117543267443600556165067919209823369306773164742091348588896369374263805592063368360266805746010258157982086732071664343865691865295453348820494582043792922254921719376395331283025518071286714829780239492320589805900006262205549894211939660434511892365934164337341838253993694880956942078570063746982901333227079414169253149065115597414737699635852374977032940254646741122104086677544922165955008269772753829016726833889098156424372643509686592898561442256462153097958289919726918095624654855942483934347365582850695299104117871347552735622573141132185552187125980236283071793764444652754289178647564965598057982344105450684006594637218567138475268209899952510000456372245638316959017379451125084433784306602301495117605318957239851191699427599420287592861485048190694823770709317597621076656132121121477164725050993760068959431189294975550062955973449564435326820619976742875779265532049414755266672065398954022653472703989142859609269210779693051267105410491643506226548837352214735262553518845979661883150775622208164819269972855829504134060909195840294629922001896781906043207748994900179571657626151772493612251149944427027527173378986725318546896067047675763367938089040471354092072696710183640272134268231861673867008490261942988154260688210203433318638126790823582775657120386773672589169606688608312401743469114289776908210458882738542267376905196454553591515331944494180177761736675332054469806193600188198882853983211826545623197999950959568125242489772756349274833514617084026912930699622688980238051094782296272328333058609086593065711537643032247312598957009275996343439626610660054843261355765117934047101559773047330280730450141196583367603512788299835619808231219311344697554960109616300644836459939107138141222534400040434420065374445078196676792567032340036861502651138415319153101326275806604301065087751067187899148470087428873101394663466234582161181838615639437416194989039402618454371102926929541818994525480337371889619872363922067402853210684709343924585317830346884493275679496343087525730778500687528015908302636378888771286000319663513208202310749575598562609863117085363314126191446626163456083552567754732155039759643090808621089097951397326076930695854983164617076402089642176135444508766779851859971560719238397133284500083545024443926945780539670788799573484125566258438214310310782595608532409440556626595575352602013678248457868841298588663833951348709895891628711555007592602116345920881483488432644266579680960143990279538068337072580244218729113301582589332364482453542247693764719659448766475018341537907826282656081937393218860862136677878058272335891067232425938927414180225399312229119651758543728963230505552040970374278518748565971174734036586369309102021375197349914324722788057394227310851409205382860589642205178864812930363558618118588182111564846044785759799919897476581433781372456947606284130011231446046904809159353042988971830845499094335830544315577369333835603111588612302954457467829373230536793240982134511294308721447129661168037676316049697603970032390825013895533362560904770639619261595220842111369328034188911258695146538540699790429612185386570001600857081529909885752511427277327363227529608006303761575487842658526866701742351392647631894408420862561985962075129505987249531615073387190007794344882985096215547904535561671765757848324053148425352063983508806551355594109539579143266083071031598695815106267842162275408054290714389688979799328305641449088011890502443188824272645862621827231007466701378429803558806226495313869408199612680354986254082095440644534474947769478354442588278948622580363956835273165820894943404230373544266252036902452203148710847364697621261275007795270197778888899075165689131753951092518197580401682332042600352417990074503030082398324301593683383811277706563033168416959578210014473908908606148844333330348894214507969933798278810046788341146763402163199543810160450891405390203896615785009032836855665597013581755318258940978471218738188406309785766595511980315673661850712795549585389804676129555876667028904039888914227444744000628573625402851206586719381793008886377203013131245064544579266119158900408950420458542908929281928508271538801312272564811481662217720656376290089432216788877677215501388965128945587147257855610916545857734995907183134347042895849875626011240481599925228710964515500915228859248412400644496380204244722072983072907479235498104858116896430142383858010042862976344038540588880182376363288225624286802352628688638914453059769488815801951254083873144895108705821164680616301635764872949759255866624073538716290054876003716402647037111333695580599800019905743748542761921883569599006533386841049012399183594116864429986859183097332094144461321622499388519911648223977602717759540947758859493518651963248120904463653314655089304531929216352545145263993724685728856240888492120568563724949067173882639120955224739895443921963461764867326816690863307855850007616807168590802950184530426280372050996395920612060258669854880405999606581480177926370763375350633861075836852588579869083422603471241305044844008192559922731485263164492963970838583163664891462983800503150969372941984773505008581825622542756054705377095205430975367242136929525824929292688606956448582096663784553462616141288071638699666916572348701909483612685131250996676908183645590457240891250076286452259871719908117132238693284444957162280144287222053974244041819318216423457272546039174566256782424373580872889957267639897296466787056678767981843554333741134980276274485571234777297702994301283924976972467251820664731588123350667748241429610355151851179491579986974033148016296120014553799691112433056371058635399437955694324437488244510368648679949636637502260723498927734124503793053151890179813563784646958533792318255418374515497141832554052377557667370349404204636034294717386330747411104984784992893881406459047847561957155695324051584963412896185306332493051340766346911101744444895044871421957133827336747095387897611111538168342346408737182484060464388832742852255667345451405258207249822159835504003038032429096104728253311926307526023077378078369792902388892461608214601788660148811167860830950473418063421034915550993535295068379094838249875454661135483983992817210401841348631021659710668672041417406563524823122635194666818675993447805366550927245326792470733116643530257162203305981973643032981442534462069382524537158393631125947722780605041716569686167375676439013351496731600485276526000400503151671647375616339235234132397073780812708924982199998525468593395052235800901017024520537592249614606215608882436847992276509943858439474260411178573072084216126361982484616315881954221450395163015630965842878278290446138085488891487759311282250317390447429715421204119018052271859126014395999382277659101295211337398093689446896106249999224630668006096893788913042945441717898580021998707743806667002402846637612760115609183340577686126682965221687404935601953621221789413786690582422804828375191474890426524220848308788868985363931495111472645404636825522216372816719148215761517302585831800332898234351221584058052435410841638600556648924434354254219542140760262282120167837796993765534480146969312589600667595171535076765697455751298962961841836027130576914383200637344065838468834499943703261819544067247710758472536997524285824234397041009650249056358016229258413268052897135877387012112617128452631690846810067325173560514540539979314141804711258193126742497169894478293604219951776406062828175810119658134858030010945073195113838851505838069201654762760132373418270601948543122864411625378163407258205622492474410288985363370883420286008781830551013531226970013743324419296628503879685380780966403910317295553779295758347786093703244213324167049446621558596833585416038764348563170812282792283172938472716176713716710754791422787607973564115402223022999797419970082983773221709761264105952210356190520672219015167143887332924155716135516016673002113292080246484201721513021161115626683577046294464783296820015906460193700756918767552870106416569678377969704758789096993384407359084446271711828434154026675680483728292956891381845990497228926193566150724842534424655668347128066483882976441596366354016363667310133336751561588282827054071757716296867666644671967730773453267591826337620272102492991267361957601958789024200664224471243021092123109843012910445166254103523668543121122726387310508527177870475641306760095553235591942854900392105693456003930866782444503600685806477409584762752666589700907369735568600093897661698191448210994662671431168274309201075127366262639812553252299647576866772461663373757930049294155889458133333641859567264590316144414160243611319209362703644404857935989683339144789685884129760912023092679670233039279023414370344433554604842469242289773433062923568733575054137747548145756502198628766362401421333588847796714921342771355746268272164636963601787712536151078418323705169931105969414877057740578049900724414800533889845188517701296597308620649969970831375833549925713195281838672781446859058677976576465562224275468402279544614107969672790183576055355198262880627898495828483408886507123302540145272036031300486524319631470768041694751642092750090463469493426489835166070851509883859710606919885468039699782896765139392800982969222447481770141418126023634246723637712553004761444709137902573959930505401784048196395265346500453635205404000795116173373135214134926454771537650266016177052044051159425094679802304447769279803066666962077152828097055773128226078942743682301901242977185858128282634111030810446705436766105842559275560553168551018803140011862107063660542933361012476943745629537777536153397018096401130933563695148293020881448523625424763892678309718659873065768431748827885418265995963322483355889790285239190384922206434606151744686008117822237053672037222943729979932908154273985004247909915039788341313523381658192413163925163812135460298457329412258041938049237140975024493165963725339739143496155977593382240607660803540545010586181637049587175530604460991265281973438364357594645342830852513328859325298377935734751512812000298412703098168871416174549676108969256602826187160228321479935701873098920024117433639470454646198809129131363107643684851034203178653893577548222808225185707674586724951501515404897168103336869668501418746509617837258216294039597817035173820318405387062645932591707998471867243730656165586190092250552485623997650023311310203099771614848608474060713791239587274223063467860677518630216713920934669466942366056781528095776202367820356043189233108230811334669112928563539783259720619717429844748681719639069542704074450905295047523471491586087501290359653179746299806161547870448256891324424919021445589791371251995304327170767204155329412058691006749517064470528059579815791521750345848759987885124197802204361938524160069878012727275151056288777844223239264399132186941432648097064807236285135674483685001927019323679018523318729204518422540034149123719637323209581327510662895767217906843054230243356049165452115631096492808812602323298305758274946256372533392796509638956622108663603164844287476481762560990700027218234054718574686742480243773379642407739978287488873569656365018686195079783094923361671105574743077724992076079753691915933369292736429162992697162917824794311204430803781909119586029991558108300785567347814648529223358184555687003286165902352441695452651439237687122050262368117748831958506897989502776331549699121955375397399226412516457450771781405449990519952160969066900875325748263743328351442587241620928577015364005116267944034464541213296432096727764400106914750667441667754130043712949464370506956346215167947720828145263633938680433152423155566674114862562659441993931974766322269055405478076605815449472826210775518912391843378039417741611880989830305909749218096384353827409550750058116732360124507116336345213088296844403304731706183598850408781171877494446031379510703534601261032942260436830571408891049581001346574378200917006968160285503682018219196282954487424954460397348721156160476877948915373669195802396437322954979887356773812855789131604628042828141425214679197407002738297499928641784476809070420779673956746822549306706840497102289855876512040823743567796959747768957058607412423248374710601453881010359803507394852515793404539981372113023757679892684899652267370317907178987447526531754318565311713881022353781234618971753328426636983090025049692755251623366349301177882210855861080557274629444992382576233623856073824146771039149181893026848997447225454193944386836966982341087957740328820872411453997246737569827165318680597362970690129138298486016442410876716126777207402993548769807511028627696688293054481314406202579030861857031477426638791081514490358240163037933256288101366557710292991772730064553137608066388160880793213955358711906190325884440047501258454080997506707384349359957882675101639493042274236877234044764325711445206721887535614205392337794507617930137529237747710435811290003321037681488168325715364592428529373064659768960675418376620942352256807113541577397979673800295460201509248248680809360819016744735197582218850393653903586461787422508808728626734800891169218098808056084404016065971999223425458709647244535476680668769270805970418299296522160434974756444207922269032642288454858277716600005256920040091419983336629791319021880723475882392751350795160615573229844871103635860187200610059853184445132217135345404082526429627202439095060698782706123030829004927740457059275309535339898631869407266607316607474534219813054147702552788116195430807767582614054193855652095967360795263306091297023308440636915835215175191205832133587912651131117814332213237185056776876652537888544194718280931286824087011099250251053027692917018777308347382393223813179741763938044382596730231253269806514961915727388479199720965178443263238758828848705278340387583276356621489321569446091122146608969783492584053812561192538328720120899371121344787638131986772780383098485755756300344875612897037683895727336472117101447270102226869356130397809414654371298263788670865495583463530938930559306388749774704939496176213568584643991033416988120064998468739674985163362577536692822037130177449758265485213796450264929514931847203180252038170514210306415667654744991551198166222504232335624199102606354261761096237840440735789668534046376224592585573080918660155824170118536646794490702744968877439703141851775768823385800720480689655886301405621048502028066089569670780886235084403306096841371186395464557632953703025017133342758257929294953267237568871273037885573039723325441080752952901929980219882239420192030940696476730787402887092479610482118801002751735161982308418187897175800934593545897238995233488877913264479808951438670017468516481828562831188915562847864881730800322028058774952005241832338420754781325934493875501179034898322601920437088223009030341919327616137111109067404891890861102658870686713739078383279808735651343090219816173072534394434979245014902491826180248677618904780935906242958000050292050808413119120428144926726357574793609133869007889087384246176319385651579716605832979024030910755007843258253930347888340853666150823316715470808799129812297031195214821379836107413263547975774665690037688564218866012206328739509517547136388257686481491505116511331820251525013213654948580391674897611401622226501360282295644137566161381664687365826047890798499325465920422583638845990714856146196018545700950581347790626709991952677818428093781743875869635067905150747309086171865907328029047191377867273561002125749652231292314909963426951861779939058258186960070110254851704392652374269692410115620258628856862368938595535962473414402620948200916484840563112712749509250999968614900349591676911085269538302269933428509639693247295473281012376409276177362405833420664719515031511015215373153842942863026944620996594259866426517362181120193380067760053815692276313080861022744325998485070168878785802813023979649797173029691791813007185710898710127467713429982306410412042521918529565408480688739970564508944126608854080125530370342858968107253580612816934339000716637223199096787988970768100496838103682838935344467733525936144805633997921285490576992199953848806845941996702625369258089564391398441438038075942570251098533041695451591059126994364376536390242013901945818135665880678319172988219299309651358352281789881560143815296743506927402167435358240053707369298749864163192268195741016177000953535193280221924581146267247509389689703599548760422765989826262587017467392511578002163457637423085404085103234635244962550053640541339642658564097586607667119528926620888920259268636745782885407541918663645739505744823688594100713483073722898632433347404571057011849116850668947478832309702617338777622407057319529027859725705149448482587300426557910897746367952904607976966317348743957868723740448846634332950536433357777475828796161278544742879501814225318112884807998531838260308716445977821177832458886591579770121714746049372118988257610029791034287226380239387653408800286316682518791294344735438667960021104055557441118293618409430087367634353899610786269630908562062529213660761680519054489940351485505119092365936610854397980811523915124689619829164807787135397884160966826464219750386794815584849675016311464704146554085864626733518940332774412834645180134485035972011671472120113291728121883768073623026161833974194325602327594438513923141550440662235010047492010533839503480481721896689628793450038852974011472285424302838729693855478411594104391374951423114894900101097247395597414054994283752145173065339569809332911121177946737797077984423042369377038933730661568186938754322710033363520344689339516843544392396339330997326315124909540590650100834730750151426293680352611830182581369567008982548754468389456822795158873928320025135434840249704179470409103018156359227856254384013353811383054010875386865353845155633898440891856812262017685660056839070608122000850820378038150545627217105889638297532390701596234203255551327211182947622747343257987535064073544841844009163395484862774574246036841586951462357498029423128555660190310533294496946223155645213999731735479358666845788092300264213991473432608595797172489324422438812010126825592386545610622105809955877773808205243139701821328975294496403314133589222301451483644473986186374633638084785240737003120269013012179970873180670929615719543579939577180936583728958780473650009075014083059473830857413747512002507774451336200436208868733183167756775129662464208720337118317646465919058987628534188042785384234250146632774043149540054751993111592330798351369151724081907775792686988182393217490389213643691324402461300230969218684192925254019896535906741566394288611819190401837629489793364417631300807257885075719333636407561357052334490380164278676569876543043095159237944930612725699569916461129367628633074413331749395677692548673995265324237311894882892452455085796484421451436623203302050846592756566481132928793134123851622012632932010829234519602810753808149488022921637666741696845732559316182271736283604326412897640918741733544401640630273711575537438665332440383447049077162536964188387758022660636499807782818699048761805445818259350628495195921284448904194293110251641449369569984202659969997309295152123605305158949212810790715898127491184843146562732190005305148042112486688434726808933585162419673201270345804749713313197165961883683551856804047499727077158919908868124497810176001982922058750206897526811134637915318504187818755830146293145071196368215700122777257329834487596547809613870287663901550892578795574496097666579550351382306742808071069246900190674411213624196374593437093280198100161877920202359460348681509858488936965057288123330897124394045918859221583530423481063433690856880974940831979700697798540685144090645608260932740010358290756897021291682852793893994486363438549430032903729964110977254859943764755967369804454175052946936584635735871275455736350832820483231972150142428898421851633309784178333457168945544638852107604890617883195462215031532385958317234517491411574691139497195395351755786368402928871374114646727960917214461527143992639975993411167285018180449649617158393007770881119832647587534908232577191133451400131314702343808860185429688748421953255284833226980390120828517259063374826475949359633231890152903215899508881528732082650197685528090394843896395366048003791399109166811147483834421301224545686888413547464319754039431714029735628183711428966760068012568444628697211876713121738911578814048781238307783834668661090213823296498718797455425018268843768422638023403662299258814752300274790900748611040676815999603775050398206138030403319882959249823165596434910266442442190179790943977212180563126734930316525735868933643814604947175829732166871065222318485679957863270125004821872872942342187410697186008405209769757808550399783370574832450467074401738111385658496878477081964474428827319212188954869380935813240392913739558317672597279363092151415206370889463900946317378476651974015816902312333918962279497260025648323755847412584997503850027412018194954537403642722689038316607590668330751322824194145785192946609002243599540324405337141944002335148695965263855438218799583135236668016695614858869565058974653599829449452461945787666026645531173920153485935726593480263380569424862821643415951029613486725751245916843665283701245959271474114824364859747594549724400517466595531716425109104463502186054276624155098890209875611075620422501954487878944698330185198621703601542858715275511950098906347396207375470192804007546134734519573161984524920220909230123116413190529157378550049592482478819484734303932664157415412056130492686519260485552871665095023563910462247430243703111965779401099991044195301376909763235307534136324265528888793381750773759760755300549664368222810532489948201774784161409689506776093821502590146838923641915777271761672161935468282112582215367713911131214241264375281581536343891964088324382998172523660867088474013785450132869061747994612720029725836458670505538397023176709979130845337038542166135251821450247664263742596392808187973221154276161162711979899923202098362493346418165336080057767846698015503441927228533972344350749731370770495788138572769770424885360648868405694546340504264497596274826125631722390145570723940444119147085228152769927799033469702518161088111842660860436855312185217676870914853222019715902876219737307717877595208177583326328272766185843632383107493732479436535473855871055366156902477395571901397835966768569138882983472232051049184226445308055889900424242095455560185705671755906083380191081083361782645474275689635847912073099773473009680995435040124347484028392061060765516795989879745382889082694924550223505609249931927461174105546470266929006203354021144747824961126837946354447324740218016309020309886403873157490281940683029965520577565718362844099490804121423024660678235603518249103703552746289032893131069476421390346242668592633275876760339649869864513231228735675644459984744632662517478755915456918751591616980542910339826718108639293422214960037083972467018146959541697778807452806133393100264004273872712467859990721581693024784122544514522459619655631501938553535352900532786309998071796423978367369165326456639976624341708970099457542035485017148603328006311372635684546653025285586393691090146203285374592033365700990823476470382654964941704591343402297354124193869969520973907239192044509310401301757473514758104526803392567463348116462709636770676719605128603709493369930734472687995859527994766110756912378906152101556607387896687473826716256460418893402129475168606417567175351914886076133465976352921070310915964164289102512992445113742146328298267306208398988319346896543211459893355965716598586678159297943074644210996841501162557040740983400163308808885261552696208775012403142191505613130865173054246801760701010809590197434983560875196797810321331847735159471248584979718534455364529101314929804357863117440474128651195774962924552718790222753489426295033540617215861442986293590892328436494069744352802283185699276127721207072778938798683318215502594221916329915336362272183438681128581312729018275067691858893572283346597777625245889372130316066672065151152090681581525001284029472001488887010340639032680838633044391152584037459930976560151521878611127702857425100558969191938169515385030943045837166245967923671891037455198028437750101658298103414266101234211110387274638626676122989847228770573452439057405060425314899828538853359242508867944342216520692541046847970742794747895386978686271105299235455374600999661234305078533440596772568065814241950481034818968145504623958803482001267966673089091780258541939603996000828732158277889610046925158106260233767372472464127960940838088216959463883565025286585852839971546236877390668893010079758215974709516500232578921652277999252997945347651160592586996924098711747610431918231929640276828774735008209899200067346114595208108389891500324190039212684743108921918883943125950751939418497675363349252292692428667505490224500678477843462128344299955237494793847480789389647270274060681909589982507227129896705653926081884742757699846931547141006028749030245813998959262587668881768094989451498375565195543539305487228446276588205756059916836472260884189292462854179005940245779931253197826112660406604190253652493277718216858248294002457038093785361378222937374258658082903021244814981917414345629117777836401549486502623822709275334240333301703436377208574716662787084606302047651374249197686778719733294664813018350609774063293556203495193825738097329045321275428202325130529599393104156299070468522740990412770845567359885951166094774213494283857924434770040962218886282333425645700203338900289198537143463670812708066503194670171309956169979587950106333628800099456154343229634004764727793082823413565698822980443206442666307004911308151301536843939299119786626269422076116410410570710802581902032801486136170062386792401857905889083365700229141629484605655555048123692409235373823169405568612524262310246360854529660416410324017732537382200240111039758657405018926554264351420078008658132906997280571301433125877555705731710343092675166689516615803726331627667437710769670602264519784233889730969963903643447922525644208916967757452012087397368139365548186065771909343456090326170810290887654041345813349150444541855977302256522159184201840898245175868504432520761418143489351316329431937961921397291808374572868237544087967770187660527116027199935242240157170324697715757414232997521965136606313928054092033779380941948843355683858675016775173841136919607182953180031257353620148862563148420959966916833249355126772543708101309375891463159685002331995644876649177133467697436457744615044081840449331183148850559759076137578762708278898895633640955233078847099106882452334758567743900328468112168623709642251368959664507706601360999291969472227321793747574001940347497820635354704875041877508293614988245524393107292388302046409515040573592769458457408757129887159289899598106934114312265624531219919042652045969965289969920716569577548489199866342509476824649458811977281034439218961345676969566290269414104049135353500930852792566756756164984992791698679859627245407634354655298215396122152793878689642321678181068029159775731688959780047183927544399759358752055280358736786643632756032221206126712313608744710548527530073452745362203758084736911920152987784654773853846519654666114802264100236666431578052005997006585840189836343400112889753986542284599541547087726460025498928109162332636964995831976314115684795387370200819073123581653640743827590707981924202604644413574195236967849993462855858340389826659016692709426373914693769667695139998403112706482326186092746129377454500679171338903549264390888065670434537103373453455913686220143779252021882542739520819672468487477418114535027193039165007964569681350238352188239769859425560971817924435779307166855627273698221589885125620377878581029961840032338552528302690548447888144472978483639815161718863420708767429194530237467825852464754415786260781588671536773288412049066965909263227871776934570558286592607955726919452237876319273544995946043028773198503117756395487491911179453600195016298948665081845568016390841846658398239405218424104833388054765121003582338767755347753674295774511186357309919947884342378029335966077354817837901714399507398072126813490203034356752334287287038353700956239263427346702319314791076271742949723709235646153338252885733477779044349422742832144485193843893993998319204548925491988970126288278012099007138305550552380230123008557889561291627800295192004341591101010695774227015394199683378215727670668025210703252692449594331578280847387803675635155891967436160069641676475733953369913622152317358893763677384404568353174331921404392773596007670904584451837601175866268250904177601431914972163916681594837738998552804024079700679425635262760726903499431402595699473987191356017847597890947822406051541104461593006699709672960651662873214313672376800296416370333674220402112167449481342756211226475632080925133588119525261407581134864825617194736707161419543008644071819946334188055936777911542589139337856330461123827097034000421664704669323475053129337095036350604753738764584851286446281175068213445749189502642534748613766842825555021824612694417715433137784203001566767019734572868440080282751342021716010478989045821934987550867705296077852641918119125746310880637285794056745083438113776516623869095731463186691174036239288066263888230912742446382155200072643045380224918796189960406124406142182033709686271750416823677109228723094219657845391016080800081550611681141599867030837144702926553772982693053228219567873045135137658267446715352881177154719912857656541786162124438746597538727741373792015432421589077679559549750457602340834950880421911384133556075140022311575874144848780707203481937656194495733282771054109488012158916718328225122922130361639744335638666313166066468463655248405967928912527241872296533442300889264770103500018541698270380571890120233171524961573466386891161060377239084174999297770612437454711446891744107860660779464327104360099114521752960841676703221149515648086172573270716247401051838921196937601756997801294364318339467279212886909333029009082126175316174835267563180086046880932571354571900699688058006556568097291669540912921418006310837637690184269447002734782785795727809440584701008345345744488235312087233788617421538690091731618641200875474966599315115691794451311681683749015680489002422073414769627149538325067089300515327347415422132208269735104769160125795219487092535078731399216704793386305249380012988055481146284255314571492202385696552866944245164847009178193907568725885187704977030556862556976088955686136030248233287945216198565166524112429674555319413189555671866749481326861517108916648174978696470900197279517943854434519102305609383705285848531938691359837821955491513594851372621290390635605229110714674143590849327328866205560046442761097269197703502066982217627716062522472525949117491755789220207669845209929757252981350818139239965893842491858903505130029057304475080278248084591193177146558985320083242677208042821940844694094321768073780467683030527812039026652789533472005540559738686674754265379487773261725111636186939983520638641356757242675808587163629691155695818011297399453913430330277313265351995173119253790860153340397583750615484594498125517084107607172386938117492281202591813975711063431606365005042415773988569422857931227420774555503198186766066516441123309211059249758245623344195610562615889261191077628087047663990846891820973358895446463842772092031268272783055950573550181751743147557996009763537033277654499732350761693553828596203301163064475460802565112985132914244000969885741092310684803616798597110651214827928321428331595831305436073928053928752192957313050624320998702122801938341251783646939001730585877454492637351055092594065651671707340893776387673719421222044906181098230186678966968754020255603392782772512093686428157701921669293426565338024868279949605944488276940651566536824348395383564960439549004410961188748938535979926652456272556948013673513426390713658932950999026412363544776208757651896344804505149673666466815574162386688149684497251662957759386100809079556779464334548856365918948945342286450505025405015751829230809686363900400350529173317935824280743697502225154243208112440306249671118626180719894536465677750355797294991578718897379091764659828437419627406483771761673005440003336746763693289319006788936439392815527261507755102140114613557371305360768322229893800351384221797938058619048849336639947871163574982900590854100340269021439956248841264516379934764851288329924697159917103279539888531692553648639048871602252923913425767523778887664844105254614841904277088565780126264814949189719551653411381383764777864602121063948172705968663154955872321848058058118469058491610253758819976560853180358064925602958958612890565377688008577765451901922582366611821987367302745630911323652508340015454268642745370509835902617814537515127769594005889711751274713056314477474131653096645593508814510793758155035440568199026967818574847441358495490990405090275743575818462193569728263336106087694614916384776436856384685163445052141810472558289022763529280478368407418989486153225189657976875065751963982208236383764499424140924827411939435260227419017519256969583203539806467637822238051128211487027186518132411766667214352609130923026097242340266361913602951396626742327240522388316906484788932455917092573346439786941316303040496829432373416074110803551349265749023850323433218318266810823754003228143233699024932876041871676886092231238614529476232689494170770371635766214896567418821891974714461447136522430316095034323265091444374514930178806428592050871541124901680630774607740374521244519527093315672550963070690485555333201343401638695579800926958246250467692790290918179400437102280375375978053507660196059905880466241003767958149939911967897341308644150942582074158175936513941243070793496871648304419873940759965698256989098515983034180123463595476882033428575648137558216732522654048474482773357700570015950165269270471762754892969492546398371525937974381076868363951649925040535284610707387976765870514742735732947710339174070476903391120196351361943950203895036710902776166514680217010389127293159161850203613613317244154912238802892111761253993806011378108805011889985064527985373085070836433214550444194088115185550089852592210449261543164122164022692237554272449798603592054404256079197949229458669683315551716711123028657768353802883397836132017479453944920761592032711254322784381634772342599413383676584484852540113400778517161296063718514700966849195105303550699119018675736233583762122943811712013897048617584180139453847444887485627783842206596630757771610092597778284623927213449666571622837803460918431832241197161984105815144516142694601548673456557553685734960974201831938513232432718078417803758150087061639726671295781833812438895978515985111030057884774760495664990359203794176274152873725530893062249278209419087998883736308160833070175598299232797545066854783150352360983620119851671610422180083537567711139481934578722410431340253334657284264250963307378608016041652967368370294644828582888824146190777516271830509047360949862937963496452769450914413757701288819599033986802181842718834965233438824734987629740315942865288005712456428238378464251675731215979834430616779141897105905867307993145404392119743954875745948171759460952517918887136439031150514653171991893069097634622270750886297551969090352842165101999481979513782263291906225525185197231798154861539304055272012692025799935777723693321839618338530511402683257477924736992709499172117254611706059733710223585669261508840235117491238243887832935562891418100706430001691612242452313944156025525516074465703593638710459658995463677705429826557787832386513015199075900013248730275916568658262799643714032810429572476150076227587291418981843758791615248902142775706343419557535327024744863475247610971596289412545286360884096178271887695234179483387585127862467852250251532646317809771372945258866263718430486331809117076035892273584652832730819806842961557049708643676871936112929472888865265893272985648582512397397694348273799710754907608036843443920269579250277460919032473075406889049394218214188308213878958593305785284220393536896062878382551623484743732865983776914084833106991586815816222770088932591879577692177754401946730137556300864383181737552115306214240856775368142610819296833808487953545607519761959971122145448946148067339231649994413043452759615776001888310597894235932472277123814055711500628748382376579810013730422123503624941927473413855947873649068412676690281048600665255084645373262563144090467873092184777949613876646759210506079800711488735577161716764875091603774580862812525303524691941677516281822282923468710857384982918619028231254348811549957919850465460602194503437334945541979663615417599567992396446424266996863179125266036614435981612095462464600757675821518695495508294286259340877942937386500737268708287494535042335687732128960532962298294937905131602248413709483065291959903074753879767192772361042536594889973229627106435365962636548257378498756758173690316145803511608547924706149678570747289049893746132082222735217248079662341939289181255769905220697815783456557750590809256581993174997205143915664835698769482537064289007952736596292461649393256561451492164788265223509758056816318312789198706936658338232136171503678162014387184922645041470495550899476798676213978789465705837190042004096767754132771963912332218947831712853712301869288446061126596508737297296133070157594099672798087965020136437959642113310386661853889907538582139428291203319118888664056865880292750601325835572479498517274071469777511283620480578015836320052565841764647477753029088056450569042676494987849688999987454192300211095885407336424817522130093325365139151926560101024199350824830763055289523448855765359914408898844283188177870107242715959375331573063322847490498367965351838622434179772692334530408522970359805576934607936590784924482008522497698295382136165668874988423191834134824350181618308450357694685902953443674230616964512377398284239722846087464029204508928477642997446975533338839770976326527379893181664782880204937735178270490326918592473799262841178670405485375307813522078549103939452698971157939727414915143071315316122201610805027376819872296920060555854209257743898450617752722118883787646840112527641974400967710315394077781830344213056070985848000010300731837940413440334538545100389731237784823815525043712223154246001590091061031488788134452834931479252969005434750846384001201399636252765924756961172578474366034097815272383867187476920598987133501906937379400911665341158277824917717018170157545585482826599552964350641905367156674095312568903779010323223241369172572966999136104459591601457948004135573779970798556718674625817077034372844331158999863108982929115628276854824815962698419006066407396307696638959579086751733897800997598205506438551420233930059425877217376556235677393628794941991148209591145880371451963375367193987150691455899954401271452721188880296468402664830194419409186037930646699206192986460728795048870328932848706409120865284015237214903984972603646881395503418303513428955116373670157533322635243756226719223786598539713465053060773413699608072266439978249280655078422875513770348554151152573302833618857776208405680485882318554558515328520485396517301387395904833589755392217481565506962931155261365267627065357151661567330454073747650389787741164271690485101843939274712752081778510312037705032338996919702763848696977354882912727488564572156940757409474087254231326327691867670575987090470797466362378629413105303328672351510398605181229800579522362579293869939920815662038522633684917929747124667292978332553334308444562146021986472054829184731584460500387947886994535641728109249932154572313731250297647404856789502569009920803203511155492119692026603391112893944949227880435365743961853718262550841584541716630953023721300493389928634561543765151234693273499873296026590519705446228750859629566453765698147126391923584368919035083222235870789163451409013574043124795917043784302793063146068736141809731808287466111112383476067109567005434800731905185677865213789510971245685872043388336870040362715688739002445524240917413781430597133288986493250718502104922710061112137968055213696526698537125838053242499614265205783610874628942647856217885495028001915784484222005463035866741531947711324094432684253719580159487135523432905157798292002124651640490273509908988241524059273365434324160750633181857648570013424960615731774103012507208913308764873224612883214236027565170322251612038432448281658641477810259893410955226067534324663477026451761026780939733573191518403573423584230924407694137260281499985245602632587544524931480554440056261836078503978997136646214106602232205981596141925611047798088659796540613443993395685630197899400949543288173295375979641251446343574589162591573178343646826128818016168468129857675054521074713069694764044549604995896523825838135619334721346672775374783063914379534958139666753944287152065774410469950063143699688028288320945592227245178989232692653937621058252235897959909703550241743582719857661107448818448797579163722050749111643388301987311520345920105553730824805356709569203823208096202845303222153307098477811329650635704518920830027181592679520027336624619368232313775195686358900094983864342624044005436908491990664766760928576319076732955461956158741208358299222193777420717124862262134988477750974183898482800372103663251102977161425226739170560353154729295266200314064920147347703308735004939929703017690135883105819354123234366240385732891187089060324158241728381650237171036498509927936509748792171134394123418329176090240290987137436516113158235552014842283837901030199881434188787731153178438300690934519108748677599069438527410399798382120414339299679249906119300491858591744713369194512550432599460600446962946192907100532351808032027645884159959357871386007612289386099647185676747369212830038089986688064679453586878515043348206257687955566550998788930188141731087766204930841311868784305349803139049650619113562927657625408630304267559352968909647819925827560427430893667442010547992640949707490774254367047219397038587988523825442049166018135086398475750340689190721104907428553240943025377297801995533266535267005299065389730862117822797122072837030101537778999440851615907316669123412213639349747788666185670066835799445516384736584946041524772365021903330599520396415132674760916612161369682398964382274379440177499774921401194352147107174261507665193536125666844686720973028733533255193734101981544056775365869792327807486476293388913615872730763251158599001720634410776655626170554067242986469658309347515135368370752341382372382630139540591097758223436748477947260988563139519409908671607796047961410914737964355799494035344432012232009025912992373345579138525004881153490156027882448655590963145580083793494617265241698268099919355827006179007237761276086722563469739139105624520714576473736663965720236266480377345558775803448082430077866483111225933541591407125914957503867160276855756547124474306273011523619932192193706412053570996953696577112822767732411288132196801278690256290566604803985018514974565702284204456145108366064642330377043061944571181048699953152591335374568203514522740392513512354453767242430388076836502218671263848740763406954593453920177840394786511318006811670781437546749554203822826887390909753197617608855603751207771008392003939177316955829085006590732329378519214045892021406550749761086829781192173641053208633375993902338284570849316936791445020477893738717339244174866940815745928149502458386436115612834131662145862450873593710051149055240862117317551101276249911918819531690167204059134588503508081366374411169711419503429268150222068363296657666385613506600254958928295107833752377114892092864083769071987541134454732927187567767013761468009690412940215841757613133036510218518694523535140031151548557544528054487889071486110335016030116858329906723293693662823995655132107739244344347517708623878800519501070782144322455321008860393808543494644686076181184113749276228887949640222320819421841308795140744435804534007438922634228940867369464018109214823456861350971693724498724658606011208554882116870349169853245619961978675933026154338602250003266213882529462369891872608246147385289830144212160145430434375758562605324734819174476521081550695677046344440669714273405642684489973795128937834245640762002736482243969081631236275272276762014046755073568391640815857226722226098291542655818800523798774321048130686800447060854181101479333906972362427672129529414985669530339235851155563951189265449780337732158530905399225083448956558633871798403197967502596878669423651230570791289607044613116921199669563259585558057267388162791338268936519539730334495769023392302673042695548894457509531856620571780838889729784348532699497176979376136820084563413694477916861267389433772602617449342172483456177344390834574172473226745069710708085096431049492798762237036470030760871476881392614718610674817986336517631737175726528723013091598262631612966004732894693979263980530100458509295577352925390251350977199545117398805743570289514113969898080557038195460910212950307888914218461994338956997722038443218738451735756825771910170648606062706903794760771131036593244340601837666306113562068775011715021814283620674783761589316941436974710615113828430625620292668263520568661636655235087503068698474529965076622999174438659567315129084063400509565897205554195333770411987832724471062317281679576527545103269265047856581143554263846341587070783564209139080446745342918461496534737224229024704724935470584780013646929471241707739767260489584154938884980522062687353648212472765547257068904184520027865338736328619288627773656053329205939398568221449331766715135737689433244953280648110553693709796071212252252343936708177646387517621773383676864249611212520535462325064583356871007727592360744421022609194749397592404317789331560266785296373700588577111929188943011512073276056896114132189607808411981416829458689061675735965948820881807531115624917893420452616932787403678306779786836817841657286201913983235859269791051525232391049632922506153525132297576196954432516163543857333435903782645498687839739205571297389373218890556526607077135627429427801028550267247367894511512523270391740448560025312081563338482310206007757503215430242182902964444963038694140210392327676899346844270013705060157679399628246718001421579859781141727167906442736896025732006849429771342518111142353859998331908936323909304715686568656201656370114729279500240070797971529684812425312093181274653751603559859750692447471009945682258316439107322802200677367958806657847848951017074762107531357012398892871364554205756976606557696789230299826494243922407624910301520581167119215739981192565698147862912112673731401223189570866437643215359085887120448874704340732079485483098336129350086567329146512613584345809356037361819379147081551160414419292977600864870742187724924608499368377536244892874474290688888826447506594014732361767180903134618491487638964059732914969632602875475522882458517879989843079234002211950140446056122158853030620787081299903248175096292679122991068624593844049589303719291781965568084599778370421042282357815210080357366422987682321833140889688383096499369303047186639150068778268434844522651834162329842095229032469205906631599438994741227260305642115438107617323090947249723237292990867105428942403498023425853157874795352482961379522822390276121187490662934684162904220624538305265679627655145556761320356228295850679644657446959442099651220361559861760810605001892206378075853142969185384899333419218006316433952405631957326107851383424705422006150907541836572012473673418389424892665029577220775591199197846334910195683435716215901405133636466880496935237665015129585147160807906110519947999667972573551685103854211302732934385822832506512596316270005935697575023882014499884483610965037117682593951901595671156993165879021411829809420796757677207406037252087553729472351148827588867136717587745300804451278086521639724170694853682139445669214708861104968796579551577164378870436051185987905851338570263621643330928189587536789730916200161668683583330632799087617938457274045515405429674614401979440086015282549717025502224936230358049580949307694546646103268148356859775121970299445012792585811853442185773476099684693794540673829845994209515206972722029725793162180754750990585084013424106395187280234082187092451119351498804319025812871919687765181991705710922420989106829196431823475872303200129064834283207478733482871579371898408938343379517270880028374699540867026821416335128099012138408736754254470023436572227835567306048747818304224989007400162563219346114229521257356758173506435506043044515376751765705206163097246620404758450041229134618722007728770684741179558620298760326733613588662430428395876113402439395345309344048700810852776416662511923787001503078981992630119415835273815733575798655289421029741687875490986888156005831868516682362890613301656135411640873508680794674081918269521133260939464680020164282347179826693242349790116562265108659281849745352004693489254653624909549524631186678685187748629544614222272763546208262177371372537584599942790771066872430167076347767694579433377900378839895009405474400156779759346108508076023275739250569397026419397888018042106134037252902480845806865129259550205493340125046774376476844185287529228327617900754537083323803349397067843882785867675229206564818043717782699980529955624314644628394174637518237190777189631815961213379156597313886684476769259494814839877583075405583715827225461543656755766247120758859555657490832675896172795156656901003963547552581001271372377985379451420349550489948179376294723380247722024950210778300623069653100668746462648596407343004608990368375255674245712681960729037502209216077771153615099087957484653803199985838684475864561173585146729953005259847912183814488529645936204908626332946492081425834537485837649155220668089602382833058768406501864495334826178656959191925131552843280787274654045137804944432159040453960871003060108859381469397911414619106293477982319047242418541964056806529088085424243229423492166793089988961792859633199997775564975008228951385386468842143808802579050950021710391742539073478394520542534279475241702442041127135510682182024106196409986780383972493907725954152601659796915971557527144151269747675971223062016787589387132096761004887391971175356419602020026217863931158607180803691425376645290288031813479270295829980951943739612994970056052127816760455111183060978445161170593078564768004711828672053291396023128022024223478877136057128788105184010876514329617751964137490230538091472541998898620070787329181128057936509975235999052763762436218017608032321218965502412960006431310046003254126035193879474806892054968451677267169684651461340546015294299705736758418973775096681376359241525654342296418169138794763115405033148021768968308656724094275933637051009649957305488979864455402126999157517346989688209211635460363118958679166242748948929465256862941967387338151068291928397676343590864040316110766068124451957104435465653386349851653802096237961506776193408597192491501979059968518814444042700305273998282678816195442067048495422143077620044816728011466334711570221487602287886582541006421711773263436268579109305638358865609085758994857149649460231000540725143195701226975395808273756834235037867812948804751885475141487296930130210377760183576421212767016166339400801083194240030910444341502429050592811490236360526268438805862981375148535244186014260915359455122314620026450911804905806317965383776794195233372779626647808202843096282410855531581163896328851922423724139320232747919303466636695355620299066103069262180705170919059741556739199993594717979012665766658910855099287868359591163167106039927231912828238616912314701444930941629891136609184680624829510514977163867966659715315798012388134428539296294710851720415025024463496069690491711617817523340125216526223963840380490421943918695849062593898980350869064156977817335778243697582996504380811209219491095492484932531852001180386634873404660951690790963219554968483805204924955034308913144188287021915994066294505709746438932332636825642821852551640662183757624613030192699379087019802880755271638488911691510545132983675451761431525134465343694956025697376576942998570619941780109406241672219493004702354696174681389191678839077106268107149117458950086115645511010527488589809597329955657863203273122967407440094628973404691282881151691836110273986935390039768362776856272242759518227699247135119097040769720726737069015196719568416465364282875185525870747531893286641605982777910782673411737752857454861530705718801536775518830774622141842858752796049090623020186303868714571195707098363519146102301588030203362029073400402661458214378284826779263198567689587725363093867474602508242345052102273486516758198196902006768787127340548684258888074553759615138934009203596461686522310367194168132520101175463333236540600035522588025442585674916289925802434956596399371548372448405664328620998312532929217050282541750342873215117732022424373549317738624082397765762935771742879675953184926505358766195726161540999022694048638069847908034023583133361341902673396426061704725676869962213836138827674139832425510656478928889510904822708837108223152621519913956819408612830455727698109640233030500080864468574813905853684225599049858757333668111447915003163248126254819791805737002363230998849934646989004517148167100722524476973116037919558280883585377546974358871487168141462811571468813329887843372749290736985511301658710346244131686833565457635880115433663698001742057184339121504997256255786673439935652352121994300194539051222913127649541497268781891197400300916714394375371378584028433244243644919061446456323058792068373613440223221957524454758226104051482218844597276349478629344636830741565687493221039924386295255057942063813685274126704572480166852594528087209549053473650432851218969595392737584998251329901230242268202533703176766430122401584016623738198126007525831914203736561705404416216182019117007950790749909406698298188450676394080386919542267964095216596848844057501440818215321018556714188049146597088567705762655916990214780145864488290930024929735710641559570731083311643628708498496519747784672998665237266605989240733006889943399187203509034599409691025020876383354654738431409479412245591394386251609511677572968963989965329371427073531586875690345707317798734243500349718395648007510780739396584233001977605161405262989029115344963169073833448357869384239569063539527151012814640563778513127867958749076404911959271923241835244979106022825103218281911737348209902248599800834449878836628741677922314882948851090815976552602533902800911803147840506946580786359669732188923785749835042157478764431334510428477062836762025937319189087320681492986229877343943464088388007592130637069378396814360171356913089289648706160396403223756305353479592441720711593531080651842916673363205224035678263123577404691663968771433872884009228313906218560984275351641135015666015203835135574338643252189128648663763129856777643167812120795492483108456721471894571155451958011772522015450317107663474083682967365613891291257537039149502647436292496965271911434797585455770876192049947468866491555147113199777423908093457264177356316694484247593616812886225631455277403200273940491218816316503220217438572051591181756517604715727183171989344697384612920028575116503539231222322831532658516909190695276506536704271078564195294394973081689209512764309112936013483989601470681653315719742401932818200073637143570409202325451008001923819365200241981611830417797429943144326199761461127557065148307611755404341229099858631023504741010993367215333481066298760205179184992761520236283807817017568418150836959185381020950942898135475856852594115479353555290396954111986643263450558945804715731821625285506020436375119400549349770472704925752322158634198958467217943281132248467601939765216611379904143722782082028752542239255154506888783049682964568573799565404034247854008644793734686694308523046592711306609024819120502227460408826606175527160840102029340280562414039453012881915746160978797106609771728255945448367875704266587775348291414702250591080292050154417352504474180279006925801579292489175106498714215191859380396923067873303146518162351429770520931612330203771114649497019774862711117160105097022171261541325665172488304280419743280920991790147473831031076967735739058193267396332801506339231976439231056379807915514453761621658164815191946920619245936832588214001973065065121594733128624508608561913580192879948994521629542505456402204586927806328293995302129157548754518033136661430997732313889643451131802613839564539556906171637713314501902558142169906593939129956082986090219058111112151984640029796497480175730705999303418081610955665637440390947931664299172900685519980933643558523770043993640475130557815213646210426429803348144597513193800510113647767443215837344479405071569354314663927851109072742749195500970382220653566054728302389173232692247538656565403576274251486798445448249884290021093175892148643419657444215706003884517932024278157691819610221846426877038828561600039539952002612181186184850566389996049440211011172563388422302468307419932020531980887372870342771828919655395004743364058287847198128984141346033977311767507784915799532382056185146458018658563168087620390848803632176846123596409954393480633295949561290415880483883436067431845211529585539644301313320046688628401262271261583532010902818007266845319893246567984500670948624181372468049793079978403482463260974121278360422326462497818178568912339965246562020988540751660525808155003670852403381580472599711457851504432446996380447343005593099708860246404911049216252014066124013813188866517977348201744712121868867808049845883123198941587151949600790592956905959417643558830439605542421663034095222808648674144675319162274249493006533776156467409263212051543921746106451387940525730115045900639878060480833658101189392353345489180032459444908710072677584972129277528232506351360199955712646940045009342757215137002947360684753269448774145284276908571247317254194642205634271577815458080456308340110260196251413195952484878251251316537658435988868920692831553726925106544276035800632266728150973342506136119234637277579465742496872434838020557061811421902515776527384387006378567003546870324100270048596757205583466173379289900238877431387288866770417792622734567931508002169472782375421452448939432565393004112257392416024839208358658048458621471000886578645768592606278123884438218369817050077294183236843369169988362075873967743773402859392861276561386430984552180193918817813050467557080783773240272194343648256155492944725732674376454082858023911319286441745976523584096927096918198121778165101497427563168496109343500050019655991260271867454292618639687212378036930155234495306226004110479785353649856307920787090948814911990748807732765175608487229224927564608214489922555888267447689653007447497027930910146322723794428993994478066250360292806533449045921987593428492565378799549388349471301602986274360213117374102078957404735943177500338141886286074447356067507488974317558366093561240617413434020329159593063580847416372721726521951530546040947126682714867457899348203555495141164843422031620381842681901507072089864975363490811525470995230803981092999296687936302089053550948015453228597510724622491590263757056118730761754981007685236884271493182637372293150500802927912095758451757920074852153177581709994738031571281696747425311355358944333569466851890561575949038015969208073726459990324023617587615186850061710830088594061940201644291754168385078589267485770037144308894474394468497421939123078204318358084458250459807224280662291435459372322743750285811056418978117661276691065327059094449637702066553459669350169141077795046918028307085769865818220377510123265969473000869443864804005904649419978401131761928448374637117939118682586912071583241658327328736597571961632331815115671339547859962894851918965007832780346097124135655016704051276469069539080137079994732417315183745873231802044551191740677600362969603519401504718203872463428077553335774118924749590626329197803411546470435052112322648042044987633537006438805560020934844112780928854600869195979014168581140396726546613412674197468069961497078565530480836523804594287891768062929937877817769268417294909002245937626117095000881458057665642151660857534910584097516506686148121877169470971243199874888643853254757144136089809855223078364932677549099668047674601137272409182283128332608943697666509588356929693413831574056579609658661849257872532302580878039606481935922452656290189826270425069004113003255597066626969056623173433415022852923133614765318712236819491311651385740107167473082076730849256449754346405599276725750125912003769346533302577453467421994299950431045813502824976155953046023992660633789538020647020243394295588392623668885426623307435611557340692619455139969932390067966634573600982132927879748746933969438975052150282599776748174704499348312803047509264129399054225996687347892078658293647643691337474629117860907864825131743135511698959249597185516111183599830631098109854060256902878285164325169648605407825530195055468642178814514176357552842643503780440760564395886326901142015989148789457861250547762136273288180929699250444042426619106107430176133003983861737073615738471233092901027458456416096586478739154834491126097585470466948883876520018751212609230296337097470021158542180481439184025563876347732162829348928488585992306990518291331441473013469941971953418690466445774329700030872415568963464482648108710934244944000608366745735541564316744740268316554287706857210149939101048757221514342827821501461845624718350962684811814681252868843578267344293926623863846514451251041191388380864173558073667302165729447303658203406602893777970162766718971235741548952743544532859798498221642920288059812718621812990611363905119925998384673928227466575799455702247603126576928303894701555948250576841233510688478819961942376424488617134645700507686286973638019982136999814421018303551887744845949337089223898877031382160260491209235162789179147706014652622141905373653668438620299837911585702343818499150800838745574750839960383561848143287042219561105478326172399877369402670735315791917173855657074107482358801671571448156042497630478024534131429098401990148553519833601933025999591014120754002799991084179077133607936782175904753608291307441792755293399020114845171361802770712506322452584026843081418246230479302968506499713123359964386266730272942690299380852896828059512463852216373950197836381152673359662453746208155592763283189076646391421434478942860961494594594810933459063318455273169880909032299477164485748416131177122312310368956593506474922712871010381773627053701944595202432497624294938080344476227733839483563478790205406684192176722550764477420770924938023240164888230709893362731587814517116236337011210668364890093905682663452248511393980896827791390444547543985890836052634977239336644517073775550935492628125162017723033648491665099219130671301177393234661436401902077519538073746078130639642992619946085937067098486571281326565247945391125979151367616024291676279857170968263394986101992399117611054761738288546152922561867324007630750850076737176428752524006058954257356464079409600762769596475808077841566579272337287956796810622509321530584236197233580272727757824381765959846102540595713602499165345163205915260432953341399801885300758297700940393178421308571362580588970567384365124549612123581811769656260220379068807105613593018235626164350110285420394182472733950816970466206955191805595969839196993422136797955336378368659863770560169738164512461097098550827826103941001144274023168327816041929908791792446793927720603151506367575044227314378452587568340473171178276413425700308915663708298773058673280350531416832953337182938729052882092578335426226835459833416691509056924951617048068868139470010059230543117714852142969431828173960083455366139428245942693775336970643634879414293874752779131673267506271049952055171069509821814069828500279378754688831008232823331561707456517368319983481693531505277219355876912865304486744827607492853736460854387297055196085167629131975587618604083882403354897484923463589344616047192571946597915108466737762883318849001269348068519275392416931451282738514308820699519295867869436507376958507261302481195409532715538595398205388840315261024529398720320619973708184598671862341146439424341149921512563323296675979674771460060430922828319789407891184524462967018391139011311557207516476142732634596030890514639291006355289811407719824871312242504317490368627156367918437522589529220372939905258774279476410335166237148686110898300934148724792121646173240479210420264854451658059175615143994137486148716136875800483981923647772539433886896084560131711001198907233674788307966083271341870053084195222118608442912006371897027341480857866135502448099174646610281387962583677766328942805175959671228859110915242079594809600252123346283841894799284432935763846967099153072478184571174270264058784297249498744634626925902325245209056563012340915914653931244799978746489583973638154849817976596652277618745141887643811464918240632042691503831270598156951960612473790851009115371474229368988214405814930530598491837026928096236609505047079747723524750939320402603873131164438929463058958744073760097056515253536074787769888783092598038605058027980601207140401757837720651231871204356994515053398774378424097697158000098036919229812223466764071106153508540785714225885980447101266094116464735899303030319187956921577514643668397285769436170746111632291336346972171947933097935654168756740877951824088887795248739595532704792508976545842833550534770560611335542195055700593117220809047250850292499798600293851005582151905141196092504224762480054154075683404999502753753152245889532439301471773793424553828898773926321841568511392434732221296671994499420230587476316284854239472316987466621094242006225135026257070613918135329034227646466025988288609299310250025933890087029078242973616615756113612915426141418400622735789845231506432945819108709095127305777864571431305689931225225142906556874241899858528647243536067441124503477948556689227525186041555021307661276041224270360959439806112150513111248292909736893631118145342376197065012226252099498314222735747456274360790977864235655164171782132796357798476675691614751189349144819223905469959478089711585993489258630456470372690463822459303871641949565867546377793445620805794038242163758125132062191316671555892985573265608903650939570073931535958571308411044917769442224772698263573792542016838241265033253870265312304072296613776036825700495870022342698120687700548291717537112979528901030803918367094189386593083242488619959750412050334332806914078135622931455325375171603150810849906495142901158816660299429050722436315509106183521656996261260289663471087771458688697496972404848908105570924429282212354857641668001517133120563289966206528971323042980895348887860429782678968581740743061204595161310644323541744587659056590548788393722085513505030769745410414333765623546707844286037572996702480796592625590654462577386741821320508234760034012075912637470692749665579366215105280574244615892909505732313354465329602857074702125233115733480016969206881797558001160268867489784592377579277497273849208455233398796479496289383520106944845357326468741370212713087473064635128918222178467063681078206766750379785692580652087337900897064036218126699258403825898533133497393398821512647037713611013391253379730632106862394791352419389194456586509963618636611102150252270152667744936179881063250223631369214398925447985385345367922541629512547663981128808525752856062362477398068203142191118280871632140670535121865999535483443236250195131202361633183265771898312060675809302098117902375534605894716247640186784464247911782779166667543006220623595133360602006671306760184515407832350024062727339973743076146183769538533629952865538676483871027253854115880649651127539611493878918690118673901839947111849515062632337541047198561279341617796985351895418154160634671293323697747835292326517665324160303590371708168799180441378694001324244879267154333903692455391868811361345065444039640582920972548007690693822897459703664683187081929266731825422923938120513259518042811865511652401058007800647826982270988167115424000638989732736507845253163500849267343534559250570865159525518073598027794556377380706995341991120378972881753422422427726435622412759314557958147610481627811248550277089313509060268587770751295166076630276872501139552322066242026313676098349848359555384671057701521795103663034965114670567562781830215609744755663449893881880914602159758517540540491228915827534576492815405047564408560849330483356985516300273003467385263283884726732169547669824125445987917897154825333114360989189193783681519982841337392543682462463951174985850693840001032618771291006542694278781598840780129868543661906120452514445604790858502745986484820307148490876896554425880038272246561708954120763780010194109309617925333371046429345424767725700251143664682084599840757503226577944241933991428118665642765119717644483235244799951532931638970299866060975175161255016068542472402219612235002839575526753578799071120652331895395361667966589974679484776736387650881278867347271572125645232694947906477586532182124157859899822617114931778526748268779292202431905099587462592117985963124423744877854538941521589649267231973172206037917102568234670605474841114126255866915744711063370592166245264755945907430463296647657332326357327433264136683005731300755474200721400253522210766560998112886477746407842549755444740777358155849197700742128610455940882574651580564259590753621966478711286164305014582189613822900193275341982310253578476395407922905320762594818328139168066825986765324841338047734661346913391378361192774806656045593625471034597008933551206587688888595314354158190584885509743062081654308862854638406637126058504089124768863975082518377874236291222656851321442420264566869164587804610809083610600841715473741053490045425217021325274440742191593151667976554386374948918803585793742618336476923219024325110713802027312285930376393184459494062059685076176433087330999196861225583598514701765033181757849066786031199876153615348527921516805144255302144324469401498926044916938017207937145340150963559689600185143923578670401059239079762554485150574317853587810422836591072825019459928723915601455195398684228422967771362034114619533977027117305862139361205440591886158850169536850051202775126916529375704260427799982146854759749508139802616241734275529996028444499442315687249407960010701296606061923784238193928277934266349360174973874660223504139336851964436047550335629651269921213633776699778103777577493641064811257652227686229225344217352167612359248420593531384759452227771895330096916121236322304432732130801614839406421480005469826642343463688232890830673654211032063572267416676685408611776668319110624926106198341528648889918653686858407276859862100599131923707806775786073103418203744532072422266097648285721765200020843772491836297831263904236662000434623939333791526265328161646775756094346653954746140719445742250032732397164819754310062645241797168309508567336560075565970668425194449733835459749563046113769564306228615551703075541042858203874087863143969268089371318543191123274147456140310364332593021766491689303984140899774171081377744074915815091736810789480137125337443504673100798115480617109853132583089907507826744865653089552938845533895199396156019497724158090714260118174398984340872672325608957731128641158253980100919252410350411327009335375306595046100865024142274263468057840901899534252851150305735155390468997413238252082607735932802602474014735482385866563033252166627463229677179890993985432705246494964502840983928982279313906306934427713819814730213414611171078304132617933531635404989205038248131371376352640516516173424870136597394976683838828907533912597396813375246069657695930027078400903204400329487820304658130643535805331656962117910129045211176378153019519540199604863816344353952581237096474670130697272358886154880713986745058306441435786224947824745246673798011810908579005482430389516763752599697208229803938961503967746687047194590585709733463708409024111334635159239686480882451094606439083262908580807467061316112420445171460361409044325799172640777209579399278117507066508797191364338741134843010980996545592607383103271386470631983137465757914082401084617114591388430187777567582458829028190815046252000252481007068110450306529065073337365210107509633468870761020643755609767403598045737978036271823730579725929141560832807278633590118863189308540412217971661329094344982448617851190696951810016668224115056665372144339486740758991766705248140496802134906775900953729623084674268921199397236565984773858554115657285452564213301900469748325393379545372245948548621036439900685959067666495489026150790199388087162632815329130307941776208684108677721832964006655938968391291849603024675381800697906048231660052011202959897662747299580330809282155216253879835005783880599930250599887610819161081009939465559861258615844535457199498705628607041903856666933443578211265072564535809832630564604869455083759017669430321634163283896740866626700333668998936200625585699592299784703164943162778817566254245274303895814051556147771483962730853405955417205386560251566953141020143928527580462877832231825804349478153875903336441480627829340068005143722916173685926295629188308962169377300785388376056549276626095460664396833214353118479097199776737929663979472631834176775900794334473023628635670043807438776154251048769149630917177422294703542305173933271152712917125233986850270962942541941733324022320269626591050533848383087124467106877517046725443994680482599256577758167781146686423949816521887064097292552134698641348823491429061758139987359730443387936302843146139986509177630828085109265245508486124178636670937027015494018291400025296382267459301579602383781819416638764075556040601993640068675593718007585663476494098432932524083731149890461196200778732090272850601523230663911440187043975084092093476908317269049618581453554382556225911233704304081648843030602108136650466765397088999128991024475900168985348421855141176180473739869294253972352944010978157040038650512620754827621741792151377666695658438529935228777831470935538083774537398785108546051167914746961250642533219077365415568904837368659585366951871099671737064722320542056920021773884964457752568076186866102811687844472247837490315510977050590058231816974322676845482172031486767364879119697884133336698182303235876550158463397451177679460888709643352888898302592033648227011528031105016446535601211055733338634448410317157024419755961012436095234447788602276666512542264708789582150231036805247593830628707882421458836826961046998819745828761914515770777044469820400030881647814020092512944164535859399772501879152089448911073945274200453387553440921142064007524329149174263108826029933822118650020489573531326857323368641765580121520391689224746017558192650488997606901474676659625677643878865310974935596602545884848060764564301458379362856670862241429432760259778197016342897763891259303629276678357857839885071860704489818730976840889538652505442780539749782098313336076937439452582810056602445643180715354252400151287817774044490017306309909335892537141367712112528577501175728822806006936237649748160862753871131476128970551676930858642355204800663084893119802250493621411571649078998207015154413373845800509733809867971232725091254593053250669012788531073153742998227680206297737207106676460330960217668130769802749867122816677245193982506904342025724934029126672502180176874983084282064108205525570080826985979062889596847950874502795120662875541617587538119431048066834622723696266784331843277309607842099825483025583570402871596310935692541824548545667739842145353907495668308531597998375036496082620949166993750689913747606363822022895185641322917764700210623228111713966317081176088789500638410985218552769328439864708584934476811464064856704894237514815267810349643965638942443159407735086627301918167670782927092016813162207061789227912766414566470681693514968410349414230967294332569133698588371337758814880825864413140600154368362983134069199352024590013515997906478876596032619303596522494651391993653548556975858364036086936467472031075549761379710454285285540360391056491599697566519687137751067497011917406630974067421664788082499083676224004188511260995168854764013569543890829875939814356898332421045066855103069800416781006080050705850254735255817597233309204452158609850792471414928868308296417642628785260145171498174086203940200621641493828313444340905136750279962643537515783873204387195671348136879516896106856852926449117287365159957364175435659256631694857810765374233961879730993975676762985563741340077001198268943125559857400772903100202940705916846278082076845956984926612586213400924978929719930790596681653930305366891119481116677968081960818549142484969796489343387595395183963148374890907029610665663449371468499093589468016540207171270666008451577488901553840006655534873403441055904973210865106443962486221756264614892730528990020276655727636489148885823409482436741179708473967470012711728526650914274307656820049418043587915113522162612957095980837172103181004526826133400939182865670944135439252974689449359916232360580712387442566019415586353093038222290766419994661672875696909259119948964444637786641093542672226201699167711294955853332070512555741161773697353525966522795930365341509422199493592178807523198863120291855266918985355822572743641174094897705656937231812488156615125823283922608170528327858636231400110726463085833901668382278471046018857388413317237828552308978455637393666644171971831553762979260598212769577119225662668690560071531018904933936527409274371075331376205622389279389014855795351320565722290241647230576680401993925067702490236239615585306155551566914132450858605796316273562700882358432246295702008091241173896277857313318193141028726918880312301867223505583118749645358706145853626992546301576271523614089135265628155814735627634111491230084651355278364593751323616552859127106971519635454912739589641002449584697106672570606567440925092858566503352165179710281370746557038380196033157349091617177383633379088535091189129040327845539191102453786552143643414047612408385038761880634921492440566158433336210768210352128180036100207204945897310539425513368140639070237400182348872258954673596799148547281204734502985625361621877199993256210643876861191604278311449492296513469478042017989325791562089634676318541897281110673776344983076122590800438570100120010145006461910976861843614927114931706509601309626297170944778686000522335666130554380577214189741255573216901776342176729018278708772531216343328324443667089941110060574957166756868851800296524867117648756792900957812915237020233040309459701263916959402705462955023407338834919720278195952608537330023041903908097564549196434413434411425590536756743579736116049596519651470667131177580865502030126221045730114437314629806672546125863158198258329611060312003094192991942431736368081868597307938124117421042087801229191585766667651528233620082919299432745001710856225810435188077738272090171000175873752334247641935167034931612479597125001084033084639858683459023984850270867590848674099623807499382057224084255244305688347550733822993074136364801954779628472710232445027529204540879977236997570749056867320502182133972978161676443922454314546145006789238710060713850593653330612294429156116487346712091208674217960259294177708201883710020744766647545380062534633285486037006606135059863129530065179184343677217462881996368269028141198530317634984240193490065983410322136109964496215196634766603958223998626321183673956275402108734037122970610328290931361135051110292754753623006543955838887792117352494558804711040040066184243737829535155250256480390863252028475254032349965329846393286809889282170026752177325105139321141002395701012804075529967340564731202276437302710574899755667894669490660108285435795134952095073945635103037171790251844222669921864425571217067067908845108525318529696909574650478662727135203862205743265512552879838723124677556924329266655992147685222454607351878236611831447170489021639837036395152060275317909717840163784863585212234951914090233877088417467391264178332304973775957848370497027990703252094437684871712120981565116852998675181642026143746378437500878625866049398959351987606621859884114029917476796366055985718704198777794459059600460687687368085705322304589967904857212083164332002260012380793064431774837279596474390076620587053212667865269155862098600543528684550725257066815935297451899735800940337971971927777438088871910662261886457449280702274649764090868080829773172810480463055086316506826483917041038953493785245634149156795279754798206940724455195865915762743107240579578737542141745253781863100777514220703037112643576361312217483801656427006630518439540338093671565579577606360217433111924314896852820820992930362597199763434025552330425096946198189911307125378469437468350353365360162498387453723790764239304979656802512760083518027891671242978459787999455270087719185332203578401969687707073741690303192530650214891748875836695005373249449351767654138910034454345061476927718703119948587816545316124771604758643212723693426157688880123898922770942756126163667728713251103647169588207545979426017575969903562672357125269594573230834472385622415754334883049778812151488354338607205483850125949386353509410772048978234974570980515823090294331803330747044416507683263902972301521364641699479368248083104683164522449021645255111582042434655100155617715758836310600249040365985265276294423489921080229132201678354271214426745446540878112005453929134447506439198749914264552429229080793358040421767536359118272901389334259328836376135400404591012513315449602960740884642594226288115293535129463580125032493350214730804165920534715373826810303434543832366286857390722816514390666524084114322794732922128932856677659672686107383168031557968134924177208749251486635268078361931873694553349942705712333523655275310597391409258709350358114676388192313549845424335662945922818898966462836505491176011999501989452436611909099415984558462258952973513476449512973013231161306334092156307051672915395569515517171774389348784162426901948807804105402073369242153254722165036966252238448114370838373227939539217779705585674106810972740521905859283873518304323781391197262267297842536384322216729692896222361574429616578188727255871267552324451329222658191986472856471706575616058353378633375554479433413148133867817035456314665230332224373485770763627870170921468482851108557658377665216388606261889820709946775520742399539544784536812591767974904984617899391945729961772523891313334634692609739926309767178136150091124507053002023319572004447505782687639382842662401616476418440015030010755555570519190053733825880779177605307025851794509521820591662657305525118858414859965021986503604726071099260776682808791709436079134869397290803537965212141905285761953963063317268929803193978842570368317424487299034504747656252018325322204260591292125269242835239592749076642026780564207362025828288735357324399769121760049269346587475403742070183345705818116237166070193575460441380112975194314741532656942997037374672170166132451476115918145758810914756508683443309424832662942107430138328457645798241769009970374786186874457323400973580504743693416928648015470717581947801806568676767247684988803178570937034466366845461610309225413885538029654135118428476912861781953774496863505350009438198467239140820839100091392316052627465703899711003565504434275039925413099287517117746303968245698535668268996392192132404095974137881280569251074245450853917488503193266208699284069304766218563276351677125557370320229091426543905980871852476365310349744301762374048023783982757627909593797015546888218724705370208911905609505926221994768362512331378026510607349673874279792959777202164558037378751922243284795651431513156827217768447454309859398588478419838905928286807672606485454307549834761681382585242259215371175863293889357054231865450329055717159383098804419479613566222105614150746309715407709708292239988066577449354539939897538010135917044104382347848564131740119815240846770924964477654608582926963547556920940364493530589244292929230888010244381600581786167540900561845448565334009916523866985886184730834162178240615122855509485121035515251107810612171998198545461651016641314401809569154911442108081823837597123405495327471124753417234635302832319808231081432898337217458892691474934217915756675822805584337710113325448428522915838885971820837605657713880573918685449172806812285028796984288342416180745828140916118565297018864482685613224895803631831241002909531303278841191273093877917149322427426534973586962407241449537295442416296489434748603971980974922600767475996622527017246520193396664329741242700195717149332980841615729005626466756893127294028131747452513170205478914988860391672580307607832871431760575928352010570012107582564833102200435994698749273901420984550925806164054444383359865674457670527998900836689626112527483861327191915666526865574932548784393030429866305708647417649264245763052037387032006953079271180454742160694351663477108725451700649936728552383886411389206753411597146437513395764327625557105283878628372745679012115601808288971073658299729093329227610202133460432848554445433327443095103759571647544896718447849404149928939949799269024828162099489796486918268924585291204865450644001007581876025688481888076986127983051837006059610113426392507297769343117914372471129740319510855721368833042814750550733864408831663994970937330955311495612321443295791378981168501278308704294155451745931590622545081347885349010111404399108476167003099417184488558665480344661797360190735667768214914593288633603343176969319972690870724476166062294360082375907899488523584357691068758663246133788726469966162992970989816072787982411388473128193938908855901823205486036781025383985769017379489458206969152949168848675163022311822433223051913919617713149751115065194849357934840980046983161843059104068643871331061508675900522129184119199585244197525480252398642956273528543752543664619897141694840086939189970339108212400778371140833152900367014509061056766072400499370186158846612801094017187347891565988224637940890346111986476448608729279541510361082765133253742767397234426140955540444957809552907823949109450423875620082078758824913221625279765854123987769897382547426232536941155416583273748989222947133329463601703751600416924839025008116998595369489732956368039419935712893092920875231946962729055651816071599381992038203279847492165682046844698680923159023953803834315667593704565486709427361710739123755813794270396384573203478516274630866294126084778106614795690131735118136349861351148179437313619976972832723945798530528818390743154823175722112547062864264182196202692868503199928616862196341408701952129747729275425553250892118993790371189758506153305716960274089289445718523018128127747933368176111461707374322832646589828673256928547192534465222478759921312616002210593562613700261615372377565547734657764692925965021196037958330826373186383302056445358182225617698172026244328730049078924821775711209679524837904566395440738858092656424456222194518469144897770699260659196570140089010517170991521431251791805585472625101725162434824890663428339779146742278593372439245146237671609061717440267152799621246488100187428062883499574908479508274940122168518345548823505539870101021613193146911701012713041555860777609492094829010419797039253814970862722405223080369273727099941482318486093645853025027906239741130114613614579451257341394806611317386867249184220634252037750989205068841926693213783847555652971636712145568627217986755246420275395882729327148604211485813088072886275375515922172407426158382625362572847527931836529735931564419318388193997317916258332194130017610754891690979155974438025024658845924569757896458946548062705092142764691843224407897197341731824033869232300046353879650467258625515713621716979772695569633658906834620681896865212307553696355547744659749485893670663828860410807763672702041370988312944889751722321690217446514379346950629892847633167111746262383416786592459263221789737469281947567076988413631475263376675040891428983104706456365220185688804749552449072468806627973537475177206520431314916853293996951367364569219085014247344077283760097661496480643119298649165800708420217961058088466402062329879141325470018727213961832810804064691713359162060916713279510007972417655277146263909998409662530015408173699853821502345557393151969891344244850136027268063237575108717081564341407750153577382863337286856843152107749583163806116106917025740281926266497811586122441633853377969922781794314818850558189190431521298601877587495536739207631470538086247525023568113307274019201336049542922123517812548924590406311595827257426271666598689927931147146181398364003444237895411498197961065554667448103487558956644596422339446379105393933218893451974617962255717562514916673410794582885399249393665230629954464643042214444515818490871325146653230624657019663899938918688196918325671860452228777730720294012385268810141516929580324745096874757116370809269336082104430747487454674523592251879489109233934466850128574243571178727205260171476177048598575998892837159841843109010235655635360251919361746314543241308421403819427407507584366010633369454202375064447128327979643942715549720124527704183587670068361340889805756810091535403921626159266919507121366836488914880119453007204962425685070250078106357697072656127222447531966523432301276709206518841481968823811690484319408283373662490486134761127636342456542875887230833986846259997255654990875572913049495808544990801987435592527398102987532610605767189486139782917020994021414188467788344826465124903601110741771578413003273319859469123803335871244725949624442064043873498376064967024312250320963348077586440388598389954811025097090416029001036296064242315798894446039184736812996041747656079151217845302676274189445070123533302492603498081079194267531575256410516836297123713558089367180643136259968739137226357651455129336484105347692507859989512774386019376160340452637359087631892857836869433325695928932334635410855622465734771874812319339460776869214032926956520606808647605707423847682139778401300204736557157590481602542992388109159161663578435514246495880300582597351596809331500764726334263240988536626533423732532380880493864319018642968838012400957416812337817621791103886005299838444050412535788373018386634218508487205163843380828081446346099246833901976873777686122762834291630990221129072110324895987696059939716046923354374105058704359313878216410050063697605635538541147195018975961710396910673755561908765440323056611080279858422298552467693851834281664884035562307725551608035636134905338062481417756034717169551555267396418760021275018133752467935666510494582983254469970657930254444264074092173823946981109809336379240396301431164009018790059772297520955429099090636791269841845967871924878504436416106157030901203654422470716843819184042273085135758908721663395116506244935918417235699670441394680348721548975697852562642800833076777068058432270412254538010048176486839513221117905605995031007504353215968491140553780813916857699047308078749362426592085649812779132836616842169267160899807254682782545256457254038056807691239608446982530520876730302990655456797596809606487237789085114466520446892982215705895362349634307167263815764617230529690694599658584973127278335479637579927736554691754261786135056510636226142079236329526530302108310175423340980801170053929159565332098622931432808164146909120165106299922573111352536081409288468930976708220673755409156065374346956610336242128938515312120763530285587668726953026482742098964427617281459441152210964661572685145511401570944603547237090780202495320182095557742248111413739055874744098261540000160474561719714196534002929924353938413875326349106859495198870176137178342064697401290528415799644799302336457169819348527104134218314825536422506080241242086809125836658517058791819052771587351947639266209778359116982558750889135891017505388316861840308162137019023650022263396209593197715293943490311797009799010597584189051758294578703562700120719720631144221062020938551704355659685465495891703652351391526048913316722803030865690883226213303019623889411017703727956754906402760099605404164174739934996908222173370102890060946888341777922353861486452271729838584459206482630490128080852144478684844561099928230521852105490364878316841161146504331757545090434199185038595694751597232116233839815284902245465955893927106802940177235735143743785535780747267971853402256188425636424571228150668041665075855849961789168655659564781223346376973762469416547778592169870098352887642011009484737767577544050652384296034289879280796802583212715759014465727470741165126703564824157962707736803420979639365937637243152156419158008809809781125768454639480362112968073633082778346546859986549735640691466196336545503785895321787267368985017918454163288687015689456425850923696570676300661504550879525017966779048759423349071412493689090695521765128810867116977724768233172248021939172412996448372399694126941928130076847908373071874846627749299472306391950728930494191444145743455994649869875084488229836141997383009399082563485678472627138262711308134022635689772829235820469586918286870999729499682001504798532342776337220922822275452069132204167546316430015699853507548507649725295118661704978250757013082289623916035923673286851835087814301192439510160208768253119054035590179140074924956968712128063596213143959884031579103860968729967815083787188204316786534218465347715362256105974180715233217099594333416059627381115546287075069901349105301277759416712973216599950289296417257970859273769121871263597257647964715587414412066072860310225056839756497942277357206916992066379804077082004032824897283268610377126661211430042588770034534703924941498124483699739803445997075949084653175620378443272397459718640109678830617908263711489195336619507026551202566347531470150879556712962684402649529433382873007842140750482270693865267652560537880452953204615774038854661363598825686451445751296405045457978500868483918670860988289381801937124079084569971975640342895513301442063969085024213181801217413058024123441295564593190929589102437277502348192435332674216028686966279553961633768727017633060147510604776249917629702389701372026755630049834713834482040369282833390526776465020898528972876237383056311062284272008681098107060297314991888122654723662086659058362444738856106448233700730492653856395686579999578007353249719385372939910457406445351756672697841029636784470915984533893403122771340752336220076510907416414922275362709008529683759954872022220475548662906895316651355278166257009123308122881480266735883735969408838860280643110696463559620135215192085312923742515818344342611792057672790864637190449460946377639912074442262857026647863684614319833009059153156068343407287627556511233130047636499033683098001519574375966720906436753692646943430039396073057494532170499104676627212989260622825213408558123239686988855412188097543424894277684146705472362563333792817444106341931273527606546365817356890120940270278924977717882763156777107201077320810705284998706065817421167471228996155184862540869658565870543605553665291077709260664972160406082698262648921766656882773991469289770775671566632944941305486622684304886554346859305063231249812389955460638634314235765392699782600751914338180985384289268570799582594302433708888347678677373891107630043597013169923317358562370037379332155449853001899429320436073739556199104348521755457517827697993596846325911628638626512617602953692113271107563903636993644569570791140811662314224499723613422995177641078758771018857635151774848658310653043342312011569566967154393005310356617385691486078074001675536543575492914504630443517488118931852883751438851045606993632645159140304839183431155470747171131621581518354626437827497843920650143215872991215761334469772180628959942546617320277922907487606992410121243664135801947736951110259010150191855023417059100030366678679417708610583173447493674161532986669648201352543728142931323693706725566370736063043933848029552881457459074478655943686766162848626970658273515787127365190705253817238554230533756144779317671603157372312933468984924101928398090802690450231233359881905774864117207570861104444338360819475833577901048262956335163329487457569193394811513002935130625568804728364604763865341030339629116591466498541260662233512845300468227412137296286169315941370908547690248924022757188573273053667181247599412945712722636212247970672895664178163095623096241612557367054439665552283926069345809348523371070432489413860878998271792160420767156026058512138391776542823592980914053572340999458246628428207257065227832789305601029561158758535968284173964809738090953592139088778578370979208489834891433949171999281083550189795149736164031344985561727870259448357955891063092910732970806563402273292514254037547662103037450806328411949815510952069941895697190496291387004881256670448375445205681102635898413244541080959978753232960574845202740998950907608709618846903162408609755238318819197312145298364042140814641642561291682535798553544226197144982451411988629639859666537958174617447127146878768060178281322078053594051830975272683927805252625588485725724695328974288423026689727445918037058034992826812432072118592586029034980418866650138196457997871275367277157879250090676451856824109031374261303836406461539541875558712654336682552765346042671885418281260067845537452504412988436820582798205045762948244686053050546930863492025031324456940212846690164162959029747881452812358028339231868767376262955268905201460488797191072307661548819496222345579899002190721729383367876948880757109054199450124651888796493055351588603018628751992999331780880974811197500789274410072071147651295569808398146961851421139054256504257497094818333047766475938608166774583760650237333884513551351485466235950641702172317008896013142045957058583323840794713682951669079311148328288533645310288830069441506786591471567294741656214411951406476885627371272291263543879150279412128377978239403726093992881199356451361307470797502998953864092925938516802939903853569247791317418677745593756508809169335943934689304349491002847853894397323414808739015626454427365748846700694943694255162559106431193924546664789560905315332365864468811073419508890962057665256380039398971576442843914936203455528082332810192334899921478080136833146452414338998636133529083745463022591730195549215331961349929707900144187770557689970193309811331536244917436486878394874035608539087849081549645637945489644785505152518757692158131736916482538751868466432958095086896353322583596642228247868526398464645624004106427159929268229540824000130838096406801435585880692139008449657286998308265187226594244230490618738772898529166263258807487644445411747604664178286108925758080359291325825918181289917616571998289644441768836745118571916124868440827570245422501376108328299480462106703261558427503079803080995565932523315701924319745293696239653206448825101696291831972956945470437417923380812336800332843506727793658731343919324615564667758709910129952958715955959237266138167955619173017880121203718223015606990973038002288793302483965826529134244823743243908842122749360461348754832322043158902983819610922859017342083527249497748133849408040202523801846149623889160615291587667006914846514300426457949240567384450798593650734481815758959227869177852166378657752410341552812849324277949128586329339529855584530813953685198898077016051474557454509980217553074713327978234238548122443629882792610753373965223974563765387753416437706275668745212073017559675100892323641835775515759571932292069947306413824209599478009421789388404023328226005539378015595196473362781444468089234607760226810186191876494550404934491235041168377173580136828269091099303166154977130355895731422217873803998459710260652297751706573614777153934099739940507650268223281486961424989499708981066803482262764642884436028231946792426147266737983066360813470294449910698460881191865734314894629669695452575945489642609380424029543886428263623147647080612036906081901694011049792062258418964453942544747010225145132429211987111904962250262062926402825715360748146839563134243848366818487978011497230865393393448699799811719018197902207675703956039544361770345974891428923474328775368953569303456194380886855355215362727725046707997942469379356444043608643768260587722332828615551766398222788231214350415342358608256029672899086025113108411638174937405147862674016841543836120695610337303023053623691902452577032588370014263832304261602258175252912532686956608361372096216144591140063171760007149193687624225898799018062554257850858048059585505651588402770971802354911400054442514270587320656187661111673194551757334595111169743952013709261825317642057974036360953775677919649873300912782170854591703071628330508871885643611141620707877538530296446230891275464776231120095999624775425131860783192801594682372373033094755729662343321291084737874452799831264830174773780599301595348367629797362883196949574803672233343791813825069753158956048716621639398070005801609070968904409051912632993908816265872340344259758036557405866580270714312751138246126600582048249041373654933540035468929003254948710639054327426987051683462101404897534649380232563968828183004354063535313584274190272076956258163732480948580509718727126610476312791081007379962242156003905488688103211851632138271294615331453010067729755712358765410436445557975437175344011429945029582363635233915872395466073598487008959142326688555266623786047018034109494404661344977551237860839539247512305825077846507595779294805866756437390375704260874613243912826870331969805324464706318932696426129551191191787542888499292007978208310047448630743977880217190617296225494844471281998494159548765518337637749923975873286085242504358336556209347186221956445981744703187148927750722740311526273518403589944239858287658858231935290514471257465304522796003616809285893758215780149600676469548866961721055885262856619011379170894742509322839045851884861182826803720837604677662955157004047626497467515606024520400260760752878352967533950522414566761110035626698399421973670102364993033430023551819723866944922484578950913766354200077528355684393236898499148398606165591776801871668952502569462235087684856289860866292015497107275823441581914721795423482027424293560833220647996853549253146831978279825029073502507998147692277186336623236296942332031540504440113522067101783416310830471152054939595920908249537964666388446532300562686108455746298588499524865686550330721472775117127863071670852927445559615862539993399903445683228179515675244118286378597245155427623465906805211637201365512096955518849324023266078191679265979976613706540070086073052911743488288148950200112655709593538119556106426099656407507053786215065884041919747951289940878960566513108884591319487597043584723243277570517308439175298585050795033473256621810879517595254993224763756349212155745183832775894594755213912478192637158360862647823117706884514521279114912271556955879159162003216763257101502640651809990050322507697526634318944094739419448147743542911063345188364935369812853106484206734770393945231347142497206735918896563775821908439319015785271042639395566831793275176157625738636814791201086767979024313627761998870223846219713405526104747409528110948376320046767647621670027381808371380769275968216797153828694617003660288167089988236546766856932667104197807787320503943546343575977428188664859551032605610335531880466908590254278135591420924981486880584555967219212130975708498896797452801390761422546567090008842569765985761674839078358898020600997758271960163767327847280154281259605489851227916196936221567364192830543592117389973713891553028835605148067675492934275433326755444116368438494443298694677152305330685663684533379713675836871758247107741356592235745453606313553774480451273897815782748587322392896923546357368133974721298189736087763417935770978161826817642490147992547894060442878361509054181597026966975432442522920711602191364573184892926197283968117441521224672273450762186737834966499263843512129347699903657729263075564494017108521889680049523943436493867893667283125320708176432330000162735051896717965185988715790355093789353416767913260506737627967477676203644687518287019681414105460208007240383733260743837699861055042372957703441274459186664446821047260141394338876275412767426840199594901257117605972474351483822853171150108303530373798261043744721648957925959081346378233410185020414960130067685787330283245227687514946899692214986720342391414222048764187146686305431813201387090094108435129515881740386352982132848157724223143738842499581493654880133237673697168574636108056166878833985882624287516583249437617271680930582554574128219891281801472650665015808817949055438931999311089661538339520303407250264633841580644944731891001981968997382033582633106520817394410484303347430263639452480533366104773364731212419743168264409955662418083470776765858491128220188576731291671672180660972434035083781466137897756147983850201185201524177163195334997864354225279468755102058028823112723440951302574475476851011920778708540540123700578442535702607257271126283263414510481972976984060320040910519871830491910924880504209736879679009593697044633414593583311142367361253521710658273803255290514387768251296622980462657995401571512415792052550792297949022055072135060025340635187882709895649623986231269146523362433600141274800351411827735188534916034956033602848476570900819391148902010471904751370490533228673142321854494098412708039065358443952280957282722916989796438777426390134672636919213209306512285421488134483404782722088183916200435712930455610747562976815541109024330911287681301755428530255185066221945876209545915886413692876193221648475437748716938844270913436739929167756910408741276337670701827785001306506825767611291623223756097388791472816810534947152584328060207207102351547724146674029868290522905198301181404219611997895476561210734984081320826708447621667602374484891465669102675358202286802023476408636462067840829620913956129270429131382900987114925616258314032680291137869203129166593021542014654829336147794440052949716967950258517686430299387192600910253448618116663439569849206004666019283305202357914605284716168287163781099298669588355981542918142475361161190717498049430901352782909751867361806633484387607713420185543141154364511087876950469956720288921876504734509269857426870548685275978096409254721279623504874659551160928918180669598769233067364130861365995457231628497970079362721718832173705336801570162761218316521772754746630727758226649879716231319665955537764219641612846677029360574352079084419571896078850087986707908233447414952170463490309491629692764994801485768014915076700957077963016061510746490465394889570944305536180661808643446230312720202997446942099612726953680097706385897435283244055972210860558590983676602096579694187094153725046634903633850022015960365008747943211456612447136236337589984236937843254532259634064800404829737683802179752968213466424882843708491680637582895767483124535464865141085188445263826446676239943204734486738474046985363041626057878431561976567252072255054412923471839384948232106936728269550919704392326694603103478212154247513692639571182693684550861526331682959736449305166657743348232819018708062404288995021817600944120059866408480951800691125007485716570856592797435688107737669235095558978093895336640663929082939379798517215599194345399126058296403530165780782067412110918235229096831149696908580524755564350860834350538307811247091216126363628543403652367318947594136442877920633035566612840332087604186447990124120605564400448881210869107458889371450945583414741402928468664301551291264696647497410536362363412882328995473474583039256045277752922051716642251170837603674503706979387540555973778897693952632481794688388276390154859994077755665837111136816080518218061909758039731100267767587567019898631093988242261667061949614547119863346562949854685015907188628296872210741292784241961322301348253087798585845987223149635716704199681623636575357160476714446428815183627195386626903284482024602046050789310436734243245324152842447330469131147403037293983834730814229550289852934922698689296339441400630620923266358138706294338869669495909807492445274428486891872439622481942900909728194740270803411509049644131475279065530665405479171069099752065127928655478199444312453802624643695430779464475530931044556169936991056909302724330929931197328506052434014995222174244278222522027050948672403502546772047013153481848779146088479223174818536811971399341902871090472244554228667466728815425080603194128514103465868174047418429678435765667870503466587418582935747746589549490296827288380655725089221261388593446751125881202965166393897364296888454257530904526723662271709619054684431636071159883067306203423031168635123675706998749747152058335632358619195829758257949641005375468445508338648690793874633069524398611923417166351974599440138392115479133127968564591609485724071549051319232969279412152558358478981479012785220786358683694835884078086805357094811992023273277248748899443189000763576997137477055072561372175422473589923313419835377872750732083930485922428974658710014007621379459495822065728825236802919794785706221480253416150512993117777408770699016981300041454658618223924309362090615666162119891966947475919006943434249078290284757379286865517299952645037194302198425205313756486383075132657846337264894568909232317623920324978427844830699740424028876360485686176357356639203657702106824858631796452544462321040545181164313201731164774060329198104757543774078239938380180158922533762005480818412900497580581661502470932523087763904190884222065195615356411994301034269992171195645096955416335242344214209755363969012726781378515307872647888051159680684051997638992281201414948652293734911105904565061763346107176975439684581854028129130987962616758381081133393090131570536059714827994668575349308005649531157364035879137403061461329729285254335878473098999872535189524451843058192144246187309913673635152350658969074060858152411718589564473236079609106967885895022189272305364373753082330456155033675122829263714148532584471326924067231297522841811144811189484820917180504880417647051305541827046399778391266891134861023971848793806732087358944928277041358303106211460746506257870570685540920123938516974812341654900586207008972909922839279793462456777478301915932031903128124506339156500953699881502566258019397240022467772218486054151091310374607663072534521249595415078383680577661424516069257394068323631428502793903477589958507948920580732959623121001137706713422874139896178784466375203533902099646371958016377433498362899063750572409820044133473513582151193456505336815398844179003523783564747077582904023538854881036777946841533923983450348191579831027290819338831127646920767030325504315028791992383398722241278568303440645784052798549818588391581983072858322807776367449339903273990100735993454973570721478532217209546768999989741136391227405121258801877887160781030490724683999002092931877179481061327757444026813526823048671983491508510932975733043128757440830966267216558753896595951945334550854526356954651655214771394093635289298411161251561976513645260727897688256907101109524807627211881205239549724292911394565709116617013100652010011391626829405656018079344881226132594842070035486559165264239886621253441638844199770259689396406899805989973307643183758709060373976697090898375861707611415752018081049980110638935501588386902247519076693653454887232418056964765255643193870685366077428835140961689696011277316410028168103581862757758407060138978270209156737737968362161032055099847089200696134306902519468552233489990809925089554006241463849649484548337132085776036734290417180170245053546430905853844605901024284693917368978638842523802865972087932037679797340571819780227134749776962934104169848860777035960952849473089786010289443075699364376333518152679294008459839030302620555279228520759073755465487890649645779603303187705601947248771004686431999548413019527452916635853399765952382288634502793509787488943264091396798038922135594584324646213854557411244865638219169548976062134659239610985997381487614902507498710695732904715857029543239972073952976573144507501791089787624976402265913425025907002019215111696731510942956887204217692518418015698013371436975255697948158843908150513484221923723825405035200549660376708858316292957806393618939975102415110285255744336397801652311518112372841921180356981477403846766725323617140365636182683813305343989284007679122506399367302556303479486442383587061958471032415946466652853431352022657092161535652989987799103798606276413859782382697084188743544170796819304700407385832355305348503412398994680419323272257579871729183585981945814553010631472886529138906953250964902914397708377935369889844023061148524647438895344056573239877673893675555444589985994511614874811146830914923656673999869997328455239200541589956237202411783769773034291653194293882048625398088135944823986499817273041300132564138948830370666908987150597051460581844475009106619981280720647148139760680353585301826645310802428027466120260058059703093449657052298167779429808912081348560294526636830382860792270841706685940364705871928592194843264558052573334271311338060579718642453670721417798852363601185631455725648916169207768405324652317692333410086530818104260292375822337991510053223717705895564578253005868283524174819564123370232332101971190004134434403692170978053129255412693561194609904314987307676092023765477659068531237251702325839890277627950058650196179090179281562577499698494736547484907831379560268460485217776801306529115243771230930156935764225276010687374791105834524981512220271006865489240184902373786816538390084370786335444940149334868423198142534893557083962499237283128063659310385175906776372829724863935698704253497948025372539916840403248630827303633122501345843768051884379705907614997260237889142892157996997436668675316837181164005452814899416586141704815420044444430045781951590876094051110776013591808883231262869574731833878587176508100233280662219058850452282709931994637997843227650541262534709787677466913927788024996693031982135458325280497073762329354909314848997973158483456774443853151879909849908786498389740131900979539532528393552424598793795248276422609295023485982882569111802586301051060549851727447990264260839428489512998579755757858531428023849436873035549893777143822766438368340924473275903689284632847289186408258586975521250326522897833727307218316257546444778654765805412393665211207534148965823029152264264540419010964526992980511339556676668002757813192372910707503871480132211833640741663129076161952512710910709001122605456199444796037244143554033012499633258981940336545788531089620622501994708401541007786405038384943672922956002125137685229525382781593472529556880324971480801979755523890040368530418366394190390053194921289808417658630462043308366632104180945782510361655710780520814029473380601087131550241749775385195187095074733831450151973978717859199381202981046693572219782663347418838791370832767145757749862023257225195964480814097388747468937369812549477451822868140442909430486140408688529670907196015364725749377740218883191847582728377196836869005508970786355985324904472214898647847832567693358280364400307216931598889202122065491245287269826527191819860932261435623645983923229471398262667698972271442694098197039294899144699119197931390182086898112496516312288737163374632746889256616722913196229094071311345743868166895741432888712759407128196859549342653918384179895974426802309889376878104664803867211817947932823849708252798024533241856019224985971075889657625269380059545802586712918959283166637812575185556579673351527996202346924736592798129109737266809099254555954112965248445639122565847347395558009777116051991104883375102141002810544230321344595527816881708512903278316642079963516830948053752988197776533614478024013346286796733475497798538872332589614217057726548403747584508483154712586436564863152712820604010063019011908592051565195356966181187350303258676267305217055427105920258589843731144852536891797058804049605472023672940832543375691535513369695393145251580372978639221074728336131465722623679635689892736979481352511851101682169238295383884951680143983178364420629183839120330190988851902339604507035518197382363254856528143539234437736857954929054769145113762915296186576705279136358365742848348847741389267149186198611681743530172575898708827402438974193092169540631094409487745455614735888855810103007206311421775340832777276718586908098672497782153344524882063792881431077378076492896117004682331879786824221927439179136025791506751717163039077876908223921076533710090093055245589990129633035679638424755546707855927470897135881854547180114486295100653253747706731772428182227339908991759810946813738217332956675334023939158608130782815432703441430911139837786848214596346666811008360810830123427428398593164989228834910966657142774607023171569286618194908300008505814219523273397684870029825134695446506581699936131405658943626818923531374608035325060372962059257199672133127343442472557652926787608679647270078677248557404596569700378026247915038308214671854042463783477896789895322862939428020524024837936123771172948452521662553273919742077293481836339199551886115698891347699580811760454994517152038347611413256827257667434302139567375242860013776901259816532335437471909068170180349483430388168051205714747008527131285203453493316895014417990526737352615862106645855530987455591942971823392124508332600625568796290703088083185684747958015546425598770919489223009182228832673675536629144548251510456940091834642536432845432435673674108742575840599139337905873540524067334967990569992796118469746523121732572377348294832096820675088815388580995797064388936815675878908816410198326299018055357295456406935705340812795867562779547923965261094990567277589559500485929742314331217585316092016389868507335472708709089215892779426443633807442996352479322056236613269804102455301224364532685995897696847784509905649417033954611177455873157274937983977396848154536809029488469806016766943604309911721841359483544309992432795677506124836590141094024995105198793896071443447590888069023663428818076388717862893884482397907904907004594607211808514987310748366452143317379934932472935877272307750087123999555517100912938948839563729622360501826322073357926740857597309434083236551693545251865839570341278998445969005687086449237090320985257853571518327755669970190632359072391749671479248979023941602831066875640054621594361775235190436811260406004256920345454365050986698508292633336517834106370139472469574008842577776380329907966015802328011463721513446417190745236764928090199073925003071251609168320207863240396274360771094730252898739312225444936580537339154261953882621933229080602586475337653270694570005070581691300658163809601416875050072706364337724771461841354118972765169606360598463375160237634614472467753572318652202064588505521384820926260530439425512026397761743260165423638044890898020952915858503070345316473509352010998354436669251906172839982906794554591283725596284384171968810163754510366512402699479477344059783498045464880450764683862533529323921977609046439618750676405904915280624695599897770271556036051802568520506307227063251774107456290702178880168657780796753253008123605155753371674423386784802962956015270483816634066376810588584027118397095010661228362607295555741694068177881579082077177239593390776977602144283090524410899597388121833351264158594624568466833336552296358801320670159306606770148251589791823496495403275055803469086619840724293963524155091066596566732665952453774141869878995294316808828082607613819360517614581064099689655830613174261579773762983309214636284348084550502769847596646407927343029095135762727436125258036553733615157056327332995609369203647030978402119306270128701827374409281777989047396959723746206214955387293513237725216674281660250365297989253276005809926033662619306944487260273519814811717946009380573159672997232982425040514359326832102084011306642617296856757788554755524516156866900219074249405582105476340072617842222370023925712954825586860574611819157277534931773199077530547739985912790972884382127035763929208136227962258069414517280777431320632191911653295030201214462139616468185083241761922804972327688705528702549855214071136390407261725751611239862411590391796994674269883733288642778296528954718719323999486416301449141588174272569385020136110696181410014434499606928710680772857095370735238275224751728790346195823672497105126627181387050436571531168395933156780332163154147870225946631504372170525476190935566961591024270910178268514902796684268706229151625765091349039068853121058569084841237353924688165705435504233523028745287164862195004380573187938497172698542850048840884759936244391491574127579690239846578948508575901901225262327860318721073274178438640892525289435659296195847075690475775088353499465683797629401319218888065910644490718111354878960274842863786754989786993768220356968174936566249477358633569256067680901619875122515368357682496260497189059782099915459671528992920286776703882707763459601127805925339677832444519110030680475173821002890558912451082904204603669012190003654769912782294715531797589112387348321439957687696290824103816072684602942831227986302868932841765972651747088450781082930983421602643757910462318662163858272484960591686697474757241266958959364464931906609817900631158369755553572343127064931169019036670870321487031326490419108179594905276502228178748223405713296890222686219064160614363220160543117327333270943883459459939130252362164888597473909089156000599711997478084776491544796138493738425605912688806106031916254345979706308167998193898239413907838620756840683334694131889051646287928381065740822911240426848935194376123570830962509461409934317047106602831633634721794563065117861594362229087824462291841946131736322568797829736327331752719851971863917589721864043374661088254181597436444235135979704598782560141733296250317630744877196050178967908273720816471438483132193559839429919720547175990686924602513004305638134487221373226021804003571497230111430565383168882780568600444675264259781853475497922577397144656028796843427045977247002686398707597820919830780036451861123807955550305194437235236482246304581742322010765311952464792175696601233116806280529767679452101348496055697078765411802874528875711298808163362298322754352324316502227960431568044339021626270575606783654184363257278939417136479202008593048516380932135274696244493424035272000456164568053298119643659250670316961637759421206935957794795043403599690809370927181954099883994136047062875583458492949693772892375897222334723665266572837072292788006456539476511732935021699159489566876538081658469447591017110143583982515597473805469883455536808967449370544654678915095352550020773599009018582252570638288662255506662978972847450016184327835965425138676375949468471319960929797730569504770425590166785838593114924323788623372763661203002013675509415307671798057307253848937371660686685996290500983830703194379384884761422546476388367380208534189063089016119094805149991895144815540356506891959856594287109612597039967418551738308250074210657703702288228341359099907813661827814064660057797891213448050408481199102730926233549916473721153114814763867218873470680751906909842355420406215934960946605747602015331544677479490299868653296234429383630300245535327789182680382205973809822285130060009153697999942902419178690154951181708272048477179414662746479972534637892808099328785746168046421980301949676158301647030707662078408261005823870958146953275094722914049494232268773359773000971683394169136167106625906208007565359314260925808210522166511504698823435409357340783970396455948238064310331189540757281723798435610187513946627712898691706312087493542780106951960635791800137753884488269384449883667720777189923826241905402755586451422647609710720185784914523530512039654648822311529630767519054417399851568509697063957505631004753212218259511688498738863456189729250114302059469346921342605369243977554538307641690064573297148833498060898420561668165284724764311170301749406731758811787631600265515906280098755258372616239835409180988263906592958077690498119451839235690669829370344955769590813813560169750064407975608419266250342986222360082826203632488662327271612860108244468524254584807448410201689218060160681250620774800243245679771466167954266335306855195493720006832569698916095826663609835658970158253487719169226290723330114959716270939497486453732425506499885491394968666978258433337258563446183399871536305427506880380262048144233266678133421548170207343858489889318109700616726624266512014472539877189022114346080272530249212390930428989847083955231231663685172504402794689478903516722594860579912673856900940621878011210296003681351946098472896610525283513857502958983517674833288390835361841277873556126735097098307726685222596839912296338193560046363131197877404684756339030290680613504833299861816164078496321034529008032294453358517065700782492989247615110714371870145913170396017595739934293124284402273647175789981014812075746606108329448088822447598270842210591149138396653867282587796108204378376510053015297876633366361677070137482025251042082985743796464673072991522735397064499863009635220487979109913693578505678603654977177859773185683528633913294195131752521522720179624801678737358944431259659906459834333574365584972835827853357729564440568547523026040657823615436936749282866238645942389531107210095759326715295161812005100746875412409408414322945541777753293209405065080054437684439265024913261329969238447531569471393931447293294536032180413446305921779579539618706468743550399560496868641234969180862647778139208591858397695062660387911252335871071140232864631498091492969814048005825897377875977806243244575930952448616249251101273114982094840891975559963796978089442125338016153682875138050264933265527773372366845849779515048452715434595308807724101291098368016527949376093005787118472779643487850079078412929621686497782429454257630995964021330256967419087528668585481282228452942333167797869076346304567056894116325076853422460260837212141576979695659291755170745971971909933054969200072104015538545667919887891548374967317670440570158921688296906394599056380488177514073933538265748928395459995682142304120200703362092806707134090254235968807748498377006238599724481270632547418282231723736031622218203431522147950737212277558095997066518423625666710928664343330295768995851456529643176418591525400489221695516302910476687560873790680452068533772502248407288104070627845024833967114448473839699514547114457396179204148342966853599925015315301719764551792781924666659490635628091451411486775047355960638992271986188867275896107006169316164060699471520359777302124173666981159778804523726262557452321538590075547218591373654126230979062270430113299153802857650112059668817231693965884102646990317835488158075271189104182228971728031270290216126602458863772631900179692246141170659327382645047249281312154037543483061530587717694014705796405561759944105568067344090583434596467464601442218219216340821192679773338591248811457467827099776570058209755501502145960310174185175379771914686187186566173876329643636940612072015629868603603846838112565272834187165517555860119534326120610044923268418875385678934898374518622095284050706981997876158269382802887215755303828266803033281888369791318642733785910348633736045380623138002501696321888390868488574832787837679150587788297438923489018386502758373419445956461353482011631723873704625485682045649924333048253317814558799163663634735546562619091290905888436712182744434910217430022543716526804036964596034459323314802827235597370176674966083608421863629556924201420577995753597483289196149908938046397061735465614971527684994285627877797255158540433565145190658727975949209272985452318395089993311402867068648578610837654168730286982108991995444201895297134257935840031489516865239324936737915368557214294044109786965275981218347812284443835509846527366398509680148231804256799424480724276964682954295251681303782246981594539859055442705534546582240045940858841573209209622704285292338377470882544734747513001504316604590073737862408444388873444344336708495494023491339242397425122032146123537819654990161460587847622486165151717195238967378149787481706574075683169644864304586410127579329664190295613390070058411769491309977695762608657053979195298325876421157471078597421652231574169330376070521275526951265204756082667218378340249440862151265440649126128481638937787793425215659856899662684398704735106053494258542035617943251565604240800699331959130907799489786331545722531479003292073710237719986446646683745285739374864447364555776819953311529641724384164181635365373479050089530442759334389782689354117689384952468191103563625111059036545748910976715819722068790194952370714811363817514073000254856288365901883888539847274623346614585084275941228577258527318574060629065986114057216911623181533012849669570976530046688790327289578631485545615040504640307475733712196733445619421382821126398228522477055864273846710268086649397254155899257206745293685003306194998236060390269679394372312251675571302452851413536036358349794284959552684707567929344248323247522713827102459263068729933347820388322553395652058299821729686552519362507517740386888138320539342510162346773387889654178859282658864306727742373055019024624836072773361735625095862284288748876154232330684425755716191667010089140204950930630473205725694179749940208722295957291674666949945943564500278913979414333630342893475951728166668088948450289344523855345002950746295493127614974698440960770425637877031880015844528381572589839247937379542000228180827322052194924915228064996445051021843119165520359213894783446688368145511886039444131905674069471429046344495231676382267889814662580933286702854456230180811697130885273412481835697796555127232371631724597670502436884865662366860976760287482374943360336856438290320524257359452873987648282478495917933128260504690930633621442402245258325253646963710237082591967141055812807894646588837780250726113977715545125873403813884654861326421675273953480352992763978055535712163635420835323272713447627038108406107029483446823776459163599960146015702636737390505695159915847911536380113439988444775408092076644540306802087775396426814447016114286367671125460176521921326978779706320149833273211537242503477385605531599310121631195200221397900199959263869102416292006516667876037845515596143928558995711716880774734678513256282098195840538951790923146117929400511938470598675396386337665702765269612235550677399962775715970311861095496408491625310660733701512250691222282860821684583355318152109872558122137283216422496211579768746263045786105471832913959547625322616756400104335867979885563472426470960524120531520324543133107200979452456490676648491438656043384702559094584750127697632981978020877612223953588253459989024202048270355678628890509541056206486537217206170832923742733631525432999153071453258002673446603848628361547007941830761650923371763841588402384669551072829414231836511357127875138844605880997616629421147842480101235699104514599763010368589606865325348791707204873291605162775316063175940532146485762266156120598683526759629433120044752084863842679744972121299903966265770518317955713745474671522233482219707194262295836893955689311226988653043723370133428710369540256467969569587208264381008289072704508555642697922256534072702893812051994956407485913382650307056711769933035702231029164144989472533083138810551862564841913717556852305027210200228679521175168788375105153016623247860648540498037259836903617785148317882276516708126929985657523034092976579104861257842602296857461819302920957472707446179132297939499381950510629361274865788851498352756453801939418222751445661366020272862344962382888267667945583830956387411729858315598433426138199661811663577071666535691576594492888816329610787876549887802049189243747472114447545727611944704076102810426495831846409673949797808119446396672086447268555059283286556128520805555835099631725616247597351075188671916046146156441331743679162714015403404779209283183724875202072066696445249541386691354845594551287193785425624050538350982100782284206895451055117752797738809781014117103893607103824937860632228162918699134292041204801980747286009764361997774435361730490559225832906023227025737472337428869816445533292184236686314166122943041275115233657550716971181629480244431812591818927297240328378372905818836499362011070026912121925168645503019508944579742276348117629765184248330183469013638377900415864102971583706810378073580894508809337338341062937722917258875855117634539270256251941578895247898153272608619941702821853602388569604122373927258076871721266957705871624916013582456513910707055195203537165751359378399136381792088363272875756217239067414802722439720810981142176956265999639574845126411093258620207200354877952534415417270831790283853315965704980185914844495550985855673553664713358912567767369730667474008748387451025983053546847951238702432554539093431939237374375529192766299163762398225611983128658454087979495029352160877017158927070771851464621794558918155892161168021874370206805165644414183801969315918510320789819345387781823341555170222808868423460162026674778971021856300394681260497719979189682240702779614357586634714783204091316282911403100904354074636802528041331262938115919894562880360273948347919363828198535886988976859435651958941892726928986191584658961846311011190175381451344414395769193448700127489539609995138852670275921070082505148410838363534051062986609225864124549422514742180995450832505420750521615065194239051497117669813368457480621781864866095122610976381480648223873270128006348662464632183821228857331856649570229199718090634736985381683516932427804603014908510398938972717154113345424881994342644117846589343173620237932885239534703912780295900453488143957290670309463225024693609001641794416813490640228861042524530151425400546612349355738162032944894525992282529467731147716517845108941267997491702097416033194129373921195617998305067491636862539925903704466756976518863066905049051783226792946900656385100983201282549100965520599246018674152664781055731729588508595441180907958638412345616016535010690475351402366315693191465770979732656780896878179150179013822068288887637050094644191274094496710372402420840561201630133651221420481824463429984827664964966708866715155816600337287957728995735040776802033218236160279468374281053856857029420973824806772224810565258976284782459952120359605696738911615238009809977508170167163144685734100187692841629386796990397614045814524662052421165005391559513637423659295315910856056246132247861421785544352267774617796811849836248596070440869187066561858763554355302417491619165240172510583662383037019607655197947065458399903730413819201960167601428821505360122655526808726685805033085601574187582534906518822339843501335426102502271023819946719509488633442186601827590213668685690208349233728161533412608337515624118371823624498373583334066573676039714055132726968549343358948583137151023548346283512660044875635908633469810194883770190324017711680769052413886414460811963975486667882359869530989995588413657620241346989427215637266491213814722886537280823556427661801305707794776233639483885338453733159345001300150115221991284486783918868987000589919052497023860796135140094799729857305747722569031016719403796000569415755430702193797255755912845382503908345437747873624011756278798533844795611510968756047574317349222381647377763800798029074713435591861613493265396911621590892107288410783719721457873660701718569767491679409616242274843268128069497755229788037048803247658453162316157187778370828493605415424461645630477607475675370817186899053258559663566809500259366605192678944715995586848704380182802584979887944273642081180585831320190794407403573737850166847461468878290894309327069726206609376552698433548886262243212723792994848062083928335158603672004681586351564009794483012851834883719612702096436337965641686132777897828732229064417424635912115870868136152866430127008255690720285725570840162177457884058606297118931261747627504632138100811622135343417711563962778555293250761157750065002873123305663203977437864774968750882846773261847369603027128260454680997716239085907196988588690676350798539339410924823901200259106324916809093432646828954010231183837628779160450927862527583231560208645736038844636174359106262322307645999811455746551090889203260203113308292771819177449568450453660573279478717686330080829116221766773651512192962043706536918023630928278763124784440552795392932709234408961319712489128116927945129913896075722879320382454445958394351354127790258014123276910118967307202996024423471721195188839520751990164325152228740796357577104412949406351553974888571666909692337970588952135693795276501201812072960934865214084853370562934003488541996478204349863744548233545344386656527795362879440870019209123367154504638992706518297976862788819062135193962472278163490525796695437994475545722842901028097788913156851807008134780291911429399984225459317534252915366659039674938579277374785993457778595573036146892431490866707004807920737481251701399500781278008429465483213106561087772930758262305450597168502958955591455957126767656071073037639305391164094427706843381527641472961486480971412215766603522948033491061468114246639094104069426515119834974921430260672619866237247952423921477127691658364380559303741881252541583738496501801978834777337935775972711694779306533762432815825686551254529595051103149230550723607417425897064043856049336087256458281142120863600764890290593516396257708026407567294140801741048385223740178064388181770894195045567038624889758314359222036955989462006389540284503948963884913671391997368521520898457386692433481549637896949628921626006345980755696717439628627400710609919380253692976906072084413134666481865647900289968583250247570205028335883949016770650688167843550086992529171578975250682573511879504548176652669632772974572794353055331942387585138708435379285021167282970490996620648119944286596046984547671076416885966503016710517592839215072726576073535543516331037605352496384945485257293320716845853237670739857126876166841271709330135747864418681891687831517445304925869852684943616287569389880765974730155765419176367038580584961560074772728527293558938987887599002863642769666160752372414226379270819503661103666737699188318141619733414669665503470035598972121017132795000271012168520489900547763953118074266430849404804715838683977978594440054026509226951822086502550843926851201936908608879931398218498531831814618490757926631195414525883533884732195010308222615010793335960955143311250960077128058139225765559940965393041308079453464852004237974276093565556227055695319367397686239171529885534273878394123910608588157042841195433353490309340164800882264384425895633955813438711652781065223677431180272031882586305473759833413644380911185961596595044147681975419309925934494461606105435289727294905012110995278148844975667171966350468994633850713837569480387644845051707776301191933676766528455489649323913359354126708585263727829248340781040211006354398878259096191334723193021589579601946489028222295970500153168611247733276460305696411399277735530267494764507350698057385800257848964322542164675335711346867312281107723226148295395926036724342663319064028086146577013117412414807858725422744173404805950072732039090281620646656316100475450133359420337424404353784807670841204671547610896685494123990904014177973660119762475890151994464792400264576069046974876508010923535509685614373056195526448755386845115548337746035218054773995714720016310888104402273274221966167554824464724186320393199196138597294576411010488695001797855138777755476983898597191588168817348449538891634950917432115256958677392251090223682961035788349308270656210129912213411530848404266240702316011717895503135627088833283862928983973903388678762871335239877671566129070123153710827575647171365392416829818237097143634524390079949413586403538810857908653841538578499481670873615585924131821563334495158189674829942900783254424106346795173160273827228825668060340891173789921700002733658455322921760088310411785770732354317933787017969897539524947993581747756188231888633066852388044896288362336336706311638752389496042877793649256927689674695001016485973314696860363919177128239271019610973117946906867670526262945893481568090853187184919971579663593497738895647609688267723532943529184325462587532882257576458482263326904736820078683773989655878559774689104321466187157366437578920372742555942990080493479957936449686557672478202269154836065544992348048796983815455608797493947249494587960139181734259814744083599198257981448983912790660804792440727932549556544212926867726421753701223360140602779082589893445311314529073732509777353772682352819660729169790377119574886020441605893949085752393420086652519017361870332900820768905558356792512269200609015323006262264550242725468647993369378523426125033974888419556671335363972070886193836752108208321576384392511197627302716287960000883523988824214857627101729194263513906345063554775893730319747554559785058349504855963556756273499347702187296085248186586506371420092239288697063599363735029524132888137278307757780991029665084642564309989092392685540792269180601057633691103116477722650945513343138985549166649756111412056913980217449575960278517415168430066610758704663138419748351660740561657332652562746268596189643736712270107663838579351002888834271587867215006917104823795828231802216610376419523248376532204334297776294100197725015163262744017222241478031438157442355463454621680048308230556447929111066841921791526089074092267532404462375759240212184862861563253818843473123423706637654824460248269456529098799012438869623488931391089375699017012354052689639699614874024676522743326787306480108006728874126812153959031548855279906287362022805346510640693079951383379339242702668782271969556836204644851255520408905638083123102364492738318761816811235507115087684742005566588755072492400812815381939224397654648121191015898580018156819158950193260338194438522032321920090702196791268976609560248695454577299151319166911032979886443430814506281365986418043822188841155888875266997565217191016813867166515983161681541557370000010508963778169068789218393285552270839785608119797545732697969683138414674175772273769639187405293848784066390320388940648685471418037962296055743605926374453863458870096955419276500259560569252564167495237684766202483729910672577287005742653456715414774978135287438616666036423086766890508763017606448255852405375641353323291300743189122168936852948661796054148549343718915719144493271006427217875460498784733549159190615134777417202638411506067384226648829547742582834656096182343073358561941564445210979514277470778947130082860852804056623381016357075590660620861291788232131266078613385436753329152660400043190519361666594327875966717657056458836581423862905564270445950973540160852878590699423055606016671407645455646214691516301762861946215184368216608281603426229807750903318592324872592467927397962110793795365158641609143657171791645730409585824090571848988598705308277898663128874832541389833347710305271039055411451901678703520970279350915415104698793595486311354167900473137583737245946418382816714648090201060020779410166788001410553529727040658093041573548492295170873823679440754532688973313208954545365087135700808782143282299671317972438480651071560878089114110172291601475108929582365193140301392854350356967306988151743334456820989229789086159469051432213345495428137143585567859665077466814891229268340828494920608338252010061583152668608194874838669621194201967681148819855503163320718905334708869396823600234200064419877316078724443026707004759075136244203084860435140835362868484748606164443148969916435980720285437149428627375691497706342274467779252409969894069889192508736823560490331230434812054257676124229281367196537905509872849634343822129620119038774379895334988289989480709489283422027870988643067754498806726489462305839564208907456631308831493337201362396131457611545319731711928301206175880446511702055460454668336387878540989983344588742457374302666775925945546600083018398801701704028991585029868989178252309665393957765375214653436730768535129060854966160961275337375524616813562107785355273156596667437774534176262190118453512256642768170433425627168291661437987913199637922897297897541740420745277887811425349626279515928327471935953829177650785320712430530463727480952862702548512201218847983752752713141162797299529077611983734126235362988394229666790071003301924304244061182061240544002794754420973708906557290557208819452520527800667539505256206813976346519095852718544670579010018702330196006675088278230863915759440976434974855733586388899159622414222740901469035435644508664141990683677816555088930912265988705062399687592770213589985147876152548357650398536942496930813098455007214381361007806494752832357250659161329433543010273605011553094132760102068117391751673069505773863901231724203184914428485006529525173414941586475682150436844636654060061194226905270626266799576390882286851550628995933501928085432457252839877938393631210798380737053101226919686922014819722346436752998177621712380534278188006091719972465708484497393497237547490936279520450093409425842109379264534105020862623344103511397571754573893751812966647413366569457888337245266751527547745245482421573550503364056643862020966330019049311981204716585656366942562807581049524845785831647472465029801613316389442928049486694681713873690630715308017829604007374853563500564919168664647338005759115223582454273718517023201808462605197239512659302912534874941214806697782207056656149892399985746687558302867509338293060045666254859167150501925774275481276274794176040830263372192605197424993952444814814413181049390329852045549208460304709441178811200369207180362816899385589449525497468039297106732047494623805644499957862242941377656904897290805358386531072322602721423249576565109806621782779817752469643819298813053213084567964889113314513846147914858840315728966033589292713947329981186804452955286149543437772833605471023418359149917970323119132269598056758254768074535930202358681914441344806047207414047126835272529175984980952195759646095152774323793907750601440249518055472882941592319572977869488658261795469478286900707761964915008041526413425740857879502855978702607915001092042746888953108785671066145932563727141906980458458462730347804200899589849656459131153851988643832202751402637710858879425234470321922353011530745192113318360720515462822971416954265968033670261212518403058860618545289200997709616574357565764309212995550366061051030331281879956287677029714090535389867093238755786640710214716034817519430582951098913587409649589692423809153588544342014124727589161795607309403784584451518983366496521146025019984995298417389831698996790752953274356845639625662726341617519969174060203150843134654076114688942789889438668075512106638584409442487902785735599348232085713979743406220258937856934564766325867019038955749198289113313531683193867254872293125658620740416356352807129258713445758300265655503779005007094497588019634192394951457321566459185705064788546431140271350466142639928836617740156188640984094308843383607664741216964160404924600333144440422359043089266860633990233936860335772213035479343263579857571713483210467568472614470317621203469040562103433639212404605264226654242549939589316828420641165296213105400077347739887895744695726512636319894400678633611983052688531485631113936553019245780561579223877850783071999459323827796995431824898515495295437262128580181736493325492647556784683464529234625259107037050459318441927961455450986183212284492878174653239094566955424161430232880956607579925975516308476131347131156151430229602985844942036978992021529743079588893914183820633796432259090393679771456866259999766990286753583030442464473284269262049984747858679042856566750383704346671924170705188463735280048115390587527073998774201792085081304734559032048806496982564998900164605829281785563367848078013323482690266717084176860786798911875736148198868764962501803216967242062973330003185324861709227228451120930706958469859119269858871379031953515057828921727363578148550389739391569898777096423666935848279189822040745454331214157574735002998300352814155064164949258359387836434357342599465173848423308991056892549040909604146300167406065923545490055715689246429166837728281936244265780118121169254301168016349891225118981257395087495509048120516305975504392579684009174512720603212712106618220840119378789765767585132908823887792490016402543049243855616265165225889394660032445193535828199571034335613228109704477573260312670430145751686130043415288639968698348485792612419981816747064664022257266787957042073344998117666892990517742375192832753030187284869177016786439104333098852885885520141880427685327786995164519204352443724978234787910980345335731566329025777068585929598791773588860104383198841770863621362024043224553055831746384686310474278146779330346313065755816901412303485506706475888453986555575222533162825045064289112715372484499351496476108673503607637253244049234950128426611234435993441739992147000192628423996615633629954037854299849425493417421453803687981974310607248856572959495916357218673711689487687043575543698613649568567999085246939602584690522401182934672523870878162490145948093236788756559824808739500976436114441943659089363470182037505808991354164169566913131226858737593705367734481990019387746631933227610669745309955660994889140369224633437852522182516529481045551864689531997889606550547996159978366130595056462652464286884218634690216974357987037841773395836950154624296006043050716259543841971593983179326462391206866456743758462638943144145881720732631338533268387388993503270392809833049641016711585538529039422365358330824577077236520201556304296516103220127874190380195259850011571778841697082776100206890251646658844669153232572487367431711980977507955722532819408523363442406512282578841302501170950529882134220913076902749079366020865807890370917875372384805647949072785746034510800917070473752365335774976575313891871596343620708679582411401653944813151257657818918955133488643167744814276017576734952446841387229558988956024174996402693952569826194057946254685294742880268400235871530655453661432489638616655707667665124182247232900007266146079123174194709011739760836481635742526243239077866144263755505248627898955374141198957000231876661616604984247866546037353350856636237936218164506872774101738714746629654475455442696917002847525008429520831619900556063595531005311475558375529073311134144180841558475587087095926496095867800705890199178912825745478805879616879369705991452712616141519467044432607681391096408431542252110815051198987966662209536474308055067813154284462826047049474421554889744450884219412779764387651522803069148096450657877030923142306351115321199289185389778398455908720668646393047725470626182809266103919472908093615741000484511601524668109436971250102165274192831495746194919672205499069171902314626040281459146157299782847477164916770463761303599082794781420350890811483381814730283908842039240401330467333714586723083184867195315909751038582776227666794923277289584562872153900181193577278770798278566961238482612254050749495538171219147215649024884366650288732730191052010009677874416407437338981262461529311073407857612375350091912723960672577932899083514255051688525250578215431278300167596476925750778043434253848494034799475347420757474531314389207614980206530229544407765116289652879991824561956812558933265027983462989279334956388817673770217602604314499135003938442829764822830262890231263340111859166254038158007585430597154391842258600394332611445430536020511028943210819926633278448437297713182956192882007844285037197177360674421604914350436056426301183423496812229023235112686925129263977440204912930252809440920093831175388772687638278408302473806670404003374393176821190556912286823724183512912892437143101803036355586569558387677476891859350261065846866064373157075761866461670924174785964996014486140052756998627319146310456816451978963531646880199828941352198403476366741487474949006069135403246672024000524025794744120088846863161404636286306327016580226915345031732103165289703883719988505741246559380300629833983335720782860675577301001953411185211037734697920253224916451727261810165844649011510637001053573774432109183360206066209009723809163079974529439933796095520428107685244420731321102309475010377493101184600884897898905511079544680049477180906786345614549816787546042240487623857101763308911060916376133146438618509056903689292336587960305049138813534972477239709235760269236131271007412564556912849556588416294978960450800506759821223394450295673737890751587049384909552050030424612500514328466611730489672509452445776574715648004318866122268078226216326055488892788453714614198038390390699326026490078023200477548571954803155253467231519054153702855559596175092460170239654199435732469611182712877238714133677278353622602032990056616562017457590870718720384295370185264453377775554161994883568384640026150488690451529587239433916296141992416838961321770221918064573149733769000896830706579610117872086240887698075303561317810575755781570939778105075728927150529313045034216024513931887922255604412591927160459130435554931212759733605050431422937896115389123151455430272478406469908632638221848894532242271697057343683365175483706993294151819233982917938303775151467175781709946415408724133193640456690600166057193670689456277343468680799935025193855193556920930096932063576084837453516095083293478426040837054143628103950395945303267191674775131428466589109451436111617436905403471140538406211371938637743776921314895867371114462642736647189479106852446676512964592905150283178221110565408591315439597160796402742965718852282373535990639454886114721945652850184395085824964271540990474799345180556795900667010251619254210740560975128925299619488594608912399264275116200719680560401412628471164604211561515852397385025023081247062533472126494573998393308764436325328341550509481054306782883652822267812899887084900516062876837731656538218362082144806932378978089740030509999530991320059572910107301371632191951237215217499790807008666211696568061895784800379442040378176602846336861820102757074302353469631402370494513071993081449723514811623057288529793490808989226687544643830038404811608718050111489506725484541353854179066166992762589732346506282825577459159614269099128555101921163808046452811443542480482833944269197700195917452286473443948149857054012627429829236911497957540391167488156444461816744376850865553583093949344250781860995466856276565698800170576585379221997166299792324147849569136967702786295875436918298362373721030552981463017593780868178396267771350885954531994206453740221738597470744619697001967421681176362233537519293315918900315718684772445024385851730940877604117055413926949726798760599555495136938195154159578073620143393558840146921335477239784565777284512059175476806180323083227692656154898157381853564281525927976750671339372940525330483850477494922800108204614660775313647854547617751890559529432516720610080218151784703176512463214122459697741406248159124241759364265061308906066171104607195419676432537815733517171980214875419537347384760063259014734335528053316015017655487523831282036601402486846165196568899338103925375927434280921497591993558111936275436001311273439229626358164381681162408129756026555417044800019039530420618169285781022427466474346713457757045713487309430679610375134591451134061462685088746540052361729458485862620023118113665100700781984544513116644256224571739076496676183194563369903076692474282716628450970874334352291420513812549755082788743530651429757929980441464890377853921295933619002774849807565594097517482167800059066146496871878596544763298996850381478592562524933566065073699846879053621571563255910817418113274247258055892046557848507728954747159167775717911745441907717709702779272113497041552708115604206672041077737957296507604466831915482010131209368400497626385608899692554368531423288088829678183306947808948674819009844250382735831672401271872531437057072297910333694093655541433215281585986975984169226289757340489570090033104929068827609342157246015962069648592058695898860422529582706113785371226491264897814063759708738648218659754024580048974066420440066889538665869957518969386749471514270104000087441767609847559083338382576411616437306248470952645748357715813101482200688378567592207610731855634694388320078276638995797035150263217657831455712536418758109131104469484134946896698099509622209458299796689549202644531972770330070856097369972478471442171422023372037802366509425993660039951719308716524163135605159253636669769005893239163911878487090352128981282593593672908769291106344017116600261517056535288187029216255873909990085113871455951712035831375805512356245530139255902283613890296498718026262213153339304712161354229141883465759007646290570079850396360839236874482495603886523009516560167462534652948039155434042913648431292331229863444273060525546859442421255782162784527126706086324592447450235467865287558331478084143980607449550943785886775365323749672185401749794482928115598266447918660946280302617721493315910421737297494744837696695848617808167247829454635474526891901321457344164396896112776807560491250604725761349554185070839882652329949013326941551526069578152394778039297468189077054567574245622064428026253050638968673813272184458526213861160143431965570874438995022422174872325584508360087927603690365359732927856933903442513596632161750420732426119889751324763348279439238751754249258289388968597621480781549713113261284004263940702632215579665324984552901634031783930348694460006784316304222369338096161247851356491785751214355337249343262785125172938237968557433791567961315017044331956395349083396665905263224777390405829075638340387221989026922679576507230374500462915130038829328635322111240078808976444568901087736171953840336879186534287091735777569497213167495362207482196721885538910036214896964977958917161404208729724745092660025329380964794916515354678890685466072576125494643997279803389150598653664862671483629847563916974892088616578268102488435621910348697529886850148163117768041998871789800185378564566966617426639407978299502240265603471508546546089391237468812432281348173041837257808450534917815439792071407539846859285235824168050233633256295516930141869709423728779797813251975024548698496259444358711142431203070763852915749783484450720570939859124675497226744996398477207471263563382641546191215210463569452038759957185733143074967815618660920643606703059604653302464388905446627207195556413707767640919344344010166726776270240806133370444880218329898491220000904890159038615983973324577208420685514934365276339036247010550274195563202710972534981473186633100753180620163762888230687163983917568481064475991750425220880769914454771706540348637894746243682904525374238664404005538004793568650399928720444452078358022642027733701925280790556092538000777818372922758182851467761862916174851158611093949293121821848399191175257156495541563355756653791443112827963281491913626676291161587864670212368788604014724919307372037187255446220922081839719398107775712214791435656078899110405659325229253712809476236749812846526964249435677047165724348949583032093917120165568399142023358181459370334292620371508857191480575144660630313455985571334950092304032333874475373878291876489579804662086502718619301122414506785594981735207107370057389540902715831702043980262674111073200062483459811170905401559384135194357877282027526619843610484200511399371211742155926683128978689913642627489372949300008392504457472937651529362564703572162534901358524444224589989248947292215280673239690107848600654978661899302733643784231384591198538827083623043973584764799866568209384073240373500882861508970983772331864179866191834078300956368383915925342907891362551308893458707869737742629107267811763586351529669547928549604137219594003531109290746985176143768524074308558806007547681102320081332670793496668583781051283570000684789650276343844773831313205405105477618088121722346553665214337431768993509691258839782101665893859848211612363041025559898501619409500859277762063557867254406551145494574980648222670977871837721644707052594454566514495847335522204526453590709355133227841283873473055589516113277363240791616660906119654430202667758451374428778696819945376705145222808053650489756570771925584958811194946642812945752270581751317485884929893462796045738996292990902613791859467920057284929445216213981980207842733869521145185590216917739108161659031552958075696006135408138787989495962325046122087869879138085189114244889865208994822662146062785599291879278885042034066640538294647613137889203782018755138801888799735728124014803966056559930506214749227863848579487650676533363314997894054853650404818359328022586344599000963226754789964970936295284483055813713022734666971279587123169450164726953244801230301290591093726089951244055620248383413660689532806836893049226763547788675445085450672476220970263353631221082502399437076952468448206071611116895521980519658740881928231569052381522073286278939986692149001899553154449570195676830472697234529281578728782188420634518017289443103249464734318525801323943876547496561800542507503582026916592202543748313244532217180450775394648983357240406357119210004008115122204588261366392900941837020930503524343055259458953655438395686537199498078333574870891224560105779049566480110589573297442500111665691854111337186660515005011755865695086866261505727204820510146268632497238279727986959748009697234628475183508064246824702136647571719221861328676509942873572107127701187898383647690177364879648306717329072199835015262310882371032768779792543083930176634172329110012851587729341109020937569474137839797035326444811656792210597495872950892132030254784361427700011086624671763176602337994411246358577202884363221879808347868548398862150016702444219639809210575377673558504115421762048363164707060068858242437599563387993881896170919718640710080760278889046117062217340713441388927868540532623850169127037630141349295490522144500872875503915263457324356409733367173794073138408664223286972442295039353345871674914845328407315145142298653517117751525607688538463671323136473233593621248441421190928854674263645996536529416722609463877814089654411939735081999128413104507282537361967435983383085005649733362572092177535006788217178405461386435787044665413609401090083015579948076672219520959079570712108294249521503265451976936284167435863307476477474766036537431960425588707924501014030080694802354549400533381991360877673629755711452798460314329729843510375194988233356273926008710114473448932739545356042635997481886817083584227434766197279214042210659759910463534514007281766102720143056015153170256629854997924869712544037473658213776239140080709753199779171092066523429182453297925343524419436172036208022876919207615152356837186541394959064697071961645780939703097701241537238636887082442748521080887709715147983268163361071592945645154703069692558245669525144681317785546258887228666061076845529342254958328576697707091758265520998370682575747383531527845314793643866987526741786926515960974254380665896950460602581791630997873331369458765337664168279182151885340857199627906170363007158470298957151321132123531542148708445157258779421964299550244340177149647633030086488303743874886257871015090791871226520090012312526423127543264525798875781662700526827087206350203757593604867749246026141415766701622493449523590761615147630354931684661720886030838123714683451262633924075593209426524558719204761379870067198407589017496895246101933767960595611405233834507101895622974100378266652060059064719282194682748070572322893107480665190941963483311474336335015264738354361929123750411626245996080073528856342082288805932059243578151295142721511618114202766089157140692264889290369727924882366493610873068247333881806628831401769335297266926499260482798802123831774047102791698687843389541333932491168115179108771476216492777344927279607187103002519578265581031932818653831121543824099195593073914577924185320962428967383887184031922686698452845502775002150171720693587230794400375141598952345646739365862659328683360705421126429455399748590128345476677273122555018312127214401227428528801089511412585419420310362682307434401267356932786273885359250223717881580692175871086273290668544126927056888041170494762117953338476509611565989825858049255905219652596827271386288005913670577845745074038796600583412916949555812786200046193914120963366133262288537404045891358745089871241662130825936850963796585739867807286886275781715001186290094740733137881634996886701712046337079028923369591770441504224796071111486745442581274189085922389961517275449940863615387795332856017418273004554412512951603155175105546217188082324905572252861328211765039997255138004239240420289577652093322127863324599911687124765181565175859357384670209333370071573857319079137476381571466385702724790686936098696932796800328116387636831722111688817233065702634451411552460678412674553885996796679764877414360250031794819667330102043476457723689526809107072830776832040266938756486598620232265977707219602752014740474254108008036111999096342993951321044576025888998614917653494325451805816653139498957286878332781849341226456911506789106091166771904436410118324135066566519431736409491808129910608241970939024229325969232184243852631962547585473005032650068252694358519351106532921300999189476438954304878583815057375428506915331712294719530689396097271528290311343542622039120400186203168322914973015129674927996525043352951481604308854476831480761968909450188014605665075696058864740392637443831523088343630353007978159771833868339803499686014388978136296188223377337839774846001612926240236862400032990982938525443423868484557807462571135948702086643672795680077130221660190328866898611882560190283929368074722931658488709001161859597708201856485718478237986562537899864566394203889721329270348733326858632375262389237238776551005100012830337098689152138482757897591788091863511089588951167664420688120276870022957498296834768213118351493604062112495118519206039115313323084267292817850440522597793645480037010094211087085659972599864823395282592645318223303518519398291241255891249742586379699330624772838722761909178829198261667349773699517245926306736027705214562060986882389884323820174547828450456932134153694970236083630264534188599276624527574113801179669935438872103869150680306900059313707768220872548709201237181353300336786409542355220464981804805956734259704373693840711292731644080839229224675035262240161392138567352931848365656428510161284964976235088774350541711904798099276315481009373650672077822967182820998774370083190894572505885276317350914636560866897332604021912164010824081990161691004798106336389278993892690645752693155558954991082591615374916613489941538938530212299366399589528730268926493122228894822551691390572705253133135342678734698177372415594311815951212375354660915276129362210048455610439548425908799451090480799575113167827080770371290965992478345198461359854100316055922011576052931709227127889021284562837647246074392072504615508574926363231376567532737052067709611247020539382380765268705988278363353007928938086055065580743668833921460621303991367126897088063057043143994718807388283006319299603948542250150209883839230109403000835633397760709778836804292782613663414128447908803855682798784049629741346888417084871144613956767749504452849980733306515514536386101043149682489201718713131267619480767042066836298041088702594515002096204466979114790773486567358147517025160321869243143290313932530928383032785481941986105160766593090191458688788384881138099098019870778962362943944104308505947773118830559703046506708626131385832025575579175478425158508835542913437631873869069877838800519454001968980118031073539491463408767350191860460716727635468905347434338175309231155235719806436957085341268197947391693689224578049169429174430324286931928228789143681349626889512429512792528674479308406528104020566817294189110813115576409827717063648437071644946859994311131148624303097368868092357831657289448090003015186726920685930847223720720192476611151647554865776994524693912813077491051789835956631269863786631538138561671364772990554763607516944993754749009013827434228537601597682361535332932899299889388216798185694960886511289390415505144453800457449385376765487411903596608252624458006927669832012130017095636279860393396236377931397819718667274881623532823468089283001374071149854023977752788406616139219528874534616357786856679099060309434418861678290669975327718587639388999590764666278363573710590234686276979451241978168001108881408446868386655564068700652097634551127621984948721873939399199306252347711100937298331388428478463495466669880910191059350280157790172057468214305664215053925547841701624605947722461910848723809538238476194234130345565889820227646564370720385472956380810179015470833231384358961799368744390541661433107093408838816327428677294258094574438161097475808247175621397587073781607704114929078417620694608310849190500847702711908666840125767133821612398010668906547805890355679453745102870877759479837779738286412268063581042796904984013954960158555337191127212466078499441573550287234084473978354739845361011122272622825752314045530676349075070280000134994407239257941313368163724202796685691580932013792750290461791371021035665347827124436478129856790432074998550866467904195478087085367866860271871820633930855039222928538111310556710350785488230923458642468997286471959876936430443053447616391175329294034054366456977496229808683010735589836108047392801147126213278232171039650697066012041033056642210683844794853762556146155042551981951229545844509440077718487241907723987927100294804536056365196007196451741773639437630711993355741012387328676531129846592177905315337944273046698595307113719221260693107197592865802688674985131902813216728506763221044070982067969631254987545278281701332309599742828131978973748360125988901151183534593628762433988464926889934973497571828955463601145599637762431485296005193007758951462030972322992747550880684851955266464482191004229139410689217342081943424135565562509253500702022657217888107532175256928211191532018295222183771775068486511209919929412699434639114856364211154726972441908794711860029638025987672724266856610995369500412992796338021321125238162942645395582004132362265333413473336723502884550566415342094533034158991887001598868864968540576582760385553291995614641656427549997576887565867108056740289308479305352099035572873817934580660862561510424614123522885360062936470976831331958842860460569347708603078957949810897467688035310925326122405196857748573507525874618754413477589176316828599505401448383346813518217519631715757984762152832318998280614615688017152306803284163487625712552454682619736772573389355621850141491103989131392126561632683743996186311756931592320425147814257214897197017969252500895578992789348407413180386097324799756658787558103692661961110209649135790449243939375583487103194466657952032789594802604689875974164441968084122223212606805602466598584211070173292871739665021389131638096929798267815298748437422348744785996782958916360049697280042832973284267763738443479618678766198821171834376413371582428892955234209044336411806165594964016540463906252557673361620546048969367219696704453700411403120499672432891347525192755146230205460585685943610618277058872213276745412937680727552720458432060091974379122664472191828264138935800422322877250777794056605147876698985017463812871778656039186118833574099465473550717927365959224053302474714305367810247171994997695521916081946344810011502256328849304730258076248347684255006791130657105906662276223359377476647546863762379727550294217270506066424634039334258004933113380813638615267366350646734444738354648738757285881172104171710627202195095901744614435816788684381648886463077795403761213958238444554683291652698140606392282918352705652707130193782871863251632808431907783687093599810040219300219219454236643718990052423840786266923812773364657003874890217558377121708919386766662259314323727184276670664650524330938125330720704454958095559902441073167945538964836225768776633646102401208667525922440261287341927716678337720157361712521910465630291016940292598554256092532806674009301771971524145834337575526086988775367616784329279194655892196257332869850056965833775340907922123496860632720936075435252316664163226058313191490315944117067037759311058555984462042120274143803838890307268028926559678149392019897154764699689701231777503707305738356011297672815904685639919101730277835543524778171157398540024113440784833873667710386152563888936941367391335711860920345295151585951841257731976126133463817125582200741166254451050710627736062301057958172307046022825564614824437832207096626979893889396524545414371166035019449000734550292873358311589540141416153580546132270568194203816632905055415358472137818833235332880498205145535707192783287532419160986007253719524294192802806827285134952817518240066684610307014213919571019265126073772126351060621886952894943946886797725390239925679809471853961034030273342269872030410699918812197587892851723674797525532125402683190806577949458541569436819140340643176828916080543436681137342449441954972638409730453949724082774084537828385568083296168757401243177877895840503634646703278758747535846783967353981203792310680722428454143599421149654299688210718019918445873600022916808135477429659853458618307463755836780539633709756151640911194701298142581709619948316387495623690357639533500887236474425397258832764173342950168100348750024397277441731064964701643715664581776696571674486125300993494485114716335917209140406075199351084948220624272102910407603071902904028330681754230131062850652141112922137142801722653570563787730138344049095018666739223825097332734391026222912655959460465854062562869999681717311859980363082683363243027020222476613014006880912175805514233219339126374204631422525956404793066050617260389469445073913155701899495108185023576019713912945485882413978287272419450078962335942765202305592788402188257103031346548381702770347296308930779371373113517759216546329981560655048522320925892280170651482017085020918771023319291537739081691819280750055573647348652625323819855638410033914470415878669713586326158650189408760650860227560661184098516035355621013511546443883258541073739776229956123744904979207501625351401342295255274861444546579303276407018579074330125026653914085832193541494295097591833393571868707394836759930347633036680102477226611979080187964511286653099419273100487671693662923623021528629329234268248589767748414397361249377854326353471953031683620783902246228964787548988153949146250505562851877488500518244245944695632085563248983978077379189913787263436932302935403497532483960324764920583748817518097379001157609416981139071407655213692823614882541656365598261223847129738896458025008316498019973120217739905393701968126958036533021409388156776425485192485230087674852326862988459267116283180309381377256947104503951057554656629405383675852921281426634519359637983755595158284789792718790907511599567759681660237012921953626703620087673526693158580296024791696595517020930774109006057590215741670311433477031164327912045909563940779705334018851928370092205641524141400861809199738066744420290803802497077628312965274871750581755030601089535469658401755547776482081300781479779550331604524913154056678596900776519550928645185563604435989525987292482201017790401747726982110480696096920563534417956310556384096256172640277417027599868897287275347541292777746583229591607839197473492710329243473221681878047322657658609018769277512118955498295969929816102254380661643572246683030714761491745485055122902403062089435016930427095730272896080448430040131522134298428627341332654727280204706943782874326278676635113432156202055878348587984977730709953303174164965600138402738704618201471346710775711808066136034826714086966690909926584445235812908852915526127519336267432146845067005268962322810017506846607777620115088363659288946673885744655895959911481753706615987034412070823717991042780886115307904519755350111907569797927511512596638303882910116307705419174308521620745458665843783447917264401387890214304758935459194717043608260985625495135178680607299047811088767821522782240361582698867964589317604923177685890580602419092545083480068122995184482821408810602742876851290974310789310813869607352860424283893713592649804076953701776308840169023144673170016876864118824536775592135933892826707850506593803117553527982897313956990409358240407219714157605039701457060164011938709616104928539177237209543909422707699448439530177041764690322347303064811566385283431080399349206826880642897662322296671194409540243333304418619053446571006298141681047994233142824156549834795267809975873362709486523576585359813423942819390870231781176533057062841934161723346735133739399864029154434594809423939535248704938607358480934883702222350628570948647638209062265317783136705801363231014935399251586954897561719991590596025094762039086864019626520606760197321590411770446888839074213822036800097766541729049292752829884071977122612913774832067557396138979485532557695186929102369244658198523259992710049485074861396824690885872118200013248653557670483987530042822914273486614205107849891422686861423626892273111351958524597137156570752525221979595928386658063895684330499512370092719103445518938140381077092476397219080284209483018540518957138617722055287544298520637161689899071946787881102620238479819950128713595678625495059531716581259817949034430477159524600018603521832727822012579728774119936063467069343529359342066534259880109534077115029107661460790109036603742909755318298204301360588645610910769789823521300114772227805477336919275798521870615792343623865607754710892036742532231962209786949299586465753455566610700824323938950770590930224738248698874578194288564766197936073483018721713317512491715961810820399558978762215134664689245233745158892259931867727356459323001569327937759954491049252238114444518163506330675084096908086430408325549935389681744966129134247881310959766318326836554564877531336796095785289730120705440948275057271799734192293379554191726108489032004664195200924844284490455150095256809106319195530546913716990985542397530806125916739234367012223467450366714088442524956959990096868819458037589577307393734726346427250656792036588540940731938706294055216932149464239439585731743140896569422375058504493295206188069897434616943995462520971037269811931277254705922797349857990922029566609343166308102400826979675521618194921623152672515163866183230769413968261836876886085103294432372773704141336179269685505111380911941191932785415847088097152319858207772571397503158361025162828342939847754885902012291172920515548184289429602420027139505704111395360818364864843394528901799293411755622460394413865947443239750300898128019730423174574180085784309575775493705207110485833929757826277633880564128563040015679477518137420026458971444383213344858943718845234380505940592469157114592350671325501605935817379189340041798061018035770136940999986867612173162692680425136131951234655474090500325745408716246189638379893116506778323834898003547334484913227478069699073179082717460317978513431375679448650218522351223791182755996811459113800369866137398689670341388630125465006458423387625329523783826426543222523760913485942604605762508042039514999033713080303753227204452578905293525389335779883065424779011918729281479028005199624694959995192668064597366280330229388228895322537165433694091958246637433197592718733526057606221122156171721148523282043630552390823340490319892097815976344449208394394207924375523417739553939179486643610602071628042984978533234239191872775079464713646672564616681684517355011515621858965224237160295111631442880331218019737342898535184005150951537248103120280479139597587818985441357644280705374002178302620590318272230124004549415763447940722086556325846189867801745024769968306949370221616803154502907846156549690918913570653726827370001735159601159547970460586162204536351548910634179222214445074515407703030277004636400831115955059173902471384515057175430577269047952023218226765996215233989595147913145903618281033582935104016224553831693884634611117731439414732028761218563820925857031671062201815093861253064579087111471192234151127877369072646453719982882536390662710222976286492660253732814044469085669634368396023196914951082180472186954627815191855673416978138750372183411603626893973485644381871794573339263242150374651971110413777277827640575243977083711833895308577546533777344967313662419012505245215501874969445399866760692092552987947495781173832817235025393135716399986539502246943286706705775965349847238401229788125048435867394325040729946723199458701578668196425807313368368097520425937156838163776486841267469217998689631559441741632782009808579812028298368906019546858488759886606727803942141022943121312848815791208153488931820181466662560323498701503199362350361148944960424656438412072129085576122976001498881926232495280543747380255931774094392733171375493061711473736063407282281854218741298143423197178220229155528971928245110022396339174163613709885967389752159195572811510632110927359131478018782229336959292268925541807828286356275160985591573245835391675689727088688602663328714084765414007768137427592245773274980314057813830728064116888851519505634306549884536398199734621222710033544191846634692643194255805939398299020657927014260060293905149220005280539732415881797514271379117701710818213066449141713667828286040001559682314929954565688843856411348391498355772262696488078828449263134643248726229627265157334886631981635939131278558249901725194204139214432672759890156774520064443627603928482499111754822650951286418244277575426652678430156749440465121882429670885758273820526387801282822848217567472072005322182301618139585498526888944656568699920869201947866096527155642252584686852338314225340462089753769845224565289200332448719366136594293942637719187296985651263892581437373079481039001754469780696024629048845093267656273393412325870198256710435920800509600149544728788640103462076860884835923496046824956299316222455381067175480251212803360183848577415455849075142880188526683333609719335523623228082292038697970680411937683248626351320946551241304868832357246649855849381262655511335049581463550063490657255488017142094837819379409763543457481444962317880427909704886686532252238115224947129823317334275589851990434781806505506030188121079396851995140652341319560147389021605810762482992278336897474985659515891165112401139607198662255930790480693956202270162720816741267990568394057731366832969347180075357678217111107732791995910323865018317746139409195571888644187542051086471058452068906066991269930655786477948611827259299493971193575341734274132120180050611159317271828095976544915117160314606353812910906363901849352573392502111272433892202737044971708053681530264804092463619581196000489134569318409188633824861632531259977935512706962043811399667110874810531644859064035611842178597692819529030424778344332193035639325513210999634777801169044827476298559433040257091757194408359464605923374687965652278132361344080454761173170750061312498250362589525914149193985366065250152508603521251612576349924194076398023762335323548393575729872939407618032838486911867105421469633783356916384242685805074122931700551635972266688377528733114660271618833468317530509282368692540308310469376567288374358901451948479166083026736376047049201515384745417739754795989366443854262346923303287989060778133927748362061436407144044666944177579397870204758528397435646562272099166704282866574486800824406893290715355729741744156531583240528205037171076131581178854334142166005982026878052351389791531438334291848757484155968217912508406960515545121496811711057824109710471969998604576128168993124696019222373594245944265078964966246813175846411966695202112088732327922863140646145594535994491654692945931065528709472336898916031771512389193990355092134350351560251321757010101756596283195229904386284574132162122633942161879390934444890353791468075965998056227256170632569151535924248665512295233053976019417621610060903331819883980092286486983726316076310627186505581938212787124359331767440553779114637780056236107351670268946107006149346650430350231145748443160578282101353515329492230122528362672643061355567171515218511409318942505343538805623025353801298965223829411688861493823402488536097966789574124648911954433129737880467002678519408561690388101182248924745561049496669743838893089717564143044312639669366614982650674161111365110847448756208753817946647591252827668848682033847786115085361464135393925001090544933926459107464898727772251585301313315239111777616132474082071937033265386615240977992931222042535956428152529625004319592568531376687787630228137256967115930443494291538205040756583881209182212930305444927592671460121432792116755001044437307527374663983224239909219587582089308800241724094798749268387947887129256329885331362667077217731269079430661779651272173561499202501328319339214348326940236393923447011080338143870392689592603902549544680054997545813631634867510989534136073383792082027294142921784639417503204946604717816022705407327722966448341037536801108182891799234726039359123203046726789835124097589186657569262753861379548239227203063293789835740004440323057788258861170019475290504493332476663771449472689133880557147593326661203261267024984944069374073176357209479186065568494875827843921706507453667063471669074940757336046356021539864675014303437455022149510217697246727705790537043387561531689099181624126783525953932161164930191998198082457693421004957242761923217479753101974799234904476376568285248548460961510205933380953850793034733684009576840252360755533465585675106971925387739009647529261139250239089165464483579270189592878542946647133867171103000905879187290743422416416037550509437861908383076153173766776990845669308451206605695414692900815868012599596176091806051494093756442860403244983039677981318686690826013214676048280850580105623846963134544990792970919942744268319273156393291500219396562330544571670759786918339961313186070524627854406713882604212398305796932308268930863983248192406778798630220079855251589350715024323372902711369250567447772656115086126758250243262030149792696144633210687153917748346710263925145573876791021475248029458543438489557381447144944244202256624818591122356494383026591616201406674926129243977315277682146233766658007749238913710354442664740498371741582193072794227128160372275395919587806115087101648292147801013554034993421332191103200566130070213058577239669167002633205895603119515869665843867538180219359432108565733940697314557972032422236417607019914561050432652537934407512817197020954890505714796214930301293093686794233755396622971725612295937636025129803178706310186077112061087214196741156252322173964993277333284200329631317352215841784669478458139592245089389771404327652554254164058899072593613810992912456316367099984343695384778715896734589090487982196059070574125531503825704976608630784567544773578202039501704580991800138735209406689362260430948442592911786880195974566418246773348318840045156249190808157189600806748551225536950521876931470913636250708295460431158636802283637467565023905750758151900551686136212004138299407457993236661243469064970722268178180570120162038588329557590722130854134504938122694511946022688100451466491284696204793585321360085826112346249869151645117796132855667000937035230511025563410938891003087174015150551137219067986400803532009737815024640935601073716654363578470818393743409181660478602602821165923297550072046426200289119469374798220246171308758101557599887108911213515590371084710779981830425256749313703603030972431325811084163714349523037380214993354315869752512906549543767468364198007381703364681320952318730249569455320555176777782765387105538969251439718364538331151576551013795671395649215264866614770966050133186732692306052636748567037455543444908760905949093504268322069995104141033368127847191223665871751696252169731936506758931681117192272769680376548524800894722868363085737215660655007717705440157363504167028110422114870325071303042359524208656511873450387914393041147795339960052296250995471244776943154203121889287514308825379095040075075287880608215364168226818507957152842035049574615784810524752289302156827726550287802798684736709272218021767116967302897569007143522947331637650700350859554162635028507091763121214842293861452012389714187039112653660730928086850474733138378328410108057512091817890728527959860139640275389868084731350611021049081323447650480505652810281670046443071709706021468866825810887272147749430122614574624342152014304173057347252685789205708385130484776808129353710631852952862636504099592772334288519340553586726983474784895000242907480215453518636358050392005865092478569909157384359688841863605784282846417272863941375932215927100787519078411115177705570590914055185166556248266430553426868065962867133225832633209397746819409308832442331381529157409539537834109010379556148350023255333841013001846253600669114183540130822344364497424195305371936341275267150722198835397607119673239517593078471515773903117416824946206702161844155090970565438726490508376053841968064831868182985873561337265104675760800262955715204106514707975300600938230491221277597110140855878062055804234349245035482949214436033906434356800903874266285149425991676464719515724273064401559909139008528864052422646144249968460664176941925989330353513337869719336344343355859632263578109480531078193911270266617552632017891169077664034896713945302980365714213416653300035574940717007936747835884994400456323864090800456413293295571878066105319782375611707804880018976595466011717589305977041720007258990778815202212231108584062715582043094599585900709624068745458508267324068661003729056831672756374035120388138508937085825626501262949525865825242897424758134350179703791044486710882469737776032709051154287986653011192266256345918008838184604582142072011496626553148541633363524542278925024124131938347178220574556824762626656131379558494238216567009461993173063112676215744016163967952903073934054852568658804449677939411153958916683176758568996319210543509591322707656780830111352080428525038725415285359848176964986196561314822802407388248860567305789337008241048104582626432944263304406244519099582905283052940656841469925977907546163014521649611227424520661409768478281288839012590776431078153639317003956790375170194437335064424821523928011237419659709074071532344671497650618392246826423564509402613170791229799511942932175168209678743773782292694625471629461966915425850063871474113747964727654668599825004870125141172454345154140578092683243579855152935636181907082519344714669013829200931165017150626691383427793360595276831311208933553768713596838397492443530235427196322311858867643400133354462622607790173243341551101248156693965458242685576565561082258419346041568774012278596695589248280612508539704879654485209774641296783481277437506378497625226222438851397231773477184859108825274302960355634104060076779077651697837361002930566542421493017500746616864916599431863367338637795279753344776137561785624571631177136441265870917812056547169692967010329024123546332308814248197582054206573101828137376196914634141083130307358141671068237290579105712186418935719391181212626319061530981903478263622161149778235330389938497710613188260364911908568863983638408245301580282222803085229015049665175129594754133161889465479400408911702006421902678882883097451943776063632585589615322427392564656587875569810646565828528634282140889455140747169023516914257804882062900907720409870420832140873781195406604994311334561846512297936530672601546872299695980084362457662938268273720022190350218074534101846914871355987336173538401583015539503495856156445148365880652298221090677625772542903855818041827638222917815477049935219894356512088993389060334133429718900157774836760020038034565244350430080278164853347402802291019112768984986848509712466402507061615373926931017686357790001860831850994052098095536369992958904330862689827316721115961893851587901615284613254652407500637488283326506578446533117617278256140681298530857815620622229615484827658101109468739025600817497367009480874530715517063068431647041965300211110468761863747511518311105032676553809883132437339343335768157829060315769568423051510138915774644907325105424161161855829435543889495190414151742273738024501036334080177565296798213615578152653517990149083459764512798910298607697938112140591908507551034571829807401188318912536508935798578683817220562378709146533641766035779565615208041182655247836349196727640612860158440329396715295989580920562635769393214265048642841211475462111869417071887688513256342697307096094471752780930616378148799833665201507264604279072385936245299754697604801275222756514522585799253160432670789522914015733519626394252609385420355750622331774165417321657107951160718452783484266968207331410113338668217895582685330395223079545053691606483850717707416241764166726480053262126258781485925112630545589961929944649062998835038867398913751120682689511149432589890888278461093340434466459836903183947499649135481564033872595184827971179376487469809520865227628334744144751515967140981653069712634590691779042213199955665860080656102641702182175697129184090199708953549723936112217618627091298525144959380020992795509372827459406382252354928060352316016467473045440303154992928134309899670145906047299302334851125403030514051040131316348678111356278169347505883412448107047133013194349261049572161763296002051231916899397790408971240663411847112535980874326793669231197966079688934979993506812898743880103053094741419817771934228828539760151352873054334554581186822755940123949398594998889638436120909199697419974735158308813640415607752351185073294615145325129660161798072312273455462026945778552235845452328205386996534936583172387774925461492627290129576918015844803507202389156653867394285479427011402301062453937034834122050558849183417808569053810111710289839517366572431348871600992023870940785398091837147511304068352098088721306682199375676621785433125222598922714090160429050168084695546327157656759228987165699854792117675132656499934801138654015467888110971549054906657632534454608013931245686284872295281857081142544820932153485842007996946674888231599297416628329648909059188065597975403531323807382204134526356338901365469159072030867324921690616966111262867305409923393801818667521758488819378458308032182107053726394282100904512722505266148236937720818931576226658991632062063427274261017602912500554310207807358637801018726115649696995169518982505947164770040684003690615659133985732808056653626123965596788381642683707472902135153100262023574229286207051168203743109800244313723922081738892106566359689331900505926192510732835624899956659029959743794321817472723232819264814577071532777047256386174160961395058886060145349730816195556548249374545921929120930539277186280472456260125370180844392479883809956040580005768522291868628233721498448663236320420365478841928208833063715718373360271973700939864614660679749010628706821911492832214840320387762400942760811285409336711379801229367669712728538981686313153934609922032308003848018026790573527705917340708538834406406289762211988472361099996798998443802756188724695313940996139434379121967549115398001807681742440539933994004521659586039993482946140025115566638496078795027562877123527535193183719783684708993167332948223573621344334935128338657218219656008514141127422116828566350103630759365645725984942257998879182795553153280637215812618756789726086826284847145987748822340578824697094755646727679730437100821699597022446026275753081639545518409806775100281708655447267219659394014213841899485884047319173491660256970254181913440017585957852423391038060104055069693829694239019786300637834362462943812357740800344914199397991099945158797246541718059492293636659160158320799376574555780126370542348622252397282065182000234798727335677061739022791270380901890785764011195799387464942494385601407846764102702414217336325740972404674227583965093797724066362393782762046543139479758565254162298786985685890897195092768648093045411378513600556564747261190215929096395964802839879907828152833158767882660786212969234139389028384453439539964938432838385295756092425912536120748852030325221017881672778136317890667845239283181536449924519927805126904167012936530232069052152036830186478733409320730374946784269262410393878536934702704680321009870186873332291696336324111490796022316879877764260631948625783591489394859681406678361404111157475234127765441468636470264199462075165724115166710021213428406453556245805632891886634857798971796532378739225192927474587130140705758803862057054162007241451678749837668136874271631349118478507621041368556681218263356794830425992956459193399664889908782099677197195588557613899503929301654377258526726089356176639430510021642965679720044986037815128053040449239194782946455134030864591648327617391937250016876088616531591625477361021984229093235995409062161425144989904168294847136772571441126107629676592863647852902497732443553085340469939437326791615727983118900114319033356293905943126848503485736192022567893735763227674847906227919224013008922116463412487644153074677898168187960186268317232686163270832654559708812458655209062719053868548684089145151201913980963897096006459153002414860602310203445646136104304179170674179642071152361058346278737693099661375804225782159873342184911592845440971668956610371067180704418072405441800008828666159577626071216546140742140097633479391961312574573552886089092082362641676402578104180811328500774393848067116487251013670638372874097258195742295669333450322902622117138888097589400278199817504176133648169476533482864660936839184968054213076004398811794504440513471292669821119010382039205758285918320210408706607916535475810585640138837445212268772926427545525367517944065996906609927045247517746737650174563489666322240536163378165201951234200582691383167832866877824876728763677526811467308464106430894808458350530397590219654739235755406455145578320755931724591261311328035794422855374561186456044068970496075519952237556847693057015063692698380290808478601206440077634918849854123982885146952813239803415783405179918839960655272027449807184964969245181399746505200279387069010546271679204185589148145541380533559243013337727369537447890146904681861860810510868580674853675804664725356645978869920278633228981867752777045387574292981100614933560017731590331347204267243232809788985095501185448987174091241173909530794630543457275540682230882656704245786060166529445876621355465529504851688364420021355598049069542876157700032860793511302710828773410231867163952197987087188498812921814435249588950205653046111954601452752901434194357279965499323434720735786069344514254003516326915210392920490911655049972367043736106389740089268463282533353964691199668164629412355770937823362658384171886931996715810965164998346458098036094043484612940646010585062961987834966607396795375682700631288248992661303577576380524781387040391065378575585929497003228635513449310787923618370925443284444678687343564994648967993862534970523889952324243952666690163953640082731595410995071395626454076342041794370196921017976535441302598563243447252156687728289594501319780504431653465710665791078295733675334191155962444818610473126967688666394764347617063940960505599957028748377055901237570188268447128546087873362009104950703209840597664718157051677401947017926489946394592895867106650057875397647812359860106096582284174195273674939966697623640572467327506118377047156637743297621836349892869281084656070997482479800453580450031637759924122914775264343345527277886146550563810672692787041047741323427646322173135416825250907988268587621836956198560524262205281976848805109380173631237991623129026592858034302666633244824026490887473497616571029679661850301983063840439340949279627935386208403648431102693190902956396573245418782601888362388240219103424579432205530929063839950596850552986845448277516928053809201310649101817595246672998656002267134533087477850708196609257158676437372979483161229228783291592276330326040541391694197001423919926794162259620665780130247005017754831648723912418912568466283530316003228665653306145966903505371714894609109255123301458286939303472733509626585571251469320167681692777439612811057799036321912686105556079769868319830831253663608299776491014433536546478962860016893097677262569086797468516647969710615638176737176619064736269106083153165539971819384050404284387307212206438851802552820245738879966856607742588539768844236989453743418137300453662598576602473898668655051421698689006317790060065505258502602840100483908724558024695497366452433780215155341079048341639706986602020416161550132481250666661613691450715353348239825071166866596824225456843364371203727133896805167633529755553905078444681961381970714806530409824760650459660470616433167518397909867387512073913368399833071446709828170355200574146865528848278758857754899995805200370806498092560365276329377294041562082518583981981430476087035840614555977891262225481019232592987004865664978638812273817559713978514194327382857231911728026644647100398714477854415619508942267600771807536726058016643276471322519406977492876657191874753824888174597853674185107427129909430567825056842626014554783367147752528619217736376255397352717057461581804101863280821511047982255333848064296657364537372391487139557431830515254185524653353929725401458410049685190245191826023728897232012840082369573461179948011168711264383712762729266432606205688517562061819544753205902561263817771401401151763150117859155511025050003079821058373741439426950620331989584001813535824574007861987979258807495588031728626437788420270827028805246738012488309768341386242647361623894611232802237302424807981694812145037133984147956645275077590589655174435543729455697814107776764164849592250374395344056260298023107397078111309244873179436980834787921213855696900937842608582789628085491491922920453997090725894650020455019149449797691310931205674937164066374064146193780844606706140104393284497822018405523811714794771138410325236182790903694843857099091774626691813477222479017318487851621814981061268835369390365193359937758688324651495661213350444366492320304301841642417503395681389662191706755366540457697999436787310821813849515850928627200713735971281833506466574838406927607914516208063528778601729264041646800659855380051260017562728515399348508397938938644544380676205291637153126971933201400658988664063355706789945950602634482802888055294270913687551421797453675168270249121374387010999174640181742345820520804637129510511778811877975817247581056963854326088455265948418321824403073823513844239213391678338365201362904015049548729386046760157914841228087770093428460078365515700654583774043126605440374789718072860783043486653984587968405370186436766842845391530274842164978194205912958155018567612980959240741086631829090416105485908479665859305960011464669681137450008635075431960591702433582376136265203732977861190165667771771454873495633550816560235663113484057059010372584145242482627559418416131532009439342779200518920849598288995320706415879140185572861582454087655854406881324239227934124793073612035515677832642090129946068806865498112485819389900377276882520532367356243050302491062855930764808928055279030856324070829557419745660423835782439878029119148735059294181801080409910699878146847073204128872636755942672164710903498502478058949960357514813953442497718310009552857157589445686483693339905312327454524194580709332112408438200600525413283039894206932336691786970569933816686870242583067153303235922156196100837872211964184207361364202444587018593871242279488644732187953365133926557560457705379938192864827873728708237980225717619575641313185563223596961050590442675312767258879619176498220619209680995123478051694094386345976478809945816462695402016848308759188868475084171867418702791335843153778131679494504465320322832964372803079413070565655424869743088069132815768652096542798187494217801551074578854553231295012748266415996687860186338320768850306531976726709212278636548607254083101454145737957996333185937043949986927956702951118292974765234445493322704651616970748850960922250781333721740423817104953083402074828705496381228768108227311950018540793528600991332265527715455648568126800556372547182064398843458963349849328196037268880447099050647128187107302436325024424359414475645837458398581669508072818943382605174235571707740747937229518964243595619219603151284715063787325734959636836665648696663224227584139248516528192761445627765211512312155954787664688562467401304623188586033637152674336832702136263363834476131584411527849033799279046561306236764047667852075604303670142645071899025878996416446037552677960994770909898227212654600230077135265077933538513829552820487254089334140325107577056767132230244429969193211927869804471116329887298696495269893598658297330907584765977412126158582055269501464447308196111954340567065937409371850669415347869106529820327046038388613343246777782790473263219812184620907782675565330571717209115545845464067436000726676593725106815863552777808255445052474845567126616680795498940812579317804638375205382700966723065848239341516553213760598285073471360878444295965339890538924344971022247639395813878473870471753937041950338748959847310948661303562809818546936483777660845337275033341663219967854965738211250101005383593069061542545101786821050470772422124455709398301914577003848251132032051479324796665496359373757903036986314224052368321220706242238635944598186889640944232166887784923376812260313030473879421848556119782851645945645882271459410692171159141132010789041901502968260484593067607967938982847098371156626880595476410486576682554678007952707946548201350338764022920410258835234445769190948150185791620650955029562488474554102984940551476658748130073471802041923081931054324206314889328431977841934471707661842285921795795778670576881256796023661593575959860280241040835531915953610847200285386668701540071635719217051402001004018693054389183584143692325839530883593976595528980085421759633192723689926664321663102489678811207575047158989771883989932144221640077388035910447418956864109381303977923717147849451969510620061972587886879283780684189191504585142787145972368621871399329114754444659776820413729539081302154769273821795175534900917177833154514243112550163085115066780144366344081087415870626864241708648542662875014896246206031336876912388441648349014307499134437612328448325159769190397330390688536900244749583621086190679823679985917314075858195195654828611266200558084621190022485931393127565937236201899803129912373960572236316634677720333109082655466417301061226614509397754067864214055815045467183119784522792332017634156470740939786589034799733602777789044856844097864253482589727942111212347588826240662161710636420110487581100541544734934195115991940929402658440631464182605253407235699863879739847771711774905053773439027060303789575011734478204392883299490834249808294427135019973250721733580554333123293319386963506415943357904372588534443393422466722004037698281339457815434549960860560591920076906077275204352539797905640644604069192130467748522380281202315498280527010574797254226767639933717985532142616565547579481769703680018623768517810026145005007174638181229750865091272319353692968991848365624413090287327323197493746192532041674312974122054094405221947171151886871436326087138616151779182266284248004630349591939985270267529917473898407544813078212878383739085487253886190898256737606327316806802190738213444959626404888978004561240568733778476449411627339288315621309334149184402085711202894737575151841953082871664143266520713851568951766370484672478478414616798898962911878790842615310979200681474347290486389761174363389333916848232849804071470875239379430012810722448948518832548395099206324948166003109918664227430851602129784937198819883226404343192083009410855416518189517440925123162092187636177543726942936442083227688294055160289668873772480252433315461756754423041640293375815387928732919517594789265635022465134198393263751422890174265340038733814077092442466026080750429692632525536411283806161150736908364388230950963326177304316266961796834810496601360614909179905805751402051953209896135865466430315146815851725608766184322202711319606654649386246937546237236034453093796061356806549546302646758224467356977710038416159560754198224346391959663012381060384080375787348282367047847883529547100852581865687861014089850725800091494982910218275610786245358400287778679214647403003487906994886670753042567217259499513732722457112911444401171902244124451167116808911711472083472184942131279572051289921582573821771665246360197496606851500361251865759622823330047977405573106035676030044910682772254702633099716619356772785572373118994974154883122659893859410248252107531297849344850600040816637596609955562159452933772560379548810509451713271931740757752419946753313585911415556446348157560716994912417723672663927848648772370647439274492545538060328668067280573131051523319750405677261564343916981674300665700703007982376160391114009696660509321655940230177593586767472037633677272448613422330337942501696594642181511819109584323108801594181667272036133575721945972987826027323639751353876423716619930305819871198757069840948433766684606625724802535106346196294204284678664102394946112365610253750553854089085588877862246872034347320030447230453383348129343022518200787769098350548848703294378859465391301257720790889634651502320364246847830341376082875881084461380658241199219984403824385130772188109878770086423946847815762063344245727436105322089242109801621717521631277410519310224457143426052024395090436677475162067800537454708166049151943248576762907885390557821502566694256719576267538465709335167998537849396554184740992207608228910327246276117884684996159021450739276665880049242320673183951440822710710263227985854323980742916430784119712131185675596324587343330322106911060549249330690285540813967171421038751348624176270475181061231668615037634797681067909980500610526894750455791969120952135560298309748630236597473760298320411025308756370741349898836704685889001857221380806240398015944060852474114202344290781225429245182080923327577135296379684160156283204577395111687567162868555954472949038203013720328847551440499605793710115816424276724438163397550289475087530729015754254283240387909395801091237943652385318030624252862834386439670419645103486150269850225920766237115213576670214384267715765162295620292514663303997978577465422214006503516600794057568972545844462402568387500290794412118333328161251261912394624944138580038045617801485712711778369774706415674044332340939345083508656570130655609373875484716216674099454123499729870049854755484941682028178306707720026027225558724604949591651578817350061224544266094826700050853751902231766237455619209494938493120114973175843049636244549172325049818799564464169650280029547855068463299930794814061646876010411033083092834624300324267789000998882636983488116031752091491930286677588429559371259850131600538670960541526166534506896258279448305978231019181158808205713700039073423137724939638018169552152521957427195480804194417964947345382972660260490709710492323506467465654126742032208845171769806319284751601440333889718827724443243363261643001445890374909908193526699881290923214405107063557447439137189431636512460878787864423237841180885960208979801394357634786375824878217890915236260604978670442407894921094113478149439690248254430006621428807690515995206320953270109269980518252263510485247369133166485777479716874992846934477730581955565132735324029583279180266223274094154844397202663255800186721585463239347468207858236628478615563169019965786914783084642038636715402080347146020495494056801838927352479835777072639444187838145376313901841711721661354141659488264451103954602272988149098876265869311947757529957440985968539725362238110589566295757381201614344571390261580043660835295576749129391707235432455153639605458214944193693582987850297026462518781247414271397496038176485320803069547573071498075547136183460226644253414449858812994317522789177467646387425767817556268780716469016737791611989417414491037204601507118456078240673462317259461683500162490146189708474695175973543157093180975233754140859433892439545576745247944695306472154610006509444409334630915658827515079578060970510360280618978873205509133024125513115964293391708107075573875667523697777655942881891975717089682269540080375526156652757616624549169053134544309258692499743141820466799310294060630959787647277458631857645386168254622343484032045305408961563300949719185148872947748840116465859098757932390544701017339541623717522944084975289871375159647440370287803824343849176828555116914548003849987525099265745133570409544648278768750596226048801370557027668300671672611917121838887335644980934506917042586726608815379569259681036820924708473079372643994589662529456440914826033012002322927768656197226727768341402195977826672077471057232240138676599063682874328504092543971555480690493122514582650006394112323489588841185543434110531516019065603575525259321113235888565740735685409374833220170304045356823298939111541071355161339253120821768510858915745473306416179156351772999989849012290980162672813166286114284911855197049013805671534658013778533944854190328450316257262106573207742555542021760269830277280015119350147009145314171874870862897654340314345587882510064058713305358014417717066798500881527537976456812533100743107768164980046941527742497870985936054041736937628157719349095618744406564344038306210039062601078968537178825652665145480587817442681491054962876749433457935250570476033610332286271594484194069424977858749317114671123700520065297510638190446098434507237041249157961828811360820223706202207016435935657237937976240028977505789972428296977392637251019103290992261509314567082309042694375016076504537044368553486850093893448436377743259311471860866648575767730074681629833898751153466031392470077164305358857595458977806186572309880591625098528223035169745175222863740183064923177989217670072697518363715450190824377781434143131968869963164845331426375552688432181590703526021135025252617685772169891777511437043592728774294258098477282760856658978455380885685630970297172623241965289782540957118348186865948903224567107706644721504375037728416699007489070505758067930722855639215533044299438699171769171548766849283532575584832019279895921338810274128645163948452064319485823799269469040668079382740927543333994287351255754377470300181490176691176724523277280239598458192521057370790445368253171250525907112569932391056342127713500408294788190711107693966277348373520018004610564879933471584606035129194549290586001154565335769477747370566507409508581698780578414401832045752161894589566532388564747947444503845865790146506734732839440291633038727886094899285632380102396731162532864393373982627575222483650837127861188383844435861499795303650357279641516845301308843767487688964742135164604602337694435501447072672210787632479692425134177596538305598147594775401568905522241721458880765989238068592179038454575842954414598454119342792247667073417548532102997862925875665289471059636664666943798856904777071322070070996635277686051451746026102882470656540025012067003005350316064594207237463935971588484659484843758386781726884081823561567197221234355411301397473818510511804677908881037089730140053354427282704603162245497612803663028044371251588923630396068725414850735976829159142171787087433359443997689040398531542997575768377796391309280930723734034394437082617151125747166707195448914337025008200093230482272644840242385118523734449112446904073017903903784039408656621917374996983493504225478138448276121143705319570329759717259171094273984038352709862853596207187822851204712816206556190248330830452482910890468118242364543087536781661973958790476391492943312001660790740795365510338892109455910870724588630653079352864759154870172063221761528977929454173399963982107961826809257892678359207475728514435188917138336710197738722130550983232512245203102852199006736438618167144145319310476474534269104585978847666424933898130154247572616065743376683597523811028237982122434431759508942643898776760214031907118297733397986235401617746855989926518672133477487643885851602422429160206175527435767235969773466542345224985993587511987812272951872914503039324496025920260606172142967301045658420253023785837567508157552970747200854810643129736474074848261505223077404665486351571103536028144822559521380549774721960167049950019626816156020573786126218929687973299796724418010475427676193425797373009255951251049449163405089164113234735333462174077275808081690104405120910593253283979949391918888446237002733061963069309073745418722748420752061887445529149362321087847469352059157340336866354573572587097367517335559441967393392134366610140286722994606066294169218839624562293600237394282649426349029947976228651463814741983474198518957439664580022254544972680387174237303845468070174519336690415772055818136115672027446287790051912196441533572565006175049052501620084326548606119770807155462910273003423200511943769948459201288722229210286449306012063356227260692780651565691731482296815744699225617142823916554310471207287567707919258007911311537703585075035087971200877289774508289383075356229518034818753489384687882523794793655082670580876070928863631566993336789853548031894941130180419354233931095862890073026348235201464752945103296909045348001052984131067033842764234689119849693928024944501884060641078986270155104087054006363245425564985239603614394359813985134011830144247034854348325446991667576772578032592893814305141390078076689195378960502417226686167823846407166291495198355530110716032837916548900604683724014025435710891061328112082277681240324689433663978365469163335745952290022407646404347000998211304534396808121470809425526009090595714273083122354349934120510592974021780878276610319250250312287123242427239331541992655525057040447391434150711291157584625718229615935494139208018020225094736375087081472473282678531621079144224021457350259046035116179313089913063159290620535716779728969863220611314881098439004612277673009892994398983614319413641638222203007552686272708201634498515804489273360714367068511724975719151422338836514799379874910786513811592874133776177834127224193354066821181374147424921113687868932801299944862948422927656929507083405673638442302631602051722424696938430235396403067444380190569239464382143026708179219066428026768294536117903187203490371520565787881715458579451355086186905148190044455430236857165101990597988371463527126614714557571943181183789572270183806651408856873314866848883221467716870712096960405977008141957652723600451605518994037190624223815201733554190149725228012386547582524421129949298230250011628988723941037596535727546272861506872985425420370529019898908747478305112007112884105039245068818669776461041253178488278131822474121561971059952203646470442205964582648339042124662044680659786398759564417608512236657548600006554348288294434151390759236627921279640854098843642988974206083192869024546105153100677931833172388097917341500218057807248156087497971232800180507662334347076037014333002829518153487016375614919862261174932601921649964270696151329745664068611714021307544453862923429409862368931542514395445326155794644317984768666208157658137030463769779554470609994802208582796848889588655936825555744838951463132802464772804003753061474942890165911964297952619650470205649570705422515698124465057775486754854328492333749254407557499634189476027624325924440638217474854729941283576442406409542069624513132345175561928914233881922876895066277213476995751021157182400564900868090672580979720494695918054603252349501572471025087371514226201798120651067024383977127642788748501894109758827341673157152579918991859547193450953581057141601261332951613054966118887605053922992476938872370471671702572209685598485743763034258597077762669213622775833978820818371129708811735013635609089884264897263325196169142328906800709792217650592666774818338614788018169785328151954967894454597137639783900380455287991002348528999103091859437449055043445215721912749436800950829580812607395015309012597362105642839720573722709766845610242438758831247201577523688951747317749147542569689227881283997747002324568272963018121792240545137510205405565129214577319550324379739143812129562697599538193070634971858638324803782296024135295861943219746649628723003547827302725458819700005293842679860745832689749630342522027258359016302634831964776560773039783629218108796658919227090364923149772482928967714239281669303231422753193667338632154428289139926289474943465430083345595549953253149381768479182793120793404854445602658845560558822111451758590791915266019910150274567463187036205224055490011699889807146654408860881898333851310137599967440812864386862167663441838052279895713857359281777961372016847984437897425130497202578743865721577711707803295650613495772770951770188236637769301251998617399700181471239009897242965723768384271586405926011514146051231134931362728719309094574527937008438193904351991016531968189719401250298350820432985816977121625020035660782165960730895648702055536384186180582618273557369833594530996025137732572115935019706236107935604824307222877885250585332225821142299805976615769835584935932908846273782014226986990234060881805242570818945606511516751758710987666363001767251594216059327609179311756040896960654473591429294203576238075140485631992253602939024461777767387725584043723187136779847768288979103999910822099308445536432155207472969602286494266134764219032815262188877168016773881258069506602014962219753216420261706652157045649773150310728575636731566064614765763270573092254445630465178218969277311585302881072416932262964196965620448671009321081804152560602844101268630638311289832319477728873439483577786405004594222511275850094415579154879695494435178713178048936004164533264354224671006867117476876560959792601501418601444522404065152537823352060283602807303486981313351555277429841150355673638292987218767832021641038685788093923225771974289858333624161286937905151080870057722853256279312603356598844038113146436109192565467651665268379430736928210618095020232139880777665929087151940531369049365664973887664759780428610485992769589075660296355821253894216001197438837228997647383371806002520959402481520971651374514344606653444592191047427232225375909597637403611350526212291764234796729793613281255402012582679127675331720897573333287285356123256970093494700373424879726956612633910740419092186331332387488612440769191421946545255748709326050643644493733647036390549720716353514602818016519587064344895947180528616934917939030118527072126568875453761395057358893261481123876934649918671166845655187996363373664992426883762917820504033098451418229379070384501041439142495446941515501181625064881083839422052189787650028930306701636109381856892883902012010119167757869096764062546498123093547960308632965372326507013691368368314770954785185449217004428249253266512710461646908273832708351718313879815302348150356374663810861401035844232078351099146084007187772671615859705312344031407666758470151431845554227243663786276058718983835047527341516956266995992155512212305591348148107143417611201263422569818271347185532506732488601101419749462093683691712479452582710824143876307708686708127242834604839746295249560425645640216393733555343062545260358895649946219129971457194450312966120859624349939060482455128944685667057604135912379184391948704264761074943320834612453294133760593309412134976965421362932567087119026888769752340562213737186060197716470918443165729955465241994524258059138748273493730697208156283586225299627164148687585683507475250232950852763684664160607718074114330040170209873015353143094443761984790827809422394734819459752710875903100250129660477536731030834765983877034034058481667017978484514582827751404225878216568280846193180985259794955286215570393898418260967434556532662215881691364121257700301979823638847177580749682017901637844825508478662144018706611518916773765598005215812999605230461524283350933513280245922666471460585283451324726666681092499644975820524193178714764388153536246090974105971711812870187926479759029176114933888429376094339823658928767969078757388291717505408576103026504014355928203517385413178951305857540073272418625680019416801150714737687046001956299786364108356035922197671363205473071905274532660487749941260875991206789336700261290128623677074510887465960690820132820444091110735837278410897248583540527371124942668176675355781052923727444865729060793045299574382413257578942115120236335187259947104944142051506521438705568215210410913493725353133588773664129290731959485875253705557657112922656268339909001024431398372549891735322452890033111337403675267868819738092999150316090944555821767898707618571580548829337923780633022711063230959783682316632233249962942446746507795091564000071069477647990509972269682744121919468180838053906643856748624271377813092918014096485661179246050426760435592439530323511978787607704798971741072257284507777749637143353682494691228738077972392792536179367292992942614357013043279232516355224352528619648516880733205734513162248178750646324535348225052156122740646770197038535561318162539005029900711160857554996363357594637247450949033636241303849636404038492314556392922841750511303866140040914563024596954196382409000483853526588265849012877129650548148061106800101765098641916943262994431858592836593762313151841077751937580808606317585135048287616484560209015287461151114492461467434260515969627559034868317638750048771081491687853013742439485909921586170776725688454823939459345307223435287033246326239096860723346870180435444051059333567847052919194355552591983038322078524392471881315704316463248743307243095419186730886889502274442863130646721664557001140122007400685770541744321804719886512414308337771691294378490374618955039096550221048603510148621628680292193981936442945152360565110393656589173162796501832907355651506369322232633872059350681960699128616930241858413389376982429664684449024851341754457719705624746238316644290022296779071483680736246675449923345461933865417791708987301002372641789298154639587070278642457081926415397975626939642574909364718369966253380536287681913909906247457993060397366119258322700282368075919235985154554533440638641286061765210145690890681149168555991981437380347510154873877719469459692842994639366510607885405564019604574617756268375480982287564812813407699735358318252773623627397646904910396922051390900688965029097690271569115992748548265068376418303354795450435108212039384463712101999661438189883524353376412819662516386973115631328331246958651085507281892014912822057743508290945788359413980220773521487688513045037334598697255202680700010126807855371827190160024082229652444124564196467625548258966203326033098637534200161040631055189234948545603441521269566182258313218444801065488347950892613031872917699502540388961511679339953201828294222859762756002186876779482308315681093526964120615175951788759772853881455612041113581747057367824914814289007760899286862530052537479149297761167564026016355516110562843715792557509803662959069567716507983050263041209965882520522419068395966150609405793127773604842621955823889910422200895629271963077635371990074465844783792288765187267399038090601055216215203370615605957377825860790954684279638541368222772404866818635328049663296104831882299400816063556708290461631121967048189217409498207725534448310487902320441350639258408015402679718192303343424517165487238512199930387917255753852690530407328527400171190305922173060688300116097452169176047364147888169604234499452626219514429956324829253688073066243570155173134716959415866591540948507037190022612365393852082001419252617892691143652080262095661873951608609206684084356632851517682336559429772145382124091219494404312050654755823444088247303702887324298111897893079546725496716770248764255804890120068802511665245868634790976296820091603964295413911807439021263944107817245997065536598642424774502083370248021573209969060451387942083731893382086104382554068772934650907870793964482328981116619705090504047816674473861865823605722195076324403696267157538448237082043274550231869396570575043317329165369858206797912182227313152078068577055680515895222233184078773495285595271556876706044686225041170668659783155791421293280375416161110141469039869743049961030912232087056610913208889687788703103646706908327477480312459352701850065402835419793080407729527943086171777526699326605505930280094853226917941044316256777799773922029453180657609475865007845085473678000866797613084044815124658987301950465502824824841680261240830579750412285505512435183371858857991623747826427685206532109480193085937183216001879054467753472103084107369518870349246660456281096216126745196654529751278265277364339301131288585892591918703433900660866410134855675522182753221527129365556448671593501545757067759835503080238461814277252810233171620648378651179424223676970467689192157895677136865434093859284641656621637430938966233141176695559933609430463405763344219933105060985355717905984599886016701647414257792327897515460171101586483592291441001341717502136234743343887198445670162811074487227840527251413393475771683495488517953899094702039160167195718779606817677262048126544898899454700878525916855438970910026644515385351426780933752831562149605651458739163144906871331115411340317544177413718312743632910355530025043221205462413247331360198447977503572450449071740188786159010628012366247324874662194959262297799196111269521102242831774175547813615802148394633856754363571858093157123020973270817803605941524925353021413407394757525147869939070637072734330690113916153894591877949469227644601340291242586959531432452314018695719976213459783646429234802502408042937993285564025628111734122900741070990744093657006664461110896629975738671326895876610027662445803237988608733418758130116531588908956658448217251032752542948554437539212651991333545691802217253140227445725755428742843009678780103402973305000737545414146352533944567368032242188815382980652380313963163576582196718459239962822759052321040529343435782789762034314480887608433976747080306007676722601245110939122934260468650870376832640436149351405153545268662622438718579181847359432850491664494987105858430702754636639612382814355968320323286523724380616910346306377138505666747196700508486270126289289794958925204036737742529769655124573698424760502053910120154893313075800079548872183231833148191088078554028512344131126000395484748939597732038524970847842282216772646822792731391007261519110967843914076510360559680396642169317730326627956801989193166048514534338193651835627198302868831059249786004486315917211576706496726318883980584895885059200074675022978919311568166093929776851157716670051743786174107853034921784045595623677947436118092271471055068050765537223930997948426330647429646544618686051838970321571990071272978781597652986454269267932312460184249242181701568270512766845738995673565951678794203257488536626653972210669725516909067059740844259554894632561224757424430203983447514565075716897545718337015994905531816218158250366511889309853089978189977533802168203377222371068629761452082676509739479079763425949664682609653474818865877254202976031675849793385538147516951303297759611316245060196544831629578486856592523476482884324834036688467470410458252282103872406043656639992860163030622496462806770376828198990843867318335905372827806581452282350500576250680093741409210567087548216727079500797636972291927754170306823606433467914285539188226464781698714136933682261776981405968370692487702799111640063185207124067950739221084869783082240731239900156565878101648611486053409602494468302130093569541691660628189795717901470474670408591416877798216251207512751810868855993694051088004440294076180243973504663475596781164298199984192560145656245172046141182478105064948057893625811391783700074718862936180474710042438932524223745648040630538171703279713695104759348515031908357911507007098723679484665739511512065466746895774667576377513744015194270198450626082459070609676069439559470233257923675755842082671300025321778451320300761745057909995328462394912339637437444107939294552355843324781544755326350301563240067068310217839222039064703147060189828323408833363271006834398297830472043551645269937423208017214450591876450819352857800086045781869212353258484036921149956681919970775306930519333773052498644364592488224655365960336119885888541798104599888268551245608986110213759819298750248668344923876390798196683121935957026837344834900923719261398632534099925544239718267823018659968719768664740008204529077818489667298372372399333636528344445988815790292693451288131329239553068165085085223647928275140288046595933366380369669475829467350124064188630696284020688897198892881715649282010735912381936353981802543997564769178591507660862107444523294862808085526822526760605766390226495201060074323913466608984352344297451243651625290179547421032233272708511877791180956447721287723559769614856238729836772070685087911891646711305171116107910351429959143312158344219906321697825551188559939272449208568987423778496674442402784449927606789790196629280099410918580449908952542957799471331560002175308662816553052931489515340836433003506071784640642451350219097008493055159101330728436186661478709106065178644825087718253939267765374987007391261141093281529190263391675199421434702773843481331835967981493936857423441797822345026122932576774719080759079842564281034568969872075135414437184795655541183581059244182992824845653475400535058731122143589529854083230822099396250015312592585876159139868297405940149671316985564800109874335146058021453862317805620109450307032328887132184526981941618072275114102006270291343745661280878476090842218769953892385172989917671005917264041288022886012916999594256622570915363042688144934179693458970147823356987556339910089076693270212548194871210646960099198255455403448538907293027363398996014777669348389557502225400304843420713247811706219233269710159324732423467724700574773289624721913912690181724956208926560719650982163071800557170600866018867884489916835870141599246122481865600271999291189735626414945265354555020253952140977645471394665325294245853298022985652259970240933920666529143593584114565986450513024324212925189173463341677236985177666351243214173075851106258444739347215258561675982021775146275418340298444083104383416071537276556190328632946289132633774121924076043013732530864980360386366428936869413297914047953473766059150832738055576655222208469744377943806092623677375739252704079963705349178253296869562048986315007285539187516774294860023729318997601233594256039314963483425136065847772601766246354949499422226072014227285427930359094812202633294853312058889306032241046577462323000367603937280480290902745263254453701628088893618167123012234264260833648250714925467955700804374705350024239917403949588904856829488674418078180969016040527691079216180123573673558055087070273273242012222028125175972912764629051202894362100118794693257616422908328478335997659105204783542815030478413233154189497699568292267781579363861074032002141959436182985184475109648659163679286615723993708520665129701969112520167490187102831240022020991175269361358422150729246897775861183808947373465351426290105697166300056206593929093334158692157231964786324598875407533933947211748198271846626434315619707841237429593636638993229001287075278494771171364912429847916012467162185895169718784321869964332373699121961740241530807494051463938201476799669575263897472927338801430912924897006681783392877064348992047867629556921110652105724709033814291920647156738766389142660253765979718767819092084438157752103903892354408882441208809288820867942857542558887063982254008663010694067268515309330009941253067560758031378932670900311203753585405935262433448979563602278091792987881198122856817890101561251245941750986342961183024499734982272281836179984906777379596766889052160066626676053343951144488617437997103760258018210611547408501977601444780173013070762734375797244656494998184460278355421035754750959918256513527607074633528590014900854990085035559506671982919266658186803453329382427632634995850711294378941730980440067453025052651157211673117869955496504845407643554351393139858660832389762026063211194111852620191870491748945912458917930464787732147655139987551082667211370794662788540136282685358422147110030886749236387950747552388218299258937578536134159351303829069006306141252046288898000186565199054930973050738717037414565500029535396605926067605465154045676592310865350058748330963684685615327332028120352774329566716748662535640914246872291184496253510963401199572602290868684953079427158024739219250198090574604571570631909775813413691460619121665875636580891277124729583005154742044881721228539905827942337259213309295450922038319396703094211846111129788264734697834710036188432931927259889234776083095200733247032304087296278023130138928229219812800179651696880400649034962367076505025609975082938107501964863301273488811451942492462396410053979003757945149835773448170165612579994122285281832770926035383521754734512549243321376968470999013683963481651316895968457910183108110547919652214732343581710202428954765321999053880614103458834866908277855434645864586956672579095228028838050428161962544922013946701336617817098473904030178079938982397468607603312456419412196277807793540348009808879666679311989106092032861224782414032467577572785067632922563351942604830235373644905466563150756486061600277659178671016119997954035070756084924567935793813964762599858056448128976564483408046073320792001780955433212369031442023943040815485947413236329829243084542158623542984079397420265920429525558048595749104138225789225033976159698695155656818128414479509606259811992008043708779470713866536382410396332525566374398409676537346170318798533441327987429619087612715310708456550084438511587406506754216487451433554829688067679549794815748190315581209522028409155799695156042559971574021227290457112264749855735799424113928361545991720424295018936041619517462238004663393117547159602519564058993100628309950083191762674013907048714979920439996680490542905272198897325223358160308946261358522674447606594333868375471949226579991656281258618613010121561846273255909834121449449792395555140805568808818590356721144448428128079529986212569509020145231571204015945739337142836024512206935117870963432216798496602546405694586166102534696293505080011249067755124214042477109406251428684823150662683682101272023843706611565365900987470289790029863458166524146324650689572663483162563830142745227622352634871899632897916583950425363761404013213271722929598802442124133240188246564142705979636236259513643959226606443093882249391863566461371227838263038700545617645259530165365600071962847973505491254067827852820146650950732984140221339862350250553701652436015013139597838328612766545600606810937421410701641824940401857992896200309547250366252513066790965505605753196356846814485953107247400574035577419260178613604577293377857372204134691620714541173502199493761939670100144150485704026027594355404165290007763864374973885770962356160824532655098545545491662190729190120902227264467097474059988422187375226959842342254031067297418897855429376888571604034531080481719824004729067034756846166500341143128774708103708987860638562829480342031205338353549769062811367152151338836846452075555321444216254149556991651810286671250484541336232688707021640717514183923368313243068606349343411112152883428133285171036041985829040630859490495093489871766697611805135307147364368902931346815320621627879433491014957535350282868021345964875365398069238910999569607982303545369653465438740798090309523859078536430967918091918585210101580003762638949579846809542741486379719041582003024328283622175907559614003306942911327977029915745368120582819266283191553952211111129388861480819066731338640912791742030998984612902021066152491029332503472787867639979470850029159202660449077220496191085523645066497113668919917747175728216219272513094713296059391377257239040860681727659915982742493891173029654794206635740507938610028251823938779388290917770305563709131408070614559819152636359140223783053538873879716620017451902194195931936694917488446873222006861414518080053403084170403739871170357335799742045339141535293185928309243265025073652069865739649793481038595891700304817381022973116705237332585289509435173444194565292905230801896477622761334826138062629123456331562065079174028782315025618163622226437033254121276593095471206424231456182470496723055747672837150671393446090665853569329950029978735307921467206702368728330984089257619894872882362896761982052043293162244977319670669704935076632263390799990562989096462890431987948993444541783204428161809935072841758128945144951091259908988694657336214861535643133255100848252283217901060663948072075247501381989953483486269534201494008024787224025048462252928519575226943288625310990636496729921916908349590891160314488351634103595450593538384200004418377477447775378044848437288300707178518636377489015200488746652917580898865118944979962078192572988924597517535122146049446187382773233446500659627722334120783754909264845088405312326610242653286165186983053277794736293084576343292356838155766024124830389751615691418499475410344790501883495256639124379196341435906363399619890222302472619145148415009852835774463085791322874680756475695746751056844820959055484825596557113417854866315937384803562510698177881433913344257859290481370006057487840492005383303433445599398375705339029041816968368725683382891003902289280711399257258123293564842622858986164834713455633942520959892502357131310931061839029079799538801379272287497121782302935947727952159393354271674415540974847085812164903861264194250427716693756177574223104755611144421203015505374795190198323077622520259916621501627296666401796459237312974411977874071836049090413080514009356683995531713807501638195109758793922150255898267929896341784995762099461654850134341824684280716812563687676596114502334660748203586239312722075784778071304671472306518079029894424139174204377942488046178404267599045678968598913052512610263659917700209451758211471574798656291972596424255818700456646653996284675292038694805315908073768123716657418920056768521662809779512567883461161416416889874537458749026987043892764616188043887527037575227837629011105301005479044974932611092314529785111554183380461113645151945744642150828160146785631665373845241690518224002601463140791036071238203129840107439935469871999036949847677288147491730236570397854321990257781186928047230252748530422135722926841588025373038962788831224640243471185488685088143933960856171252167852566559718129254609593198155715730611711735726922741100905328945304089714986053520420661991649552785608688295047336538774644848798753677655731977124636535495448985949507904982285889302695539499182338829252695251676189907614011763557046947783764693069720034583431340802053299961463502064864400065334025156730394988698420832263595713110379844895888034398752245068618411864138022098418706679870972237829459570799758751475254296435616765796284757363484130594325620434999553209328499026390833174772720932580319519561318736574019334672613776521452976392459926102771714004117512463235998328537432439417976785474062852993927091206293956962035274019428378805894764127522050256837389447505378864071118251199866822497532283172104665043638829947357840755115511457796162498070027940572616425451591699363711194913552606111497986223197216111289312357559107967108074889389183577302445327307416948267170735413863578964015732745139204154044929400684696722310369991839574762087909206064602816001744106968486096692536541866897828544183562433575647508751185068581387293302529205236126159422787617580942560332319921440115169810929563891223623734976768906196975086333048725114770710954725166100912526912105555451571907297698296131883871571248601621219050602709758737090819153952170172604273073961774583417108510843327395601395681259657190812867233953806347254618615269996324605215231134597629003751088845869175179938914902486589053122490404913794823808326062431929732977938124459310502519261850955308835898213942810582400915723228252573185805422104140625773295194912532944924781267606012720104095272450446491895788920935428238878111437558646888088694568301868682902231700810927940084237848510448857508131982365974734793823427646621869828032690824010869780248515739019124366757259296394102219126201050968744065809723800431282613418986693588225688037056586581464660659901421157416052857822783015351017372996208257459984543283601599150177692419646948558014596562633071686864899734947849911495260998385027762398492085170710515800085277764397310394753887950022228181228364001650039187348393036307911662007529635991820336494652780348017163293396966884467209244433397161072559044158317886898355150233226339830668110721548431095283338288752152419394983695751702897982896967352230997385021309226894934470919625832245842302063318939055455529419425922852605182062184807012737308544718679546223304925226072919922940203122731812344689272981247819722833503961630507705141379090290537406473520624277761093783021654833077646328583336900987582894673487352914559907288944114845606273845477353162859327682129353617892135190039083230916077567566065257930221003004829434691582699928623115313154303939418436222070832226968538886581382208102599897225365196793096326650150681289077498325826081507830005846784860494304778260069223216160631971787528963000553742685854058321322068204716139052569623898997414800526746769001603550502384316435153364382062290424388473949153776970233480585379723499289849956624115558062051966336689032064831719833970125412349267264546303083708291603647538266977917310562883642720322847394292413370681036967929800039564409022748932172276500464391363828127317260048113906163095063301454716105463692222074402008017627887005253598253579317452021360442076765564792550875546408690714720534287765207067983001582391451996767010453255110195049093206595855334397290059017564002018605449355999051465048388694268891193645030666625153285868547704721870152006835973708999271841896376771035064308181505566592141551267103156206438118676293926546190182117422099068346270530332435175794556962632448531181926500620747318608752526915142640433686341856225828951348537467609998214880507302846025940065671345806136354463272129095864275151972293385526319478062707993669936473858099114596816995851631044361210384653258428456589446587137987105622463489745952492304944965205665367843623796774140278447911508708944701751984393603856179366326887212819936153502508041010319730123332277374893870904428579281247800481448558919177254141345818202706377447687400171211872405446427572843936245893894694727390990689306507651795967151101276888943776710751887700354227796615924051561250596553635896483219560021686652702120031421645609635657692510629212281301633173397615881784535199203100538926986983349463812778341411263227675561824195006414284988128272448433174087474361705686366806758012562809644789743050330549044477228117072361846061736079198170868990615977747420604939053446248141280515346806069846988053574243472933106811226164899344009169201689151345066769400334987355237507531964805247597480532446014256325607540949434598385275328345128789299229745793689363737082237412376266307364653003780113523268998829348661636118532647837531784742691790784019891378252790236653566287061237000380817220721403395836618816588717013565139464484242665865807749609938276530295286205175523809027755282547817874166745835112044657590293270875665741423773738644523408792858258144171705206667685787862486731908701859262486703962186076976053693549384310765155638860164038782965355877151023890203584954905635400672569218029727810037174815711553448309528640495854494375277506086706846724499086484211323532620410436986386171096354393919112221814896486197474871613404920505239202883034231224815850854373878091537128588249178840836692679254384610099684569601219601277722486457934428082740948314255775914322968860047809567285822475906626288916490988526468155933486177533606146491844082012166089787642187114344818515265160280827099158701725908498111709830963530672790024414080954104043654104154475873153000176822250353814722591007429701115491492382510365517681777591304417382393317849837688137312507397443768596973679326490456953294032093513206013477251173399119113065060021562560242673381123634889270576642140802726266460299494573731081312442960032083304726407953341009857110846101897133158768850234566867568628048221853678701552199907498662862650378325581012397816134466153431822116307293976252033594857712174315567982417219478717078330859760420797918878996271233321692064099153803937000776709675353625052429796520676099651601297825027478985213197392953087617153941854832531404141632121001111375544840934615013374353387072954750464865598464331008005412901163245767062197178897044084490601400276012749542339526642953368460396310555222284206518374261891983520278322869261377632009371544717871074500511087750187476303534782228035646435167573416423981451042824845077261798207144998917342643457424482729465900462808295635733509517093596719518799412429500282998214504623326627384755101396378467558703407256832023493524794766124694106331961842328695588860540618705137591685883232708275573118473144272802899423186112744171418801199100444937346781138239474964368606651505945892076350149168291707316642401658577608997613191508193668286312201659245909250137763310021020065010698012927999496669893868850322939170845184803167530696907658946873730601988946693310937839462672936570992294112811918419359518089134191672729706129447952554290064086806113728619566110149565496203639927650409505198754229517453400006424207738008357132994198683727542737117890789018091515855787078543006763810294130806864358546940861237033358068374581297201303334300470471259544371438504083099129226607495788874498906630994845811202970476643068262172606641683805804747812470546954099848712204552012083246210752803072488329646645077703320643367180548030775529786446683530558018268252270850329330738618751244721924296747240067944119043450005078482711703730323083979739697809623549298626084078035220586681183706657373647332829140253678911904565998925918252350531965813108568293372984270070947076745080514864819625134801406564252092880352699915130616304939581552189984855392111897460745492197779670446827219038506641228689273014861170048180733304466318763584585163985658835719424594227888873798662630280043753877076170660338131932023236836806433966423312813807163147692800975687111060890862560937734431146578563470251263063199323533052094552477199070386968907740693471191931682187164531288717964983523922523335820258100438775146399123730047394600299134950689709165341219336435559302234286454459899315700780670522846539083872999903056982414377876627496954343188592997656109528926326291007542855698881967339221244914958004904977100516438638359039150178644654717494251335092959430282908206593356777556696537981328034666227105691508683293900403189076295867973912567996237003778602231221447639268606229942657680254339596818433433042153297598489424030195526890957142497236793647884967347523317055113086120706651082328220709712122237431575508904350490212906946820125268886643541285131706357955692199156879301822463225137812008132616341162721628605341636687461967298177529507690007883960985268025899329977561793916721755585773844668072605661267681563014950494759385071134666770583242260299495932480071645907374987709046295506082322126962252679881246763313124425877339740031752525013617132267347276902383326879195094443844853319786288156390331394125006008022798977732060700608989517646562332160854570684066459612200574597545083390747999219295101452584337819881783013663038705137812438313047433413969514194436552496817070257318852342937065023289665267491702767851191632097798942947979405754948595462029218264210857792984572121227303186465360442041403620956667775902120834615652661593151462218971882530020666649869465497347812703580676346475335413673587236552273193612330008421444762816337562065785577008492043241938455381368510620733882815708769828041261446649956055843536352307360577946100512820098989714091127618880456009216757340896876747498865090571086873737917156960413174915287652877284654756547863194641386900333553198152252966602053405343888973003137550364519404340652540918216795275592915983452818160477959227266000340219598532676464705335308342714492424466346660918113277657641498845388138820411069202512228824320457945739840608575328786026911614254694957822705014109624155196091275870377970689467191582149099637542429724803409455670493454954572885126680068843068417157629374396647976542974112847698174649950511103772354769154669302147810111390877334311729808156956996957205279652053494964813318859851058905486526559488401180846815118095078112991369564411032658191870696557289668957918667374935381143136882112165716920738265231840375828257069072558484137975805682130961778910936452171602885845306354723772819661038066764800396051604224168110021692025293874049865493998905921173372619921583246996337145113644152399232113402878542960849133480838533458137595359932290137565865129187957075878643566119215955593542419237955168317052390265059245909226158897783366997317567036268027819624079775547184953030562681829650671811789356462031149525784061696783871095832005336845507884021321610543669897036704322567241280083668978695472372952477879628456214458447632529379297067963342121245003748741027451300212235348124921998862992231471913442007102883968728768043721731796804349491975360185822359622600205990057449875073748026888127669772309874362532604874854484432642880600464438715184000020686811054482454385089693629713509808295388884645403979010504184531497872174040583836930860147486846220832430746024755882551019687770908583892836030108388805142063414460974990397954764492927815234987098368446584985548218777248490374175234711936878127347570455026442738394257265213555307853884910405174875787517093165588045745455090336673051142597850262677166479982558649118004932597577822302027647427225219542906818559444954024940258302419609675536878244629331350462595513976044573163945279908568651647092155678267984075201268334688587122854148272420543549216379222321721724656449302508966235660842632172009013419763227179184789369820042287863514514677381970852962420883828903176576461106379956100583927724050385464664136665370871634659291536892109847332929025858927825540538228189867258104355899411800313273894570894925303085156514593347788168628124742543441814260918404837306160607866672050909841441964115381018136735744198000957645309523197563472924212669702809568209327125767002138123630658964719694926027088351745600375854279853915108328265153213597548653836011277053872502452901846648361176413456105684442111646212310177665074951371673422107536601707263921148742448943479394181246422649416487391259251191794291212777987821023789510363005053313843798909135396627934484248822514290796704116501988814005473505103650388137438280157929882095294282011422558777841772455781495391941311588670386229243874772484821547211812301545276456475255230505007038752687604795438508663431132147046011110749979156525216595982349193753113873992972536149044279390788456878955897528539268285437595426273118625119800807137397610082192793394774991225516421952725090474509206338772421559475109837552629253559540826127982891198287826783482711930537180317946865520602824918098815567278539448494128160779865086914194406276182197280626041546082234912621539376473733313881072612740416623120484227596867998240282765445963716273102477228899719092804268524851606751855671001422319372872150832531522908952289582464081806283630852431319501971414234920682467689596765050757872597831918696263782281107049514779735276962709851130733077518831148020339762866127969996463157498715823160750836169188906473621232042551168178021465791227164416223798308538274318126190465163429547675478953633143496827600151231991591885454283990370345187197344454582541920143628183487666722562996480423221934594824967468108437123543974487424428506092759102515239483322097721531317029920497395466223589972246068096827620035253100598379164738662313235854717587553603352227118664720296275182441526758364231185798412425203525856362394257083990877786894497701103716694086066476879671350857089676371369501654508160909104213854031213563402110301441163837879459233056075659794758371945569953897280971837604773767228856716679983460241735795379708657477818015977887796142034309639795603110386880756018414489302926812449956429330292731292335957500379154756047354295829149992481793311892831245323927928926834410538574148408741925430291360422309322339768228346008149813807693988161179378980294234301148811479812714855294740826321947117554412994729220231080678381252671604517206656668334134392326404310284660364219672791060160146392827288397444510121197536196926713514108816876189363012189267163349134553258842921903418461605736573161052038010554627923328884527868213637712162395734867772284863937152610117437106577201892858945639461678982985592459241194755268359325648841575308185242258850412411812934188663443129748155218195905729379029928550596469346956910273173091338571686832117843184969573390532296301522650683276736298349953730186663164582736685027729500190787417448847158378602727017391914824544840294564520659030881860266854711728731353647544314018472668620258825174862455923542929329692105918139446668477086358532069962724425847316042229437363945639409394038140243875845419703758744060450475853376407313267927631395609383365239353248490128386720541384962603526748316895301575319233873906945244608350621110942272275306889549355332105236666691173503339182791035388943377187570839259503142223352485422722171536010354135511119331353960255988130781572218246031880264977800989067788562460650575752313757136556421744878404018396406117920347821986386950394702869235744422899671173007880346114370048729967388430634938929921665184601852981991877122771501787890696159819111096586872550261912156392678505729628437597624759760227857167331444350062169691411524078784654285303535068047228072511715629349278301693269994085963641538407699263229205065969426387724892077126099009458984536612852078706274982064257570767596874804644890501394825305693280062702601769044926297586976368240307017238597795432546986199604060913147737412070954885325881189648572539727443601148429012092070824661483161982077586105460373940707875263482411051615891547831508308657467085374455169778185999432014241493653593531504427856533761295972500211974157610274841504339156697836889901396571105890862189669926195048780445247490000338070404180830018273040981722458165547497052649488182013269587633486242544943714312145815492788745127431838782474297283959633056578072516288993923884237427837623619327490869933383527329852762970620107409390785621556768702865577264884692669297034142727449776652311965154507785058219395630529735723913276026244271650016617160162089214849901944137739738319205108570755351865053659156377386409550861215687300708991130605744115502179856688934473366088245009899826820278243296327655276925340935945042951049515195836719710623389163259028381549686578348954750311574210309101665921614469855143078777687982147516821856486275789493306165151446158491670800870843947805439684633737467161900089142455381410254185795603984961671233167244769591963413619404996500462316559799181539626477295892727431272866451360295542929407028213040650657374491576009972640823042445051285857004821022180399968370854692454774636751688064304806376614708413749904945879120040014655593206834608548738662819227364005082820300625878760614631360472835225545906287669196944187956464574340044696361880243627514289383437308334618555704993980799630991738635518937741524007938984863670865028619711286704741982034991292744112510406864951483859495689041435874476661434961608056114593952881742605451105312191104041912486354114102502409268365439156105424861749937316123492538067775058641605966705859959346369769690521782582792791547956888192716985926145814743971963944964723635157268451689583972196519841203114550817980742710662851519407908548130565425216205637088677839811221268390361031581529131946856206181664895492414724020075747057563998655220295530638140161363002867089588486310336539452042742254587526678910641556689584397829469158048969491322243863212073325606640766526137758019950055525435949265521943720607073687587574100035345382110959174614356308130158018186717555340342601297678333506388724943158548292414912360705204661555540861812003773237476966931290238334510158830983762329088735547109038593500185630579633415661215574514904506224969883890491824401793928861790656240360271764240900717879627279784613233727958531916513244643202529472424963997084842386340110268894592560690855237355060294952250300723518848871571548002662800593185872495774179253147469945617123390985855599696223877742117850727474770127755467081703527813346570498789775766114547924840431552838060834748386659636986859877774464025507244990311958503713146984049101052800718400697712634970507109688175066480043130327357455736241940949602906035789133189083383336171480819001316925764509068252504775650871666503195271339242713740262369844666022056729873058402008413103758658251436470690935910820202069421031430045950228606514278330225748846789473331852999591239984896354898036749684539384904478471455896208390607248315410281684078823901050871683267170618576309484167769272707018439436263080770153580441196257536801296507814757717171728460555305770062881473818802786199464069087031970326598864797476751324429274367720381544953080967148478079208111400727601030568008830028446713270833667065918758609845596807852513348596568548702667603268979328535308341361063419967795469755003650264675343875515097141519661635529239250180007503700032292872429257876925311889807985419000853017832471570718647406476186705055398073224534723852710030647628208526739931366656472444471580176442002263585834803730089964182147131860243469461491850274073084525747432833539047035554014255465854917262445669656660205694634493217562706128949010575035981592022325124177821230499928709483973135466687456724751377032941773460551820999193097189760387281382657721006031557919895571674870007341988283238863761670451216114017511069825909478350578166473183493773849734999693640626983239211199154954664194259173743548473790559516491641312869255821730116699224455110781519953874356264166518472992798751007965204403327507598355647603963272004961265790282245681844475203930387627854675664594383130475918192399493756829074859449919638248936895048500799016616260738274888689700079409425746198410171064554914647285693882534278180760488003260180313950644371129936107741744236793770615288475692644431940800250944121065524505429805256633934196902265369216655044839921924420940734810913072297387114916958831745575272396927733860311087948833640797694527501076703040441011972198296986492156235524256665143302824478631273926958261651846333557446870900242044575797299149982712882849678617350936861483845575600152041915681010375757553744329223577579242077234415989254852203736893153677306572940655910271543551717105946016285849011157662293915788365755785116596560522677266446491188203233521352319216839245180530847035191621518463945633189626942015168059566159102797538897621654983186501057702413727103420273635251788465094965581089889302870372900726707719383996644532043412514640453129263439764479833800151439092875381348615086924976544629012671564043828318854634740413453407023245878821139693319131771798176425624815921983177445841210997534086851513032521190076082735498998177061396370697930789565704736758934908053604802661807465390292187115459321857312262076522200685588278202305424811241486230986522349041962536827558972937975401561234655072980833474949872936557792516186112982233342560488439617034845433333399033770436253598239556757827265092204812868457412900439548536790795581079887277829757216344254649361114354297432848703376923493332519523416248038846748142771988074153380616239320888913177407451758058806617276018158334590052976947403643316529536880068648285613068901335893416577273997694191937844903111776345106104891823726125532879300466397117376338121508497809259122735146701808329472770477306972438644896987140192455953673168853731915827984529679568610839161898941733362917077801071645016740761975435597801934299302953510407110548305218138510716123426892381118686676845036247618667027422978732169644140257286165634991955580681090263584273872879567856826108895841512071399951832384225602922526851990242871545053893291115891625398650571746932095243350246921186651155981858483930775944927305789397167336240657471688118657918861167684850608769483460472645931894799881686952713764184041061411144451708359810515580700287950807241586719069963561604624318443306928183502662829033090331602804400235628075878192815320068945018968176081814221557090003321865582702975467015411905230399401986378717193297634303245706325329533321632251472661106318809637379571126205876682327110691817747984908672041097009142263653662883661794590779073952308853605250616610529951075038092390266747677203591106028621002831551805755792993769153945007637734559117061067711132780424575791149195673114468441015374580680452338442044796399539008055780195521555166781880237561808946044663306761822419866938966124208063098070881324486504381572591534268289411962048988207627932221954730563839576981539834650931731997342092577556516960928926164622754787055886066939211905294949144534776248106538431349991908050607089660469186747190273155535822767332758162793153783606369297634238045580558473815756352943482828980527248057601048010004490886525398886282427032409609699118018404268555920530297079512188403966717499884620423993686043151723452615510950198046748385309677923906525993164784894836235416699998471590181396841249333503102460682066405088289217226050388456545002623274692215050995611671825197348695317927431930992108809868009277452841083670305763516947378521347478400759747866030850183854621989526194632898475567432047966162863136344174833342150652386546310815556547522422391470421838657612788457761060696307668238571339754167478276530119002522260768270418126345814120607167635598665961408700238981360332999255823683000611485752707822387641930194010275395453357185390952241653725354637019223902202839292939121971594006827251676912260721968209053042134336865224137020038676292891000927536385543124283501033872528739644084016350157857997790714392610280605198335558358977914687423560186766519186863632259803355855078622262052891140048845375914924091364509875129070901580869186196539042842864245985166949958827746495279820853225179487052531521302245884757751043207362219746914678492631415257752637055902500542755400180128169324174778043860782648657112892797346407781926793075801076730807958105816192902390498644282959299016184095230765217070526810358685817959009859181892197292391319266387610747905511615850285395535486125825155251202780422587517058278314206251167845692088790440293140103759775757754219994980586459091680175850718488047811974457464471041540855812413792393566399329131218334383821152633708216665827695627760718265833266570938932246417604106755298926603923457225401829299285132555070343776337873316419930814784871178468001706410900671535408827999105140818346248900019135497311810873297590167605184751522449464374638722249803042780853591341865993763891088419973240494050428034746446514452516925006053767046308656675997846147370371742898527754713978905645408069332522154310041644440173392859642521674042514163561529926339321116748655593926362793074703185079999968449564867898201503978964617961239306698165899116833219430519279362142758316358306750393800732762776947511001671917017265281749744016270830205903377898986593083724828231700397661348101137811402023092767666918095818251337774668957555386657956228550250143111960746236472709956272819749286030767897831866677339558040458603526776574668831723417821725415178994271650674877859527058581640890578621131796327540293794172439475559146516246452254925461378459907712299714310187639294031662925265885544851744312910953088976428455729903538160233228978968517923056671056382665694336923091447589606254005833747387107247621500285236882638581830271347195221050600920204363818953655497308781321791761954916374522634661331559870578104591173417968340497154049019662593846207506822848883124706271760118952118109944045772236743504648388730658211144624704493186271749983004992563310762592914350044107137719212217380804407309616857741959001661753081300409016419102262142274048528527900795011792533818697623488636698521172579469897788812776270646262959383975125804900039578206490162463373583847247161427262965772877640045418544038898751498164663599584715243218350485602623753915291124459924331691524003536580400224960786057507424198240885642746278956529146775175681308891418317346948722197660713953244255336463195018678598826323911906479907357241417958214955464712718004917107968510517615751503593434203672333495182626288997268940247285980352614014491373025100330786391531467888987155031626459221529456247836466094199706218915234995925229230193788682493854899798588157692720600611251757638991546309835935499833222505012827745723728609114269114009914987092669219265556056156578937202026733322685536856382672486221898691512706256777660945190491238658844670384649518609714441292125684186494039298877397991017078292206174372988880102620703264129257771618318003067732717801336494574731970873173016601438987009507329229666112689555323438874892782734519363228536482132101682029542765313062341582951130959640905924082169722465774749127179510656382050784864322229762351431483302832945675174331856225874129281024127364777996440856285726800343529009611203003816323558399400346961989083528219744277452554772072020005553096242376069162043370863156706216026905424581354853015770659800017903326864216885441843333566670502412326490358741216555638276279456402749470423149833401530951473822722628987020688264505961882652899222057463263623466393430894084726478180912887894274577421639924379274988016961148529208383991685239107423117739446509292069942745522639695433944685074679807740708061436069483365971765291777503821189100526093007943480723460643658209786113016912102007340868245147065691232112212292747827550647559653131237455467160209159971463859605995558870674146856769911421912053760887030509889373042441791705057968084436617729812733028999446495877960758103077244108381111326970043513755407522529043276544229824648994023023478856806880254088722232762430349290842155648310597628076980077520833133237328460094322174968167964547971645407663961582687392891641162582859355614771057991167178978232336834286116643218501747076676614051212859728022399882951639624150392787822383819710492809059065731359966303879546476188690641798822520227350220602175782814694791299590161566846836916541631574884296451721293278638470150856551096033005389647620465177876416811615534228083961798976547621568303711447010376796336291695734470664618989828406850082973612765153660860492597728504016836525977105383434277472439117248679735641917899751403417855856845266863490250443738261334791223164420646314310464365061034159907847361480124962920045746171316423745115944390258527222166857898091807705919324381218299305962690168520277865397879556606023954015216716475953324111900048908950975345330469331250594645882007794181591689268871047529804553732116486843032842558331979924328409794296721166986957087346277493886282701881961928198273965029660778432929097842004638503666302927197668517770498193540319592592213701178416293016004845276002583205962713614213142130179888179098520444398399081612259002429177310758797174591448459899288002192100125089963450781709425730560343809074801190200429914471473135906482493784241050315965505630767164857249470700234604810230166011923662830352526782514975474424635114321454106993134420977437862442466582887601078066808746947054968055467925637669776888245591336779293512433732714510185654661364178678463667932771386159496208147995219724454869887385041857507714583660065735539093635095667817856022660793360227881692544272838236794316156212059410127306653979900759707215741562983395883722635759463197438851697431529705458013973989401493657798324109468909321011191119342408283735294069740100043302694852961869377729119168729085891536239594284500991263309913272623539238966994011571142296872260308260322826885694564717909054616041649764556606115036563839978056615003404299231800473329404349848473336309810626073567839264218230432138843036203907082565149413773804508560515631757009552396471644219243734111609471011413126661185458858262841272493637811229539486085113596452228065409721915660164852705187500204649367140024756128045314620259829785257975481675541141756991683458409454181951336550064831569802560490376370476333698255690940974190793652569609950901921834008928693460728359141334282346662164001270092144381528630221040483684426022835376005070922433144059949233705049071626976526226049508682181014910024906994309219222121607662613472379997453900439988701835554396451447129103271213128465221666593170909809911416093375519422248449150998008460333870361720551167925527869882543830917829406692265685114707226560289048246961964571660294514210283277831507522111768531177318489826067013838707807391940633288022553947135761895714604546376282840321920932504124051457895993953036479685693870685211877761996071194508754383535193629369067669518398530258419782615876135008336398567053509550310757454130228042131250970888121470252182055141317739043378982998144817603061012868799614157636489890125674293560921325137567312181163275248470634180168265826842228566857314590853888720950485481589439644563023939862602003513510255566947277884667938608563421480866979988122577057337725161078238420666425460880019186876093811204276915201897486853242494087591821622569800125012769358001334598217782730099961609350337320371514382545466872479539040601159275170858573870328488262261177936963939222371762895494301315970968349098159260021416810730470406846434249113571807828441840235576867997624703483018128816788865218427741927533538081692779835745179437309001772888853474993168606150352263795236672460120335261921578399904585540570938088409407516973792971593503900797469619976114074858517659854728157766068419284007431798959426624668720151058895433656154158380886869161040559428525375892388253636796849006050181074332648997310518153250162420969364029087734206938597403241017925191104047924634190752106089257300733553561563748578535150824393089218198924390387345331590677310301933379640576202689946903635442290539556203551967978350043202253482196937739684397594649398764340269859444618617774136496225605975797279696957426770480706443242939830404702231230577693166365311208872774126522098869424654605024012274157967386215110290954949693727333894058766564900576321182055780781647275186590674970108876275893142383380881772558489019518470002594210817094716824681191232174179753552239634383869965540973860791565051016991660279977934948413161362226153034046998174463574116074313643846328469797739656828545070749159821619708078046229389605708462041152902705779507595713022082190641554664156835045602004611795635874536634321372821378365623061440917753216852651535414379277821858271151914586427335675108399412182819658544580139767267704185157620467678271597792749776187999556236053485927967239611809299733175051792377070766237416807789784187136940563393323544303038674913924452615178490599763799339867306625185089158793962273894634756379477243604548821910623678448964997722435071084503464470449245575451980837126717783459083540104608335134076427490195264501830527413327552527788657536888270784226136236213475764010318169632561614589218525462564396474228299589836897650220203102028852385175787169570164004136738060936190007592607732984432373451224919209766248180423146697973335581937251387502965934104951996796970001485068268996881378245554789997262331293188450742860594113001941356455769260532354432869926355964862112186818970799161254954263415378400642857055553576956509530175599889019084107391797244294972239786228678921846213256190278552165558847945396019440011745226824579786427844965912688610471938236041991221912396435343928245172538506869964613848278413606039410471285667918354625933007798545972673272646477602752269047614687986696266671070578003843874388786482993323819419789960568006185742989238837967011379370475747511839536658538000852058708138530638315997994970792095446828004285771653024641482550793073539485000661815169819851158506156587258718328502178097209261714765722212661344980399899758901435403759760852280100940938047187784932255464614460545365194206858281838393008609275887097129257422168545235808818838406149160738067986895947151521342806701623275003135492068981987818998953035145018411870361133636461276803837860871578565309020344753203729369272976344942951388245354784871441541916208922879649954861480879720403643300996970477868203997376907856957845950548113427117852715789962515377081882561847453063552075182755938374188108108128936631685529423647897995001830362956076032145494810485456920771481841357589743353550135605576959196770173165286273393107642290349041707320258013089261199197750022303855845989744680877464504365402968058106532606904225322978904072106245474847682053040551355246603510500433811261827383096369493891830485650529310887442865457823307624828823077999426205206903762059573271662574592154311822721697529274378986766693618009869780632439937854406475374621868080269862561941234040587212318128781226984917663994486311972946902809430724863696417041917331488948366047855987959171152993874946438321292233771238403057004431969756083323599123127846837814053066593255075673233228720999240904577669734369322071554338295225116694906645147822222016685850150562998429041180463859695620987998549206235143717058334583402853398386132172940486229980618031694378558207751070847190065234268742056241800596898603724413840010964391167186836200820493887761764761089532513782186594537777158730495102437381927101336651962586829768673439432093536850460791480650287980101551487046609396901908337911330432741894154075638204333304808565765375662142463184749516873544503324769343934989950975114724433609509549082296272072345688685679790146587758754828218956820378467186151453230697272057805171294282084311657366051118843606769168742561523391099867050053785771749855063363065386234894767619712214353651592972839191299484922363636398197642913716182758989596797852384658525369655238537269889650300032662352730314429586868730588769383370825185902261318401283075485001554914198168201462047257949465850939922670245460645049077823921453751043356278191985894830319828313227627047654138903151205547175992725872121558135232017444468027784219017964925899649408854858058044936855491224541984292739032340020723138335887365214675033813613250182344572844861720539891471223159617980557551511451654139996338876697337303736340590409308747754458597391516678257479211165683289302538031896036624434640004133613672960001752562361253875210586223798406901669439820829635720359137712443629686849688376132842934616757179914667774292926423158763242041114064861040433319515008162439430832545533990558966383933516382093209678334995873348055419818447318902207728198899752829096680592443443207039891175575864277335107335667297303422761186947317195382380755845551863043432933593514866346499584532798287673984640329834489308869277048510541750412386972683350368203523078265434317483554118582881785776576886293038222300741894373223304445767258110769300604705107436719762493574948097406380046947112689017072675099775202050305088622897958517949163135104195640848545949718752712726269984888731055853367284648269144759182121196045329257572935322548038016991994245397993775767064577823446803188597049665202049092548496024081377751494989312025253714755609712800710385498048948561796485523120640256354603251899056687594850841735746800382395434005161513002972263822143416910982363586112868272620655008805838764254768272618289554472024770229471790922541212067004707670352791880601335625363786163491227281363360358611961497355944759282646180997441587095398389905603032896856326773215283735370068985117111190497643400681081068739294969012162814926002334873502864257233841252012294677914480712374558115782219588764905183954083722339051178254052984496627707500401863754585166068617449812447041496004596502820030248162476020349095734947275536748590376041551898414570810873662668118935294080613805430709973270407594527780734849947456910326317293240003421046207701110960081988317909328832102049558106632774562444061748507206598944204494609142894224389010593686266420455112138911672915310316057007736392301379220948979745181286536827262135871216117601038777581291218401623391695627138691469607369425083418100067229720699193965668386946186381609348431377620598461065664592860456591310976920563091467865241595857588856192270928876064557163065302356805728812115783676784687994565460050609600073323063777987650363240477845676442187173683209581646048654563080802843965526400067085714147498269148579252721981136759866106927788765604089732383427411796859807915835890343290745583793023739478566651433880188444555416789830220727577832155848344221679794835101903369406969688172639209322326601725106073627678598525903252719720499792939168565962268970871958609564951816570340858956607806072713712377757244620260475092891786555366551035374131546455551516126463953748180475655966752322704469206712575585365416334752732767743063500569317279464516261780137280964309572106506516594614882048204454188393620055080051745144159262663281717155611596031050466409047839132615097877659213015131930955970969609300802051731659512101175834620907080492063597361002536415780944902145021374176199213250250317371583962985143007136851170551699177501239912283352043484355878865615373684210292874216358817191781210781272773232884411400670709245352452409236959291970338932293827169857066835954663564161002857141086961024542583023463345942978545582961234997916762381815754957566704148704407908873818891917751573321990501991883991599867382396912946522828390034832186379055724240349653021072838194692416558500464813191578497933970109207585497147981551471846216793397062464242819988166069005475701444768952984246730399011888895648822588279735413545178140404116972957770709554693479717639837317899161081113901915909526315081241601311862677613787523243955094376132706854054633631823156741752334955960823514871476694830891887243853678886430148641730138853912684329895099860035828846852852222592052635357263665040969683685717978167129193572932109638749506442441133757088477131518110472958483217437357472101360748952366700122672880877870155135418174612477406426152940037662910880597476044127830150960368016664382801575859785009756032722641432649415604933876377868862311453423305403570998073269712517829693161017702368690619756427878748960057301733845813264895317485806772167850985489510526845433767931188022596266480518764590420669484937299056162764063778667893360600593495505929329464566013647092637577358394195118839555886224583835649687691668536846908846318130958705997670157735163952695110840701194416586116036714028257153186122116209639186836479199442192454183075487964321629041434957763054022735159000850188879883550745079909236693353694203988028350568317107028222872717079171520634887948483895670145645668841493973769448576817205278847287840501970379937386686168547288845371384891021709272868994483754292411904586291255224571458891491801782320284927512340857894348208597581945509888739626389158170221636462509095326688163399480365429386657369080697907020971313826515894202885705938487192923533970996127633657303943968528526146812554398256323329533380289009255204892415059789806368173853160310436768477915396569243785710659929681069189364707805437028928719422033646406946921650732557343911036869067059246373090773304938370836761201236700367565983532780364381413511839736315391599502486541586937302919189674516881231493282934636588147100071899336356965975499508325533547849799248346578134399147723667167840892009127693936733668094121113094037185363417409125168404111143481389135267341663596965922908987649816505353114719726778934273672837163024592776570163553278591595923646516731177899225331072300804013205000555381334938802992486398846076964063171580583982602233821509768588335919673319783505880983168606778176291618850737006616714957891384853708825568933931007204650955999123771413740659392162232126959472354652442262856223988150218547401590601282203336748891978367738414227503539376381086764773036686819815669809810006829105192030659297566654109771556517593090946999996285963183979471700819820683029070167770665582437566341604550148358857902334222067912898892418635011130319140491520782794491508855421532037592060950744015887561126730978575860663714759245150160301425144900120465595818060952499910451625365518841450349518746265610943512244274109263930994207560235044583909986474329775841755571296386729610558910331269415841257838214826700637274697122296757373820832675329378792860161219551015799455408123524747270221110418487712523762285755299187892545667199343578480674653811458801831796156226181233097667046733230177590645963593079246690849235313550235104861905734406018273845853573010440344289209641537414195468999987536214579092870408194317969213589474996261453241264271426858709068343106383404228857973737453094982355902252687274299915341438024257471431913624539055202697544863969204041611480241893983332277568485916251936300628167857685205366359357745466331072289243094675893899412263501273863179816316186723670509680470493663468410622305987946966549058519112451174895079502299544942524902883740459057392983157097363388928441835770675824882009064191911313166187880041894265023203041292443382550492281974198185603256212574571856143822888714547800781102647447234525292952092866434731858983687558771047186527271754211261701771760160030644300391513610812588999986926291062319789246563388516434694288556511310861294994593303135532294252093335982572798753292143292464015617855285181275747603701114689052763307087458854175449298735735816730434414594997910014584234091768668559331483847544405817019702798094221997272336790796286301351463304420053984892868352556906337840129149240267473560350925179976101853541622114766911206103339626330949260333658785016887901254955886315362473602548515964166399762834538496969199080826426345803055117321767382860334572071814759032907863768328834553156348704437247281537980640505972879585489377061087418740759121301990574485575591215286990426535340849375205047121182579250318717588927898400062966866025689391528422377483999842069527939962371510275445976064474366911045682939085623630695638476182396138819968883330430097606919308770510525104774414646344270992878180679729721042708190834070375017165917720939995130860221599265789438246704900409767667818567412332954629337501784489950200140148207678188159010090762696275239213383481245585246697306812165035226647608304340065682464555181518924192626492953665623047057632901987663957441939529353711086757659752152100873685862915254960672442756715179152541343493809685485396278626899915277204619569030182734446407508755072306458777817715092999830624962504006707242160383272733090839545919179408446614006240923310764435914549031937661943691338733166517455767787901324093330516944649884104058957894293831546808495751126306248903236444997201629237631592119438536854816820473567704956619787851633563837795843843274022822660902726432073878292046204982935751222857052053829809802924068990127926263977763435534233028524142947981776072945235513435148357825235539708319294443183956338297812783035351917734499217853582676042728361394266647316904676373082838363692672770128774955380525281348300078002477250957059369624894382533271620965039286946600349390057829114410800541516176449552158506280700997513303706360456906661056449945674643759173534472861737074025236206504458382336090915435949358731905714763681802969368526724589076429591271356380025227263122242361589905286885201452980632734946738246812107064391322589864370108063418794089374823890748681955765665253492840868527396603577421551296448180826628927369806085340614921860991673327287017037349459216164719394880562781850090492029069893151077155101788969694809166499458549241285492537717599033266414779798642585599305302349724252113545417831393024546072130123398972429290905008020543323826799061307954563145340209544982488127390712444229077996515117788172776619283888389233478496706574549480114560244058131242545751297366247048567597162378397186998356359790083677585776872293124754088875582921221691467729481764083469961899433062404254467365126992204470633100073876759252591742337605783408125938169748983934916344837902225311678555754002393088859247606901119017173031675919691458562780043514641062975860545100762036709036361085915424380806158832076052891717086861074297973001091269158883396254493728080683840879274380052370843635728540868590713054175654768628408374047748301398747571288672536498458445103120927867275256402398564540474047823970667357908072605183788946509562911965422722287859186440421696219858957518478272196646366255696553620392341900083569712457244260345062569267419061246309852336780797732181438347607084483231058942496550931325367220262767787134789257910725371761915466951704987406082952192733694974531797297538032755786082483743323990080202421570209283587113480731136809229533206061692930977462726789180638312521726498143406567967234108706925926904934903562140398074910432855601934135907091112768525599896531526983782978272802837489558164191255025722208725224176321673264769764329167466402024776302051098745263032788809794980099933211294846495646275274282210686267365333797108962409668664695784151118257758636757176288969367624100284850943864852280638556977518037919196802247566175400047411608411112304369530761386220958831409059214855131656197907473806170363609493617122452267854795388099370110328332923542408619882381184926307984871048203142247232028474909570484672006886786037637891512446520952542318510939361376064876338338647173677363357814835798726777755417344621779365641919143085552710945445540214268070912960100272066378941652001361473916035903307457581940400683625723485475356283558585878586893518137901976698071203603003005783635155303984093214691838290810375487186631078345233945407870856057507230976696724570642980847466814742618305571797752941964051699484713474564503582867000133722215496230960218743842261038285915678445695223289160774203198620451022116210099787779655342567296839981930557848157005452861205068341297540634374897322803397569193949412665036495795618981343813908691401912354241587048040104761779852310188973312498490992848983158519915083553164572955269094018431371213897258788222046755995337060826813469067782183330490414046824742564810787043684714959527838551454797783702656213396902289069911750142439293195630234031607957212062152689290710759172400549371120515414462052825872728223923948887819953531269837077941560701697551950237481924090722133162390359629481385505888497053408375935986915990015430890210425085302932186113140774086703896825225176028868821986819526397539846079448453213887920924813259488809681186586158432779173121893827045505141338278327148823048551798446787307866281124489928566214715661917132815995878575483875505743664957927610643871777804896733068779168753289609120492879092308553557164532059051513800293920717123451168692264442315156644562199881292044034276324021992037044989154837898561810745618928060581947318269988088182303260327611163232777678308142584500586619366867008776888974470878605708826445118118010374290675495299047669442835469489533621412091819762230184367726917782491784380665257498678808340501057424703812078978139697643327207845975880047233411121998564688940150608441541006621182267740824596242645919744645970457803373906802077063882224249561120742455429788603750649670402091844258161944396149015505990655278100815094857045377494080006315947749804369286172495798482942372607752906231310845824456292252779193644925462297519693875067041889840888413057127717678479239667747771579596768938830075127204233113604705375190232746151336387217993572093617768914955312535673837051460227508226411048778305525199545548431267958626684666442860125789367740618539253422901420451051303396465454181684549437347013610523589770090984295293525875097820848396416518572202615223841499161149311247375546142208835028874800205582885521506326840009575887584861388891981033163131377542528844492065770273186308733195530037635136259037897488569261780872514985333367170229622759237764176653199645646499429693982935755581587420293532880948415926605721994536867511240627072983064243323746212521845804393802645133057866951651142091339273914361723627159611398817812982655797480486928392486474722363206140553029940858603837155185744448728334275518642741968834179555401725590689787387924435710735098368944311763817658009878989571066627668350483057203263035481628510183911399668252999273768412217510141503093385925676319796415850223197369643235348584424560126734738018659448934307377160648133033643395693967416328199541831996065515817500194711838232508209564805738118842221382556435956359002028503230528862736834559145945163066024860847307200329898630880836797393712430741390563458537372823072942673878130419709636966908319901473408679726887087258090952100245311195761303970500242146815187669353421785940275434002796563183589316451376029574121599428666616113879922382098340798676503065889440872101032813380504767955481726865657521664769335888512214129613198649602766125689242024349371835340987684455958330714867675445869765013991509210806956992451552108529126959988668127666873543423723304887711659913485134932090894779676797318772949670701622966322599882966035780179767625910296225713638054840670444561946276392923120976314862711442682768284107910954467885298831623550876362748840790457513260531464039243149661825720066087609152863903224534954417165700356610029710313500860212759578488813712088317836142165587223343771633289959590591697756700211912636888127573039881471408686132522064481350348459204672998832796578394918424200405728992149739076780726336243468779319492619730315663333799757442297063960301831297845355016662312494791761532226787757706499436524157642906331474089208967003973618536374923377364379565222925871860170241485992156169525796712245045330402628840950545688275689823440725672599622797069454829296722231690228191829804554775232602912831111290013029281862865995886971842028399540545854056259648405090170139763401654547257868742364398134688591280620316506996859162107219695690834338231665652118793961579583078968582342941086049449458363578957985233301736877899540025936733359389406915566521743476697173006415810156621554085584351401658995958953979311242625410623271546325602901421311923296032685584013414734378892671881699661709973051195144328185499314949061288238393471318541471114572745875255777307853407159283866098925156000924793830432246896073333056084866262817223386389508742400712845945999966564158189872034537447345933750258030252256041541125994420305995944564267789624154556783907644914404114691297486631872243680414252034757721353916503626647629151288562612379899650216007146214714897070043092261106570549145073987834226046970524766853612085160797237147258138161300027716945906912170095943681964875856721951483754192908814662078923210192446084919013446362403104668217921318419754974011548284602118384794691222476962789551356630181489446837961680946635646795652653518718423374856216497291781893123200958221719325250999578067665014372172625091069890223879769874597397686020534341105465681431142204560284846121529494193938216835786206840446510711157903531855502076508890534159826026976676366309380910583875645566367369850532566568172061863500285079555277254490072229277448127787871366018135773885549452837700863666549547762887959587079480457681003698650981773190119621247857652879072962499539343436781991858086156551647607006194169253168515807400982356041256724571307754053899366641329026371819679052722056993169480368111218394268281924244374968598693670461044874677359634040396360272626716810836004976382721399407687969549979310605153280495869299923404605954880100491408860245000409344725685176165414327361968469355093226957042916555928244812706141225050152591677214121285418841408699600818594317368177082878400167825661076655851938647517491720136838082784726176802646314934270816479323506464385739637090842921156545655124479296741263481941662865436640617746267063237711680977147284544901537890178322753622515907195896006934175495730726689710700543583872895878067682263737377783977897352000585636397048817325272849098496267330729583270495114989245964286061225033376301655424912810898853541051020699669262463525553887024837780506161514436580458781436663215536955460539728765784972627920701648118433669033743805058891569390178014465971281821111129241083793456050891102924658820981996830970020751716972104945860436350098303652803114539293076208220686794341207641503732139940296176703190015457274617461396798810383250689915649231664441507629480199451621262333281458160934801166337193786247269551703893565346048370469248585051359521508047029765008915005182975058470555009289325389458054346435121576494380959247754032262779061525847509385747638084513789826973193440581559127328874416821225477761760284745793004400076596682994095111137626618174314064309063989002144054919279656581779994970188552363954729537695410107399259191452366699996074409581992792570210161673573743089245998545532635468574083661398675770635520126670316272581830891913134772541028445581461341526830668691553229017617358775503429672654377200098392574776858105066181147038423069373221323083009102531148740002409220521013079090527944576777673575822463297575173282740490607285461826737665481206703037782522295349911595977903640628975112324946337509035870643573380555471090768129718341669809587121991121905183711566687668579618114828408088034075345303740967186914239734321409718340498419114047648106831560334981087087427011577700025661660584931354670457469713384029587323626344759455084030109217299752864943772789912555293210287939844206087271772842199719149230847323125732460357450177863501100408346495683597168870502212211608371931240647816906064580459328260723776575047225359070016037419301866530555014513620447778185141922350192953689388143212496432956646620929026486754866738015058496809922070620140881701222128127086894808983439856448057398630371035928140496624747076980165709446960257473101803651479913793412840801111970109143437028492387386137531680221419599566724478148685629308775625917047260805167336423917899015154997845059282761490066855563885361009507056885600305625803343796107662144072010014655781907406217135304764798060346506642952405077081302924332416250244901456219723765766095431197902551322558772208212601048542671856405841017061243698447960976433254958884435583624822189365902119094748788389935997361610404580442514994843368234769142139647685542628594701051046139444766470698417593243666494728553470835941734168179744705688066994093981925169125827250864893193848141484863371120343355866668972426410988861817555025544894074954798084145710699480683679528889511585482495934774439133172889551999020948471754332765927278602058550790486578180634279472742458135269214021478322514050997118451778821803608943985349693979064784751233897311374103067440715468490318609827732401314518198937641269770476144542293975909834248725138049800902558853369581363998416697241982739803497729091207001134389876766376252554549001294280517996494888192419649095304407944177720301062832319349317879900510349237120199916773506670522271500933997729808857622979502226632041907770139927980599709153686588121532708228491854752833553617111688169315729523794050517440191863900506934040590756673074007287926216104941571008116711204236105789681968900354576470350547885345412578943079230037229263836977208484922494770562307253136739693953254017722200484398350378780092141437011046890000389239540217027448663190479312284074031403046127560517219213962812805259450410814511192077058570935872397360017825866405161042753571717307290822659090145614868432491372639166035295535659777968268522341749969964755273736637860709936405375670193255782771093115553129426671826121134250331272227024858353373733469169297532171284095487632834190007853856421094475422903599054664094569797973809750522714315100508118090401038706122414463242634922270905345224818999891940887696424875210390949267235006636337463471983459812227004910385122285732322860863337113672889546076314234919010077098865981611027076691548369868039967286306462426158714831420930923256230854580233436616348328699154030604656765313143541397234857815125970902833468481277555610538446769694736746247114844283805672741743637445102311345370777926358864662557626167734661974035421982594953847372422293847626301670293500319896678079703757797617895589805572087709922701719706459142828775136129772433782881116663721292125416144265499289009440891364918191913634005238078031232098624785434280926991328243677027178052000009427705215615291115376414754357452259618422630262768976167731857613534298691413326510555232405005316308381242436025917807641900326299470789811536257619931816594900528742437070281031811381375994839870465598118978100783313327387405452476810373525623782502897041870575751406778174396438348269643110239796129249627494553449119193402242014250147129037944693928152516418572605080891256317960047052274078147594141189626080729655082142208600933842614034533841180872942627834830592783923348838247026965305575917027001187068566847357308631822291589816956493114680353531310533701448035493676930664465108289452099578093904671762232126796969911741470811821453636498359386316400112246223943301179766807927372362903587249675735880453452463862096032007777609215922072453001570817889639040665844695424641134508731193159311575737646507824522410963887430333762124087631777808692648024803476616624292152676209695586861331316213810945889880734298796320831061880571072910908739358604469555015714729710683651596063111466173368271663998703709873787813268615994462668606367388088960644655956315595824869673325768947687076209159249356293738927126337908883077459247516236090788673383250207138074730277983121227171944537480300435406348214524059643938884114495184988462334446639786756053860268335448008026254982027665401728953405353157370673324832082702023348881500172662971551258323319908481319090265535114432567056840117151255378799682305749548221534581810563782177653678529196084883364591904655001849946798157198473848761977648717299946554603453624715633705395472631058603253896407301171050240591684414652095108340795512276985687750559253325253425856828704126528116278905096761400078905133432191522589672305129168685230017104921483454902196453303533669010367367134397449798358041330326753084860600388128733302366552364882121713553975085873410030022489078739183136076037694734311575949352185366496028724685024985077547696845244447297613461021363578590766595270991732616030817239974181107796172294644308499442179029776222632603421927154933881760471180958620810623112889632848819161002336192993297836313600720771879784542039568524678388820476072995227334452496436806509694172201878028809263141544759666331576281137586338934229431573349615392596829517329709211636808037632110527149874758215822711836990485445618252392403722421764421199121009598845176660905824186558835975572880959093877453507448743475091447861011531298478499037471150153875852488383921524709580456393284788107657274882196978380030331539793101527473166647507841865838960052129549107352166079672020996561630655224132694081254094793083911646346570752892770808305387605779949834854739965235771265343603488597355883279982430479795810336627567058371050479732713586712464407038522817320678368128947634657504559404832122218612385857849015813655271451204476194328910845051150915289300214065626298700982227842146860413932576986178612009850207810872109412275994934929292940607977191776282868978074624767085555496762505080100055724492736818170824094840333614566300853275878025099218437220428297714152464738250291657182414039008542640099829471246017794845145382996473675584195071457994983752595072740965390674345400757562749844257768525585411976339038130919466223722748979001881737686564182593567497613521138486067457077849437525753069705915739098962649616729601530268250219078578892003929901090086161631561113039135348270112032037223075563888965193158067334838928292746874949214432167345922483543759458557946650729454328959338112347900889605105943098502511701502048131964777714036828696192365335248868738419526453849754606779056080605618170719522143009253947839583426201019131418498554291073128252943789773013753566008498262361649896406789853962308191565986226503020573041337994914993831147787089239438710947160993526610111208955244187464323120091862734763227686835540712050247536123622214302697038013614204528092749958312148477245041215731865439959565224510518829999071263667966039138874582840392830337958460713330990377553958387425899822687187229139615292599653372638126520632282043505418544676305437099122862402807799481204802711651475027536509990879358327025433674826913541165309635068388429727521746322061841913240061816030673204982452366016456962979250621374458785912088292621321022210709489493756803390022730844349633993172195557415789446070637865636177921554285963621429197909923485891157702841979845979481264430544632188844718134208789678993223901089961932531521199579183576712129764163947281840477268587917830502516275222410273348741202451299962780034646084090115840536209125258660450627227335307406116142302081662919808092128362278601732999839894095847418898429702117626141203868269522736312988753157738878121987168664968308182944604989508824425520112218597603293614861965630836110929852855063666140837937314208673740707687350517675427619864110477374955788726949399519843542413877508895635388603285677530093427743852134771977134836810001609371549048639571214608434599811472238275733737844772061995658888814376903237580392103819367342115983582227898859416450073629907283451821439430014914442368270888290074466649048321162624178460155095447680105254822394965767404395286811590215751374684389728620595115464003054861925767555067981120896010207346470983536070836887098872679516821665830267411205381755918716742314164319727245534749143492104990900590904077053455844496778048230232862455605049560347920848928850822352478425667903695395954602220982267578927603524702630455484955731204503527400803973676809703005011965836627614905227474609716092323075805945025976041515057587120684477821975411326508865500718864885267338750818637358094229590856558300939016619514698974346784459496427842581924445743485694590874254314349457582860138052895391105101680657515239492147286283403645296199771712156425627172129561471417165857021916023310091822966196153221653142407947140749471606693404187607314878818957888239793241468665819126091911945566281018434737459638569253746835836583413830609209656306624004111718137679342584216580755481016669652924962112171385310573484740460526534709625036342536862295107070898314843913840171221601818331834171242218694325258416473697778596020906575320515247985833508099860325737921389498304399145580249347114274177389673074071965475680600455569519857434552278090418230256723772103351425892375346282589379798688420210609992712503782076983279637065466680910868894361194240895652592022973290358476838945406568960571594365347757400593561604964930009277752143683862211940915934136647177253041660705100598976785481683077752358376908798282439286041321027020446901783726318142343269030542032016926658757328687366866902225526389012511768370122716218888573960298836424058984184981450717284413823946799408926252708408322759605148355720601157337844729103419144164134384708747898889541956877565552714031836029994301168484562882608986533514364368417821974552853387364977018766794154233405095290191456310930763751170340828254744684511723402956022220678617259701607788251906524994450091186591412059500337766193472342076415257340317881674861817574026269378159969958663264011381594089998494263149897294525973770767425021559497238636561178453284448708588418576639930641755419078463973105468266377348996995530108971346914595539214814247444646270496808818941010267783273812566842233450298818341126041083476577456767877413701436712101632118680169418937959062785075527504416864518047952761108612074596117267145142402131601621197082730609454316338980115442192986248546474476182928199825884980043727926654161219061394862582849999585561196339439092654283591903065873140255975678171430996892630419430561641656383297269096554453540529737558746264786025911568756641342500718835888892421287855032730180858177343907590492899339179258940526395159825101232553610890585028039693906281798068295122938676352124110294527954989648623036358997928689564137548234784395352096792079013597665427870924852861675495572504159416308038820747471196156296467902333997689318226784857492850658228520718924278062822417120284800872734246612518885569311237365389097672326986966961320525355652153852201311899640774431870732698160987478073243238326880516705809781461800375767562831388015182609626322891249693988067300013988449907638852620406018484012687796765836486654459458406432710622436042860234455457495940340832156555438170331997750342372655234696859495481969543207764103793681381210208676392299574619571664103716517751212111820898536131564212823321697589951309523147872096551553804233382189695392102212533110052946845833010394248825144928601500137042910868099610729356775863624943089617403783295138037367163377502593528533593212398417015542288635347114599230453858546997802961811497701848178009563854866952128797947433885042508228429197538360364537542644078776617514088984262757407950101505483430711931774744681577498315111647988713148637860644216430390150556470732476682423824173552786099850229372289476936082278596734771548606937001334230221994482823147581263097855843925972462801624803802409385803709896896849031853530496606829541597948086690709588406698940638844878579025361391488020916865811495014653306652675722140575525885784533148738399819291073862670767439206556585935739457078791182883739613922971060783718341754587573308616376940989811361429815159351675479930984916957121355573701157829039091737757113591858571704064039240145932499627838880497055922333891802715353119206854834666606313043223822038389485150234137712956564205616978818159933732403640049879737391003426832073222054368584103425981595224557979736073243816209556715665212281461004474358655705951179147369138399272330849276698107888559211383504073404723356246315918540546721092095142429064384702329261366313410713402973630133448470653160349646885307686353301243104886356174453327671463894481216819552918182195907622150752551694763186741395265176224321200773551378016668325877275870688621197317440497826506776989954495684347592083010920112015504136682955554436828813184794367531884470582651854473562452124863237572596420678068599069832771218918139505197317446509994154180781084027347056214184338279793770675508316165263393370036583411230074500696657523504113831591037558426038743057292285836182303250094589511370612257279455738471094559443125614634969587223482845492838423368201035839083774873381082691429280656829999831565190103039525880095012408876400223985386675172455403344544752161507663916260278338861866976610099010318050006865014885775765025477161234920991090769168737976742581814939671725394760571193715739148058369750223777042765803826592644476058890998746241293320714589115908480072977273186886263985672184166416108536415904281590494818052991221703763569697630287452362860589805611381104919751481362891798790369945769213291720297494594251693573534939623185032445818468473737640797696037790228256319135840743499908845468323084478854357969987575272414422444919430058355559022164587765156892393556232872758783415599868992586768293019643989844399360066791981016924676687318939775509557924922262768997148157382554767391566202483176957780611666346292486653334980071349891882614520259726393396320499160462415576702949749172272809119628804580437285522969789066425236793310442418751474211410973455692105103282896057866428433811853656629055983914413789291051280486418350398112438626086628823071901238404406078894427071399346140576286182283082747640922450808218178182162520281562283050838143763606031138935539373026157842439886848719155257560443390699379424950341387973811946152854363634498692424442509158611483188344935443950394357562954184255591637776231653359160749735273635979040692067844003985503448353026407040012469570638338041146879754874702354670284732796364453115070776163915755276705589444149599343387309812043306334081789874878560072648507929176932152433786018473163478720631764913564952640516203412625864832793080781288860318335931613349034509285695836927632379498704104365253631768806956878162275788253212462865476991414342531362865144316585488706399998195918163712286432534082610935149040534568124408001685524878845308551693539659749187527720089024737803265703970199995955823048251067505694465479530214363167094733910750004198011968102582059977882142832379279441688103389275389866222490449394510390924736097781740386201978360312977150639784491443801610909555372295577968320882577521286488694773371447348216306946111009946036297793253674765338018995789354086528629247540892462310568057810104113232481592900954473982582381956161407441061542433951234556687731005234529339529162426953796383458487704304077603882706629281012755522613593302331224139692312451225260185952507256849157102498869168150412766709858580229535759080975382946596489115524049030680764979520048964947655562146806067675813544382956075523059519487577169374579112458394450088221363337161475566192033936716569940395314805497470639796349096341966706502105358968803779891110887314218747479211259601019888355442113110297650616012272556519780430859078061093022441732480041813876866207633408857422946981908188977484431783344313612686738591326372193003081335169276188687315655731720163310315583164468928499429883603277386735328729632789044311813175914828409377836980520340162306767754391496920189424012974994518305252800318196724371499656908672579679542249942809140295270687823466239830532592176907846053300369756069983166990677976414873292890334499177963721610665458146167984448278559413725150703042384110737035504148892202613431264219801404250595350276848605829678082151920405465630101405776263265769677233476612235167105453421274494667214391544587397402957601293136843574676829186398750006597090009728157601936676368127872135061951406973411576902002626931810036879629376861095854564894554416598824684590772035613692969797076772327654348511662483467487769646719704725742172793449230215642538340958872053835874383880149257735293517035786840059885085087948554373869621643600023816420035635834069475515069809340985286165387040787984034525563417918846860396486238000977985009424204450520626582734706171842245431844306738569962710378634352352621667815160013264269016904299383371602037877628421385104499101338923591140120479090490933848003172435796351219359734561244522905751511126545500106907776854968981510104237534970693663308054731021287344014137887694415127793027849203653180046397752253228499818383285356419066963046356676486532857945934473856871007553837827015186919621393069549357441740567560555429455372853505931456727454582788975017356700141316275995842500260867335410261761065088327544608134937929075623784291558524915922013117420399105013976235459360084347627623462161269902902401759448918777252316234235576636432115433342004960389943212160607413823356813466199016208230882532781282444574160456725556709815991593203678294793125261367747103854229047700982331092995155684793193723926341841231766163349312465108388241143556786900035280798463235289615731843294055421331714871079574992970594508525289746035840766886175490960074166335474363024916226670532521232749198219966596652780967369976554079784732980987693829579541994073011168281096084809816687102199074021701764619977756142247966507207665126283570334951765564871610226138094129156613027697021046538339697654096885693547154252376193028195090859803278562819011588873390218835687449439969685989971139299186250323626217076244161136974130474834746091022896921268382940681145530802398202090869821511494448681084208720070490272964292757136802495493611300136758307184244520525849911554553539739354341979809406577432544491945032713322334246957185263402686934469130544280185375867332591829465286570292523623046429986479265349701913746771200611064758700966237926674731866694960306542938917059505792783459961202730326517782636035725861130863373239826537938242298870350678719361332501666027913098579674076015495436989815032306151396929315669530709466948112550486165402820754053589300187836587660311422331065825432091649691124616540094696272040561252024747482617932233429012162290503374892009049464988641408555168172554167282023576425329083442361908544995297970125612634774309138586382717812801316186404896441087575382119715027693773184750669372239889238849445461272945823978349462495813247440270054162461852373216503956654855846124600278212119262652275945297636804695023878387895343073005081200113064280555708795128706097938523091393077302981466451303934653107044675591796880183540315865335285344764596450101919112043606017957463063099047926386833031606446056487794521397261327672570614419579414909574607162735266977592601302629897009884274019627625501333316318920403081020773415171389695757261621355751204380728492789120894965259122625200617058096665564611397518833361958927243784033066831927148372750269266936984397032266877751524467838133118103346188481221625841817051248890664971933095371883059674359782749443737371777741304337487696462769824025900866139533152709593674418132521674454483857491629312299309019940765924251972178763312180627192899200146803004609985861417091238935254363883127891534358239286220883295470567198146349388191577357370319057467814075416143807811698417724029811641196204124687619443389733025987106370891913705022691505167714048362424501565989112417950012186973202947689202227810157622230401373913066307976458609165792936074077116481977625775527911968445117628467152771675766031499773346716800601996680581519313442617974079237932761279399828346062526472304144420688060506441065330485246926520278498144770097509041711960166869607970687074356682956355082233503184231824085396452812686893839470303213803496926947441315241033256840682350877133738073841739273814188364711107394736589510091009253217609719990398843630981380365882275576060352105496581718439725748636733109695065817030201791046922166831428427183879780589816328743631369503958440924293492385605755662341810992805458091032077821816434830324379698439813798895622052263984439978760045210575881718315748863531597071414637685465677391212710644169913464826468577228656023494381111336116967615547778747266682569269501350262519981295584223678331386378669521280907834406033573627160904554841075394104910491047760897411956140343264598781571669475287609609375913302526652351967022524413209014392696992439430909579840211976191050917842335261889522714135313382922575659457893605687870518318274705682074515036690872358665410157907786172665212195978472201565270639968930760401350943070989582800824875050471842781094634549046518156598892209680032431437969779469017343760351454772466348418756875285488009404830845645658744338510989805425595765297365888382203930690624200416991692787965543683971183140723424225547927877136841259086641588877902636533056714340893542857704825998613478489030688068857655222836376296383669215679556244104410447748764660378758425948802426663693123062831657055341583716143697072797765390558708479488462525355482282631903114246823442224227308699170116650016789860741814330447399429557103012436951191589472006661054647788202611833856575752329883725491075932530416011297587695845460521821371002990201290021712585335377163686907663954430897531145929569672801426491493607426537727534928332768679819290256141137141959202036522065248591072078819007633538091771661037203621842597702406063099435805713742574933616166957399334149632001996615407367686592721261180440960896050588557051871433464691790799815031209643334615291455661220321186648854666353870207222379951175633718588761806855404847073903652902875364685237754500884131269382912450428795516259265211366060091041953122085911126641552181469767397939633618312388809596285574046840047343439736480620154861427501213305922978138840797929914745771261350630756707238094458698810206501897503990842663282711658305113404867334198138531367476888542681753062002560300455922080139968517611888062602850854746057963694116743253037170609836897517979145485129606237456067847495635954056541346385089207699854410539785626409338450054875146217219682597274754683936809980774850046485751800500352805047128337076083815742631944549644510410435444549566702075332027145795098474158400619924557273118962293110405000850736621582917886435611595199139705968084778382442608520591063749494670305545763544788505051565847713460921992667734443198045082434674147950183595485110353038130432134051884445559876828186898038106722120296539938450912307979285787238747074195027844932203889908483836935527910778696068600218162909560695266266286617988649196495248445631771558424045545247425753696160726485484337475833632919983112519053586754072317443505344729913917630110131808184269383114241051965116706131648640927404767788771934300932000779050830714595545639326815613514564104461127172637286018914037234084090273117342405095276043766467024503632285225635496019571156145611394243633440840314422256685153219666292680550192725958165958752697444459121205460991229674272779640645997428657415670619477546586209011545665486139837852203819908007576176097519402169261768177660487146047812143196391103105301716303526059994394474435739093172821835069506442264816143076367848181306531656087310005676019004965296801636419705500703693901124862744553744624894448000723372670520494784520697700480646745203547596663031268055152694313148773102098703587868390683055084257036999372657547577271896360069864285458461187109047512763151210495224224451854980659455297808986648802269276374791931088310636709496839757074624832468684770454536061652946711433501407346743571341676119733643612032737709781346389749963351382919443430308683849612756169167923007444042889506717275066879274128621762606301616223898570764276398630358791812144238892272071392639092570075141256292184115428356961635738281985959122684504118515050255152774540195960015523374791312224677018916070280628955368942414391672000898994443763647154571698826682957693893062904598617053683176791361088987796092033101915635420061562540334104381433217281274936573752867008552830821625058115440251489789517019961620314134780585912647697109698309334324404491424154130709291947832789219724082400511546243430417169316364536849291124655690783321472572991478870609964374150715817175613341514491393773077812815150996270372298006355635655839882175585090301141206874046337084660009320295077815178850045463754338802659704359176491957001978031754204200704706568750628581122975331482766065487874034658932184381940805433456826265620465391597847086575573061806464710814322732716146397505482498381700143580684200409907103157363819924334151391385025395148525427775923382831970850232616401847595085678644268366820687361419517864724028650733268375655345613822980430098226911313929819169174225690036201425888715594388606838733811143946423914782267854561926426093554762390559467655532614469657583676964449365806191333833630998137826068434299222983841945099870724600475108690030889399707025898592984423051529345416765568085386334874207236482224549118352519177103579759296823329620609189819314985261268299812116249307918361114464059394218107308950845163750129980844963923142473663676102634183827965310654679905489627030447236646572142687061548793967487532440246613633237554563836587200000062709594773879160564921879212230821946682833783240678793088893017712052137725633606473676270168122713152359611878598610067875981115055706638271133679936068827990621133011035967493736273939781383370963935829663094972213895167729178385402130967572386036648967730265418599624540664873803301614954079986139274569615591016292373590397249521220377982105494509249281325378047952448797891606869587969710182870244598529012113018502459402410675473675744128512973112038475337785645373717524282021744374400372711248102244855076964370521823330477491817724622876354647311490824852984246740920263167816818136361077030601157725830507133086481669074947286634790001808614643277955046351638068922343449277015011087744744459090346456763879030186022020307957682255285757111847300076294351355725956078289885133968813271217362543074278423975870993842427215228884198306013959950385350545922317514741304513818660667230682212788337123218155946298705327330555068157262799926647470504709359611496129857343592119770299231378851422986305639498027865252719680889904001924142628884209115714836745823727536115225467370300831918749482052428809202889256741578716582639978458736914538396280175660169179910759694092148293355144887552279077196048909162283087654743880802157924518033988380208843788101598247817348233846630927630518296957837456180794470715896763420555084931742125874322292533377405280946902097657369261283397420543262360661068403829873384341831550012772762186146925141754041991436455876961946514457563782003932777309165519865176966688491636434829052400565470524660261456049496904053559446831761177870999578560433530495874305557892162250148831873723282456597815169650712028860521395686315297766038841249093863697871863175747723223643937619932037069670463898462848715648480321683888075715548769182711033417744142883934935258005767618456727835872970501349477556157202637978160088487581741181305471266978546191038720666832972385433106599795400969069171570148204745316479726248388867635428300927752788130085580994942161096818236985657158218452152662858654774379971891116604353212490560538697577361874103383857619516516433196570040094074647520969462578073188216112051690212500987391599776695584660005759400806497853358581505639392112087907146084892450165709921762304068041475759865762787058251229381823227841997128192227361668489853024266595843028247554237164982238343829146829043643563125916209946049733593125846551747108229880667241248983053045989308974151011483225851797964070906100259066345997435750336288284255333629045989396951154016231674932125666556604162130473552674262379370448924344955146887624110152257640916133281452051488499615297679029347669931354359279543323849866764623583526795814438509314350111932567152951846351795658493509575749311527695345502022644578893193181417070488388679506756625024359987205541664880266506276373904509659281532622813295564435866161165656930001534840644438125575703716119945438352870519830858518451921936660494471986517679421380562103798771108964307540794727489301787116115329551387384441474368285929607421586890988399350836085193031800058052583196374286098667889406422398043199568036766705377693927031552542803900238906061423517267532065473267378199415447698470403221989712487125605053174361997022756029039557987122246627221625442887609803271837192150024014972554719818728641370007205198494351788911479183569086707917635652540230638364796946125723392842264971721300209109613823125070901468763595356573515761320750746197597699834979719976388847790575514729801350626671315962565303186349755779918609732401402491292832191097269360497627584750613771100222209478998362843349874386111329331794015081517200884942814747687078875491194576209518584631008338293620919134843122346204195043837668185082913661051125603469284143622071278799298345686440526201568220086896321668093594834498085713034181028345486192786965264058647256865273536827370773283798234664359436875422857722213140962008310715643408091917157741629572120787788262690409186775611144351040092436867501297224480969983028922225712372925808693117061913029799837550206338080380969158289207411956036780836519549674152640953892507119037881553873129392675078387341906027021261259500955072032643033054443688438598259554266835360652670099806356371014110924686912461988228125869818861351557247689144484999953198624003537474857448938934788446802881243683209746000439983086716962416136632325078158900017127002786666352633643972046816082678996841244332597650726176217246329866598483602186404348250231382687467395719675140086163060589631570552080617191958257203358415297192208583206255535375117376807919710007120519639530101447815161785014978541727194685285588202648625834877735634201705197340315429973440100603508883965400866266569786556618579571135174773301715703014139237534685062969066188820031673927180173152145003666710161330491933837907291073574230881943364328898194398115899914717275026887543058005825075324834245159901981061397460746786362838783506019716734421792203653440621727943296758575299507177040940425382391508155172056239271970210092487656807206705012828105474279196628462953302884633126709067015634576876330399008768559587182951304454266762062553966073204774360380563663452557673738388747139005782636488015766340807074556018641828782123489392985501886100777704173879858441905446911078725298178457087435165868861795609919358740405926948993704026884403935552143990466077363738268777637582928136935974404175593337112477148325652622326827403851975463682413960409478545545977228788091223314180065423292615121390555399238295873301331337890447246512533379781722885432414494608493202323355887970072937823923646599236132524249399667820229001294755415744346327258736581272685212259584319077534089000122328839777864593340272190613558034913667581321541191386899933289440673884169098861892825705009819487594691751410742772444490711804933201003652404919152239323389928767062910532591678023158380999874139692088857884778877639410454859565599364581388355631287095538157311885726806702670225452543639429978166715283865158361623943783766764789597243185361331312056347071699389978333346474997990704915094083809820862833167514888380030098363741480323510323755017689416097624265202544992337230424315966515775681366691020101442953457962783695535610338950526781678918502185303753358442001193973035726204748410009090598204783579614068659371380722110494381169879052847258756309025501824599082753553794148967654670027864950210087505563687702189407423756925554566023987331392653450465110650580321926074394063696178939686355286318428711588588774351199045268516136539098540064953236131489718009747359538113501205727897526665952974984373295630831804371426479698898605502253428572397841577926415916358612979643609302882872465549818540451435769842561812757118716634516280002688179309496071931268121279986411825054694688348626322364982948408634692402052142948907028463542944815210025869905004714806293292649935819352695924003722565210415243475346660985819066933977846797309520194888767422226333220556569098801445121186249408466586028196276356298940165495922871618664852071612606430592527816287217445472387291182130078582204833173615328095563268312524120193675925046654267667386776438184797024424476731699857844826081356576439764199427919874769139567503861303625844684758686663699255039165659747979758312256856074109199207086675959440078550722607200030934355044579942361043347762365466841490270067524518100137708259417812816513627024885190526525600726287708091578132832262803353187848111421887763610914872070169731062601023662305044845788616509587660646372049555828672056947830135862021084401891963556319937604728200945089687348048151269623831228151791133062883862754109731312550991541812295315888352406440026312935574284304497295434443346101066813272786502524379824892322267566885109533102720557612296085782851668437023474363435238113813062914872449017381690465091890118768653550910085121993085370643061523623008283981224541669600007586879172525024251101444117248700427360958496372535829827580194962703694183361461662226327642846666798459809160777804399470140503109363784780634720679963096073114869467676123248032617938634800245673408429663936015621400042749275865275561719330809080761187248490990366632965838703212319714544726314280976488768814704825303714318992853547895507184724195342099881914483343678893085556235396438736405020431296296300461110154865450220668986644492897378671748079213086443309442825627204605802009196745904087721598974200535514404162918139410173557370344822958995260348718322505644875281978793723201794955873851132760519014134046585289707728187074259585783488464885280420662470556963471550475836516326726105656815310903521104843716612944907427114060777206477848513099602499744124180069323081470274384454172767730981523004788311334035231561927491415266203685410162697284816389918264688046615852083914449326221037522900303008356050994365938681298510780020708577835743414377386913138942025573550435053775781807597492082641877702442664131150297521942772235537080085202799685710750686080200253763126136199301619434854554137236710893592171896469713928389498569357675266760080172936500043636528600589458163076843887054685619215671753960520260153328457089417967431903123484132077599546711996050708905596979069736913641764723672185136566213626500118155963193930796726115058334166613441235342738544863405935932252911582527888637856174848639788127157543787333471763434271822919585613442685218245162217555168902325703632770689210004899432888188288069501659480609664186525548564496258401711598889917351274566736800920492126035224776941860662212249215835259382111401037880050512532004808814178785447365781542722739091503181146875624735110373408339228105918813452053832036330015766621440546591013075590050565303727528276367471963463252452606737450492818833523812650040767016631070848899149858422303519893391957146820176013187038509068354295908431492781979789977653945955960249196734322840286037523117789256041276321980098041190579048917992251095050992302572097853569430351805614896095487134158910504961555183047684467478301027834146208106561914992574697162576729968356928062581080930203852484324108375354575877684675818364869094981358633279743798124171879103748103117620932017593934648502330575201883370612262179489989624164237657190647428592137576727429430602085123198462791631818228178058297999191212708170462284840344620586288264642742111267356992105752992635520469394472505198255434688304064761217923802877575018938093183710851202810810267979840786676200844358669942737840756018013813869377494036592271269655076248261376019301058858667706035565127462424403738342632318931267487348151920463143072529654987864729837475572540893933485804216750914446260609772047895975978734842268952566353951401519036126402381612101740675746356804033190833074577227145165575128194813726448356312335160018923447184136656480737101977244510511252225640110274528689909373142999922103606993022165602702691964109696317860197768930259167144951335590069690374299963805383084196984765034948790467667075952964651818712459518840622554418204780281833474105262087737776244152056785786884499429741805892501486025720653361895712270380413770226089094530726768990546025441420659362953102947137642513548300383281007997700958792145642627187785757878956248455973024078377291600189189340108173059460444587517636631802533156808521284942173531442067449869922669506782125310681375890409419347636273669023417006716853567780958526539743891999261929853063505970457351482564228570787076432639450958712562251976754897741437461003691347491200674429370635630058119155527048646988047019177338219144569437978281251649970241560177791891799572437381572421154450075924975077334164046195272660936084457561026373926642507934734170860317974802696946005689406081509405061029846612246801803351625037735355710348316991495519847324887555028677880532726989710096484894135072999972182698122761215352037872631889987499665737533681063479447621009648987042914492060168363274996445984228271618649268969363279448341557715093587435967429300880580837179442870133977886072780117596053056158474408376129026517959508379031702185881277086177869118812618050108791462293090828962715053697439113069872315264773188569667715490970346754464932710149126646640827804203142781476470242684303758137214450350221021893816009497711088253504947700881990318394737968542474787719898367730646807148644779368234938227475003106204081517438990965051671159130164174220259118333705734568128203201783294951821468027392502438729378364128387856453758552313868053007642692895379199946246155073141523061173397306739924887413782509824610164731831482454238684090225210093118205078752325085589221425445140072144224775386996134683749353289086165297162308440651190942410869441409579578626286449280401666913873010961961279116188696726998896111216543865271853560652071184789519231361309470598423540105780250648045681232216397746658013728481965711383827822593495796173951219419511661057283183343206738169277218794061826440040487990655762700050938336669845789500347495417164756650619632294250159223921419039296962589545159076378519619160886539615053706073191526899778916680070133219080015910544464186840224333488980554538684645491313256060830458047511249379747429488083412087901050643073478971869362686316286435949888247701661713527721176394099457473383878709438877571567353711440045345493908215668813711020026131503977131579602468754050918126181742832050907289740116142828906933979322517603357447180076356249559112349079194151252904154032186292762765593489958044369868515715306580734188653711982212285488798656475910326133694364147641219030132212828102826957271846538917665997008267011411673208851122595802245979930916085284212463626234388247140282436269600057990923937789578772391716809304930705302184698655612614524685907535358197428811996060696821364692449574208661974345819350871255701560638210005146128163303168365463194034937190627169288162950497950867086837493360270769242650791877418880089000785550743054853015911507893924355519371623014900051579774284850682160245439644801954344475197120285268723348532718849710738909977580515307750514139895895435010144154075430345258044035686799933329441456638614257114333720556642344009012391957366873377578006934891783376414640888954568399373725618505050223557712457408491590353159616247120483271153104167065970976137182575320076284222280321214711008743031601071964440497088012317294288754630006449829978233600540869380815657696208005620722633596901324091494241813385493779064324543448253556691921441974590120006722284914992078084876009348337038407999152446011800307344899513593016048128039338556291899970144599598566926191874193495256749766860739126807421909181386708522854505207540585281375311005410023023941681604072336811777582488441463309814948855341896804575321212498778876534480217958820053914888933611070422957073778567125230167325490009520401395958750390051337328537590113713643392342278991674940847175202983536890453189274525900506754325533664633302165017663157651148039468858977172431644393830559308763978619435626132633061776007415064426877139577708749832098531892852724495208050926924217925226809864972817937576736766520612312652025325572103266514108326955132373258211722707389489032936994428673054339619783280450120956855634888090770552815526157122416320315899793180076243349313950412304380416803329086378824964640952068258930622875636312245505041301332101657236882911708215642826973213290703214787227236179308770281567640731443607575346321503325076678286699734405163500541667181493246289705071389947933523424168448316960798578456757902813485626427179383791432358903425640051224582638566300603667599907108960268797116349667652419325102073797174786975089172267516766352923644570244202746548357116201887139646895542355608407709513194318826875415398148020011233687454510970198982998064138275131576003605467498670497827119193622041769397888910429769479528650988334756411393257753109590572962827863934302149380018818733050870326111803322549049117834938068922379259395649675741229624236556314067380788243571957603698582514112303446451868204544152247361356001932733695679947343950702081340250827848704754719447163320642131588985202775568196411737133799606417751215392718445677699524272207167775131387801496121030834632686925701601073535548353042468936487704521258340129782834083542820564179391473937060223495714643024816061776679500932502930273542452338072570043172552092092441167461330254831538253078940481342992308062941414992134111870786874328099973399491363084540308951251359200720650387419734935564731661361729487319490421221485637548921824855347873447589094506866505604219370271940864179333174302954122289165942352845213465391949796196261443112054222548374376830010255124759089613054317071911239424585556842357770213723355151722508336489853345988650243743215017731535033007140562481764062749950599686734346396431334021918613833122028775997961933416772962439307624430607373538315845712811222720517219290597127484547517142763662373409465440557450524437634470519362583870296892506193590051562621937446604764750689562940470748103240163428029151889346467250361719948603558789385049952400079446131666175046997718075153244100147398659126746556542427676691565766132409869578153252889547375710904647811581303744644290180020180119128152939294937449370191458291824782038247399397682028477269155972558867496254559379872450895723520174285068991894935675129742557445469689754467965821597321264079382205551472301118079504317889826653337759108111814129606911174481531521187703023636683652448072487406496579130349177246126673381923174650666417466408110691185371576421256206095521650022350375065610614285268891442036461611821301670629316412463839240995688622606903470503713135920225195440556077999639007720524538024756327349942974573657395241895954755843560868212748123740353168415662762321390750131217997016547994607100396914127985448512255429660699857227708791372733581186587803865251082612315052220433540863985972848762622929096036031624067074804165633353171669772271557325447012820828090622536832932755249348933310794023666083489292775152598428844608350255614070220255402453991583282956689372116140390914488607214634683382692580638081090270046329239811306883496965611233708438011080473797113476842879141963303474151668858484244025391956877836083222992584429987473178704292826472100831726311792066371354795818472811236732264815242535752550217000941334343567250423369162453134441436353527317597683434963572175673199244151736388344130083703261703619150779477635783569963481923347803789275688600005348244412338019424818433544423740661855123594257812399480681339402921339635113567281696319561271810201324300815509430900407012859788845962294722255549537279247395679556460197728472022296947836716625542063233270395359941335563277307322865155224023801926168448838450576422207203028609998749808981492770243920953128519971637283637115823521900812899903845239700876074838670738180447197338898173628468213764944699845042199697218096914006420801437864300210934371091407965174877869809526059501711592209680782948214070837099306146058344573486879088583700601780465234553848120565099069997542007639292981554037647647501784157979365609524505348482543107627731705870644699306183566088014327328314333672591608307090723341172176204735281985597424907706227062296092813671756911203241256750961253297960458249739840568363387024541172262587992760813806572958816500424898931131381801128515131628649541719736076737916663030656421732313755005548222564515718933332561090594460104577788451690861498801567089520203000202741976094712863978941557943533050562074248850556380760929717324009847424085557096683607260650094985881630052220485298425518969594932007671339388197454418008749179094138587485363343598878000942399333597274110568548404921611095722380259599078444467849440000633060244166936343697931766881471064297735242470849395394941415625202083817511677597371241684881219027250220253964324361495432304521275027696271934353364665834710764171580088892575185716366817525271984225677968773548282148973987089898112386918226398543819252936410702144898963773186553264932938930050814162907137481773682574687087129521895310966062321203203519008817081131761544722113331681679896474761706780329701079816558223411877965386615234138506962207631161014346993208066592848011915308497011267567005491473288929019144314577979038229194246048207831196992150462412656164160390504622114100743615341127404040502837587855917882555945909190327680732294536124259021543843692331478596462958704025528089507337684361678197911058868578985092917007908175610548270039440936468178519739197855385691978329153883584011004826758770029442709899197923840498167363196310825975271791704504796212419146511368444597499895049879121583640988111833315729881901353721428099581314686340385623798403817197976726270755706901751414383280019458730725957989972979956100362581259343491476661133843025581255995325975597071646828908725188319682194608675101211556977951746849564284469211308600131949440041523352797478045648911454245549127278803447477157020185087408563301604171824894411204553878528903013695657421661007219797152395445904584815831934632223708679841136364843961703697260344997110096082284547210122863294839132289797026884097315337558913910392454103907136801293932727393296104710920558643078620369456617200085504830446111258737218276630753048792631746479714889262255218769262019568991923171730652774803192932839499036857766831581534073818434444896412137231659900226954486288737801105431503184301180231283081731834318392640591906756887541820729012655659408335664455520657904190101372871544329474750696710838101417969700952168095069915870228571527586659211723014431020909222139699925271526640382633843147455999066186406362885188445499337715840023244145767411003596836301850013202227587626109568939550044030070524813170830869307240818165111458214450753854485155297807685220065770964226149839919224870624812138635908425674618392666264763927248026107180013997817581067039450896494012385710316218420841731429547588046034199558702303038439110486834698604474662861089540086673507317041444150588496605497832999915689735761976262504638075508141517376632053711679546708916563011043844512732448304876393338306771332395803280911010515478913768672078024049467594515154351201068545567047835563056318299778489941433835385160620132219101330463864709995754753794194899237111240996404675739857033630117238815561781559173959732792743349882963751237508188493515443800420399936716441319242996960954282176244236046780301520351114668835514519551216869173879963642743843475504738037721705213487235189653967297042619247660502701613096903230979790588831565541471096295839788393628492013882950169448541313784498211885767555296695742857791257942108462830379557779427084483925157199767109584744273748474690604673005784053555326293296765333869421028775659883235645709239390924798593030859148234460642363264657744355323566161896342721726475051732227077614948351446957499563614739754909050244220899127499110813843634695606494561244442785999684646332581347562763742237340718409646178521414385737753487284696181982917364979572786020193121255394370264119229557335913799812283693539882533887825326903830217119986627167851513706716465791752481752292406636596245425222066157300447336529581516688605724370403083239328708482632351550774177271265601252518798300612500619934850524652507810296480103436030726140396555888363894397635632936142096177729038908508921136818284277873120377844761165990274280892689824136376255199864674872167578287294856171594601378453657555724749368112867949360228714444744878016160461971470976543625074291837633913817702079610466200245692003732250584117022347125179584045686013049112451814029867300305258039013564230957606783701847563189444704330503767719430655840038356484906366623755892731769720488758214859072020115807872686963578445463645654138148379813777663628276076010514759710123135325427132711693886730475136575813530267451834592468299381889209760622795255887213967004284619388248792538974897909466216664324523907220227254071915784537897564763116279566864927243495542923170186842130539813372373110763377122604695201680146408959140238352034908293150854325497207831272662210083105469913852440728502540575867967408918574636712752051032490345837326001882304539869977176678286735058245703042419386723014623374059404833940934543656082938708800359623986273387122240055952563153815569319063235052986734678968866568189244894549513036254644690083716401864448190092594469794727376186435393839958341538522513491755673704829207420879326734903172162003445244210931313537057454822232170866370159613625057151175188024018615194283056655963461004003391030548544515781116475704454466570253295917854041579805213622713830539183282747616725823058647766735797804209548503848808217727793158434234823210865074676583796396730765756709942969554853332851722430604625466548564180794958841907337899995711415752173355295241576923636120875193032035299182900196798614169762402017519788908566282866028461084752603981955734375190648796148892416577867292487940551433038763467258623512547602645178285647315461970230988585766248352290818437347259293249163629819442551340315282040905747217752017777782572703111244258839546381640137518124534809386678395413384074358813958647278177861265737552747786710087914024802220194640349766364013443245661538476041042266665868371208696640045430316023628857291181977981182166108986262154963888139877955121977857990102333560360669505970207085542561755252533244787756575472334906699227520293254013342703613669011393023979481853171048378364460730030369814878205793233064034536574736214047958500993089153965754692219150139731177551501135276403683706419432343901151628889977209621545438720090018016866106253851792290443699122609853886705783881747830319666651086210561627419551657019348394686392076175454818086177189450731226504816760346685812713540029073084635979589918637366144507858691982461715103361431039189617627906986319137876199727610052682689466202231944405162939829101747420387303792065517000298248134304491787903116629532126719427575467807636924123454387506396665867665673160860896078986252676970359904902906216966887729543316095769940849336429635099106614341816696537141639456649638548193880223346743321669967218442621420645215425550936271996055631047760985443896340846683139026110648586766931142525002616845362810200479072816742471278212912630502741289527638491018048197043361469015904702434171608787151709790557781217250963544376952395242169199285904951228181729316131191783218800885077552496862082956804063847359855528240826498263934878906061494637541939567228181009934067282296986549884731638355598506363390227019620155857396824060507759454680804767507849661554690403915723076423549550416799700578847201797956638733200788771961271504517737880424295289038715398844163729609342052669437524627614822113349898309889573154279282924878303052006359655589570516597624425763014981671893455469434165142297059368583690634495474717090217050455256330628975337911762936350179539360392133920237511571136261938337582010367539951327261678811809123908013544684533182621233550797388694066807501932743321588495624149454582787296034776477359630186533973858414088759688860891211702000016487004694760176319251453961225080106076046393434211962650173229326559233142810103546206966728789111304687632268068854321581607657545369143012984163641437176331964716623660094476689157536643054340804934341943379197523464522735288660888075596522080100871184152439019678254408915613656359414520122862467031934737576818588154455004427071172009606736124531312071859176707447371440933529283355368218198315985115746273002245737706598811845448146829198610063655155181337694020802622341923492185549499531580356370567488220359663763822777238846881160395443731408440458291293888653985728321214009165355922468164458369872348051648947491033198782371921005817058827660226896606909228629480418545342772323114259078359097281616731151103645677141363034416199307088172429891035825359387571800109897310534692878962786590745979668622614137510126648235944139620334356701686252248327884190365342769481607038396368575114091819419482224070418484001573392413659335106735091358207424002313505432554473233655315677662362266565965941603860652294059549669237599161989627642120919174442182832584706556198050568823140653995040626591685064688573870107364132184894059217389237483377678588123269683299608051623026198213748909147291088359834167833089844522331052447696359955054877473976364355650326875605651414447247804317368698010632992290228181951903215543644370877034617545384089478433935563994016053271454678830969401638817263598167892650108698124757012358126479831251779264117452925955439665518299816923433382323124325551805385728105433504082433501335938466694681914489278953955978199066939189340691539894821816314830395781360278751483852297445775397185193523507552675954312434150493009433072157813520426409625872996802808956891325482548308099258292800180270489543830598172438386405965057149532542936577441080008660213360725765070169073148688670577510252798923458440566211383589982984550944810279141197739969491559168340239373454426792761786201632991393604841069537776545922373101208163447848312848690419975240158790486781267668728687318013450156531716330637486340558713995754781850570109118619795489730650388891281786742308134974185116235093236822832402147977926267232800051420328618515701059438810582018259601214373588688664954875778799966300155884942777209680360706537081708710882157246891692839632758862130521421102749996221383763191026764376617333464700992702150295509979014991037534634948109380828192642387710765440964037557624763358887918167857538605567327804408404226396821616798381293621783978497441805554384015808135637545881032935628910993945677631113632325982633612263763261372995118856456888533175318461065644084576832364291397988807317722704891734716165900850461639992073331436853351215248002855839229683209022289671010261066075025079662930364997562497716020989681205733961467916458812355053243782443164364857635409335185088307611615288557857632437150271128222712736402946206118812946407652373650797322178258322004015311389144988312176969642544742288125058968563481946373013099209410735941302044469077756024387777730051986916860839012844905510817667728294182017758031513927451182085202570953942262210546682320963575552985905768409549714062954249292074876083992562945968333800229103978854848812581031412238705084323333095946923345161598598369865224412334097939483497376289340251316915712946704892848524084153555436467456569864273879312697334499969412973279259101256164383457879223737937353506631566850172706729860584102708852033572734973841377546757919194982576821858301019029758923911463032645494548449215291740202753952149686621362970845713744075337914695017777418005021779718274075977436269413380668366062070305979046455462071067526653130146733311106267560402615857593716547078437938634292207959724786280268225255766389730596794155374091883772011667293358173498065809252356798152378082263708932817145863960619827139682933306472059837868799683039320689863282636433570193209732158905311865754140526981997867295715448791150583289088377198276642325382540627679282856502230360026273255860013879976534998478239999343153391206384014416279679395271461767636534595439390616642735067759616981939608248495372217467046325604189038885430667381511715538523068133899896326098785382617939729531050241855209053464601618158840369674404605299990249447432949652220110922231099997056252952787940162287632935228268898733621885065499826224091195197332268327845215801666738806895177925120171514586215668716397373335252858000318055327629913318026054583624813346972468314008012383346401341160650575526832046700420913636809185174431115273554768027980595485508046588059639206318312976044690329805796224007943067089051346950338482945915118469534804000888625401395037249293390142488844876214148667859189087720626458754198123112203138481387487597989530989800559457076790901669782894555806530540243580436047315586199451963552750445425907865321557810727704126210355576724541503765343927482838648422639124110197099638256091357466057663919236402682745316096690090547853751675825879999993943480870463531223242936834452577674079242720740831898361983408354541254509817186483453236802887927980651859510451496115521732061047392708360965907863106518496870450405823216607134385292173718976712001152136953713845198284767609491316077332665203840135428461583058946794394853597385319857187017796343756429386559256432072288215315850386722055440813878962047849785848779234641159821729291654003703130175098031104649683295761828037078659692413814509680721827871611221391388553032816519832982014975142308681232186493112649903054546218663876511152945937233166119695788034750091648596901093629412224743130505760321440785669983348898012057709580646422658680510426687192599877292129085609723285228710180669855928850463554710354114297994640693838368451706990302301141797369507970760017784139303052166537354441709482996709229995050324130809561862547959592704790693216226761534317804453050869857149287196462298431144296304555020833137513366430284741808086509194453324553015208894990777318172014188898743735408123009331459070648817240816138896628855241206288353793444685935367492948456143395178587756521793879345096217251410986671227806474093229785457832136593085099114979097612675022307523375827891170307835741197159690501945643435580063031111047288998716548159417575845480366245962708858428261187310451658334201970780727908974249408830208078628438750005742600487114221783850449028540909321488268055059949389581144056264332132543582005896368724274115727906065606567868958626529054377732063996572928104515370622611716026579546129730580509828403419437374706700602864894745961285528694502653375817771642556586766941910488290816209329067117588070624675497250151131755715014727766513704907174985358680628831498714676425626224087049815458865255276040415513047883169285563293232166360272016353477276755068116010927822689711130658594052862897319324638531934370358024848085550906366470609568716134284956910134797608754854511127502462895014123610885507028444232737585394600184145890227402263571308406853978690441061349242655881888710668334699447433647495959625186835207887979637103076036186048538776906517294874719392236329614594124503571308356564319424083782820825556286682507700217927386659575136253114879222758761707658451363991639027078408276860245416821607273368758087396896727037264330021127336439791672623418538760063783482279860284968451426138800742901530311057876170036365631911929588027624056610870732559708052745343768921945222886426217775069581312914599553376721113845343457625329632176381843343659968402842129218177409211166861946064504011628314996509258805292807695149991296717198612506912131589594599091538063847983433978320159822844677494520186709381237413104854060111024579233425235221566196456580025181530254977037602659841126267000435019123564173762851112914952291650481135632704218438618802012110004771277996462520862274491605390581336613998021189686239538745882891510853814304789918745145473531658318524686626917160044509118861505169330718032856015314699326091295231339999601153102041746119168089605798906639457313472083174341357528264262734790157848333557367830783203763996799511534485995136210223682243301164457143784075669300478574298143634639045080752093689608030745249827887879321519899810170577569272195651403877653143397443081601963205722721364160587861092935918545851470541833372686724618454554644786185100063796180229578325895621791300838067255755680577741953478958066850629844173780079263527501999683795667721241504183508904830446691893470742316129647536003140883496639857271653863968829574225657678428564078281081521953805907219423301841599603581593888583424017468981435821491593186136496511845167388165257307761378165919124002798295050345107552217085370065568268461089309188453042089650619821843940740821121944939416814308386109764452262100066975908676764979786013204535074950158667109787176608650316383216367510449255797540135427185019917175380181811765833796720794147895620651129817702226619236383071878833586532899265486765123030214884170338723333899980349599545927599466153559531427294513289081972923626573980107298747862471431177279013595902608469021453168517499906796898791513880199973214170186818166486855653538046611329294134806095283336981020008443160521009094851495766895054085410152649602826464038298271341374917204995606634097779371061437925032426059451589750256579527599521911901494566972537251097983977130038751848846210118222113298462670177331289441726283285880397480943430244179614276809999163988126508292788145833864004725309334919912281611460349812206053901073327876804566019334398164773705224619643898131499047339521455926580706252519871971155722153203650132440042407365349823183803421486610663718349181078298134099723502086285797923201316820010295225929621430473650300602624498781694987634103609978322364333103461666477560720231529069947398665004830647884936387655924527206238817550215683959912462437888530080071633306037383099311019991694124357788505204182820115127259035530686645131993513912481846817224967943888437744000934301641756458246735636996847635343433273534375496822678250213472615685868157065288084391757788304182791681075905002014203122877592272120165291231388790622076895279774304978492970286578275630148651413506488321750405785023960074635614726895138111434773837261007599014391512778720296272284418508903865912230976125743331814892369081049436566793579749385761944026544115033233083748339507637638128950982725808182381910459501283403711057755743022381408775412610751748740066619377600558894349405107952374379577637353615715404048551400132495596535676706146143795928552368776853447520134969358423170540539502967210720591238438822181014621110072766023500659759770282333963626723789755870676176946213079712367185243582920931132444130282603884475199339991643734638951785413423663058861725490394647802431954470510975165208076345491410603936418838792070861338659428562422358403398252651492768634943891936907261057939559739363356075733123795187830550207172878879181102884452346405756274144621394884418698583797668338054687939785941076245931387463327278082989076573216830895982496239358803343190544941346023496283969131590814031389878133139063131786403836128860033498895687900052982972985489837610730436011125726158459575651981728738291899736118197639627640235747545362673029914071933660876394879432554698356022282000500037436709130213894659194499150560762939931282559523964826375402530627137466884401626057157746471304265243403046461007822520606315113823012430759891110106868810204095925950617714424634590522165461467679270999299086566127263860384971537131935156811369421116792417574123975719793106979060954065804397633645381950947293098752436560274406150411701554245225555583705262037633791944671164244226847665577934476588931433558519470883212175714742506159319826413067838751529508871726125489202662873705423356132773347975298629123324911335271971126563663878758400069667635038423641406614038380143107856532869906849270196706009767822826795602488743639168633396831463768821519825290749224623938777739636120965703185965625691399154022957179888460180078612528230864770208114137936668572498680673219043811614585554888683725604543714834452521759387332160921812541933087195712701179492942131547255731614567072110126650564835335798945110352258339941358415067316336563692892305542757655996184364561004924381322403647293010425912108074948076049285602084748149977679941743171581901542436479363540000447647898982268202122814266489465661866252091645560468732836581145769731843623466229885143946728353689725468686183362952587159465974927921952033600012426680469332979647950622271377123763082741502431022749981251569442483654532388299978375396331974170847374770899458699638754967775631691228226473377087547828838500361387620204355594014993663541699685330931830176049652493277530738099564809420999161738605976266801380831549371020183150007495988428212839950184403367863913791726036305565131203282190537576751708205554949252473608021029963472228877341830257728570601558242709164362836813231365925979157103035432730971817414641089062244447066713463430565565604392973246335824950186877669392269829456737112685502211069658169472804484357501577030665120557786977086267325688502456603769325865654499157000931788128381590039195983769949992367982566956509849665775615129621420727344796284229188454952228114650269442179556122608185851820362912279715824709101798941806266181025063913416986744116963087203487180087200532534862799552733656263724669452554477566890682535558002085540484354929178404151960516553053687959151632250274253075207325612757916480478053472840769704554692868280216526541339496076718412529584119534693408452765524804921512873549980097575956589218975193119926502369318350615143361463235673439856077222583608692102102485550340104294642591831477077797431825453189299689785038067096716078609598974460684291076402977712277634006357136112911948089394029477705577914321594602581948386149842535221779442090719054438484370032070555476980417326849498120156540419423708267593138649187003024039991260820741905098558658218940143036737119872930945760946567837998552567274726327942775776321277752203041654375691857207348921271373357814952657485292590507085442585666023931406771387183250472784019223400029505825160613305024778974944751494734999473968577309884334975361409971845239352689083777260358361185713816166438143554267805074185462029955655862308072193419345201493565949325160259171613800914918737918105785913839823392231696450492360442891017899217333735056520057552637345588912898959677505179730734785272273401708893867358251388572986733524781765750933878677531674749969348036077760300489644639036672290605095583880468601068032236652070666143955286553467191337320761302596964043997329896467186087408689995566443497114620167649914406639647691116508285098766796961523933536016528703117172448592589964664099141454927853546719916247493807725550543001322602950402207585969072082228414134763603893070021737063843355987983024969607221113313194430169401887539705118993668018761892229017243042670354963428317883336144987223773866823040981132148080942749062429045440329589634831986833299816365932986661985092638679804402636985869458579941889452785501422192350629526096853367539392144324047011690331589864955123951439720443835934939959010410770292233864557522474450012783313125331301444518449617925557271539709952697468231389238952793533453270698926505863307497891235838205048471459681646350854623441030137016935671284240704934636680503707676077247389764249157124689260614392709892921346362749536973250268668714042379551026720538109502173056560694194858496462753676591234442280582904318709015494752696645670100752418207054371018362139669934560165184622246012705283014680115355566662627012431069807516903784034557202245529385365217040066581077019165520051135120151844937998707978308745645278751046369386323460627023868771287310871941559137745375500481267935424322923182397729904327910337420016547623253491844093897115995169821516031009061043288311432222622245667441770898715425335179290223320862584201523242685556706266254238149181493384733154142263332197281237900245036607940331877299549508730176365304368775546775914641930978047275693381086790242318642528325266290799681417356347711197240360892861888564797185486410545975327720711625172244539738906514657369121824316073438922431869202437718621827395770119828741299434010385807298442696891536386005458868823979930276458372151506346911876119264570641253526773580330055553060153245151054666197041421869223205347453884230828792925749044725499880254976353438193216743393815447281638055210073639437060217296000345666097982379002984176761496105842668194922341806142586467787118228178525558242899597944037070740560966185327163958029283876153743451281319257324250268652827258799925064579055772348777534033072510416835547288683705362340187516878398919608764083076186489154425745046583531252833635019412763704034587330070489838506109815370759797783109067759978033857767638394942772824350151306775027936615744514801350782051330168869923414044294687109421999373054774948896394917283850001178032300277335220370891504247543202729938071941921365557923160326147580756621649999228199733847160852845050206430887002542881976798429353582526330686127907014649682487901277491745157033937486232669303668599282424188752687512413441308141903029793463400125987247968255261598246682584200090811423593498495127921323747678389765913075686668738964561716893707631794487361976189793874574503761218848147719624291405697998361479161117884607634208811632138602341369233724482639887925315905212341414144238616098876268086642920957919173480784719036286473970414158288932637419780061355724676918978895438223780290790167802625873704196482211368494727735378975103926209914123475389034421327112481299140297164969616827191835784103187050600267525081425321981775015970925384382363550092088162655474707320513647911914979575004361494036754266345311634973959434562196773944884433392619946126201591413390029292493797476706637416215951421880082215252340671339326547942985477775159681963387229543945108190891754662448329845435340907577798237639582108573460522970999694390496050153298439349974049009564388565880437711537003097422052595957362517913371727648916850376837334793463946731415886015521708657062309560463476357254185974226774268298827088984753347809675769851921823356694700380897289895629796721402304839992122206226647059394705287906912333077827281159580007825491075988377161778654847268854574717779485461181392003121081142279529975562678877389121872979683494839507565315972249806345983113706504978059096998242611312634260150527884677138145443077440832134798311990340857714242170181394230423891575606502314923612333122831716418914933004824405796749004861984435018525096750716066225786922141189995193766692938640815570366700774503310777961442756179663972312603873895083234799898047905501714584133168820218432224007961352342253597482672077298479095360136047407234823143020395013871399976047828811702921382101876964058940189482062954749331544410552718138337923027941415502818713342702570529341943453270163217882002319789799716153940383514720536033688131602840756336032590061530203192901585755548076258936006829944924642585897875092892658384034772090369339978656953761492062391424610250874856259887930984773171948866972044935653725883758557473057021993728725177140310859791648159905257422396122243736613596665979037799627912065700181342706626506061819024677439552567764435606759911651915713423404389251539262075102998573758479004423851314522996882830722427284583183216824315293249507339155912368708048332724538221409874001381361689954661443328180380002244223077250668259681698181229854373088811414049493525944522146330194399058346425946655329649347250853145162831933257634582641554168594358349032408913005235020219496837024713083993784150090149831889755886843884454544964972056215787336684030391740683067741744625033488269547022294476426814718408021702371027969584303025430920630510114915046195885847912017291139236684815664661310012699594327718574488767198435359031177296330051400593993557620783928424088234352230106134282640473575759568130610295840700574884842530406605799552689961245348948274750862422628124088569818862854746045909568597569345477409516035360800260662428389860757305156669701043238465702430653782060393550388430192673662737233834409621918015227212890130262520266419497222970622409732816968334361182581608251437923259960146371068721320231601381331147119040066409899192463757438947035019425293731394713197482022712713135762139675624549323415684134801333310923737246843055626432751972714910675491658484259985035733170533717985267626760106090000165330847061637693721881710603110894678202274034851254396168056138168141863070887955451415012793625182290769345533938348562580797649640718912179311005357656404175274765382227723626667400453588400447128164704749570004923182935809032493989408343469136614615548998530718502076091901636886801951791326331890212261398799786947173650375840727526745536092116561750733592547874967298380592814472367163384197646642570179033461290354555173841964594452405947894471818309910800165407477564875263352725286931128918244435400567995036573751516617862054225695092818008286859741283373358626621724962014888421115634014631751510809185500047636425906751037332496627752370305422524285360509792672647037762259526325158449055308540343765783004214351280429356672115754092164464360716424480605151597562232164406450920481859400630702335708482387156346133831304019818032488585924231904314303701379782563503313525058130276174997089673769165738357935411269286797827314558203654478269936444658188013436507052685785931241643730161772949936182658871280019359455541914225365607176720635595718929488887415531333083024192339125742207497564421881202768328028814790817674959432749799199473821437525809748482479059498789340522467917480995828516296944671451170508700230181779196242569127564756074623506423542656603417535811910339409684711486724797303218314249418822335062995543184427787447954208010474077742032369574480931459659600974563940672760059626200088677343572701009669699898745053462579377298884565372148568434604139396280964388370849046750738892275410457850441408045786611605389330818677861406088232759316453661401581363613892655414048949040893960433937407402794087691291495079115478246319707680607002757066350674276226396548588615971358069890234931024879465257078743188162180791126205666361865402097356563142191668074460894378801058914130648955973172592495726768638650188192447922963709514413757004259593516586589182109746415833902543918487870317857746456247880750295130573916695972599241677274377377903726479897553785925923280752228489491405991490839530645444325144007129488936038221460840314275584507335907008841117660202969985670134985410639881869231908022289209873242690836733222507786925863968737924810508098084346037636516797000280423913224353171870215652227244506002540010771036150277049159782217984886747199645012507201191781647123219905303997759829118124468442228160305243002505295449102928018814740200882551021612378813384498252683948859764141972535817367104477486478913121282270682920439585251877422261038597166831614371738284860338741608594852647433760863859441328630960138202556060410221479255344945374183308099162791096926730629650315965835892524323249390314514577511344604266652656858334263240315171943420499681019278724461381096038571948979093536380814973229508180638507934876913969684664817458875856560808380778548353522906754360732148755018405445837892440667433317701538729857294815150825411239392847846087630105594719614549060638698688198712399605294385069348447464765649292547129105361706742612574222995985105710428329647363230337394056764378350883602810809641292268801363563047192000478672983306892496144366347738202400173805248587836068179931656380843761080535000924152926140789438993631535093249268406990257395027902043554245932261821803146427048510549727187826334128798684817698188902175499543675310591876404881628562965114683990474483214888058781777856625574025905308320324411574033283558515758080718733253685891809654307782620075364173185160459434754416522672494456632851490004293970305333164873062948902216072637561064798470084410482132216880150708343971076855937704065905871876333439236907247048165155228493801954964539932310720153826340896475554593641419565967600117427191401587673478358076225937247757376587357400944556398655108691093821648137615376405460757400864659960824504685696474846540112464500557294465697115053895095695885465963579222600051473685751542000244194259628277836608569823236742892983428952821642566183846788971410898496938700166061692314330982329153580292728540140589358680772817785782266435201485229223341086205160585085522065350954319396308186545169344622860932915927489243285268315974336281700144833112965591465456026337063053866851853001188219765687078821405644585812209590428009986253231099242915254037203698120701242917512242834523481724337332233275974006897605053239604723891946660101724484455253463112945201038399585714117670137896037171486102997339806526752620810151354540522777093160004265322585677626311922144006304241212754957430297551166181975507818137285462118033521850710940820435849225852991924828048884462706605442056120009281025076061877274641446280134136266235588258250340433076001725968153685924462842082078264693749076473224500389189814937050434058798737435096598948577579157461711366087072918389756306059336813237415913325340332908366022040321729565191870750672684080684333251399868791557543740879939214916007273681673598523038350148522609342932981491570383501089430010946952057566182944780847818084100324384450684281712847742472273638576578561412796165501449747558111019131308481680442180861177357502720119636177376498326458178145243180288859755745000094048041911804130474856712596223121232886494700064198720312091284838701114773160682747338051556387466524058111496804614992719934804547138718668752718296691460149473125606719234800099452649035445244769411916405222588151803991626057893581384006960557648811088098683606066499211763776214694831908253861059669872433967983145361507218155628760011559479898108214058448898495523917349346667909560616059267741941310761831096461420707991168624603210109484450207843393797037296594065127687029151143900346404422187518964137353120984299163831335693629679980857384905812389585140761692950638257122312281771104316918865041621835177919825822797063902966471140533600436618060536923267992512998303369093492256775149809275935974778020450673987037688318505460553677587960079340294573055863404289687815954464927896579722518534955606225960116161511921302237962718673801142142168512299022644353417214207931923751148040827142619686103634721711762905536315752844477010439153773862272365534316558158486257520509982935721042445959412142415577348189690743132838799233171115952933513264475175998404315918961459385660215051225516977464040978884216454268227510715611047933746098372817160059690837619582647031024807182409216842639663692459995794175844075443036353535446016383703169045394427232060094350185573375072165533212372220343194133345418297063725779453294931676448817909814911630006653892979157996342500346190203961113376176854176118285114696328713084883419070496444510573739301958443779792503690898056862523337509944757754303764248819017797509514935654009475728950082101064223782536965702275724690191691522602040194485047504257471798634023654509891160130232129735081760031138523055459365407414762817699925790645682778941652825647888211432928279442469920764717734606548681935460320809269801523813293673745204781365553478261411650391234868124816810437598527508244950566542784229917698764896690705550270202319392460863505299911790008224489000633480460343588638297037482361834592997201016499622887927901609131508130619338160253329325329736074670702585640618540363642421037400804476723328927661394366882967709881621217390615574328821352440935222994153597796822960348111602731530313186940928765998118989435930897034526108340571257004293287301827326038426013531145429961495806577147818869481311106171474155296667800038320406355494999009826161382111409392009435456101493154169840210545040756120894337164749140115103703968002000122291036762711360551749772169017351678171498441879368491568646642718899198303142159747985684320035825381592295826259573463156943943015112786176429517560561301259008061191173222423492165487064078788288322977171912633075699614015755869420609302913508229711193936591906699111972060391077639111934336311803385612292490046791020988902841769046275799883480666444134223503032640857693709197595217888909752807899969798211314223904751845316063200089751482840115742274147386455747694740473675869046429024167139462589527273375595013800090726247589429978327480302159296549812928661848756143320985362755697232307214099195862181409810587656038537071484710681976211933552421148729071527659458102672657704339386489385680635997314495394347675634091985554910080827449413324802143438772656490845706724037566790208457901216277476672976109033241815199531316412674027285286010019433865443809848452118805785372436827279191091806049198604409655733701381501212566852327427358277191106399987841715114802531425567789232882568109768859350452792246098894365183072331435155250253735564106156345248503310453256143929442681818381219212482578102853203082037252905136914024659737332541987378685198753959330267720657662490850402313160620543763518835829234909708879857293704159459764073190947064334425351094076007414062277731541847378531782145065977422861909915443281888859408979060328443069232423367277888275065990391765982852038677988375036762640105770372048055856718778437260346891616824567074426521880514695633093379872715085172394043571671247223207378372998045965479679415904911578371671782086678228837599481952042874736992982759644108150679654353577814073436551085558791542381744630351605905155959057142920281359300266532757721386799997705287491205430165413861548154402996863557164220996701234409754005633995819940659248057075748963613989433222670229435405175165918203863679075585284104948860373142025162984357522721792147589795774345419570555094942595581206495305917450402642713808984994588341745341769575984241432520218899506016347210712937476366181399908874574348945825940877579459656599136199266175627157929636195259014958410111150598348927943429091880997016444996848445113668504603702908710126813379352867515487585655055212226199045131387189006825339300277834755675941977142317407820431084125391505588390043547858932585544792432098701044986559034731591610000826999873180223658647707170903527074108729039812471491009158823721629530210339012612642784867873943488485797446491782891605398912051320627944254136108654324937225005096380807017992179528015263664637350331184300810191466714283593265510335116060577352838523375189369559784127833538872056682775303835360098061192613801382318379713059174412292333208389388118215068663074847589854603199319287249299869828914090561394873178430512465145238903415437542467754285836555628448297038599935258717290790707225513296087285028808983136463917529200923536506251693194371029298665576885140884812640952125517353093697593517031970401823013910353949151928145540560589093613193733744236341274975287128434626673425804580707872112933601275011110345613797839168651816742585999350604532609148678214865195225921070995111565335032268509416748280865381674500157577498147163039979927177559375613823846007532460530107687260074540169766574567129487765589861686224126251797970092163690742383015945335430826112586213142025969671024307626155170546129299581402681784759279483462433386054780133083626910160663358565915456344709425666182386260769039198189357006809225970935687907427901215769640817831766322328024747524833983934318601805383575510130089136280802153575470135261069504330221224008616113142209720470391494341394640067620878060711011425185104456605789917394678626107106352378546756242689284505500814879197287343512359932665960917669245400413944001537661872614301242116630624155187070044042903576394560381832897456182894875369406673322159657007668865905904864830786125132950319148179103751070932620353430287826853280155443995232567330966509228469074492832824234005921087134727122097999200072413018209618929270924006193313054034229273397031027667302453140733493524350570523285775967525471939733414656745734475529761725853104981354102318035820905420600470945002773306028970349468706576753009499659622544104121057998025005192709121853451082270502935807320451212358702868179463442612748453004617268972655586034241204145987114628220577003071418321107775806693299978400487411818488140016142118411511144864310484105239815113563510257801411786564643384058786981285419556386297140685201092101592147702969936651660038969810564143489547416704735542119423669294776053398576696375043872818464925747522708018962083503132790715844526437074925798388772689879687695320247416720149866637260676601802687463436134373932624499744046352172699183119595497437385913524716270086756581282932647510146927954902113153299172192818690244744167005416033811629347543125961258185176623337547688299915545743814947463927869672999548729123756516104274440783156471690328235588762049233036489665916336238565171543970631797969272157852394737626200881626826934744868793065854705807831033376457925078332881927528003372741325563623097891900368968298513154481959832221084638722336292446368046160269687434965349953795431436667082696229726884251655863284894638436075141698052226986373601493466606492896476235816652791087592340849352378742985356127284350905168287356498692508282424088977349311421163781365828861757451647390913520852619453534362288055405060664004391527575131942980514623135099791414358823111969965071780833256463274260334120546481026916594913499981032981713638020025245370402088425561762375781229376614188024219785589050813682465610379927641042204146683006666474075927984366623385126374852821144343087013017250450482712103936819190799095522390816473143707154304712209744486121842723632291620803991568386332220828535470749318992704350053127297813528548574718856409547425723503003689252320753302625270925636557574502496580982233048202902661257268232881102978070694140524996833307053754909597574082054933842671188535848319627963483696043220862651234860518156418064476977912931916445655965417678805709596450281131298679113037551305798232853881150569168298010942252204153249127751493727035792999918492263749655917436655616670981347664297181411634079187963680315073529742967691379591010682793429174711695302195818606829388193787650906936902965128071698881710921043019717315535566066997782586951694410468945625078818857918162331379932943679339865710827109586164357167244657274450177781802268192812703551431296232316309189261102216144329010125739589369835244958142449035254773912193102007802894760968471887999127052154448710199241021577183004277718770230494469951904126703463151462582349814089663638086616752202090823925452928816330679519687430944033087620393523710053231519861203937419719709086674602120874635643552112127881165354610568518897814638556421957252584740337411719618729195639773821770365298548328333432130185850667988554372225780005430185800390657709432078940686304628137319247511857554875214915542980281077707412106032512710557674172514140551113914614278286104513622821062655379220982794443331886465074738900104851896384465932800630086728582605944385747799014014475713097914286950139514463049063718242712565506777621578262268162228916819569711583346496372670559727499583273555092127934962906317007767987654365937833534290823275018151125361086950509836676375179145073746278166352175212767575094694144743767512490997485756715906659103686074339898132399262794097194232353912445247677778522508071108793076091907819294707670929249003068805899360857036570463611772107874040164951081703527690438351899275691384538952306916927760873086896608229084568215669056851821465574429200636886942385717422165128863999537054473009035459337603489064141942682284038565130821339520337897550540929720906509495720839548184246702769569973188030048101908564298180636392291538637597951661246684878440142069903516555949257552391651431871663994129306886249452859626663516949266359522999263590747771372589694158879216935838544779055562423607415354095343292240568774652521264301390903251945379077425452346310843235669149604578708941604882199967418388638625079883258789741062061312114606057714299044807552360287993365414564916945854343798799007950838328072481007429664403483032774351444594332568443920412832003679906376011512033022780859225025695688189084677693701157904217014074067762991837548027122780956664173540864260953577462650312724494252520988384494339595504751708612866675444891575787514644995317791858456913418604183731253162644926192625392981270329746460835939226354628152634475857419991342031137281348653774441378450904252653474613325705251145545632892720359942391921352328487154456760355032985960133863751747069699919854913543809604629399769508254548163531172437461811440308354715529923070604108285495620227726937729869429586530304208081820200823664965974361427689977289549130236222021721738037968781036768997529091677096619876047022542566324131154487179004278786791200437699152761522203195174796079347828321665635420812272103204942677573581966157686513682812658065623437401920956797756525665737337200392413421431661351503853590254200943887442456909700190716560350829793766786710239844340677985342609354169956512261746385004386998221526354418193650621252931391057731200048472150830680632422452414797102306014174354930438037942512859715127852582524477475852372805505294015318690753875530378830364213136867133350918103126997570288423659918671773228969535670750548265480056540860764175882376127058092660541069037070581206974811582550794322615314692244780952607980146169034300980982528364809458382055164197059832942930577456903518297981810359063547887297290070877361695514852093409725005566730886876053316537119891134182328233627805076204559902099972658471357024137986210960830140947450172461071469472910426528993818879490573208555577338041073085272912591631021452160724361898700748704113429651964261224861970760820764977709635409788756426847171015563416219144237531124383871456370088715359290900407241700290741177304327131859738061951091739537389978390341484790446253801624773183698522974114964466359181785429887351734764822210504324854793254226074497054527863482840167312789166050934696522797385653299983931369795307801893605442846984886109163659250849439057881493718996189713224276288543228266782889312029214815489049958816011367881532274393200775062187490735907431975730392299594718933901412163490726206171482806553689976789657878400278663059041135322055426335358998175530694185135163271704006910545646096463397217285980976541065781059893207882154361648590019864199657643832332946429478801750567808020498522274558153503696854019009019389650788380267161799410202498599661791605635203357552390987842646764105751060380266669704544880180699836381880164893809348031431137686616215959072090259543030657394529531959390477506750029265170494857597556048059532891490276798012807352495284553315395573563240989900507919051928153938298520878628415849944945622056366123990603221055959085142141412847156810000343893374205548743410371721631832575969480046232855407578017296847613293056905672469517615895763883476238912359410521046515815372565999489101552792304131327445559014997678794362158387033457246507261402439727757333888551566983485799578309863476276367862187084380326266296956115953696868221873725033490998765952885410934779108505067582101660300094082331970666789312782759576843258809860661554507514065119299176812040421787682572378436794446350645275692350924440744107291392290370355085447987218101000164317275232291829249106480714894035353483365594641080622836584652940460919223180645500374824646174156865370610635487040060485564964806964526563759420138408211449254860528462565063983080316890887108181514808677030669868990841123584699951503130847559303225721321738156505863464988388460344890031937471662363707345809421993763732002982413075627083906480193167180534762818705318141085588753026334553470984322994353805930756462143902788649036508828935580501275458626183026058940375112652848554279120274747572547237015096152704313143042480973839516750936626497461485484678181424122965331285222269775044542923652843543225181304649858882668610227891217879878213452872813263892407616301653531496909111682680696551547363633610531328120545872178205453348775027393950346040358662777568289656160471334846052942890070964003504973242707960622848008536056011987203632707088272893459679914844017527914125077558067060497612556464786773026525323929321477398628867075390691758941083892528615248544556195907996953797781615744006266626024539470003660133346308131726639179229494536262668937140979283372993547301640098145797128944088923932635736072762102884773611803611363175373448037184619221476428155641146975140858021414154586050612270249437451715774136581497693724437462235359633493698827634287275722838489138552490306264643463291926557342534311888943074522183592896590676258689456138223803211532189204230558925300312795726662990607191743992718931748624105549423714717627403119696448149670193983232432359887007895212130613842339815024884444001770012169383280894682521258347129134912771470510983551867955244042445937341212102005929230332832362037303805343120346540797326143534328426162566437126997373696311286324098700410831492507447216803750431662301366673930386892828558915665271948431692743585804485096055926835912160509770838897181892582132982586343163006502337016803839863243911592166454138920456153820574019757586828075028692559913492661851546392336872114306503105980030672430266377097890244048937733262554312306632144074708383809270755902877371492170493652520274455227261534778010059181544563204304217676683790300147590617392921656780156120186280766828498989989162691101064430666269406670106018951014879086563646053147611277349012657598741419969167413041788408112126114708283784671051336905249376534549051343490440703965774487422195725597672820950752334002055582933477106691674871951166920746609125396523866331630783347670179247527634105257970014152769679514107043855308572853472087525297098154723655172132079590562667359066427745483489140586359141565886289203815852313491209484939868876269554635402883747660324650124532985294430312960575680618795582152281090206351182193307362828012890083772488416559052446954957006078099365994557390936145538614075739333120245521722094621032879323234970638224024311538408213403204754145929691588249993101057855308459819547753284150023664606398601049059584451117222290096195640601760240077264788036029334408828287661029029075186976264429114394195615936799241995482925339373039826213191976064993292314946758264848086994897899033087154511667371384439443633778020164033031780803214073337109912521760794272732728852850118375848619593454230251511468439080858743728071511172731895872296723736183556830898641156342183495064151304283077971986658412236579144209346705013622868271049016200021346195330914722736816222028866204796242434464292363061671253519158284672464350648829839909704266654596816710812226273114368636144267322192104597296840378480249444593239376294484772738892640720222617230653007332050686585390962082860306580418922500380585349050070612351344766846518285126736051398197373532516326957072694458147576611485638918631343560041471063208412306293396058609934288352867607146070952383164713167210929669837252140485147546398668551557563405547365663690900533739626476202703205323751212045935432618029179903162728448739384133820178285624257765098927858151164342598952526780365926401497265494640899619370331757727947771022640317100763844650923842101155713522467915590737120543080727921905564761360831408796532166262581824651475648380677057479134800965312050629607004886015994016258881946833545099726756642214048114522247783931064515472517789426067490890507028525666981343990231281541618389373188918522319279483921803854479986762512947290916999872365820832682864745044045506515122113362344767345781974572467601676867683564413093431569860704420182114322125767441982755640346428681260786196835075230485280310629116548174104561004305402650192585008108368568568650367917555515223121516227076433447524734200246768823353065126732238001173724754464487377096479331136046314092599805443020599208200083067910695093840997141849793415970973099057060462919425458089862239643397846554463459287415791091261594807345463533080376517371642924539946953665290091479624408638370527868271465514933838969832200729105750606055938266451788270950171636542718258661682472490353194990901904829196168173195408499305161691112364367765201355293460058761754033388418540908627790869007624715370118240619409345748206029306518612176881623099650949010218987336241845139651453479480080464853301153841594154617765130632625294415934347640302210587735625005372316068513205614772504543842154292175131875751990330323566504730249183789247889596818819894868066991085901411008125962575340876897050413522012116017817339062555376806418576066764059733010718782131270236238017137065832759623908492049531944692209510032607712375964394986752408183092628742258240188916479805208511710202887135941493407160829504555465154538257844457932490148524394977628798005770499344638420432445731630907488740738454425479696740631707741436129487993377621634989362514737771099181186640522738694872762098526171282368480154708317912132258462347692054923657309236929046601790611632573765973539759916654601607341818649745229910174228975102518700065448191832015604617604560006086024584443299609979747580758606373866739681862098733883084139144049299260413295292394221783568455460204605562980266061787225037696623103835199201713595394562686929898644638182801963415126671130212779609556003379702566557253400543736844455651210906578031403777272927556604585323742540871324489908974748986635148504845297835249955550093813874124487926898559984460824193737628074734847520800676173430039701118567764025165342527384781399497192529357474221258281270577434798070310767459750280733420947912097784505975903476239695040478770169676032743352300659041226214460175598842966493119494594091723775641591784571042415364174533103270537548294549825213850035439522466756601019353883382640359220483867694747572351855491886330313183892966120407327022640581433945181801977075199788764375466979018121693942358790394113685605705218442788556608873503364649555610820633561499699240198493470652422055925482244462852578627324640124392614433495113655435321779429175280445210637407606168340083063823705539167518958190465000057515136264607558051651930177642834489998356916621155041154597764869038005941651222784231561135616102302848313496521571203636869511916746961620121202575767479511620364242892681651236576796338479109382211398164841870691003068380100543393717425779087998473767456333551756091735310236534769353246493691162976346646054237231001488431032052910464139657057407663799299197853311422810050436256244679932299418034611621782020170381312006860774032201554411310461537835413364571176925543340538695745107417340727436811294931151912623335018181590315076019893894117261812109525921234976105868408497977560561570944076842731563371585561207450110102123766896473222503717108488577223448598581091536703976186214300353230511899507095112981064077902142130887429288976825731495527798527360451502602786053555229862020532756547613517545135259772205601403816035810415993606163586018758901196361305566143791373664599720013733751147471140313839069796621845574805725914711765331073254917100214378770573985343097318447636220456691215180765442878372738187379290585771446659253726977931104806175792609727021102884096816926309849687416720514848665366663987853810510498180350437895082271479036612782561406296463650508522289946630164277784591552077028132916463643379078346517389677396061296977676577736175103385109592102095314753947736879377062172022228542042209677801594791629595278374428567514360156230896738216584470140961822994473858265233496311863475376209629620126381942787948626435481437561805779205177500190271872745195985522683776689832686939134773810069695019790677847674432471070634787808408661390929306333138416664732503004359272429214301357169681472389794126605538124162803228744799938169405510849691997677535502129431569332526672093008168935286442082832895421357293819074003706837886072952428125457239425461967061357843318276631657240113652238759586846276948852413882482918062830400799490336943298349169372478116962213003386610563478524780059518600202794399813747928260382113123516867579219731840658095420434069969727384055779926408003512532688724095863164397316730062144046555403310745291611596197382750533503335680623834541206066803251495158964495287771758703865019659781091480019465574658085012678338073145426240323597088006921953206612638656137681985743683146429640039172613996846629033636645126130105187022152058097461318307015772499419292216940884543357261919340071163461764204697534693057934503232170193212733694238737098742455096178799988624319559396183018095437211535395097271814686340281788468372862245207609300818295280501473400035662229075483905860449224198424192236781743465457015319831690436687387538772907873904420752093056703624713565243059544061468819356070094887083896486079756021335791577223515662696249147433236607823829909126974730289409475474169660598972777081264381040009393852816552560340336766880922010360517660832417368535667827947837562985824499638087594805655292528623451469067537361520895124413684512185968958268537115939391212294468518556452529316394889131582360468287099266873371269539074698779743871562541961928074534412092414948104411867857350371149030196996182068816247718466498447926471874300741681630790619872485465623055578456145426803608684598360302937602468202785722349591362447074653009213708587748890086077326818166668066079292600385585440840844520301377645824451419534491644154186474833501587754636668295534192887761046764340598774898654789640094225980905236777430486479597358391852378906250332233649272664301648887001230734225122639295555875030410372211437558033498648118471888213960158016420035042938208371609916223645175223248115963624366801552796353181583153681822142888522134487398314275221999615956348073271199945866081747795587308367547443415301662097782510364417197136077563837115209585863781178194640721149502557472249934287616639777437910542256439181657337520001670729311207611302065681719767056454334397245030068845431960001014887072116299435732378686587220577208731693346243859880998015684191979823320750620148892501221128179173607986368313437996304861221293272327022145604542944271370699495092755832483604660083546161119481409056329612145570509538042569021423207247126241068098799558934709771804243010438633229556836947460920170564882879445280074711995019988671105118236131406067072044227172700071336455839507865980062532703784608378356295196424982493323708889968787610215738872804680706911211220811893966065910190156350254127444556870172723906402692873333438865088852951819245357835352013259992823372956406898086682363056259056465390100951677366367093864621290470135825677562298703318831112166444448272798957011221439123127805609687338934121621525679200267340831879253635849257715564366939126904408509657694334354862888383109572500248996237530192901534367459755703191878195844701251330921972790312579513077057716777434495165998024133141391839170082456652771290295653314497195610013879822262523044434411501493660573480323248547863462930762441846901078386160135773570607737297834394380379665520601789875104381844466890663188195753874622922416417985966474688172269406488525063931782156395351489174733319119038737562746243127203252677852889300142071575975667362646935416277258226718177875656571685766260436398836354127567585289569427483620114613412835623392805570650846046347275285744758226803458804410026236908316654078821785763436029734158762652920881771331859991900554601436757537270114257817112733167412201272309054315647750533790035703813204491545098473708836379827285032947219849381943128120642775113598959075577307589745045450826058535359729285578483398060657971879373356925405361424656077388576906866632742376167352009790545396122926440612572266708340591645644158503162562141081325676240094711115510967333119619450280548145030813855577771020115399059345067093279093084038837054904152197043997448654518891994973424936144697644773235830188318611238683500890917333859754153027559792477887470600553489422722671882473107589120929103095413265776135807819289345859275056843651505067962373632561282795380670062984306565223878547210640135786564394483126385182135093003221038535171466184711716885408113782328490564801081221449759606279945584190285908359960980141940948409483264399032254336954023710775242336689938001745573533757836936198883367688285244360474347120087331262588938014283344759099999373038124380295739246764269411317474764964207939487875853104705512445788887178220708052881263840929441567978552602650008851251413040363390088043960777838580456014555801434492200261005375285177907246840818074536851580257971581474544223570841898188327738167286951069944001993954912108172783752995466344037140743889292697782716552897481423980741432609230364738538471061829850700601515671904544654801647379801517404818039051646819958284292789532694365501241575036542682541618359622454408945392939484058004483276171081251775942087662890562197708835907235696511446221637708280069221144982455829345894310375845535246878913808157206127169686284073689487429837523977855668748892022994103078900114926326535690232729753600464770782022773685543860770712979402527768210108373437872173990062268149294137772968299358274680999050695679982771383317937516966991911022597381265396152096202395120849613715141894718001948827300616550896603181249035982409894132774589830541306168074672337430217844275457771505511329061355997095275338303940614944017179069274300022371410033467420386661697285560086531695470054581730570360795810381743210987248097869389333062484446315709622468350183776493081352122601045268266098932610994050742378548654865536772477196786631806780002145892649241234072719602512945855610720527705012480577465977839170351136180965213960983383468428119089576133466660875219921448945300581577464352885298521980856082699058987712886833245996393207090694019036441120409501844042817709205743906338828196094039444305818394877338519437844502318919162963013428309956413882964516590387945727371568156708115985009796438198304646100618226203846255669937735197709322485883586188363701919985288847187871511420161902512579638948964671588994509793873817440224720776407605045470365057222396126669478657623233732351136432154055322238353004256135412796092481667061283448121027332380754717879644930268494780269950632376480536305506546102200038515032507252434840078549763590031723315210329486562035062332345481635004094460327948909076025642844868318886821581804223209115001534638669345535210443318947597472358191248224768892702064813660434415214210760348297271014906281025986596719441515454221384241716368581990517463815234006386954158084927446485062211981711502318793391297330395818986075611934435428567748184287673971605396890045984781494565181684520512204213439229758505652204205759640450658793329225222428292321703093441627012323420948304549984810791511098098726854848497872238334986260344977316905239253014141064597217580614590250471247387182320846330501037374204741847257909676184946529966748246045581826126787809481048302011474223251763467776370238310102927776983295617995263293589767258760023621317769086167570932578990321602276906154025493330256027229611799203514803452434503048487463380818981349323390122328487135620890598406319222401902101020346872331213553161281819199718471060076793760593927204986937570289544790407848179196272303153641624758517437931469642682407272449390630896722063485714068441297417907591346974381736040223575331997753738555674369770220947146416088569204399635045964422610170456618234271877466784189223486536991781515103338812695797891643203356418226165376684699248644280462531999457665776273922290712860358527951345112226873877740672788378644873856669099999442961023232517062075162381377564106204661028876362344884582297824402645172664575926773278816863586691883162611715805670701400437909067199343248512518420538109008720115245986576630901553587040380655453332620068244983244105126941777231937978594892287485749289261152448989783603248249679069546883910636489264004775815426182319557146036823382310544376486523308869473069766463784788442323335855104202166070031472986849892200231220787543561318700134655082136073058453283595126685977013812503248320410849179635017478011476934097153402319735350539853399998917858952138247892250527970419313277295008373862364243978438454930655697645062833479203373191132334942173511630758044477219547922307983618746504705960429175041418393148731732272121164457895873698699805893092991616721655156410174794366687721276681173825916656760283683003053446454232305900852242481228323574491541941837185622335337186282537736780005111456607837378586158510784224586346934190299457572778275227107922468010505420731410511181014769851207091450136705461956663690791523642388062374163783376599288578714834431123587810085720267018240155989307686130263646928413997285249684126757374654404887982758544326236945216868480235560740545799454090388617840147983958178469010854177440758931749830834947311082740289515197242099171177068260249944264195106193698060646806449690571222123132390731599922372752608999759224609898360122267578918782577355875101423173999936285552945720515739371830754766491684231036461283378720182821129743865349991032042645986167214515805015761342621608619752428586955220142611490281040301132390136078025100470764214262588903716407222772204485261233654650699950831840418063067373762586448212545437988984523609142184878430087937186075669127540908675372732327394623885778000762079116335509999456658518033884427767115601462781876764492085613054136684488304734903902449579996026990765634444435406778363891918672310623112577979536587242973477920112661375279879141326901242838798265846060054644324660049607281517190270938488899760969355410287620138419082284559606299831224418801236935427203815262683849143035991851009312093312369532932212142220829183366181913187797087932037165334752485482441207388817215719082107548951342827179015635004944501649578869652008084593252713577496965599795505733850412956338843606330060097429017751600333019105142420807404054739885002948192537192582221085376456131247082406498620572178036996069860223422021267251939828640282688488124665805508453954406106488075957293784480474023171513862729302552186562487813096919361641223974257105584575544292142927836004549869489837222856035238089501159859653315484374026877186869475636491300501251758132081445883084024301142518523063536143300685523957682508085534009791434098740533181858011695909531273355172011673555682213005158567136428227136806701278163096522863901072355981494711557058349998689403883252300569299966488432726502274390137910559346516564475560658633819001216648125703942155473515347842441701202767406592318998580950467844781886268979312560300492360850945798096057408033244487322276260085910292215895342813395078742710924767867332219797655100366537887671751219807142340698503388948596092483721014673691586006896538912003180978946889094510678179689316311250975738481635470658390353843853703788812299443977433832627658653912393665309868120969526124186009455288193113208099547991535808626008662000426859970065930288896258684060231086511459772756223647547051915136159173593833231432755720296760167637498675926984477773718024706873084899366791309455155965063102730999140329101468470807382778726835663074904433325808159371633057974769812702330224494047537493240056215808653365425171577713551177017560428047775895145537176966678775044066308504496996567503628103699937418392819836550762869596963450483582599296308374373735156248870042755066187850535483175979938000203544504265056429986076601871222807893356849592083894228255682508240860327027533421004835666465764040973015481179626034796939437920397633489119794829752440722503810480591289116790274272709728701234140077414124009845703286220013162096897861976438056185366998297695218383881954680574110721254794451241736098192736544545939932299640254785713089168557833666474474475263212315412846403041087764260274967726942774850991055191217693365948321225805721626184026703603151563475118497185535401095674579079008617403101976882052075248386237544792741189273665457497637324449430733629213398117979542106249025942114280441605275521431285648893386591730658301477208647763452936099349256713685538554919796547684340341844626456640413680306992919210711286217924873345837338039256988160982536395568500262604169968352530089983625877232740213384042361955711473261011495862921651049214913386961748385385854629442553276473688159597518829940486834883643302762346027468338840273047747794351274383180560077546623273201863947098826091173199701698040783542919625356819064425461164538235260004261510797696245436931380480732165091701851720640790362162657160026830019214974981648658007902403047046862823515436054776368531835482003590675544638057702052367775156900851156805543222556883452883288085020997730343687010612547600095394379244550757486173281336317368606384064893348099165073558578563847982948634472766750262529591731034576340958363412614270129280613690605862666915756672375404950550318401259576116349468308436764541800192126699353185730843109712942688538711827134641510071741605375882387385400468301855197442670405872495585881432648160984263690846015282588317031545011858816256002749033793212117045599859821091814920900991152287203069016921087424379188579569991540024909300597812800647253365486505032009316844710639397743204091443755171396151737863152941695851175224861736990197371347166774024380896329660368943234727353376701988322199699974450044402582073488331377213637255193939351236059519373219974720727548956845006288524802392122491830507560786032420847668527406718899193329131702803826674086644110627940606018603274038172432153862619345340235688154789305598027644462442933458741248756858563279769793489702939738783615513082571701765261592843234580011640880087706393641729711518958944267688495421097792425259650078562703313852715834018494849715637917939984770670713134000531486203900326082421251894807198091416541794087246627384955266700173290751807806985406611198896219629766398703889214009528763921172390097912079494993169078512235667658465494669807128590590958816221615650301676487594598705487129568397548246958805798452149727033724196818537117550922088871310513681561796332331354783627589069408026534332138275457812531382962083837702040537772168740661965151833739706548874297203540547092709073437951484726353212532884952371101050590301236132485131646211828435368370748619540797836142733516176676397720669408521893057933472962776490472785288180949188296158766351435212243174229620452738679538979702732779987643884331686925894520710639260680367089259812781220925134634403242641482800985783377230539079736450887238025068482850254652688442764237510895262805719862417837443842784546588263339243808085729238574198133417876619684729488605237116446866977256373015044150717805304991133667046087232220096375567268539629259357963269596107261126436249609058758414528192565529200251399099906121480428849217378116844333755061089956693017103235616567458119552183935823321683470278348657485778748579275600467664885820583314018559664275259876089496905630305400379554180144306842639506852522047912075921280751755737698977094192909722254874450822190221128787617523758960831515670348959201606157093509705051393233898762412096498027550203883959737723932094707792956983132862786853718139765158643368542758314899033135310744711333879437651713298004636961936093266486279791983641874345677344052040205168170930099794135085813888291234681713199404766521728382297490625168259060670305029021954539575062341895547013319038605038838668184875735283279271621738476303677560308801911874552958391635955881504251763750963539038558537802531931538001770397585390156470744811014587648766966852998497965886926705355384670570810475372779255340961551400040397840577170965014284131017098025339643645083931997048541329237626868474137865231621806214106431235512792941762194425938321196017311936845618360772478795583463985172704857211710746939843576921485797699063817771771606439589254774273095085108487374215776263709911731730530029309941344534246604657946620843380183620950745009681906290039200039610789128684564049480487342183292718817131661269938136409240896543671363405796972019056242435927512524428404187294687221524804744106573255543061189497930296464869913861126338025519646704101675027008425540089748431247098788951756664091906759030753514850073052432808146876955277647367628604748276580321320536691754042315425424553958830246148224875820388961457311920169612172966476467055890248514726124359967207481627089959506526769104371078963048502523416909392636116159877428872146487077530946760037413776144150137941712263724888611929327771970164094797279719479700235846081754198238059785979073445983138174617006274079113069553777028105946398696294277309271949599140312365374537493625893580851047364123538871314624021810314027579779972769904514484646638464273245766421828027696949428025105647973122285248771948245984505520310167083556981182559271045843245689836583761748937863574274082369201397589778443805074491084484147356129242366475043276489485473110711786888886207039315769227761455678048658633553957007383741389624841737586307132326323054143746523991984613788526775965546062540365394499894110979939284548551101331328314950681947625657392986407194481773142906621735713229724981447160116758915490077316350346895279988731436271719110423738556369110355197027887428289049705601577196697492614793632414638006880280230068036558143294358407259816780386824032395485991285645963134769793929045934362210109875082456905771539779629411856563571102117161163851679483680415184545766144111304424040767084835362832116584555340571411898870634602168628976811719339603006549913869796595833671313761980526571372705486506025707887073289045891690948414783331857974351513690237353535260168602530394738837127897683862954937164323608409113252884624844927180824262463810431604061002903995096150573024002319366557680756743875654399149899762744180671685837744688983471259012611794538183844804724294354929629553198686292986903422114147140741595689711533954455388258985222210637088381369011126547665185765989235330806462406861247598888754724629027328230171837749538385422944887114266156879266973815341338940606598728299321206001791364125147221283728260004512627522360443626884014155838539667771651035845829185361629436451642966867425422833414053054680626258093062183067113771744039235013332208040435248425213188222591157098432648833211861136937601230471924754008601896780109393779660424463798536600779128027897608605175857252648954319525610707144396097756292510036381587794534952926576365734136890252421178638552178490405001136259327451971312130700355684100511472000000610746459068005023850091555362990665336477854476179373042382785389044713528844737528336010585702876069111766224924239677314766674506209186257766558550558168507835878809667076576688192246265287090132644936296152125794988278771731362442990140912151985979283462344844727172170357129369765085667639051063381133997694643121902577912566667328395213797388232537974986536593468146037416908646090993656740585842311020984949217305849237611880683489446001921210540857470004413278066554543958522318772880033293522084656186915740197578231979258829437063377104933974021548316800449028177677738334388440512393618291461688748998200979730738782692422435930135370496824561315332453787617992688429184886761722142661163334151991635684583270955883639565456052429981268424093945113663756400855831785662475280353134211133501902232466238622578784319645060707838207226522558752617306057444200342661089874555240230744547144372960110766814180910445865768132714060794724098449693099335645601197348810802120667016894571894742445928774643683473746742443704741360323254863993464434909942933348586006494642558606052789557612137258515984376499380627188335927616468211375239332132633361035716627519833947590143709150602373610613663536551442158319858694311666630644857445709150934368512354362489428680544288505492402468170273208032336047107049310902407173010727574097533051031479639871714897821736026489810564360326768500756603472515072791950943595230316377318648873980604487200253434657519305129430592994314080715787296105014634475582379233387296742639337889733921287493236057471972530650991214516160989770380141078078456491913893285755360041800332180873275119670483119446368706123865134706057160933771958924661657144715443939578528110528687769993798976352781528777393507312146160280179349061257590589359164056607989344950848096815924054058814118019552279926101971450045988940614400732242674042810001696524303849904990714159297319564668371397098008765745102538603419048699552774934461042173933966786522998394002743808269941378738104114831722551755868240781449057729268423805070054862406475632677565228366925513541887306700806626013584047583304651156855966694343037892895352611655003733572976333608862345330411572042140586768797149685972535520481133479053895278503492742734838934148807268410461003504383130166682360392593882084728276675283563424156196490892578740824321736746848826540457968210753398997588087193774325623115515165108843276701698738401538818971635565639090992047626382619963023300317318790617260430422053578113487656919485198799548687370537402494128849751122589484704698695398200774555878958524969517611804375966834223155990219663218283368561350072034421939600509945750205350530561580799176700604257011222367710738949441791895020146708743947200865964126255097309174027471574878763583689614963757104540063685722014300544729246219209870723476373681007853086749631618134464781066734182412328580450179553749109418016450821374418681289748393537804131553191742337021179367582902625673777742939599725617379874600420698712570860694173561929300358720060784884519789943785688619150906050611855503296506018604904491532127245483475391667612039128812513523861797606251366234912857353943092865087503784850470584702477105129741953140727877350199511969051280877318192361091164979749895878537869801512588883529025577437034578571320397543231637764220011964345903708759339578109459330509699876326771558040816323077042768760167567167266632132687825679437542298518592230952568097650647286516498610005337850919771890778949381749451141759441394035616384702322537644120513346052000728749909426884983415334564108758117973324901609901228691378725029477941767134074625784257581431164199268604458737244833701611885479506181087434815068849285412042208589011298320710671344451550687335208881698250021242213244357396052328451713953906487588145068482519518943303939454793042630772187132274911258912714694775996852527246068213786508830662085071914865376042586783432167633589046116204806149804797044093212586065445135857184060041831206092627976281294163430679322199256211549921965076246330360887132104528070968429283603159590760592431977134287716153219584043770030554295496726419568376421502622805712182336414317590267979772331126883714797172780402769451606142197022657735005576686164678959063950477699312798399628374434566688706564804264024535838139916929208786843383522867169152106093660191107856667177231419382923291825162001679344581147713081934274156949074272705093321883929942702837635240724769872649245156331365535945142011138136335502570838418742709433071174521457503214008475959400188857598598153367281433159998212313257854739052310931400337230154687043513133217802681328610044069928405165146248251841537071299775680151952065844428152099127641075232904367196134620910230581492177423105303572683150744774464891284459773626188959496142123811444529311459765252652493886458394173189249829283462497171725131057776559837505468991466362373409709285728763043185645379730409439460559517113125241077171607639029405880765455498621026846728587080897857641695397578322901125822654152325529739100065599752410021779605691366388729146045801025305327067028776141194574757720672261663913032663894215171347671195465154632521004803447669990370300119076794997951340328551861691968855449375592237365173940693208313459038476017695952450161702952306091076707911958359314765018400973028425625501778292131832039812141523783609678124926549721704176221571738276798855245615805032301533381211246853925257316647082181161363023018984070884526272246732176762602571162510075785225018991065186335372102543992667059679523718860984991103073444050897179525153909792084471284396449709197147329118803664505578771277917453177350848182825380615722085486720095161044261288137222895645764803495796219918122244823509816799073480167250328596759008860486431313039200743164464023704775421038242528024430836512500641583177550713081185282861511133012845089009247782330658941077165422015481728494479654158579714533683278459989333105558055360594868879806348707993831135494129296223806815451974852354692473559260697268369188729916509581464531531955388240165906104577656723614892313749456991191128828024385135109144625396788299117637085940677448247416548296652181005957385420990232080717360955700978993179697891345907356593213513753211342126824248765226938046557519158654585352377690662613747845572956727929692900987147195621313168868380560734544420793992843273407045397677778611644777715893368962189397163426308269283170524860754913913260615184136272367281369326264735639464608902964765810188398865969496173489363246904395408219841701873182193554820924310736089901883245029203051562439637339942828822040189295527501949920692279452355216246446737364885992916012901601211265335453663178705468690265498627284343910564451303376759708347196244218797306975027863975992540716839316535114056212643924473181260109600293437278884458663687856784959709138112796341616183748703315095680085951069321192751010343983078278566498887961869784988490885296822551029217362232953304743975272313124973811970906296696943746923798142579661001735009484232939301099566811066286672792003484568584856459898955580882731104301030736083292390933855687996253194116114299720976529717172049719296214110433424456564949817412765547412814308356487685130732403094188770112412980005071847563325174955756259090136656689763786945408465068673288983585736653003477170030530184875005528738129622378941268246244607846886263323153660149638167167141172194463023892660622278502519504337242762286153844070356347005170214156714719955951635012902418971131423325704636174406592161139440608777234197118329834786062882909904725109511033343368215240111683073421623243965942439199042156879355747439126832761202074702523510670989847172292971448165226642434251234080195254762281371860605933404654050576522585798425577607090869714423427622699544537052217744762645588403882990520716763754736791101016751125747137498802717202416338827952540438241473755740287713679937346807817879175924525404062948806357654080856819665700157309145355618459108499040077765932757476454584067893864479217035723012962976288466815526587010728203453318803884077214606320484072443079789225158633516999567881733956351214528668127504350853877610557081146920996365629011164305243222472003853526088719613026282524837169093268445983937800447155528973518300757872564562721680201006975555242090641133893199574455443836611771001003832173626980462173814477745666517007313796524027565412008837076537860514702767564346659865772027462939139568127114521730101664353814699308343010292244849678903693612324766623458839955261797909088347280681309352806059179448787421935166042563533993815833122218627227351272093725939205588836692063600499046711861902227162456902073750601370233077293041438201915110799238933822964424729360027995916229016919579567892236451811102608221568151687755358535482017135042118997505963459767755605490323689342009142292460713236463775159275092138938462549185436022100104109080863119925730461603794720750229793271251833739858483550841051246473302253424635098554308372744648767507021539377244544417928407880373478584634268736030157238835482008133523603983552172268126217098248567205411968043917641063057282006334504342339629916854866987536109685903554666218615393406909091590758380993398042408780179148171972681604728870536028788395697188880671417426573687153443412525597364694864940832239684867429281846520091915073472628875616942272732210820971746937547260426110072476498644220495967018846127980710301707559814298730203313674781293428962258761666896498447342582778348183245983310221902874832033465570700822456863909070691896359942236439519140903424951361272482120460116330592142924855924752264843063815762590040022533793370522156349409436688870749427896455182728515876178051945185625797024472605119965446926518423376427761468473465464346889536904303859033357751283785099308146926660388380881097697427525065732988735019939276739222241845704333771418696796247309322198881826883908827356473243233208527471750663281128681309987763777046643440103718009348923545203447250333220349364444612792880505914645171451623143436639083489955444976215551953440578621791064611898227856523623704162499800742267534738575668335474661845946036046474751479799694380876967242128065416789934686383996266329139001493270068128151081851304424463270577308588423170177271082114931841160207842621573733442256577851619460280639939502850354697308245894360409473010960930358501611680622925215156848115342236493734798905979330389573228776058904088488237395518113443970668769445418527611878455286635186427556557449834820630962558818865179680237455201149434872365666163977244655743088529135871210618126892740447724391992605208179171027866827389574591183947162117528294371819997746265682724170731844553416019618891766217089035951912949990202859884421782394952887420345401583640555899682702690828468145229247544650782238415853870327074983279592553816379034747442694620890448387935464363845747966471678244448480751402954594480138676888147931561254731765353446292515121327100330223940013255127844322659896647201238953558559865594119436747640934465208013239874037072106368410009533832155253498604153449739080308349102902130311884390579821843464098143887269782441078453149138086741164356416620762177281302109943064677088781076949930206810114332510558984219697995968880909576327782309892588840042620571863184003541106763520916319803915067931540670867725448874632399709036345614513264158062706920830748133351184131937444343175820773083721532891201548614151951604776686610844755718294555148015766847316779791597183153190109471087552606681054071473744514478803611195950888427270752071117310795790373994994939989073759943732102681360099865616277589140244297623530568231021618207344948776392653574177581423091618708183202277596812150937610534057779704958179010039040441102164927335538836865977509088868456421186350338318812053721893893726932122409873719931051276106032396436267241013262961844104873826258699146442892132584781241699808137929596804401016721653968621255776938598350201202758555067966474254628004017380926952924506558317192974821494275035456031848377579914780286601754562208606580658427137934577546379381536301187713724534737892115796039061448759639327943708412039439407705375108121495348666103145176254411225693297390275381666409956646129983150251761144502952949330531198784651845278417013681813024658946684178466137366081881175206471624668941520548774193273976173639680278180897601928048002766825944795720181768178791809173017484577119957377584672777425614548696513429016987007446726045203734702106171350937537689068853411250302939828493267542717810339418768049965413123559596848434124265202598280611099114250827828325816929166580629185087312969769429126652547800576581755296768746256714266656342652739815028893334182638476178072042025614863289853341489365565693442929043074238248779253081154555520097663274462494723050072983815534017413689659210791420298961485865005449318343058888490486018853484799208275709929191850067946929351788173314225283801613113327393324797285747423224306933998463081180221818337344234591241831898084318211316189199388265947604372235999387959033033876652011188371600195646156436010746964712572521322238953085365877542962696001379893703737693661074733615372881198032225276517990116383632526206641140807940260811993293733185733230686214056890115490625524607191066058879636500094429833967259364798642902245638058811023484561958575703181709777262585997258100203543797601008434791058615375501099829151266094143586404570383078139428733687062522632445865388107196475276365217334210555394362926257279085939673822138810274926931208922033179574432966211216170709821216252194068590640184313824638918874114338872661778750948822190764444582936485903170875389314900196149791927583827290914819020089439212818579607929726693660294030452949183410784835486730716087738759658542423516136702301719363343231041490239698295820536206952948132544832009031554419600229767231123921114340165295051981627840753355260705173068822820849182123511780004820741573644040280603140778033932264606652618882539928198837336526297850698260459932372776634638352265437041572611798569198459346424393142413350678401634571503777375235028756775354411952122520996372516889099001032731185061751633612421500932544180368096288064146780524353248473515116366134836602802841643281224500604318682638106305000488258136618672713484933789752770413186941360726806571308564604399099285806736861252033860544281729603518027954931019062543404483321341560266862177328851645174840307570734507022264517087239368218201757789879473164778624929237521621344155321505956613034285044998374534244683471270882714628080999441408376765387013943914680736876122283386874335447998209718169636110178116054268679941292817498886214032916090640877597446314518162077596819059139683001206724208700785203979849507197826750883815528576623593459565391550750430947114967430410799984011894343602574425407463216469902066643133088915808732206195279043874935141249962241055663567546441483832512294420996837293020636914838930215157048763844754921513270589439382944906680004870473978296994537696799037285872446723932226740445256711171614559095178990203241151553554304816805951261334758373238458219766537788649127999977417507219181718588627589111070711279724248632359748363729499959004162152858366984801248848481910326153313849289997725556806568959161666205317116563171823852549443479783574243288582328069009003466640052261251586911391977035743347339271251324665294589002629941569470027232345461490255706729502383171847489919813242605688417311456562639026383040735634649570372612072313126031327676051924116800452450528684279240110116331749926936364210727918946814877736142823913658570444494580684336269333691676570401603318515459583492717165221500356292700619765542904869948961241671340502774985805214268429955132754718986932622005999270508101499361279618236194256770091489065350792773742340018763981934558574793198231575367198145170529682361908570517358721223084825027394874393951021188745608401394188264976779650620679782246166797138195174724138838684863006682976869928412694479727087370919284745321435735152103624850619180253139218346631164662915750643263634504150121607235887920672993548522642334139488494801211230819020464091374301067557555715369572359468656514357568192310068824059073766460387013959188051860995163661901461191123337150085857231218578562220370162776980889931353211728125606193210216405295683754757048365152084552271019587249147627491698534970462965251145604514645139445526887396220297484191375937723751187282071309050355417494483638925680977169737062278210768187344762524663966031830062250912286615663594403212601234578507393392725659895324948259484740103564710186291464423196615399722445888445877704429031188881376375963060606530856025850777725084710878685876255324544778341396245507519326793653401908313425466543748229872827509487565252760868509985467324867546050204267298644966952934701094080583734037652566988023760251426663968336774001453767849461153493489478553724115790148311443120755446797900575281742578373702101511502229415191433173430251383979446858999988017809955529800873651778803184235717201751292692446041040771454802190970073454605846599634629090266576191384082874931314367561023551763380491588501312765822409506211172440016711116736904519521272009696188319625965992136079348590169746709061945670282792469991414098691493061567536696665416534772930384441644959927987759907157047842564905737754860418512563532557804517729200407361621358565508795095247943212545357371715315424201335368634369584940858327223678494653939195401063692290774551261165219131778653601540899302042202591991177188607812615772801555685241930280716747335287298110815035159458883751238209544159822638312262828583862488618500716502188107656907044333948191715131585842656212024550530166052096645531886067469526978272067388196339919839512625896601898072628525891914524690098702892348846962355548912820412834671607521421303357805699829861678380724811802489240033709081757102081396107037730917005245324053645883884527108725546086398104916990488949283001142078829789619566018175302844972810162643787589147104645272491881809652774092600186028197628185159518968091766579252405353437258307037420714468707706884422901495315268933771753664005594364958673307638535560089720359588799752651438782848150912384425266280134915980608954855786249804290361304936539060942641250297948298060113438451676684536640774938489662754044132898335901978034658977867700377997480277940969327996231712588933219151167764570260797389351296746379868652126791526015215131856017280687520964493336083254936576808961380990509488728604929892493487701036848396153222160361137329074365549565687577052985672399686806851005742223972904310598221816992815137040478980664776792225112246553021121246217275434835300256979189986309724114374701013398159250740286348508307824139001793094673356396840960291652029365760502963353002336218167652339819359863950058123814968408044906176198756336326848240917083831983229026741383864162273041254488030589237320799363813215983998220491487630645726294521069147484234427406365124115047919196203373438411938130284579185516535362383640351273304065701533510022076924925537624341314222207250484344342570027008396799855476950962999407982641016875575331024342028279688715264848415664864424293142074313879771050857380663074363487427996909566755712677874280544324206288591052182004994388730267586194688159102282985674675015894084759997000932427056414100722295142211668119179997368844398491716532856914888226418196437964889225700363425575721676830917089097371025623560975703763543298651404898141068638618313121636293492769210781807486670605793487306121786483508562259633910054443581125072802417962677555851261591697032557147618662454288391715777692982378086566400742763554502252886645724951078560030227802229497706065976813667084908385779642478366753300695900351623936799418403487979805322618208571697822653425070270133958721179289506626082589024487791120709775568218882891657410677199528771609314370602160693526577729748248512059708732918541849803269021582801469212855660271069251993103385647898115903018292659808024877207607254660925843412129364179201804989780512893694699240469181347949544781592714310722931539637448105760008211501207480959777916945484535801793212528259396060456482275994906192929630362271299390052233823349962372271311098554830043968304925608757122015483792726077435388958478672757016255757788011317811526328874937052822080667196846713535712643880272047622779255146273179968237206743661128075895464739437168349205742210181133662241750130557307263566041457275405875324103704895898264922814414451377799415074998134045198995079066516214898745957285199635885670582687398634670921527798076109525328752359398470617587492006487390391179664293407798080459802289870127798132568340784547815395858570605644466556099220936210025634220091417321472071514369854645805877232646898361105026470683613854316491139395178320394016299485114656874945539018728433978588890098867672050408115242402921177894256257826573114783194332317996426330498742270969336422032033089810713982199785183631291103646402089879921792857254948084262772442209894170617368307080689335818547352368223040308228420968102224681709558281336656217144169178399506288685131640385193847472040541002016349400223233239166386501416838578130895054113582592187238135187957058899259973820244857870910504011461213146988224333405851701072819057076195921072640684830856986216048280888637215138156275970407981137817207247112749633906379362479175980239925826583452861565662788190115530546318483600167572113047484536930805412224155712450365440539858556585809180411357082074331008043566530736504064123482567551263134082841080824847414556755843848531595574795590133475904846516127035398558362868852528417688623568532779290746909385851147500027626694130384382434042725730610502899297626154990750341977913035651027646861872194595381704810048660498781018792803344984814485360444513286005637608089493491203296229935364899114082055628558977626641063763507627232563907099079107736359134975289280559429666946788730694381999539278481708988705956239149292667026833939925602984405018343215990379452783770383096684129669657413011490266918691739386329459710238144548500878224793053723492535088632413388481182240870755785892705175058486255565879116291909250450696673371322845234666825673916673959658670664497665732599892151680471464603898520210241440486813012753858521579000623126383835340376310908805457472574811827789475873615298238527156264965814783903910196128248889218452949326026027871593190788729866184715766116899127478044331020057881475904983780824549705528177896163291201134995704109855695296338119178920740997779484706396181999739356877964919846525701351175040044357415707109026665504325601390790595580211078289131877081465571769833296146436361941008690998397342578255966850029795590787378406112353705388481243320173821434668272591148475672483821049845389189218813268112517967313890891938185624614714864878000326700096235876633645248065602362876396131603205246475288348389783712618872943540235863074354837577170326822435478944790828759899440015262274696142458744116757808626499318736723933111556924091668592815784876708828123537732978879021190948647893553233486277115050462954186228168723874719161796963177364248454534088784667944358479330854912590450483588853469883014400192031411562181901841278821074476981812179070494050429067309232727788919048612250377437641098776631960704695069902375110910237920589884514639904348585895621840250047654086019135323474420658114422782912354091667635520037776049331124463939175879455985137034533976441906497830979538513754253374577786116535744396344319027754712020961586656364855034060551215092017821845861177019310459914277823598246289541333466833774616558296488893183504332706777455715885987843684364829521756221471111579618686974947785473109920697328213463985338657883772620108370509751854973091881620087656202589372704453398460035829499025942315284987740890969101096362985211558002754792584684228058731008671238730600402922923512136645517710800453803741725677423548710617117281162710788055557369086329994738639970862019343462640895653634316663558702855311533508484004864283734936224921441816336528924375670483015803854445762495328381729243239764108941068541303183278985568182102075806067156957501753380734794060604918017915644753164704226686382612784054080264208641081920757326825201966681697316801688350423069534685922791589990905440522059607171965437899912070527108099159078442730616995684628244669121802182042188147626724667678377946251772728317233690976979145068371585233190830470006422050754813174515866279971297864622543268601531271716039132268321069124921621544100073031002741092224151360998720552582236746901634487806581316264633147913076731642100619404041150243000871544052466150563727367958293898085767901061837824023727971171679344637140985991005533775164204153250996544418119782728377139848697315393704465832999313760139488941132910860247354014295252089731121606460966229208301642049062667822298925204378060921326555991721548302168684357762867891156859634586656396211638295881770778147886445302525804701886643677516727049060086290508754853293126782395822040079692800584708928091839482604061525840541069604622245819312470110690452976078921061060924997067853419464340697071066909620090530157707148140615878713230473131452550968905744555310153004893642493420616324318313369697268903827166037740726340982340315037866022366640255422982882936069360358726918391699100293408611490984470620912240886761491953464245533343996292361216650375633716621211280380752669594742019907608787561086713070192671836931573221301430719999121716150841547349848935399407001291933746124326551162230175565240375710707523318300376266661523201559068686910047925049995745291958043537255388581755725330980393514769605687388495563144244593967360370277453633631096719023706247146365535421992451026531720784950263288236437505520514749310220150246885107446187165454603801995872111250707660389297866904991178669301040707420718612153709979294797579673955963003939808708863939968463035801378659772692615320481855532680326715022687378390931623369894631546592528641037359105145318624532260896684632835486150131891717036079565552420294690695008789023044854933208869988815869341432579873073266385108392282855548251197175958934557825120676146893583319572413814228147355492317274115899379859532132329636262118064256998476337318058401042260026056852555336990970320634290271182190562414931364948631408262236625620802200507478967788138794107086852845259981042509197450726273569062831337463670444804027652109723535814285487845535460683382540209531094086849294371180986553360745208490564141495751229857175590017056620637898408226086734293754029020126354635917479253406417547586923871639607518473015742868467636530564163422168895630817764361826870526327114833701080713253289652043546815829236326906677951418558411009668346885770609805583608147860902363670258796579600593497005434851491085767666025089317702300606366717633918827481584457346215400021870910691876608125781907923187973299781026383633105149818195734627827759329145256544061548978079020808311247875775012096042688247683650929992517216249991063239666791936615687622033858358957195440444720245182746153899149938840864825736414706094819505127433361825917283875212101484240999367083218418312012653487307050983659207880336824852977406792216204095630377193842844355910246840817718230929242602787249124333814923855843828802936553956684476390272413241918625483166882344982760599291966617796764834323066059767215568851232686650282845600525946749345011592696286511128830409538896297591681648176167071305807595482347535559845504495844026117134850804658610662751291894776588316468686618144337634810983076312703472066518761089823781291610991209727547015542482993149885357240001936507320282173771155180046590752435075205433446194608749912083932547987372298385250076204776973118899633616768287312698636916856413933937108968547325022891552955299865140723659343375123053929842006653856030503345950004325341385634043721692198920447826204843531611559546041319117929922256696441254601309155561567399197580231137916524669219097709374128045116927723278418806108166835473704950822053712834163305570021959625096831556697633895136328979773930310185969008632806608777463758355525166207187689669976864135751585879236884611521626976649798512272970064434449408895455902411706699417866157628853581363062183234571551253439380275162636168613024513155844688672245985039792064196539837546115083545328000645099740870375276112697952003010164387873678028172897826486907069954380204057729029492491708399246957302478000616577158334095270919600620521903271270933354286104760809385557097505240037094489719456565267863623034392456011127407754444174662378207762176753539301472939381560583901614644499086981053066022135067624986630435633168140643579557822713525777109939531890649201413285869968948687158407302167697552485634773588533465058071796344107961422949830297727201265153549965410181282646434980054129541457541275622135222437477458317229184247764853911964612504125255697609561622748714227060582150371738535051183591000202912621981147382412956565633221107696160713596125305031906445200461606297676960778149538077562804327703769380781184139924528407520070492156049788259979120744539320586449848810763334101052303962461120131453112273700240307306210730230260546497206600177895529038809178355925026804498324920429995337655747360167905326038342789797513481938085777244357812836456556629077123098347404683463867266886316146653264055609372639001265682450711737180455567968394844237331756569444568944545531416748887446271160423587510332260679694216896045650353490271585386335335374587130985040960908445724355834186941663289398017901358221595182265207083649914497381800433312233711961815904417394230175429233296593730251221902988273477543346040950281668330238866408280329591899370870380759077039594430385858079622404689645856887973387972603157531712747444147836114571742462048007295450703933766560640231347555228628841773788185927795135722782194820932585569060334974367068161634461352135406053766603933974131633417712663053050173964931452162623412046509543004828708198684595881918978888047826129440821275021254852987673487658226413095809082502376216813975868642860360325218373394522541377020001011288881949166943822232661652427794177191558730846672916572804343520796312040440171319414749820297820762624148651595280487209809384769539523241176501535149427014249481784570301820943058375684726259147376827160608415238436796897677611713827015419877498451213214293788816881103694306121477206154695473534991144191810065225727937102785714457752714222943408042938193896309166511446303915055646059429797878776441884287289565772303427693979312344496179510019024545856254647501370158282762279948239065874684584688133593064166673900245442454518134332318084465618356721247225914955036297192829656551241027004133728232522335866453551519589810284851302222034142262054386765243523767180332589633853955174756399929666748451272994127472445332479747275541729582697988384685870069816826457835215445534113393964265930559967815994416986804629035106596289610644907360548249088413883616292671301873499343908072309779533379369564990641649877916331590365394962387505722891571201732194402645808447559780932498568922718793657348796621295427781773009190769825022537743324262255782206714607943543582215414757018450335474680325434985598985176721117130023765727615194311760111006343460379089026376032539312325338185812891700131143300799495197731990859097704830798405326728616689781330676098843939300859913898551211633999023414856896243932129270208226226081343900616111776502081892980745019575518297728474654142595476632950881698227508841112289184476424901883056158451484629804155102901872538669381937002688425341844606667652468526638544260669455700027478525241368347858889108355079099883081005092875004320989689469717480807261684436963068078972294532617934258774649321059810717895906859166509717180689348794044431685688371187036835973761885662572901613944671018470869645061209982693842613883248455017848189982234486578931425401705558229641915456437035221606476259047811550958365520188982409589520809478440565561507700414129146144033785782091309441891565151488647120164917330283518714795607607963083655119254830945296151854379202259069108410301816410359666814418414593190466156601502824113679251485947927097753787160650157398617551950780103989881989931783313815479342438376683947566908613501688407924095738077009634774490011770356334309340064110978070954926119364818602007514218406271088693200199010125201909457308658262884032423025925319720341372561339085673345143834621221188291178946103651745993535946642415280484516472754156907044576338401258408706936542049874872090933039649215262539318375196751885122238143466022940784244761163384222658979480549369668691224798663276225211864372758918893626226110195382560986252598684801415982366884529700552848194746521696748445208848448315236560499645593590992489248961791790216770128767260529717093870507523141132540644117683838203155119226458963048478186065420651951258415829392254666721759461016779241506928064525887584388549397145389678974786142929681064935723867683404886262985996668177189706185606687887712223993937084891536115639489914784923568743634024402031732437209703308892270790012134137951268414476193467983138327171089791824393816378238814452010048655670267494506650998840657823766378100089667054101517437857487933627821309856558171746418122366227002234499878127909534162277078495926832659196095736801114056237676722879631772744725492497670023773335153996436681166682037772993972528464244284203103387623033250003845381431203791429972936088774260132470626112665839862954730011899162132361031104578769540972174041653161140951042530996297413839962442420269819707103749140808492679344380879369215021812437564536294950702897296617626828436588401837922198343947565323220165211776407184417401949373777631967973133618566146842748623044061758929329064280486285431905179975413908323202748915273893129346124697375488704966011589150089446400111532517319610159847944197144955092961155404328798544688054225841338568493987461399286362835614714354066306844147613156284424419983697374512084940612852700607375804165629262837008836361369275118120114410095439956917818439272336368736664796182589804355961640270713042568080690242832219153455593542177783626788720039658054677302378673805532015236951506746447001617238723115655419543975977444751449495934786949291162934837378290415133402042921297530753955900474363035030684425378119981876880875899913141810485828439114400103068595927746498189519632657877037495966429213729661577713355532814868656906063015713689397907314433800118949925476066715569810474363763871113313151315765707374147073067165867065575293099150873233476451032459648502849320026639443713434849519692128191931397340915475013462952506639840458504840836089988937004963379997548963832924803512277279273459094017287655895135008589868051063253364801502733948560424273742503187121628343843944178705207826564070522515296365609932512651248616711550160812804883848974800983092671776458609300945828847669053651741616917956336252020589706630710202048444681822773375173938391979504327474782978621312309804265199924971910553404866645609657787920244170232850204691899777733593687648968303549817982212395039811765649937320136825266760716762580066019483534527776531326892206504389293499602650709144109854426156946378357890708272058962240380041262288016826374160440147250568043446718299538561670828963352035059404614282611108783182553046939929200852477554572949965509509116936521374950821344404633374289023161790189736865095521203802562713350797335121041644005117396262779605029039029752595028125984843336666326207472203164014872280689571901717061273234902756791447978068975700239104115665782415247685836421007321617453874993081295934375331167404422177443857736977833744096317461036367762714704338031060891397698586775631589047909219451523171829116548781538454000135070582106093403876064166977274670856605947494655012711524529382380420502394001907244193327804242846921236499563547739048909863205625581372495406908586150873203356331983550236417115377753081720528551405740902169428576436208009122908551400454090990372471081855962120587155133578260484122573936741696333367343174246115403048931529988287095788045039670336394575814865525247557781776879959282615435237524183809192588110862389222697899276916608329950989191148502220240422812735098646609778284478109937495479123728484611809738551292095895741126314150972531875193445330336633225687274314568557911846163431284458000410000036397818178639601071983749189239295923052912662184731213828102091399652851902546450071512605814056557203952930464272019251977733837438163918338907594836110204969760532723335624578401036761899579819024553271801310032082593206109525686556319134750610425575682283345168873704866250221652594551743395032036838104865519772054086942607425129630342931069608021830779518909186229388806331022180009876299384042992529055812162920627158852001988954908513157148090696485487897698729689454541872604551032057522645598594695737092944462998185301659006173241089982596323737980506269422988742509962374456096915473101631019046448278130126853521557532451211480508927800745862887908016831247995539015250914186561955912449501617745009634697383618874368368466392769072592413255367733460012890549375475938931897434598195334875351359453616611162191451154281993992417550312066820729073626130418376514382923199564417667901670797231634357644198558256634297177720309696851142538043656369356730211550714265217646469911442707839536357783886080023978791074899414192966547494732816238297373854414044103459116925876324335835937939674265582930984189566757243655068860805923182076898370095986146201105978142354479506108094487940176347708413209943030160656624485127327149834350370163632435418314892455417079376222702954659593264770830015438921340579488873114242265196611876951065246602413732317225487423875929279590026722179533996048548926940405583295298429491675200587107683867914954525287502117691996726915786857120002640962613334245736289969651090084557074443495660259033677707699632831005074573638644589655500312378679973232382784866685757111446015004751053973165413141856747145500787095568330934677966855282196242820218873815544577058288778233454269436442484049037248143767295404658859298775032029748456207385849139285930889595694816683095035953230958710193995385978598092784132904997375691635195855719382367712735382390714092456877220784568651908598266585118602046163597242367135555420619716346705052400014295759025112319074505103195822066979357440984417323999430588268472448798991868180600332246236118804161904097491601187335068399401185595078516567299630609135978608391580775635363822456855733392131554041733466033296836239115427513420188368945635764139670830088414360052297716309293309536227918321187227365255961861932151315690558585372666842750030351965137551841924625111718241189413085567490142738777527945851814275728608190694006550112552627797924473334625236014815365557408445082362467959212524663476127974046722778516247132899957868504781319989530787485236159436944547286562187496371245387227469398018354440776154527082388767135340184182699725289545487404104412824424111944360663122246531570541004786100379159725638648566239597292275466816878942321596781673941954682179254828759212638416612322388544021047659770812729893498949645534367466266246400424854892714757128019019905031823046709223723437675451432325454132903053086608921086876894794733663519253256293452668010884852209314371202428887231073368070439041913341796853427134120832795403081547966968549317412844813455012855612797700781294076553724799460420939244499084591463017146980122873997811729152038885914074928310414584861146060029659308892324737868009682289341658991890544046820145652724278968944866528382740192051595268855261567628249932706227700140196912540213300884143144662532498623136058922637689339564960494966020298213512575238032477139757837168612801736385480891022804755891244348597549471299400753274676924146548964305795828873071990397586987391859664002507875640191947810496930568756731451570953505624669964799606782722674610396587931946399941079844546312043417472028288071006416675433437554855947597428476737979474260937731932089488868015113330974198159536494412477207772579730244331993240743047453735271016557875222379478362896889067828404694269518984402810795909697498441422210044118050542744820789343582512688397996332019892942294685383007467027274780930548789676298149347992787758054493752724355534916895679348764572149015864579812949540715198083354377462335770441917712831956161353760691013461495718887251355738758159417773433881880275789965924351736233603501171773951627557659612263394896709055702194834573033164305684592370749444996593815777326423072169580593692511105543734115283573728803727692253144879831502350084863757222593095384399595294196081416693789334817638867810984142438529874327412334176065917947170622383894125659189674792090012864302049013828297981713477359926365312503357423644145423800248481109737203322097074301500931870819454776812571995029695053617649291198614414821071880098104842443695470595445367714913398041496001397513993772637677911445592727075826334709346563282097535917532601403257215255224468982617824355506992366528354050470750792636574215956745956963362708355622421498896280932040979259411134881709360858851541195479791121176531786934793191204051713013733099064430749740516950008048755727179807448827592194852801597940713109984194832352557562920663914285720065703864138345352522013045001763899703426494965647188037940160884631101087035936068897671191552927296737282089952223939735225182863172249460720897300537916302866735175985300405785274357855715730254427658422196985824325507421597629380930336563100062641467690007365646470497871455875359778671439051370623704749717512559907531012947186652031910004738371535427614117150582614719487658826821720921244981560912814582516699895939813066022650149219080390023824825956909866283875403852802433574667008910556410582976549379268707378845349126446613189396576432772507477756957657574210655924115924309747469853494731700480466979085168777425710926033032066195931557200671441873966503783912622643642384843753500512693108253602516459776739201534076565799402847467170464437473891292130010523534459600883449968533148365831200488645157161664134271580290025170689769414590121167550820993981147774222955493306802171667083615168166974062502550036439943492892492423905010289161042081206204698794796560196228469497675656073595928671238416153495870985990851923999876758454756022886426901002661177597983692642129921121966617570924183422062616960886642917017793438858026142260826052458930964025382102083449289017892968970562511968438993581006582662646864152686420926514182840085781121665156857272270124043058610807502049405474800516286112059846314215868545842429083000243640864418045219988990304236023366771986297221679170532450005210116713443834147893953984143651869633408531949276690947536517735489525788744035011016713986263685707142191092572319281454129201096180111977448625556784369701359893905853799135774618039105285377117127770625418942445112976856367915197224940823534926933127912091751048056505305569448323071474753799484967361346389256942840391930788128101681573173771499986129203676183908720991972171784139796873434312389014665611385882155014995677213317354081027364983960528392529326647200049899696949553605489304856074633923549462069070788026141620730598562484970094034819933808374318949585094838877417733830560870755448447541035492824712580155495749378374128968166999750403176120585972009247686520520681440765939576480616143131354648427164481283164456606086178074662294242636882739626438022089457989893855099660060902083793150161895181626657025987167444821645825989875599626386478385604765514099126762579842054983214646749591698358061718872990755742098799492416668662848812898225026157875487813460566231481010780524587100393623528262521488236228250186216878455840123361627915532875480912620627041771010032817174858174367787430798401338137137082468894096456573710196008541588171266113639324534257654038412242411344555649773318831275024343579192726700353202952734475099328879192955144000034035717972220483457554970170076223844241151547551832378384793082739689192705034231389921839817430816362337031776130641616176268651721827464838485891965268598595342507595175866128577074561913692229089477757026490177361092575795025453461790747091108672323312754162838075017729373242190599911587064682297341397549449317714018645405058216494590462985336260325666373572054940923428048925873867878886991422985780126571216342336035553557686072901572540258392306582840837410964458589123296285908359700391571888443281128700831362430764856417653440652748235917370911703843698895148945157584504728580794042711494388761836099161216097475812667561132210267687438173513841218660591242500815974092384411701493510279487339796086461532655814351835431432526664166726764812851816414441247998094745147110527618509041607382978045076968107474229201802021798621549320046829086584972809285638294996691758208866969964731837560547953675030604620896316839039006432058991862673281109808181688570829338730767881416631706290907913269919897152410367044412421284183645958457345137469801892222256497454990870783988106390730175288489340921495219727835093896158046406417905332587471043550318758143173339309848952291709003783975147585152223303025157491505456528060745986768162591975574011727175561395450808757333873542067423744605154601482783441078376830842921814735887227903875789578975865118001284308992261367881537689207470049520139870647176438484612377540979539222992433741265358803373550019687451105057086802307805813394395805871157574833452508377925671390060386888916260507494891223248627812746305945478701183746380414098021838653640630960681839609273204269596738763288594941006138475525467956284231543817842371261655855648581081300160784811673141621645255446659884150479308136483674829053698319665031919225866565013092702050996193948791165436803830785326715744456721516245522614246967642470714473557150553354565110196574461213636208867704189105131425042652547374009637975493585991352601516145018261506141737413365273103258571820910288898672325728795362883022639020999790455574697398969176278928894025053933165098924481315265656290949213162329795438745958206426591136874587786951955659237286575018181226705453325986107238672215756351153714300729126956861970699506921690041603722674958198172351696993262420254076842996406901915594769824822501778419594566017629029386400464092959905290571886064835314471725840404598747819591526405229946089705212344833147134491394976180429297477066490721751455275330820100479658182226136260432462980093109983912370999533215245627222092270324962560831605770483644853570622570149433846507568331366470983907824864202849462088395366940357613913995061274100803374861323182425695504875967078369956558352168561512592355406284362644486203189409822062580990468491116908829913211749958560840712010606367570511441312591965303455678057202500368093500807734566067185856437479027757735642437847190694291047422676554147498974176184938057020955294447982092278916866989556537669373596725332265332082705976916639107738947088551468284859016588288727223197392244384078607231766081589829913792040250589876552878908879448032452710327578124504987048183218823500280816261725643959467585158664567125554501253576267112107786913845430039428443373324018352274262927376576536727336153415191486600302071796722596053734005285681553979470794287516687448443296110911841041887722183672060109227097255953644287210627668497505719758220306208497988935370195222177792097623144155609965731353056925200642048195421810285597353267048213525249321791336841682291277436383814721081528780206747640677667225066835708365030755501303053969906396081195796182204505274852952486089328890153345207257655594265929066035454615605187600386707468940560824207834155848791056162202326911802125560654139050772320523757181424800474347366314089883425544443431680708085594555717375317540305884427956428464998997356665710329292846905537494106791778201199454642208660747166544886384353043292131256888289314973907873613861269418419522458194112602876696956255699411075501157282760667094004390025497170892535913315258700616273886029816860525932732141646675269298174907038512541639878024308740066243530296615123038127772864437336732918602307380127483849792244776725940638240533213978204644034578186440015644777432561546707147176900979980472078674497621538994257630336776959714058245334349502588903335670742719617775446444312273698637641402367205543171298805560947234319280002091713316233954739521141930794943037406742221457676624312068381870285617316417875776268821633965190615159676496906391322070353546226832024502955934573224504480927210614198417002123799424836155988772178096798073099323252145630944110018828636966516472838568525370686603340443603055182182907833914528500125332373063265616186060204867113734576504826815076086633336689994416598376300165966862721239003371701175464297175463596905465644152929203274895653088887157835875931529786667247036924111003969263757503042849681864702977779834225459787534872636664207460154910865185668672595206180538919109033261203219504788229253652107308858309368016666140447021945638428680465542441793727770181875296034321345992390793764811900173429242744108965737753718985829049814947122765833886636522809162852151112440060876792048505745620295461829307636071511384291033991221336869717729112348341947197479608204479784744840103102586200925336743742762880826052387678982337543220462443170806892092270185039854069846791726608463496394568746905203923197842198930201152208653235549086215994266419471035101024919079428882598566212112573795679466777630932531037390307557693460501576115402287347171667588645216708521755110039983742004481913895724975042094990601133795074620969826221238991294064380757324962930618003492597249988062052636880703593359907130532245144161593126501214974101752019390625390654194746612135343718331528233714674637890605611190372259731024322426761411864988690154909784456679136204330754414569044783113954135766683784833677278536250748344510492625605426023895585480718507203884172620052701486897621059397909117661208071251639630785953023838048570697997916087077850901505513919487727266174730721885899035662859275030974304192320706572627379815590047438281121372338483553801957988316052074629497916971121211360021844395629385356062445064898703471957680165087405945302478955395121221905915747626042266979264453956200487299724127186175134457547181027458179179662051147064267529095382631543219132049074009979984250141849574336279233500148319697402627062418919921446606986975974970273185815018992280270525895941047512197279946961151476152821572945348626102548110801637266946406834682240461902908642387776577391276247669182407452553348744155460100917100990942882989384959133235372642550685375192832149330110525877945798019621924547728707027664339987050706192243258025828039731684465157960338689129094683413594251607851595511274592061336915829594129116926657385635684725554201356663286232392206860983164520367372330472281073327505359353513013571802240285831157267420267229371162256268344073079090866867455979554379699575208936614715049307653688512046294453215692875949551193624832635272020961161722429454858724044943491239581675531083818139179689467625337045877375448768032689128557623155573741011198266732056024792196952466007329516763076836844482038634119936513599487653046020427324132294487186046291735763046163008485106086238467215094710749417101331138465867071930362482153652310033665061540892832578910874478089867737412090576967185832715002268836073820203961317236861162787871121172613735399628478831874853457168685515446782359968143790216572360322918937961546405390009309749691067633153493140697442875327973992246318420521031461457219869323181331876915780576820809140788018307424974666347904214935713735252038577610457754808512922332404369134626256802436147929710651103887007974046964262322490060431674803243926070093332662460673972249726829683278527057827637712630357346376116684269048934478126610222144185815806292248268040095248677353954029347621615353399306591660133995187392741518208631368042045491479677112819134159780204313117832028366002207636156605729862781093738911036907374962605848454979788914276521867050478816238894731970730375607888410267643361156430143811310558801933403749820208379421029486822334510811831145076244633568649746012779785929679622906851204653839991073550017040234173660819265233008093378144748975935237705953167632304854995210428687773733944321894507777372713065798299225564500227026841295512692624120793971392611213301270291596793927268873822288607940582254872731668501803654132908157358035044715555504327598749164638627811823084260239262830188259814866224194098735959702985505986093363922236031311291839801145802262893213705952784514824173528574561204668447775550292046750835330430860602471223491016755210331383285730337545382611487519058200651760631957897973081769833899240824222967245987174502804279966652248440159500543398111023148833625009233403519772975104214004522731892534096238427733168253156331614841570324649260457402753028066109869873165352018581589030084024105709187506505903941121856977770334949555902757570276740990700991440536480425723670876195224810898941722096308857984858738751870980353991843527080304038468837580174768315916517393865349639812764144291403984708930058214518491194841292871168566493709223029052697121838792112460529427808783700585802348734814399380072686175297396479044361232791069213826574091577893472969590904783675055869413471741919681543679691367955435832224916444779471691647278125322212485285893405448829350912808376576542431297951444692481426713475882742349761946931849804888081353350243072335079080285579496831157086930844963634229019180960049347858638707280577164002281842078783599462536154709036722424943566048396955744364808371885909764900505342240210561265762290059943852452101899283926274109286930894727225656942936767386683093171946355895769559355854368334152857106916266386371272797263789413678394082727297361687552103206089460356139168244825661033383950440439093398540207647264912966999039482748784689345285449967127623534347625938182378028197514517131230788319427150835457663218180253165660136117022572971151261327544645381789829576925217587871972961802048570976459930266467802656097919363334066394134103059270777615971295366801785180139430933370935351793441824214884506390994938272048520888409027986872422588641282370232361973423076891568520736542107588811622257295935753389533731929880169648388294059066059701306165812532906684825114779952317390239816078655377302240956022824210403459143804875249455399964794812309170366881407783738217320000559638786629360737757924640649005254652581937398118915972638150606116801721397830689778129309993560206099153494540034599439666997900638497617501454927250571056714992253986718321620247726643772044957517503440306619466921707872157986839689497650523257152205986023627081697507773988864800920573020528886965540342294566689062470012210395911543272115144308738748720828230175677786114223652104306088578596040263632185583998245736387980496728320954693136339273776231776265793110295388591436792261946001851646811091169886201123519476283057757957714431047649214020900803629192429607352336539636717022190083778190046658427574410635207196956903588770428383539498705737384320239647411219504445304379820310477236148325082977188910635477836495240446401656192443307938485252979240263808229119975978455319097013532059742800638108678804736604419213835067416203127136432158925609405891601442372118983272224967888026357770414268554152832869370145982609476091668812406187504400828307335631181585288126565315586200658012833604826220763749363526388442960509367520331435794645720781386506910619393539400578321731673004718671595548637148551248373818165128162546255381172733690862642210487654736897854552819510701001158370702559369302494990436209114889146108212999940064576445398525409816614362900527473415762045472525842469006558728817110819998523865208291049762590196715271840689213538137258470632767788189877626863515162925985444450256417142199584293596392920693378620580412665020867744376256044328716459851200192450308032869697183863468963495613470834061579915707289057142637999684210478384752549377474907933080112354132967491612181498272251642635284943385154118419127786336620339750956331341304565647556647786940431918542080169875301996750263073213415964589306544481399308195240716781859527248085168175957735017497150814333445601518976218347101004714047155894484707726035783435276660099229430018031760800793234158224575925769015821444483968626537744649425271905021336374473382517012772713083717594144746029465773926431560653933359329443875480450960443201580695201980112933819726713466706254038931576289835371705539573466647100099356899070783054460145870384179686552863951974905337022328526705250808245175832573854715933610160818754217308346076515261329885066647100149228088986172773035886462769017424147551368426921111997005686841878058449336774609909604622906373500394432665261551247389666330256285611007804662328251233727007940172814389831002513519506177959283348850131982952636714855416237263452947455744395836448612605284499640025446436347562859856144777474030139577396077511220816985886992149812680251901986036663190740192124836351254291010100061068897729227824258302275686013316745134160755812715841924776267302627499760601360426146383992967825140253630504803152319424552872463473873459266581284337099095806976915061066592360115774327694469887338840061441500315400742698053103669128722937041994137637744239884414409439297865911303807149515214409907874145900932051046647022013037163652597956837463748152492958192161340325420648722555045906035009064408990648467216202000722001504694096772585551861947971802226072347709522901099888951240688432431872860816953606129192554495526263780873435622435690929057419095237158751983680949881426142729666874287461555762996641408653621649218243085030358835217394712478652091707059961694553805336856859211224265508864444390488874259110791236399637360691650200153308354305371794467730263466499815999672256239730570009405994725912146134367141258994923970229605967352546274552482453803304011327863499970306267236596965473022071567727572262897136199986224618092336686775087085198792044435656651640751518829745692850685041803802651023578619153267717945727384762726119889888180070010329546553657037844780806124577040009627703864996682260460063515535218560196819869132115489752218274140205884919232472009339939966685844643996316173484959946229239683998543478763336043100309637383925430233255673037860264721620130396996123655704142728484106413922338568199116369441278449517542075367474972133084458129714713811541608485240611534678486800104818726955638794871835317499655816341155145904421449475864709742437542737818898032577354832759928872132327777062359281190057036811644771689768522444599527468812744490920092574909999863303363032815669841283449154664961403329524667861748337587053801552998474731608900685377515038338639056770351993868682342922055039485757929048789176341227606943266363740888705811169076362177737072303507293863837538050020102613782053492126310747432489968565738341700844223832851088364448464887998465670348824573798227874156410493299983716142276476432865975056899221688388113213833147209000727354886719467626300067442826587902729880175346176898434361645643773559204676948055547877156887981395215494105549080911687795654861394296540454747877667823577852354410229192322178209976357993784058183128623225619140898322011741705876460514897325375621470107397723322311823189008840993756913743584939807882765799355775771950234698747633517727408327359851363561413645107776096315021644391612236506176590083902379751049744493347687893990619682604711067029159276343460570754478460900798168908440751678189593469616616817652587716318270958200432811439939282636776273728828285430175095376650457083476330715818365113330570621273648408382346098534505501542828808190990852239890725426459220858363054511828156627735517904100255645058080610827997033954794781303865356755827458142070411079960633303946084468677637955108149898021631669514570736999021062015978302353901173047997766055072035433209080593419812854325989325789605657072641583141694099110456021644088466160128189415261178078075899800786038043801768418282452447265204034382294478784207955616231362071057742640938197239592485624366120635817923745305070106633917591553024621240699654319944640240902277975885085551434663585857419232551616076817323707002066978426299642689630545707748922297682924068769468949847960401960856840750150712580912547024059754549238750839058695020081692434142789069032356149296320597922370563949186179556853098137915523192450021420173089824193424516012029105547459369836340103445820579048592466244994610137765798520195283906373645571120320975409951237782379218636598193937061896637130514776330004523039250723301802841617061884601788049525794867658185632193204701300956871798046470922990050095120609277022112804081778382384180230898441294336562335035450509839017385485514986418370062496955766869793784856313267503519169053271102803194331547326850086298710026514061069002776461332444978341392046730017887791705458849811533619977578980514780872535600111238570845532892052038459593639612559830031166124407003462041403611615051916169857172267940461296858645576559545243896050570763160263391124015601598580579462364881565878090161594716409461253613162969459739288017251733279152103231682046868638531175821155999828576424688163453063738022246112703275001615950000026061678819403464986009462761297762241042935808040945474902161300464932339601801835142321678788894999320256605250716317228086552397866118069305176044322699431423454645988989647011712225024854406243788416521254649848480485782429743330247106588415066573099926016350481323810154430661753402386377373451961171548145707602329737165812593387559076029082581985524864302271851769555401217995448784656857887702951477978664799595720751048541077566851158848175609050444497115995054821554364510867469571152972067621133094272757599886588238288311899096627092834549928804014501577808394056312616417142977611823377659338695177909756030814797674871610291394041155114676692828868858191389888430630686783946867121694587356327446738114316185025465447033920027912373970194464806311564069667651034450820681462907281243613224189924987664096177066122695944205990333181510469427837946078229670718678140592924445508056305493690902267465348159993180306987625723830664030812040012649381347493012066225739736497967402138946961986768193565182836965036840118349598595325346076066754650748561122195749714574011598709875760120888468836036919820179898456193192928925371152950610121485444177568412863995777302518954644502228596629459333740719137640504461136707021199714267221474231204428680294692805698478590359524298189245272847697082286718933518738116445109226812148506696381913117128858958034733671240854870406980173557505959807328358792951806954861974219674894053837993607774047999866058754966922131876254262312759566962702777990315085607136052699414126421167022384450281919060375166239152532065165663419636992329744837682096017459043607436788540332645492880197527702645191680597772418046158182691922335002424702779517326196828379744470120320589729992428907891932769276555104597771587886705372434403106046474812014051576773251020565076640787657504871132264940636521101944204430424238875223808042633831534676717193980836791297440020047370709153528514163245458825425253859899589512014893934245380425061813729936436693901027172507361079146573571361946801978701710272314116977814469088002355074989201950712914388546593684475917167728341729789279882720782630745369424116391490619376885495911226978843493208821766807394873992486760802871287759259078957464697783643202886160429703901332853388731526910823438423607164632348488825294976429497882745504894433973417365084235634255722668013288751910289165165403891387719769152372403836240061277697821819743491347735499805501078552835846759667044800470073545963879077855086602219761395015502086913590787463839409216902801125266501115429119174876946486589736635345338912075962205777273928548098422581002907523653862005636453297975981182258049756585983149883512563461451653817944026921511108982665060966774205153828474849927797142872401696741453644715234338091515255973666273812848879157371707765415594033018140780128813108516092936740883102232369017924695069527274891884074960350945107502085193372748013169079958128647715498502318798027844958950132472085156735528389514996935275845782362265789937048026628918872733172435478125430897880569782998188564262247811458667492828829503152199398548732391477649753517365294414984713452040348374506477607190514856801727200224121694476160507938247279727370200211033604545375666634950453991612217178241234750233531548347403989943162008388043644116636850753544945723550165197686903649024173300046917143704626018087117834742215460239670883381537428442288993002584764473197209652627310916990002074042792397443283766848175710069040230828741898726853150420599181952697046213404146051507670188030542256167892105692420326576352839523091072955541013739462743459388522607311108041455242651297050830531847221487550429375890532587313658831302689366531426203464184595533969701551992765822806444205065503561373290113446584420185557214868072993388514043614069410244320054284999499487505923130723291236937079127559149519268122806000230379443338294875108210027426383416639500094926190047755896862393069970139610888116847027234721001873095828787776953640882465755884137275834709631672029734909996957900380639811775550055878997150662806388122758208368653659491241261449507935546797435969876491318887759346466115004621596730958176744420882345747139806850168605080380173494370485145147684857033612553932202036438041107303846843530978888905013955656234199304896434937934676477006239777652635655966294496919803485740759179610142614143717352865569731191548194537786117177482284102808123817574901281000974063695070852782022739310267422930776911681100374334055403482346478943102147406240285158224748070626866304525670167368276695180179947669953719274090248383386082042796817678617995766729688195651002579668356584107487464550070338644929614968989897163214975631550801029411461369339071053824624832805636331637909955500954998392478436906580415220318114867907214474340074648018561004880927935701480018011149738312631567896456787143746711473907953100318900433158695990785743160272192291749663482569046385713894117108183782250683688221179074343264821852343740037592757248625164565206580012474840040907567174173466632443719870277877278953987616066800270637054029040309760099458752042936789490066958288279246424444604443346079363867896473610484378354142537840838475766885319258293003260675946347292150321292344258089826806719189668511893683448346835590513514670430457485388083578390941028222584829729017513787760417471992366052314167132453740985198212872112686549863866207143325084167010751192317075021176397286697850045603789282004954750866154848644336851255744238915965256275708573109509561468591677692762489759711217086861435247605368025304819210837479433377255454091269658990838327720605514414252389453944058362277213087736490012666974359352081932117448627198960320116221737159976220603614368341161711907559796685085315865246566825437179998181606120959384177937668912874476195549588923131996906443372913716066644279885443168485499216494365067952080414188955156266277886791170583738489306200954231661195417055308552462811391170910388315522440181998464201778258653602006400154419001727620472661708258719434250206566900194235377849890159765478986603539735814348777527432962912354818977245532147137779387595416139906863041962267588157366277554364261929806073510274546042034205181999505320475519350546586564034520660046419265391501972687095639596931417494717698014566099995222293546399689067927421703584762031453509958867863085548470828257568045479142141975464611583697981124707922588683222421869657029445354185928724862796981975826466138837177940163578382324285153161310268461377684838373073947378710988557267946395206555250922254471181827911011148190483585025353040958133037855812697854040412251794336352593386903280404224148002441489616765580277529516300885619269431035833315892308326337782713761718106659170505805289280897325764469637351351176913966617478039708335669932336216829361575223390836046254281328445529002891293132009811654854107166826395454819153322612997238268485528226836718621452901349602339860717816165402399030524281845623657061349448484857190285641714050601447867721408091162423146532347917295967404088631897564913054250528849986072791127268083223497107679051507663753146191538898678611118628156410699746577816664280935207896739767631309504715522199651130172862138357857050457424961127873113356824706917025190532850849146150947472522793409787371437946954147427900489943276430455862576705745964100146456719451828556740375630221952528138147732581668957188841497868765464122135042793177920024809100949695794553635137882958292263332357959005197824816634647724713716371528194531253357416355126025209552731004402535708382013764006402268947163153073523456235797126584175382958684807444576566485790364384000872297069943495946291848888668079098526270657673392865682558394809847291935089987699259460981556592277761214885412556614465145365495266843946971427701543197363391761829104423134575584073048390419755306312095774568660095010565473181036867882960405317014668446598337941630681982610565929125536855032969730642200087643913095245367834851871466981979443554182672795133232677520046145865088114085071701064599253139719060599032859288349320331979632485354111000809202539941049306415053450372940240590905790987542130375688666220404883261122654740198121306543964939244068402207397814259294808157113904985144033904020828117878516478642855919902619648697999829589982053629883646784112953724770942465073732158689004987597315744931385045212262211714801861998863773901165263318914665358161772412182774922939805187417954592858466877027237593278557131805393453138254443949370418390950832262641954408093459719893610996779988133870228084273277231710867069253976270227382306691820523912360091170959780241407716621269550978109771837137317332228054531376664054257729246722941915095881611236954561134584068467716284556421092948656118474940091180642597910547711307740272144476072541336556550812877472542035367704954287404499798431231508090962317253103880249200812383622421031172355556341942760395196019525594336312327309997578433806672263817013266795287812538953638617413392163331359608965687797691084033337061378731467417658875548874697127887922232378459713468499928079566597007611173486028704529402275422817467287720198317402776493115439282599912747573959315462756164804283441579382133937561506010775311306646662242663645673801774860017033311788690561558953420821845773205500090033781451776353562375917919655411418987189050718326980803644868661695710044766832707544035754865176832097307059346668554923998579884521203006769033954173523835135726521949991892781068090068237394530042100094209621658260353874744655169050176646326420969442560257655757742237098450927050109122375550334729651693204836690362314507722465448587360778732294081312604052482303877902930068395852765463195565625447504624720509446287549970955835454252453295250342385139256667803967011183859966782608388540188134108741278073596150341709249471004694520314747947137948383948695207418705623985797202101169079360012280598564054808967017251613624301867138099368531787926301313518836934085986404579374705008815863900801896924382276198585526443421516078483223865782188788703140532439595116047729991263905272976372222378753784781323286719398788390975081877193567707828014953252941832016749871091845560576136593149397162298043933261742016620506573325147932894583745060968647721514461191656748186708141875674327780533891130666453542787349096286999447468819398276166465111870044828563123552901549079037097351485781374174246881132176580985506444004646654255587211418424506724241947794318339294508048849351830776849220768855751268364527238628179776503886275716630786156206943300768813246712123465885390033690153368200560112636974141432875642021721902687004089966111181857128496644526756642330103579743557788526696876865701165829203683296373761631760074388069867268657691726770370952731783949686909030116389230116715456237127640913656578847669738228895238180900452944167705934654415084451493403288047693222228193936388773601501107897581478509608242387509173790943070604316261693666573967522364614693958709850157883188686204837509985811882164304698589025650107663610372704799263779601986213905578207484666198325236867493199231479093785781145454027902126187845555958493774919883436810745424493679154839286821683354902309706453329271041678083703907942378832285006513717689882390291844470394238143752901134935278026071590035969319527835673475370145938514807878481491642380357199621555740454740234146069092374038285155205759744641058227764356173036435613032338279016023477456930227781687995234817670366432477306616938284897348609749269872097225748658824888209949341581842589389699471089881255489218681610540407599387568819311439862877750001693365710149427709041727529979865290677416355105726883531435810788206002934097035964706641727526352921438766631765524839805882227696319511916993022617782319769220113710753270136221363887729192808963568834686848124605706692354877927981099493481047646600831438088514051355924532605506233373060617094872297500851120100633669157763511198995351692391430410297227855702007895052394103512951295275986144278569564135941692336925670030324296509521935090648657245802261060803206431103141981572330514775047594329598716222963440578415833238951523603306229069934841446747272546925563479377987312880018601595583571894565422430793522337445732582920177038539591439670474243917904336301133526720403062314878334883278958054598872929654704160408315450735533265526843762986277645301262986524555359801736226526229466211103769784191797152754832469355129698183088928716896723581562114619909625556914122205425015013621277656016502757689706309962184837196340082455051182108704485232761024479696733894188127657333260330111724562427352036075484902812578316810248442175687991707818300392078146860368015977656075348049916490435621388187276700412270651304486656621236431139059508919463492103746180022674906067854341934247720220403762334227472055982775843296750564746521068996015191826071483909790645286670082024343049968319446236735420334047394091038918760300176767600229077442250890566862287833524011883238334274768524392008717953850071141914198516337364302576931521021576700892650721657567340956949725446103163965137065403881878869340675327800939490395664797683548391924371706490530496634305325663020952206211907237552775152427271153367595441197363683044959839203558829428639228778487335997406281203284492957713391612515728371546500629485923246797775328367424563300539623445900257816417832972553483254683992486040274184353224404275538141845945656330764453102420363100278794954850326727864631420347177662654325315850850436999092034854946614717495586916152105085011341922446203382536264824537455348304017766355440254084132415993455729717377944050943998302442627242126281884338755211108035116912969060543692319676092701452991834168751256378837359795175519977572873923162231488634330912694628993027736917516566236801208525091062598625265079250345221725055282944229198002376602801238553854836915651762405252920013962936251400127194377052810864403854755848079685641670540008117263606754606907303817024518643082478650757248638328180242090084150020042153119651582141562541832006374347525646584210371066768597439444926285073953851173683838634063160207780009712187938160783015373485361083022890152857019674234414611261162897361990232844840257259574442795221680963034201468090682325438694664329207836037888027544427228512248060331080000893667517030018576331433582453165368199208986526965249136237105413466749292064592661467052714964805282278124321443289201783521407236247820657129803731870658979605007541015922216908526422963540354927839105805391779018482461227347319521927256114991832865475829230777992056013408904183373294275673574295464391194947054242022087086366209168021607286679650467180342146207383870328141710853660671353706731409550595329790459285929347196530997110339750215567971203485467418222343418064546362717366958147685118050065147669553634193070841366964568064399218794746634476736005155311961812010185775904832023580737105860626695452126854514424562932104742102380163852326967676227724582839712594166903282900140513147453162689182366762132225151893013628801933954595200069676970558583443719749975202698572572023098054613186672270609512939538112460488678367074723465015194036207424351778187204716489464463724479981119394291374721743145974108781150834530659224463340283471351030844240834640512756962018098950410437357778337625198701805993404104046084479953644326076956791933271708626541643481044689369223985578231124855472837350165135409339715728186593835306639120062447301497898777613767005777450293859282202496664574811720509024472058846803067404842985178625767327951639735907921456851535205427154078606979700887067924711255471172843187301408731889486441668503631503793660240954647772441968524106252084044938004281287019582442847489879215361055497072056687654504572536374646239912433240358658066175990057146284551905251067056086880069027542960493913214290621451635407995078101961341355388128585905305255187326518002651905622936269573935382711106394337441409226532396699468480788595734412728704952597304983960663763987659545522264399752494923772900643475949293570842428174236373248234732222063161744289618682409180204064810346949398118319088660252995471497614817445012433832603937255183094403432023100835397836490572369838324820381407540289753471406221915981263538061716839811862102502319976988677169741434831230727680630155765815319403774022522823172794043307736966837117459738996477455867200265457729295449551609095373231018165227102032895041284595314946983045575268569244592848226390974778582558181268476074427256618425221576684612442307402761940216279604963798481996996495116639340696866615175818366389660153957088007122906409426304513241331136174266063379395900877844135257875816861482868368488542099590405847613398999215534827409601135005348257281618060811900725144226818865916716833091414472345381557845517704550667330621166924268308746358369555578179221498822225496697017343553691027346239814723038889242026083746919269241853240099505053343477404139111916733111340719628012245844666658629960832274315956223285724554371157963795355382338204312936760234675152235687014796938809843976679991887884886192802772915485444048644516153909555545885561927474403025468513108508904998011510846983207136076310570923965781887779121131261622587090737132870521641273398126619309696032681841169374348275367124950487348205645222119700062727096016198516652375200610149551784506283918779621469310388961807021723159660789771629382023489384798503267776697480571145746066487525515341114618143832585880512735688617935849091618602960485805144470745130709719098569031108463636974156759335268028321398782536666221744505768342789427669605154825241950855793885873485656108795336853622755061466230914337594414178842738516429266552256647947004971734029032175378277054305367827463934777050864117772422620407372886782982479768475088380197256039594776682147261182829176072483939592795812584551405737204948225359934340310432327595789164992033851617196001544801101427800354944959121865784581517049416472433322742399750759583292701334157592152706054122681864479210492482287883763073675239994574439362030437379532602402094821171740496853545638432681170755388257967817873409091458704671688246165954633972663367876380650076857752151335902892323583945434804539948384277400466979655108541341327410243173945613951088312404406953633236134707263120207970469962265278264861293123819336955340721655189868313051540371496521941746117974091236434581028183266006493914061191365566469280744236882792825732161598467394933342922683537838431562561751051364291668719931610101841882886491486982595962370998133930438053720907374601919006588637700377282017444052963214781263281168017710308679864489860158238555680101626401919427988182596485438739830610915395656140697481273408234089113382138269970346738298272686633762947841903944111950814836938478632073207107126516343540989830398601710397115291680158962163742250554864881021359925001534591627021799758601016931026214020335946329057012850528429457993773242845094362410824149163864820486103672417557761652668541837875338018791102663221255630584641482392150366564828425486509238792752126399942063358626913977932325374154547814727534449681911281418064800210894752661321889325460277315720061405569317748271110653647055080592259726121443814738139663159077577521781873001655307810273278043226877205016413857348118967873863170145184451796317186920363184002127029626305046891806363190273933986697614397617850636007530648450518977327171885757077818937541697741191374066777959663237827309221898523016908748100753045821632509306112971876981814513981000049759726667513404161846447192843688749592633703389581445852316253024619312621860181728368996815943996597865003568419591090180680018813286294856854674567397496528215897956949302517139023312788016576599205238075830842114142525366735383433358706453927214478004747347357580738325631355876398478573519645344882225169337835078693343837073533488558298338935578618098800459022924725112420843932907084286493320421544923834658389847609943726145656769993554135135739885984114217549102144370719887336304471358096941888533091577995994624515617700400719991619713738677233074924660471825411186558015205261260159723702125589053857351304649610962872678850811937996129617527850284201305924786886680801677460872073066875746692383079985613812449046073364485888221296942978856865463235679482825682394347968873297941415165711027556793446217946171491545346823054306619465496845197861552693561619610641202887782445979473937545412853388648060727991908145204628724196023437715052423537534658836909540621403289345504949210215444423907830953584104509401137584636983796214549394456533978823014543798102515899493670860117734161306111266740747699873654300119021043481741769696159469158178014495007803138656976412130585551668571728263462077607971371623140624505544574104954566541580611986470342542429278052623504506186119923112419676206416429878558538046822337677729146167812784097978963524689232068964896513983991877302723989139063370268466966566768607171672791729212567349174326401539391814189765622291245202571806211323777602197744272675678109927270460391042775135252139831279948310884941076919195090994766591191815519554519314879045475524201285202756180729105597073561543911948908554662462926870304899504349618045239735071406589200002154882692156553776295239783720100848758662330947889805682413264955714025055054414442893867084469454017305902737209607639629818353725014292144472436105063580880866466299270500765510689864872966976607806947934781083395333925072887498627490617920699467526772010630912663104079692106491427737365198786193002051717123120665211751383652270512560571464244241273759063361674842342749179347365472996340730162697328403463597207049973940798967718412925354368203530544774626238220470674515951674705798253202409755321741862785156443673926797880433844009528090079975739010848741508789157595363640471103739306919430443483834591697347471573864747797243321273376866797599030508169656595770341855378014332958749799819815794575154455990307023430266389055558155947306442404795930704108877992688850966971022366980528816757648308792213844466303273302919077250467755357135469991217831345623505621312483814040474796685779243496292471380327821326394194424613506037983268332425354673048150820071835577098031495013838725751991569195523088610916687297274354455079036043203041375361086955719907118331453017508520217579228988393112235196828939989631885513994306871185956010857687708372814237639914881420133647714143948908743067654064514278532573699547112209751438056805157640570542839253703714438217631376528807157954012616412169588718889985034222638388236226374366595812590014404177189660997222662879374756638795472496516138800812376568558973844015257388308821432897547409142136260741908238008317598467355290435040227255986317323679336510957319720335120476521667766060538679138697672623318406334343041465667861143042458195645717309675759713078486446414251349377425221435317475088750059078385449191416714167178119021876343700988580834586129681538201662992816015182670646508516677367463397999017117389860686059028922596613768058955154285509706362160617566436397543361419541434233032773226142368836452459989579900660675483092079962647986549852239922572605465351706715498074171226439881725511428082355771845074942872162485124398641043469630110638641214910213991823756432182844761266844204007750137418274426776595360247498833639744638324768521523285047253540455681794409521592181285225582421224809510980228754687039283328233328972512209323559304508325649531642993975178416348136217139258030601254619276777087197656898026686717006618059049702881347849368598744968723660199736843303787477003409639296209263226826405576009466132727679111108260638564581519521948177049644505751663432833415395361169172527888483403455811754924073395414039829552606725244886305908875927981749646485838512328848774568220000056169933344300843703117767582676943594039556890171503862639228022365020226035228205960661863747107424045963433656442750017388710737231013291345017348514458821228546870092474286079417905065066816032996284553938424677452107472584624074570345514795530393172260593992877099494996342188759490679655513895248718996480108395879841922568266850894802712807057325432142193031510825458507674850518144549614112103514183492415244416472027911339033402679938944604609105523082594524317838169633198661162993129917553166700904930666127513487107391462847451583973934020733170315118602308573686320003584915165628930280988366802304211748493683326256447062103199295449177267471690063869508646659935013526716509670752641442979174594082979708258565381592293319080645547679165274548665785578094726381198808025760599175657134094736469720697876239512410367232265635603687377707868330566867553326071981883001693488725822988871570678586964905948691889934972278235058268868482913531383301658845646119445957971457065131168656826675875797891158662361518505543256712665859535844277891405433264889829566534807865001887384734155475604597716438815875883767536230217483833551939809279714919477454779242954848641808239127578859945501710776542148694967713278204816329694112174076002530370955845109888337013005611135374208948956060064663350003035803589171066558250666659741676557998129770405355016866375727354210197237478411822376993763468015213798653403298338624163963934583675888974130803457554979353740232606517519170717059511476741891208043905714346577173817613799764412466000808606014270882906140363255737761864311476675715119502195875087348348671104388400664284353022669085735622680245033573217997881629533167250764767576899061595295921477769236849523664314484497579798951009048474166352092573951228484838643198957767357941705262154707462462790546585759183043490956680706285592059916123318817761431469888573713022037976476546788642950540575286674792174750013548963849394009118979889602871575936151229090310581560053032166730122186547143460888266578642816422367907351267871218085688509141855098386117111605949311655055159548052646555709379049782718531313332217745692014514167103101578127196632371855756075503169891652534721433184689861398948265021371846340067207266225965259145589054090060566405419136397084882879563452716243314071301402574147123573681471548118200764337990909652327411138360512297357623923394282999107325536891479456376312666690497239929962539513787486676316822390236814664998811133901492339926100099761254857333903063851425787958185954445163920522757502972964133156010353710210414485059684771450830727735262319564683733472108872528314740993052214016624111452173586017959154185702503702611433829118645843900942270471007396114258990534830602720779313712420080332339827114187556725132641156408354996930173928511208296393396368572270253708161589011541866574097645619416061783551335376387193903727199925971685765232470996705851149804520626071797071054663606937693259974480648256059991427351418717405414960953068095880093412902032840963229760603826065791071200404578968014871676040057250916136595021932896251255754015662062525192635391931034206176406641152342053656003830663253146234712093577321827897444541455008250105454430020413265075354635093170968369234301247758393078038442698289159067541891183191444109745756307882777966973660732883227761198039527796641779885127344510111773486198165686855905907615321593808222787726477194733675556802647548212787399943180774968832934415583575622785635944160997522457538862728518968533702010393770287361258976390120768602734624259911184336110908036173436390789506136268862940729710570834805252539492992659135569827510558945287646328308670610312226440373765165933664083272984959430682615152289126724628782811281958699143759853979306084182808125014844894008710914513178229893737122490470036500809809114439248723255016937170176442363836601414392709611875606216946653596054397598886671701811539957915837037253434335554875479864761439678738242085362468379940064010684394521899052832263244264614134598563408476019191059123295732941153024521170471476218256182404412808597383159728434920825564860910800580003417995208807324586940220606161489772320002221395320284064494296190306010816145328033852185294097029590772061637273785492861809549569681313746972413717050314280198264084649604236367378243578058956679896885594087748632873642159845574246133264905868205404228588924849856814942316210112705067995352619965661894039876582832068806009494352072924382807141706493220255125234899531814875361310754214166977701807473375616089991177831631032897735696912518192004994248361681442647917450621091378438510282674845214477072620697219687234116802429741832418278887708374022696242532107956823846523161900832720453415072456574414257995291954863610024381303062947483547621307956982967680520490796759662634119736312403176520751493386033572727547495804152049917303824845308884436341017002219991255281511008811957043156246928015827330223559317814720390864085155847140775854008124917729637356800710027110260695861481063892118355508596798940786417509561132448035802778684733121949966785354609756103143422006808478599552995921795496433669474657505731405007941657274469646808461650540878150776794632655416081421272274827403084068048309489407157136714450580961073155974371312439005686319499857752574883893908305172097364489171911905431576492264693336901651881534705567776073919401724949137685234402824814970045379602244650384690296003581431038835357918568843944811190578613184196491313341678033687363562402873514987376347372181586691143977912938565961012585941155203510017871734253486046560791438339362754494983701428743533208937049554270002902711277425978700939543444252757515913623503246242469531699804482165463927042210976111088762551397983274812629245188559802707481223339841175813114081811633870764192979918364943872915184684656791584651870296807750718345605791521394229263654317346892329228977582710833863166862333917319586549452917383742638240328693629835912973688825338936302847176193413813633616776458251989531560149908942635207681786998555087691499974022139353999437842731807115743126342438023102567587551210567837548249577075177217912062675136221994244002381705878585406161898215789819947807894147972263295151524860395858830906947075644369045740782217861539911604158582827584110095854972494085434352230711702272999924834598976787684736796788758271507753924540316276936256876497845022871042346973201372942755669774395218915408814992108682548874952156158308955500870818981025507829764906656242683622788012435769264898748025230085402595136023794040513473515438205002520285156223253112803096077357514509125632454866128530574456083789041064876337016637504368847634395986319221290970802102998306079077427388627345107787956695430159842096538664357612173933685802868739319619770955632609488614929350725698916402535149915971800794332883582885684640967965295328702517872025071700473474264610691570321911852400169720343228477389445382457952806268020694526894148476455636036004132242421629486513591822022778184603974710680754241947275720677778063396257317282077530718861734902042584035383529160349188911356430315171820233535805064544860377678214781202889333743695478094349644371084599125379830303363834662228534786622035722274306285914915008552417073520048837372806203257827137628557079759481159022859425317097531072140906302809398186464700292742250090094640768523380325637406261492566534163177152423853401438621507454605077217319788658441449230914344617742720728299819306787678768960436955574414024165819156649835009560973736995497982327693071363202466661754315420415710988348752311167831007571586772357133958014968089274191956722566544464581926200126711906999642140462532377517183078641374580485119418926100378199941587891289887085101178233993269936086079823702654087483948094691343591584873682473312430671862066247334656743956072757302559045253878920711587693381743513686816807338124697769670437615782333384161841082221992483565031234732095139651473483115570775847660770466936365790482982816232219115697899358935493930237576964533879672312137558788329016417193199962274139909240962534075793558928073490976078667636500460984962609121483873037961060217089998308515953110262505630606287161554270921224280455170254535475652021907968349719381718111313286567472739167463359264211036703213697633639701422896476336311721962016346045141382686328742702474967483386398051040605423597841502031492359836205151969002059832900943782847295231490160409685728599414156205969288020322179093866472578527120500909475422204318687970546238567803467411491109461939003188569385985162851151336597520757509132212977678688616602932616465415830572465860501494589274405381477112169705936928136978194589465017520563778708994443794218696054578919315490112823319228613598063802432964305720894057705687618964462630048790181996199326711065092172392703507171688905600715538636032093211489236041920952761423423481310507245096685445346187460698450432360357618247323659690924726805234571539806065976795632823680084991820031548476538422358406422746462083332483248391005346045782562756056030590392366276826732756211297738282660321555652813326381277466290085137742838281671959267481459709421001879944046879751745655955744189355482871785753015889372642143076359203609604909441053435219426592134313578723703401668895683959011009045787560858689184588631504261987314235250167777245118246845850334732184142694148076244861989936446948509101725631905386965736152183761633005565928578697277118392050779425956942416801710435824627614555842113194290315000765085670560427797744021668763883518453864128940847424452610731859629290391425576430784348610510131189447441730302581495898478251796725742960902236452024285692291079274548435768687117028565857645965088831979215635128431313417767271092496600084476584931920647387139144051829538664371965540673237385952435126574476644551272003972664238485953851259189584752904248464705591186194420406908917840503528630252065909169686569475718916573202436624098035201865390407926074493254845710621744083596851299895598312179116659744081485583395374277514227199433854515640817085757521131155032708766571108189038623572005711749201849492622414201315857107682919705897888131593795100788515133720236367421601389573241554013550681753697614636170470051515044641318614032610888496524899410210004448086837185710276722206154808449986203495360925702003882492903950454182986257921995272759153628281096536346107490684011752996855417162491600306551526786469636486517814210625274251307340714298409005731417988556963701425021953639701155936657293727679025915025559434361921509722607592859000698139925156566916682379545553071933045936741909101603902168523083750488165333001588527308740943888253222572187982650537198605131857965798103387752212715517386819596594480282341570845680121313763144972375148057249455543241819136754770606169559989744377540339439351428762687234115571418494117684887947459881932562661446274001779790851428456449599099956982271711197617306542428677051573133736057552253897779909304452853323891925598255697722317896876003522507024872739844179482632361048418984958866880236698762122903182789193253648293441563995112427542200586402289955924092834008436507419451825783798516360585676072928158206361031506742222017613569827792871269232346214551036224337531687015263792813575530991552947380816734884107615351881483060219062162432728049035892589297089823339222527394095869707306838708499258229391767717169186842414320090609764394858681382320379872021488027299869876424094433556579134456665640002422797680256771480115154140389636690065397269318365239877541509941949764765300738792488324693816955111265429569193819689356194909727544921270148989882565341202840796592873348009045674984844070488951936568398558439992642531596601950108804385643475339482366290135020960093876303338553523826478644492719582685762484731665125725718115899461938063984163542439308621445581652183378316677832933659908357602678872520822414866266314070638631975367844332936599196771979893207006037906887312440732277085907301074418585547448362601265116560480782952707928763865908962557998966613804393859393653242690126844102607078525433148473018313291796892472022723039172607953662928504151503058518258767087328152619914091605355624110889482483948560351823368068972454876450784202332041905799920560890139012140394683785697742472082911680100384204419912373457875331830827299480460218440289901492578499181106817841726550720242980875306556841916152901268338694377058747086311529106739393757495985009935058379637706819497244252521708604326290374888424109858002724205640734674690304713126387617686205203284718757526776765862620550677044675400910602225388053932074810054754383995725150680319605709444474697485531800789842227918712247655947900175738972717329730512096911019502969490042821283108431834666331389800180115852053703579778476183426616045600560000451629216211791936130729889483013733428498188676710963004221279200460658678471821268883367622204489108675563295590695522604642428863317485305357593254515076743645128149564992659130241262443338468850769464163880860228259225745285566800421059210651272950996057356444756927910345788301507421839835884548314963114342233807549899856743794621567705883000521054236574436435500989653639249677955966681985037921294894083270991594808737005971428386365237345628810680992920321222694692212554164966771415629142712024631558646556832873845149183278136537225142556306831424228904477485613528880452057024065862116802208233275984042123609990417799962580634051290935316922190507199355064492682088847921167854173904796874563216711669314275592752149306988765703259979588271345908431502021203853351392476919435905596174501584258654489885507969059977891106884762971573235342754077043105774976481523499536841149467842033578789866553550839211456372020615025380500818966441266787546257775450971322510881961661509504453995114243775581178970304978203605275387805268622382285970766086943349165809329835808331308201529921623110747313549316726571690310379944750271358941344803105939175027793047796340745499433795205231192315556234490758483525410392225622039144105893453807350907213957995881244470872938051277679846464985851821556002492099778265649799064443167027020050520539061526951605825543387840450916895786356474783640749170024978095684276630567877152774656994251182531676349053563275848849887584508871836886536556343106945932686661007604958423980518503442527464636875993168468447459450735132985981486216665118236901297079741923272485433881435177669743561658987991932383834100043536677562926816292391289577249809041351296463888896222410625668178768055987601501287474718414607990073315197401470365457885378050137034142903961533928416654617680957184641158097791486278601672579175147760828917244464079594405587085118871550688708951848971137358593257262147235789884471008032877853467466904263564307411880413134921976399077320154609696299675015475930182636375915582061393910234312394419216442677841923092278113654888384224186509151833921661785224672524843432149025813444078063605371221638707301968441396587169656169656898393596442083942423908589063574803588541414289126042432832151454937444463717895458373465668844638557761772295028073213642274184114629047874017419896018136028529694940126066483992688541720910285991868355701971699756051001894772115573001859303749248730352464377505829406379896043660000931196651596868485468898649554424752597955279888186343619918937947873695346571066957230291940148094317875404082792309053488060666935478658409436493331105957686870932832943920942035359969137370731585845847059547071431571806733133168605292104500774995940004523146801716417892150871072920327558982316942437520042458190151189904385704428409123709375251446364362040805240062958460086506760180517253925647871176681107593938215871218499956314359177871804774511279874146727055904986300676218491581127827018160042104862631788068157950728645119192325246155413654240971373854425973396917365128609163954031906079807849273133166105410202395735007015598031690459740608339867314835426126769761679557301876034001799978265086332162675167489742766024013948238987321561562584718238829871579277806690739122716788294613537615563484524119694930389918738237702155463110105896447149190334227364606937282507551193469755835137182680219077649984550211873849575689682482947672408084888613723382063941424617104278647017990948395708599341352678363651698987356074745294296184036243697869891269503575929443677492865058917591458445696153079889009717282642200173265739460323678345939537972355522483862380292817777925732946640854608678207921720462418011719439921846353994611181052794017967729715310002273425754906035358179052910171285146087871664873836325249690250206298658355970405067564660054858174345655465829448359813492678941510271815177601501543171923059003880641680257643858579842169176782310951240527417932203325040534449713013854795198696192880119774374154759308656534537034594043289758768568170590588029341641658756237805843614521823132846064168377955184434820802113574048441494085008726201674842852742345577455282579357878843423240537124575609889131201418399790671198020341544817534252385866593958786592849863120747353241291739502442734311019742875300770187771149802447597817938578295319886402894937698147243525921547130152630429599639797257779355048596174408582347966106591833081125269057047292315562157062754405281831841520487845740903851181901701713460992377607467051902478027640565505954491489884874019449937586106458882729824243868287739654201743173037310477989585881009220136299292141030591664974360507325477274236034161921241089358136775437434914646262326499657672579684837319046019340690572721121850797588379916572926900425471221818387415317425579549348826452907645877489816171223372983680967276608634914150637337397589078901927441650421519747018830266606990797817325044295804920288221044130049485861934733720402731699599171415884931858208337013440169338223710306528559396521467672189177394930635844459649878600185744121756765109905801450572089565597974660582024662952926134108176510745955797481174488450533366595096922272510451287818869789711579179472098386361516265253842936876233079376162690490659172118128375432244582860439655368648075256114882920104539119653530760107218036676469518913347850133499782232188865341994128667158140137200027725781814829902195754255479567953577579214522563845521041079252286282232029249876826586280870550788398429537789538381565742121501329975366148261996070636739472202140501265850096937395887025205996896991034274764812010878585663320319086515464721617056501246108738314727063662898100847595964008725792841031083161591991639349648088592761047637357467389510747509502380053864124363550813794033231576969290849661536532836787887043060274083488004809077036506207509038366145763943021579904156766495963560169922209642025901326341571724663176321658211838820123233811082074865198352869663609564093752051575318760709445846883290095988396102879781256207455762078085655209000919361368224628631978545097891710341631358431115982484439651435152393652863822244547821514289150340489516021756828348591719122593513311492647528858846315760191192637820478793818207385301836166304516633245964728771457711714782290089761610417207447865383376274112019835170652506876041264443232310083309419655435143367363758565068900551049692652770284322029361489812224405061419310984351606532785129471015781670265228340723714125510994365591370212858003541947710303670672055062244101586874582841003514268782339136178685587960430261828586888686923532730190370550930563502662044650997015154219632104916077321612892257918866587020114426713481137597378025765953090178604956088051410299275760959673956488872702610337062578420905444063640493489682446921333639378977250638442337745529529010815398465872291563196730887482388768672479432438094227544091284059544399903772401432255367553249789625351964694627177432446413748599760623100787405672814038211101089960977906676464003270517622283142376779922084839411353668301030405165447291879874498107239367503102516828374845007865424903643571628699019751267442765878930053343952867444886031533984284336922293959405702231924235738971740760926257795498366572765116445234990226076957445684716442591141757202323356777992729304909695679913919580646594234110061445262362894297894504018705008748151287663039015119524426432777568475754835940459296033343198095166319259951679985215056167982608805063832654501532602204645449007192211643700362319204788801711049459670787594110484558218492626103940288306552181468427587739572775976960613789292462557069541051936716578421200099658327486587984995952739174041005790574724259209421572790076103731903512574389750779638585679248024855257803748522508736886543543880306422666959461515822962028662442485677215152804799095732944443221006082659932634946863429057558327295083896478922555266454814764530697322924318952903720539158634625942609763997686215351178193157273226266715245909454544350286456353557782699493067358319740611101962376201788750961713466576621356313361043155664866938994815775988001069252301340491416632992385253100303396930612080400153024083470938122088375288249885757803604741562572501228566541327782854715856866106342147173801266199790938223190931774488707656127297334665011668911216920129897302742828246462711910189199049148601681688016036274577583047105618852375680123845660984575612251675547507881866597954356454781331732205389801554576792154559131366445732387998663814088064801900811287670730713604174991032028112825959606298486836701259385268043686489857774064837790101960643094782067300433971228720083958527150559748257180470068101865065612030399584005697202494748721453313902344709184763242884011734829288565557021842370342511999135576791073252112250200408075904176950696254876898416400863073897166307452909919370845214367331043607639574622928137425738322106187686336906955324242186404740930171859655406397667723272261864977513175194830090812568032794005452410383704568385867858196968852811923830231730652888989620807904347105003019249942325824030942698926370273405851703176329598566278020119290234853413438463352894870975206480460039279650531060660777743379537886169612809747417896433582614001049683971517149105811857787511937585543776865188702403770328795440402708006222180369146354677563176157187492466540391852661097989127377222720775865205627460643561067004030410237398530354056530573872707963556884507874257300515878143640913145375118123238805349539048275278394506864907134809500792064032124462180224512221242242866463483318396678617781161268337120474405200583773614096567671434141366896193041521981826159638281412485263076503494718499232133666487604473018519126826283330969252725543876369421050894207087823464831192859129777367724603999890874727332334719712347715112050467491800072967591620889155198045878034085660934075775940557299105876576312629232571173237098178104532743049306892486506445858785180215487458999819488010099380960202660518888276638775503622439647070911723219371303997641881748962916221874323886928762379465302605357159423398580670708891126210697895743688937353644250488568838142137880514711642969733036667482283464308097461870568587981901657213808648658420871071673061839822164665763416545112731678305217737269416475981501397852139332911290259941398090649886111851373155316105733557710589842861114076136097683464820684552554098104630076950484170700582478497629571885753267867858948447790370607878531822811249872377749227914168629089034744213746903761991520952205360862869904793485120691066112386335088889986332059498047742642666434089024027136643319335533923091442378313608070204236669931050353578439978209859613503375871111910422159876971184065260239741112889704667667583054302088771906792554850647356244499742708546670987654758427778707587013845678962818192541377920141030200993020507221087285250732475974918279019321387600276171592313474184041507382899782556421703715631032646383667089151927543774853865590480033122505596351835728181503588944550605241007429905943663146646091198147752843812007322255400493600520396353992594293324767054220792650620888119468396492393049902080952766514864670783226243454690458447261243582428405078259451416669054398565381839785878301131466846887367704152005401344156515603063811216143738564149304259100941990628974322207987748232007240346540805899893648854684384314262170226303555498742349176819973969783800687636852841246343911448031667576881678225231466782971648512586349373340074262607691104339712062234643287844565334842629221328325920260366909826794249814372902689028905246593895822878297992525985842431721009081945119671115062711972557834748836645819652511197026002099488039669733494807570961797494657531959412688339575845862955005421964452905603334314232972722908857309000261791229620157600844701493215690461154797900551948957836261216693265771158757403608451606826861421734504245040851938475090394414604631690247785467215609039482704578816290459752258026195543738403210675309657968770303656669157722365055602883806333333461233777017811022357591603298526572403760119344866479852058052519230503815941323574620715612168713940461363182972778646986220301190562555527351585646058737301675593652935895957131479440287552523148723218007703462586514764627690171829343044848622967582277651861425443015521041605055656040294248995348312446057243679021488548510068685722789023504826072570708435132036938625551413772086668586926289018426241171467384921271076363014316648151709394880167573652480747433185524224559104819445423233251865181720143725837193104149679006127619762546503447280121638423810988329752058858868638588057391358462481298813550283108228780974531653826462164669658812903075773473822824176946442859645208479895913363049342957045660573084578060615553394449913859065668485536613350771539123425679926572154843391746200441622852554666314812530864793542112660554178574737322393413040056147460837124253438864665209958121529125681204150793175616258397558359810921210297787549606652619722474206002614359048581836747930126205682772910382588570412902736665637627840922200017045131146765542201626536738332247229768820715598775324472544571457071561951236862515989335404570439691512136427824070096750512994978798830637228192514005276714161253367150402049732266978115110685060481924103602497204692146501531150120286285600838612742720229751022835852464403483781632957557755347384727822565193011599660432060168374359599481849239438722379895613292620097678366307730402734437464119605681365804375311450781419666042029708664852329362077726820543987789349290276297350344494276827872985424901569989750660499616529222259592179685266971578076543274886486707873928335886778450292878603559626927419527981805800542513536647391124347890626217081331069435398504383393260480702535885697700484365790800467743218674823746721729834166931719259973985008703814598846989004999129792967030792969461672490008434320518310713223382096677429113613115697517023147829470679579575697111682375217015786755130414545744099725367398097781834960374950209626594727819962396634350012593011780953356166307947294034498008809792419601222893552632336591786671284414758948310467809554522357993641668778566835510325518376010181614684879947409553962438898875119579210332656416014702811282759847738315733893341819319346640605058672509170954546062565930313491848332305877535571948171417708423150768890592678830759757485210490234899783718601671017080810273174357405373558914594893921970129570136662162847311337740701026095953726087206513696779265204048395889902695490263308545383566806938671399080529599551706559020102786494251575406033544569735451199312707346923738566808642485800387910526442273055194080680426428726465079285540031151365947486721031399972309716360200960815886569630677459112437752101302320976188441815189757600139118280407557139120873674911711953641779750879698501988578640467229236224220969270281288322740190291228505909322993327748901559479923629793016858852966915521593729237636430968704594153474095459118857798822262933291979423151971157355156057951567697424745429572098266261810961777931516376543349833449493879606225629662581799330134886002646271605117046519668138892576267956067922340160957217634099558119622266022167861119739134375595182722652713234481423457578532356429218230576032605534786531684229660141578219446604851005283689125588817336366837936544815934086258009634429885379943931395342814849563467109901643633769543254745508342650072074892673426735723011061227431617668408820185812747443610702172898209769334828988750429667022899780788142634719316916828440769082204718662440746726859858458674786189779691822564881434172172926148137814858965166774885516851304095720884380777375674387630771219016502388854001834799883113777323549060922660418045337930471225621134489588906607369948352111059293865520104809057385718179228223839641185636855739584724187553644045984667120667079290298579317784034305947390044492715119125510253245712452351818850214921594641209084230249473672001901834940838171948308844063047640249495441756302626680121824305008398687410672879481986797002811896728229011191238951058864880242713221594245995896658396827100422619006919594425377363597458390868975117171800139480657510907425517700101749726781481406958318028312836506169975304034805724803649794079001266498770108385607767751247975167432909178073110305503972224324758322923652511117901143749962140713462366666029332548896180392337770612447790290477748352510662736934790419799260848009742466122459039153180809659939853183015237626270838230857688932610187575208501609582376907569374904169652757856071329995912746399315291875940393750161384515417157781478226333218396135633150722292852650347409441376412982554831285582308280944431150197175110614671274100518432654989947452153687267227976661150749461382465316128022733434120839968607503932512171538981159667020666188708919909590686449268805809871426868851101277445857027140988340644232828952373179172518996117570094989061072470302703495000600076891555169318940497764602779807827389518923167664495886425717946451554672760054396737613322677872836759956066806992233696921795785660663221047443839578308646808089101159066631643714540448273672067622328809837473590318452820291377530959515260806435481550408944110236432419815485340647756457085678846174182905808376920358530461405477574417034736882994446944196263650981665771632168165607878864973830827039083283474462881229607848204203065195770925412736854410872920804668368044193886286167634244484869998894828096943603971178227540967038575560010889630627702000905574143529277315385621982310216616545705742401695979675650456069263911628740060577940349737544157320920201780221379544083784276790623992172300600102511716328906201414212602328731997849662260334328501906352408103045702336794446566449494426447551054740160985119182067443086662995806119572610917395171157123677661376373750204323780345629593890828530590884772589049064161755202915301693403548157563972858587406512078069965608002478535211902259550465778924714068870357157965977965490702309856774320449169844864769816712621829181476088140420534528784267712370042031710514610850287551442899160909407404324753142408441238939025839652544554904342703141436701282592486294984936052988144903403950980378803133920634126737311895690176804888118841155650644861197214679912671821819383555138084478937278537321278679513317993256032738449633593516587551215085999264867498777520724516360478265673159419704125197734803973354632091306432424975036382981919587521006412546827854179245808478812577231910184122426688054038178969659728349656183357871654547149608429060846325648414029227010721442431278961418801696892979236071063499842987727077945629964541332768053867789447279348438712293374828607390533858404893239409976469363449980247416899918849152144147612318331132085113166169184975698709224709950540411860457000206332341060365190202988975082180370334779069259848887091757323116815962466603161388510748753958372887858613677416816292870057893369775470129453822627621232200565007672128856550656880107217384125667226470694888116019428605814276972588173774106730010625809120366868097571180818160498112982025287999451504181155665480829679190286416146365486636318786974320740519136532046673996732271553665746682887826533858866584420991952305045899171954350920274870809405642605598762948377143860759343915551465852670272450259280788947703480126847838080593872282517363629393296807142619794308352722885716883874455318516157922410694264318417460718569924785592647630769167455430182720303118365606681371659246381134987443402858773773368400442742035503141541138594532330925941800737655732874312966853612030050780869275907341421396040560031236782590786611923942797269641419001078437003765735822949370053460138902088078183337023856936126788429515203643652451976937457155811905948768773911886949596132740277509701167312520412284425880285862039427356330126223620580081399699805347166383222485482363561700279639869307777379646116720918601159984964204037248576909974509497774022636162466543724344899694162082569322554176744343439130424639175996221725804917807145823982666378330537477903939760818001759288452159835332555984278303728048143009383114460394128662877465822936028223042413595153777208497477287207403440665405034776623047153949345239227290661888448896659404661708131527363180876624255255232936222145896972274440323094889874727780155309300335073075274685215064484798758385977514777679642515656410106959584097764697685423771092020729187587941925079938004224981037239191542719957514417423493220117596998779546688382816836131135809554526828786539182135477190792243262125628604700156781328115388836182571667539749711488406176401129231547610115808496338157417652223891921209260490187180760273822191669064972010921465807926618199630818224591396456743935766351271595032735367129041255950670129963525278259536735775233445673480606078156443206045400989262265010937992704593231435930942667130707426607353309404092593830496039972761086457646294996799863560684903650376747448628239991536340412579761211791723987345423917167297800644917547679079802325279135545901496180493223449984458292007583479818183654353440118067707744127258374200534750455102381764617421088050567125600969043506155284294122161503539127708037239080373913041051451267856811690136854767627127199008146105687609054783653037375815471287484173316766112965129276547698668509050951722516373622373946547199424217141752393365132899943584352157529509427504109219440667147431998069149052528911927606171465467990885024303501429055049165236748574304261729898790557789391116065325683277507619724033673771059436356592296574953203528897689777272518216461037444214208807767551448844142941573087377401979891874788145274459832549449505017689779416347224423537354184178164114967111240942383831083369911133752539327138145223643826748576772155429284142355423586732096935909841829082010306950952662067655217645534284298913881306934231680834133344349485762757810758434741812951675109214327538111444293460763240317926892066282442529301492225588856359755691829916662006754302320487381810130155079688038773157363802897207658077073935124545854791653444219430822721816659756324775325738301807634235938518709958534615530047723647318477266076385605815492291675032087421057974431655694302700286129132381492219189149233801047239091737298116295229653094259374409102659050459417707341827659865164859185721096908469157828065029995738766114531994731941413018152845918907167016585043218096091086682395563386793377960652653329742907502833606582195641308702462270386761158906782121354918603126998406799455348191475895845540515541299312929507949644755255444898432689858514225910272822350231002770651561937967217976060918039995021970603414406915057945499680252422706959471563922989795158849582621930628574946104633563093063360413534048561123940807695865145364002950485755678187410055874650568021276400485983750013347883943364454849315520840198762072082765876046282540211756700338536231636380997151784218829314934949915889469424849682490328675131253741759151410710768048545445556509866440929537269006535803183339284803402970869691797292950845088731515665619283318975025511862794174453012853609707450345691530024558111519437177225709067429500076009532735310840843480304768493575700841214077527294840689905395168013219126260444691194301693509724026112862888357205595652533793844538207904625876223730255213277723125898912312868546763330440878903314378424179993880360397459246625612801183595633789260386758335825608977813386939126566385230104789160386187376472742331371965142836661900395385701350324161429939342736124337058303870280442004311122083956552091699005392967295646573659752137498520423958604659319479125974386244322060232761931477261570550305086523167645918927234725471158426136464564989364899862035466635347379854431552488561739717435271499004446968258964423239096027369181552563469497613391608174657088174912676288955164586451841347438019266754581107126031885835312370529054515834507332846878623016663701796504463802174761327669466595541812558193991718895044175636485504219525161379851707532705057410088099478109071811115448696473807100057376682559131690757712377296641600908858295371382452755138883025953533399768500882381253413240291713636418347623506045673271381332748680085056180804380578953912550439092355651340049831572329485598058209267075129278494415180566939710185777567557057225241720669847662800575462675097036291497959492839157644995774875669821341588179203170972301797600556769157955916449063420302146056384309244257996683351572645095171687043918290665042092471555576779986697648548390911317446914988114236697694114041296560120109563080117961170492765335963440873163129113743991757083998286663945773848497348350999916565545528627252450098594319065165116531000034394854952494660386252652231060128614930171107470136338637927575373355512040058717750088952149317426489258949433780936698488034872601204558834516634702175934074710517843171001427168614043369193700169696782895128646574881331096121185323636932737483541865917121478074062537286739622128009011568067772687003971030557484814453673252724381200204197086666359604434097389642649496484507554791338177151646914839083484658225925506099254285417208184531409619954819210227718184988219760875871868890725215357481177329117817366407807914746519713909249696917785282211564532448303033753210951104624836451427929603172390386163137716045613554706813757003243139107808269932586597184024548743342775928743064003101033457437326701717807709292354132496234328058319124121845627123807992321909986625110998000932842419595274572986407530727638381945763881982326246719245863704167170970993931813568090778893571863856303913988471389060944009519766917379721392294924557385242308732079572012890158663535005367790427849948970214605229601835993827710368726038278087288287084500401774850675873763454722335744758865421962816796042752269651365839429948396723742629604577765532757325767299316658303004294324837477173356562792831607868910182918416522839700171166155269677435513519445040157060392879012950988231809249487092487781621481741740624274071717859410298595468647451042485878251456410301541893782637010614010995656922690888456217073107646439063828003410558562711058428643458915652185514710296362852486436098932340483871514503898806168035489856429390108269177342924697883692234395071873438717195021596896711954464092141166403198082636368430053962504973315292759278593408615643573148561817226433628220999090469115506208724460580227868543814232853342792067476029014080170298016387526465344630732909885074121837679251371338426509042235649451372404468019056738517719398529519010470251901629473901035586591134490538068264332670167979015449952994955297435668765866352809442008033213989059988229828981713231797357135958585867433917265325545161560831469468717269667718801453935784053140714206077193327796974837796216335490602420967359207462995747061222202616026044752699102704539825743505090379196641099431976998882022605027836103965975013384643844853733167521083509420542637822219295987476668669732524680395234143932874902798462044217820676808853952172242947622234577029443960887469546548493939384950314386437192606216694447899123574130225803359601793546924009549001142730982848870490466925526928830181879267016060337302113649260084414724093929011701608459220787469261467784261653915404229594860291213799461841543317098604383208431655512021302813641663399323142471195220606026988579851460698016270540985259452254251326931741569675682098124204616390137345761736819290584856186249781460629225847239030377737036531791059308214700764263395032939013965388548066129078927888575072434023450964988804647413875998336547063800795741950410047809872884488393942386146351780692392536046983348645959258672527154180282648969017530147470261601744685198734297423448856650777694006991780236982326070127493284576317250603844136462607065835114014410768397515172466022189696979535104366786457914622421643270604553459406674457039231198695089593728845077733949024702572450812169951189180418192339807098727795186343689413147321634229848853496604632889654611502128564143809785777928041266491328610131297927420154849836391543119269999826860868966075936105002757179545734251469941357655601627121318337084808388888392432969909350912005841871187682603422122798342833615183147506843662580633248826090837750634622693598234704238590654668481347869186342144064282889216595821099444451970060310908721045948508734465400607385529902384055297004911949421488707684852127992360480647560923665739187134803206705463700027928385922177202320761537157512597574410152501123284655166166770700648322613140835713799612479071872345003326790369624443352331736411064767354451253577639849636515007478802601619251737976835054501660937484193079344850322601387218758811896183992654493377750372877973749413943674146708666013049933248755410345159516018857492524365418339765281321251674445974084286083688316146268295862927194277206381866729472732148208501269145015707962799899169002544914793453027671168773904708736872681897546013159920577816247558172933232662024699326250713510617542501930646623983188583810379314318252453934901856035946680120475775726727804515979330390109788528462573236501724383490257324825886901378338866974864710623425091482192659681850908334493369662582005648215804265836589167701757402144028586192442867758428993991558395808289531421326149309373214717774384820797424248611140670328695362140046947967050440398806796434036442926416561504615856460131864456454826563996036322698318055138731679857616007652359292265456149202205639031923429561470992773041560998177711523893540473539188125427946974512061387301079214839101168812694206987427167978954193445356007219915113514753283786145102319495809014123375101301617496916555566870257380591635572890383614435065887560824144988214128270023457018936370159171925085506464975182363005063619649367076942501253723888073591335798924029055173240981978244298046484018127955790748864368750577925282923934378263635648291314339535311802409927820256321990749327709531551913759335007843629977640813107951673171211066420139954533843389462730870118695831111152964509713115300399216153353612227388352527280856067558788877680031112014650393240238703185364759499725682245560319330967096487469503825268693751307333162289583952207180487027671486305345113042515882440909412340118511731025280908716553608570057347191088409091408222433583247152717556697991934722072723328272381663225446020040095083260057960506004856438559479661368694588610766430822879070944658272949309200193808483410431545802341732738606148852568839315104965074081610235044685946508467044264670498630708311054644886554668230960280161734314388570216400608187777840528017301085555605284963714503326453538331230892821889300415741275171013125690256148886483279850598857696441323031618933016221900594592571714542645499434301718726760702830201976871861675760795254320057894123759778908293231301785003096947279591948877168801754004892011907686155080185157975547371282454932661480507045072566940537661816202122845596813005163123893517882466425866827684835779561364517292716869993431655814072258091460711873004679632278457959938524215032219369250013311052697305612278228039796460283001737975162578165433550581249625334274862318668618592172109413847476661102171267104805009850688937576090655714893008811957269182301258075966818254662745493252257228232721252967756508530769892352321697003003495486060742897260069691652270999663142305373791056881751529987628020812090667093831688115450027876951518462609399822833227967722745585835106853697197311474073225222734301455841043740741344728076973943081467582704112276742039615961170926206971871026855437044973637366473533011283615707489850489419494115686608661135512879436584413918831930138531132537876543373508091674402824287928853505668883832320425951678641595359751848527658700513236925337500421706450197472876698573041431215175754931867180011578282806107299038055281518551612163861052590698866320619724822558450855630838512613246561457749300860988672874783076120672072310538551064285007008621310692982069673104776978492614820603388793346268346701199194089184185182527804098249544110151535872592484972525062100290019692802130826638538502886634897307985915302469533600865570829450430905571490688073746512440239733772256899619712092356696529826782167143006613758683477283071752623278121150310447066012629094265573729768599247481684239649983281693485992103946498753966553977343497763986441375808011798419664165186729893729886155834147333373502138123541287707783304756124751127551638765894573473447453091973079706932217499914549935257824325451507103347083099288604756664875579040076649069877446525645114353558688452074264806855178614430467147203283214052831229272143629234729606428752913411305766322931077818352726738932456337999266905163491020832212412050584412871535470653473662068278352128700158646832399375544489265700824671918816114360172198895578339315858733193897202638178914070806088113566113036339846777790768951938560217206319946333344206661849784354780816579697621114125230493887594841881316838519778569787465341887154076130110976977953563341398438536025028522818290826146773271831605443815637987368573920536927470105425167246033783016049544837371858489644364168605908134199725148785521154868109104498183220158290751749635848620816097538685933318913498518283505191219994908078843762972455011890433032305031331471531235088618373110859329308849579385663691807169897793218887558444115611935581288148422398798163235769826851557483279857172513539382093924370845655328466957919134258037686412454217595068589742313230180398122399867486841448980658850824906501843703580840785315502047236179356128255087575618870508759108189839505205421115454478987177180070481453256900014335696393934293831840659685846316498102381411111724130473394145387778806903410816407641322718115311785305562949120772454963096208017758116580167786424002212239302413685824681085401258262833478326603065089266939064307193616877311794176361615467332160711795022321210930582826951156053531062425794808389643170481646760275093270919092735554310623697992747152415496149383040632149339753011186241346851731436966640313617130226134472378455438800551347277195968888444674463590572988120687556084131620404699442495133628672692667587553877050386377955912867863897831244922758082036378382764446789918923341974773438120672217080997759665285138088073656662088024185351234528646688660179811008624683695760106508594438001514927196329302978025268742164550287386700635531285379494264774532558827686066017074453000787674285881705778200699776541846137778872045243270854959050050148948257048080105371938163976517462096726349979413851177192814267697951135525039002621874434914545006555532411803184990386542355376560676030882491445568457783962703430097375822503876370117461196296232188476065753690659854670177698600445190320101857676940192787462346684907833584719748797438637575023146138551232834533513414269803276892087661896510475089101263266795554651735653733348129274890310687716337555797743202199137865474322366404242847968400131527817671749679549118639302871718567034193915402985102924582389561132457615481392523089076331113124045713993502508520312010582212254914909597648367299504868052528253069513307804221860145564930996304185646865357333691485145487253898075729760230936696389740392859917121850958951961696493394942043806415802578010472367401515192427781777411074457185421966042680390130288798559089247463587547289522469353188710862913870276650836939854313443944470684269083128638059151080017273162943272485874554940865150195167988377886757857514116117877880758126099084157125377982941766605096532368534742200852438047479207698599160785555026559471933137763220474470218830159453818250170065184112118374501905355259568076396351714933004319693194674082925092285584861419518599999398330465697707467791426468874553428375480951552367789399347403752208836582307300568961871980240400323583526591954099538914476700553333179910788874460125954654719826354281148208382977226620782666266471714179277818607545207455734606541352992689862960328194218335318671710852458504844624943772844835431280688155198537177108779269067955576432583292435252274005326717510865506338651852034352720166441327673233354977987176693822858611014887403241750007477591504405633651271229909970982369192118738428469140145248094465469127729325163582724002076429158702539781324586216503587594490579593891726917017188658652672311056851393868329220688146822969393652927531477871751842484718939896019019121264335975746048377604855743410873960351606556179491221724465122859607290093991993805183350516019277164589744705066295584316405479719245115296984442600261818221888207096853303409514496770040386249173771074104780469678642139457286946374944515801964866494821282796001960610482558374077817536981881813873428988350845497024581508786975040207157201012366141780011608672976085176505113747868411815027649246659575175746842679903944618521566521596901639131769717975414367206604179770405306193990838556317622503930776822911320110334742290535906744801466423291676695049802330494512951960084722546021885592933418491833289976980828306555136964672131792437249557149310313689462268035540603535296022705938866084575771612545747531939015868344148989611502755390290789889125657317805977777089503921235840725270643335892238198437274534200047141993634844515097226842804717370181752109548074859915498794784857270237532661853483109616581132900041604061844282841276127771629883809067298922537400554673211011129602585292866458451089060780258368548880210445342156122535585039997299682192160723568701346590533209243037292104542063270624235941401070627787250069663714759950653470072932644196137292840738597868823756352314718515301884962485010395841348692047145258524252326059631841412804841886828401956216016619094407915933543797943542189929711008663036390145557263118461965654788264846604948816596817152640881532540909387956130528791324277333002912184453868161954046041497182779522414185807140283834022908452130522353260077170308699406165737355121993463222072738717658652777766284120124317065066261400295291320416089887644818139422627538742029962677575277657176484229752003832012083058130118290070497211978536305659124770821739441459365705219315220376242422108438144348926312768057330092233896594166682342182807530962112713451390318528159558362901006880950215338990800102395307526351577153343473596736664719689533994886233999938783707724464614384512223675338537950773459678516386134594593187397485293189852506638794554662199276297309331905774115689961396231168834272134838362825732457039638392365789191031573125233878321033777696585149741611378531566325755068254190190346034111729419365357789505421919466029973725887379546644558035872122480617995065530335412302384211547650264124582096673941113777690927179948738871792793307838785013266890759525265092223549936637855720926496316101726182444668783378743779769051513628143853422222134998303768504759309126731319641083608790017108914651305575229719765771578079586496288916711047118283091834623947446171170737696342735438208212787277377954966688306284521911395152005615482956749161514219700723777247641988907063203526978121348196760687632794776944964460762920533923108304867221719007503425642630604330257430796943357222991599956079569733785109204292777912463382332317572636649941777628095173002659896803193180522426930316492533744040067838120392035086608299156949793860957590530702787841703846206173094482410700809310519781517447915326734779808927486208940274811635359072884841981831882103142463521725339119993645176018066318174748839880899429249588755972364797071572478254809889947790305445828365468910777294146065732222711639411655593727558246595784849315541410548474654333901784774847099309083936649855212813896649811752033305904618606573990173545172579134617007474231046180364429316136921146133849585969939778850177978242705212656687399561600320915306193881194036429384211182106653250794338289548194549387666198608254986802524935140630949040993313941798497573211642848701524779820766635924661867494269689543756924122926769674016450360536554090439092971127729775177354589419704594998119595919561208731817217594436225109493185443485912087913753638074795467777765604907698232654936228062386953978388084886178003123547771978702154684069786860294082955809387165445394885039274550395271657328635313236318289637222177307083362796995275519611633844024168593696422881404720790053725420775409620424867094142988952876915043866281381410990721683684832503872572262616137962832161682485350205847253790656386961299343301971625810551826919324195029759328592643565369906085842352879908689553730983686242218775489275248634269409178211100803126125125013896900637241066386722937566842567772427122140650034909569899878341338281851011990638087892270059575328176214454921709043303437054662403071952057271177508640197590610191526825381795247081823136101927589949525675437349872762988000644942208223129430395231452848279610216465544598758543593600969583254078064403356875221017932964216193702801019452538469493537867472438651087464722892239169748413739471587118843191912048122255750541652542378020172802088836606856602650311898963285068417565778526615049992116869105048013246764042887819610238112199862575085404507346718725487086449160686038880721172784059183533070128949080072451329438372941076989833701862278325258995974890152289418067846594170389105727092707744942999908177125645319403032334496117870842401814773519374489744252322881760955027122989299754450696237127966506563572169606690701678971514447436222755472458992119262400259636918303257331657313432359819910434458294431545102953783516325425058442295250725794060478629894624466976111461841376232078115321395540809202458490509511577047993417740621087758762535236980687841587146534162702542971682924454245635009363690644122004613067098581034321954893514607399175463708155924140765497711151170886395053164136125517227886575126336899281885531375536817631612750299781015057136135785873983118020052311075285309466011974349740521394809333181766862429620553027619102578555022212850333739766495448266568405292096987483942593892181877414858516872977280880163262847639275007966953583651329785010286633623171989881511434397805571655429601955050652339634745585196107947751350837154658127494651852672589957303716206402355825079240305061162477401477723841514396220865098762267210763733963481239045194867634333417451308462374367902721123297549092360820858206611233248760378758451461004739180639027237851371223561736589534917272814524977275803036091797159057875452077754512614534164387119196042950225203880294702048001519360528437499187636306611900162980572497262321383006104269669216119057698236776183377786859106877299650253732006593499104212585339425599762840002638819910710982443600511698013925555691653669701229052766003347290474918622720690422563078937678901116924153514841799774177385562064907296686515604542665498628935463241986571566844887703915960843313058477460198611695011895483039601540697781518060511223269953108678803792890432136717300897292785110089104125700062940043664531660602821796015655328706938590661341914474448883987588184608139116330054850731719272866511892015350916559324231101655134899486977392116329397071966096023393548624380902946203376244294722905920401506483514330540119864319351081639718922395769455558527554932493770816451474512561223823021333289136960993836687507291112182339389298168433654087319968731689599099434707664326648848848261679488282015486345456913816158021852374383496983403789582779855734395958978912415981403345801737128960502876325254159543600772048453724972770079337971762539377222611576164573071362509591658859185073805853732422961079851625731532629653106554537867495992259138212488112924869719280964846073624642959879689215607510877188578477066928387609937010813892987251948282035298109198691220830242566046967941718197420447464939642904400179814532378973825092006307795293075443382870727287945209988962829889125100110925974021678932455083022071384003178091687392767537925716922359605512018470399416372280901867451954592876108834866263171097359154346652159595989976622299299258139965620077298971233015241847008511186840372641698723542436437943958556138499244226827401162837815943958042179605960338582116228266544021587477842299098745837094420890453898582048808251786715211120391912257788223388375505898575778871213835139591268213913260896410707790164517902457891546469861130836372028359976753922911631747325590463182827870976974624987079358432253322037794961541476241215973207078981159225932835837335383920962817802728687909864495393992550048228164093393521052147947262152134956062418929723513358944032923431161956310086508376376551776539785641639906731096045618524278197907206398033925021904834999973406230219738526654129315328641661383244579195219301439668270878558605078854775410014898352280384657145577576330976984279026711258006023265623922629664757662401179066445344974607302814495642944850294492719107129505372429383270643764704882728978495983186553119832779448178394037069794947872658404901101418770772031836069962507025894827769708020291702030173860106896461629388514689464022934814616836915453884338847392485965975844919746576081602059259769380553460466084409078860958388827519232827063437498020630731997097159301090345183379235951186540186941717553433034200932600311269194087963036810624249234486543302361687565004862334113900992804451953007904088692440026634814166365908713029914918990990849012916300006740393084828598821011762823076239629116217560284470323419196238936669105763256018390705641199238345720152422423965140569821304252184143408826205961547559059246006052739557756994268664900502393427258881435746186733728043847444977151814664722127081908887160784292185217359101452979552157419177023255282623866291262395536008201682342358228661280283663231761810956291365654403684971547955217267915001661743683654404667150041649478619339924821188277037827803188381144893281024883375771848721454227472959233429304999178666826089751534688227870040525941723863699546591163477386052543610162428065900131857498496440296405099879997012955546899423894462427110739079545511046630624191219856932177433298540634489187959015812671873953526344704798437409228153402678164586651853577615835748786168548031209669099551671343963271418801752219046122467935457038452214767564818616643093388328670099508732709352565769270843655752956236595236066559453368808804060968545119440683876972371802970894766565769202090150266930527585295914198716890930768039467152406168773752737854256136980616070752539192829090094990028697709733956098969168528203906230540015786019364004191073088748664747928825692516214007311128362703263924133068287030288789808852306975557794272802284690923139311952067006897113316058398131142429979582065889301083558389529133741733271726338767014938640957213314180186411625198908410825373243685476978411827034081793416173683943706255371180592201043985456663362549395271145157819040629228910601634594099512514901390848684055698770713645683559558247193325139483440690673107201214739046820333650039634335519155929544109626228500505997466132282128383249814013850468774097846561285376625387313582976918226271409189376245143746250002820190438439547904746843238749288690595069385908134508031970296032973119027851335715146032976467454828566693389913535224984931808840395156130882040498648717452537469551262670510540799308573007036530119689254993512308335065673351155406872847523034556946310927586914821544784824479747683598284864475780041155714046336285270056775975220321400651560773602475155826616328865208327661809915035528934825380235372058760026541221702521541830863440834087893789053441175071050474011339533977495450845985658763770612228660332821362093239085454754394798615204653918463403713828397169419837333089153740369882058451025679124859891118407491418841494892278219957672472976226531311419429175315027644003154316233700716874518613126340472488103402166712184008406620294618373740622561702166694426868656920371818986574799820034069326458830259779271595145424947838466100541559931433722543109471732827351394779329701556291093655080076211077955904831656956057219717558792047477030904073720979079719829008761164053523144764150494505398009767730200666836803467744257952624400944976627732536440895066776023229321562139550221663133409958990437435116893392363235998632639637315370138743584370095557168891748335386024015358798086667654456211918034527192997947297413218033674813899598950852222474832468625817071477755710524173393421574134586755761130953880497931289165420074527345514262510695248655068618397917378289021956377934672434582961339907623232092845603863959310858373444845077918158928126691668179790219385142677751828561312135591339402872578151043243823065349413560568805868601045871183801349313102065028436956900361239814659333692147311150235630045833538063649409856263422180193774026404028999490953397558300547865374294115702460311729381386587876843307324568862644060638031605248206779199659827609211253246296398082357465779999437688451400570193331335401259417714125286761612306629462991090468082338491069442906205885462189377648810885305205607664225332789830879894103721520083974478528707659554800130148172185643605507400405309622661638838027748837119158598051612767939401702397228958191014598918699766136728921801259428327605592683592741965626774941314546265815461582649408092266040352676224433512539878360180767008923206911802205815918485962500816485119425562568112909449417714737564469276394583434522908673294993771606772457468464950498645713470981865729202712640702157389928085032683722452771874769484004040232821787837509874793045305595698843627782126049026859629655820188132744194515242892994815944507727221166236950245155772231806712927691597701371823553946438636467714024801225199430384542816623412023756532473619561200726596740710590392817095197927511624306744041187486028469915518800913992304373317043883611665604902088802461076272873978496646500011241109760802955121413673018313108155038427032621332810007709452086807380791823061105380150485438167165284830253643406987429040227949848392211882558719757523846962152607785560202600090979943375086514527399785013461686439011195026876980297986466548704603417472308219581977554979183939896711126580028097816601520682849573143345768863953953128784404451140485619943941215982474899180534021549581673564335533613183483203691694683993548087263011750926664575884516525390195447196856422669607142215922929217121967265602598169815503793501919901715603917955094545515550690589240500091240675826484009078954786377566093975698597265396187335970370169219847244800650795985455847103078247255971809101780491899570978716154466514218060595057065644574336700155713460095265737107838920432374333339464756802192790655988955733962695493311785092380397435642764148166090036479410411627935609345762120692220046287789905820077564773587463862200563215326736187037842778160812643678441094451258948184521978128005074214960644541559584997985229673321332747754719927363629903361161707778090915084999590114007219931696931009201207803245368543915380039382676778661019541858686337042662063470672125272863646116484582119014011793178184679946230866118402630623852166700683134764738605542562875124896407656237343649317615316744978037581238594072039354488812733335672503049816812238402220047931943728679496186921682743996922836101902038155014933749815146901486050801718747236836573875408872724295524449968835222250315489390313754695876723845060017787943700356582596250669220615876929068315209618750614332891858436684186874142621214117611518683987303616918258939452402505087625058599974850326623581293369202917646888378541817059235238615481318848403801805771218056023168169982402771790224869309614974196103115424120553996318145708998320648555812600563668124329894985105672113614212622906031489797663233589965738102164396217130044682884338720362071650180625014861235683816630699062752091017596881207122345138137162081084248930564990487262588520777160716267264698785768931101362851636122343438590558710143540110853315903433759049838875478144424079357702195747774164587384468047380212460189614313645550639302839147374420494243458556197754770928023081012583556047096749858379392287663430322157580912025792402960509635588355266809036240763419680826334590200692786026035871001017263989045506386453263904252008285836674880957881100703422437095601154315346494136982981377990336768086642475107362119715565937944625428868146710685416019314175369256085218667783019656864845655295001889840090694622583974451357675347769768799933347978214299854430403756277523110389356482058733864730886948041200192191248440533466598948136331233087697349216184029116619462515695884454289758005991726546658867388976092606617100292484189903737159238213335393170790364681188296475469033191727237455422682926379588569802504051518207201233980538013306990415365969451267099278562426910244939711813334134528374923275032911895265140659367544491580878640494378966481459203407197725025346745713510514297065620166393517914362653178154517078213883507950802921910113092648697913791356318228221886395767005981589915154615327207466590019926108491567021498280994612485356922967743113158819595836436355731502991320240484580241262208207184130478081000171110271597397417458055398228355899938918086327299178968999996570516491453484486905127693412145319536849508359014676147004366784253685342317340210091397977398820950607591162984665021185611315800207274719447186590807231665090095226714366666930705575603582914075040591597935711332971605590206530105114486876133400307159638659601414682673024614658954482120864014087929862423713225705651810716746572320283454900482250654252237089849455261485589660589877370803304886917725813804698519380099292226366375031542095207529020470793440535543083231201426687285765505460546601045446765233049919069308017418871513927219504347541574532543800525443513422645093598468060764363737376183601693160740127956723810271620346731062601798947608450028375552803948929815064109078986861859428722358880197035404490918067626034546476834740287771825870672962055311177707630586453715841967246279028032854863806164566164137248015404203175868372426968989560225368336454796831662062162101045448973171852957625088699173888984983855796395982572609106842543652177664305812347626420484195624894981749652902285633498034142275447541271265353093822925358382715397225773733556056893853266991099948834053338638864886240612440463174030073973372766682847410973932054993966430891617146392464358960413330621280963761664118625813069048689717154629637271612997061717900376935760000200071632315029266007853014709768198525142979485525128390665281906272869001132951154011017029546741076519936366106315521463313912414617123056479888839204514487953293646437037907154714744793187530664498866309884331538933091686434683761383352177079528594857670670217354911369093635849255650575610143376259302755037702791360790329546703273647035969551584660452763054786500872727433656273840447106011521934816747561261758134010727218414315472452089861701777865625588418660713270033775380590730087622906398811052182467635244144104672497291388758154598318832077047801362179386440090170327507720408175267252976752095888450117134530109723466813795619774223063089221534088316378296794376321456121245630918437145840618208344217088361325877588380919304135965923952063635347974322560600220437358322696368102834218147955173023429450903510868203403210229245637372072352655004908116138021451483628991835475437230469336889979246411781215179832662086405904878739808846681526444747950728922922751701281500782457713770103143710717378155687699550065509793485561001547986620780546911621074016911717392334147592321064532034014875959843272318679836545117621623291152462719074844093326933636922288384533971646289748487437446066626611230286860035463386860271044771291627397408283703531271287878789193206254463712522980938575503115307440578750407235104389405210763241844674719601390197426294668136506450685173841309760083746386003636688642374177800848959988087355468913052213332931069791128055142430738824130545619972091942431765514679246282576507341293082438742344188866414197818215641368027856590242529214924180529532390781760383319997204754758482099905418390674721063090237634514269775362279949562874862489230318320095817241269593480326162331269042504013811634757334186691452307788662347796399838350922973526127018595694399468666421418479343726720833688625725580595633920690500129057136530672419877752184397035917238682674710649225349021514698094951733761627100471690859788178628827232866105989162904045460567251660654793793578801967306993790581103750319949073382684046832752262201171702103755859626155270246324159460939009980348683559235917759485691811328397495012785477126832296863609926765906428760651872238468851713878682563454447848373963299077602331841384675230294423456185332629976906110807326865163089416587102015713976554131447964751610235399566949566146517997052456443611200208685669556941256060174929229767047018505843063333992061784879250582825557124109803500745639320675728664990262370844857135063260163151819326344151661266258566112940494729639006051529562612666978219639826694285387735164436595824320408694731117105257706617449201088759305426287514194638814752274746872603231230410483417135417737276956433325325508396132207211957501825986444524218564304428044493778428220114011132171179145376170839892633308078733421635005916653438705283591808063892088904165379039409352386862789000316593352970966783172816256597053416825307754109107058725810916904707050347199175360435349790319121054679065689253285227273943501362680036681068279338191675851521389681129028223217106957215720563589413835146893559216978492323103888046193203048630478505557204602776869129049439292507599764723824335879758856370414806267482415560797895220516183398366654490956191697082996537611081338013767704996431659078128984728097308736482065638339783327823608258172532561034653180946626016420569345483344775407064912559531643649660851133746326093046539622402719983900739418989950347001065570393390627578865862507468190846984009742215211889795875125821308087462735328428095436720784520878302136502192199713989234206662323966088153976116009465581827232147354400629759033623426714075143161196080535310135763673713585557593848769047377532946999301405824411894414942764180954099755836966062308559857149463588083631126917430335907663711786591294238376153283927244443711931442573104641677503311415764680272658268009085958908084429408901049682483923585032042476321598863362740818502829000506598343809906966363196076166677234515502787576655746042324527968584367233258097627183932447431825835499233174303777395092675571644411110070833104620512361048239815391509304621561797218526848068213164138079542113809370786333904973645035345032934654344462784317518959720387337059014165066002314623874182878142983957308711260347052310798965260967518007580410108124867036315510473068852329418110014746661965631590862173329971478590424645850495193662600081886804077797715424023533278930910874264767748127817229140004164694663257283985962903026339361678608683586091288673771796723956559271616291470030592649263131600544349362137946049771838944187393182120976875959709362534174032892232814480941368728440714666790228980385214296172518851453049014856089942147904073548292866927505862142700447940914253877224961641200443529234099810592176382329803753136772820137870712386773652625827170841750541069744745002309682661268364119857023661730184240121697114396188482916898367015808035076847528588816485053731027609063340846667487927174202568813843869010677707918544524177696990423180588450208586330140894608556826138902259781990601752364565685093292554075192978533417677196579060803099930223985209740703590957201121941503524266519536535200859841850852125047459704918790952524412608309403315364675874431810558040418983078159482718671515761011887198577578938451769922541690369995855671119353189226478235404298217088287569202401359378369762416981688353715400708894758533237106955632227849365170670666893549713258031059967718910235679083920253446694142041791512392985722137082063829635627578193105251202395343056481101418977802250927188595190441174643795422341573648256941168675136960458046144613607281649632423258875604825544956289962824543732564868759675223394335722999887931462793580687726307347656669884372529192958314084968315888767424527057025106621449850569142316055640290275884338317523935434511553473167768599345157446633352522818594995170573274165821594677489237715379702631114489146841362259326527223388357471829023286051085581831345664389524593448484664612204952225847341794291167597613391625937637489028384310762812588947248950024089848485900318417868284521311125983165319070019807189168927190942361688098663784471673191681179706498423200217472048354665210932093949077258144666052909327223196077372201593924270118327025607375748252841908291449021577930989644884312520055648704214266509858370114747230033157000611152563291647724798203899856317448017604523821616058075404718235590353739833736249607225326193258534642728688566721202064932613293322072579318633130224197322336766148267972303396554785560409110821548033297350455756423270349390732712093335063745130690027499992775686342524860625419060805132725681437216771058227524839107068232769471944692874808096637431937545891203330345514401777473522078119990481623327714783794161784066419502155269188516251985217522409621021528106119653194122669838590487254940806610893865046505608171067226203497484269499770081815043686545970488995799157039872943296748162206946738736272544148779795930267631022278725661522734349036269155304056393982819084478950357701163595531681986793687350271630571197822402109850639214768072789086341269005790316781596441306816853365876473927097925899712246759362986308841132646665745462573775363130658114582879771042930094250623269796050111110433608644967246181663458097967434910141292816133804478936722015365602064562887534722517376717054769169885591144980623943054097769907506017432137495465962674127336727339451566339450852740196649798873824154730330786474118164971620291692807539776089341784017585635204000837782112577652458758832023562277726206411226054137725269946207194686032910645676633513906210149119060562067726658177639606709913213188634167457553002772578731737377211871242196869130760658366558097257486991781173067951621482181193526645838412812459186244567918110784438230315275327507255048202155380454720294934471370168876493138431912141900115233917481769742517623811706499362943828988844450480653248082839121014059332014543918700460133668271532821409018737548243067801133904000744168683930004840569321338293361566664638917969281212649075358236591018608933116358883830710908935608474470432731886496292125900070971983815407198163915534357040442966863865063287709921620729252363979048339400401969946908847229027977472875599750982072217552868900478548728101914620649325173443401543912437821142416230112478795527006119731300032280614827246349984904713982505642690703609386536678273396370628041647873265877629756679897042351196968054838922838982439164122229347590290444409191985371341792076935853602711844059425187888393648585393286638902734938881891856408271041218447636000565628562514285855423771201569673919045030109405057456722510928650850390652550159824798418331321846281232765292896374696395345046956018569191979487538468428769269827262828019843804304138104379200850460864545577781984678983986446248492915348626293074745672534602361599657138579169616405742626400250813348068084234662989327709961752917497726568220539756418936232437142194576855442995981537570096965584890018421983040489990221048650266069874153637188175375697869642083107464536787247168043171983515564874712232012067258836972315991347338272390834520261139795230208037432245732547206418258366038393498234567644378255955490343179007377391097034687347287456492053339086901000745889886969293668205383708484094842782813216754547502390187468255200055386305040460612124997592606896772135454419317577011248674979994251845962965331088405080201600803584316804953993158669887515460104559435507104908849001656967343513252878458406044505208043747941613406657393859343244339645112074119484191247082583200878030658604417819192366224828163157173864267359745438181916699839660469456594304940228414855232644270188110084313914470954078216898886338438309354504299847089252416872465850123914299233487028926445833535909147397458758569821601929891633964045485808211129394549745575571482761923584620079991197518418088019199035914712524927100024235014346201171339273991665336576547873652537576042262104387636465547480831299515245269615697337583255067968433803505252031992799963223577579872401488301923603540421892731035053430080150016641862380591075374159662516387694232644677719449573014865560863591011503966555561808992613810978255130761246310013974878570038514696679513009462922987266049880966849798291707622467445571608409697530509658150271145236529781897086013038497525235329599538740105545967620642190901962177069937988694056202296276508000381051352944141078325182752886387216315417417269211158316995029392134855024588289074681589247468642866198346397787410863354658408332797474530215751061546818700482103818759711796991072763444150349869620375347025463642900655288292658158328612389749763460126852573342248973540221136866412178753719336824846263652519271293647458741874497747207600986027306262340886152323116825957919879458675571780332666494293193716771579982959367009094055631720699161041922104880845638789593316792716848875525709641333966928269622440112351119534835730217189110359182377808218510484700011981747169612702173108511995829725578938653576058902494295416270646143857283618564118645671977187903384818935420822330558620885336329341847688637068565756449793565918321975816941955975554960122218722396830257591926102228064436861143545737310421985465701347840195170969552539039263435148486242024212133873245364968867428703947200454260431559511840946177974397894902827258458433431154595458845305989610528387269005077349395086639266544011588280019355215746808912410011085337852800747297481380597335414898951056674463808875593130309649538907334382033857242065076471069891257693266909885669369213639734818748760051511863254109976885513943085169418316390310562237302182140119348415072653923112799028413208011965597063658770479710451354412337927196461361507595248739895780528308924608086183031105149454156889394364867830432597395831941856759359205274227730118152978661230340957966020633728492964455147081446784290783594686320066235501218841401987664664044871067363516859612305303141324190923765384062543474053547043538916778710023587658070571637772035011708574515639870394592045004506070536183657722596103726123826648501012834319014727952427287670158784723932580424234808293314547770049215068250851958458386323449001137977155696522616104820563052714007375088197039363517157216176500725767827798200476187055961690432056567423979238684309892868965350144873140826972958312358404937261303463273645982121461054982068193180692325848273483349628720709444679202179301422633979555562632377554723830296698168371600085188328007031784817328230031787884384764760843260972655709076759021819559822351828140216088692466089434901305556589175483136326501872023221527595773677065000489322257252028581761288592582253598036227442192804976864291728512401348517778866461144972037557986741933560649672946610046482869328344831579429138634996968716233465955977942227154754497501512460733554886312296585626333992082355489483072529259363371869753756391421195951565409493811280171150565533903581866756726675684782930529127173556745740083770277365259368685166536618637744983957799574448315339398837790009338280897616183542264747399649382467679392435932310745185370272918813991262131902656403676568009299740305328313494861655257780640178266558211453230288895846525571833179422596582554434511585256343554188493518241218936848310508526408639417655852761373524435327038689971591098181701052407746616876565409229793680636338564964996066190248046107691615092500826469768928477673071835599261719562528854080379794427189765358730747090119183943580254787585375639104898326310484857089054747571008979819609565867439503830079185346872515354911522466050851527499982653846374136949169291479634688991963710559963587194801569412419095893617198988117529452363220967874533785926975424386459467653837543025026482773279247606461065723111773207298114485051961433975578580384098823800635765641529785726099155275858129153997915654773845316937630075290208960087037812630740360439448638294722732278772359444785014401782386932416743385961768705059680739122061201150578736761357238045974876812823395534959796991611366494712410846753048908358812186519913354525694762865959982432135346800034408677213650599009286683933497555786449573699292978588016680631855001995169875777968511040600515136776670528808384591337495370102080818725121754807693696351783749482617554084876831886193172337821221619655752318916725652546479062090616298188651375706067253967906545278051060796249333662522554094429237249370654957652479482666748973609870427296709659865003475789818049649143628760303754960829847762365144456943413296455601338284897961921351666007022908733505637274646143394232844759821366641399085175351471393289269992051495859044279732381353037998184816595253479807882725943286752248098411843003374736800676791363994517290801238102012493553030511183485086613668777682173907895257418105171227616017912293603863982614593860087844371188143495336210923486674052725782126486206928302349452874211193465790663117799416704750506292910213907492485706447127509841637903239941022500769098226409596786980860633315605153304497417810762501132742746403333218338391767995877893688671789776630080481790426014886328691074209678041840992238822311516477715203014876872643702943371939358530553726138892956837063717563715034507155681850130575728547794123123091397552479699416054299760712893551435734396362379516692397313365944061142009218541813505905682609334328872442254470779001398808689184312569058513887425307789721087802414913638067323042962743459257136539486502059724911926542808194524397613770600036023294341684557454305844781622368294103453606784194881211934310627601764230994694272053707528231146967422090438886820334667251088760253045730052948899519924219839389414191334171277970134318751941131592459644318796295175250130626232474906510903650356992395902905557307363213612443214214121193410604877089761495153278291071431343528447054054146391549123923217881811976201231845483544787877390061254484500862227373681254401666124139971426405510665720154479250001559575397234010645527447622931551640156731560383647766646939742616276742803860813873880648349729218067732408151969656077255466321192742031622973262552858796072561655874913798686742217040171697627493648717835768173849403839257638036682984689594431086938182387200394560747989370413249253381649843377986876130018000903240673520163937376050514887809742656467092614660362681242414197788434849933711166341557075875108578426836337567560643156461945013781331660633081739209697932685991511630342980014945432637085997145005640786232212767902304826230435669670992979314041490359591767667035900781640259624045283026772250143304256068711021311578610361787400948720447403035278312840996716911581819986644505620880932901294934116003929417271142308377559744991253093118475871740107388181383482776556479405450813320105611838798737534194896692918968266959581834910205679868728631785822077618433638705075463440009201762652511348463268383302189693920794332635106859158440051197265561104506206100269017399257598079793352232576332801785308568186475229770280386519684359113014232160964320791782839654935199613978520385053778446798356935960810952192383916493562839435655878517540395695469109201119496331969954514933639122525013082538465459944043939750130602198602509399033047261004450903490429170698562923422000541963685746717343810348050471126449272799382668500560603931044560823473316636544933594580148570832029739881092691864957822668945740695019639611966135202567237123690619627580654039243718164649087452579657322408748704293149738357690309473522723380022981243099854843570475177441196522527937045823385210061624952556294677098230618635013689020171893089874825701723942429331328647085295676004358953595955297358994909688184207213074146192120356494576181281032834824707323934119852794061927135215011238174181262062895939712786494114549775435188546588828672713208221113795678795042630294811925588205432722277175826692915319039142219308950817574824487531787778874461898523163222659643357269896604434139779892984540398453585382410781538318581620087177165713099693792271363031647770900424539874495877382477574144420753114878694459432534625532149566663585554978493371026179300156719073041403462511099938889983618992314320419928388775433775806100355750486326960166956956546875856902515786951756170295252340252910927510089074675706935082435503136030235753458886667644141122167792535132233781448304086330432779793220277968509577843233647981725270480231838887838803781488388665169569764720343992479478721758789757103874895229844281851770330838797530767756619157299475922121658976992140077338786545594182894947801128668369244000179544865758251543820024874264590177142808808370887160933037859278586383829620622318763384816790811373246134117463759591219635706702882502440604899742732876229746824572345411869786599967953958852444471257452275615166385312100049351691197962339518653580054404350305166326007599285071485428060280214081626951334808710064511897945038205084815282859555554296987646626972369167156578245790746825849520793400094328627204915907958658398459444000068160979272189175065934238397105563197900994621134839080885008185739957983156202169531555816674414257028034414221231345653580485857009909456671886848237227901615025685284958043194868654612575766578872842247064339914415102301176313569556751230853276726152612190720842849514923388791722303194089542712287162417933803243363698250534068237992730394140091269063145289261692306612655351100323386754154365962623194981987925596394233503911995900252849908382166807789028942171223268251179862253596234117799269573051024745587629455454420101954482690411466532438016404719013810401401249351255938316264149238122554144395677547028867234371850772971770696707652000323321531611477322580324777296659358047423527241647718860967738361710639032876186241374861160183026349702359582688579213740097314842268892626971458070768985951558002371200294554716019811475920380804104769852774669712111223519349415157885768106956040556783406469475046202886801672883965628878561194464810120254994734764106415742155270469986843666559996077735855050298872575608382595909569121312270811390176185073815703335207335324533201911881672784953237633377909771520699648469797651544676382521364146086023959793425734992220522381947478177626729596281917444141389019644092194764800011679381590478111723180218701779989547703835440146508378728769154536855930213506008378650845463486109748550398698293127276918029543936060302345679603118356799487321644705339890953797402636805762755017286287614672512372622350412325949065180341370750668920126315461222575557972978139136625987315031904722373818269671495928038622677747357710206672349806221829080298067643206001817276982090258514751137937180982206909961956247520806650781540420786925970906565941067183694034785779215639878599662830515961429254940268463634121708231845741059492096656527898750094059754631811218445014717641297332164056509051182984300442148629660141447447818600531048911797102943525812209123951242374560795052884455809322369159920822822934785864939185368491043931533380208770723486238841837652435612957428588344472917981106088795741271922969990294629622759135498501442226308833082705819965253684683158471466221481265347014527722799067922019603041739002223221571504277862980863569198771972198253654024939230669390496082638219981778010423576221431550823605646122560959508009390105932693470044023567618834291373115266342234645052577314974514558317876042651257004523090964811711836144896044067298094613078281185656177238935087441039069953648478895948070684860062942901953203348923212873652906817437556684107881627706522113306542195057526222543486676494754310623499674053506733102458392672669066073917602283462013922832979599482874039934280711253326248356215038561686755225476964172608920754141138976729885445615802890236104191714702687067215073937561667698223639693624852418057505197016904623796250387265024253398965382896743333048803976138536904294659319853800762023141714414990309124915166313879988670132334657779375714327972837731749422067957213608718787349857479542795613594722988891244647478873286669734604676810249702869708223938882328968001818459457856764720980373978175807825200235661445560284060453046247409173337426524683664588445499636805632720488606924184070192177687325780847272984783071700748053144649406006752213681514781006488826934919881273617758148394997775295273282626182193363266020104508222286298521527770639727978361076892642025837286483537211712308759133111088712213272612524862290702905463367116627464963454550598763109251545000083912341485391051316616735689418375721596415546864772120510069385045784059577428156720057039679072378857966756091473470390040159064303694966089272453762420053850828603402243458132075106790503902328333350461981629640621971264452596134767899600824691299323203031069744659697347114716465578979356778754861171215478855511330685771564770876550233095365494185443925990784266507700876812689355086309586769121085713360250809959477862992657488519009627525032454724173354079351862689170035942648516910213499384794738426351667146262241058241774050439822341224933695684194042074474965796805483447877845794587599716591591867634091543974015096295120794164155707828303229309645360567650170100123209098529529213214626076561858234862904130660962478897158559910670114478189305514809169096632616566164858807195030093995389147293409136357595031349177549333548122147812381908369109547839625845751955904504555431383541091209828770481825467709257037100424221288557072810291020867364709861757829165497442236303535824823417553201670378809985433705628277304699308447990422048096073923679678258141776484281826578224011302984123275966236043938785299931423747969638914285265420608475624731414767078946119461384780004440085911854078661450435833928103283451315081155495945633787390862680428533640608452490561841667124232604845714400254361350368395153688675732454258423293616361012026665135892800901162065931038525194617932848133979829944521044164454586777287955377314933149083720261506931422506017731515532125750151226549206833724016143125846753294895135371421894900523238025619760046520348200364185924833191971217745275366861319161759869218028526831660442915866707753861178362055657010084335015554374882171237543447345416520731883933654254827977953300654121213802889961165086774984182004083101943904346898943541717430414469232204776923488506172585671296867583348517766526507148136692286913592436465210449273494577445746886665026226596810456925201418569691241684427491349251278737150705266247786665678298433611813510917535727436227819275262304578261377077012462527316697932311306927897480168166352957648330535986519165142358145831590112945585888987235921865412425909287946450642125628943388372853364296046923752234932181001092756901136759392200277150960088125024619550889715918355526993370201416688231902936202781695394299654178272435407037534669358356673452070993481858589868738346639336356401453729448379114076278926303338755914787476334369519535724363395642184977177460491326822757163454255443517146796155176016135897718293736788348513060959936592309910478363987917729770407908070680560904445761124236349945263579299017404131313685138796221699371924021402674364001629298392975145930640294063974514711646363197719347063854865597374499574635358801196870553147069096027678103603168945945278942853635825406970463445546333054991813700411843584695547028635823358583620024883571542493319015822692691379211566789812423918798169087236140275360191013062634059434354205724853322003687043650165952809482571983458725716135047486352700217654769759948233596951477206190126767442875006219461276083288625374932288209463517378464563807406536960377054074486634945753579086105400851512290763921318299631628317743209170347834239063685838733638637272508242491282803588506183350627017527331490470247540503411226039184830406154187148910666633840596120225520413260172049081354231331881499010844445262626302282196783333399564201836477035231956492219480248852027163999058334085345252761496180687467874808268836271370562000787983121177839483401649912658749562470239216574672716627273637434374820637956547846356164268014259138137758341098821935695932404510383185140521604034078524817596067321683386398038418615035132607894470345113679709350932143828471427135478724663318079202694078039882155480920792868075377084136290989323651089234647284541243410431877596198758996491523112853773019022696488347467191289798853749447445227344291591021286243656670877261444238365327453405784658537631681881785660935124593175267102847102964660941707750406173579651491657523778712573151624505498469294928653759434292992529938154500913706860040338516551982648405167621536379776893562697516407332331199245758266214751600674343598961524865046323722325294836432689403298482167011773530346024110419113289882861286377454980898353735277218669305213363655125153759710577572901107969436949215033898873789329542026210050320979578939954040785610957724858043038181132791248524753156201438999214667472566446299610471843172286740614295979162047766425269814623691732728912607036423187579353907366344949713697226109312513022340265005538027550726843417350461923650179372924739601501800035957351763411752150081473473728566903272412406467028667690809686704373205486322357430801502742594047930497572918249097391828935842705822480984333767858159541857290873236443938951741442572859764471919146624326209842633284430719600753965618992986933788099241682487751610816795446938412901853478918152279618493292566953310835366450148666602917592088660718737369144295748755626563040206600637816294950641414261706818485239939391623311056313536123882118526748828400199865194345951589746716344904500061243469955530292616408707639341221881299604692407252963861278707274805661242595326438083795353747538606643217178102307737617554530942461858501347767329714748394227035036386964011798006142024898422414781024610205856146139778832975971572895849995399415894865066581801564570530673946034933311679628334731225572887784094711656338396793529183381999656632301034970344954147186035332731853619994466203356033562946853472377596229240128923149028008917493866508389043751506354060008588210474257445403576456444144149367214113632084293409750294584271812189069898973694833873979098183251626991870652210234493250468347116410482263133646059629417514727189502217875474007449955984838773204443253372762107587736064924129226999683796955995620239920597017579453531200886002009795030049855395154061958360572176305246552005860811443633013133451274622137625170885840890772068155268750522949533574813245184068266106963823933140026840852158211575759080092941717547384166720790440880496722969169940480258655093705824998466727339898944377258965097856059755752174414373143719881247874700377481011864279184414708534844261287645009210505223626343675635632465656761503990820500574560000735298995214256783281625319667726900601182437766870841087319489071081919217276891978869083015429537515633109380800229630337734749680725741148500371950404775138963404264722812705596747636394632584383207541210130214057404548936653198440477494072225246594225489627860290865251403179741378966330251580531300518619568725785048635829074525268762411698217593604167272171327934850941729275760674828684082556754845620251239148935013825454109758531820177320813274272458353951165965509321053358590941413245873132812579171956682208048475947528843132948740040166746467721668836451570369168658753167323264143023189768391960657566526330212277220817980794560700697417943499056747159022487142477015674193667313860021661779037515126613944095860199640544299187199023815427810533911914887732245001185341097050721366621676610152477617284303914384314858798305630494906201227214784899311157878350173052217024824049225560747922252775088685389574423333550695118953866360920068996462360170788311422437135331643572730938514307834153101893196042458753588573573726510679499654203951390756140852529831209750062781906105554675479086295388158643361468658057349018483791124250436689252650639444808316356994697727336173701465732320122267997053855698905674824130030743449644299871839309265644641619996866994930469069781159203248179888253753520761041016138790219406159857030337527072720394479075296939490312915743315139728101807138353193415760710542543609844483832459019835296894422488826073387069157670553345426849486319395224634549092324884586944461541531488362777371355894757992575673566284762287655226619849110202345931146807117701313871622609701496624005976008161316398033803444099855027049784403437574993924250194268536925042610319165037089104403849349024496434810455998632936194496346286463326591705439275031882790672854182198602315683857085357071623069662653067159054867010916257562527134105235047132205703031950306721627111938021116939101592254241951994452797053111918515012016089626987339351841174562707647932867421526734912839363947719030634440714212797292755063812745384460336153427453610877410999466768456109000870677632907401341059580168963225016099667270960638440949067406984106234939546070659008536315450672563185558175240394423907425949270300402703300997730968388562196974957050287061275313620238301282993003199699960658606302250963357228212917440736642578119884368252661644476580049200941434175713111272955601713666524243658024074453778480902522460180025574765794287991625260046971552229312952419208081253577827411444073626672094668993406474144573357392974274586957245916757474292407243453284922406520946080949824957091561212633501750132362806155293012791435985173563238352686455409793834559656843979917153273941931333963331927262510822126307430114372909967693952957998977814817313426166003522936586791297366897265645531663080918757757321407740830686700075421598391107062733592805311986643852728561455686608996622459614403146484718215177923801840728290898895746709941285164039303576548483239165205538666672062422703778019263859269174332722608432051749648258474331903909879754178111460572924372672042206794917742049079807822601105806254865191349742972440349140290784864282922909197287061689417587185003250646606050657583496643466988928253838864258664101625799601209573445641865158646075316547099743371530863961789064450376206962552829199291379459340127243643959108660120688873868411122945182419228923751275451477857111186499003761290974948890817830838820108626603665200789548429358322151175515683400700030551739755730369541451396823829844728219691798223568841829174329539925379981295017191737806073795728559442977884273261249933104746342050146081783225613491607236594612896781847643531996295368832447077527595018049355515089551852495046082700105483343764533862604373002578255057870042355650896441848624700494142996068536585994245443095306108773760587211553769314517770834265383378948254085384650021569427143385776599868412675234155493228045151472005803064804130815638398101703021194114846778448316697174884184975254750324620135768726232449670788241848582998604622337544245747613046302604968905945641214741558387332802410902338003420406145371675783022477285888746071879793967420742040399474099008615440205097132468326834373366807093567302848933304975077734329931051534711581149790371622938573070792818265346053794982695767821192991188515867154441624491648544683548458007370414438297501577687757005434287879415091051436456015593954477784087841394207064756037929282050618106053491681696749950682095773818288089407965635580480829955896374057191804817769388971397044693456948913530524872623284712888614227285595538675560767894284572167023799639981364116221387541599177621941994810375517116683793769910800106830891389414869030703027536025632995654336368786270659731433901147164451526175804344135544635601863306918488560092502091630335959839875900746366087656623385778766563544690730895215711516648955847510601203444690186511443677257240440784667538485469876704239203694054523222696447454166416094407258245314797313593814877723050060280669213400752391954587196300893677397653625722806768906599994892769683268775082301844410983848116794386933343835368184885107646450824261635345445516836970395247906128303586416280471304158068038578402346290683612666110884022791770488120011308646417069071081053970848267445815532575977077198493841586912023363447036356616110020855099904687035604416758852732595031148001770940178732716893297159154032512138609510583754254906718441550883405836367123040672251859112173768722089823092765405640033720668432007682966988177568335372320883066921573430820903899511945693935249622882439105831750012380472830297835010392598761278094006278427700399219643300128265924368416755834725025144574542130107380112750603916323930306347358152560540131399000034123667825954409472042330902597604431293693786243855251036578257141951477347067073159443949117241349144029773397839750927166799379376527870809808495046904206333725859911808527303939633953428656280864761899557126504409957239480708153652815334228581014181163869240929985164295372540971252565116252984621673729418788980171794911582446630360775542951286692541882273514979417892489475569155138686592669408214408741952823900628717192772636656575257811015538805136194632357956932405817093664888768386697428751145742481106360536647357146729839567791518993629396186883171036390090449835453471206923046049470605313775532016797798895229373139586504216822886395326636848316026268430674356296411576959166199364599727512489304496430296122685042905876437669829923050372188639750166848607844820751294647258167367969104250463794636306305332307565975850547982273347408831210721530420282683149119820409326995003082854089373212104834404172233403258888525086475575894229771563385726960843982500572698962671392934374484219485623342005315880460203559456383901050897900763932667368981831884797492334536455477389327845581054296680344938936304651530547219832113655748970827201244436378243383280179692584132511332123100119461285001508767595821910703407109492349031325129290481440720398667226615294503462011392386335241422537477289753127997115598967630503490622960873501170605252406018746293949741392457715265755451027468404011503837029360716515664273515759335302741528622275690828194087071820995072754048474914639689722160490565358624060333618436982652137223864156792870876401720750684746982022592255583593116651719140250820784450855885994254021553040516806029703393416033395516675382304092796129287980172410951198946591145936375731314947501229275998749479640077419582784669258750978597169128622971919324354766510357220495117135031048758185896671633970914702495990231489296091960494172735222572976324188611414858198344434292552846167721144970837516496040749853710663475840260453201755011634323606844065089223025154851916271508532429500299147294579711471060197482426790681211428516297641070675435663901671560785404464259906440845218420539800373562685475372837993344879400668518522623396769797265772686103401682544259638701218819844979890363430735414676904564696143328198123438170495011819719930210843339639098730557385018181202061549708917900093276445384662550115458031376324376982708112040761283476493367065864853675764977895968771566058713819439013380240594194972341925677335591867699342984470440959281443341689195280632132758176764644783606644482764345452157929035182502724862830984119266879019475177984640345930531181493136926759649521374134355507411240132823272516359958012388502767413681777503595865408973618181284620394622817477253482981284414689383546716943317438298152274141208383193597412697566477592639410678057721796649261056160676326219281113520961295961883288388883407612745150398097524250561602057249954467041660102732147161135113251244432778059265353247599363316779379225996015917380809200783942277027967579490758467881409441252418379952675182781874524175939890631788976943006801199425270752371421394917161360471123391266763883394458436109640937322547200794922248336795360410529226744522124327568789951532799143704383175264280879751114974781840112951437103541815672736853396430936627499699524180258232096567533230881217711004578052982477241049669210541744206359345654028589090535959028008089602028162950293704333959299184141739893348086300295988076455909677594517458696438919280632724135189063435923846374455142333970827419205139572377237970788657115184335884856583392488624620966813264959294095275660264383102620941359524235646074267763887222973547137291204083366171835619755177806573125994280185834726465160944634843350560882955182439293588949781850365490104711252533021478527493504018326697454978607775816266418665434704267379597909920320818471385840111951784983262145513137501587413609003640915461207710985623295909857741957290106948180051564335871208240825339563327878430878734354850596111524582294548346362056772661069136494885670745604849008119280978241396928872062487932048078573622097282345972077992292527438803641791408642998994632063808390277948924895282561924897734816149827898552789552556493593141071906752835124822756911403347044199231275222743790470566330959931876787956256975091848159236954797494819771073091214365633823439011494102182802971738341616285754819337650642246352934472383202403422607528046429431944674625432312896995304857883912072580343151896801770031879705143830109118269425328689248004923919898374610631489226988437866402231941148988335602330439832921753082330948622714218348799795099959866208713080785649220664816278443904181446195352331266228053814643326287484503133414583510872034484179516837578969740302594869892233799364736789262432835601401837078218265550479630583619151691667502962011308580742537923891311315741875347079899890036703702253318193489461711462148302785576810507756764841025313797824783687755020123109428018456235326936726304189992125239586984436877982785546288870430369742403650504796890003177133676900344102558758934197472390956894909929574781314359763632825537598088143347852079729571998346203713217205239707721692467120087156808573935285414263249070982732258512129781974831052091722788595170174688635844680666047797242289602934113207360237123223197118680073381553250430003044597226055938427626560976958612146840602389614456520581495146324978128000536155947607123461500862401619961407726940392798638201252775311670654873533119763240057325645531435722745734148093987875720074458654966648994499506009668901085270012396554513600572848948873970161090270557876327091925921639528912520439803586945238837930772842864089872691507794811588104203450249417516388666162355533207788970689554539365488088839826397268184698711367015503889189071268482011289142036125882196672045457395762593223755212792929833604809352710663436779574508489135789179538712308932827849382671760188589590903858466939831331870194406906400511851464277559620159453917771646815933131512394167790576179666246630409639464174207764393916481623846055463183243539390671950084640634370095424965585487403960197375601021316653733671688885971164346703127170324259227081625823782111189718368442222207140246871274485748423996878226247123679092084687375049826907157717641005292764123606576922759898251455659653164628066972698251112205098241880870984557085270043695785576538858902884308105329938226787399620953708385460703039688368535238219100145408223713211855232539495952432342847386538671308396121860974666639689202217492511181843071091631240175710560630428787174749778249545290883721123710979827189257648060026344369307220303340655696385677961909852701168697963391473940873577058533506182265227200082311728070696576414891320523950893301479418326020420309169588269728970902770416803842113558296166151828805297175481006721487164855361322902559129519894094910802268264113401861592149930337199257008387442188900874404154322719677224874672475022332215613530334346308854399122941696130974418349598759540406321742778875529594525656491146767777554275610970527168247424723388069060355657279663953468654853482969213814032575634198844605597934282887318696202631683167376792724226316950287853068471732935124446163609982514142002294180461592225144468905383894271028858629083276812350678254840921075864995855772301865973494938013155294105504233998580425599130112261122767362373938964994261052519926190586186740210710021331195169400827685566720373356815376770981496225949919450906903929472464035410083790728706549194229294963866920426244468796026802550027369541070922927480782526234105574181239900711630433340214269783623982964007502855308202521264092856832584125978876792339158726946365821372751025637984353934054466817632755377348764060377323984068931628981814843177137050803469072451917398167965116872563751067965541128752145254318300002545812002013517850569347382535810141199221193777425310301807005772892933221689632180914602814877956454060559859776260934652195921889041845050979253970976325923561488332489727719787723941680491668545143452241182922167782413452507079409934153661655275782767013292118735463452999384054440062168376012048885717393147638175004312913003424858701661579888637291413852898010966445077490534468609352793611034240669652991216221952324337788239765254096618038509569153525186903313425952251845305565059834543707825492777093771868834709691449522064278119823226796198641728427995976802685721983287145228784466161482430092757082987707452551998715465726443681375834875290559961416226548562806168229728205749442227013385105945836492319301133682429994269733394652151820275114201845869842202944533729070370431680210986989566307386697521450242896331808578622662938647840871348856464003032568325629143774317922804242233178699264964056176200067335892505185029697274992432203965015295879567958872702761341014419703117348895830237908490666268929536433281264213041288958999351808739781575480720701794439470463829996454425367397521003864786082084668678272653982757632557956664989117573130985582782312327851277264423571052156248682552041800878923968762395372592717591733658295242451562117501396227817326537881343142342729803131681205540456815617927956695691445472466163818514558686848130571696762457961139755133006506706796566195438743738252867289682881099569722267649911636757603829808449444371416921934288532642067356086324591074215992051250694137459740623753609266226710510766723276357588747511985216925292115596915993947734718700300831269487316346939199058899846477486742779820735838865569281301432162314411099079102409545946566514539184858010673116652479520598011321000748855861262839381806172545813343863453403861069383278272246344282057051371704963047484400150570118003216198001462192809914576961787422085429569399538054777126824153297479145095719312099159012590280393233683365940275011000476678317070636338462425666655889251188778109655469346298031463151188923507014681689833361852507560431609607204740661027016501392399301823791818366939758928611815551504128021388662420208574533727625516053134639833708105570847490032891281848209013554526419110338581664292250349554160589717589880260801638806208069171776840644287420995729279348628339027927097440558466533727076193413703975724192702547452154170432735204422370417694190796640838304281827456126608802744449429397381018166275564890995709531091575432066799532603762471859200607277267597116461116511796536692409784640777453101053165184822772205233301931366793412026870677960660372322296292509013841381814217668127261829101685231459415667474436898977255341998890181492930490284028487491042598297425946347045487072110365006046494328339586211584587817484743890864409789979170516985404998864162137307384275281627951531767173796743116032573513523154319192434669737366739496286934876837629738354926005898163855318208445140548748134804418745710444672966039681887796800150559855643685460759446925440483972881261861926310351839361806638143298846688776955889764641049359456002743257597145406824702446541400057666488234125495874842394768349977073511722090891766098531641705480827620033360471261216428154321432790732180646083772850147477808901950676459295071195533235452867885584182803604638216643541086877668311881802464152497330488334704950113886293151641598266586383453562351590604040422368848755225194994663688190417269946545746180419512416412131447255717909731135073977768188210560148936117408913459769798462571641160451741416569170553026014624268704990485382754232617568285805030424126503317537202218677542101055063886676049876785077230368500262472493097494942572496900191447289452083619308667299592656257049093078057593791791604651005360663237534601740944172136324545507566894180493480875315898111839530759971603164599008550819608093784414864398497119977886148156944683428054835655545664673709578507031128153386179424902920572210029849939192883538875199076668699732670424343964523883541056143593657348683838330539188848565249780594941718945058212850104876313483230595018313346532014472694770766731388516038020402185029891265120176263774350757328622588327936644285568751698527606377567276281547643914029314872394372769706725619726073162188947701577473287715757847518041563665464238775064524417046805279827071869836435288864642354232221468588494221042348829983711408266968787206811234161175069503764665751322658494499944709599751390419640590512933818270037174551960174703556599629764259768578932169891496756256438264224205676834867090798345895624318048863446251561639925352540308233774655258702460888711252859012443137861751846628848086899871491502319425285740299593165818566420518906866455676641200982078152867359040743417815752614496627570994053367325320533094083204045816345700692889824359391118239539347136645178322915657426468273878222026986097324465641838453312310486164817914299006514502195161994602900861934439612235976402456921297381301906243819494604256868035784289894331866144193390232526346380803802105823337654712679201126924741870563166920593483950831070765345418336700469434978815859285041055368906055646208744436741480977696066115318414564142073768474446537945025619885983306319287666694273613613187009117980722600506824890692412779674049846107462494800702001044287290732648111496064281447875685154944499521395062614014548975022755869417503998398623517801246992809504405515923560976948997392077117055660603410950444206483612209398203557320727002555753824645961705536020158589128369712186217809755674983583400290407758386457657147993730159198473125080755943926615429088734749100424266363793214292867223935158226662445845240075217235162208330310128912274324206961442139446713955001792609458924646432753967157439574472243914665113117340663095424883786274284055731886331519753352637915161440526414313599709616008269484630421951702286684393286466109618944836298710941502244954369274111929692466859211094279402893659168554246563770745533959692757371666396345737436180934238522429696276354504499932747005171038021702084777620888179309481404658691018832443488858314865536487514809382215315259916086466787923768640531878736653025222879630224572390072890171183865007980756334224927368811953444633604345104044617937577055853218124996442960787643630254913745453918439983388679438068054075448357976434583630031579669535453308650906111222771929829910624834689463246379542127108962361247984301362140617153021702741195771117584231189526852415821278195757507355227097683774304620343324253744649099367982945217437548429070463628920739492016134513123299780359573263590981497687844876092260870688976043601452917607554080171757004651526084719464315998929665023135599741628142363079186323670680752772430447208846704462802691824584018658446452859822038949380556360766887699972888205797578934090075846811041958342673108616104556728820739299444115760837997580049849797508003903423635707752811622253564831592054363911562017259100681071921477374195416730786875416520441385494552832903779494324123575614091351474703295991489714548023766498761080106318946970376187913433700325834968953921276397359971127046505899391741891534990039139642656296474901757805485361148593420610225896110773304515160397562029595598251446670762796943345495476436721104102938774954894948673004643513687155926284746553718164286534445463091659671126598514666931451024850163882749152527001652685121803936656715842243299402287339963243962394048856703362764413503457465538892066637439250150411341788174453066867034304217083056539312131247187946745720982303551349131725002623607840577863635987544799324387518667861486462093370165333289793860742296893850307857115561194884573142512102154660902216539527643808843172757824569499048667653563201839798015973721002844899423657252351399397528362669700112058445878243198960399954480136661015872836365650063959818885484717173515714254799703930823461803560586654028098212272489663145675081893024071135737439094793235480538780320891573569023916356982759775004465423468747514195770414711238522973155298501925651063686935692340454140128168943624648977581704221743876795644718439903782017383842024694199240211245582610784456521991547023772843273666351840784876588596047289283122272728831638482065733845307388986767849922026498967581748494263796574827547924180636446880204206125874672523188486947022882506874332137190573461446809564336855840419557782478040928428906645373962249644282476711255479426229552243177933849814009835237049149664627996546857193413646931415601573940093922650791110506172696437228820416397082946956062150285793830094636499108934607899220504322365604138967860635006499201093784008894993891507486505885871608736309607024921011195947399845068381088117769814841066043806804280537327042941908165773569832761808562325266214382652439150398594147485919280101974003868525974356232987556634568511410575736511436345176796421249546739462379130999481329598530325097287634066424326835765133672887454684245467375718007158667754136637892334837634426827488858702294739108224895164246342763514952076117173281378757756501676417197349013526950792707056228161429654353381386090023144583966363588971507177034652322500060480709473914947611346119804151989584505236880732364050116921551346883302058251031596989332671860434224324559874044121649800362467092311088516035901872177828418171404031897134254529921622659371282917223620510071931305564793660332997718970577332985692998217957156911811930671985666860512925344741432846878751956106520581712345526176512087620948874703300223312951764929681083922147074545090344763964291766751616732683840105552519263178139052071776037826520807731926448225477661294177716917345207840194654863420112265938659395909554019343934886734451817582645643294174405141766207901555031705187146739463801435947884280848927510160452184474172887295244635802860216179327878529440927759181798434528918483278830995092898941768678549621246566932743333879063049469742745869109799767915527471037859137323171253212817946783089376497051253952525358175291328310469646550299199684462140946671893350721785691628717214321399489177002336028467512452423473154272437994768413102145413078192673442350380447578448089155145366955427869888264213819671885065840177799313540582308874632228584191075530622100295385248581754983483039207126793833601903053740163588799670069890720222184641613809421543757144531763938124691691624349753255478183665179850611344780187227250524256504109665092814505578631319663692245885776928939250535034263112915201422841168076940944153613202525220701973530941625220396293978408985821534125567518375092618459723333144065540688221701878067711111642392683834024745172152125942672751500548683434946178635379521318923254271703233722630650527578596292781961153770809998051109300013946481155426717693265094046920722960270890008850876033946414664438984765416823741510498696006998306603731746934684609255323928163752900135214186146919716102554097831424055392902209386835510780155557059394791639557390875655042222627366452363888640982020831133538869386997221396386017607514413575572452951387440095654134312830308583650158284299689911494321609500202207409395401667120588672198696216115747280014827226052519192733457223028216327023836705797507400334372932229792313914593455760615382057662215625215831004780891018828836708874630447606656768545856124724887068788639216043236506760321155701839620691414760971163821423276718858477782227368427312510901766106321501261737768156049468757979779961050917564497588541581106340093734992336711642269449385427436891228546688830398966295346225517623903403381221294596882130132128063038469664092857957452880066685594337252316160526822841396966837712509040580963246615646329014008056003494846333857192920315079034767714604634213293850171809641541161084175685934010649938879452239216284916508113289481657455618182419789963365101531566157989547294904602213719266799737627508286737107030991493372656795104739963323593888013888151269041631610106601285764096253431486515251436538522632868997658207725730360693665058276248205722844411553019896482484014271916838838666184805226286926632921755353171667588047601232064457908017189072591149230326496797515483297431724719262999322671817649789353078180868314334656899113754719810249735424387651055625000378186166754808884624793086723713043912119022686432857753910870473922973824567318813771409397800990116345105261185564608633023531097134492241088879235834561289311477922360796051483174052916024738685870988093481652099690513062555965268499177735533830555068518472255803431960383391981742873536179230361911684725282138593271654774090694445572908648420622291603788257345367943624125348382578742398375566534102374444129115777822147227557454652933567008025798380890808137677536875679536582321019535239485290278999725284038157178328857918287873334729053610985181778243749667261253073182653735806110803967136989259757304598596513318553922589743083158665984762183678554495036520585671670261996751074630908970011968683476706372601091463147665269978668451934338973784064260776999849141175588073854701768260070551414458205567321788519393272204445457279699216125711444421688818906551780711338345685891763622563621872789398911927743442209014113594143520633242156008543544567021911682431225038757550753025042632041885664426275344200926937915221090796765069193500419150779306596086872339473417537448488998479874013802843362016751494490934641224669459040319557652237651374773956100129661000537795010085451432825648641801000586199400441047548357888354316509524184255126967589022601904405246573455725355727077725509270691001355175034062411259914611348906286115588986781040706439390095404423168527647068863456332903249466126608776674298545530988874919500514380342164264287756106475883523293610212958936152214439040821319759950823558881990989214354418998297938495674073520727080958918678451500928109369078550575076424889024083407174783207266844516450277258684551240209289497883238918990248187302218704282107628238578833861116632384420296161665626156779519231464749453743184504928184877280037083439718110650015475944373312551794859975036848606032016639161139914844710157372765271710660362906768365017022437063812255320417172469119604202529266348640860794379671277546144435085111424865836289829247792384228009714654563508953485975069055256511033641019281409377741205259732864382871882240382873858338042460990646815800983149081078923031359851405517574727921876384807762589089643775531674350617899973026598236986346491580077307844151088980850553177172653668394812764428259378597416045158822441466604852194802864640327740638007839850683750371149348889302366686669431935072956713607564498078711520307483603974807286320742791233443631462993603775048724072353792956216535236028073549464038328104704585229357021592604847180728430950918779953774534288897807900937470916427747153132572438368298805526592321739378063625796535333785425862288140613064616306567814995116138159150162640668561972413082063460186956728910545779383713621289698662259715088935935359200057982195128618609668161325458607917739895427718000322768572073510922114141645126613499166818848230065481191231656267210350153681698743143315641122614640640405939686115710287669781695206046932668016404434525683229427267179265609492636524240051231626501666279010830699161569544059911931648813379927476379314764445556844329277902195558626960719079121729648112167925431941521053254329623745516328371877259329424690947418618191372410380021430147196266392043245359591314479980817589906693246998939430356798526132003414659824437493983346292495315046328722531715227388722804347406925966020545145503017337868189835737531455809677146978716286991074583541253805383738120974538086843865051845331269447681785442416066242733177030092678056010332118517924610428799326902013314651601698984510391371615028692519683738234562582954235718127456575635168831105146029383135259350366691527870127364054453790052002432744295577946763907874409128385952392867429478046205159265159440393861210720617925786246284492314068041504857290342314189128975619152346829115173770571041108411550263622061520641256197151743790227030452892801198857184096757652541922488474736711913013798262966137659815705649555544441011634630845728559485887850084166354418932766592601142841690344579221788222611547362947152546699892863249385807282001903832554103202248687461589100723611740025952160820016823653264363894904492390306696205335805379096353587870630013374844579808988529923586798219941259562190596865829333232423848214896514350198996495801359614080011226948994828135671830801470168352470130477442315657289432077992065041830193422013876686471732224622105599039470901623946509168066743609171174872608310176364855400259141025193945839866897857682452911776617637086196419125547809929273182951271630319192413029892536872489832440922013146688176626180323607436298514304800876681609768866478727281323057767300866555666986623392338780764100667474272353819302345516459861630872789735457230392429504273831492189739756560675200936195660327587487926271878507653747087323080082990329976597762379054572371184661394628178482984311866244282356465200291915686387909903208206767643227793726955054003111563457556804609613505957813194433449067065146199288888726828170691103550467759878785175920403282464025254385583727703905443176405732874769359727725776400605573833885060321052496867236870677420145562660936888551509701830608573406091215345516045016252159124151209776034001129769319260941515286582463716435452358683915524190369046956138517857105808241741961255856477574291472186447852414211552376335201258524764870766403622229150682792750950281469256185122320870670608880461851946399073200362414899811727563054159934103452863533369520760251122507910077738115589788881114443211768860687685165952197758720449055809616431033833855120007198718495562182894878775913481319014984683698061777541095736158394796782497741863134336323616561523750523439581013230253011555248540131668559070523318181330782016532208382076334583119606961845192925749578606035009468305385805832173983225928546178691776662742320115129533655555471981149902414597470592682948784521463697280996669908163038912387638741789434723111126738724038028249614491122762546125020073288442527014684239974285686044371729444491451262459276835228541746761379962768893009637597395901149122079657206895832322042206380173720620202420747182123727628832588680119107691246534882237504127082668917193915336459048800186843212973365517088359516860476601868520142757501267052686360834115937522633940578706421876302847324655376937703135533459432993233242573421598366541074241032389709078442907950111519016267882414790287501436907542784697301347742296403868155832283883113318061476011509202494678006012400782736361225520124029850507987557478919887446047788983715064773162762616174392600077068348089123332736319621574695449402034701717428386485847299489972006935140447256667798291851527166216810258846504307460422790709283669452122750446058223767371375789553887439198902973035166673743709461803435196868019161442788879392793775042469356037288215886477589098180106332416496045419266138761144393493418257644151177512400171090167748027605097262766048790932046643695883199196502334423043020992743845539362184290301445919264139426809766503725960488849364822056030553187621705989854998653923884922065232962666949975069331096611445518287884265516298762260542109091782585415952464895954071668438811707553455216796211351368580119445988879118326552644113317021011963808448984661698269153967583297972204435477391946646998411372854096911535411805308406125785574982467835873669457191416711620661820753431673156167193876451562187923304152340468235660277347500271247719170265381884173682264477924250867892015835327568841684589909513197228267673733751534666437201712309537673023872119290471913473826281008356546157975604830635133400128695136966964606323310647772685544879152544791756190605539805967614630598809963507915937880539959707275827598070718015052144647584123680927958633532996110033910989725455070136760891765070882569133074429733464412674338692001895506675065360728477308208950831313268721597053775818985696372197694752029299271023692398012947943343853142741740538539076532450956064305319536839129768867740835151320856943415800588349441457293744367444837832140390148053379093401582477728552782002820461501545848916439016330606425136756628075400389814279612165030017570592134754739438875023341703820036729777140881898621441291949354700289963150219034872993420796278043243564159458522715638519159850237811967333633907460599568868695915661338423932716993073238708079010702930656421861737616004424017249443126283819195377048889967691888401882234616437786928684427671852123703165957591044013655386232565979178587362802022591024666167126625715047846550867953172874861770132704140339719488576749205008859324135398228238758215925993682651176519278398308948499288575633362592339028275730875789452809824069583705826248801933542447384456196275512010513237064055531844309925802729597275070891629762057314559336184299879592483169259869404362120941089956929740002771336586261704402782689654193508898366930269413411555239201703490790831143825021624326257983806496006231502215781373856319214788366300061388019208843415828460982019708509685439269014476203521278233916643980693623916325894795097305315677202369626726868087620138165400835748798056160578713832484137309190667159521234191747668357270428148813113873042074140617947473535584851447078635676485937578045515691115506592586920715201583050469605486290715768208001052753016449734420591676481685864017510480045026955392833538054750188992570641037471302155565188607192965603300720780300277976377432069911073513433070311100807809166214264924358936324071428523969648354119599591750714659523339537901992386985815488256400300216133151680535973366641806224439102680690621527157766059773339752011952092603955542199864388591636580958172144812593490999987324254935331942727498118241152430768357655199324469636335898243477048277889263054663640027266457478435943999037067602799722955181481245935112548225146142237589005355916196351827444218841507162449987204289616369700969895423464802874557954309857418891955664338721904721346228228472953177554923995409326875363344903660799298514458369135870043335390155611966028728984321683835957289207514697422725837256587521995887678721206508289505429079196640417755810893825973078144257898386642924280315056522432242931545932343768817615828390703081734307972574290525951689364670010534210847048795428120045550504443369075751936363887115697489207409927609198201741494985102859328696613496104294319938475277415370120340837313516961259601104437226067180771797671353057090724138154225101511205484402285009952610277048610746395845283960931175751294081835794150910417921185386501988473589967321489258023603862517839277093696375392193443209032742572527432862118959462038283626295127761791617930692865043054298110609349630424994040951581926934826559814750324045209557623550688473700124854582823437149026893138794533767330578091107670309775323529963827321770795502785293687852213809198392641187352855706506698185128475279509426994114032245109562697536455464749057735035619374554490775129252241120323217670248485038951323703636556921735840337089474754676947415893170812026406932583363763569651484827911359347548069379028320683079643178996303772010667065840867270592830906290933227854084156797728278335110980052153846417303937387141642225905407851491639170538676867429587977521592063506612041619856523683126606320211606629358944451209456057771166018322324842281293535717674552656092988809297524640337462909704195538091950319571454139662601231251532000565687405287770070197400267226240262922546046005375654335271644663069025895902805864591883238410981459028709934233272684382203963086300068479313610567939446932593627858708247450465148126812128502992710877938747730917604333609890889688930790170065546059658100552534254893961612502468430047494194572555587719598480385066077954378880544704311523348251432605802800822136957619797663260982198330992794627088125910331492052785046320142134345913655402798935574347550290856050020254288612475334722505170831959162444859944373025530794004680529249077689528164362073218549153265387328599226431835822279528840176591797302007629604373519255891776207440708227764239627812017282623391701172511746803655553819647064894267802252399194068417415265756517311259820158048208252896696687525834747510379379629167416549613382933550301051098507667299318312234484538474003621727069058972734677913691147574099500783512797967542098439629631019511210440443902368520879691180187272497176458185168921687129823654188336328346435574317335888235644333927892521010218321287029796793054988911032498798897329201990149259941513214970129793867533960111829570670351721558266280608749593980777072651336474845868833235462813800740716452160270160955673921583889477878422073655947402246985747611498261795570428094710948836202122460616192564331014643742406451208234149679046904864672643237905843323902920652813916219757315906384474493085878568081703471983269258622445609447726647403187184592148602662577106615786791980843992818736491510469059654024119599856209033999630885231287368966614764384645502412656796987631695663730013191301346438056485870798216495532528173831495768337956937623392792186904499097206332562164499699093292379686564525894172345314191344239108750825204625863602421675724934041694168988176233777975389547620966446488809338499178996392387784866820055558839832047366200503349484050988199028628792850843856142282979144247966712934379249110111051378064438207999634668947546833657209542714697081223418399808142715721705912721679886845914603750136424704815469144574758944732707323792831699866272330535787031583294356350502553722574072347287841199678468110724173936898437091645058497223632371968266698363953429793931356173338264019356621521528678945542260775287792539720421730804764261767291393093404480241869469731072752784586985543358356240788054225860406936453873467415994634977449325523404994081175279008086670125110576590455944321701437694329090564246203449476670356199229111752181062242153138236269426116630840521118569966161795016788325382398765401309671565208358569069016731152442948217545752703965559641242900053440384706029076588663262811913643586606512744910138445108506440460061830625466682327511972804462439303290829581246370947592803578236381787985693851239975180251046550527378696984276081837636178587753673361881304930420819800831284605404115045276575524301622055511690172531101001705341959616469012323329214187498706705467160252630726262327252531333475102470780896253896016142804941069742977557487571176326904733559484706483655963764350522858329808418125683855734125290536871037566771472232667877415607269760569349663386049321297993626439576239653005388435338177147146689533180185092407542669374016596819196139735846684814375930749959812430422928412699810438483790849966246819506063593207777028112976845757746447162877306831572702031020665538760242900242905333302990496742273488380117715478994757754469424767359346624569819081128209009593334789265102581857835967587430622565266143011789960526141062444276459195200877568146561701797269905655529294035671936627548593317536435389032620992700832432847555013227225173652087535509243954369532051821444172429441451919954183690436141488986517039344469107084753978444178482502871159828577402781732543543064846009492954456992801558776281487715621176344741783555403834122883727612321288703127600164689834095294555366553063619551476411610515041511448865564285792578515565241914925670849330336348065259867503145274452843550883735765262473425491957669134147465987000148265722159918697143610132959759030098077230299646049496368186127953552386267143981137927280128894547349960436799893577958416166853600890072259601479089695673504740053958951023465181156766551981173464153955495909004801591519258546219188202101691855128886997445830861070407471200489054494272291278676567613339974865707377815867985779106753317493976225033082116443838010628039740257216643435264621924276944044316547923829058881082350949008832282770152862290320309115164512440806051690475152617889192450774491733964282636022739894343977390724598520469953759105082385934465069836168198534301100921903027399831827676350653016874801781596536416060410100280542234053427604901047661452661738690442778916599938496067867153992289228508550369780843697309958792719054207163346666487925013079602831258979771387010790007451854617184934274338426725815468213762095472135267313668323409060198850042786683707839762022811885319605347763823547964584260650132603722433427668926284827159727914015621589332893431602309053048843416033175303760459200755140905276420714332754814334322461136634032548144962442578460136768100626849046247203558659809419350403722023803726270275088460711243649500518724056323227983615473138771215903937145804397163485486070777236824007340081876584321692134979442309652679596403454645533125612308717685775752968630116803256410002889019469959340311068660336661026858576248214279368213082244848709082345554148176137370522714385984811512857182496225480471009861311953067973214176421388195899644624770609642719629117857985043413014079302269735020278796789989667515535384510961464596230971945828770286695091716388330750576884465178370334744784000648243357125221628567907173386698449986793502876545090019952079737277272418402123205060483234793008997430308350279073997545071846829032024478632558905718196399137994504169312399987167505049552635315601423143011000416704060550384590233796567362011757008350372281800679279115663011203781852362278233281341612265891569661216391824137698968506602763766760356910433524003754704878876334236331466279553499861396233312139859496194486849781327862460444305206217838814761296312920069026285553295877928118743264244830268503919152851803512051488512148587302272657878021217585869986313078577861408023931838067988160570126032638291809401795694984774778212653339958957259475414537347551144317193237955484101363714191581489120509118903988677136007611771487746247533265273296202861931873027010277933077376799883119918787334723718311770657206288497445293865886176818515951282819501627934972614007100133429254561750831406807259493937478621990537098439664334047245037156079853237424784931335418410603820755376915951654678864321326793617206459914168644265687330576286870902050806576841274875334506401619727061218720648619972891892887851401386175023940295647223069542531976684836937542472104445854219817064113937336611123773328000362234702250030022422488946048775402519648047603602543855975260373125848025059821037938273821458870362386196131779719322681504537905564415231066898429559717185161408200985680727503616420721422640960141292916772155811856325137266431544522904139502315608435248940585177840942399635024832005863121870374805136331452689047766050241087142204880522450773650582956113805261070233536018631237441090764956930284488252629058529035882572290931206913617365734223925546358915551493234132834987288794434325019388711446009974325822279776840871712759669345306254719113842606227401708518339218490202917019697264273974733866456300248410446774248690623247870925558230996723471722557733397227445186984858858852537580368545762690724014947082911871598546578940386238349209537493599193850388772479589159100232543008121269312486527723958906829192750275377566348066114855176650151909314068194550788869118337779519110716354359090966249627618314680139101989855672162258994254493043093480935091979103115810695670342089085612440907190072354612205460556183318535026159697449615679862051773623110120957529400450649975093989113132995713721436929125925082874074410441049428744563056584237403008008865253653537639304528165814505456225472614623371621722338027173132180252923260758160412032888943454196641112165630522281607314789393355915833680012571765738166622838600259216699313523234059937695286250308276628788360496161087396334107015981803410424330279291203848811288551607265763321215402965602978967525271340717217439579702240666406279682359358530545481071149004957426201657163294598515505478497387033065112766524790315617958522691512884613602674315050019769278573990169389177224028133752799716989735818050337742988876602935043033370960695146428081122570394880409284473335075573794648993937956048454260322769835063772239206591523955913365921373614844673663884024488926708532869573052366533912031987993371666971636978961854820513982713933352946366254577631189206383926819282583666195275744073186692623492020719313295558419608596991134287576853451085657327069082052580938733571507116249103352414564379609675585667009079384021780097481919262621216321418621274529944603800737607802107765346649068473661071531498501850044161747911704608666887383124571236677649667876313496258647580875269709786651326739613935295802854343081102660211909506099245895260859555192968273096518186191280952546703249666965499927397076607781501492812519670045834933924533901737221311363769384883226908128220134325400785613807944091555624858106791918706919163166841894286908806719390275344995477442790903777731047793718864787707217708175080324025280772663773920800740636750131211707091377432351339366886682189663033941141738436859773332748203486198720549515483916672702927477784814858798805875737203631814439404999127242244695199548343810734685069244492146143154610192616639566296638292896404307528522135960185509925642738836681069755018603911102006589555235586538283352516574383985262600113390765825229498580301086079127619606989061293814648434336780370446947983978226717226252817898982444244517824586927027956480746766980467716250421748698836400723767104552558272518019773540416695610971019920050671669061521459965248129757280049298971071138592597820546132368700032137612500772154515381530416068388665998602940821708947171471977204757693111983319591527411766171947396458479124522837040205435301307454760443760174075979057565116334483314478447771885335928553168961291388493254399823299214487625284343134792265994377024742307266043986778983749883329179833011149764533343150614569054975537153432392241438241871875804519434988343381835370509911238173579951051982627938713296111568375511024987130724426609688739159384283664381854215347791237574622976740988495249442717365078086715871230106202422406471528765886717711865855463258790648431578524495719750128495010449218477536324991727387318880266719485630373732360274183827966553012247457843272694959092457224951693896080951835426082455176910949495426739080352389365832168115994768599186234144031685446747239165408263774173440582416376351708181101451210374336987625668942101844751130031433555449216424501991434663260155331020118957033519218217666347084720029660129008304327995776341337100958357724790445709677133228013372264483434074123422952088909927009356449997795517787784186500705986395466754316789858052679302570828081481831770285432855993131337622241732492518640341302870500169664601143717748415708801284136225937878033952668971017757814976516431390242799822415464108996772842312153231235447731054135990099731638821009026628067589142527672151584783187776257405400307297382545460896671629695027414493805419761964843336035031011092781528682470479566817846619018885464785597829649848522914523050837350113317047558243301386877852935289217031439026671218656271421813831187730900884196686116028208761117751625866285917115995551138119813284725046497822629152059326162471765677119834405917328086886935736575788520886088076783553135125352969600395554354393154240954030158823258444342459386166725305763268016634733127975358001724234307549857309274126450804483834709637148695914356615095852424774610493287862354133778794340774676156462880098661672653379433413972648760668109866137511270189866307547914304863709817588767475565843909768326163177863198424488358168632006954406612580665688320808609894102702981075939147358085185347844854785124415269961654181862995185913582991863080410684855604370085417761031539164945557964079312736644666856095833400315648255072929655016208232099545773273537124291707061502994307285333066136643563166654860712999706964485211770639743054334096837616964849309170264409638393978775867914092586215370333118667728201419273278090292369457255996187263407189556091805107658057454504770232789988319740033338874527396595575175653767510960346690645759981384634713795247552203676993677061566156595452310696208959419002759143773477661180868359220200201796988878663032505343266346341347655271299500370150958296991675712521507583305248942932272241608197620704304133896115066525275898138021525963801267449020045689343958357533815029794805634624585492727520322590373706077007043522764191827789027346280938419962221996108594241464413670324894341575702330430886258180165452462290670673811063077778436654912495020318654302972745937404950040344390679627401312142626345073809672624694191895360178590982698471339551581765095198403735073544448203571408387645113526118016869998868052724969377659752165924342352875076831494329544881231031262949752408927843193675977540910297451844196196640597449858754623795888518009533010677380681426170337839625745880345286290951104604489919188574543843495031220998182017515901491748251175230720703014351241449323295922031290049663926824527637645472444066215023326286773968396424754523948465430728676458214083829298879002749684607951686551226218289744218589122632709363256446090164574117397508674978343744436628733732020950086088912535138484585303184469196858941334224819709340354698717222475606937703355416126765053763546090765082950328526375897691780233538918672544986986513486559746035354439374889533030618794397327817453538914246328319180186064562818109557234582328515951726944213083504468467726196312335246133196776273541508076705493715250235062175646426405600194942367023766634231830352906703049900404296453425745270482195679765199544319203157070966524664922485752738889305456200070450255166165323603003839516338547869732124552847931762306244645400559915936936397974193627462055965208766102517578149270650699768172365165300092824973552908727898436671747481110782953642983865286222461302128943634630481307948036721927182176360327343613057937783763671807019090379331734341943531972911248080523950309187585526117956360688709896805622839455547867669721287784301581297889130415186751175102376042876426128856923879461237879547132444695103281578901059700857639019593160142195130731592437612754741034296800504883166534032398930198954844265603463098580559147549682021866040662649439178734441013536005231488880672891865332179319319692071203941332306312343243136943543650322365203169199873860900827942806599384220353439196135602113656051011778336968041504466125306440287757980265660709949160996418284394389972194837055784555953454658003763470767428437167538350147829000876218624905826652781127051843173274831474321801425803458325334178770493164198184138963386810799521090540417009665090903426090152411195414949562829742662962751383079896603050289063638017935164252003992270990494221329681028659451503980543044495223921847256706695163630606985454634072942847591653124340120021779360457886738035277791385332846202645909685081884759327633834797768404720459039228147285210945361023795697423827014120756924080297053328990881792118869853711793670109351054943174629938175297032004751240368139183122807753230697904972267150884640410243489205122861293998486543688600470899356467060932831125394800812249204311206238564515344350297908798186275355188189877136101459558447646285228796240870709856096974376870624102466591232370282765657965574539910936914816176487987358845882711156442930765745466604782440269950237531762194761317241029391659819924295949282156074286363353535349048974661383097576373093927236823527613000257583271419167808103738162255540761259318793448691512277697448797274066822078124284995601042188092120129213163931835027270188878109885015944091671352571803790494040542081249230104833384280300989687117057452592474265602203990155440941052456509047906548893959075460472373761364517549499857501835806198802884021663353527578951708975756226961562757932261285193630269014469890692713857554826128761000598699517287837823854801824034018378872404145853675679632951148764039407722366934370626256215194059116347220581561032707051106886851340712782102897711413965216328308325638168613441941250819735368733437549781424247416779176471431614958168271989843000632495441788791232626818257505097978772836309958026868236555700933340788510354402815979467538537666489021594192975255516345727368713243685143072633541177991595962265719923049190982199765105128492862426287196533159123186103380567994776334113254386021310539280489572333349546929395109684346770878201845073341354167758393487728068994375860683639056576898857550803744598580908342385566619138173947638524461519261606741082333404974792492602754182088574201093777801487747106632691449918473844456535202895152879066089700631484511038466980545601892114628545649268233532823984379153758945845073524480206146419275821357721439273995465456716795224848817190627304332377579022986623387697759416693589596525178560277943607657915840699254147140529880820914961537876719500676937104580697852918283355721757996760560840284174364707250958705434391575516325850464593313591260702819079685298434384282627658281278479645196116466167537802256595131659338720833403524453723444806455086472036705669969259424980052161174593535099931046798228225979597046530677744390602700718190882613323782976413106526331317755660048774312733875671756142158632150042553281324902887425864653658549747941862296272382639795221470123854727711646522151527591694404814779096340416287134023467644019925119692162231425869943659644007137007513037862702297515708248649653042961037696349908067565364675160659356580920975387366453404085925267490691563114034034088998855549746603201426335898141723200742923262752485557398029409068066119995307069113648552120332856629269927230225740302781769557450715531214499488716881933348846077008571229265601600961993670636037303676560278395531238196665773527517803809304531234474504091472957595585851920697299341565846343675229631786985417408941099447713865162117815595331148810152300082267945893499111048012268248348833043926793590066257326214708672238302536237598643812093279405008145448124365212680616836762976593665459551731314916275693058172897139888036702219918119218141330587091873246038537230690318061754012701898416603380505833852882282601819000051431133724565309677459171135576574036512008222977772590669228511794907707444127057275007462599714352278591844138929896712966830651511918089253002689888504662356683221444603766296870233143851754458111918550348581869533649842933057164611555232280404968419751963659293924456143470413435537473795452043395608183585681015422621561179981887329500306847892441834031274670342762443801299842858335654628896428008777603445097951050593446334971339135719919747323612343627660667119091145042572997081928207742085691846413643568195315756793761475892034344031167282319194491884375207764875954795051123444736553387188510142390163052709673632629829297656043211720225630916878410818705049325427592674537181434950175055553196717309040288834567995618366122335429527064351100596700866753488833577454829841046088293634727064671770083535357198529476957480168223820827260011905715576238016799140236811919511250868274459163430644416997237865436565705174374055264829973478682843782018609442165612044910843732632793972834914138774812317163648882593449744288144563963639067289038556309387425299609217431765995082483090256746863622377954411728773989772759991633298683162883296816458244360275117683859072302006136487321623791260158705775443286740464480932990518199070743062152978728520800539575517433773405841986980498684695701103664848386164585649631160582967866746592977274738035732131812285012567689991489974221206889370768618175449626207783655726556683554366038343957217391814496464981399448772573744339361130280118160812815808475400658042502976874796041326613850098392156417784068686724610962003707860651062448784957330682044059112468178772560560687914374895849449182253713735399862223733021601695649155796185957349687768727733471981410068833942207999527762071765131532203491848866928521914581504260794962524185103762957418876787529232870688510471869694768738203351143239566822990891544701534976153363888421872738122781156067414583538456693750767230578349340495014071983606877274072401954188260237506652375293509479292093819822836121302086150216573391241321301037621387099692912429367911187572299640758148293312569558095458334090766158006120361389347450549197515231882641234275624709885622892545257408887483589928368119913713974209110942703943739077862430646012950456069024041549077256439886608850136994575485235910030244518271718262096041707237083964265335808255465033281171685910551722394950681319590438660274891583838646733611383599088980404464793236522097394187915784236875204626442761386715438214325100275904001386415512767801387705024699365467739773813184717316424608648734270086221167178548281519003849955150889937419329115637014723150836510354321857897841924079111887528657202271666580018908685369351921570958251627540268989740317061276573670840960094789279307038206398648709981983159740369376822827131342107238634662678117674964146976263850192901517008301116427973075439651931559007512201243553421801623801020384412711803699793628378020294274826390723602664288330063768738645376575528538754917388791963600926199849817653194535342487025617556529326324919634447767194862326704350668864753955091472405437444583687742975803306018515837309848923555311241332644742140665250054531674123761037569748517912938821876384840951638281643312389012918729348076065380707882593832831721990709528132158819106664644978467465706331957648397230483827476826969024584226184698310230475591066880054493850839759152089154604758766712276768091335390827185985025981684980088643379719446682169631445461768518536379119542204238006620736813456802804044205847439885098966988446177505180416040507394610378529451157611445523088579576209028055493726144351606687692300321745888827087235480063722521100781512487121423539902414940319153906819827979157685303874241374113835595128999972152424255939875116460954121674865343051279243985351147217979740163400612944979957505948226553832129120313884275918838116572730489733715304884276971623901507685158097033167563577874958911116720575828488291376351431770215798900971564174563630252022696050673436776408132847416075487247943132761458013103900785729339082582808059881729158538406519607993562976507111757374088978227074814112710669167407466185346017009211768547261169496992942894728252277582994648937102212767169134992328811468436209771802155529681412045921038596657743443322337428487156864206993573932058454328204162441007322309673167334695429370474624688454344106455911197389526442147340573009463114313375517971742503006725775941313526099663326053909470629055654634652434621399298690284080940282804144300853895438250391205712408973501938235633584013581456397894227052863726451260782837824327362238204101961287924626022584312142275481873021816263365924916025945826821326522866446800151358539606681638343138545180133701295658686155103870029689323082198595916481643591817681140735348436859759403059396244637213727396322293105698093355011343443831982400024969668062280364678459779546196514726633821147281040721374642767771197770496598198239048141174180508892601532172847546271670017219752397447450841677414606022631074383941933286308185732377644319424580567013588516482634985641337192390954327780011141718671627481652889378210081578550935429809185464438451210392651921841319445004096591313240083531975964117377104167011347394069923477573959144555028930139688907920415964184678968036392989365576569571503262590394124163276148311619896962716354001850711446690320766220807198013801178260195523629824904706296843710948336975667735388948072856565835531818957639776354878317229520759528625632870915725839851117582327888820743413692732838505076020737924492653754000484880798491180467614101246121822985236621531626516824784341610667609147894319460694109761620247610693256327365515440621668065560436963829672317564727362175156068259714092606924303620264852099242426526592066538646867669135183352455556333796821672655572236998190940991177900397402054781563719880283512471248528279646610761198106842278729213428978131965693369023110988018004081963290969498823575974927376436738387887346674551988310457605518514376392307623177106826174079657662125901129227509083470305079359736996368383586283328885137531680910860225897169341148556470236249203609045611163811204264981856317713375741845122192947204174304983670068472415199891159465916164877176949848951599350435553416875167162984754918645792764818796950743380575821116430335302640417071522729765022863672701886115811203351583591407729632464353458067108421670517308959914324648508754547012035895193549497321691174216185638832535338191708665326224006103999437164016964573828975868557811249871533514388343107617700567543019826081559754345850712673553572909966261668181581390271533786866547079351523573673660344838187980862871348546298203277834457724000659776556381646340631120823569618586365739583512128915560496964682741074325774417101241571720413730788998009121935688064870741387510022767187050389659063137411571224565081243677164211905317495285335482765377787414318053344889474841744450309873419988248097818990204404110689844300700587865467283940851803789664728525947471233262166426093427802486008714351280449737994324572947819839608525246979756825146327315205870234626779643744657966245309569552428093338860236232450663148931658531896507035839212747483234216126882673689526347635738804347626882642170024208180167647044009299894013172357012126127277758844910659857021970117454602865057788404214133143099331324928528432667233618466507902341218493339602782211302890987937540485730889102101489130366898887021399556635429026941928644965445230694656974825992023706784023150932703726163979167345848506086665166981619752842608561672303582029818393840167278740779016023498331310261160290511496771409192606731649926570820317037516276553110071052732763486087529747065703891067079684778374604596466708172339190324061118288750102042587478622312627039300068349941168628107954118593830785510715980540564496986006925721062437879390993984805321013341958349965062591332999382909424814898772754683444074847487921752109713722010317384921655044029309470985979063780550493282017915840024703853500435780350851826110575815913757314145136131935420744160274457787438902980936052330031301808207712163352777502972440625886441536267139317862777265022625558104989131621024578711821503174829071324717261995667511800655114266679894676014906237848649189352050289520882385766729040763358425867244710870070141924719912916914821793194534142288492829743762156029759755404345727940676474374382206062038498728974100242799007993025358223403169741630318031348191141686073314769073146435082783547348710953546254679658679138990167145898826783657941108457242537017580131777876867418528934902652810753282029010144012378121534377341693195127593946228692087072491568358169110994139285923832228319867560732344681440862328530565040125279436993320475033488852493580744301300085570400167464954515916496885027540256486387555257773461115931481661508860271695433111721080556093489457577405398747333719201567393313219149339967412174222964140393219232961749334181833799475439715451962502750493410692382028167466146518034863273736407817138821346431967246459686860690795588064730618060476974040378565991723317899432499882990630708550034304373470060841714555658207745083100206694023978946782858951618427635678976131699196922893242534601626155075489053014368791815765576539194807787949226925583326363160794362940144358426868830418789071848543567572350771926682116888800139558442267767970279247915771077668012980243659921308489705238072749491608367040808976111176579728225711124910674704410411293723589348235269175460464690848011775056698799659569509728031544604878247269071615740275726074069693586442705052287226712631857653465627316298997891867906324259201715425573217457548453093010116220164013310348543703197961786962934722662487948388401492194722702377744326770340552054056323817623685494096547079443159790324084603197639829452082110329665366710055145799122635139975547594974233819413805069145393235388483427787293133933324230592554169144040144940614944083177385174746431014889498388867873761069512815841732909393498555172286143422484845167527018495760860338861985436660551703821081019499218866894937346733609533839000748334195458260898398470783372849210158020794532762837022473800776607738783681617622227431124224815468759627382699806609292436157538828501612124636592313457497328647568756060298770100883996825683318939756338268337828556867950102073479276197780373046351126198511213844737680124448952562558738170808074821988169138538717514366951022381293668342135558104035601852392025104021443316602447086224944183605166662276506188359409108751871226594292799694437372902681995627512012754996947365682181862624504296365833136446649153571208589447343784968692323141051772647902447275182404769694426318653933557700214725029426594969869031272371212918289923799977427487754490492386522628914963462674006929021150253694954800391353696935171228556533585542995172195818502332485969810299574497241528256452093323673390951698450342082553987263539692040089192226438870838859967280035583834873257956098232319589200311736997940433759319586035840976421364794274856294522113727039616943995835160441816188867722624785218163181995094648809519588213311144981913118730983184203836542410532231246967056941228433873824047102189682403009255347951154987766478442470005054830416392036539938350601382884657476552150439190719602285208586566652351955380115664623166061562831356651353664558780542828766366060513597112005602487229769565442279505726347524870323854942241673654056027349148185506393543991001726750123756052113585835105630079363671721170160757184276482235825962482504615779989880045838430307762757180561363563663527265913201234336222187070701225857460488913117020837595866116273421468261602817866212992341784498557919116723658507335629327503364112064866451816613406955056568002507324020822229885100925995626983792532547245921160385351537960393903111938514301966473924066817278298040098504562750475211670060181506378258541729320112989267313496981793250760816176060723660872243915979032386712849423659375384626747217209721571389036737723744238143456487486971653703895049941027010811638050571750807679011559856634833866417338021114842071964088730693134053770295537162989338100686962534299511689159989574499500614395340843159532909103398868109175828041344114368504354948393207005383566818231592587862585100067027319079900617574557802196483393181197971249097401982080699788493861941633014716036127695548793545577860327823124455094787537584556273314039337595342376977483826554190003672395838817288057523268182468918875296682800915181269123634178420487237606366680897474042154293438568853075177021314623392263086256515814762455306889548769135673520249207981844515691988993995218356848754003196000149674547268654986286196721867080495604167762654164620023243847009434362947161748164641792262456110509723071637435238055854600255258379266974367553980736314773937443265416323338855888150795858085098573697441234960801035788056851991712345153286011833419587053171141276268139067934600878436426077061304922505515136489707762396955811393228655610306661691858993160429364610249902692984667825002209764071602112735144059834776336448468708484690537353381556198898621682552821869316628937128435558607647656267455873168979997279421737876716949864266477793113268702097564858473527242754288805769308393968565768732189138308855433135848574190373281848933338373201574345837600988458238004229955828065340948505848738497750053379480600150402314601619836978239991040128722288317538886553952051635796584602498392205511556505725558712758873952781765092245531174795765838526183748790496907344408407201836037329992674285994819566390503275416603022526832564235354040772608593526172418800118153833940098930460198748137956929656154399026447468251683822556997146039921771085825800351428901649191357105970950574813063324643744582562281222277193937074425000884357525660735704886889139248199364643251849068862158249033821677033016675575180364054908032272713707904162373794930683722848705426576919192693614426574843131063412253783853809131054557886306753935111687700603663816355451191538013203849202694957642655085297527837425629084248753093984201344482247290884892416451013010494126230101330577535947627171461765926331388985459511429785589328028316032355209655081831564077347658122559410507918058497883007685151444460014228678517116119053226676556254558932835965742646543310189297484323533643534062289285677279173473764847885052821656366918112600808164167262186584523837735538821756350429128569040028061344116018071957090847015763586986076917579614995732853989126534087583852423542285075314635161316522711635660587305487913984390827110378737158381371321521288410566767863233602957357998274794076190762032784365731368832190394322379394202333964100002330418869516634552960566568410563750144106857155944509187475117658968481368480586231374907470455788558479959695441662392180484245102996162808000759413144744893853356997257227684999713516004918863889189424436471064710138792656291208828142242608072722192651103764301866311264921918869148972087023384056829320846997872557646740898456354319321039956320416993067690584288815656964025427227512232139858664797389713846622298499856168302648351750055622443225917056698097640487764523021088078025452187667860351566920285489185290162237885129683148467399173680452192572253698661121811172778129729405606299567853470533726341872928117506442215120602630531132341398623317080756738843347467764199256405008660802376237793945518208289210221810580151056639578685590542109308227125388978940746044446654918447267854724861231651371749911706756148746165539486893372754369689122692170729373134954760531169263479693874412072506705481226539685055442005840881495353350929554363542489481091071185840162976583793129418858279138020173549068229670116802718471766435264613746709473612874313543706040613478622145194395440375571149978766172865488983695181764860211224137271762471291677057636097087019270418828773529989062355114197790463200763052065882752157199713561010675861066188672067355649968770819595701127701913929577244990828117958666889572574152426539006134789398640130225599252447763026817984357050673983696198253557764951577661494648298446680597446586743474227769127452625157249301425703088785490201435078715898329569599400767074495539285911995318484330798068783707124379310480565088551409629431818708241466472779845756353603833986608394723898620247138657401154599237328991374014952145624983251543170363382699083333622020478511570487045005085453141642269532521180711592838591137177802964620803378292534783561387633190449799141127190356729398619399586593058360982500226905204645125887678753776027312158813172189093996085650212747717186079483817259203781578127967182095801294720772648355318154849277624826236130830578181788986172927709646877568586167847725048696773877315534855982288404940121142293285635053278417702164449579283158891625502377273726262459421405590459484124021108451938017270729811906841262208515805682443191138181113874255662007693355804604103802931405840150414126241030975118874433161891844827663693682070326643425950041335863272262113781522102433666643833590533097531095756616527784212831866234023962278986202772920697626826226600483251038349625534210667727596938051771254004771128993634812070401810448270589325352283293663098849818981657610572518789858017133240812520020774204008855507996846136055069843826269668511045748939091280014616804792687271700985819816997635202967272191305822745323548929296815037572967217266835145928522335938720159783910611539744678651696287006965597898329725353977472667659503184902667606117168121752361337746900760913387268134104474347212250310103901572363067083176392630136184954465559074159927449619377662323145641765402187712200024628844001112161784781035317556962067729755407651415428578530864921550779302506996373640694171603356419693576036308603306943036518829164185944406450616378505271762831240132073275687106699694683909623888356998621785531389433393486313998176383128445153053396374316319189649267225743189750388835624797536288642130989038138508998578863929803320140419271419691813205298952442313033687506166891697687522075610479316406575393412644864727000740670907296867957903076370425357795133417037559686791684159354497452435681414424045132575790913467877497830886455437985046072617113219986660498342911842606956935964873273689168902961205709816364646863152857228410635218835489163661279764608688327618098038206944290183113110905082937675986143475037824899217996728583077872330456147099399931389041023561796394563680840277280903380005130243555622966727854146324708708761016881647309210539625635355662339759409404803799846906437084659557237460986413224216741026244516484625662332546845889201097832943198628661098319411767206109067004704560485265812917417091834512986937304577882333741129811929286873588936553729185069339374309312530808733159558888775874160237512340080133564349619137731932208863893872886127873239937868719703948214661058272608087988926785552134390013651807669646479998461025543665599001795716108812630445325952016104072369640216718666794901106619537149407876986300350796770412114991688983471491865450488132478236566903844826103755284104834021459683222544468807535277679905354022483116488797749725087144137153313188849918430136331817917402931173525123206765745773002053779560194539990555111095001581229582343770657412782489459430158424625350051540811390287917516631401273712073678121766392563396208317636995935043451044493777801752917269372580576336517863860644267678732987338987527566293362795003577730520392573162047729023962886544819551054996206459152969167125429921812727825693915411429457108788048689924857308049021938273968331316806110951334665487104128964840740216611937685821167121508379956636796219307115155163185255437462511181034874898718456556085110347370743022180027237470262265641291071175544274537552948419765658760215485687716379480434212472441543810958993232276682376339134759671577274478490774354793021287298193824821793830575816266467470732935642680055053443595036828052454288595030760418446549115903060327210209615372173119947816932368977301065449118171272171444434248790305384807416296367321899861719816886827055825251175031557496977432180211004701250811854049638018405526079468219953425847569371047347996425744014583401670167777960558286100037654542213746500442439337528391939764060703725812797096109258791791388928989345099484125682597432476481061928457804805566250252609307315761313838287176548702976271442674834626067599425503075836817521875278232833416334455463614454145601005247674029285596402719271274697074058739593381343689308446591276051419526322489721757401383164210236686912696131852266937172956266575512709558422287632483169598250453985908115553010855831088779118608198051336707064228247607749396309999018472894349118529461806374197231949784027639094454102323481697141171002590157789164992264395150823437804166272799928777532966332438681864325802679081296291401215052178267854968947194799557119340362087528699746320091183675349304902949743626979457998187342163902586186568806333707202418716459016895873100430669116362880684637816789654946490114185661415639691786238083113437518145914253265520401478974936795144772236663881594192193082229233717573845506124136686202953134080973354290477548509168533667699488088335787487226083416456881576357885885082863518296763302330523134621619256756166867327475059976165529595238009846690041317274354760534464320121317133677223681431892148548176813646140008611030022333408468748680321056152474894751091792114228313460540936758556425203631756109900663228846167184593482028913493232012280110562383493905353432790840540588788329662510624767598194441469457102651365060357027729132430717612882884872254354969337467068846475486549702217466122040038352060399723711048640505741785727366672313022036512784375865041818184114036990559237845563702674638875852948733955048456888860321913517187324693353274438721641514904699213915092225422031547349082746741544294874210896019700154555208357174280851464439623316107720492643389035191693297965998816570631064812762082476897119122854357572435062492076274674742339975837325559356679678850608155983121558433216502380592305202097798030107509765202180563637818017861110047246229853525855392287881262032743455503608341504551001172874658691931205384802517138176248806068185899104202557218330503521875617013145415970318374632083749476612361472902523001255944483761229976932252794888859586006465606814293000894242637220562918777408788152281466281803488186643621049169387675735923101013766401054953083080517003288982731761303481917009645490000520491953892496725031081959946132617995379609854866129693828498361375713847183497933473223498552285346438186326125162187512596997037328883875623885244959239179316729287881604872019250839815658829369783460478807685288423417686813179412275510698080255315428065456674012897297646367278402596621025459198021452835145384630854971344866806412696383269116186691597017306715492198041005973243969861584963592551312796825223578636262911915459095584125531567255949194427001070160165160623741544954775283215327153355464182868182114029529818129775513528408458261977015628466766948086474990479019983027335394597349603760791794577744175045150190591597168283438612872319862845958716771425929181776505707395117062126807512885382589891658354819683608347726830181439021032837602486282476179459720774708660892688917769634477590047410020864724511085555316571750191836201998145095216831792659121876827657238507604411578574198960534716894727107376123764120389241996873053244210696400144071081976287217995919914448531657143670358696541291291807211554088051449037547224731389352768538491807259886738486366045464309353270789291378974761512914472166327205370374310065710126905992890491067160973764415498988222393021755006586243979729218897853645702580680777970984239773500937533387124694870840846169234389597751505433083564593205766021124264141900448497674718677894938882582883338454279269841387978629545790179340754474772622424279203058811959271732200767143094999462611732565240093929146163788000990512435239881051577122631038756055203873758866582990865975309540007813587026221507277478013179370118589528703138779730128624699260003312530793530661888850112428345386330674190200008499283980223162312375529291352910577968587213378384458149291934444107236509619569474282468851570372671206081133647099510113911517201737368615016170794373418538498087529424078511988017217034773971881504663684557604439579830132667135431177103671476303925860983241390873658601694061754444399097203248376140071497326624572076486234577543856977397365484216039930265343508735163559487024458183354742493110340027543100433355000364389826900704345319290162190582712422261001683304721804493249783732949489975224575781095166011310315444660933109329823279280012663374091062776266100052212128497586519237875251111143866222650448626908705506796874149772286971380813354629976790714566955737442984099158807198110864917896763367116640208237919612031665326311142348334830266694145237387446352279487761111495492067359105515216757678106536146853848684869163734061778851096836921297756172868098675708082032473426921338728177783442027912188811844979562272723466444044406152943105977072625159627837490090387683749727659069622863285816547244110616160896247257053551408943823841372987758101656389924043835247029035673204709561379712839813280612688230227169225048603999001753039940845310016407240956463634910943752625479048397885027805000952454307064196111209441823810221416937658071083605271089213378706101645985704687797313800428769192293172151908818435136055579649938484901014205276223941840796195326323310408021749145785466837040624372753459912605301180710781787443405220586426326759770607160933786167114754851364792764270193193758088740564226930408795889715698547861089838368787393084378586557792605813370188313243887473995884517544261028992022437068642517751757215695474202353775799086686391667796537759632832242826837181119814693739567437446864014960717330701984433266991722144291775291513505903295754214954555825356539587999404204810190198105440412188963316484976183612883709029981394845627040781788507948791672114507680284011485951559751336672369872584232116043151346215498771063043412277525085156558494089154511164242940062072301583140490197781767206592960296691138241820863561031014527470044486581587692352076948346027279247719878342782099846165838331893392463659425848150514738426660636403975621563691977087171825318653676311507181722021460159862667294870277877726520587217127267080230674878379414640447829315527259188546681590604888304481129074356836149554388291067876455420931976653211436919718593079072113017192220038892182219961527905746462483098709340983051327910201264592791502956024393763370224339130560171190262489203842627103707365623864426612428352556334646618716870679366287601448724886261889031326644415713974477661871867246649413585920520281486819398667662279823357146685650483939451375958375695128302761953539451942549131999216165965540425010278845003295780636146803271126342105025906236075348411957451154057229207201222399122847987965235191173852412617604457278203924445370713603463567467047298856677943073643440416820763819792587741839735328457508376123817226638776645410506801441135963255878685842987734832771957650294992831567401315812560247739001043419682322011014260351237431748080633732828262064671627839432547936261504353479000686503412807912265282208994392333571749743685552072855234138457152477362755364508692501365625420803574031505723871656403793647766703968589317398700693154382697154452824495522206750815790608992783390570725289629675319250016165107847712899461395700570838131049460009736596115405274800904174382682015343492199007765153473896324310279292737460362084605019187106487580541457547587562474660930487696769139985677747744252903053994096335449328052445526560552117025271937388197471190590293301214102883261323004226882216798508501624575194713610576415963026959011023680727528630743527968389340727362203304721860787472768414200766978981939502985763720426464427536873560545499561345290181909088748906884930975161156460072220342220113014802102387696519738635015301194533587965084164148182604674034133114205858749904253229842173877825511071320799537224036732442964974783730394814563206966781799934978160108201200841451373247167927592129191124633636552631479690830882829636560596673394301728379600601477001084612918196419985608649501712435098019647053669399419814324628368313044920130200688914419499691986821459514746855142464555963113678401043622074837150656896302529855116147934194429891601389148245330189106803684767350869222145397091825637100696837994908794849147797662877408938737503700112565192304140403933639751788725246606524415820640395362802109622065467245774043250654498736812785302334175666538813030720092894026986708965792568907261179233252364322120600767826587706813914354370531225169027691375047756357940189759084869834178159296889469864993211011170716513568713403394882589471275660358593259198635727527239055828580592251980522119464184605341720055703914129295113718760651724369129848492553892053913376265641018216418210540449921723080477539107617167269846045138387364526757457676475979747427749958802184230659475631383463173244155110556619605025752073298005333746629184281232106257623389997056402287251041490695572267359790410559174417022825215085264243634072435989827494062662941412432135283072245959237879590653320866340969987370118689768070427738485649380402350784276193245975350480072123773332493027044715276832694595337570626248323868548642634259912680391551033412749580716832458155431022212448355029768873286737761109061312282738469758908044861267015421045019545130475101824601715782368945785468667064385134030030179212242359902562971505121113667819723711191441578363421307199547414247046601215884672165327222872825075498469316677178540518878477415144067990992927396154541835691409865321500570557577073532686570737131094485198519668862662379610527320757176110939521326699051895933870146728198049152400667865528313860602047431470388614969497657996884335855275902411508936223939610568668078835691747123838124555663362657389702106210999932527716967916252981667582647351730945987120628036240053288628629384064964191340600161192115420623706547088108494543004928090059348106588170009584051531566462294264443610853074143603088530295312128761567825873091692404978214646083422196473781714320228442859952818870213803805677264397053425618508196575810402680150415461090021605129148965561001888626351068807503177094607972814654209930643260852529850954800985721939664646127577658762442074197147037718026454961357558167435096013474253290200093205242310776271867115762562131509199884143603179275475590342949792745422119559995275626576245420726254400456381449163959817546934152695592935548653067950792425607158766712834508912764796322572970203631836393449875966396485953589102418315114423111179188748544775564226071733109323651770445637642473143638739602850307132229415862532344423086404549264777045675424803994437977557540725284950190468319138322656940908952859174287378875969439083803789963453298359150556131067878367742220137787290361926537707061847663488780253078590623338443275323465397255841809101317824529104849351014393233239019908087596349670427218723629652413003506129572030232249413358156355000376130852085308892833292436160278315435509048283804119230682282636573815949789330762644655025262816814154958286473329420429410533822800702505404525018158854569347783072748811890730758863411946910742398471598349058152681331236033256662037159438391051239253383037221135917751229951666690877361063432913365322047615386343182463118555191855247534022536269404703346025977082055740863023440013699719537274234168971546057616041016327875234608165097328299401199115619682974903801936591422934674723174302023199041736181757574864180879476362222565723190652169958807516185992703401442586166224673481688953132157974610668031697905628822037440869207234602115379426300325068917281194681083869761536612438888804497131338884966492375261142830155881559001425929490643989455239876419580250005789283204316076266188657792396507298119735818979896912843684903316753697631101200279758188631584322251434819021150902362951459875969355337151828642586851845544703018486294268785553925625764268293389562505993429051356624052576235831271078528896105654321234083064641833669701623723066836272145277009063743411300157942869345068129125272003487332492152255363151959084473515706187189133729271640156155332152384838260671899282517296170099081065730005210842253811211217508080017277815288899757140162151280560842352627633386349787860233473579836124125244044787295474806209788622093266407754531110901297798397061063475418724960109900431341530894841844192724926366162707986484101620578274157718702235829518789295414931674224806345000492968942406416953163822737616576259625760618567942452712626074042706578964959065249751632025503921291818182312088761911338849331156810638728543861213054711960556483046186894854906674597001760933684271907303627767523518857496606836119623919795035588063320090393942564836901003217273064135556797077347725918574326072087940144884335082694185676376471212327096357716703173286659455244619176820403046939670912842233966060056153022643816433622251519449220150130510724629954758601274553784477444682314051119412723937298863763486323668989026193854179742310258734824788302103179789043613074540312627160560816704709131613170566926135641120447324705851303038088071296318444078135901038816050028572544387030229922849965271340623333720025081900583401304871669869481298535487726750496864884210878866512660293171889243218039203682110004242140357581929993972111887606209010404347663183117466312289281883933992676652178804933756393746470234229166395364217944078720548291163221625477119733289766871507120832878517297411443380838100183608780637896587961051384155731590003940680748633697250358538393146291578803869329617723564691374244806070595892912008102687722300022479092441354724769465411805899010823407835759476058075034451066328488948653718273890578619327132975936261375625401688511863707215626135878561825239231812202326215370336339803558843842872887792393575539681660272476648690773718985228013091981183571417512019883887088762771750742298430211903562290391543011657866814173953382185352701816917656798536846736465564450441989321254433699099763080636224795097130022713615267368149321497162422515528199294582496469393590261244406843570475524803154495972827891771719045283976458196462310271065251567025816187513543016508557150307226055174508168594763163391309182606024438438763892838981021098083185260630659171448368771306207083368891433322247274592653142022167703879345493804796918463726792894924319890321387502323355895693296739988502884021915936862022558310954015896273735100030542574331339201536125902449687939910858638618502292668274924571900846673696557223158500125140971431552571077414645779760879208185727505248675539783156414270465613150914340647819513563695146616563089993962983926275000027045950872844115721962547335877491416942423943010577850244227092462329781540813803302547189488646806551888527828361692887261493917798381101652256273444927406956962391363334513358544451669971890674188373974784293759676202009245650513063675029849967133811196401270193925773480512654583863770686004271674432539437982218385261257479761031753038396070995250862099075797824604430851690499095023504067802836087604604145337240452494155198353115181689833841335394947939689700286189356957781041591864612543114222044725952984993299961888985868310817965714011576953692519445846223737421323437821541273453179769592134394034791446401373787962980672448993888313485259629132005624768049789599892488326402835288416816819918153575765654321609130656031563482673335745562075594423695691874305446121826019026886517711829675076038416118282237408197095414783195934038021795683428337891944170131119591871267329289914182823736127704988980359949759065481327971695568572584059018111276669438244856022020236266936942877369375068267963928172586759350953233798260255386509778956110426477985222557146030517238752473311708741273209778118364026826911995953623258132376073061659521145272057678407982809260710754881047244671979041888019983326662856852417935327475427596390188092654717268994565136856895016789381955428839569804894925472336982023829321400380168305652836575938348140776093287655882484251110505471149147962076389812071426903684828869482900727770290972450555422571096435457124140272497767574824907369581072513721578138751494983121266157564855220734116190333988049170313652067055738240004231154820859665807801668394584420574219213468803566737917994899777256804585750950175927916760826249469808281027757594858769568916193591736273565896759483798265363840854314083945272943094145159339852537328643528012739181794835007842682865101847869063015624992355945133146749399963588889380954127766382594539295907067989163530274860673282645622558900485665320786632591602995835175096033192012455746554267927960298197381397003290699691724540042130414807967134828517521262687702956173825257315370760117370192266660519764445733777866608655201210435774825184273407623222321819974797511630538659137255747156333297344761500183836642683868071031752342722274662269290780724688718539041157036662346965368922849611536574421517227557762549924413076836371781796949639488047865652566710083844380378972547413159015310228457716733449989741830878108068423522558349104921793215394528262847724431420665059012575416132859869131084560186328266916622623388507674143062032792577452310554809718768612990352035684930575366661021051088585528535313164190135317935374852869100122318820957701263275104710634534895033617236486386240290520656366320565298355292889371543157634963156049495611941153067705776554958463802420029922833201830845186886781541063492130362973761936214262912007047112092734352059669455509469692400496605757009254985971632890373981471028698062952099705146041749038859430209331191204619487450196013720364934010439926674519595786510429787008239392413469927149798928832878541882143526255712691765250656017798388193305403351773205685227416657493236556571315831501817072360538213099842549151735154184318236982519223339485633249244763056289580747266484189340523202111813694549332987807242295015232478997113883756650694017348816504188297741342268358690543464783064667504424978980400648672616001695577465597785213046328754307405484198070984030623086735538879271664102138504540043216486630595907269671621759605985721229943261109771752061235029353711931480763856808346850915634790661702411901576274968529451848944707251576927511231163129545443048328545082251008134739411916365244789848391586673162625216814053600087244993667683495711001125951868456516550144767113613992670347389581475069013228303769346211648551683617273343768600070760887606918451089354983882203657202027734765363941868397392028902677490233744665971840654487296628679616474320154579683874375478425402440090964763601692358621675354423018505517255280184072911500635133792704993425227421001109461989196535801117546310898027187265442775031643195774017613176940553442480971398667773925200418687744092448903914160608678623459189335066316933653836618860520799108771183646689315562965795917941520150618580093767795360524316659596583126393647628305180941898521087262935390327665668345700303566631899203347348325419560128141739617382385371804640041155561593720414554738287095861190531565356830192750608394862106091177703767047365315252828720688424990595561808572335504467512765282895610828083230490904894553236123326798044579778678034033627125129251556381435859527504245819000500000047501874729208809563199748537063272150161588207201791567909714363790506693308852520738962457220889794625422681594058462620195731823546659169640285624014028538433901555697376534218732078410049526179132066201618181521937755868573926216527163855729999562138216259544833177735630894746805858468449859864495015774076559558772508466347995494312700406352488147625985613738631414952463124978717151635097890832000195037233919177963201466313956345676329153093531171833275148361150050294235945465630251474049326722856682499328733072299701550957080543785886469326514889980526449626535709173025137316434250570763403343121191291120747328207583360619281292326704636068557663115893751444252380236161534048858519736404622705589367704004381736437527501529242124746500232314141016394558458468999451143703499764794648208372508030730326940503437483547150706647527148387731511030284974754749416989725013550106632495197011196288648832839184429294345086079194322338112046233408061137280981360650080571814929026587051637641639550825787821988156243360462169617992504338235905558162955302695658763963425464460780134288247744450497864236821559088019834618920346486211800583434448994151766950488436137155787357427480492517675201111877873982649923476354703587945329533137509928648501014309441248566199099459197953904382101593721975990454266136952349436058894444948857440443680379634576870914784215312735699137334149663160760400127516333480422263738532940907530125000981528052037283268148640854090099380884122076432322021311443270106760902621638100129210616223621155413007520549420146752830340880668671182431477449894310243571951612416311919067541780797400908890496778580010074864819643585061036127166464519376541463920552279256906160916708114196860003925703946379718672006862660364698495561142196576557505719276348781544896027894811476136559868053267455177243979096851739553767923605580223820077416867709435352544880031016047151077882086589341918859114939044478398189515808410662424580937436084772352485285305376014170128113451833617938597206567200497294551891192377592734937259092021538163944255408448755780787267911710788772060121839675838657496904358333221357667284854935852891099880106582615471418724885747817602266055799607876160507186903447437710449488764720681071735992113540717571200957409939769190414882843738874739576911733980796130749582742282642933387614895902898949054612046432648436807324203570343389024408612646205773430979388351068907443434117528766251897334757016143045236931202076578560235067783277452290818262946162552136077569047818786587550796973723579943564355934368192848968726459087262731309366401584531331833926153488686431635866009743035866651498874992168234551226119529623946143632235385947916810425031358995487214016247681172587587347672452403172922091825025821621690591580150101231922463006999986578190130974542988662366311402644896130677421356031094452000229730236787348086524133598224468350641703819650297386018353621522307075988597288179114937902445144512115231698993254197773788964165146907315835214849221837855522711312786628249123500694467028462605932651868610761486716041022118710330381831814015246694863009594439003030537509263609777345182448092822215711384322580403762292533579362621493766684005502992299458378778383600221817165940667047764612066611098586809757707219246527972993300402040027190949817456991500544427252494753290730405983865272165064917538405421098592492056665544358146381324357060969070156646604187040744830732673374986290779469460652027322088150171960748144204659554540051963205230099759777613919057224589069614040251273014608053688820183139794638259883228449440748657411143822631512085266941098964632675053692047169186758168769540998798949129135982429705874471291525106452377737510126482467396001948297862553318621319646609129825781778647154466335485236568097349584642461974912304172038099764189983458471059560690310652446326376425794111743187270352066721483628625021681825641249601445089307916887358633900098809784634340805550124081718749461406185187251590910959636459457116016018321984068687370622389702664433394009993893867728356264520983175037628885612942130376061188549394163324371034457738794352919395523178341859357335860649504572505959655675117939663578097690209078675527572991754510136072286374063501080097866132450966184386019785877762478667291966092269789509598308216710454257809915844329091607636604630404768863267590019625227712894540428509060495790889195883667924630523975259973297455211613297593494944300519479696997451991322286906700039568613046739384485283888224570984145272368045908320182141553115079190151439429073937470687249490606411178913533988221627132613864352332605512769896068218829530227474734189042795996506834015313710879801766533103326875091765026727751397909251638937303514074561609361972709856882358554414310103832217219143482344772487062680158997178454616954072343731226053633479396809146051140484304907889639071659982908181446925479299583921745667929316747493898608394276937320423300957980601902498313393933162228388283531827846118265881098634968045749120576919281521432682339781198916415060220622184479314625126184904279760625982138769160309572902367146853710980508017311728394391375486911964103150994011422266923229613636462038754103371813919313843972211912635849362227657555973224529345397863072730530359599703671432508187324916312697791586022963446760017631110973015113093563692118216841766919525334512433549355513933994601201840916803307837587640359085264873792603864458275474309627258067011420339114680626005546324022711895204172962085852040421222302755652545472144724878583440673740572124073114307916138548684223328557041074824810907724208273818248853236203960085124645406750040149232409231573599929205404787648377193742884691311061253431252788056439445274197946148334913101551511300307616961156630899463335692751706575043550757459132225644489266598295054010131461288267253652273327497410776158854948453198411050023762311294733646452327168092084558013205521739939733696970643847609330860047124014466952504658249174327761715523488025049907968029846597624542695993606989628324710568864328497222290826598006607021718092278944941054969229973657610679784018047906257634794776338590404226413537494712232678401900714114500246159588036480779299578657992819407288862040089546240680155072085444261871497628123923971714448712863164378140344325599966568463768503345021225456616999108232107494444758401567539942041618639901375624901789126345492590715713065696923979336458236285959143260396859468182487031272498359949418623977309061361300428177879872082355304438725208099275193697887799581551065048647168090744267109154007497062768428494183725450504766361946585051820063695406461121894124438793939873333768959457603978609294562152323269695984133587467863416723156247664952185913532171699815443697113492560020150668928584301615150201964359160374601259357057979614470158122960155129879815973772960431019370404289889496723338251811250682553613395925270399308189894685939535340967016146484307751310916301151140047831031407145175592698017362100273745244200346811231247436841823957872876629232090315654024481944968707527559494415314259053353109806090761771653925054007011382682783302984647341528403362480803808672016652965400802119714472197011402684438595442050314179651312719072827462196899641801842338059104703092480789762373390956961279427935269675906837356194146007786912292320618393123348532911375505518569429879172969556891565596483137615168782226107188808462903005915644165140105820940502584459783841064914403879404056641397586703771480786329854349469343045255856165114483819359736828483531885716282084094890966166658669909689317891087477303694225345203165450173571444678223240198944336301136556945512043399106835360569555892756879878645844362336431209715736734092039720625316171991579050587140664123539346582844957363836490334056800048467280854640162660774463572306077078304722073540956410348211162897573464351337245209640919506123836106165932050489272289664415434613375586855252925783597991550121180360699279065121742705081081759572728949150706441657138379237445098605982159398145063592016676142423278553321222916760356373996671213525645910439849992183592508905484246188561010499336055449588007204293891890461847733436522061051776368986302601631528523959888351131868284750588173380921183383903459908976646139918436405442031424812311407864328490548101309238318338972832884646065007551851003491591539840889486669634325362887474754681265447604038081551901628277632286201474885964481364317531146874776694143840266766129142224278538722351371870331257674616290516668713667987314773175457485664823202318933695621726234935104977579766171217388769674793012696519528288410987380165952362446475688705532742585956817606398594073814029294539198506783920860806932410192475309273412329616992216622424691909717130343468750786809803139193042943016448439009296271684847550335753203904785772702573023515939704694266193790794321083486405484351842491948743961101311767185405532505499994532486281558031146160932993528998007278016519798377078783300500589101947565802385854358020681457310745663037479396666148778738634009843993345125120843885387513734475936201962342917689215490101360543988502884784706985273795258976728123369146457804679353316814505047102433562632062548828384909032428380528567764055724051074297523766028351435858581821897439916293672488670212879372527696381729970687813038641103013811767116460652163056060363805167598315126080605184432260653809486370135296442868463488984679498437015568097668942609221093812860915636526019515312110541774590283723284468343572239171486972669457929965376516442814755441867977187209053986713975181777429653010564322632015926235185891742966941412627498478109646960594757234567752950152567080320427321242748956220783532740338915023943003114813182485477167163121053877318254179262914533081525254281208725891749154935095384362171597705018461922524987440560632195101872764957835720575766465341006347978882803086736034365174983728200544647872310564226787264924516811117521736819370219602758620279112323199773551627646772919792256885526035346322073350052744057383722872050080756278793407029574443933588151149913429153042871112931177440753055425448843324969579914845440720496509311128290626554922716852817565434477412798182002246431040883344960754358962488105364931628010438940333833702505840885613827757624162252394267279425511982440068385198958180313538335986112010511571584152836060631840915560814666501554968591770584784296789306008373640312455185497988031215164261839990552921150489227252739826347359342054558825584299358638932736700002374166232770735744598065671232812948998593992755435890654009278543349641458553143172779681196955093492679722716064433393113090710668048924988080501313119149904837477642074995331937551982344022759788841216379292955850212095616003219530466246615279958365423237514809277427755808881975626717844940125151588165039410033714587496608552910359742367198392928938827097014936619644145207976202768743443257644439565186691291029175682281113667951260526598361165675290883301119810512252141455694512603823094063030510138029030063439644641783741407930918470148299935506276725031015227421175938369677158112880133881976140861831607561894974966490358359425197602905142346983144785685346500702024638690749305061902093831172789800043018462065827434695179002765492756217044112752592438866092300353750377305446059347100176406264595326252709168835918673311792182520636466068200620323840119610837953262677494824213178449318424933711082278710213380895193102642199629620050984537230390186891172546795214522366661227237417380356522926999326598919700703355395163442227891928665123505946930482737075193593434155260213134049581346777249065501654768619298936714798107428717165310758428606667932268878329697689409267645374569966290245800719287116422928849016134158607936494566328610119618575436918832137557687538701186519300881939069953519088517701848429140797164311456491151091668396517368635685980461043269222222330089849442090503460509453244820528167769651456460104809453758932344298955057681583964446481516436981641703536049869111565263127553747312708364811396059163447401029309858130564205171170880005238021729684968726882370618460915511743702547023562284186418002486285389361124797340710327406009972822136501769219027313334178453648523249230988572735867027267203227535733377138528410074131462098785744959379007766576622507955709821367515639722718222693314895130190923941280959193379200584090048528417962122095806252485713733607544662070103525589656434597634382501936505774961078791977516467209614886447021584104591765519381678696792050253887375705889718420340838746712571827103424409442251150668069209555194588078846265918618763948955205918965383578811264071194273208868911456095923579230560208096048288203980586241540466512930565007217197462110271149487906967157764748930608626120922426713709121352685462022228208062818922753108979180331394637241271477395905889680204799915917635381223996129811652694190126377576217552008358924377602097345408311744862596896916094644737980097479011664554404207988856529214626613151605982535028293502953313380700778970407873180713722867743923001842651155080812545512250926300769148811513753099714389629447862172967625966363675672136418596755460604324825464784229006298578299043180747919117447529854941195523981118677406572150737799438985544315611637862208889501851563295874348363587400722916159955303930357500952690374934015892587569396803597302975154227258574120514503497149052206817348919417842806090322253086644706960184061730593993980579167672532962013156484180696343591569443856844716431898632450614902572331477055906036651764926871732593465672450604405571183937328534326445676146100918379147675260681514657681191364379226059727609792214534602169955753638267121682840687472930963233324799249587082134800454852870620134245790632845444556461258798535171503891599215009972227899265980397216809690224454264168293008283947869508405690763296112698490539641443911537808323354500061232339250290143186401205492022649998333795997853659619459926633128247800835313972671168146774619878468459727624577885409760183508278316246469463165641893317547821513042603402516543534021020674732992259240087421239513109881266017719113055732784641450001067776239810210214166076189679250862653682230907361620778894355276626430920875306985473207557314603016926613689781145191549325369140198384642768058968236215905435762206220015330801555870586335607012236454349782229965735114271081714488164372269153438492022879555497594645433126847465892632300668729479178466160904956549363155019207719569573055235576116621113363829984189628830884493486205205312608589978252377314621111226418120414338227792248228534426942052775745924354612857911747463900363390110257099722160198239447236509652901746507909947212410285706074074440093985686371354131453288527051336526175982935937284640495719771634722454092679788933471078845336115520028745107764027694097944788140133938390302439272070263509358764725636451025206205272957488961144088283291441312177696133674620936528618753916961758212776074291591371551611058171613307318946210880237648062191721921866156456372833535238864016765528473365477601179450346354593981369177701417351356657982799615392538408271141111269763021173841035565166682165971866388101400691747941068764876327048596034159659112905739558717653639286146565951856436992567515527046575163970446745277931452688000047965958582498917996054853825387426203174389554090505695717910426344482128363104466860151560002420963443963025906000099100780255155618116047453501056870743471761424855120203397674658239936187079798760171892565631433373826367380474428170639980127774258959476873155514381619679152006588073653820639325417502461175930391981483970323927786179195165998969895976989242426517332050441415440359318902525088189692035629087971144505165522912401428031468188660789433159214321656832037735347210350223506875831077423901507582607958044982947383621705026502406749183097070268417807467260048637464815003307356406096674308026851207834372671452148417358497009751308045436299197344946022960382141369138045757169250215230809684677222623054517275645029693885012381142092612369168441248480366371993849077578356246449209033428228277173233976796181350317283756245582158063734354962793226990226407770489879510971721841869995804530233446184425755646326235020553833004614654981239736607757626580834689352322400373210671791544206790219257840655770275759528003280083898169553270411189439408469013084390409880225775196759267923280383875288119812482528138281517843801695821108760069930030082695825228189149019118676300094811567665515073953692778001498934075794357727160912811577822779001057229234882319472338541064815906804523728014512814790463906940829727493880781620684292892351111242022607838704000405871075771166097204448204817879963040962228763362552495182023132617873611979974657940420202873378212993809553971686497200644768936053071151258249419783883423608070381348662851219410424427051454253585897880993078773703064770240880447490410746326707298639238685492032625162956320813654239575369540826961436425978412444480701973592910182031859216580824336544946675842585493997781902194763894159170720835384289379757308235711849254101714901231837137387503937716332300019635807495788634324584166418125868126910370106598182151152017982760848300435917312333219224954076934890094363597689876429550157019199772001076511117366927707283608695812110967187600150332852002392595104555573303487890326737767369547818182965475709303297473838875723989756095295455718005782599105938771399544768961859599024292623783576150506211844506423930850851859100739254992769243340748031775998889935173522572325848035589732624844943584079223107789115166319800817645358401283454029781295986977189509503115012449654180482353377762497332579887818944315364819602811780027411392972775355668281722408596431427179371790547422661296736372286639903208584523873767224129540032700316452245410007949480464164224021526799444088549634915353180073284357993135011202000495961574609237118173131837615660748582462769953249396733613985232413080615467485587994602712777305665591996887357042357091978409485267162509452057540898970637772155690602489614737399817126747767856007482947511687978259600316609533358352203997186202974540646517909206137130038307772871549637054760002810697057533354696267267792580679935689568557092723007953017798568101211809591614250805546488643707455361671973440490171211244284877065740667898990313096863088805284755685413910059753706273295249934341860762650499962568900371484550368024028288993830599834910624811391507819480856806599367601858644037130818862660964775855030584316299450287984954933544638302445505680288901386963505958598507390506895594295000413276401394199719797549802929150714255696353999449395948530670812133769480480734693181941585112851171244451771850864592362430667359628290739605725439229619544695530450160962618222962738922457750419408696263247470806636170118492090780117301748256442365879030417794120197140516896957675056579576666746677084643703868424733612269665658617855314304766062852664621230269287333940515106943053820202651345260238946839621663084763177910266947671828791055102683924904300121522918260327781283389241731675704849285693178900694552074277420605580055120537622822380344113866025914892186630551561060300494659908721932101301375455652832010880645102996251949054951501940965433443754419119283308036481524715674464350089041520030813811761885072212793505070931270494969211661910845251508340243231437722892377035746283422500251093303119653695721439605383010560100822625246972839671906618339563679545616517209248602537813966795647815228546852245398589039636419956679870202409323566087839281886590709295935770351926517363226760801842945790969612615329607945528983738074040150894944414372286556286314685183599543762605849133537642275306082604342791752856718550924359282400106255490475838271446959874181158825245360814580835299588894217528339204898110548342553781092312874918317123161579675557626049278371554510215464101192432098023624560232715131257341260042853521810816148973843283440058310676625843839940593095204609283137694283355211138786792473929080801615807379267372927414534961963089686128399348179536273140568443438518076004820871284584362612300868488851432276686619747312369453572238890540830428326596628673549477221084523464904704004143092547657686389942849125440423223313880391258608914371742256895220650828711327014214733426189578239498767485190159819473335157111807805330609643330115110266374708303836081810498133070675831100328002318453113557024642739376165472057791295184905161035625198562296003776613542310657449181414512396824607635097115376613148155854443524215986074592726092018886578459203869037909609049666799287238503555126486524967269367025696904710965547378052305070012532914224351036885771637748990633330179092188641027847451636307777176234962948890157630270281244921816132768323529324527722966658256186185031827725981935105314179831696806543736241869633254456207134332948261562025955278441191971962353370698354403501734164156350514586935938106695007574346197295972667088851461418220213300339503680640061442712842581408489793797155161424708397828623159389790709679352460416656645234126037947804239785854880450845258762431900245566064405419276471878267938477209924235525875544678137043643637064930383023715553981508834991966744546492369297640852629788274748592314916014623193422504347720711371091051707362631477385209995973462909029619009388181334860841887331631571563068654128682547566644512208150699832883595877499422389072931804335854767108285391500168768495373445782584109570825295709611153040686764797533596871582571533858062367967536286981442785171184843574053804514561640910114275051718320849530622247878799374129170739715250062601421464012279872921001900775637454292417924256299061419401237667156883048225848011377680786263290261181308204025792412701772392333189152175101490952704394145250948689432021324055081404206540320792442983987080709692224002950651905537351418765937309503815261640923284497511977039806074184238975370693123094194009461155495932558270482778433648439400734080366917040768080276322679249504470927344640553682960442531938483051333912100895218715289505379885330060879937034038590691048962750484527846905610640060064539195763448385052215176054666209437564786218164348991595508816062850165292474671124226661675965673168236963851492569872136526513271492046967434672333177725825648029953062243060027222763948587516413569381828915246266973192741042575236896532740855791824000910336722100907399979066768780950050277091552883146517498954440638124775897206486477761111839907321527965193454370394361982185853820816003229384529166046897548719610276722449222357454443026196335244229348015216863201690345978254399617355517932049863883603783164934502150456996537013940391069674686678597520335624271526554390798115374532099455448304911807618869958239477201152403145958601074162641132025378185707426256103943022556195931084612162366834230136985906023656473896937884197047271411907241498354099433444344443385815170265141050924883212362821314853331349579215447252463106994404851528975114591883452654911448211104221693298890061426503256951480109263882550955483374144340944533261952980760114918309694844356255062010970900008461476656573943693068317197487220049816270092469391298420143254369610598277176312208008868639000231739423990061588701873868833273342612790290527439909832773103210079871355987168058071754753366836155841818827280922500205094698923037127896579060788304534670878257504176535156896477440139684850305441206819688978574734839970105178375871587169034395945994682471200691031531934523798728321130591255094222287971344046924517385569151581940204690286158210389401228346197880780831245945789815442650041002417169566744701168427770724298488421544172764443025316183916850600346722913279954694954159309115363780923597893131436628049879038059591963722957299635251668230516828055147510245256369880771771993793943117764832426782339141565775193125335646812153643153818770570334233043006601060170883329337692447452360752316974881061778658874181308090796217641259220026334983173464930893549543159703519836732176998124094052488897864360596073577322428661417057355754963228506921939221504611919836587527844251457599008796654461566410074384421838100367494286581043659071258470653331853746279020200085815080391890142187691671223144285575131082633933446162678861506114447494556108467726967035093087710458764807306446764058691210896969610415150101954432945396576655324521712943906976759662912120995334856647516567228088511291838927285372343934566012318712815604395201632195946291519840838878264308767777021398821064344571336159692675806384021248746065888647463707186091817956387424531843464150083167814422404141271029727385260748780502530853773549790531951917677429282650547328192249424226013870146153749815710555090394882707978066890837003284815422757017783984510299372409690848758660865709355783198458745037539526284943578078505087948543244442926121577450044825811689636140615554128414534377570015279167257835662587660382131594835386133181362036695891914934330515874008186133226732262342400935655233452328339219151855999947097780612424516989863888100986474916584065287769996100277525626937050940731146624495690679472273693902004345175441570497711658497568668381625813786581442570065180563463149228394716589614308144631819541867768405026669266274787002603901219688731920926968147365056386867537750684780214019393941070955913708037572890334344089337573891080534975728251106324155288232779060207682823734743222450068444470355187064244051597495128459686141830452583391242756469920765972157251862032877912892484107227033782968091738882647512328662209121133096866144423119669360529503716178817349230825257936732385412967324814161780931614302005780383335581454427285871447211311802528819469756328442516084546478025348449330348544706721790555365695242997238359979922672144590518026721541186709739844172106463423680407166785582768039358043924176659568725395018815363657624721655086561283540685747972484809557113107912370190954159417890424563890769706160206314276004630705411483126458674132813997387177597549779024909383725266434566532340426353609293465637669679007886312438118293789222168821026001503436541649919817273094309610396287505648899790789676576957766979938533804564554604187866399058853915268067839505878297578511956797922162529062687920595739102536985429437344923806660260007373645635627829633376817274573331395444983103722550835938162908194188793085409759450316193843074986906985846661324472311818217392918851480737127569558544496077160247393905605363195014547084621948049987895898563732619062003635088659426807112466473839247826471708688538129418857817805718110823173812059955358175092802028055576010077240629762743785017928847754057799764448732196264367268377010177707444052289895134607581306875565030262709590556905621924464705517688476305168883830686352856677204386600404889506799521787867641677248789689608850470197698071319200997178024052675337278519397577034343743706978948049469776422063287279091852050938025219203916800452448308416184858398733944776339293456356218120118002056294638743925560229168545507293460165397933336298499821031265740321058864864698097605641264402210485156287270978442570264522512794219799404082857302138181825068639161218716515132831079173537203550349714547340339106584635414209054952350855516849532621004531793967464982026885657569907180535881493489415526583628717733257529781695692661616027553500854402880439403352329463210159037602314322481149167082829523838676885291746788594275416536680023779595790149870431694427265696533924881683340714800276156067424341271142814952222220688976040597027919012738404092444821891726603561123217371101829458897043960370260611107676610438442356398258807415337751063444613744249957926017765570839569560130561341112607324360148615543730922724654203886589428370547459908592826499648473015760032552194739859064251338743209436477494417989150853436467480516941718186314081240752436664629640468461847968641475367255574132069775445525121272635585788322057492102601066337683446445107809466947177867754900336363899182861944196971705578797542273674291525610888060007245734217391210678761869534822246352770308742967879356389492417641816228971740302409797860219923109605999042784373729259817914105524254929574259586516370016815114089738458444238568573567712572261699597825682798171463216922068374777725988119750360024039199849919378089340208553076712682314398173182743979872987779075320007380097045456016938136474881437988388893740623444817731916302589980198166957906414338231225454707254185242907569733507742581772152790792481915968493096497651336370271700489224896069324656591509773311245012909151295961119120872824215710213737474344300958705907267942997731808518804984025108132549408529027050877665494696187857336381132315000228786097935682876070927310571483447302454729123500506903241350746359443874068195326667790892481204702365442366629959166877101743056680495476715008138139120620039890911529846904983238195826990091905169984434717454313293310300778551154646452561584372618098854550806503289091282279844421762591261126111713759796189293165618441420718152158979228196615064210470774797059464758302793604104601682416773735414020660401918876604639120983010171155362156841851449067118250369761798817285933572022185802453116068195219737781784050718009169484150842187183862125702877238875906502310504432203757506838722540410074401537637727183650448365980693708344362020102131345834025731729230454243837550883520717950610076237856190126287830691680510255893831908189148603790955392668340737616022297122145569670549239556242493670833771770953133232306102984796918610357724704827693874790615648292276117066286211361905559085095968004943217879769973584664800913048336147731301367958684102757565807294037467836872911513516400634837738842479263024247182148620271196401950732625862678988367909423766552084671664346146332731808055753288904976616702268837690647255909629123703502363159332944421196248266850043950650168720787476839888442166470267453774468823134788181779107168457531584278599377694773611751021059031558355622934123866095593726857998147077268626463759917588299570433532275271602156522454159212641893507048694730473657130252632273614549196333044651344945917534393645580413936151931896497358608981841897380448658337565365284351306903953673936117498847744224324162664856788922541771275172511724498036716986975824166661789265500424742049664765838027186016749733413705876115781894718133090416977755866920920277997529084164166599463595298691239758218742401218010206177700276501011196985461179576470657802785240288455883417949812785406828714874410308001501116301965326902391272333857700060732751321537674592935015335738810082455807908727062798393774517769667337511172810937700825092942340148013774319905965911034187516969117538305912196514116823179541710099846181174317851991543053616023123555047209837491770282517499353236242925750543032675225723253822313334215204552367130778665587840905009787734418014249044741306162106846598115456679523897897757622732326401965995027236995253978158966398316880056561387760420572028908534094448534780660437129106285394814534312344194650627401832224703524051332339715209529303784028102801647785164783129430136662838305242369655276861728509506280092661461336820684269675996701702152689781758874218540483863536603584362025084716828420600026554030785612771072183276562013585259101980783622217875555523089883677096206856511204016021792897159615698875581963624281241441387578157479615259134947679132758276047318969834415016312276997906901570065758003541150515248840698831493297486425227771870625132642334422191652023654632986574442598493864794058613378376484390521477251102746807397468817335658940968101537654001572395646613418218442982795672820725957082516004689744521087310300668341064488828205890058323198320900703660582943811792348094001471962379987153905869869789332867974130630331380798868558698327053034615170296259956283575587307409417517175231920487482434862558330748743033858723116219148516107656068385904688496916872777295017921840922287253396535670587914723053950236599237919164997992110183794131317854468025260281526339705582272296781143881314132910743304307256666207161466246193531237653101738540799754956596044438265758183986235104719387291805727496290780476146231064047822450268909851919599730185814148976973962402331609128751700407277275946567793686101988348032040704247417135887877157570804213206027364021085664144154051881216498190567954900892310945018217428807874860951817909310210872961559739276008202610322708037776497421813096100386969836277161216627318696845963962489759610238831376954352365908756092370636873524062198252876393619218486686159505111905967364695059895200952969928769283424256895096085447398638050245505193634407432178126687087692667595379125298132198262135649887326159857436363129720445538867514865520188333932514255036252550915919759413516194032257016349729544734912505868752316565019271545586019045100521725865753457657871308292900774092726237717549973322879967254370925613526221904646668117467545346736673860165661193748713466976473412785860098602823054656301021075209256318835252134659589433233585015907355362526128823676191211676522645443671344402114906470411026392624835949291762934865952498834533122880373591922143396575645340941265886212785448230531632703418341848740270009472215619302987923379086577320170927731504347060906487755959997075261636674837565925199947469680193062478840917056398596625163633079068018016605679789667012718511153325253660497737177988779078086032257571430942372714519532040636632519611872959527154970890060187757926806054601833738527388322935560250759386206559763740560016867390139572022743850001596658065799568670769041583972699945683644771355480921903639339552169176572573526224562493373567582886599287911518875727030207598508142094531428040455827218273245942871466618531953746945241045445597026852293718979257026592212180757109165966979532385698434482694609268889179033931911071557050067573873538255721655318160975758374457895259559222889257678839780173183139662783225343800151842962259325467096515027193413989274009181468014408456803314599162748052837833086170922933070165970263805143520127126155534970609626611200692292817332270002457293931640095150903271137790148336873601707147891994210430813932387454117975533009977546761068740225677778059043547403831253162373976114460215037846659246262772423150442544370964303331141359935046886460365833729899502827026263084544436418308859280081906796580283616712565727647214467569793202241164683331000982987435488491191216617111391550903490702420823868286864664729807350881689400301137386749767624833740591714171085469123496272194917406782410503236079157906445390119837228605320614942812612507594914383192165360202921467961752662102773579588680802040194254697732017740957150138302686210642082346196507342133479670672349759810322667003207378545088151966875154546485504070311804513359758393631056138276238600611298984316039510178026292536001071278722739144111051329256051985969633370388546216485997482959659505444669698385674128256537366612165416221848332637436837709160393458971611665298221877510690253154198561554822911560751444810635798900449831043177636441024718029500970255758134871530558110623183547470463147598575118059274999601116783832215198644513712160407791011199632097097076987101237545502393262541491217046777440888736868028286317199824686856100453479697955795269122556985948798348287511787405230980687452998569370777808245947960042841969650144653151177497914606541664366571671443486905551462183920181354692519212772904530637297286213835352787929126381118173711379207592573565420071115120874406685323221682049146656013314955474656557591994495736927764003012669578715365303384523937745960198515906468477185061109958025853216750765970390126353147144384496454757563139473993968899664802031769075512977333984393432675152610578560183775843201634158867976917212164599836112595947669642792788946680558378661851111926320142779525257191339968025858870960939866139957544389551736702788455661316743178558787231548769860514517372042918466925356272319204096894992709878115656388761540959010344722321438698172767168528224336760774636295008239206818954316848406060701855512088422760624514694394158863976033400653589590832029631916426964899738154163097788596451293574728132227455021291755242734358471951159174899656968891163193960203473822450226023757062492408337090939801766898733951706688041386992490252040776699815506682047966511410760838225777474175803424776353274561004896106624624007869425653583067279280873408031184159554294684303722412651195959654852109201481161754690795610426205010686727651983269388628092108194486544498985661486337223660851552873361119084472939638138889515360982254761635572166670334384181856550283166529085069074179771611058591847985244160189387602099583537818335101997230451509285098517928425878888379843090460073181739396566619030864543408259848422392449372065689446819376600982618954108558325063446279822406233728342628433028797715524487928922130138631068908058583102125927859134625240609179469497132844355469338714053813136359003470176961511489566822305470301571579132681385045763321641500244316089392950199630240025461073757367329711338674879161507650037537907755421857723306128757546700257923071373818683907078540548040701898444811056517701481812199131431003813171606467348565510315836495294846246786871934440331602272919529890359464858524584916619316904456219520998407995124787275470024064650986290530314385205871557121483155955843014419462320017450536064453114362810816690680843007821359401404830611118479976576991834430489653569490977376422421112164387263943104904169956869365690090581594003824202539904156237010826504916743394362394132524820881794905034599048968268566952129792389637548142664509349649243825033679020688677239003681404154472205143836819687677618897326568599204196789011093034037485342307343093923405717358615418655426447123798743770862538410580465617034137902193543581031976311958365498676836632897251492731551339269503153142411114191700996177998257443014388821113367678944103558185186927997039144030594823205400779864417689965716317073868108514353510109535748470916547021732316634867044195001006772549896256931020404123189394455216418624406623166887486606639761603987959539773933779006863180179516186157635770030221876600406531704145827497599952016698984500113265150730096666738795027426234079564821635067655548915793669177992014366400342484458005490480233785188549041370095169973891585176526092878736378023917107834570705647376184128672010779829802375285810007676629648934293833862850330776730994566895592404311007650895005972248107499357428510662481558540971405322585937740693802354468325740353012879641650914898000045013437817599630231437337549440693753819408984533442447220381774261275824857146209030129557673504364724141993416101120902362893063984644371405757559461507879046279422970020506802587447430621875329986932436048860037059985495917710562653459106799071228795143841873962966259566818428325588218120916226717767596600803009141168734522470604694496978137587082365061640549334660168705180426486828541235145933477255442811641256677229497283445878512763523811474496477949125059180929108000184812750209808238975238395218239557895821192956112420362852190523714723906791654347220422791931718463242850613364423425951944438970260307700278272377694012595300705596156357423601637205883336269784875112741655711244039405758569875449607500794514135529513258239080705812944643172805010391436296206866386581926728163156754405483879089806607797270435543635464751258408712927536276002374186025386080084743471556680393466013258904760049325988347965004946650875962720779291172124549366151136099819957269502726213820589225926405421842384159358026803252680603911005260428091022947856524451185080232208451343969304419220767783286463809339659321025315722591620912129284102081950630255379260779479880780179980357725534330302368207921892932585949229773201542861871917061914518272884386381095064350144351750328874046361100131078186585827960937392957272295316778464781952062373656889753873870030623907279529994298404641471866067902378512118622256580985001842966219556436348991852084232801570048254794836784042580324179230883343439786017540669026098971543976106565196769875128406809880561673345065716875836937618943082129641451589870438146877059175966869581109179459417477342221909681696937789788375950657210239132994638496529969272939674443116393550838682827702329990638276037412122428348226948864231272196367014736476713056632705772460502139649275838947445788290223276597101803124340537200481882907827801595260897898850476279972262044111577030456000005832361631526348517670575436467389294107339922730579693135193908072204422620134324070744392460318614853580100784020415466430376874762187800165927185794120702090194956177865599789963305764423499711863084504965757100665329934466495015669203349573824989418809311427199696539553984756123261848274015237286533904399475893126716564396375843683804133095582840253126744373534394114984639947247966380810895716757481114810105126555271353585144338712130747295181399413365205435870207898034624741012270250615297268539262164282707905035174535870564465014685135290408061193155466544153470918004025421591143567633939517040865566316187694706056014218523903973473444393928850173374401504368950558482551425998629113863281018049502437362386848387009631543067694936327338585772449272206103823305740844748257679134249683130570320697656508720124737503570037241859812277929330796316576444928806259907317098823124680633211049234397698772858398323817703637251749832594401471237780420634016150429411264326943445509383715727717352849414213980119995727681338064075189856664206867011070064435341360556803738232118458639881610053975300305236742037478914051545711048126580711793319984379265327166486700727185779551739378838146436725449664324833835740440669584318258402689048451399412713268912728624549142405312648915087597746566568413968892858270172544356301846205233247563152259268408560256224905279606115538123589678478068489867599348210760201451501814989909486029328965827046489466480184031153211539902052896804483433224113678486417168635078564421086014913189126892035558031060431147444940944303370153680769514760098174909013591910340512962057902180226511564702885178947169638963344073789927136101240276666462097435148162618181322687241601200072407743754663011657525648143093578059460072929355746082278106162955940913161809004583558076707470021960313762691947314157735433992608170090223080410092024727737234167363106839531447259545763199156756866995061568828403929580406660231165743017271918122129968883497237008787434310420965798391899550534146722070634781070960488271049766389387282696967320990608856718194965313882048569773426265994491964653323333917647311324258120381594582043635100907294032094646523556621428449036047484900222013063235029729717485877245986230808455812519033969269029019694045172915549421517424225219248780106861421638976500400001378284949851020180121908555762119525975717951474604435328750821752921393591780763779457318580567270550681574315460967752386812951992809830797127669747831902229013238291901584547800028366606532500381153689305319681218352814465178233875537147059599097639137649133839825962174226360578606025224382882906848709704034160187110074075745684669951066715927919309066563286290805486732398434783347373705343093253048256175753341468916178036799986232555695517860043512115770092136520205291883889510525344917066447042811450046595350082086552661711004271926875624290582488599183184096436730551921912267929212369226327347828097465881498237868679190618052685402193190448701924813255859361014288753401702600784531328567356236629185279421581882327966762074484183450564847464930348369511995512784881690616228036209262737630062885650603588235165411081712692959724819527341230735073436842795186436596333414087634894682873477253064146591874755747489611840483876629758288150861520629118992907894714166761520451219152120633844197039931227209831141833122618782995089070285537088360568430909634602256197669727316380368523240068256554160408405921301132301949513403309659368932527933145471848665968385384972798826290246351714060670025213571207417547470013761448801278377820019525235005870056242179520209738589204185613804097091622146162033064753782490499047265692980077839323167010088516767273434916635660965656849277230263450259076872420094007010674005029249739742069348503357672276021823658826653267931170252798079217451739979307632163481217540490547871266594966228959118536965030180822521579746085498218360349374466151335854700289089620325930684941528317076838847021017566610708249828669017349569696574086522745482905823092925970852101916604360928595066670212112368260302689606038895661288182947429003905306223824376648811382240965604585010642655495243068332609163758737929379649861997533985900725124084469600882610620705522484617994891769925298119754969825825081463605256107708903491824648423410613074443508279313239451825366692298456169233123182871144096580051926402241104702250898928517215394072581799585298919549711383463765445525052256530418395245974925195452971396007842433075533819810485221575830888332726188319141487008135325485569436360667248705405566786722849408856854334980431740260830133113040346364778682501030799752593540227777119100844390263625200183662416046390369393872678422373997022768155231707916729269882226694824219741452871751755403010241959301316650642915191306291455677416576820747192965970873655201406987377345427078837335371482182154995358603572461090114110936431420899751045070186584742993719349437215720234708482810299442972185608577443787428271719881054622078202803515426252594074329934063022611032887305380983788072600690896286870775051673120543976288852265036411173410758985640833534701003201853049404251137521793121702116339764320426051355344481030736930556251652002508324924040295936989435259437379176717987122420779115566419524062825881778332673405616589770138504525459961601270831532514333931967729946527891813413025053356619704317152897882819796278472274374402694571260361871276930497719516984877191682625258970488901674153213981058457940983745227952235808337322439731275147376456546729486025255027052552963049754641766273911868996207934527169653991195123454018359747067443775856623499460149210457552025367703455329793913476293777895640882287640080635719270089949896248460724578570991191607668013059245645739756024916921292839209436097902599132021607085502835548302498664136920826572113906093279088555676823434025727702156038377663567634801258755245147691782653240196560687033270305126661363777963084645757293787919757753181551369519280584877449296160188565968788038388865501905305172408872990932755372165140274005623434869262922736464574192284744382397148403011521760186623857397596242894885318650395865946633929606981942573894441329754982110992887832842676068033173982025296871266862039019401407778584085711385963690892802892369888130457878882649909374188158428479605568815899375419141253080268726805547575783430658650692510462786069077509881739129388801934180381566338410979657717407449268255924599302508342804296253945540347801064808597313881197641331917037108950512072757843226492649839964295877905960970717627355281138699748828417614414861661044859122515426406871917119752879328062155319541684584008615784283968834411942376900547198927868916501137365498825946849074580073499810709395423648943982726726568547538715623643475840358967527830227481306264311560506477164926485350210633782720618236217468306596284577246286145792633791308768723216197141517399342146149848003694722744928750420551522477317796553964503806973249112024072121083285232186686223058394601681611633985559048960709189505314011979062300755058015346942477952837767187789296285834634039983500979521944232499846665401917328763414229021790752759221397554169914559910802565573219871359938492144150493306784636062973497888777182972261626278460811921578072976021136884880215694446247635329026995102228279495863825497024160725194133313881622450145139795290592879666016859150234454337524104543327111641170754835869061088143588500004649788573058285522256950813051277008219363963560341248443641320804979259291704228900999440065144397318820155707665035120783221498494091709488689685676074817931339861646445831461193490190215620696394220976013776019590141205714722915737506309636257894057296384150925232508146343274584915948649900691340042234973427223636046873631217417731949664882014773880015327844508208885501138942426303501872912325136089928267745774421936138564834784370790037310657832142678290984495959325986131459880251324478647525725816072356111510087222778615824547950485724563567300364914707811531983660471946677463092923252005596039692322296200918621274176973051797720487824555962927152529782721068567905443814167665802841731153384807655881385432535260201766718058737346637702494177530706033311056454738729445881610187579611150668281377657409852549837501930422013126284191144859186377972846266403348789933950232447991391972001137961639761247181605829570773692596889262221895698372265200518647727977417828267435981867032001726339265253574815469527277818703476657769592100465776208228285271130002189033968316253427819936332859257724098419685650182774914534219178638421444294311174791974474778853866497117526037609269054857214020308473101859349642271111651196445867706351776602003165631703256001699463715162045554695521641552972284057783137725540917271691276763143429565719552838024220120856108660380226064108494806485652127809933622098607191561188970501194614949390610220202741186189070485073071340671421783282000821670246074682409624215954297523839041138804270003349491278513973511391867845663634532166643228277586743956061636050792493211467343207529821496892527208068430005287496639303345401560004485823967883220560635111791579213754093403646800848624718007072085962540025037553719534838779948665814840629123151161556323545922416714838924489520410811895324752602095713258496140982916415571565548978923145911152196607593430067670991765197259096120086967523412387631120834810202242979121870177318126401940846758382447232026872001213091931104044381967558575942762949281096226273896490389026729101170876394106670867661296054010524004621949818289587032472423017570121973256472183773339126434995687586761077478751940219180076023068476300299840169073177129019571788798789132122017354898961921201022637922793608557764026312978261070090171845782020177311867440913673154106539230875961850627238092052959013642877883001981746779020783229359855094396404728975157751153264260083073217778077536468117800612449294086132886914531227895295498890585518276209008429238133807236701892767163523880173960824695872084167349869564176453456806779723216167233701728983530055386222582236701808694280704397705521483362974412945845643655088424281290630605904791985304269369257933602017208154007000690977929721021344524723001085735438203294713987451564423971312791151299621504774319730740403459368155398537195739486739418511500800714795888453387605544418241930912939630239981098889980263707410379435961989170589085505776710774936775959305529266679963999640548277515598230354817909177511132213275659214601436643877839556316407774100377181743486516675958436794170858720980353283447329724140480882214569085930231447276545658527560957373207939624801911928473799125545417536336956490906778797777977949387887724498417652799928590973992154574663029962586461411722652983547037131716900715669704277742597753415940685158944308765709161150232553870732737168963608052812853956709596814658505936727786676671543313792563243742724195461844887111410499248681182734078762088750604069454576722517947620375833118589622943516610996080455314011696116209995332535187124149433821434914601875192572618021291359986052959404304813226980232458594247875885245541724569002057197822721788931030004055214726538158876871387713379580652599245121496813365955664517861996660011735323480268103280376032760757925130953065400665975376913710197506681721721360584882920481904078692807916271847550392066414477311336988712006722462914113623981378071492500209110268788327095531359850444217300875766201374630219734268065941202905421491099853360818854132197354812751118179173908436567994744351407488331888785551763839268428775429012074259943644284532619836264846959312147272748245033124283649313622884220953621048455452933578027046801181232752486335861397757387899476797549287758765113520243720238599746445921881663621449828127211486305548998767883584437427687823959474845097230515465806087514811809072286625317350382096574163891494650931706510250122186024405226532236474207690989005280731716464653957831280677091538570914792018817541596244384159767472055321254400025945692595377497898671311926146913815805198794597031945662723792590790482188903531967067219858025360042853612652780476935170748708027764137267141565386572199425815137395628427270154371147405120273197491510286878668905723109771459505207654319200231858145588226352434494964584486820687083352951581195359755691307132845868396975207348755713686468424225427013404143374828169745827638913230973470884407832337810811924594038145717688774064582740494542425109101292703854975349030118531408176338885125000272213878749788161723414017627565330540795329579006253010820994107025349530267873110418527466560966886391788339847027085597724453086085415118572820870360265553656826088901148253387398219929596192513588835753781867011939098647506673322031595030204581390687704061888306426371875216822985810157475865424230038329575651371153702476898306423632352015601932625384485050259169643441094789125680485554752266891813240271404979140818746163574339551766203741485787043253860844407701076736353631028768480554400907091888246769264552257236993948655301105142282334107762316085140563632205491923685068184401835840489508645499700483010210707359450122994878316707579008517969829482776867972395913024724370808271489878259166033246606158091733029487671864686977883995873727345558875275033688338714198688171829059681099905421704927488522537050526928145074296964119446910605579475785721131807181860720513408771304894167090735222774148651466132834613178417791745750473764095095220773175247119662888315894744992285899250106948092284584758938694261608779873347238196696452483834180219690196111981732852143740643121612113196537483055072082629745651554183662966888167630982071054119612250936512575170995858673690522825971679321860553932755012930484871527950039476014330992175595964672270386307965799338476208931440057649301759706912906355422381381593787248637507343146832434214835794338503841672853978577898278246497853609472686476295441759081406498502392714767016226529371772686057379549613773105491094974472072105592710514762636814806160374554183744477981240819779540407812939619505032185933739650851068472787667433048575152962734584517711092389774545906697834276417124704366325739162801240845323147735276716561425349532791754207244093433444162830612170347422293885121519354374182517169212125240504029786044346486774721229191909751131007857381153046141788071687815313884801117449750627203703577286347976952346712445200395290381899700687652334401781791859520383300482670939146444457627406271088214666053920558718115773340727340497341315995837298754645897595441657342886878444824794806896590588002833372073219072129300171771174289110245612464872049828567310601795758964893446454601238825534891965919198532556298811052144543935277937153642550822504301925281592685425844953597489494340234080785121163703653832525851844953539607701797964622604975561615583428802492108054880333072131129279774710351601428302414487663856035753783690659383538155678798266598027808870580142316052465440775052238717918434461571702888567613459195225410803919204986746725907527621475842668628927586586744136517266717473756579805448246585991583307761439326372359659327600903941951139474162489715354546588742345437244440352311172575564422286831712683783671507899113512625694541184816127920578993292429091131363089882271313822571430691369898494255750834412467360998046518548425204214752884966667721234709498639476885757366259203172731673209933045925580734053641290122974755517461552006754720258962921291185647292120933343447060636598536029102107130860683066742565655039676444868413138750640026253194530265811546351141424451166471050040507019163233840643004139099633501210435632624836425596714244793305759604302777345134972678923597744742517824656824594645577345593074529229635384606750547110344904978380620535655184987096539386701115149319083996143293227671942032420710680836555294971701532676468922394155856905944420565961390682553187920992529677220765755678500135700292003912705376592492261863345696551251536827753989221857475599358201475814594275963151729124094431772659838428304914061871313132596403317956777117973587489088722915074793767878640631718157612893605686012177945661893260811528034545557587999077064085328079006792411757254853220047766747260785361812869054147529395096369138518258720610575600780188212657799598483443190873065404385552027455884678012196949888333254468973094285369766351668965224416012378097268599601251453724633413785525434752173054817756566584293366629472089981332880203282548672988488310301262148856613244827504465397543156598633126083789062094578465280028391067340663635201261102342061175822759809381008154323088379627717942832818458269068990243513769342510847872841716028717848452624441001978158491206741719743153086991394157831618701975870989786691614713491686435285856078882419591267658194216931375274389702343737868043070739316992862829550885448492967630139992240217282044981515007545157465875462132561498787899303449912583364879800617577447415169003610907468830945466433128594524755358364417655384173965454700735899402249376977487948712669072718961001119128063989648031504581550928583388268683353022221826564451654363958271754436244421099364146697274706878291806749331992108047721812747519778674954499080983372715842596337544091001751030933735444270271094399191999424091330579776132459762736095676566347599210915308647601525301602948279940564060983887383130611215686388445320337874419634706674692115541795186744106442313783561525599231569228375903150665233142838106432640044950369785428880048462707005123156008509827599680278226532780277517011422477255372105029216440675753680154060296331831359869468858474514905250603176430080175451260345310323802833383551036351866902405633283644081354806925648410616382428302511584025771728154753753124646635684872457403136749203285333772321355470318257970780694346960979318609388618058809931022070061012428145751052239481618626059832802603749809356060569767054229959862807992560185048321256754716193126227198907647851529550462358000410301103061794466573720690891327071812349296955323606495177679740957558911484849917209481173170700564671782682840403887363820821090543683347533836542903613130408403950896457909188315794747849677411951640169994377529265575086824217382593076043228019772348877108853124388955128524864298347895916411110135417611028000339152757438476996222037208546613060734595616109655158053184300106799417028495514286491746401047730460750918820137022886016419955138474239902310962403938848242056221241935584130921651420565998182592330473697161897948756230863373604473487613418289888824085924029721538821583614807454603688477469042890908708405287133540306965939256941005564712637479767076516530794183924494322634124067576325537996327008246678036575683603928309868808828111758127059005836199553397916649803502750418778328465312749323573622136426667016950147896134089435214702075072473785557496817103178389546261059729580819775347432597382107918144597152909840631496869285545332609352433908534398006138777363172742712409901164835741145654193209582209749943765447724708758780078783244059225582878516265235907221879542882107243623639653076960243523144895866972275550007887484791622614560528019224684627378473334219542614648477513813368207887309090586158624009919267363649111314216983952052517046426351669657956172532843941707412679206609364589602687731901124156854614381147693852348581325894565666096160691667508277445067291125777027300672392246623388550452914571669729322322033188858112552279603789664314386500333982260961205878131207797166793701674306184429944311762922640284944413305862450125483735712819375543820642887064636802636085255802353069489231063297549228555923456920909724051912277851190369457457340673355364267561862867725671810363435073726900448693250125179737355138343704184460768208532711601584123799620888520563166020490595135383287111669041691429505388328553526906113033541326352142475275934181403973829075811619178844095883019717724251583943810826876896400831037060543244850512584863626517377243018231243381467657200762852266519070309517322931360735296637622180909741470177514379218658417446363028555546995312554841027631181945128505549716357792946747314920261106516259081003006399420237952893133837207727281165048682825590661306105877310845503396063784129800331665564453477895750665884166398766442801776931551012241625290240089584915828289670849994966254383705354027894133810288194392512786643900842705576028691380063222521210158190646030454614479787498367560556566575856604218748294213558382792782839165615942568199015043608432327465995828059062354612189283305483903674569563166351496065360373096188859342708629209579187883438008238263589182739156096992990500564732006647824139831480386146953487372783270654546254807795509877199305537896334165978862195843059391957155104682537400924750848705730657543947476247969598260945784306844751792882664358697786894469230861912505435306160632257649580738895719362346791540888734559493683469207196300675967100172633428055318746683763578828752794744253862861089888477938824803177172212444877324981329059266310601221810201303434656242149443316934278416452882154750457270895327857922950509651547527012627095178980000396298138302449796102609336264052860964817802648280535790965061043944507219032299770906781800932786085275050993163136274161191458414327178936513369983705298640454170230508859030484771563335487955508337660473499166478400605768492429320067450318401796712959811102603927904640285749914665117513261872969966291911765184351694026937506484813200490073140596715838933516367573432347830443295590464358272919824229139835369525058709333751479932810926354896041505926828825753740025648767324859895400756295262819796524445705164067328447597587454912354206611555150783240436520525577850876679797259745325303062410542919257849323683972543479151083169565919152347490753803181705359197452981177517222047854481594880379558883568719705324748428453201923661849895786397491093420803561268218670106419374263924684455923009437377232524668252064582645109627191814095689312977845469627701763915029705938725266023187154513273767402795443196686159563111063478921943947292224434439814287533343949466546525452261614000617463390391525013667864477517538884488493893679459000910178479259734944366482181911436419160810700284410917225045488833988982074012107999390195797762446377254726343313696937749394121289762358457517601288392775689866801332927819907936691290953082975462971659518938745850306672082292676878484932048853585115185793834115566635916245983303108886269210897290545775824868489109468671006135765464716191213149794914530397380902271238729343638483908980141537532404663292379313029121636804285265405505952582420630560607896661617809389670178569791649389504949394998183217951761578125718386857052851004015562586142321763413086800719569036671982786441286202678747861830787047603807474069103749457710930427049113731148284648351001644192022862642236303934990352947397970881230269652750802021643050457619060617059231972067775157919711656190566522645145840902353360906685574806282488502928307793376460957134507079896704644240260611670665652014878013600308509048437573577441891375196320604334125569250707270840540238233066556159177440452121994581209206483702727174349023625366846179719911418411494919070860057889390288115412699826516054204401538712077052143537782113818802682238152569477697199507793108462245179229211899804239209921685154584367328677758572024158192889037008272054141092302914909955197028910350371530561221146281203898030767471834802331560462647567254662475242753845326507857921847745753473400257692822102266348952630796642243253274612414839562926807004971770597033644208547200868238562925788722483909992764835374040680688476871609447576068175156597731218601578721376023623007690086206794083930277136362777118374421172252006353837780808191262703147615035037139574710774046176485978442414279108452301771055178376252722127607022798171532660395504738112477751421626312159543617947129007882562845703630413242336777060097068361284467718648879842722875074038082891841727523932274865316405704502593900933813708182104004303211509286521198566634726253373392548764300506554638505725623232488607395550258009880866407136156760084829563413173684864193064734969046277194729994065449199739317355892441433399951771032239218325274674827546813562054563770944713165056697485886264378596690035184283106438348546887997533726352713369050024297695473530294339591225721346554885515052857686932059361839226810667788506813526677036088044495202909304945491549247594097815951083562331017156212173777809122987382268461650426547502188936490273593913098015344412380246382669445673412265994547258572665132671408951612775645707738942910997435888654862481158031663684309701023469962675523942682704897239513028131726640449424397246825059061285297518693530556078045096252679689656528417263425929047696179509305238135329634699398702762305166391203573472303701658544130678595443661938431875560720368920846853504138658349653259357625274002438431019446731119295493977491461472372682096226808782001969826902229004655355819077619049699963315716269972048482466615574641088275853080719157758154384666987656987548836986038503436029377991129304963637879979239057793394549084438066103758742288718553303247014686590845963329422807894113059884834411503297031535153589696002240534921541713429226995649646946645446592882539684331008094971206950734917021718693798004300922940367992429417841061949585527853561641517907780665847423889905498766202607746837410639508411496498901550825093936169342829010231362249092511722416867368854459122072735320909556951736244978617505184508205210341321637246640205402482262724682070878110073292476551266442608829483723348089688309725974948959755992200252489766928258156215700822742814198416893817709027488027644118371538709050789084631016674621581675533449043774738296206128580200491943566585489338971775082951827907250559784664108018194992330447523735428833367650954836967451962134378472570128330965638434239929584822035964862451029274411151547906800482275447471545380989948175434945114600649357059726684935986847671653234524454939484701566613828337057041313857438570654199397147320186305689217245966309490711224139972337049035449964907933581566707558919923666479611692741602153847908567547747420302207314047362693276237361840939534502097422503556829001749664293507108918879619739425017398255290790390802179064180460644328376482856301991166357931178125712145844823210370214878217439417285574440087651408094522311325731766366937498012825621296840197358204478187613137025256728162823210967575869461801295620707774159485919633501332121759094804625277973840178089789205876873602490439573130804413201634552797261144755231464359303096517754095026425964466908215114953964765770272834010922573311394490353431474344328291373918478644782305355881212308314143610857119704131238812615742069257103841551888658810893738387292862051851106759215735056074206678415688117961431741988720636624037694019122903243478659959482054100137808871327176085906314795646997751983935661799202540108024081751326206083999705999366535432978766138890696009151218792846816248447739254430956786374994610209792236490656996619533827102499244177598112518130211077667616001616729649079689851167455993225243775437192604043229291280250205454891942517676119357475758251399684417174523905540336464973849176155875526943000836046496113589641489971926927282072224913277719545443107333964631956603439637053592807066384619178763507432121579208695102889576508731675596204056885858524112447993671350884056109286726361846482998981573868249489185076916650617798449074672752453499833971109736455967139444340076346862317618362481673548731652978490483056590674300969357949092917765620043849447445360879367111317767781296139279482717126090483668658418040554653167530597022266502611390170812159392646541562674980465631314792565522170468742437493492361256364377146341757973745207087571555600967911629822472931193775673015527827794028529954487055073021420940097597857003230643069516352986599428826089702329971080149874059510814558040980075609259226642592517142866856566946346541925064211183655688136882048472516036437774242715448867893980351840654040183875431246186754167792938416751342086030136451726542624247651089445175640940323602330716479061551609899537833007483351086459986929127582280765595088785939118971198352163067391618214227163375549653801729203872497721028820535590148330509599814990184815042376253197835329715917110582142019794945935874581394777441119321230439327016341576329041773378814667265310037042993856794336773554403889861016646681287743475559220711535441296759444479796046395391656519029614988823792044370413019041826910594336011509145849417301619972412484570891125398468089756688782825254332941763796819315277146440421609376677370804502207238871171273787196698913834040194851182344035924467569051277239680637230162397562207472142457617545110740760651941646060908305431411890040506179775829533719800715951459863452425310322460737091741049221244164531014659545339604735037440236818404478985639014732025188233021575256235321192533468402195242678476966389751497453561100178813999042194952513461237023888588676426612597784359443812022589240818276639733050515999111760836013259696460073197229637534436254109368122530168782759432755720074793962968880277156016740875011005389144167264538390765091134442343511026343869907898567298548343346680946451976700543984309704488382307987472097324916769321823113910148478493954400409956173255807713204924276416774577414577828355334526897207486543237088484026141731714865484141862317042427691913320124539468008495867904241462407008148581011592579182714354244900736243148179042005748381698685243278609294674350990145567016063281772349422404427989351354764868199873723239267731086800587597324530169147422340702337309592630139069048575808402576133434272470900034432635372759067580621808940856281252548990758699376649691700160127835637853952279243063309192242148497254346428126170647526623690479752144063273708078473696467832832830990289694901964563669630304443697777875571682407424684139369984643960488808442048087556495911389388335685359621285327051467229790736247125104705782231327291375561960263875652396544698344123680132974938982489528793666017126591620579062172362900547879040457317527039799628965197804292134200761472166193937023800757796911558612224634877213142268174669884975829465837137410732801171481223702970677027640245425319443106200904981217826161568512972227391511388204200296481275575305226700326852805509052800197582978714260768694191006060873987441271661879330923091410767767733003099496506659524250795989460058852285564278616427251045585228357422917930675663696213850543330860925415957801289842334310830144324728206844315970907458816986220704497951983795084764369695903243112178702046811507069209082556388982358744366239072643885174558538825009239373489564608940100936595971883667572036870101589708012548144987100987117589495853042134310822069444450152990367314007185085997813559181893637524020361842139680024655565694558610034861729734306359199317486366859484711279080633266186548603714925912161262323947186269032819395305789332130933958867758655964116404031271494490666021265557608882121848695117245821139381370917760409165763680247730621930512624881334376798626003688636005060565756411377939704782165373527791236764610309778065707753521565510053831841345149018837139942039395008326996995186271699270039390895888625396590854835056953221177468729977900068286025730989719640454201971472591322634203830201998509250470319926795379003780131212886680949342869684113471235362625403242686879322089149670936350719366228368551397307938517455491379526382823773905602180575041748134682169451991410335250109465152964581599276104195279510061985709977953445984766722953314739535071942684969158442711597802562609647682615378711148873547312223510837599330542588165399789861571871879954407237739151434550432091715685016791919618424903933573832366721327588696066477663349056973049313055930406214295910002003194714008392695801468588115873047236866725441367349341990021471859020094045080966078316682049528515496400649263952186152800034598083638732895399457584797198805625223675371621741604633389965238805401072841348758603811854240684923885221709208650906305281163001192769940692209649625056549878014235656677740464454912540600916326982633642748971845111519223905713714784637822088503793311476136315361071158675265878578165875353307542517189574188910851331871622478881512052765181044549328307324798845199376535034218689744696449716447550266825959418939400478015182799092787448871862582307858120385655212168945304106076797559389712155805890407188445036356781091021516996440755884094069347507097850039147736106117353407177504343866310673740979106469093387049123803381297930113850856129733820409985087017407954791658981153097470923108740930524467728093256408727131897711852887495998096251669747994921411215219215128503793113170843066058944486086342534865041309537606291887890118042903331159776488759138262521154111315392021641702613801500218503537166238433181943058205803450900325820804632292164345367956028148799493767770195691934020628634528857516875264908309685550709156725037445074670755327374766424494296484599680750757013236448505782365973037308016027008124205370578637308148711846892311000586479924872297578613397951393938690764196470708122230871669340219609195709541343646118390483514108512299931327314662269934599666571178349571947837773138146199200748522891257346056035278439437308808857517427231158864897017800854644974104934890338987472314345357393424298535377216791835617351834269702343920216415109033618238809937533393041206951157040737635352929666504899061914940828534201299863963329015233016047499379738292817544397364333376853236097592583106823451842832720150026240824626453544580043814544654675130845655297426676503604219420079903259130443061322404449512540966592116257843110446631718610973924102685316080049755119247874754938145641799015584722836031247323497930612634499631869281454142618680339482519027635255246507729986202560408447325696012111564827676468953526063350835113902144111648616448960486117402307463969827823274278981102395430006092812350461950721955117500576454765295623286787919782151499690397326743149715970492474665275912153629282668538979068958775512965547937131208719344899423524825561423736474887379060822768041945802076504138348132583855029116944526590460972942091369607027929345836847291952635952452309334618412931872848155137612501021844175515694983169149713090911733386235531132310437413364221920532173383693856431163888274392521501984323836187034710370687497104043236883616226372815961981083015663494108024240495318427802498662248164271919098008238098635539563589391095304986899859370841532391722759797360897729508630942604174580190811488545898772832928458709382925753224554461298537870196353702282277767369070343007748614476591661555051634946906661385785705112376510420738551486397134059653581368040840947725083270245502211764099038395794133707833743094939753679987153580754782548766252951172620470774161996420984645891984068937676277705281654944782664357329902740810877533681967482335172059741769478102788649111580718964203084866929081998872467700030218368684816954721022869742056379566218322246127495994189806615997426061490273038519118286609560353822135712282015118241814394536840663682737258983101662216613262238132115531130241644375852206689981412642545320223709465394138756837345984668471537480967498098411817423529112573949519709182804056090286549221587046364523750709315013239693519950117414593553909870981976097374641936739993600052272597728450213730722779506241781257638078380766710759527165703089848320191985662965563923661931819660331906515594423871886016628975993368581069993230900222355611111536558005780899424485503592204744106731953974453393555656310481334316137177474414763536393301356031431873126930875178772513317867854767241528341051352795041874274525472047469008632729079740293066011163213724717900193136011716054608007346767452253402279051775700053502919423333156262458157070378745517885882186793280128124807104737904599080449178035334057184805524568167236723799329161435773799043416241676099451818042186253583373284191073161991389620280096239456077114525422186133288222857929048801256529965562880534340855092313729959715250542692044840967458418893852450696217605421522292476127072783384015473324485847170094078273978827697630891398008085414659606834897437505414715643442095110101800655393137665845836928073390657873304950745231383498669147839090577572413996634527390740595544727304462009565067053593449234258996579950582220630287805953692125378422561094493871157912772792806799400253562334655584907364300014183447727704585181366339305031734437417201130345839423691274538959408003050977569948558462085742985280741862573714244108399908952847802493663146949440490525276329361485952821157752762215200036768357083799979013639106177124910875279401515343638740058097464641740554096199803399896735319937225312161698449777609185176657250689557970953565084585088618958430712337148662281991660413632841578360074662652465150211544032101691512442826366166034284662891946304356049352998933716307332409256973060775506375842025484403562557771492081471031323768681387359054950785988802488967927042631785898759133231171104855987726832479910480440484014904139853419793913161059640725673157933870411810089893110600874113032654478405575691533074511213619587340527533711432216125768030983564295864262202269332196491409434557759737757305471557864326224989447126205847934181702721512049702952123659802331884005519626862475067602075599189643953202367472805136577672132147318523753040957746117451799517504434776286190843187822064264417855116526859516735800087327584772838881538170374052791681650510373992690592162451045138073051187873655725084570553760067196330989724590481828316495796182701577780878113143294385976162206457827207877402293608211149136465130396447752692737931682402816059475232937581297446053546789907061194586581811949840241687166296369408263160892283702571480492952978694836528560347107212397981130541023563727817411707385664621065825610190558008266782180184725814246385053272537845844821244652601099085547490572266245139428814152067502906015529781988445603958735788881818348793058423640608816764274325086658954709546702332125458563581568185856397743337852927265729069694940374268233131103829467746437878410237455021409557736827611725369165490557259444617124011372341201407240512830160187448506493383499208857965126252871669133601338929739216249794092467775188807325582051635467328943565840946509285536562841238751421397645562033289608349055510132626326346785264522781697172560157279652548902477486215689096265299228425420235053172054015272663770101272322311586947207035283378247679475841830678941960474426363532402345023234113413480902436730169751004662759001481789179251916827582990639696356077729547473229274548658374487396824461733663743515540409125850444955005737738184242858047514202944085331043047857071192166473143538349378549303451768616628700655471983152858684209330295736562713096058077736449044016775845186372622287982715808992752784547571531990547622202783390761388573966163857979590531357853009606218986001692569075657898302186999112129756348138924400622661704707237369106965055987899473156192182292171862302622390856313231055014745968131396992177886837806037563425010830441007791819238383275729326157180689057086485857446801166595078406537252245143901866846833762689726768482344282041474902712933199848002921764883866215961477318143683760358778396416456080650893001257534018820892708166609867483932536858413469097961214215694825746067771069704849489060593895609267952803060201915482766327107724698680573345270692575516407990115982120870282072777090552189192438382216839728783068345427384687543500845356299907639239271634572507294465083905705675145364498225224969442689091733061016683441129754699823561153496266359321300169052017884452676696521838802952760336093707065401242517369585505418773675450613385627350477814142008470108421241019395484960492803112537358682849332866345619088208387722591276549956922005354180653970659053429890892731621164968183565175644812788637284076598913573109951504987489521991786059342470244170912877650500306312695770759854994557964113736795698504320073834849913430335982039542747596705704780693418755582624745889991982062827847717811506861262381731896726107052394860969831662016841654473409888290021361735316313191454018642444244470433878349175564222379839299462949830170900517412299627869017865205204760434204179499987744375862920829589565207452363522108117453273679464708497156345664081696750137468611334285417106339815723471375412476869201651825803328963373526325966757660495330198204413466026225688529575389712526645811591037705231215340399376058235390253375606964102564254184344804170300830565881680987667767209722156129705426870303134880361416610427144852155854979390321881367387401382702409690276240892017864242294696022702377424149498494503425850871198716285988174701252756237356347151963265601471701251602456915589320594912661226651459158686102628879410972618417975302338238297544112251887815323169060478204792475726858221431386580774689503348500625198982114210929219707340035027043082131132544032920733781911424066732853158576550471891314459662276900701246678393496548691667159497267743093418306182129891609925093541904582259520698555456443586194740901551208973180082161608988950015167950183399715307109029266166074321692747950699128143654661829825391307001558484503663988487176836293749610288136305435568063388365717684970996426284051266287736018339317913408608937434889655949886333153384117064355600301110738968625493365180248663185048216625082686818739212850845118889016745634678254501554421974596291998887683725848534443225118340750908801445961178303041101627833050284497819350863309968702916220188606314355458588335347492007984013257505064775669996158744120798726467458917219560016083607254163732780688896807384453255411518661196378530871528392027857846013526526449422302429328806782510929417099062330661851024285936285605347581086613808299671418051798338740316179745387538759072017635212685280224280003146498857406252520253772962298253622031247418482574477503113937095679632649263018922389386507167297004148798792029273527382246373796546213130912922238932646706368603394765627820504906565323907637627458822334557680959723045542691168918949909727486005097940469967533361161885934687072026886465398445095776006802387745583595622687638228454865710918332195911925971235751483768664187985187540148937869833674511701244218278786976258772399457722243392781402016046133793632583316691700471218900834995310413963765261440368464224098561525055204138489300530677838849271662636512539786582772182118168418680128030768326438311431579118521155062240947721967840094959938250321215131626211928731684063762959393634445535458009347655854785189742121157678522511940645275631618709040465370584203126780172554970122364833595450878836139276173377190031724203636629914981272622883186324705857103053354461544433138785196980978353050195771341169684889076753412383469913931027249160676539197977694014781426157562617276893812053688302077857391891680102297700351929016310137012910799351288840379388774125110584426371111761644803053014512228313332665273612519828487665273410442440260431960583473730399230777845862444658606543917474464825384695967705232376816199316923479175774025421413091580743160848295779592450400211671248937494377981135826815860116994925149749429075173639946100590615609511235491249534667640326246533566385460441034683966198869631212273626701960221748758611325487831390092874325841450851273215275209513142994874653674338322964927565925258869743989314705853456910500473744052944564194147341210201221164097141911298302220253718816921314259331006172282758064617652837726902281318412672862437838020486883755265077739016030685177043322254241142994198131955343383609998682242339243765618553010555445482057431913354080199024722793372121266119000129639475161564673019561078426204585376022649875703480110032157317093744568714393370454760233294835708748847530166608424415253333918987533154706848554910397752323024149955447412388866189918176604223444078950801697411113017642847006492321158360438696192929799992622495246849381729982305519041943447476671637972729846101130557086395463469341452250022555682748524318289093610086254538861952682027939930319194929379266379698457154383208999591578778135858980555389252531906855597804443733618268316025061475072283939375444602758667800449191748181062212288697357290476822897531757925206997171170855188829861285495587470013424589739907557739422550749525243084213234038996476029374410086188647807602058686647918818006344190041276346294432050470586312887414468250776888522099401838982861815576259144410146599769465540580588537333284585582919975165515444291636294691860343588601311642017051534017076090638793492902354126411559884232022219346472063257310513034921742148924688907051542723595581952153530309266875096043264991262788117338805134782941673208947451947088792465385689766334433512505377869403577665531995847833146822545997827844279048868773362574714801749786724839251875271159084359991393156503679433286184756685372543333683022833871360906205920460005970166989647227863916773979646712396029390054938594639898503741823023406333700337574814463239677464618847019053084824022261076444921862017854272774672972265042446744324061290642741530980451119579255595094135849642467303039091377110310021941894335294655906728837684993839379649024773135932023744238993810375758632171467713052239016350473058195009924458424914922194355449411508842124321006755681753992278145461823203484149496102838234689590879060781257756758593147187935942424088745256685198404748032852541792467836425306713500083121765542132787040396844079763629702993313492422963747043087908329834204309001966792210712882718708899609216444047296136715666608855646271090490743596978305786038058723261063063133739904840080899817391898042900130198580093075244659774464273831400473993526258322423668354879923313187176563637708653452835575388901761089039928310544048221775796438280249162953209732616317225222362141082899638938177759353271073754415439493004382749881329035699941345330201142736862625688509488000672955875028073737562686811153678688407748458296691598210155514818307846760356284372097737074583395496573218152633692279336662059889677755454176522235298490315093152429793639371813709609904369654945938607277657126449334073573581418794717224354219567677204572493270660523072266363836830871076964294336521742709840376357988270638291777121062186497836461868468281112791984453694635134733206533345410854612848870657913423520141796462789372255913954520809794649589968157999397586695853855393048919756156803765416778715796940812916227998040637139128719833810228468671098642256370507199979755435541880816757249851253174116393340879114904537089525745018517048973389124294706814991444908339313473584911223550827961074084993953179351544429210867134425302563015441625665902360078282801088387297351142965719325962644209609950171836475561889972700508344258827480194018808270028148871372978118333824640486428362511337100268403731030753621454466773678283698460906552230879012476396358021658103867441357059601148406550931387288336698668981108553757916950483571785877964018360373182686856167011169272097301732191216698592679786397940355407795604785294363431835522806677112889861450795130557517946057234027433625286142748530290128044170332056867965133913121657934935040440325290038335541392233173941304100285851650983493711684914137510209325370161435496257323281131258065123258875190406232538753459315889635553886886322336691307972318842282939346739710130054972876674976643042168191623633721000138270539020086928465062843154580635326421606366245217148912705107850933673498084369406407896373160626582142038043292625571349644275030922877274153689670186226900946997497848117108242793766111194286839061531436030473055999608995793420501470071246795987220815774454214698897552707202911192032010960563206272986498887730532738563712785969276787269301556249504678626431746123441530879994544955586189991520532916540997930525833986647407233938012448993653235414838902941450303674024210655876826783584677623808102745925651626192932982369791107500830700638963175615439921818882830762303802723174239695908556618638509406507749048386054430195954534860761551251323045798983302643670556758338649596586663761481110624407709607521593872257498720967896423823823733162609466581770110189508226718283951712595236524636857907233737629217559774456610164343537499293954131991802860403301846646174401805775273816716209788675670389720738865462093248517964869544096110875390054013265369672170753499948322459780480684758987074501618510519018874807089781536902370134866076532593350720376301909164091090731550518890449192904423279438750174419295567247585936933328952757873004420735472548446755710672277907985865591271774859517088509046977833769855242715918347742110315751564126559588220671471319256809642012553369163338906195757464037641880429773927519805559184509868361380808257459849268562533545135214006564097275603081554107073823787191080126431756643064266882338539852320310572079364442654811387389566307811509700894058002451359452596736375023424926297126951136006302367380405345163527171131427154870902461715251450344643485417433422096220906957252559632309583642740763306692097241505793978987360396244069368287475313756872901478472216198939886629022017972472386979004683340084716726972121213841085353934388568295678965507101309584891505070291865708837908665075229793370402249726453442372703976866826929190126998582686222304185669998362756301524686901201127302327697807533843733326543247392860665418558842554344543071349546236876152876951616361306834004430718311867010548514226414143358572876802732415864567114485442922768538144270205199709285938631016545170157701182430998747625756080784123012738416196232470719807393308163467298712802171777094188038650159866363072524346305494099945812168742268995822863862685666452653106580320329180640318713776321591233968175950889257578888360723522171317085392811292392757143764762095486852024795130041028342662709801205796094938135430252425177399530794845405225079690740565037217455536528711937620801116203355828692600665349354982498624601953957888911970773622977520245653123614358328525485069530104960561307238383569664506970469517023649344168285692604803208089539760398262450669164752797097645747424200340547628799454531264442923979924221180481727229938028739212637545919015341644421681348671938695328227671017171570246768157819672232742209100237063552550067084985974584863227546745852842526213622665923786592899154283681320357547179155271122867960733129839185406571525017452251945085064528016037974345601535172351794733276909696196620844830180512555747963250892936458808719220493180299923639878933034641085343580351215562417569374622246400287518122307247821870268115021315020867659467748018946285003252993992495643270011335346010573244427460696027396774335692866307880027030704775252809720981126509711557643344990538380323226249427180542615239859034277867630144337426132723110207939189105958950608207726713395436688541248882729835498579102927099547207109806423413702953886444777344364222348015630857894090573751418860672305783138243607676333803929775248048372565592336114761600641736085760632648989622574450741013747358418497586517178716642036156542217742615888240415996429497642336041987107780035542082722718499637973222710423895586148270298076988008474154090544448128252714628425619139151338040190794765373507694202415479506446337314879292961528487907103496024205085930161364612943465830098247344965306929347612025760353181543670705282334206496415634675921283132729139622903198915348244034025338459488214925999062325979686348234732666842738743832013557376342199055563476974255914463326293238930614796717047962382857132689012290143548786929185914990658279484672709101617161028752986765673640657793912219325537282775933036836028916254999331707489136347988786383282913775560695290612938271728888167286237301390936428800306962549120880388204089255081710024790743135344357335823418216927202669442797642113913119965167930823658611326622316029586905184422552318370952852157378235454069395090625635664473093234188935714571561664340533357594918017871194399128982607035359534635772563643189235314860192983922626935479957321580298673479318521091674770761816736512926870423778678422743554296808643492317174710055726070230266989771005428151191866615190231058852686788474201303487952419618499961504624435585434366978403683097189985235802567378328830094525138728799112442161823460942067922571102852640580649868289214231739095472848004591853677069942807375298093520145945406739846416497497797506825664128617499552172290897637148027715396959085036878630060405775102453498706871892534077011174549637016200384679440562001989083280206674250127078453945473153259124950342215568596085143023528436679824076280604676063306925234728965667989609499866811469867329836147753469544713193594072059458433774730657327227644557878104612512831016287878290616297213380439630267738327196507959802384299522084677842134338787799019125315682288175084566063897612298523506517909267831826082701191170510159232665818401244136315392945546121665563004213329945478662472566303980636107520164749624991520523688454227629128977618229956574518674611079272104676260638269795394362266065458355793615600461725127448341009073808295369764010588277351202999419295236436001535230879139481745736852600093058564294103356840458752197037524383728381022556263048590881944189988633804388132279390911090445271227909678837761323025495934769921970691431434028357045869066153224935591538840767903165188405629730018178274299172456596274848756435773611718138512212276903941948407657753257719609764823008859999994029105109838885148711280826474800677470076234250768202057960648131861946128915156629592507985293679666923536315365610037818349282483150456286358526250477845556620494980615312764265274199725987551799933036554191719304903495639275470939634033457238420891750764187739833147204734024529023116217985696312977611474919851624015833346065634291384093753185988568960756049688801413562948521439322703486052474099095939754909148666089803435143792642439537099373817885735926176734893572338614278448707454557095811698813784567532076491024368684322270659863716297218612487588463366509839263734371995759650021441914080622391859336295465946082939700857164751628291865917915084803985171958037441490518149719866110763141375225217926905213500323736805384847934209602987726842277318394112549688044890602506627805338002746983694257009713498861070670232800827620991822747248369887744044271834138047423160536986199527831923362911380364131367834108117976930785124872167916335884441349425211263541016278615477296971845424861010384162996615843583234103794777255871731551839170992204849217361431229747093695430439285435201716331125860398719075682239748903857901250867006931562081987556267676469096506728095237527933885632425638524085458576128890748179228840012450795510395110668680733586733419926936358991961061998628431929397981166928193803002590445223197068766036322741249442149525345020866994910089010164644035677472701355128027327912426906887652787412892571316028263099311896743971448107873301375384837475427656252799898617722342988236763361843932791939360086247487309246615127408637945547406639176507272347793676276600697775913832876222957878416283561693242415246790078563746453141769548214676219164391384403252772758147517472268058738302123272104479974394471000002704094312055114653988507418548568035666061248337219050645270390660755431326062481888071439926954684793412220436683234094109585548919705063706148052702101578212799252934034873307582614746560835019389909266817065576594269939595805872208480937156702659525451023733683917272394915073221273287351193516819611595028590033976859661960447572127875371004465605016401003746851482867066795426401232626623058819124067631439165512338757234776157735696902307688751894500727836534361108745435072905746088545701968997769709339640905015653030631775282599782556235597636193059603337123841642618028918038120119704619721917727167280749276700690836777553086171906425429776179909126206196372092733654943350815875579288830807405146620028713095915105264827198182704349023271144455559821845415253724379022372132432651655316211819450588873448466175094127118554088011782695745788768510229140826552607434406204070933215393294914623155558613374491196210238531777544249418942862436567287623502971974411673168242819825918090792564011500294878750642114425909422077893896787837769713040556736932410358138984119001707207900841778783325623839874605450242503924608579923795981417718389821513063535156750696995078506186903979433798127715103421489830464815190649035905373675571286717168734241090392224240608237206093265951693645947462951212991926408882435777258927169264846425590838645514645466667272692673751848904739408924865202023859723329410168630344183732064699355101828457625860830684544652076954603726251214945170159152448398945749281142919033269700190177352046829292897346526287348201752893071283230415394971475446361735860261902952289463156606292417425277159678008937157361803849492928786520189411169623394421195854332470431767090984451953430753929770278122486046221130260469940382721001353436428631129118285255476562128525933368501848501621807674781601092187775200450228907564202845160335828941250347989801005832522091775203106846751783719867287163644869951528685042854070195220622854818901779707539364996698425446864851896909814502684045880936009562034925789765174896152533521872881140523108526379176031153828221297559738376153046722241893097218385489493235603922258863020783013639826555856850674890000112232516541101770476366466948530682550939262853006897129688503089186531606515676459226595777541765107759077184327775319921792293400074007590079729294098055606620115896300751169715029237918821121934670423103436543301435700104302457695847576798238590732508601891730111984323647710591053551271945105442444141253904770320858244792140776880890484621099462752208867357189136162421414631498372523592997585589650834715408750647117686463707036349770153490080792611494797939657450532164213221879700124581729029220763382078608621483973855747806342723064806465804914298965341151131363070372851279501785790762646060403101248477965279076793351670246999847477337998241691341554554818848229551227087516775886471008846133304249899096512740335265473570744346857976968062962654751491999336762092489716925750664809434818054303390219516772778717069870206310504789943477294879497034307635597492057659975092844998998227947733921053871402284567740241374520312409288003556552539257780998581395020555710552061888214914270470267679724874139197598357867263532136554809857701090050611954255346579043586324290281859421828588778943782492501388537224985293225497188779845701118754224766300990815247295717197464793739015976536888120606660461215783855857376523471033017468063449512996086473356854700724994706262253530100644085919265677080629388029225659980147956276511761643233554742767856066978143907309646614131097040533876613715879770973697735554114739902090337437703859801189504531659806936958568625053262015329417319091090141136978270558343338026226909327816292803931928879692950721977444623819445559444049647756893940077785420295625435181730863183633451413885523664242279956771337704248517882573557811878260894321931792413494455274999545144333090998148762198219795858622603304627881810339538993325270076921529761468080648745152617064648507834882376293461202274080103427567621745281384614605434058584934541903605499440733642743753351692290661498370299553235355587548161672255265398796694442833926328336900386044294624490976570689474803533360662767826432424669901845456643995423572735377458916192867497272101913685409867158609519240451587329390035998751460315900085229437382523637045653741662391890550060840930574502705466880863257479119237723513805458318733017839744841316709911138558749855600745300519303844734809593614203125512688984712186296135091366608537067118812560499673951914665884257302812768337770970725443517369816652089553544212359269071963205856471528510281270197487037953572113453310743040856086278767063269500007892183810383474880970032970047044853894214675115802400813159657855852524294496052560230046168405466745187319076973660551144760504101155151819712368688142414823662201506852758603369383642818642568566958969011414712576568282558946378607251242493681067028978499910610100413427771355427056244009553045656962299880705950799951164553196048539243516140933234526192728229308287127591781881980461723942209880175687021221812019056780930403554969116101696451119931069594094945646823452787198730389590122771589634584344831723476893683675158792266506486110676371706685977205869359347188572657485839684437639647609864321091913473832877500464595817767977099438263282181557401370194885602899174408805989713430966766330248540482813897544381247516468573040071291633755133095660403796672208250694748537942541262576808588625373336535334472470785039779971742829426599039288221985076255519135902528499379102952958800746062287925907917435190822610612497675422607340215326876413319468697981057490891517118064813236303003463521354793366904060424052503182158460179177778110289638794168337552991498600972222355023705583249908204070221383215701562203982929795553355893511929269085785922893687694486955631418219679461106888148160045341114364733145746819153574653922267065107144550293527459856115200546410455559553251977250537667067717920766982819762440790026116131667370735348614960650953646965099317798296794617467305035129594397211773603878401098141813627183078234567713401615693335307635565735375156954161307554063074277105392836770531498660160213083576921980082816846250096723194240013932438457614321632345647990651987136204607873838621584950042937898537525597665043285272137250497981433607013684795884665586887275381247466071729260154995422435437536724373830049651292860509451834831288844953292632713696079083152189114281234562266876920102568705864874280777414270169313478553566587984388965136129714915842103348313779758624892503113545596813671199246499552146514757006432045894648572325125376302474554739494807117442782573360969688111485011531175305996169207017472928340252469159977672053376390449818826317963233746211521732848567816841328054497210116781259441203726452163880235225032531795684433646727072733462392001950036298235957356458646515620068475931919605240571473660857557094074722030399480001399287545653156202172882439747384173342682391176274822173938432446739735487816429124104198777532764811669660778624985881614045376732611938518371006089920156704915990953079812692326890935988579682556734712999093200013551302706494322001039846039495685454785327463356398457596313797774263737479519143537685892337413439933132546788516363538288868745146488990032696410007969503544825137983634360412695615432299435019693917393701044278646687474209514457990494861730661427503877019020066083384328888586341678412122225368709652170475068962158504388066974704818279646604122187136552365792354446966269031053618407992493409773113613361051129717849157339447001258551091220111078824862795390341917246761003957822661751150965380185704127883708154143872418801412423244912537048180382398364781766493873379278868865563385652445698609742812332032558745138715904101892834389968821841193277845174295648120261786360212457547663888692264394203634331531132062646223379472841555139780603982921416644339681991965233529157731331559449949918775577385392811713651201837241643199391999574929585152747829305372037812520487358250295923295008786963418053722682081076222198620264840729427093957586772635256280942422335793412802949881786939333574038486055507245166720603577472697587452100456432037172529707417624792741110809693416827935381822060294182723171482996125170354803956579260936617789161005030338610188681762040005005510573739576858474547653702431520836135092930421936508927431970297187066948510307794043166299797894147198005416613026365679201252616260893268842822503117123283731916092215509643432813484550465538507658382422561924014448389331678739754505725964954473397809071359680719848960668576962903070455833716057386061984843321650905234464387297782589330993812563267448654758704917259311899223329059004573696298673365040521027655121541382564442468976011669996263073965506033308346837800208042173116473252397301575129397024637683010922999002757501556367635916927290474115525318166914039537678896926691755857085554808865021906512686966202115370538939643056188324879495856737543698257591990410675784577891159081406690181011182219300862463847777491438230679105572313574315396015376719620342706046438522351764515341796609684390435937173930589936884440599291548968660029754525485542069369843111292999381233717366401439313481569931184914106427859786510703839327253471393134265695596019170746220148915684871623709442701704175856978138845992546142337953582729709080744553278931543212971950942074695922874725632392349805810728218529190679490543216277991839743542435438243402072810640460800955146983362117894761002610846735034189037906534321972866098251813190779334170700272226745842279720967601836704426975706693203002336944915831411815909273709457290770364300474995140131922294947697580191144343956028488457293133222622241332854838421747761759617815514464184354558613506845728510239094748026866386807090264445665582145264653612212082712176383887288303567006059000148202155297061976800716579519082294973393653719278632318573219661283727923022137688762069725476703410519648825929579287295916530050145732100683615545257634208477226334438194731870597916795047213983558317621306223248827928133516636527084338156131625915713875288701065528835247397509379216750172056902161763444494207419751757104989831118925288036680680683700497437984598732430628566881593328474249713099267035335426621229256668989036438883250350087570428108262573331108148072131536646292861713488759020440822448974692711578665981638081501859168395948899215999461480579022453386510060457394804533542816104179595502498043649819406773600673291464484267960914700184249371499315790032798080920131880749159912512482959012211837306845541115263940215894317030950871958279987554909504552637305760674552014056362133750027728433833455649469426020833240930078585565767257917055643492912036131515135721415844430466550800864451990183319923672365372385220259559458106620255224998620322152576236060651313820317970343099557259425463419664625599022291066849138232524718492383841979170086175460001167173029577465325983764321863291818606332533085170094308310275194875326893764160599495009399539093848222768338895336536710922113188290261705534896634373269521844682546156567270354435926558853457771790364926629634799944672727207082311556096561153378536002558800676776966103541326300202063030490938071386450228193961089501797479439692652883279451740878482301134878475206493955542336537005134084979954450190454871206714066212149864139958524064699791118055134849548689061983927936182212338685819018010594359200443486026412503124293264247389598847976689748638484890025889655333048035769917124057865999683697088897134911280198608608053231167869379609063490632940186266932582651310500511742182041709865718434791830367463054179788156666351419563216774058138821704785689336048680117792324118206208756269447823226454158418982453463646401583041742331297480779914443716795135856786773493797787778833023628598292665822284807213774540921074796767757521084174614761061101493832903429944334775463411250026316671579700497294125906002914417166179454127970771961884131458790764344909541603678838982545886996029504058995777096397580518902410707558502007127842134636166530296583259045409539904545738827250574824363511470644271121543659856994456115500841135783785399986109157812550407836524710901468408882140118945581632444964602880436479491872711075721370037061453615554839043320621621618212845405705886345289592927314903719975335874878679242241298418896542740370032814565767724625862721697934060416166776044763092756311047372244376916151283110748652457630703751564433160937322457405230028539057654258700909199936204446171671181360774171037537607084889845885196095895468327719754835660849464546945346472903813702511942290955316540807577091059791060131190458832203550623093251361539927856682558155510266687571034104396786295661639992412843699610309078559395062514682107408494610427845747440860418459502157371831977166651170019518846389084898949090677667337476475072775092656627187659838381161113767966952747528066281972839672280721307124339343819424720191438366558070240260235678816594892680879461359900506154075109792322091388886226708678824179126618034317553964246695396029554625858363769684908597880504662284397307886788154307472735831063690606155498859476691481498961050236624720148597266404240821348932704182322164078939236363105624770899085568621456856010782475959051092337746536118874863819830583702219862757425886496312565384901891562614116981337631858722700659373284677850642160846823179228380620944767422065662704467353403422535183334319410415790720669520859621764145110657255248896100605902189880162925390795958967218661292369742838576833500638766705625948934980383053109749405868386569474604067018537615887742643601544751165170183627103884031430058368497174864618147890354390583583011699177566075234001842236420865194829790281231101044148276899457449317030856470536935093749960051391775990345865580550164422715036012400897323592015128114029441690104863543584626372124459706943711303483116730061379452824052132583888113632491734214120572153975869181025191389373275325321073161503253004040684380008174509405514843623062728999509905465319779359545281975675393106291537584550873130668466313069365744196839147489186233148634483361105510844323598522442107740824660547572106987402359137053671065485784797000363723709732657728285248610073472035378166915512205912264079809310376486074176886238440697981407526253728010729740585751451244811120273755809318333026699415603861993747728487986857674793726930822754478574959975359507195743010460215920493467326027830681333093947359487332842606256644268697005833681384692268686147766886295949428032480441193379405176530826063684728462119742845511709746949838537567562203817371261743663123582682691494034517985531362278486802820375425648612675286322824624673120359788819349176301769855320525999075112553255524726467130730992254502156081797018644788640672576625578414549149047812217849337494124278240286772461381095404170800851055742359941360253237537896425051520055593057491849709646380444963015579336097967085213617217647003292310369653449423181847328795536229045703996873723708425092129022707619528179323607025607396278657114689911497998587887672888041746381312180867897863342278341951421562831491133499440677642771250964806424161035215371926290088440482684486489128835010036874906853100972600648359342581839208390909870039603670177558340015197046508531923537359701011856235299957913866148419279160243781996016322471525688088038260350827022387235261853222386373288345505623777753258411132131367634008777607644808436749800289192387305877958817045276175923797927022414251399706778465348331819205867037135417098057629819063114066573245587005545691006081895689669630191258083940773463913456095619473480503053359291002783643031780746237414829062458548098258003032653328671567894634437912127607591227289488887449565863398565186792055804244786262509493544767985189004343346992741732181756638755657906923744332596262603013322536290318796341972699355578454490790902722536042521131994802318769011407335897641671017762452438003024835780201856853698454257991431199975139531151408474986570595346932715195786707382080019144140773369916181760175745084380233231114608519920581621368296005664709310025390347385229397512653789869961370697435574406937202907604988270384160245097155127574926216398200508532673278136405033422790725455189149360565442422034677488752966378070958897888058176615980981529647982798121958454112890390479008975749537485252091590329311233830068181691420473149259623831322080696454152606543280378510897509231923802340654418523468262371390732394337479310193023468972353640184367148632814726152043132409089629062401446027922924270720231035113081896645878386917682862652505444835260558165802687320855265518337722598969779737334562270020245074080927132880336412559166026898567560623770927641156802971230839081384907796032309014474306436177041220334281580184382516187166286790847118367494177163678497036181476608254569872398126257045548150659900252136277210119163011488634028121662019720254845914286154529033313167617059678881573817060169350501092397545621018988824534781466716921843343747325168896799677536389984302905708712055235775820138936337906510389282223646797235286511736789191666781773465531647014724140579187238004519202464858206410986387773360457412230124870734334907581416314752302663612528775149175372901479932650840354376989410373959922668761473126326486166313322009812667725091383812405433412486551363397789499714035963791524793203071862921708907186211672886468579504469641455690268546802366714762300467005533522281553890654578475095123822938026284696562102849240019784525888736498304662495507524772203404755208261538011726219586801121473622908036640941739030005813295221962058942983312169859671648718969640271528411317398301241353808169857244033306755863214029525645524938965117641862661493772087876795877346976098530664783556719840371876750073455117030016835933352078008568488173538635127671600872974354648232212028721350237648274358900755087639543109342935750549195426008102577753535122013813853546756144482612913461821534737504961943725039199279483438521117413292751310414122729389975255105770682005009727579433930756573940176811668104626873196856137136814169471922421472927318676107958797093977093690577599829905248174700819728779757638640028650201106719932154183766789536041126099121299819087033371986070045188616248764474348785305056734414431365017460601472458471171378064866831809231863204214102906786829463351299336500971162550643141923871230140725923559542844481160652138734075355024381122251260316086370894488122329366019293111537721426947085280469905776578409306348154581791306903063913388290447940737147331515747390882783450304430744844662952538859968263006931534242751904060064486146680153225458533788310486125546199697970825393926970049142143955283441233777892792010641262700805710239586382612613900343090917429432662934529649354636361404254540458418499156996592146886349740722437611374843626056865033844088079682923007333676136008157483480349938197237948784900028320628806069045606466172934269981132274102683729461675313264751488046739472485170075812874342537270551014234569039349273536286991224869754544275521264131327875244105870698937956782354740987678623371907151777228892734204363501690074777577749219482260132613847319068631139831321133377283390253026335327578172498437692341265529322608657259802967526400303536246775117401886038729989941981698396549960145786124831034674966900769367086366111304186014782509160659757982992604649421451967489698682123677665819613909101005700868894906090042228181241025593942186617624761282334825810061654778757569749229010604095676901880744180022225657920420061301574338731507245005823619712989494049714444797156547978992266853198114270735331316203777308240881916189774334235110907144074387760932476076153393413092927046657762410692394789960173128083447065821996893583074060890129250329087238622070010792570415373348520678762308974723254698455313162395549581515532367369319539370211069111983860612138739611089868102699255886261901057142744172919254122380654612071949473289796064931665149214556024852676782389533968600646340059055681339724411014063747809492959583552339572900599664935377249739926457694643763148262581033318760126157869236120789817114120545601562262763482728258271174895625222424683265671211523255782733138784501202881815577936605459179499539456714578563929730643225398029153457232814959897690099104159721280658561755793742737195508736436970831481889106344343034184283678266618228336802513594477755634190213805404821907159970549397875298757577317976253828717255187336865303314926116088585312227606591468541833364009254225960968141679382201195066040833679479346971302218081846319388679773978419324960553597114688201954226618977316341889151030352017001881555234022419954443879471962438930411397970093784265781470294303788018594262603483077278693124411797287922268041249261797869858263059949690612580009389903172769119715866803139922978504148992493666297446835723250814677302473880491684172503630584260310694501806014104647148604622964717456593543655877333956275776140634240044007759173916483023885500280266889013504830824884570075109652181368385837099595666083646123612232125235297654832153553537759474708227586387090125243082674611882808714579118758173982785791484159845048204338875757591594057672559291044856203337853496192623465396229386279226490404896664005281039555549752302970753155896822518222168374189967024083430669534622617358758973018504350213524459371627110708291227875225160357074210989236768429141602129484201870796903895180292230125061382464418347540444016353064017455592524770253869182818344434370780897001976807341827731213472651469526641787264902875599406817477243289214771903437906146614153322220893373399062773859310204500501570828622801450189034480813927970572124839018315699411241642930673772330038778829747305788468535692799169082794659408823705489221111685276786136096396296509649773431043050140889031430299221289667476879320143058049135765005799910815139332083085783651314600768017333601667883472958310987194837052357534231663628363083531816717896017762099746103373632169824214748697389354174736954510549893227656851844804909952137351582196589350793051757323559378938405390778124220519955596689026146393276014767202521732642815404327814777108215025546470166149282322323017924747533322685227798742690765197812032669173942901740125096624106449587499024431468259620033796483207961428007108997429255992788091568333003932185600221763656916693357513571346150641069343008419270381303948601749972745075705389705560125127537514146953500877471685434032322759328198790572015756829823100776985750154162715628146018070314543561279454836708817857665264859149444148153445815686182145561488696177257874398524929750119201736115280592118254320471374205946370185589721269858472287342048263519030324668040285146793371728877160627476509117427665456432547945066360547027278283017974420151340954025595837594183715341970796461723449196131193393752713730527085456621283427164615139723308412031327741438369047121646400309810209676180966299428854625700222763857004267076362813261395974635477279971808952737961587570055104407056246136716914457298840961490759684610413490370640123477406414824782231189013699594216329154405489726270793460937849954119266262576334195528360407335109493786194331620280910505725933846982188498817123777581795863901955486773747986897252437466736802039340611401485085569161108038403144501215520145456691154825612375912072996196082509748342858459356028093584315943780076737352074645775654814079126431091389065000242068028547938055762673033670207248997086719756640242280449466883530099337704051781308978695625032569386259456527590341646458292303803993260372695271732064417234690953136351067338156833061066875398092443563989163210921173694080837995875259394380218709771024090790477141428800952106562782938689643138437571847850918525172509953678256338762815594437672378337281998780779972592265252482407103082364630832427321138736973309833107273325417902947000802375008479114953713444626709734028107555073139965914627213933734812596518805065502543289058104405831376131072880541855021604170564916492728344936185784923952663228509684021957674693638764359245268974551357290505657369985877246931863673399428005610124183937057058067700973854048352650846837048532235096871601290872372257416031819582297246723738937149873986981319326436651337055628932419258186969778186926745164741799220403031904418901331836434155814645829447957376482219434684261814851437020034864655650754154115550333826580640430185033905222379806701897831227180425722665770766374388732903543038498294394922232312705506008276685995626349813916811655788096968775425244582769438128544698072353724010718725336172602589602313400634492146965650694434665682414891653037638203156006377507699530781386853066543031320898492258501523711727371896715095009931671196281830078810478541071706365266716937081527544587244635038628864059226222205400436687506616729073272926744800906495578958045800534168096250882358783183173558709786661281715970898937944869349851163468990494615675768154157661034973830599845285076904848473004880174443319168667925264864105588422148395383036964495318907760603967296393078534676591335035388304945549075224473221167401786107114227859092344965822923313315841374058295794603273683656834499670435686212193356097274271382549810752532286535691241351137551917063081533022023532201387132250292564158404554591279583153943475416149519937578537132224208404723174982919908437503345995899767290256770522435349254687833924222208140162782933647766233644118029343987315469427869281684600157587710137756753571102037771733608240271478021405600177546833667831293602364594545171389698957267175029626699422630204530011596861941684341799213407735171508993970136178642680643820770010172189956462806722485831185101423343842685642929019955475869511463145281206060580751583702042950723691144174265084801027272607461601267288978087774290494847298065266953092906823333573528981771392702937377240191462464141722417740178116096237420353665533707766509779924544277351975156165257457555496269924717064857665455276476939649309922059589614294602466014794496867541955190530303882139730342743352488322101678015342752647216380422324717345034103480884912966537501747594104382633517536809635980911235774555708591314540036893615160640577946794374807529127311959029484288443871167097472165888390422006887511995197915666919408257515592662604707343582301632715434267305180747970253141701264213620061457171409508453826933787569748617162662417248629125866316270325516924228810938159447683841669112987891492432951676258915663094286687251717703122438589192566239609099049234118129914693373691212036988986381415841680352833149039799010366280967163670857794757006768969401287389448129696384279182927502652829073478955225387571803227887452871476600124107982302108414571618327389226638684908865524613818128648813142718318613612207282321067086508163900882494557752487496365264339546823691574460974063158651189000806766290568194341958615638759908462545383844720881838308643582808907638334088212319675741427935957005736119694598172615479392639577597166996894721762390819208058679797471293136548368368294216841168471595369068115534526426881050016186998210928669343410549433195417369211234408055056468962939989823630901358893202744673970546675092225144433385877843535492990880568107197818499000104573812617671924299463121149906866266798618886078060551511938623601476012057457545550651115065503036373673526904042023418833592118232005005242128504119805616382630677167032266853132684034813814241522084864642819810511348997338948597483257094832279434421510808092712982190008548269893507286001770452757215456338059881327330885769155001398252395344899813865525483977448098253319313721174214214035784835673438726492182503232601815618516893080260356558280815159944924071190622390649984629947521671810008627522321235251187118446994663366731355261826676716803391413173650263966298681190357202842138492109890902270333136740872830554508279354291978493037228288740705327890371212671064285190747299328958548724160685403261628955250739913420854228447725450636281104830412782690900023162437375383608074997967154016746728641400799983397108238245088367938035290534884394099068284481649458976336989960256318861103307920665843897313236920016119569803254172769115907409169191743639399806800325801038152598483087351980182522664217002904738974470542986754572174409753322474341538662201972378040561835934999465318085814307528900321001015171285297850014228323520569574374369844215180629672701223457990164383501186505371267635276145504704205183357532570003521455724867002566205899396560990635449085721763690108345654754594683010482156517355935349899651474461542109181882188033999126512134595532049500605672629856524619623204080729678111227295104091544875472121741831048480984806553730765089215876154079904129293312134700559771141038902613251452315240720734308731005525454583186418399302055614172840991014001752250592421937170923276135078575190005216072084034118097710123935605010481959081617171878254494141040507359782416686718326418109434771938060076729383241331535409297230450537935398399831407154327992041862903094643408905151055012251316617089890656495465520484599172382821913888444437871415309846413127843501067220365042403387122237286548713542677453241504514483384499414712295818218878544176959043584564735166310019423881837874438334536174543307400642123598323788152144003556460023963565219064355543251042908744250219877891144520455789401159949183538994920376416029221011957417619769689212474645545193638539536666036812645455679638407621142435741830330642515067807796692242649130859348449883593568507298982050053978017322701926442005373552081985732909475757725722404003343928112169165243771262416925950709798119157804271758981648822953882952807835117843521244086751871039417996291524885004804358359300196708691103256100202157839796242580347717099925941026476852611266142217345078321850207956170012348227377387506924219691319186332790779959864180587615002915778016898918169242088726813398353289763208969881431196740017989260163165884504199531916576850496888593874039493125421531268170432148732845075993122016528386249433418609450537497252650188533866937542098095874680005141733223703785989454803171977967951372845475679456811736252325182657968938488392694321074512777914926549210899983152175280495859253427940691458686071931188151727773333519440426499696185946967755258513287769504388873142701512373296614352694263055480660847441598178334898606794900009117446270618008091947382530143513740807340625110285445174022120581443391776124915651512062541359548240750690562608088082471318560236191024012555629699907771138918627580703265967415853769533605340377738487248978810223320192698013488146148179685517267060386290886221031040780198614475133164806688866793958151057496174907308496674000625151848632163756510163658066218084664536589527256333781537839703617809186574419247739619065063534838699906127125238628525144637882409571192230305832110749114206691568078490394581650914706209303986612421403163425977749019272941133763917388775239817162834103761938585373485031839382999393009666723466356864184812060803375099112820096473446013863098569004988470596873657914363976685384412871354178059575427937806912106019509261637407823098190911429253380269438280900080169708560800690949276656948395043817065543620563954341142163313772656507884416517079610269431466349316783705593694503440266523265640249101533810845485821280817163933325545207235210144689881140233205867421487321982490311600759209509457606649567801736531561579357736991396698489512518803844791334880843147452684940890432875308479241837395849417701736262868048943270986343190469808051098772029679077970571384729687985633739755894021160641512912098831396355354937680981148057651872069341856583215613665801062152894319524225484288947247114007947591968555109375448425677006896818683857492530170607190032928322041325175307971225374710292800736118029552566238170582466333076882293430464511961961418421672514796835560196851465836862393541819313549836098498711653669191938463760709430147978865030963440674213625394137895026178191504757505639776279618662540082883539908054769989747898333960761504649058295412201408950712336551670621838553018138983312468731292845548480048104268586771537160234563286546366820499197418745113857294086294978981448309236723662560265107484281966195430264470578829040061179607559380053831227549533522518789384803021576621287411214409635811411041928555569039666622169139556328830053405990692725626068566661309776419256388557187922733279914286170645601040988326398395251052256640774852738692779040457056148388504454996789470592655126072735274703395362587627964121125315022751294450204766062716410411649912525107743484674805817207275635245554106453756009010792764314413442955377577296075939295487989157798977426947115969568355342752382707058372497633909455379414438389078382080205356519096160384279428624780956754850080167304049022309619031590065129809956192040235915272405304228292647747732982578892990387827793629723789136912646662481745483226556504638101340866211912810266788331722498447489146536710995482216056867681460253032403987690225919212184820267551674066113726861101713794283221741992442043124012500171713503043908697920732709085443701982686554521646017467877166965395944644877221446107167492906399860459294358545435026216449254426286444158061797446733069467022228473035370007373214161828734810488559572748724285104113382224402311459373003595806188199332420437577688601712143601369972470004630754903416001714506077286169126225931386087832465907737570067025947271677915605485315614424503748313947518203839551958392949937803748861343178763320789744242064218634153860760903419618481066024657863849911034754055792523222007960340849942224897547861830481214011517957795536077083397188093141490842104704690403803235211857698695811573980078918796010389313840011403549745862997032121756976706723672939131475108721733443291834182247006538138747281711630365266286359111997855608021779160952113585637409475828401898778647732433220856304094605341739546317507238060818110487415194504117482392495095397907497206657624007970492917595102816209437820611264855562749748318969239348977013341130644074994459755779790487350477095010470338080224880594119420224345389434407621964932190009917411827275459341721230271141012025671727490936769986662871072826678437848864776337227193459208054242351710838976281963843548634497960704295614054380634825032916872029163041362508795131855209344915509526827096588872975809646224893859261662880888184422305981549862705141558892624877599180238234595125858579829059488226037591010590052105966844460533031231392661695792697462907153111396563271974602293112562267198685444855540610976890118329397682885918495475927491504013371707169753768886059917894775126320888585183741478302952410141637390257864004635050552646728925358941120579262510489327501462171890764108964526323373987917866820660517117762460233365289488459633061639239367697881923645580845683409946813610599132544398941074899425808760764706490375594969350090013335036350616028084030864436153966624321974308647839387895003025872173502565306866071567136444320930504864020435903481555039867076362578879866020494045880417383410288593438773633026837763642982609297258500384207852334253535080263890580148755503480718928535954113077833366068952788773847298402862986812615358341718523584484979659542990961187389247479808835668926928261282900705406142286469530314950479601878040239551774388011494379527501203724255232259314373318625877194288571097600978885483948677384453867814355060127804569530818508669064469944881823247737966340185574927104692311263491215752252797031575399187669148488163849161137407191830581265612484093018133642932148641071099592398905820464699478814211514803551746895762370026219024745965578867817144953536982239917361582538606235042099344956596198453990551765101406340789223498300058063851809925002153720987126382937011444803768135975206061209115486924223042323095289417967178562597281716271422746372606714676375084597561980835201986898612242841424077935422951260829088828516997073792127198114356503248242950939825007220705397925188874928329248167615457645414978848348148196182832382057865389506179754594427893264782327437923288610939735657136837055986912600544792328152459876248529272489573520372451416079384988678251326324055566545366586664295310317345541679291604884842432084513859414054941372215430935533517614943393569980101366855993593285498882290864809015119856238209642276589909332516559934188393057656200058092063346230317774231520270813198397629879255081153376108475460325736848682963365725457914643275375280600967683966909590248008418686517139862412905836478826480333520106490141015321508149608468073466538182671504003681042224370115268715166805741901796404077981144063351165046452527329435495156360454919752091771142121560471613329772330123715267787130015692563446711045823474820738743137126439733536567128853344696458980205475317830728646079047238454947522587753871995867266775916853785586586142684245531760973288217679193189835689329777715290753388395449184682653800262153897722458945140227440129059108317972826367070864441132741852040028966930549358540474251119151241149688763227301453678939283545867228807988599900524794799086213494473994992269547264461733610974813236818422488335310216386424319737243756904134288192974354596747651120671753647079848301629351559998376419567543930188355189564252172760503073099618800031781253922345058083512790179044742580145748061154897892090517067100417618721184330923655065191316866701076928643321098177534299700420437098711442891616006545274502641739117058135934477886245647223858104124174566538206067043827087856681236363822097413483172719680111136641381355474536052252376813959942221857271273638757866438928884171287699933785958614179725438118407167544172009394897262861669775625756544193820965684705314014305367930939512586828276799002000723254538776887406617801082061753748170947578666670183664821592421950348645102971468438353352904125784272591981624444841297985538332397187489682317995893548830382339524461960035488935563822491643747522108099932835745703763807270601489893809593105497795603529408657164997515239294357973309224142406706506802118425603074041645317317275897303351505507115783548887462278066148587228315894806139515826069412776068950394511504647093031761109710831266042853232489820828507396702655354486454090629260421175940282807208734626790135530020110274048844842335837240854676904866548327737175252917814716986594526761833781691653558172897731834558017920190107101253687801633844532154867631028411833328298970951128227174645436543807509950661108824131216742709513162477139749749610741743036077697788172186189326352594165605389738737962573902062191328517788207877152826872009116415761835998444357855615524144954484024834261575525904520395169056658981657360899647341722350711195239844827639523833550727736623569118363155078763437533394069519200204767950449602809268257314533918148783055661939911489080704090466440542042607213935128816501191614760415031918706501391631798275983341480732707000295311423027473477934179761045601200581087059799644962527201893695545253519092544211839092540717853731804211286731734504359323608937146127906877565978907643658853508658546835886018311741494808364733085856526146959027050784091644983379235264744328709561378910969683729420768444602021648742378643430190999175962759032554307423578741177011759998613599237470347477476950888791876758667820983539907544578117357749880645020294256528220396593950990999008559212634244977344662632135887867138961045202467769303550840409785846921184302517274764788360765568340255008639562267090809006466071528834332737252738475618651106889675279253536548124321202178516101581697646215199116825421989606716008079955855706447387362773696295317716966200199341704721467709470058976724438722541195338753174732332238369832391618605206952608787536759368069865615577481830417059204846390003649122663838564708760235742768487697161968928074450503143330384097258095364769569256900608980644339084854361997685765183275336480057709792101011795092101319716555524524991293516518751556914053884527947300983489977168504877190187536743373045991176707181700606176875514162261330374580276165804121991240863931945544616711823100578028558398411504831365864505026997738133058027983273557181544508800173418367955416809456934302037109768771645454606423333923121898596489543874618033401267630451089468545160775884067399209574087385283402591971018968592111097567366572926428383994925776981090050707026128725996087508282495420461475270085189475477365598261616784786277972127595601626865195137093696258493626139611140824390269637524962005873447486358723809837940056071303941613023449031799538208728124032772888286383120092696579825624065517908957351588209899918287481681169540184249064895862035128775196545734160226150555960413368200432133768267957341719898399764907046680774052380244560064758325322063719143020080542005764207973824819367764784136338385076226763162648918344079805184718222158452894800672152434672632447194660025203641638255695926576809262539095983486003073065183701793565881525515707188458692447071335801650645115830273834192420611637778937578535360800222411852771277415124351299759170350855627321525371121658845858376206359330956908043195889163311950313168145498721669240103843996521093805740783849307454514223880697698346153433403978928218169888202476861676523677581188282553680296002534225699087642498279355192524928304680960597528475132754922860603731883864550792432033588194897219669789738267207058829276903862805484340846688154323990271509063089899868445480240302362165287142398679025682829211472766547065730553619002483668120091736311775982842743771379940546423428281829637656789249656630432566152035178808885230893559384356979230057805112969535051599131534996776817348937995434206273453902196758803783742724109775668874710030934026561482463989961405847612057427407504188361156922869503436794142022843767435160637161488778401099482846498666803827691493554947577946081071132035018791496274954714534560723647074093189579303072932350131898821418483417322515034631618686416337976872757843601974066439281135846173683669221845425614961354734883075565472444041292923092102291677123175521026303322045015000588059360198288108383544872408051264438859363060096666219800296192308058632453107534157840061192040509657328801215495128994697366040265874398081368071121291955510909398581707848610965432846366540027963482213547414289155645602958212580484953945925303757206297226966886139945320368173550402685502081027482424031660646151290445621200346567548338449898120383311919852340138020249780638092353809622146741999932703731833861136971203021420581904364751375080750157516026310066790620304415237162475507705066715708435204786743124734483772970123207910172373248775305385519262990852765486786902756948116649587629303890068606227519733459494520940818354545883784098603271894008071893207703930024094082166000500921679260278509600416824482987745882456258669279514931536837025770413128016249035415156454724328801301715964937755158204688403499448384246185108097566772047182798240326778340094055585157389421365546823151869400241353454345960248127099539903495810400553056009217125567180073180714920725062580625672993735205522425954820062565952663256638747127810688883434167471416384613973728367839893156652252157320191499910007067937000703280007280911234167208034372482851908681517276542401947738379761316325464447644017035086682095375253326039073726365329206291854768371607587277012114101402182911674558816228479701332499393175874191490807994773759809127273287621692760069950320327464688922073482350648002240820417475447092187864072139758611453906003455788363061406489375034033484869051171952627936695197114425467613420523821865419069485770348653322621530580102512922108392099317424290752588660071823890671398373913487678603849817099197064137244447413305554877761501701878191488105145219492735967094742310365527516157601172163803136049667004123432131823374940314617119005783614133088177407762471766863198799922925989687882508553353341673731797935175254445312478155025031419975185312928615787546164051778683786161761340012603110324508756837820677422417309654477484853247250692709510544735546766243508684457056142695859708275275418403813795200142110509294732866513224723670814279091308549095889123924726654356819980934057278285122094201222982150258458214419240615325866919476522715665722408229687944767137802825036621887452023049301867455670606484266391862072014441916419449851244666534074073930844687503600584391523983317857441572939348349673876858837890046449337045804235184566540648871936989623557040635858047488848495336406649030605124859748834558726169942615995292874344704992649384031183480970569443745519891756825160672154542718354518060195861732820320094154882252764004551050318587667210918040545835861915537674971359015281654355053063465931119399752046914851699108258762178360457546800153864489294349663268528921870353857741029113695133433956412108791840893930984047388755862759415728029772128659355958147173384506188727521803960670029442448341804661118904659565513577710211284292628487017312187809061218520387124869223864787553792675412989025620380380443985440266244239996321826759721520553652311733237214112263962610561617760477795041321445360204479365244346491130289104428003983351110376479935049176995253093584577106761309528613184230820598804762408086654862833969523920349644485026982487720039821209022906916945140556008409808596668754973064628082481551336515698462524086695608662098354960578484754298482343256668258357431071160904274712604357085120454027359403612783568920191218052073490730155334752993923552447468909585326403438731466971556172617096891754252920274688584946165284249197047834846180034369335869846499736371811128468925931670151482130559805321920416216772852622883113845643285282115736808999130057436098077137123083995151243010047387065652882772059432183441729127611979122964324624973526861854079221215874053136292789998890864375417705272270120604292486403409435909900412148333976040032260485018723868701977906109823350748187022443535569656823174654957192005327134130968415428726204620370508345951196088840599574804573210360183011832014584263464770544745173138344296210010064318956028983699844086072434486465085724213780485230292409620489692523411706907283429066137064854447939449619422444777961689581801152372895240310358047490018712991001114245738691889553140622822688377732946686213951523604654176351630741415071570869500526608903276543641736878467354311625477730178966672145550688454749988172752616945534554050687366457354623643999604791737169448696249602073055665993624755594155646844854677649907442188519085747892715873910809386458740164557689068201371848562215170809209069668877431576953484125185923747003854226346307652862219388266572088393025639591911164143457776662187096395185015630402835579696449697209887748792961169510411968969141629843509104682670343609079490518445011491963687476805371275111054357309174800182283263844760924163267014044352599933877520113786607062135062010638383922151613607851870079040369524335175530492328523435173367073649214380978244364921063467153495349657101243422361793734522438517711103141332034539216134107926404521538554933560331573972608955051336159579405006241086189418646822113707059446463450047257895932529676236554528581068606172827542745497710552243074455098341638742498857462870100975134274690303512236250868721366399768181054287577317546235622383565287402286680720614313986572421787177719941333932072455530588335254106190921139902403673690674866786591123833377478499980470269229173308421671563759314994478555691111272205852419871193482552644909118232896303247933930174850723537105352423559560374581931976671863587495968524364674274794454046164072531280504155308459160973736836608790224732720933824928122631718154356545447158791875746599000766028776059149286760719322298277342893628423286726487919391510113031825540850894971782463233903610418067685283837056503787906794104309732388135142415730857883672348561316483426165796746363870867734746409948411385872489415426953465466276098661349843907642667577233583582472037233096702304899337270192643809231253424162990347670140664376986177180530180272793183321161067113409348518935065492164594866122918677312613408328515620718252996087164200889985537129455726927254734618084443587493421310215409962344266070396632014259408502697479833989591533698950211055791580413372576914831335937211145554095428022642960312111494687510084261113699259550356903354107733506747840610035658045875926090086546498562056039338386461701037326375148043092117655269534308517220402041760770176194118412727715216603146842581825346450704966495667463711703121012391588225871016240769948320352955468420435515436233917628097317527794691324957192163231069905476737797896208593190734187225351928629955054875628905617498487079461577199108126391620041265365783515362773547064579255261765520474500904782296368038701868850081956574597694413208023712904738431811169564401070610276862945263163586558742794221951577477392973866362327962782429431505034989586003288313032158215376635812864459908677332046558969648204048476286371460056300005857769557486502518158894136027229118764157567620082369629661493001832229229086341047275640161218192985128597119453897857790577048017987134577815655226064111797659927603117424173193536722238259716852826281716300141032065478149777809866368513734658823328762877221331350222525670386497773960851840988395178686063728101373861729792274036639043703690108673229893165748186472963203461430696161392233198378136917305356804450714115917725627417670479126264854403068806216515542750519071860146000685514687054426287253521761559344964795513138765809919538009795396579055267950852650916704643003742098635330754456372762717919151194974651662933966582823653188131762813500956914089154193161287054647784058653311200315036440824527377732055567999778689134321760271518464992395721660009005346721689467694646955948417741226850808533479195026572055252182113604909830510345778081071197415227256334950080627430752129155277096971388993675036312597731845738443753592720468400314268368533680703396484663209266556598870850703365623586325389664632443939391674574749150545195529129773130807586775370055696242236389299041128698876440284280160992304304856278182885692239842526920276876737956353486562842135255199780120606804455947469260959223262897778482738879280680849859935075337646446374376933183837470623341200491793348129097767930140173537399915145731411164627083607464932924773038895002586321166294334162059246267031148277285598070480523549271270611823679087564855548437375919204176046474639424251272417957586753457977318943055513789263145609021017566516699085019699670998485261923205680092942849404842903788315649457788825738088870874378587052018981808861189551901964544653531014737200699595444502783434562489764880980588231672684742458210904646160859335050016249404886191947599341978225014905860950552069334723477051758026405009251521824747947264650248795884428384666596652692485422172718390023476404900686239252098822047883773154135162035787467552291692922908554078445203163462086373967362451417669229847958100535418151959174851435894487497066601221660987522942565191614488947272890455214110269665072963843375531712043461359596358716895009436790600623407140721224959175225228022439587402821373068997461414818917103745521783904331497524108040503919964834684610500775030086122250591818492800362725786911940890543370083414792473276162017841069855480070000877573967250007653714224317729730248975330359107536059065828526732719207285324003607059554780265937283320305926388358990863245074604270488487249311006505697278934062043914823102963942776971647958179941640714258247998500735054742292779676139977637746985921660532680280290944404897908715122637656841720286375718165407561668055708028432067945854807881250728133216091824706611233384031436026816502769709509298205193209731293268752941854229239369801748750566203726110207032835387580697861101309119338828220819711643188192585587066682944536974471033037595157035118440037487660129999188850418013291480171941412328733944133933827827354104849828629413817872956051876097214628728255479000256734396028326204330724067846978866427313530577790850928657551881474516010221021372689902272085972016644164491085988924106652301537960033349457665242580700299548050053128858022519893916929222262012806255138514825782089937272747608787449806733844158620605113841032168658646616088421807965841517153551606104448009266508625883129332643999693791956952306625759228647634836326745086439155116467874254541458718511685948790375580676963769825596923245757361725444416669200713226540146569145508427625346135207535815293967849000740451130669986887258299776755619593205651555573585095803069754768596974713837478732999178635110285046881280013194366061827883401313605123209979539204649622409338347037428701810614951002315696337474207936381332310797198526759014887646041238290592169625788749848078995948191701697310259621659259378432131606434301183033074398747716954770635916541890821149539718216136090987942571421489682381588944473399202667812957798114477496625964143988899560429311700239859538591724862628916730853107087148485796051543858952529786566789457466373655741966810350261113129585729849948100240375243520241252994120062320657789804422021780788405167603022948814876873277106981918722179268554491870437318899101090985100679219866560227384410116211956830819487123337824882203230506505935165775817931578486553455886296468323622611608533261555481606001568632386453392221277513848034674066611099389436045722277891492813405699038422944666763369468297414051581559187633866604008076214236522663843862162922564463279121497455166895570767558203629627695375625451962032760706903107504072663787407683845973114593203331629988012388219398668248263623623485361226091978804521697183395825209148273430634349253619719321842661817428824997236583704155567636939482935237135339811206759387889057833609635871785184151647233344078898723464947362481422479804996379325710799264126305637487891680406334554007807226858422914896978637308942326532660021267163660792795736792625641653792979456430493410854748322392339912739305977480341381346279907631705442384150237404888665587703411171574499616051853703332186737671492622330709108518904268046874692791819663971194430397722960177016843512863563784726798049345350488459074276087492596821714063714712663610552605419544932029077225086141252568832061329874827874867813427597491782294467270135512479330828431704602778411955514653582604481006159776473200651170427129071114911479796606477949329460322419695191670965442126363256154812213055520522437279833457304848658260614451207162874435346802231278751941077875210633098292964764501217325732498605307678996488178304369567750194417036918810329505000887520017131700431635947952512729036817188181790373340996534766463017169845470534560135653354068242213859138294516419983021138224277062875965989834131379106008719211666505669114665434391592708509546522572680348975784559601426333877503289308987676184668027197155642086251875028723642956717393337212865283367541925890897925148242057277606219093873311068319424234446224283495369915903084758205619444767074361951785625755687315577061408449440832366000516505206887625169890342209777601706832892147743869683171748412246346285687370834018704593088272883633593980811336940525220907105278339369839421306830019145354170304310677550381385240873401765950182118624644371061161148692914896258994990264199585944269874811443733580002284280782490398686339031790227653969362571382364583229850253322969304859332646934092257269952018045924266788582194757179182344253141388185512967822893062207218169685127210730868509288475809786167311540001018056716032594813062590617341176104864874064548828898648492660237780179839331124712535769729911956049886488871957826620081135745994693366474352514293767770052730477735722289836320695404169587405575703158249838197963036355264126432328184904190000429543715561769681198615045199301333685159089840542152922753573665977281640816174608670602961235355588442816677620839409429633173771263940573209183564321779179734469357409720896674011331154905324393664324128290849807468329528907167850429974836538071112306116399671998174763854738204958340325920325333415640405108152311749513944758095933376094875768428629078559141911249946631790930386536657349620899401713345415451894526271631034272771559679166611472516831352905073762500447878967651412566493040352874214514702782192947461403572806767637103697618480619977928621819587598971568863406975594728306147323422862258845118859794102516919200107763473392306630902641288309874814604263296972040068395625227222390838769573587103299821552380614696620738030643917026367491173346979499962076072499276586484943265251529382717532814264255124910139673043863278687582928198560501463865880744841103295479298959286823966193130718604338419074730591308709876229005067993974870204108263848939042972585798348675058924797380973067945303569994727731003375469545807988097731410194563317508201997939822020958016642780661365683844691386064560286762576323953607092464778172534012449875294054044911846870514601269845040122557841111602567963683392432238352372832930835021171523187350261100423668813707116212568744823927549351913124367631078908342547035023911746869937348442754571840454593506075000021134423866221285809882014235400868163545243462720477163094103041737892089438185353627163563443889416329602933220668002710152342799027462465312389703022701132523929279521572309276295439313420598302534338202798645075708922242833169866318201878406296568956271346964358273710186219270718281910310353776038000711338375712293101485917896537795636068522378472042653405214191047428286532775116091817851163039998325293168272966285386017994079945975493691824625700931515821098203115488212102451819902665994222568750906760820228539270898376572025408464175449859379636150486054423322429139910474255021415848551820909656639172066100265787923715223171749370775293027728250589533002236331350025459741135569157181282063697070186005155584355466453870572670060752796061432796167751402618178623072236508979129133907131206406626183117440174490238113083393949601493230372186821221370430418421790812487527023023709253034768142927274184941590516195271669757884204086332453078063759353400445148076331520395582531572363102631370267347811111811686977784386027052301953824889683979887203954601663504267825478605888958583490301843406558608423332182059834755244700638679957192234051196846581668010348414035572809481612964123192475649710532090172162947789937053937328525776050801981947163587024468099947380500710720813852999279017630648761546849788035433729648761791807246840753485586771104170442563991549850151739245838937929740865417941581910674183798881750942467218511654065532314094819385721967295510805163139616625886376177975637695140999410929009738423085175836614244141664383929091803904506786020982092823314761587300107519074324521698752531926600418668824684598640120706566627700743598737172800475076494206784630749799723926377952979908206195437800443575551320123607927031403864552316349293607896649237064276188906533944395057529774390148951138942864783011284927102039689895368005386259219548953590316491623637406764797935449131485263706436214187422641129693092742128402480488828143408749314755664790568078290456653729363803948050215000938108837797308893188246170567404587589550295338658003097390356439720663494244139375045139479796880222911942542050910597712403227994448400243443752473004390073776094132166725460575969296013894855307935475365508163767453541564258954549334301245326034254140331650909090681502038537304477258344400228747996236026789581942171614753896549907603893114360961183013770948537310577805293338387516429631578446362652387360131534180720179234489573463730808225471714134999972821436161371965679072646777704839900297561382742037602325949545952718990152078461706649992276110756562013105182841745037432012690481841265028507190726771943708720837321884831488421004749906046858033208311128713483436701411525422617714901507388422373621140128595444556952096058277416396898928624581450670409790470049322270189764153373460623503989025139044306305395388691265975292165375569156994227210651814302198758597291579422624995337536059519358812470448635994762981390898669819325032713067829155612077051373040419810096577704084750069517773782322251722446735749938635989225037865943217383637914008329060255329040167874315560133429665460050734635415210697036186931573067622520948550173917573780521050637574551017867656410795930301540874326133311758078151222859084457724893301207220573637783369954721967302200318429403197345205949522952824776881628379884308931780040098563263575898513298593097889203912534909522331580217609922460882148995738634419553376863436387011361139512177309862811628977526189223662845059728988936865630520407685131985716220494731798136281827919207115638780517205466516335316337948167282816204572796789672319500237711785210222474591075945714835650087378184897566369300811867582527055194006116964728061876606542092799018913276320467527916578040537315012040757971432802531138900898835613405114561459250446803578322789794240805533228533333044411419795505770634810759670177371175942108479079004694267846098556625750020232077423700403688703169443825922294338580776174296434022477319358100057518140055144586780070282232876539732008957081454019874393208539873292177984693149323890761156302601447223894604449106498496044908354843571205738308980071666308931719602139531706613610158980513507917552793736779352636325713394803711766791778147949267941497671654200443864698532053421389200040755496323439420056623268607589712358548577477778227631154409872430878290913783842888718030507157361543255003479906077493824109161759220932698032512617975133132284224718126566882873463777783348329139326087419238751899068942821371753597859841523198211624787291494906934174784030520098343159950356399481803294898105059250004227400333522300092134282503902909591415781642479812102241117912646879365431193465198300688349336673222519307260376505070326568991619349989872281432535069695053267919021810131338743585142884498427182870569420999312937839676559638202848143195935079529195934779199412296585832741693136040037548097333371611966844517436236302366399025265139881917335549520975125165011917577304572716671679543687131560073338437135281353846482969085882673116989055097368369540182947664627109921892226154965819042009328107643369341486438523052501781566285247558259971744268815619537693654580493282937527183355345723292497961086731117941489336082199727630613464608809390344348306852409357717052104074534386733694772523247784004671957050246078776934549967313198740837480997407792588328888180842657333150424373513094670050053223297615233314408269724473138735718381429953011214458267014282506366739592550996513742445507072569020280763836773140917762932779297839696930319811808829425111565002810183066214036692901895903220853161723186206113658316878853527625128172265452249271478310330096403589262521306628712159013296169765552689166398464785297033108455871299040359711156252804926537610284629893135238604057964891343765615005018891906597642134203312477097562628759056374255616982819475385710870263748040644718434379060700722218944057770467563758314496414362455949369455299828682786823241312518831681041830875670926688787737940352411760146496109012365802581216231411408968054095029284139273524743735396505221090365256908280201577083472021007161356682779296367471551745386399238506311454723416535840410306569473671478089420397951492762235732475535974519589781639078045039347179334378548680088872795587756274003179948242018129131599557041509712711625449312080925938271858492256140148928811400359716626347927321153083647901991162233155072922871901971334005719199774878604210468484274471332609263604824812596933930513403979957902695449680372773522157503747734375756973503107355697407065932490703940339998075406981697175166909083932232549694096761344029260561700801686034367596180154672044335550607912181756142036968879910198816909060765560799816687991465394921495256793542429383901441816254702255425727686644525800605851100112513682265405680155239418389317105646398778779750036411483426229048154896079071554523502044578048602220209469260602589971296352967581593886686774403337978554258103983565304185278275784191477141742370293593966350891901118521116446940339377389228565447591806304696717778228227705689806063145942276083453938688170231468472779158961196751018194298425150954002657131234390127517650415021562959641945078161996232516408678177563166720128379528316877611151466917789422292977045505672525930265733848049466818819644455256346528531976835003076387962742043368340574977369095500804555393759878625706121934626164227664065268121273481086044519293122870334195789990385083318993423338892211525938476842507808469813170472722747999301126293225066917953887355255532852836881369263886195468057050235480328637126603015335315306811590858979147433089426432203599492041980624219051077429590627977521071744667180172667471199344512397996807680827389029598025792316320961440119283045370668465856379353828092382086125199111421993510146647614690162601161810913889766251442936457060457000130442798499572500004676374177083381380211997887552698344415508470511793858753685243814502941283766923528877570460183915245650829640615686364737336042804383239491054550243271269816367222413877803962519318186945652708500174273376479415749952044168833338160957243998983459448602077475250699157404694310783316821125386450107182630015352497132512670303477829350745051048164135569961513797213824944457098114739250151639752302905216533713399605469242169328750087258891770298493022692753374423448926755291187852970569623629787296566877576936253221991447245208331075455098638118533339679755163997154532073105495803956547630955252380406136986327518400043232240200526099674031509081096292141881098904755293517941453651161474907954082234456012665376702503465752105935862174227566692533094297131245027062677828999540378043994376884265840880700884458459781041315414506045305086102403113453261306401429066507356350396281515581250252008710005735808222937269501527590229360783993050407427284798670518201214893323672225792926005832825281424048876485477376785953106323999142173938513997422075820231402876010250657244599852471859055919511633816583947699780021802194126845001127829950331862429239848518584588761381003383948899262399813653458162491445020325308042539637381561756373598987990095409946708197309136049353167399497516517741683658928251156211308064060417474637681109197215553438103423376637271917698237674180000297544712811348984167185831817238869970445822252738623319133181404535336371056628110740101668756513519592106312201961507304719198407233100784161576323549982259891361482738559145792222656375827023081646964130724575359541326088931868539162070269165843679663568284171833047804065595550164830762027424802005522632702937204893168447968161542335645271844670968933956967154464175789623066680361874200881158994667321383347147001457211759007496458253895079500002671426371109182592545122559064535508420076546095023133779021178311988538447860339648593954094648411222995436337321041442815948165491370786870257434026948098878629896248441130743236149463977403081420644038682537354210251872586927461020017609013982782604147998368710061771668451487718655017969341326688103240909552018107061217266498165032506581899186114302171661056261822778125989423813506391780880344842430185563352955529595455978258218587723068279854188039274192577851797150032063273910184814335238905763981020126847542364013686344569580992705218099332311765246323133179820721950884323302847794463278431963182319500751666359796264720963025842972926213310904291954066058569182749614240997881004979046992576934372671417826706140417068788574062567723610206598545830827345751932966635720633204100370263663050808908775500401739280300214873059270025929353673218691907103335633355727350586689270729324779360367702418068140559265643250679638179452637357930671344782051510024786446665271981568888667193981718643140804985558005731977313178987657621668310540254846907939342350329661453538236040617814509533241208687208038289897011233150583908598298892880555263474214138258178324597385617532096029733996670888690685697778835635531519947476157838182818474590456741561747389395403277031859870081121653981895068196836993019763602961097408820824768352382097818360611917099842858804161671904447861604608491314754503174485414061369796486565427610599217259360687993931509118407142172670196566906709486991823329132481353490106868819606201418520588357855173220372287060394532950578373327311461541815437463015541729449909007271401095136446240540661796325282348056581270552029311538505161836977780867449976554809561944662296365714270326814097460588551145244028214420629392517246053868927240681660484684821550097354228544546326985838795852136806060124151618824771904168963157526119115044467186214700559389191200931483726352734012208486609949055478604792989741454478017921491588191200164544345714541201113991408060579671717450322800512214900686972844687520305163413030893376419530218226114715399369825472896742480160601362580718828453985233090989851113984979606220179436417349015320746192098994918294918467086927069992264457624001537423606605637990716001346209449450064252786777366697983958866553919508890610506082021663263126742795551199664665852628729623066517562948805515810958330871451830098947113585568162136565732814765561545942727910853262560416647317685082903846998502782630293581073418765018494231552407871633788766507895137359976810373104785416473365240649823547157211752186901576685040937607013724987429590790842123798890360478382699534000720529254667426477494099324640065896868833204142537416167145890084997024323037189583353745999192607700578585276626362912646469568383773125101024865802846464568965091709151673419174448849276912288478421565137576971773443179670193630306803718285708844386966887460163252669711159651809354673034297349353595173402470406130523000385513540104694691931168945576591858233385214596756842166936435675507891534042109781712417631550101676690334586499065236102061613750495983183636098815128697054811929418489803241741345443187453535557378396183420093945507988177050796577880081529244479674153881231688034878671568421391124158628786055932663624430429631837665555856638775525776845730871635454110311349172618284893701016141568735177805580019219370727528597283926283366187191813701321330486323889160309443133017605309387023458661103478131299048915279312154248455378712293206513388235289128913565265570828368627251292618502366268496583978559132792981431875270367416984916807344009726826776927762086041972506935251710228716393194111627989752388421409263242330040396710226399153957761887892414500098417588127226285012032548597767733997350738147838345338022591587053976214939666313549982822823336453932872951480298890183723041895724588183410112071973959781673945808174948263341939326089729678105987443409290796987556136601140539345340876128765151265857945946908361950814275040110826614863782425225706106437484573295554348656947408361418798955845332442579026134311622231371434097925097982085949428334466988528964765231093415501348883350745613629895990420603718173554966112514136393848706702893764733143129614200393964159106939762148588112912292998000314000909710575760697073124968891714253842523366908169609193611167260275187740516638643039621761667472752819709256320531786435715716057751527443102701060055128591876287867435189043939930671321645690583435236102378354569627914614563309587110816114554085199352329076824471363594667364219086598767436405734884731913489523217425460663934042288064816266526638436534442776551209170836077854304678667254912846414284509416013773215097296101291342074172319705540587425156886509454068828889707268657210196860115290153525571839220299811083154051247111954048043022366201738412171634014638582652118524527254445643791744307475624627616896189838936976556710517896314374828299372860127863106851075413170306066681128713488070789929203473600188299899616794498505489346477554481795932536007723719564310607213124109418662294120369340494282456836558339699609665812174597218506449075197964818080103329246534297331709472755170240096567118655253614806724004790650806004112982115368583277804681936175242692973427493733993943854452057612102648845688768053655183154171241362737385238869183266843843980085716983230070980308991148074581248196625346470927663911467469719729168979886812098187506461078781575955849719009790791474228511523857638746855878891985934591460767439645565437589653682413360709355396308961094461054547824099647727448257301333434698821037027771053985322019060739783531752704107871154206699181962357692512654429839440280266123797997814704457726636599637576835232337777241282099347836359186929060883874282938727176949143387372118826038165428326237304900269704346556907998026829942550199919213981401355427914778393407320175656465393472285710526610973357355041839744867068290403928318788723710788640141392984010868728973547541102321399028496932185889795917508963940575768110322044885457955533961292104999668014499526550928192623970130396333646514230622517116261264767381892596943169167802990377964875281893820492662154246802871613976203147191614373309396495034570671984985786323547135048612638375734902065768187132622010324550556627953372224640323118427329806245764470439041008685680546745502600112617167317531638253133791423501500072581730564477245090030737928651759184026573454748021799181450884522536383589547173355053384647430697381442833618578104665721053861161524083638234052543995579133111196053419320586587251440593507327147263699034406077518709360369691287388263574083652280812420898621208662643657177606267650528536850726566389667341351845134333086747967146847521976333251792982384713419226371806624069003547150578740412617609284069513375192726254458898121620569402885274964735907062566295661305850281714612555518121218533624099942887936588802114720181544305530838499909931043599184178305063077085552219989076940651435645371148811563464729850997580311054033988884952708635371163039068407543103712787920622716772814903199427365668215688843569296979836759928131541012110311418186781644005644150065467802099473552572454633598948952992519639151237782129018326439384950402539639591064420925122502577395023098367569228946157827135747443931810915334356298672203012100451078990767596908620123123809872193729830642248092855730189540383782361990628201633348187531068908369622251038038719368939281019429908738291824425689973847646892625420615734886888164168395326945612668938410224661408744904181550464187298460069486641105939186052984440778215702171884686430192173868562397723390859601806703835756126299196389492289542167203535165664026018227341906499373568499297474645904818083663932351938890484047712404266878134745975260279288804191859194687024515168279513635624225118515705293804018717289535679093079415309941078390771632153467283453509378786451092542069481251325912071977297163915573498562248226012700315622723692125018681364076733651905120513881980200502241829172077221217820034910030585031996706513025829368823547675781072955680663502985071024676106431005316120721410799647380482376251938970020067089433821949071397276774392973382613866683703116838669836009047820604905051753245246355797647633977468279564306434374466809472998582650125880660457420661287915750185754038408437188725303665142268302916570009994739539781922663569912819558726542601976384931961155467555023280556128164664474012612914218832918065092572185753884897658909787093227716169002250328671442619689887277734697974725355456007272384671134846601907983370882074816406041288499347577094556634618227948260901686160920318135652053617184290119863752512210052128226464345375544278524484972075880572563589021782650086608733034967395588331724437287674864273046263377402407771845444713072667698558213383664661170767853689370744822688165105027941334472429255433126081469491002502714418617488921004491697947183591787014228399220259549123377949512802955681178240621501913712986671918789444957357177242123071300809770974546895440435936450752608786152932823259745908853660313098229109540644196470775456124768273258825034928063778724192813056432049834747773988476375010930858335898975981813274144409367650165042224473215680517072163609120774134727377851354581400119044551746702649037983379260783800444656067739483116545770450539589507371408943365497041602526526237490606307217062216066360975915516041532368925920833518050369247106675546306981928599891079774734598330758575955694834248393109766620539104989091847759295268703548045575460746220972358471727263588697872653892551663208668585283565357928920883862780692752958487866476270596454349469539967363087139807325937315337532442933079264892123444521987327154993526002452216899216987282098607026374153337695116030306823178305999035657639718387228395997749057350226600154097106830001978366550027231740126173855057253121900713026599350740131061170895747294930855276149165044568575908561246748330888128021550738706869869903931838531305948670727431123635457235334897076412234986927776600841861841256855844656446463636847924042401304621892243909745860876617933461630239357589359486680677690746313630730962162417482227335845302709550471388762992501012354462980986392328938605686616513182682734534179458067753936493176302393918093169388933383627994476104559299817062704655332022451819955860850608286659292735982712405024671688335332005732804013235630647975921703913809795182169355507123709340352574380314122748200274941035902433539953118556173637735704148213744724154251746502023787383282779742343694975804929052135269625553496491476628139452747111749714234385597128083466363692703904262546131096226267565522436719951278685361857390520133697413894700676149924167980285858478349227828518103827218772615367433880319425930235120975488571016780003179439669631823210848941659131223412752769343860928560218867635954633245846439882975954957514156143860959289356567400963755364109816649345969373406339913434546764824593955315252930033692388907213930428929642058941436003068957390002144583631002274206458696115193706206386770756191833626311571168042150068625214483733386504255232297058992497643890479603664302145931015850414924952638235168314316430770158454118909915405400237780054861625513261942046375756665682133494291155562892049198612708218565681309579521637068251286521913455957294391117601379083830732162385457917788910056221083650450330995682977631614688270769481113972071926881143549049309990222720036958520696808178004074618321073891819283603520236874102317591412189861775332286374154039607903629738761642366787960481795400309479883302401414851767687044052648272913674081283708663298738423357368529926888300636410170279723179903114032069497985955523203038075601974380567638096691005379599631002153048140269011509343345588506183850508209154594388296641282065934906496422934586945295046006847628442239646408375036430368727822483679643523382218931704721608001398985306479665840144647273154334437637951312530831883897580733704491521772937757048599169002399916013544215311141308910372460776167799784756473881450575681172094880163602585653493092334384898330578108819260468912626059652146646437775277051193578480792517902257800111623925153556536018703295523733574920841834771886557726339676095310998667726713209101984265808028081622933721624921249254325365417391133911753452698183776274109655980290294096216046629306419252439126606193797947857931335447097747337802260462362180395903850838268571715023795943235690586064702662448291463176663875566928013002061259032428682175804501042808501680882058669381436861300870485563211979886587496328998149789253622367010010614775909322058691680131587857473579007707166903320479652581312865849246722317399057514073949313828554834022899429110901195929254701663290070369278587764920910257429030523711080145596083120820664343823210132027547855290089852678570586197622635443347522002254823654213471473950705596444600139549498726289333244490642645686736360501621492934305918256310906834300101969785121154799423773933707732294817499655394697734831097204432993199371776003721666591191359425391781600322750971400238860720401764874882510086846276027926304603178743890011460330590292972959748458447858240743568611245012118394717820891034414366104378988311240310657005653243597988476522936934301761975950597322794563210399098301471835540131164969381959669866301477803797538335443353822178578796926883521943527211667990953975954448587977573727172974464531218491549165479790490565136784170371076881799999159304841155807758173575273045889227348425128089724752928342349596259069029404506350791994784025551482057795680260989213627920689126207596430643373704524027592292626361993555881863376949055142670239984613124454504001878301423168677445223133103757598406409577996334027436519712114172119554522479123225947103567282196265924188029739954961249202734974716620763458176744601107686846497694455270599774392502080830935483155651486589234739321314669401734054933590178643046110185719743458554683909633635248544638888168645315261050089899668522275607827071149734574581046870237537287831508757122062789183209630950512703977817199335154362709150329064693484236485707154840994713681978056489612584102293632503127134679140550271857787754157459853404955770796226090736409008330927342174553968540594174459829081664297841817255952306395752665034000423665019405967451528314899941754633777298186508917337219911694540554062519584127745804012253875522167166066278755971426911858945402189542240233228274047711310362394545328447575098612259009368554854545792408369437020358456456204007399405765498505163409089566937554034414833766628144864078168731460207729392587276422977079191905826157188228659545693786633854301066956765004318581262509047613836702239800664593751617353941927752501264660654375093970228108921895405739097782869699185496254468653350569488277576518266297580772395903320759617072988319619728080687288600513570178046869664688815153444918922734844588619950379462600102426982933955797147289684695825684582416974254093750750290432125633059088032524418936580856169331834732969069613877437460660995967841000588074020471515413015046957403871132406372674759686547024725038923466282718878396927923066304425516891900034440110625553840912595688291359977047441008559950764750343435745196791820438633605146061513980558449009557308072456016262039813287107194443581800840923907545437251461087036323622399701430999716740645289507579182100494617241297018069151749932815793331543963538075374452079352877447228305270326698799230572332313965856464190503242405132575290686662004560454394911382266594742607956601074947968117862198106291881380277977375989346281062936506075956753052450643779638734107952523031132266332428360122369565307378337563422732334276237394633293113867775747969026488666083592922934764169172156984386663552545791421426617799628621933033645713118644893179902303011192295026973349741781897176721083854175952025794133178033745319438686931483851415407154264866916909946359346557273843848008777109991553373048200040398372557326120976254526991885864706205851937819143438337666242371233754364049432641812847501038026144235945318212316967361413714726309276461037419852587875833357997300442692822605720273549504519307235235670191013963434649291387970819902501177870191753626967889062081680406596877923614159824470184830555730131732568637448261812218597364161180676985776499320221469818615319913548951180777565133942921617702007929560234995447107846398714265489398162120552322359740011659940410186421299120796585375170438753555453730259783857958892690601761511675413679105667763462645442123410667710357298196047053006201199417934902943390113991726356220955690913192409276162595806485700635749816743941587477858279419376431491059668078768244741923260404247424373873510320786460157971684569745166622516732168820017151374498632779163585409982158664823581405084964202776060955460771646335465884410710171632506295142136202437470023903298212881682101873828561400267466775304680193588701201722821826896961603137906613694049491435952488756511484068721530378377243122054255736074297255161053365322847117347133972878470432898659975548308079116256416657656587277031671732627303903936226965129926775088526570846296684347920088037126574193331457660236908506413261471592222971343403506819505129120888782834334581519256941662476497116620951640976553628799084965545457338160198974436626167280934752656674146666240823265542641345074376568006811210399256910221654041078392783793174689713677176736660335675059880914148142639254804128599771094338722575035828810287513328899718590209153227862426300402026270506868194623032216836047808471445802596147551093229260565771932630386525850471296331007800865002660136091766869557984258560784015288599286269066420200972459914732135364438482508585398080465349001151114095980858903600939343404283839909325368794937236976107203207191293159902935780362937129310498735814151350155949947708281592056266097612352957838724089461273169399081703411326163898133894624251201568946387913422606958727368560371460565932334970147386495537093266592794566146604266659635455479127358262619380693800808998683391683298661844107349540172947186927977625789573545442746782296041953848647829661064833674550489491080439506806270468894600211627904342729610195540033831251203919694739624490373261337161236708003878533384056827476901582532170344269689241519458834324350505646397021563879166815270969327490412578924732726315022451562816337422416314083194502771657167873178406668831234085339379562161992222641302327630725485411343237816292707565929475384691405345102543589714997692529775253421900927048039891756417032415517480292629695680635806838789819674276876141275747785362628112450950348356677376806864948832325415269638130950556124108748248521108406910583110203647081402346303786450747351470777432516802456853562065729182528136432339883823593056949800252559993881703036974423157139697995949302064218799201712736502666178566191114804411310336563253994997888342898795225169703670655673441576723804234328297084938176068185556251046246630591130817769546524655052649281739518394926896103839100028388425514666890252770174157295210274500937001948929833274649321354220774771612633266375490473813642598750028727276873956812331889281105054198986397277284152575624291464090872748636329843098257136772538406492739520164603363696332646622282919005399330584063373315565572958944149127052319970631969649196986046274929577770964849050475605850926383463912412086719847884130049728607074474073724167721620277140165352240240297384329796885057185450874229595873948960701593041879917020308121516564022968153945079621055888883258638991647815155859227519615687228646362172248464449260463019182267526062403720217645696413824735964486565046730784016175995925109369822319959411743191007068290727035146197242039130936710837467850559139136360708590459317847636464309006583876458722634653895936002123946466978695401323291453669779171366163122430459483419689757018527793395319986216408761723137248358328300021198080869547835927362881780834790442753401516401427243908578657054892179233572256016126183330296080328916315635015196941263453582104021290993638219031425671898241900227646113584768466921278965932908187468743930667653411824440923671839667318780739834467051016662471816790088142973843776477550469567884915804289161796605783963105758386910714121903997093342212735571574575425280520145446664178946988889003344169063946151400385588357198319497631553714135623427509809911100571170660051290493765043162415827566847903842244980881160568468536759565435661177534480752348660422791753812355795852357913620127906391306615521834546649903928840320911149927697558603862691336743982663478704308111006395912602334463987298248455506055521095441368438345034115053666804763330363777074880597806346467863222485595289280175461511462086657319353480460065130518054965864952431122208672535173236392298051777292347579701383279765177502083790350283771984250096712563870896157391940358356296555543341001197276846001745061392988583233200850564086617543246014599332482897460644636747266725076937151865062378663816070300658827997173192786249200307821918662717191442485233606078842008091770328602040923252764280279765418609052942306843690089407284991716690946406445929711323341499505854162315678028504286814267488986358579191587997736114604258028903844398637966764166615265229518668156832525297166512219056682719814013817076633358112165126352354604299104450678646138212326798418170914483470070550152357167739044212306248997431532825606763451280430925365826217232023328759147080651962472779323456169138058986127705603929361163963615420525865189353625497985642801760826804433220661304618304361084196825304886689442127171202429684780688183196201208482706000750053131231328809450988872887315814032492119880743107213561737944295720303190644589397725235215706201290230948176410289008692701011877896063390074772622691671587826667445190811879909975261895435266558688140997355679569671553245807240360471524017048622633345879139288382540064133209073234609528089639893711813891926204209442331900500454336947114000168053727527876522629418753415507481662615159772506475817637911416809438536986319869156738789275793055972328677391446932455153800929253402821075151561766971985855289449000683122786513745950261757791275235580867633638589573561017444654215899808543303224131082190919216337262258773315005758199186365715254722889765556590560198353768035367117600458625169299277699460480424608995350377771736849668537427136414984232447428481527319852627905195526599529288421792734538629379038037845912782440889233927498464170916142627082137008152087786549363451718354873949931308575277473276385324422785842743621447202772670684873060809247298822194015983848135585860403371916001252764776191631587751307714776737335979236088220762926594563388570949505015573178615136605495092710140622383767971267762623096524960219204737446563001163483133972579965027390515060954763707512696137517737366060185441306184644186123853137589910689410234265469290422594984689317829308726825991092367093411100126155650143162052710626159284578062450714615174753958635684055360095141384936847520354828763737246448380576745894511919006130340980629772465955229069407058403086479246522237362623478159483895947854325147469949570169656562036803626588808696382140310907038006106743535030622058458750334121844884900729148842361007827341915533841069993236572883027616050166281379297284572454805572553293358461194388521474840117316675337769143423948005412100843920995164443304352842489509274855782913166379150591796422845322825168984385439159565448619704734777282981229793375528670392076321633041931619648321715474435600193870673314159967607924402729053370857846303612759351272008456986192388871548350411441430171170074473898043173321705643771739498632250352134049054482534760018060173852334239584968535767269421969059966067524081174609551823783758863639707857839440098064433380093104113872730729302915986700029272959476015944220658307222325306311096770596454410656722324199844005447442376187746070620396448446012303461176506736438381864865596430754526890034819879752014456350977803956824868689188441707133105778925076492696771238260891717327014239972262089674173372593901366292859341135295503079918397461066095704729345453611235143519053897010721856894434014171525672707047711830350562944291553327416559191911551279011211240006447765563839679588456952792720056545941961748731166834544128931173790755105959033109985276703218285130467793072916011290162537294159372134346327861907894098889077406835914289575963350144394283662690729247669508069111886194030677703943289453867328248969396862616915722128454168662673415925252851224704851010738957389802917360628301006572022744162359284309057085042593820737633999312621814792073306719353086777282347110378914828967560202329870946083392731492394771776352352169782737376570351623816094305673091417245236050496674148611100070860037956539221973029313637848888270386418499623241801001588281401828908174241563217876910195535443372262067478667181126803197911486463009657408196385060840341674719027723786405350332208966043532566020722265777856899086272831033516692686636108585163527994755254480521216358716798416696605052882594041438936920433864506669800363932363812993561999300903071027455380684252147140637324689638682154670644228854208054825391438892494325664873879141025959042907108774538609906676825832964561059816457868367013715429248185609953281631757245938489571397738472449203227737704383450625901208514567809129231827358676852811588080106334338172966894016950307045905492310477159446316258248390204125394537824454187185730404304457033870561920699431025034707380569110319054726716634266861636412310604110328022634066239981370232084237905398549500990774349156340333435729046149305847538936063704353414357182613397798219973527906677580300920795441894750777181190947209198195842597844472800382107172181681754712434758825855832846987360649767080922106611080848359586355473585794272715003663418067403579856192708618626485754772735660738604938875938571649662975235123831496246838000364137178561568116375867750562501897089773265225516585302050106682162650697673940650817234753234365595728838919801946406745784548882927929164155423804069154760333146090435055176643263182246688383096995052197758015518906252430924383060831960694054295569615699800427634604248680011912706163106638204608567702135174956096241502913607581425165807701572594295811575973043304404067701138090349421176878211249937400125570413945457847087229475602871490102886317332752620946031470045256839358306453670819730722777040770516386077658483132445786909787811372273625699715135217963460030797823498086802238679795853381671074789931118790610450988850260979367475883461087569945064738406093492143465563405376016658961564764305224012912472811640253547756015479819617602707289262964105653464434426054469054163536727745699525554242740393616183049174232943010662985341813429209019381738210742162044609057122553637997673139859047867887570668916512102466331648357255651194038211332016759528928074162161938599817099319024199072667406540387795409711428945092667894758905729588042812314775928960042909267436566283435717299459368363547389234446580981315394964588291498095650651171092570185488328210668653865071238633835778343640938176826823104628364158049413613144391372715741362945411039222252606456058230657736659833570648594664620118614368482284459896914834667765828116697055303021502247002652117158775416062619851039540036854247934171202851916974666765988094370900380308020503242023840091431231016437393666027774562327344224835568909562108263355053864260748220376147686621948203576844120956998378795459606873574047532968205313743771825440834672645369266614789617585017763014040819705639972905190517193756075043558061131903960158587343449675821218267791989911855093729627563002458403781626944758762792495033229356393619905218834061184411383529083198653047772217584765929008886751714988241878015602141452921320517282278057670953666242141922215686597960663298367150236117852568418356395516760638146391933805262860634749156376382397243298160082239469446168705390365807353154477844016313405177769672109963871241411216838717133496218258279757634266710243365028736733127163054762838912129410479052084817006263635368229773604990228391651682200284336566964003991514584597946769003992633809399899169014225633844159601446412253528936407677978574540128302430343671530193971305067359186053245512426597270533767538170862352027548760099033796411134795810911496511560644936335773517793352393053419941787370473721199270282650525431263247737483605915648114438080690905487428770687570649558408584708065133143808649398516033028828924134204487814781149030852917544139949165833845434194818879683913568378390579450805091813557405703520854771206781634746754059322560397095742727717239539454876880978734058627614755910850358058631374434161049296277089476340755037425637508500702970974160209894052287830097141898954855672488929367487031801096216243853328023300869760401341082655685846752847173035007166977617756358111110769887687925348585096533120718671918503177292204634951841789053465148969868713321470066265047347070460585941305139035745649052903696986136081863333279962554306436266621024358109945762442312551117493037414070378793471458955569949166398492391196997497502112367707053051725766751499374016867401957520842171279158605343508682011343027435966629977389850302367100926550088345413247302314025910853902840586762177236877211906442319393692867376657055631030430651401248643665626784375709182485295243718876794271048156702606819057037122027925108527315538316827301889310310033814324531186457039371511113270715788543121414157149014630571774745770125907292129649042938853864405304559892304906465023366430690614532293060897044773311836625275503627183394859992346995210607458405254728969859633793970937690064076920741333742864154553058958864527082257918893416941263531463333850910745596185382579213535544021750727752970675390186046380801476491835537298129450501906148856851483023092263075535427901506117114501792347989977068690109298704267380637313962625999893571143333414996640759080640705679395794483869644367983478828525627880005448363921089530719479742123324537819962196799726282852465521773035878181353488629137890246009682158047590125108728714896004447000508587470400503709465413782171174670303648301788579218244241509176786222233285486297624442299383427175649707223742340688541316187613864757634708632065027210731213561586939748739888729684222667840949559933772214411323320545619267665630583285495505518380496801231492047657376168935778118912593029719533937596550002241780876675288758672364291821927808583383817282504731786343917039310963471521484308548254120588709055055729912553689387265890438545455888068577201304370094713975122744082350721320997232938201491214423093436533058883554729031321547920112063990938174481974309217887116431921900472134490064110320812661352517106826082245386802464483929226754432522897374244762040707307588352656227522946220163062629618015784880246910823023398263050497687377192530807920193972046723560222831134918801119908445416324214397662082335270143440569536707272088089965736012314506999697377828277645122949606170697928040665120312891712242040656457133809326828883150306812556964956924324958529122496427975412990362238639215579575036860956717889429207319436137456436923563531224405993829498258261836592583937998436874643416721972524463808945806508922696611280558656468154693557742270239776481940230899264478329076138841267125505379100725072888252075135750554240620785917301475110934224872799419127683863441870520217515917503990069270413054101511308148163592216154154520935356229961882952835968549765439474192430656884700293105424450977917445032667778638510530096124591901351573615833859983070663121690676968969554451599200467714063774920844624511753585849509669669401985276521380843320842067992570651426689582436742963277617315577984190557465065241085649869528055721365542907333863998743427109186826449352879061148081277635188970073922674788158423026283166041460741658226738347647566573423744550576928598336694053890223256325911482327085626357109535039108962772786369928111639070966276403264442526112163560603815092396040626094970379114356652817434083043775475774011972142496059526841637355899891565304449555666869746595312224667159437065215990511889001535321796938087927432176984767987083340413069554288836000165455437830583300066380249392677928792033534489624029344229779453716816476334490912222070724889655881739274114193260117433379268614927044235954737661092462144058844388115935872599638661547152536070161752464345841179029280771605461071707238565003192519158103775390757024046580857388506497389219823525547201579810854198151443535875533361342682416925724319206100243679937400874519397683133010088442994271809996615015586281650409321951543356079894448421868325556631194161580964145698926491209570226469767321598682718122420164900965394466127791982156851198927366266539290764605971407796285128263977177367703526113004724610601686090899401156539574793062464468210661972370757951822065899454130316587798838711991420846934730130937918407473998681037371419156765228865449543349599434161174149967456766298307400911758338895375143860422139072097768966110172662398727576974495796011501896183088124085688748612649334729346837693266377596068826065137112738091182806567493988452704311080891816144573512797834193597490140363845373269604440718172281642929977395403297652057980383587117530790162985998970508669916047235118471715667910236152171203549324448949452951614824381997405438817278233612160545686626407736193839129975422114540307269318365593830979387983434444303202383070715060226971357005410787287796888860174462663151096118584009947191903669169957992826566933531460280881179662798606563145572549628131339108274438363058191882147666375014669668793740079222538623882704440735910250180989315184918558954584776577746080312371458547241994085265658192747599430943502216915350522047628685007762165703469353313194812760927247742404163141690728461429499879590040154804224216084097474398154476821804989075759634158047181203788692166459129053670139798154210230963876741711585413648051971999303016331765367249244285915536589733698953875060300665972695205220848403975428680513373227526570347922921593900822974296700097581583236916779794746909805246297351626018452971850041373981980722707379117918816553129641685737139366286986511115154203923496161548573065709326979694264294770873623886720879344480652161182262857149870798077429065581062158647774857487476960853966730058276720656145912423254899380405243349267887263716384342141683028255125266920722830102006127244971175162306814327614434916221855848485627053199271436644869138424725180834581378364976742653545163662850665374336698955647268312321851276038072328371497852970625054457805897338434606704861711927578116757774122324740472020805505587074328708213596387427500806673211430050165234177802516701046091548265313284176092949643798531484064315054413581717957174054812973604501244904615935504876118962429616440585296444331979996664464247548172232459048987621319941684516727841421155157025388446656190211395757048244641624413517313619897195349138558878095885907248156603286856020110405507554824990998713063072209897451936418096650538822753099236143913789069205404384728571321829531428083215511044647574527463027922631914531580316814841598743768656031915850204229359253561375717606544784005683468226416672780756236867060881528323385580031859262410864639674559275706038240409177962754232446238323255539746779560234434489555988845824631503530014686332178281222645015393860650518446728920380847105904064056136838129627477480819214185950013614158590785223671327340794994753177757017121854901831232477392149147947063844755913836702677851766995646305407233492651470604443795339921499112501471708623355987482609064699199547485200465068858414728715929406958287422742226247842836869530841700435907220610107325254143678702993296123279429002461346327785757073829515656229788463819201738259931560294498231540119847436183086057153803660891571060456559143318429444813637330770607257755491648080437579618717835085075504265002417577328567632492744800767989282785603606938436491643609190841820075206325581522533795114698298106617931646643693245309218589523758881474555957525305612994855183047226379845998095142773348389678480238762373504252457389801623879679891591784050930687816510769099690807326063454915156883601056198973047523695893704778661264359546485740347802471402487968838430141054097350785709516082124415016263793217405896867543258086255822283246467240119041877900471418549703543781301345892071733421324944069844839376570169444105058197249463342510283407177224817763794331329669655712122190763481461505821644008431147324192321105270963012934581245352745582406336901096936953473285557887302744957331418082922131234705606737149137039901177600363050609617254333061833501914943155240123341368035641159208619179811102703066742861469821229751636629646063046031174762356942828172330494803853415504137085480538634357608269979936763370168019534364367988281631367827214197334319416311762846848399187632452878346528935765550826402069996555705002981142203407752383395628260667812830967516136229777593889031905401650601327222690546502886344405353012740633757259839854182660095265902372251213827139921752735825418453450916208952858513753350051839450422987543488326625291756094272766073347328523026268006960643086134870169568324463560898996709939141221470062932260662539657014382747961782598264100591549296915945898753597182933110824989454608622959387633982679368869833866936805215515839890987423334882621634181534042204444254227317553556496354982131720749111341815971098815431626922191659882619183089349260866044769835543069809927143810686816259815222495299422939137725517562332974066285536777729831519922023601905816125150278582763325749045591476311275966882525917217747553422275329587929144486866404477501549335927857879314711747086373944629943784657386092470802522783208271719273822221154675582060199690319772497514099451172589419014728052548286938971965927219839053381707847091924585228294378249742121837860548758279633525000968537490274806488642403553967688980657643496947394275230849284971828521659124082638401887147103156155164526164429472532613456453868341493161082143961233866381846927986104290884185543176984429176077601943255667410579376953590811337339151222385341801329649135903769851719842744167519553229317970820907573454543906843774379350235294006165846717553703276952229386593593278609348487802660957080637995489260343445746109226803997560297747116332261447107944469293948447457954781016699098715918457984237304228406484622636136368870825365453467318628239985450681844536828201189401083067756688522502601752883583537003199458551032050874570379079727854575201819083591218491276949852670615053890089078547468326391065260121104932592677022506894220168268770507978594305910317894758541733241050972088469228546165105670192300488030154234465779560751288618536752065071138916407696240870646444383320963855707875195912951873959288949724126414383892878937475258725371201754246856681974287031464062413708597516871392662137120015048712851386447054700507515086797809481894639605702402221352119259244847753311197304181350301176019810074057400232123323202643360636880645541086923710765697218509300942356452438491873322270152684089614474426320208505611266246952776084979381067085022150599090734903842908883217391729913672326928604995612421764550821676990496906086767961189154452311646775419184808064281628648308104560309315405163800085146788672556855710453685494671522088328411260764813041338095731214975145614615199930455115501404043480819370745394445066224311178493956393898322221140381099077338161748834202815094391088986169488341082450231593941440529129076134780345305656426122236748852790525504572357155159860494599447507337023210780177961894518456820733414015058586407716802937582827316199653084358956112176059090646664025142887684600644625874379568344776860750127285737501924805755891042462394391585638990227867379510535283011055929282815599239614131399624098133846252983982759010729556114090011576418825572282440739407796166491077671420706462245918825663540592283051612352226749444122332155485284166613059932931252407853338186935919167977939268625336391765305002254138049963785511546266506449462087688001624875805452225678155081916332828607337550652901948372393782305766208637503627438945456173348616195165875502703356122281428080565167963500119726926168747579506121694572220325859954710116071555533507419408064721169574104117838130700360629948208873388831142142552191099638238228411639854118175654035189079060033649791107620687667467716769897687656464989763755195884463235852095938859436502603383884165890523649274676667074126129532520149647868900227485594273452738122569485843529070304748003970772304430163383721734519466886505457685306720318862570715700066086635435456867461083561609589979835376864004950114650017198381744665165076337630365884390004758512169559632516572223294730467748532177672623572594216358007118609241371582579099721356492443020048414888226883543767768710904978149547221573968720729436952942174067228901180085751096283988579708033169796307757708392852334022331936934605463070965702169890896812512062584660311604699928049730602866029479389566024886823197336007644700028623925959662120126928694773304122265622305521592701205533525350435137213209591474653018451905851344942285456966917217547211304920896569704512655012223398616043485099995988674202605561543917074732810012381119195461734840426273820662277981815538446776864409079658526325227196754242191960375602142574889432636581515512263058132587901740851577461433145886019940833248449819970574622582575948728286838138301403011152500186299800823027023744517828090343544295854055466765848810153902186304092308894251276308117340193829284721566614134438300158881573121492349124216180235430658462202831170547145211134685963975707561829680736768493071175822364247903709957858303630767131843121870693236206417021096539228928919078301996222079709552866176382850726497872383709207415722016086739223665752812376636535991098098507665556906479113756369752248549361751002105219963371007464666052757792097284983588555674080474135304740304691982743282111837856991916925736846404080656393043930225723100788008267220094483465511383997005640902508816136041365766870156999729611828332073036883022607121349518026994295386706736414387439311640417927626455318098256118860770793329117708524412296607444685238618693242092626612850882870081910805864163057307781802419788716270853439805555650407055252897045754793777596750934894737536177054934625811380686255413554035995492838852592338326127996890075762895108309388766414090768189563633643733875007677228065405473229600762742052573267727704029571145115772840032710061840972767441121063206934147612908668242535931110515822905792226376990980108966273590941560459964948524110875685585839342753385302638653958094281023483063357006741255378087039883042933513589085546441192913239516477001745031564889131087438111638512710455459609914595845466964480236089539841187910730379116177915303898054598923011087425474404005453066163452573906108086799316918488848150119163990874025474912557383915833484804063320866119052376654464343947704945801323052977718484991804044113020800634126063704784546562569798313055129574741237039036089799197344391994629573422507393672796690626642138315409048511978725471965689557780910950043157856984788559794835008842711673727123685662540291897319646767334246385940535702470312485119271196815649013741615043893630824206210606809462675443740589026047547187092243476701197354984616242466512921016608271700900358771047933424515178103712568587742210578417620417482353585221454476248614485185771534177099854366195559014789596479439461341653406424993822194663732476156884342197761023651696016730989832302575811618898330484411768566025729143426806860019923823779223560496256675547902568682122618303550017130139046910695817167084106436685518759310325192487527150432905435166380389499211093450802716556317861999641888082519970326818225344158055146842982632990448813811483441697043457758949776219181422943419985230548163109380717711342189070547163266997890940843082398662637380438579824497951483916913935037826143543945181607043458400978891329181998569193033744516336092145337934170671449744124363179906371916635814648599527165191428102135851940802907441469819327273000252236062392508374251081764769787356241540744180727408738937942611801655047826418338694955882609321693193486863875367083852219835606034610553515004993891214075301422876388407546343094321066893467117408053291314647918424988118159341505416765974139870045283977131404022588757737335837489769803155014672945403988364088733581610443556462012438785006738808551337797586323727380889260334028396124744820641868671801749539744078318183557713802367036136668196532449878513237273637004669489615956445091736561411866751437756977423874633639230250796731844263357735390661963977661162657026764020341501609958780909563514087262727896092776007455281739181148365952137810722122519872157314441405783761810787087822378940240913178509914046039856522465360894386104199188856780946688764675840305743217837854751333280212950514379495095665752941065704236569053228231041710575410249402894478219866665134435008926988585086975710056366298304405780026448656585869390251698695338067810292978718919432216277117276337691048413679134481541626903486627702561339699770468380464230650628193987832362251103087646506651984837949882609683942129790000641736085798023245965866084834914159705849276515642617748221174448400133219202525644695659021834250485823986494163318125355829369393565249204684357511923373721989175262247308064965177272823356454868415774741182352703714761651945842681981820172080066584461660586356724382524057848826626407986995731854887628883711425907734404058057556803218410869195508297046885918731062231548763341565676605197023471378311510343190163662907977355699892860793983221376167072907445822962559119359226483612629151438014781348250388821980021357820818717875296046196176010724461196115449366518129416026839018811446212960356109788418403372144516913138538356943035645281511591019383909912895953477011983937712910193406049005197689601042577663612935308785098369043301731538015392391351078595585261914311150925675516048648795997237875024381559370924938550915172754238908424170702570071328318401972933352639174517130312197508323291335307984438596972057410958868030449261463397593308042375533032201251961179666068526122048182005064177039019837798699502993920599928695780331869172019903052889569737486266894382037541592792603767084727511984117628753521816328569747022705134908199824357537564770455918779620186545382649155573820243427189446789807216277318713319623617214140675749589033629778516125463094452134692422794044224182897587384640188040231518119511426732015408647919520990704939361664740007825652334265855574756851642991624013693530412898553592387366907843299530081823181345531229767368264387822362650939794764047195048234205268857367732186633873829698855725326450989648383081309914460533947808737685825833408483955534080200689634721790637944848451032129611781571125169404282605615404662095701115536645637748166237004339923915678780117666598644685985392282547049552060331287278828431087286322663814991889002650493405327490820562105345934831634071452601485706509521186692575814767196628215989528047281502325078760928723002431565549194928529927646033355599933490888404104296453905192371072956409271675954135878357841381659324371900644880352823113968304992872859792882042118212446686906966873103616224451149761816313106349701036099460796813294781615082444313362089879693065189790664635339572329276162449884148274360014920250171806505382219027652558897288931003530163762165496555914330739263733951120028449318276045995848221343522056698204688825945240693324766426513234272957612356462276316886504384612512382574559842544553519708942306055044255322045685589532044148717975426420141816013141360803054539965829422360617816155198458611156813722566218335049633884355356003660050862668210316857033966357641038445344337522646233428394899487710758899547960203465618563431777915347517607435397689493863533806280699482610233201767913655935889698613648299759197619301590067846079890440925602542005281303261111869146605293758712664302903727288750585471046868975978824860843369954453550359167175328289780896557684662467930064151151296887456395889282428419342536041928930273511486573112601149109682818080094856643858424069290800170408153010745822320341161173261502760332684003423845603785075877992975861761959076983912917627869971212271288074577129207631690385293224334139319014664752428788713824783947165157910305149390211100031616445403760136664073840380496030221748190942093349154013195449912517847549602531706358638716772962397896907933109654504025132951016984361510672883847235682963868786446795854856046734062945036178466225155765943772887700610561438403806620248328690083174387692850537427556188396898020292324472619246908316810673991362420781052882066224625660022400027524540040891469325337190964604612299402826427200337093621414792933102083977948999912695193346466798557447233024155714929427780854055525422063948045663266498369877842030383237834883552453833475815030310038923228419552110313979275405143713029204971161381881290853004987286350964802866084154247161665437073202741771232193017885647700087406409688420268788181179501162665922571038940255014045541965547562354626235261269962607369890927300559815592177375554680446791936992651665972906626197428347034032046682566289410377266171607170147552585988856155322302560749194274179010591859544489440289786184992413855303515428424833695299174985063931832102912406784089294786096993879020217432464203224463922077144740061677824394772706430194915124790577919367386289488805272534201206584545181513490937021011461047372656297092750577197530635501488892113761866706869715470201661533806504873370237512509649287226693751348961019562451830430749899469794495195084683353418208209288142657305227549524541046836750920107913628050618350416484893050355104528699867115167547798469794731479134146764588506934209919534772820589659634232788048791673126657342585781291317910197932606045839690988863365537740648879649679750450381616108841195045792587678007704086178229827969299900336423155034792046384326522518059113824336436593335884529363525297036871869107078515674954576360389629512199120606821574136550975967072271884600467669963372504976272254020551741413939811216758187137371355302361883432804812159206359077272440345673632998825062904829614241758173535193797449031278359566898005104339706817904272147735190322142918163993391890407883771294110905917141040256958618691316979416229890744885836916542676397110120997853725189306047192593043255632814586512560823245780259638758284508711912317745632846487511487919846302978192097564703887418389618960338717318132345095233742955991045050924304369983738882897800684789336899244484252550736273689215038546251640572591748264955200252470486716209560319442124948859141989014868966948926769964150361708855317885330906994504973105891326744183159669693933107685560811946294707962441364500961311734851585875484246507449255197048986690557509264013267434695167702605813387079504062894528185633122875423050157596727844418269918934414097705347013539303795859878645276884711829708820167634551363043884015500185603037622312128639157660327471259208045500083809249372364170160417400974516114814631597513669659222645103068190972599078972520115505206324682593471249998986128607616131045340587508958765414996501301832947788764587364702163769570678082237575930772169308360916980026012373089096511319536561311952062021407879568331297428337722148385412806339623940593051253281102607312505613449761497127475776902936424293523930128272378182365244411351436788971909480689487316717965901952942128214687366335989091388619463983375565099176100117510056113614149404932601106271994418884820766545444580484492670367886557074680910365068376390373716628040699613488407704427478822139650530878891722678402631009851216545689501405353960499231725352439548546894966307582630190261025902912365746926806102375519917227817199184072313419036415357101030549623316958939299759255619242401963414384662854211936884696983613580412684827241199154002592381273417232511805311571863833087754446230228625444240652654750381045417472364695019940902917568832319168066001609567888469722336969094996096746240964850241333734349702575597132332281221762626235380851514234900877887115241353827904796017077926680218150613763552899073367696818946764552490507307409608966224200760825907218063301770087280255411558922840215819966303192986676680057948898890247806029424637605786046536170537048383702188391849479518658090644082171298334430791295614430815326352993444185149596734083935259174259769103058166340042681646464277109435230781995251978352877810129676907398367120875342422048457801381428387260901679983793684571031433649534547770398802450970142914190844154286995322011838022036302697134369288346402094627668391644253510701644873469430265870777801849377515198315603341594919904054226846378356958396743589951861901735919211032251338382511922621246677880882252427985288133312869364272018194538525844677866309665735836298542961202214098444511170243052715615205940268290511676148290019678706806904601572904896418435245898762326127098631821018936004317139807357807837334260804472712104797981932040584383981154164416713264799119149345948556876540678084163203473622278701506903697969953286336918026358031523321605639729330447700531776110720848353120826552240992198075460710998738778802702015779716500528323260776118771208278444429695521783390755735915011979917174464705320082136579016442415672812046377088008300470052216166552279077687195106483938339312194856936803699382376052154351498452494818792734553796776477107600271944250024313172733860579675098049490934493749235438373647833444904182273712162799068328447946784727668063542268041725261343847819833996305195548320063422341153215371745231832939651765572637772602932612511469754195915368847433587956768909334009708687368318443412704826033916124812808298937164144567005712962520335112213177822164364364387361516707621902441632353464296602099428206905165366800488279984520361913929425436165551374002762499114510203557927499628019392270704931086604879884555281012319668116406854106268570853642787233408315274122029831139249244976257990558218903530293447849365643949846126822908705794639228120855325869766345093334439896389808837333881587805875904205466455554166781903138409972449398585433777831107637469476389530475214694048827008475120753583750997493567747114697748020105569769154136590077770890888212298396179686729150931999673030384730249410487229112459676363074222445146646781583056010411498264463154472976576124488885939213684776001236138709431853989871016898817990619273916640378575298535466291242517107160104318697550606364476655348519346898615473848062459860405023175726073222894204262653150910646121087901760960234797839074009889151360510903245821441653106124166747986204556640857237286172946086309023019159096796403919726397702478867015970846917809599853139477769469291298350423192771405369333080101208929398997703210433753474951190955111541384305959223697675800044685774233851109705526760595498606107728463039770034475865020510115932270666893655186668820546123943028570556469068082657504662842229567716505232311075234929247844849051884003384754466526053781208835372318628461031319070540886673969981371282627811904120424918827351482124843110019454261354253980615741613837304458568096586324712414709701184049095065235585333160819070795880340720691092083975821475130643515056435926893851863017070432479073554698014809012376117311432254980224041385146755446112578517823706890038175220287898769382286383615831666526452884164679748699474290330601992079441439114116734329314098128066822968220066763868502065251089782761258174205881876804239097776524994673166482743545601686603427811406073647980083387673423648154831432523043694526710244808758628716074845091984985726410830587440449058211863532709446257285039689265214882493704857801228321410694570639395250950959810542769952332364132785994021896269394952621327722384586251690618984909196344370265678065857679113738951565545752988738396992037527573672556751609206791901255227195459662500032941750676668697919593129030254623995886378460616874421167334215102188648460784798287071936584289954285027141385771127937164834118717884648374131841565302204910836861652252785455496341334307570230034324832132401467393391337054041073421608037911222216496400153083257664183865692309283003168482594344425429692545543416321387995882266033070504329786032276470365065668138511870905912894550987204592248454537579517654634934683841534575319026770736419533803595399651158186740678008780995118614091706936084291370921342767530211499247364741696820764688387189787217761169591624153609829435776085661966103872732791478896188588720585000533217509513196647901520968282135694425223354800201299949827171902855765616412801086811428264873078845622432043219571904495754743035709988368850453083854021788104592231561973295704133093025874234685049503228307743484352542488981182612114883529706922017700344624467788703381589391586872906633242360239187065906875167803577682868471063461875960525907543781623128592116926053015356633538906240960618698597271760015748411870185468700135954525615721511902577556796498814662147009611972804767666237247332552266394269439885900627605026963643072426943015719940323194713208869517861009508096565044443081607869128431706166486748118149534905879146262320167386808827776203972874492701728611333555901278817301934786224306347428142000003542180344829098340660488336312353348964302926622610925650482021763841254592465837443847940859993172117960043241068598606158882003008210393232560976524768947557625876778649543007036264579941885997021359557731932736428826864013002114913177890071095232053211248562340063012014206472050888844225616105073432426058324738985123827401004575839544857644522605628209544670100665322211235463802116762787384615420288837041254676302174745729876311505995399579963027102148208117544299917841051547111059919222468909861541573830694087017807784495968674476688064494493887648737105146403412194805390353411743755611701621076224346256399107475893422781125856063803219933547217654188509538895372987131827994160422144035348392892157695637998499257564615075372437369829094548863404072318918718991886441250312635199392247081823782109936985905648069160177066045883133428670257791681778285959415909988412049665235334099220189268016843729795821468777182036035456468351522927173310023379541486316322761288733349526310758636969741995581864724088434499522322491512935901302101741915227354172695834548876603217736988560966817202161579673192070550026113887673675319804671622308244303819610822551885430673781607410690395761121446249890072881173638213706523684951662398728246702252649845719458428356498504788629873615327885158022777849509183901204388536435023580599559071545761393169462000200485782573872891643562150653837533476867714087227661008954439457752077440300516620277295234647313532997499701868079926191569313640836015456196600046433176755235332834868890934142994198501294780093475577915109936797345518502861354366929601027702840071218068414880155991658432225660908972208307491652848289440974753081424208930832872783025459721892725062500740811183654615372007338383925047022727294971521088276171596364427635689909015858381387013569403282912350119840153003082067550082701329039759806487626237293432050086105084924491322352689762890627516875575540184552713117570968192442742370190421476417378866640626623720430841344978102007979161391403348141662286604733925335581056300663214506465129181538783846822266732478896566632052601162045309903492767207625734858543667366581822927732297896417135335685214206080374640674210436335609602805924107690560171185821714263224264945425845847738458666958355528097662175104864467391532208541865864223465991611112604177050470840863781698157471850108619471145441154397334662210725616644574215805794721493894733623697744167272379892985333207993386734360677710090860912924866885675076169304086006052253872314447938737853029425877593204749679824302849635229283337458496343750231494409394402248834147882682593419558761380570279240038261699233360065428840492861158463390404763151589604533043529830590301927280093019313976570855996473951191716967274802655112684536967252119349780370235975675429833069498443679717415559705722820149094644270140617074670216625989788042956395923033803643010595532125052407323024646925989227628504137954106167910201289092199011613482797587158233553331772206320300303471437859595334872894441689994739757306869616938389171784927860039459965092841186712498199002012462442332142806350592160582446457182739493137721916466997653446053245165740498038913548755574119190973527277962712730663953884306048813370641759359665092819158749261292237996962751720573280276248139636271424984956669164610387809441147698544089183785191479179423603258175153802533989964203099257272533800325306671594210403055154541023911408523750207002435344670069743109039146257789771366159463057996866599649250957847648975811172306194554487897670470122727273886828601608973494141940138153279158944957433178028430112123731444979957995281569230088579850818688424558403017322296205552775029596582250036582430678258182143429288904119836957168144382935869648161706493105791573862494866523000850418196657785971261587495418906164485388960303623164754888830111010155003555481501350748616327216670419072018600516228725366648837268641973306116405585614087380867783672064919209374602561190910040728523935877712234679876364430290957864317234265499038044335406300355139470120756913080306351034618462715448744499464844804939573062697558796882992786864056405987323695141765740424641705832310848480737031919736451423180681679010271587358368750559694022716931692793197774140677029369619289328570866890309169390804034108196460980315896694683628937309903379963038644669685087986566279719518052056221244089917717683265974313997024687014968182673773259332519473659356774188909950990554587412779155928613260799923259116026756777295843428214142452718487295064014104447950621644617287026032849351214511395462401883329079930367814661480268617080076671723007900438180934603918183712298095608033984517371940238792007255613538099122507342486744479322112696242195014211277953514298436935372804516907000478236985143794425167717524204926955222311164896797527170327029035906009668310100723608181907724035485547712545797339671885737499516532055667271520917848440941761471846628585654917384281926308210873010592177038819659773953411124237859235783819197347230748037427314650798084883227705278569925819698449466596932131559042175118851942230420821684315426539648508705177983230956633484446612050175901080094250262750875303329300049884393633068180447019697495301377820879981136109825687813401631864929479130880896838690394548634008337979613863776605339634044446946469192809179192436679344657434377662869762865640048728730138173394007254514964481643281850592163607870503656732410722541357403441498790167504542764389773745593935642635744965713181180445953070481824938198897070443757982215615972055942078725631572412956330171524367796849860570048670925534114597455944749972565005739519881755690587715157564051769856897481756376824778967033782964332756002789903788346115231814380188535738970343707717658025095744517516088677664225601832925062947036721935554278059692941074591176806353045071300474947958389932140100014712962218074197628413620184729613559174292058304647746220384887008487619793828645891491881042604537276602339923714319474215901493092626995916627264113891438478184025332716864269043749351912161869075886869167327541195552910144445898898827854207018225539719033717137284472961632266232309567020199415939135631808706939423950998569078684794153536153249325429188981428540239820511422397933016595281523696979797359505859267620530145488182349555409445809864110833521462546092016803005454762791949594690844814640714411950978492744175773717575152627080696084139917070423608568059360166466601108520620437502651026123157270910202223319704748122454121651124077953957985716518920859784988124862154226803263231783640336055612899498953087226131340531268136134648989574747718384092507244073437321932188057368831043880963396821930928074601608721868786531032819415998492401244168280007545909726886490242352375853203938165266081669049866718307246152678432783964795202041810840739820719876511286214125046827272889168443791369194058746113481120556025705090979497056340227980051296630241879455515750723362881378961008456917941396515409859416012524929483936870518886937179146479914435651448526168478834252768884357729493903043790752389994947208232381915100572260812530502448515239379677280775952872401925398691071958161425419468153978130168510346443348337916937026171333939503203018834249690491932481224041374266664313721825891252772577746220492776696256359957409378140440404495729862783432462823061346188592917880315577020874373420490192741418106039634181449035490177442806043190101330998706125469069373657434403617921982183681451149659564084151994774659003178804116796836833420816804043842474280206384250812425086555298464068330673254508244657741324991153295403784156881409813227977608719007418427239127165280484762710483515288218631935189795708969597247743185923542936298905394291658407126440668909998288545650507575219583277065464805345462494455398842124775357401666420082378737892385742815881415691588558045644201974006412542847278607692697197832708073738182253750661958887239197252200687804036764636963956777811911078126155542991213164462260625994972597852996507875956769760256260683151770678861215420809441861809350228084807236723110836122992313221019723637611034575972410026317782255015066256792806202532021346037027189957677666791152114793669863012336806509583320939675758311782080024724630598775456315148775543396141047965424543000347246153905999975185283742803693090237094052411670936611259394287510434153705203594470410918367370298361758464666416879061970743492510707535019023850647456157037247128734435760823394749232668665014721438562911552747747965392599748226253811004783894974661568361843973127958886696241988640181285006038207825382750909323651416119580458473869622539682422007171238964796890367085778587554490536072000753049067436867026593563760353618423946088268719371532483662635232535541483980835965241264901280524753910894424023447380293000891163075346443174314168924964746332771650140329546664400358702175930607940297591185695415046378976658081681617832999914111015723585220097703673791125435570779904982366928185130588036979526072415094630854326988284190655908927678970912117145217230989412079905068229799649123650362197214379558608817273132108718643820347277214899035550971183511467159189318569594075439455667355378948009555750272113763928640649403598272127394588404896542848586773352112651135405187490702942635611893889090031065630477043934816804782090757957753024333107420292656518972146656161075677612095207759639162213822304073829545068306903122625311870313027937990886903594538576900553622349786340140277719274136134475922537959690392722778953123254644955637610649141510504608482261583992024624705525856743134105503518641928795853105453763707130491346854465233956855985876927298983812332068783941000054009290662358761558695170339915518256138843452755874636269041583829534808730036408012391636814185208364593454518365266285417514324448228006940706298389677297784150436880113179901037513592728323900249445919022635051755962490477768208729502752895685545239504481590968746776141990130471069607453157516112744628319732439857925653414925470478480557900356752859401794990736986896282070472551418990591080944766255089694894014513917000796005187164785974989994561811342452912444682480072186053359341269152897939206003818118572607837285384694631063661937911763778364128693272379574260271166665141515856981790103402028020968653485295817311460474305809666356651667963671334642720538407284428831591801948231981549563129667183744020293103123351367864236457390839205562708723847272212840835104537047931987350014432145635188704392410700557000405908550483238341355831928764153546381559522090458088833822828475938185220788355964686826361377369542780375644192135913153630950323475092436472639477919184607432399428727750149769097856086727295902890140229905661722306822280345946279654154074651466877309376428475482944713160257350917276189515133039182665555798253250188802139313325108382893773382794417381029342368147525809816251099159189085803023625866525610222421726990695881521524190469558523540791506980818955180708607109268372275125604925746680836820788314233287481634638323543035055907729471270357727925425780664163156504241764328826473648143402960526173249845931139416245807561825903123052386387435584016532228338149359380195012041662202036916421415789041010301529220590704483443437349256483596893329526906473374259767239695540239768630201167405694795124584733046280852894197634323783119350124510192852124966643324095326475821393349108561875777685604549861836748967633566949276938932753020167109648605921280008469663612930120202977389662406615416331894802832622760393120151096235072483721928772020674131031809464946908576580330326280141339425733009948605822592746162809543987810852666017873777805468253939172997295449416703887769432226751688827137024561412574234164051176752017656009666015796107544367912250611589689890461151624330818114407879428859011344223907986820799577351443486693590242376262781598525542365766413503026672481016446752183397920370486813244003109429257042067133626699988672776615039494657942730431386978484805700269275962199307557240474650781896558262958646310739458322375090283820559335118517734466777985954586666173525636063249933344823731107621731515718752882215899588307989682530475360093987322541978589727724218083661297429241533585674506155466969954359965097873280375665881241155788267082322399748673383804301925508186234078792948889971239458023682823219010353480574918750201252363514009361607399919697703678051248864350730028881010152899282472653708643366248459850159362000893946171935550620891635863680720318550587251297427628861541216176098961403815913708284773743362365596040372736856956650627731364101867990450271897702695444907812106590862895140860030559470216738024892507380427437170357341224346819962986033084725525403282340374216528337405402688753716642527285445604886261076430002766298426885880852827922703605209678596934921230467431326661595886060752436204758946373680010973574964521165203882321647773018099610870815665704166467027557009840380695696504359964286014115315965147910609190190658375046893807617811134649949995540057275548927357720029856103930369702780932688531552066795696461621156941107572442030366668857462464945904130920886246458998110717699612878002709605928016921451460995964292523969130683054101577197841222236664008600632033026616105255071594333787427228469349570806062013676035447030677509483193626356839697713866376503744224932223445041567215617541524042745846539293422584472738432335128733715856318506580675361616585144825094141225939116679936566280477698739084824550271382489496922672200122217581602761003989065793515269234692679452754490980731398568037837578986141761897430228260569905659692728881599693900706749946047896108637261066455071860502285520776390788233971205241463463695415979024526720437877910729436296242024160854339647951270720359930931320360818122988416408445037485244094240650805748061153174324975300357703463272125082134815476718427754471958310672859499783181754230352517587948906231982721398321725612834296419061441639742307395662045608199810026237623470090585171018607569413806009167702749724883358807108229802693635150994016577210499385820081562348629826107341896277887834266737016147488985837110603248187965652584808643063968669847058553191697352744215202342326866457498664637965870558375640920741115088763229232183149748401920578770266784397875807567523998455917645346966914634214298226674596296730707390349343542104524263121474239514536750056875561349345456328844384510530957144674025427116333853348744466701688766867910492841149094617448505458589251198134504010514428980007797678290225615159041144544132700663601668697127808061363154672650555625699215427048733192452339531039826560649902496361814223206944634399282130090512862713699876756619928994845557256475242008952268859203249884481249253986386408772002665566351788111975035770213023144862610157655087631797110377573687030864522726926257653447571584467872243748564613902310708508187697583344318933350093178232776028462767141725080560323344807138647749642491746750193677018687270580745919657664417081777271687982939239798848080693279821800257869830281878610579287313834216781582547930712008008147783777126610128483970707459869899967529030768344651788938841949586535045669617098914198462411262231748609832537365579060281891809150961864731096538300300771991517293678945605187000916278044551895754207309863946669301795862522189715049393757923416603934117667161428871093098246203259491648262342732704052648503995065421419804856570347256388200349987440323680068401163186033066790269669472211710559460704610030583072614858663737940611980497343196897424835320009563402803582657629600744887603919198747189176101973599749871669632609177641124343231743818925878245092969987317808867025189400838870385892726161259896154509150681347276386847271837588456473478144492499584942354611419564277550774581518529627478459102608494257611995059110357091655696221839447399720525047155156649890195670424231145927239078595360667451093202831722296427184055745200520873787225041629611389102410443094667889529572263385508561860689628475020871868363058275758242220566977051863804459003309238910494625071677530744889456185717790570540250936748594778201306394594016014408363102478875580603924697383513854516331596309360824336757995049251927935037735369678233440264517639425841532073572745046796801978270107074533254966346082720745444854625592981501872410318570789461693041557656236053111237158065304394671835774232986585631484713060382428794809556308303505986181347608369660083185652942316555856719369104536896509086352714767785786716877064189368733678650902270034657885315926949669869847546027612042564811594235978659228985423747987051015974707426274300136272358166042784106760573406648113733660966640821032728595489161790441157804093176547814800362435822999247797668241464574177148775256812770355875012685751991749212784830996118014998142290350687320245737428581216339253869253938026860767951933733268541273749351577142001029282018210279053417697078816864870967480205167375918737961119879860418631377986417606881550555838043312646257924754369547939056140707688357750333963831260903520098815647508393918617866386354999614482798579279041873435058823533609584726409311622465484640373541932873317424739850653975601516892337028699078116034223225489623031219499596945145190761161274550239504608979578773322187590981861206603703841031652392474982056095244301436664812348923695438126472470637943004013992136007246352165519159645992495654434175906243727048055132962729567465831040176778816582471917680348910836876917585884250936595556151517685952642203415058831439217878437115117513399806412448086463565022624334278345212772356025764619808671473651843703200360603573793726080348581745414906528289638068192066208572053594113415032712815148810114751541861698982267507354520901494826020618726680518500425521494621005877805552207877487897539887281846527818922640646755351633432169150132520788891152701085196343383266902951328561986547739640489258943422520681715321642494120819147315028004983535884521411204832746751378666383366499907147811692020547160731419736598805600447488014734862182977351679007863255077525057155428538071173240309381477293148295236860226246557636915303758189985127985223049098807652845310668802372045406349449524764511382743211776277055930085107759190937711615835954436390446182181870474881339676177810432801694561770695023037445017739018504292769811782696852963630512492110606210041952351036997452120800426098503306565945061973876926504839916094661223903857059210002431594482550172906238674263010605512492636920141052412731459645583362254831102369848582335636788413164494598607200755802081476815576433540920481283466907126056786692012302532148954260285001934095361820649645311861388597663258299773324140384174720088114971272092240658436772586592707723480441311589719517505743048111357419958271617903246220182397472613799470811225162429527416013614001850977441818868190490628994055567423491427615319023103118597060791431602620846462703531001467054880200806172909916734242340118956056293728622695714934522801665883556707101092627178212258272146517558702921614379175434642159091435516316056633141440612830898182056756495017432536964267106103183747750396450862716708973344574209891414460995668889584841257191741823300397253487774805976253165617489368072168509902968888191227641367845320932692108624185250705030548414261785334603097061514421510895465576050537707265365498493474050956161428108947299478180921799917280922407179883224819141688436060859377806984906844355636390640716022456756872037457084677553708159964264711106921061605022806226267688592952304903551666508652362582040612465239521178338797165065985211770048488662084092840340659495785676921732696125788874586037653388045467900021271975736406666840961890502164204171335403453462682277860477174287295053765598447311464318567895474501963089251906978508314723854907974483579369636240981611737764203139183815664557282461769468377456275980070107110108317055372912436492715371619686527901835563245828590142323949112926429773072874557296406994177620956207099703015659533346457261270396018984814917076017010546878937375496989915644049249040579268947262286425905752656766337041462092598191301121809969422177202929804421867461523604172845674738124175689561501608165934902082937176194069428506622002291829828991061536820255725980327129983246379237741892929805100684110704211100507310027860972100240203162903335798457177279884273210690338727248901253159320865637296002030451788249244932054664977157321816619698770082188178041570527813294390124840741808422779330798745485970170492476350751274491906434193010284455969969655522802628729409809655287641570772957374813381990140486881006450179546803976272179164051807841020738195341750716208253798198858561303102013870966681798283147771685268977331869991642637928782963161294905554052824934767849794130313760748392647398343201379015720455163727767640119490768139915866979997846956315880049740103681897128684424632145533359223147018294707905638871650115206956819227233141507802023126531780010737504188129345421597594222006241227133335205506633434360874758759146129514071893644743111144529310038331043660111566178345457605805071172768448331756228452145738463895129164706866167405530817785624056059178881332084520601213020751202762123234386534975763195311150233657513973996209146208308132214312621580706234768712510219763742362452262041103669253450154406889173801188313550056023920582973072489853696633733373259689740868224043681047700770688573523412401986147449025967302291714146471012399688643495927523796552197029401821464248283921020901225482055454497952319099537093945058764866817742912342351509694415150125522562121616774531432689275890573692008000958598146826053498913435058543687002999085116574444748109814270810114180180132924194361948236032929629902473549936038796917340059145601320052458484323694048557534347583913331377722794269052115077488109840657101549799313032227685160256038772939238789880368426387362827960900540337165204251978754830357881774213654137646624396894828912606067539883145428790953263173075973751726209784464207995741445977957469525480845448545212783537025156029761042503764939928672301289637227771909543315382009073452646134753938904294308424789422952575460048977360837618294619985308898593166783257792004936416696582697999144608546112804617865009500338274879293137570839620669013787899754391361815561896501095754607444525446892777820709026866507149597405327515511273560461869706346997088447282242126295668521746368900936610839011130641101928315029798738198231952790491876645400132075146884568291671192905565755513065316365344836123956954487383614093950078856281385035454248029853506262837443011011918021471505756759674142689697155760924294094202876646875484625459181235347739500003667018723992551261962567858382711372819289724214443377682259246775067228371121053472850350514064390827582257964101891178502489598533604162981384886377988999631064451135909832598992782640564607712341544974875281439851425650936799108569507108075868821488211441918351974987968748453222525696110084538818940602027234266588143827357253539082824604769606658801431464192578180743080443827321356752513883071446258948378112694183064804421613985446190449696592324983708444777018121522180163099447384792957109873618696328958137418625539470921352732561095395505559075195067269539085967061876650635064590180901428268902553185928911318194238247057067706960315022754174030672541843223052202057559752771206240629444857904328452267899985055326733194568127259643856906849216115519566609896560006871145579609516946116906488490002003858845720609487445711659441566725197674570062792742157576076555486145943765911445778008771931922451128006579970635003861336228334600838323311136433163386647138484846048977278734400795556887200929018498517751823555112311118072496912315737781422617107041978612013918963950343766287648813930808188711551647105239879334888267276514482943646015086822873011887780598490240184348383352219313201889740484534052747769530298972861645395453169553531800791865062421767861390366990051872327262171461781617194841244323508619819522409518661431301940955095755297794248725570669066089658207441812903166330193497503660744247826323776307117346156776007179758806115888253620315797875993892008795263470382952738099327315259078531333664044663063211058654125298561095062135328648648973650069182407901254985537433833198474560008844784873168295335490968190612735518229685750269047680454187592542527883472961047415249586330605562009178540138955970104553209959793761989265950717371505032695266608658804414852493030846004639684230517763474389449880434471227865296670337927366796965627260607137543871626101744387717496806635948786230905874921676875399056313412670462639973307861051977490907053651096666032205969193269109086536328260952115235773469697532403219011755896227944374971404992836923596977060966860388818963640348459242127868232812253131293502623947878679186476358952721790387935677160632004201594889512249636376333111346825626385429388962515775269528877884818979766202473029267290279071538144665908692226594206646092790016142371889883999731936395586999763736825247295578900514177980117872514359564396563483168217862436530687912178360179147113328512259632871462040273704150647851180071251434570262373677643522621212343925463626091990326800827319543852944580836122665037137967429773971104179449180817995667109911689697629850135098756241500732514085416995426977678003620955206906416741264314482255302094856950909953679375485799865903498067692576975359838728281913078752726377410622819974264643909525039103709728335832060402976486411667593403826751199334569407016131736816951944087206965690734448155248887646965015314982098741296172590379492324024308482098032872672277850690403099844680158737529374711744994310113481262709427357518192069810723959550202128169872499150556424076679167136063390731617290717636024899738273212588715101607424663775358098299860653920307666829833376430281625417136323849688727390501113847544571318893107704574255243753263304143250916467152511017401970545538420137224707409308034092332105326603713537560750627330925723980144070313557707932329355647381239570201724638969494230273217730613313070895725311620579669616063028632792881745758946664553780287777550361396920461940750631292565752829278846584495990760130918100996360004393358476393995853073438112696926051041795688938066739188365177153739457495227919112258690343325423976186331643353571378142197651637128049664960878134801593968249472763737136549142459707300074836804912970445415879100643822591092422745503668433953077588648209272644482219272394870370387952624911194934040333315729267236591627587258109663005792350410043151497749118197495532147047497429747652053753967871878381150529439172803982186675857773004278711387433271688061287936041828553085012961940856515180854749995006561276605253958833553901249546453783676790139023720668124018692620616886166665324344379261907189271672269370460522389387391469734220181166615769985022241291336372680433334500725437907572762454012496838081143476577638352153235808718265474966549536457553765251618365171464569013720425984830840258225787407049966105682649544728340479729782644500495522853697513574103369024815410931638641901199771152683294577693502993813443203755453410969348202829847149745819062490540310933814541485908937921050285680636549541197004902484317801447394178025368984929288905212464177611067067228001689787627070162434966171491320927705873202468384369342669675725924825795852174790202691996293895893064934362140767632417929989677715487219020208468678653858232275654238116757902503062780065387198846371321292122410141981004674859507539999409686197089984027641282221188290446622535002291906355870872974406117074395423415373609093644308298759884305928568040220429641835397520391819697338297951763170227155900619141500598213007679159764164769604829676273872850498909839397257050746318661129868607743493936958247979328583079506946776970757973038336204098166897332297758226849298180039142985963627197142722366841027646024549463691338342092157825914269156384515477011652200524017216246274015330819993367108336985684793840044592786058299674607868103977846955904356397469331765439100312782134312989335546890589886835135139995183936381275846171867280611879699655677177115089629799249023277186361016471267596342904943015919553774125847381182054549777971747463785824728037729337680313820023122122343367732791911822423695671721316239564778856730004124819938553441925799243963558269923236068506553757290402079789283533689184231645922514877477832903787849754877277510502339736256823494187173019361764269723661608214956434929470298184617962541297390628775778880948829476019225239652145913728694928387767088996148057123169863196937964781706459179472380544504121810159285630349572485345663846132314452815074807282021354794024184636875162931694257798172323096206753689123932292361448155743535088522165924247681138710948008820735055354305239601051373106328492324199164505391971646298686416430840643836854600264949303442142316053913729936717878814975663959356194410665584357413479913417611895729608436869247303188902215954536023382501094095906249184203119616099330357100700149997700153944082587874678091411825797176938976208621771701902684710273319765981936195994987548969702108935917598325752669512333451450895879881189779603190504331435555614048241143066002424934768431941648497297432017583515130063622780624733562551341930821275177481876126456668363978881994480559939590387600771188519840351459885888249212891650149887019083993291414196780295740673857549828674721185580125765262185002535756716172413890905660293727815207021853894377099857326097751417170305544122227878087059784790742204745929145437705604215934229722500016332605460437972116613408892047498285023349765408340705775744855348795943695138741908078970750308311930384643272149869217819535669078148061256425239606534559725578931557770474726166784484845378605747251934642772538980261642385787477742824298006637771341253994669522513937817076077108772112833862565830772793304260495255834166338721483568311621481373392075867100445424328898621044717262239192004207388830679089753533564599506627223815584651642701132607109097191954643409852035439953102524483275665348092943676299785542539354090484320942351418838222891149047369383496991731193838643771565889436170573281990264564566278618946404545587064959317212761785666416407463061427994261145931701630835587478032545024024325258896045715249581668123617757286830387251192514688963992530768808321950807792326854018694003195068875381188475473105484517681354794362869067462544141490837892973109916268596466832145902171700617079454220480577932677410678526662374621610371139721568675895925449590523772699336266024357313653764588102495092618245281656152797522829883377188839865274666646809286897770062551076315287185775968177535966746608534564308588383655128870605914891068646060288241512348628278768815147472696573881547243767210349860769275502871115861647905938161078304581667945914652733210281110468965702514215762669686968101213115594474376795779507456919127920143130010118086621208979160062739645735673633172736599521235887017747984918793852086080196403238030972428374766877491754238836822614654411992647544776343578586989390053332569832841986462073930571884816193539362553646962247100348450369695745975489896917539328639897279660908863402504488612881376371737898650542890688930422110436438181351720968602418982517140818369751579799036230899637772507840368848181768940652346756809858987979155144795621115548145136636442406079738942618483928942286854374614647563508860942061118531975088085247004509307665980508948611629301754761695239794708524065349880480499914622468485057065786972322411854931649546958773589498065077600860629513621268578415174688326913967531716013641703828704366277692269054454986516960652568146270369485388032852072596050245076305591992475163793140094943386094777550823978369618358208522570624433368540174539221187524277955372782427400984192306286802113749198013842210039538376565268118105903288759642341512276886767825679778770955539087524487440953114808404215145228087896385595393924956378736627403627821186999161727835261559849052333639576601002678281592932967482965231113513863333884094281861660001656667649472138482757978665535526718496129616081298596882843757219939310458368757560326357387695360660925221614235241987613447783941779094602328566314391900486932397234981635457977960865820861237526944573296855136434962549518223425701977174370877709800490965095654369938820064816963180556470399996197263153500160105158518538556622686968148462211871957658649909500527908343464447172728460039496288818942944743266376397360675092037588308420712361258780026185436605688562798707548999380750586565634457418646862203591222015517096449433627587245721771330807542250871780947084669664007922244569897163840113859256143118403860149784361247747523764258547596474850586419987371294747551720911716197114921838931379252105184268403568243844451503398654547501892662779521411234748221576811668224769844576837536055321937240655625724255034054782354309097385089174597491944887621579077655121150086189560583018528025451426372972693585690476741767768508560292274676824809207543974727589386285133521779636330930854421384282531078844465086597052883499874758509401452921490295378126101010023996719487746910523106580559893128783661871454154127010690385307098602837260119709760333735982087988827789306026637098510459100451138896341820732266704942327143826772555808927945696052501536215642532051979370106711473392653690552974619757479061187557987992977238720498403146483341970418446046765321327390180429978055609580993127592621779953969972973993440170802450313259042794032081115091473037496120786205234790006480640367764086779919526740604023386379320270270020737414781416934017611231871158864552156106469962301251354754441864301223587859093199093794824527975725456368616304245357959130740415744676890922910013784139263466687279190018994621578677667408800951152909515796646345053053536510039582259054151574873504935251191234189264552463463246110958031871369018520932492093398905361676730899132319711451840749036232960443796711724069138444552456006067906161303646320133729059078951082530297469859791477854249225899995995321972933638650263441383522391559371395358223747104598118439065163254343036324633974178669429069942169708984609011479834654577302308453581687618851973269680760306542826234708447901071215818886076593600307206958350949332233608593958245129007162569808308563241149835391554883345934208271380745839142966839754873188574461046127698753640601308087275009602231239846915499999313122931972390574462949936104420172550004341235258029434955024118999494967747784782670801498084936739230469153209010045697282875950479228354503373426345278063538818272114289388313063600509189758476473132032785267245002155739165600055699365306397842027081918666826755602330453933001101366200561826062279730886623617237694170553619372161312801693306543453999320607300815398853818183940011522397265770051064484983536692333101631652713420954164430791090560110749758434778808789580848438290331614173435518596270112060901941310173999620305619862534266162807099392364934598494856557418000882100088622765360648252547833074227782677805547793652448481220866545010149575193942317823187086809301454883442179171318443256747131060230380298826983077085139928695861892033473276851095468734822743610885252415483613031072420929753796592098932263813852807443237010607092648966989566794335008555972338523885130183978936202154425771771169079642471972050955222938674838100998428433266984988419017911745029991532520918163495707868657055087063532750597618828164582281581355298647379340878338077383104829308865177368261956545408509119293349081312839798450495258392248283322918073699311963774901374349935803882647343362291426983891534753706352326764204337577385219545973715421130389587765406418264233407710929258915870159446617931682072854680166966803926494667067222273745757525769690351461078936163821931981990584057815511114348514021443264035631014288567501177807006523785741474875941169515935849669012371723258157748201574674659873651527500483082054595069823300915149416755684304934543421726942692264810706101498709419216091647040571581767498245764093933555026015534564521780006758236152240986689550391315703321410730388182852553784888509041779750656208355438742072592145843400191929320307233911221755511495659657721877161920743641804254079724921352172036423370245929495900165505973656787548248612458124600935525919139966188135506159069183772423341415401047458728192209357127711892508657891424531126569384076131827981102634650615060814293683866429876110446100444425693986143052655281662737116466811153381027800905060048734298046455418284362978879471962591851171883599437605368188884695261372973136720255813479437424289194320020116602911803029686147172931346539143708016955377863945404389266880998807484838027351785615043101700294211780045257645972647693211810070003586756914903592015954104310824307718568153017337976685045795909098417649317562258940631341550257959124494878917324192485041556951538266813444419905500747975427872133823959407153152747717470120320053170193278043595925305522318496279588494646783732494648966251435977536019829587798885783180765664177825917395008337550770459365451060836144739189710242611686138858911527663917428872361651395747980260906564873303100443835522268520717398512407149287415626114901359200195361560272174786099116160329675292929586223059113036377551128477068859493328760530757195934714808580938326835579586532134842902351281225871170811445900414301517047505450473407380865049970931476809678845472846152551640550593340823687710847867666174498261090203816932717977373177939655891349392760387345347161611438281419635734413861796492058095303368377179630158733517787336940238918164066509068537895450146478943900146734557872438802981250363638553935791689485484450803484711600775453650682334728956953289741752095510972431036293908211201261490020563197506336296588662544346764796985662014742046758566468532648379722968449932448591733431804834862768794876964140835493053394783128500180369090730817140908002687075759165752430640194002918060985310526075772624869630044566094383457565659014769277480290327719684580444272673346472740494392299789540153170185963449333356853903741719822753153161161593455749610414091516949646075009482323979276654094754594784853035589128407547284791027326677416771728862607120998289857164059583006456227854395298659971006821712459669103145324193823253483346983445565908422862959279620703496874338386441904644719087617899775997618419815060171715985522330346035787419586819454774945650967375234545803596275322627272771708576672765404611619134777385282096459787652329821439683300266221935655070779943338593548047826983709207548945381104892167276448480589069895462426874480464319360163358692622901050712218672843743530408119426363086920703949885213710221904032783364403268355610350199430480488088700768856866218166253104720335084664032704492908175326887089951942347333770107049244600696421282943362590917952556103740267743151135649577554364302683031068860916379784078011606610566089359130412717138230876237923249927956948915742272162715386657858478588817853479576355447259851372290675017979413483653488926085638620819888563418425329489246613448143066769588585558499863484064125909530223755306074755974171606708618930054387506714056714100653965629717069126757551876569804002950306919914345839044800411688682924380379795877432846758636193702653496547833829002194878433739124314526383871087888010402162436086704512168859680557413652969834296918211496335621842138139122989886599322755124977314085779549495797934427917875226838320964535981125673734211959790432242948078579707364095650621547347987872591133010312146441483877274914013971701494643639430339973656826482020092446077891033063954984732602696327072456377063914882822396915826574146547572746712203893891548625199005629943383391042873273640107093188302217448696113908369193099200513891006137932728189900999742974438045329280719560529365489407329913553839904203136649012094320713927029206437914107340451697675794000798072402438638735322473688545167090937874545058319602130324738902946412035899966093546475820142996706859540176814073888154447452435265901488640952825173234531302970111228033074901848793966000873285626889428096124146211638573097219843819106051138100074021263102902986801365335215397946827143938551127633519355085682494066663777764355272438473302944870000081836239386836486518254760873554153882071239126793799072607498236280166062344788138179243342653841190032022588372446161168593879876739176939402680134999154544952668049657773838530980149001742766913167408127272235607407739302362622952424653429972174083437162959941090539439559493202157801940580299834723443537843181902198358917845470986500902046722278542749216458328054649138457918111075424425905719029821630229233593368666626475825763707329474976711529006223685572701791738782209503732924799190545219096626215192939021705751806046507078532333323920042535814173195663951144402197516250151784960869798498304612129782866566625396758866166582556026566537498137373750595158232033649146201324191979356755064405849780093073988120129022428019860850253195839624261323785953238003308093322990044768601503436336574301619759195458683713290653092579587219262111345739666191725967810049708254972738068988298013264047162169822907434819680473015181770063199388129877383690251194710162454561746994764471053018135682498780941357718161624078141813005052660008104886988649684861837658963343319577693415080181381011602951782725149638086245265390010332457894178677754587993574699485628454574893234522982465333812658347620642153583845577538063268098024587768880392165375038295966246490093790688229383183528911820295153098445133280282655381346176512981257607946563612064465527626528032596010008887246954765393446280656480541905775704761822216460990964362093494929877886812141164765213890528111194191770574384414213349218432931000496995842489439493202281180223442886815986365594713565954258747278708092336457791183790735785147503037130202243826122861876996548700284765433802487177561787799972879038237896743121003161214034079727334248041648972714467941763185704749348950384486846225357771351754612997069605905371455420008791694992156978570746661492885477436489549874414661924443552584417908768922974081547600830568516803737152097195373674380812428670561366083628289661816056491960374850458752129141602438957531609047385584937274040629500127810696242897460002520587740277282033874226860812822977693311293884403824648511202555298526037147975537467717454294264128048597095657841753244611641287631247860484260644974627769075745116321170947331668986262225436654925040719382886140974769637834035750816652626916343570116562415385505068712677492767747314121595506249824052541694058052857892212328063246376651592695294310775151782472322490601597996182469955804705269288791387725974767428536648384463701120196657459151767325176106968676116831772642983887518542962123809392705427989792282720232300349192413920261470610454427981177615007859401218621114177639928237757302765105686252917835006370265757057639961650723505063349441437548720870829138594834795637308253784780339521398190324731575689599316238569248372467116381106256392094228103238059712760943971352984304318301441475299622118293813365458602689089963522904629574531568941526874420104940915552624454856305422963770942680455194398117047253379683825574422439258645903602027373726378873851027886818444937539313265796641216003500416791424054856505206703952007418652371660137894399397483799544365692446688064349938350843330616645964172063983220834083658759953121908326824359591330236309824907842010443115635714308251490343385736131937443442996174526591250512642410020972977557938527605432217347647718448883807613125884572950492089499414329465377755563088969046368956646426005801887903968187395828480957388546270636734053832672119834970826839189162692635759032828718371003082937503376132731702531850789054140494436832354197868654263150765651720416390467805716837159760203043543135654777408774772293193886023562696435277900665223972230038892835076384339586973725637965530453381884625966415714179653394990028371255523648084596731205787846495125468085607507291961883263735977745725143038847378880977758102692972308959689410452249176529822603434040286556939438648833759139197187327109294402177050267438359694933823617867049870443783272072997838639571099283533184349468069780593966642947881010136168327505526376859745251317425178210420163276887645376458948729341269561190021079028056389513991619382744677121691160163952202687765920833800143545560089974274314649593422472648582038640311982747955544607701308025088452453301517564774538960989932279555018253558206698857415709667646522723529060599348556325216822973583995198941463508665934139540440880462190511431420336153368188838638517093793872315745932896318597897505522247649233802642822688004900417757431275321697522950000892443046326037418933434044712037741942165036928639387916992665831130186600685569739057102464452829741216878944057603318654662825880509797407473495747937268890698430282479022057381214805269106944350449956936947063384936515857851226060960372014568692138231096195039709720810137617823233674990407868804231520503570933077445383145288948823095125700758170228606609360220272995723166840811166574424826042439803895712086181336585043744426234281126040411833737209493071836182685060381812863553913520093765155184960734753622438308247279337559028678204054556460495065840531848691756753491768423579350289259886884520475936020711897756758620364706667928400922149034355908778991808142932336136654647470938653589016936846944549850055368151540075591883594271668840905736609133037916367755709644531868935505249524191542858466321359432390151175281155358128305375236462344896991709266930924771904246720054522906575804905891104848769936677034079516347780558991748201477308274399181652780190013527606616440512683589525125785068163060328120014040227569078417958557565592951611108783133389778300655081747146508973182158245283938283011525806098482496756432965340360830241313162218869927424174614924279509563577920292621208093556386316982178111703415689468807561678293288201756672168113157696257663179880526794552732696420713327178743700555053880213657556654378198923085916590121463039182558573329777474637316401678154364697735914558601913529324828664844126963604313036137330982631239757166461001468991670486798391783731915857630139688839503595796384931343699069075862858681084902301371734539941292560690835979566830484468562476106761602813672185233112547152792614418624686379856127828124433892187199779125484813746717086604720575042879746869170392227098752371941608124965807271825891974753236673512916351003254889661625849372526704714991550389939116797717185223078350418663539589414559220348188989003081935911683452155964529585756546708985302457506502336945930424020743591077759380677336159174055986779926464453045008658512970042094760568379886885619469774906877829757176893833142822604971061288493885915461524410509061953629002928638392900547859833033531158701490937426502110688784412028365114194408275974405824412647544365120909768361717662066315461393652928063455267322664490794421955693582406028387094978992622222723913834902879700936432383106671722435795868889887080935386167014322683067701238595203654504492732273845295044068040499605579510696581801893091356824809283059345659618001661900373861058732808645793716178410885708526715618609426684000698844586590268786243731727823892508839069187426965149564407124506352113498777258233484787737252861778729752300984815785167732116754379488206810123477469475760576172526294889847964409615422426130734173648221551259473338061294982003096085894027823126605005326420838192499299388521514562169162633755084530983872336952308654927631720293115810874547457637536946933238086792733035926648156898544721645567443823438396541265647732649015556479914610805496389267098857867611703402673154835170022654756917548038260786300953476859925021689622007032548808951346404272396954837263587462256118613233541877364343856115208117384748942975155206589931357963206096263029799584871849671040935746272771871249162007502458496337147570172466191668277628870911043513950687772660052165880869967877272937212526384634486879007854968421980645900784374242175728621661729519237959260347177529033546286502344645255160307216580018533205099755073944972894622965833804324882006280794030525399805969475863112403599542007857124260114742482048958258583056489161094174726983980566231925105574324252309692746511325379123005845053586939400649826113281839654361455060743443087774749390206727649852458495193535061569974901540354892853412148672453182489168332158296971175565279199071049975116000777490479693412683173032707526400078834640860914943600308628960395966650245815626656393758375095126168993855388884764046402714382277949152784156657115557886888703682971177228251708136765277136585105254153336052649385804792180300869220601432701293266928111614155937075494666471157731416431369765862539395627398431032436719667557535366661168257605008339993016072071816381029202503598190668471154420554122580969025691944606282571928352690858272879355367236184481140583536347919188332136677490146283439359577979012115607343432752227478084175506533340691406300166331505844750175735523236122865625989134495749882348983944137940819432998519619152874065912648946912186814093410049898850573913268274349638316313287342309004677785699832220816470415144230230560476725479525171613614570742643340243849359290348009853029881935076946798407122471727085597055699972543777734438501591684543097305634457255745979526806593267969958505826900685779497515257717913376903018024474620658670381495355472394691953627170058558448223634566532036736274029746973871497146957152218458592282637401091247827766734492114511531379719658868193780644581658809757356246255447028994584627468973688847390205878977361438897820664799964364005168053535661298811347816018309043508711807155570778583045537896523090685617904073013562022667565844446174133233172179760026005550401090513089723272259027578727974127906078355221493168607769817454504560322242660766870099938249052764294326753748129712801484950788261378639911887535259776051609508862351629107814612263916938811904445367805222214682659982845570805343144717914661687742409969367487965126132043953447090764448262388209645317847800263382141871531407501458512491537269819156278735546219248920895023815522199223067932792873931329959772361942479503921613927097519924910301184003957490705951509473237887646463023736304538994644169655884804696187063957826286914133897688899606110618298910546190098188265164013001634846729405174291745723266572807067059735642697837881241110687113272609952166213268364537345345688750669546365271639450937516489210449418749030621963238805154563127113036141759970991184206825315109230538362239389415284043888224009963049849165451449305680265650068678255833934214588138507371138850708789253162982238887944848647070075513715667944702475607099090019675875042813679485824305820199576832584037307179695748694134802380303462977138254684304379634749300967542640962777713352877310820213692287735269588839568563012725281819560789393046215379539866374423019529522532391188516696090717364396418504291877848555881164418947488127576623630679750437385408522521446546290762965295463371787161758181428175426370043546993484629476260537591473648502581574303170103482958619558618812348674758115258063852216417805190858574330588276991355642253542129811231526580733518965246583213440536068646054405310789781053396916872177479818829515924901294095909916174952835031294313329697274798066982999563262847750216714560368345009650429627698753966072841196028317480398994150373839778799355050339480469754739560284714163321299459362664873714257396560124975422144697390943365793902093360274851229359245012929240295981472884982734398820119836321805422002051999635170457880268647427554950858813513112709769120815400447436848579556830349607514219662668568346086239103924038725240993450468887687914337568449465174765369021257559677633305019908049544503499529265213632485187849190471629410529471293537523983073577939080900692448841953425169948197366376750496672537870429987175180799943466359944083855646292135118265156642490410016440463465521292691628301651378344576963530608745721674889029589410026285713456112381908125565811144057337834082423424357237406418357078533545878026049311153095048726850504526594962529599719837234814609851299016155118642256270750000678835927988022103474267485344989650883893166485909183842467870521733045882755670754370281668402516178311596624310370105751045760651960652026661465518934100393137947103212314020671133930537003120850300628472957307939371965190388443357946653144195634542429806918259780119452538826092953591730927426346087552054774190392656652512278695818766103102579843543435625102241319465450824310518634109402977135673945398527780351507447168910637979325220087819058698808241484530954552747735004510634804036369203846355435154449727602356531167798199599471959888898175982109565513579932239411731653995658233453519183443441466230640653432457216635481947362410281933709295529761513161168259942954163723118431877668966396199061906463768398468246354177700097153510767176640058894803984543841314634280048308122859164740409512396992588414677744479561560942054274659091031576743838361875041903844524587453080482659116347926549430809953802085459573867454729211841417624826809208896663033919166689789912036375750704458813870712013062211373232736373508084238455639091460227949561841129507149167325990812215301649807285199186498529771004775483803222341724974728318010240391616739964199575782185335269342290183568816215989445262854485568358273435540381568006841190834517359130026658116699625715445126640262659080295543800586323051142598231063442490211349354820583645818995650867901345058134732227700147033587698279491396357754583633878944580571099669553578501847715492650295610153671739138935655647160146244753173557368279015197600495083865046995784265939759541383897739231026174104451568224005609800873759638630992272487578087287951145185689584283967643761841606594889761781423142410621126629953662165257508784811632491124231045929433169983637913752428482905510504505219813660192856234074942141272119784886511667385637277899027972146951107302321552266507163968942248298375334591231189412928893667385045535635734100429671836998670154727932579834189391483466695442924691600998197330161728549974920281496294188414631809208770065386554546495640123417466699651461360632618070773881302008662508388452969573552568800015442599545015535402368589563826321279315498705894036124194697246373269909993517803233350931226680462055623637145700501345293464033257690550631887401572618586342345550627807698297728514238644190186593669666929019868178072030611398640162726698435406050051241325915190132835037247443515369131918116007107559113593252577740617219520158747025623445638749337132634066244718742421377515995955131045367730631930450864164638888189725275456337194934561027605067149527818036437345853193368860805983117424675535498681186925046165242214401199180076777663116944965079588161007973197423453939460842660996082770357442331094078597722931509667905485085027390448705504854777100699722407832225445437381329146731184637068480828436304974763430506677564441874034525792754625101624206924425340402384898343572443836989837134777775420880421621374115430729146737253534590049864221366495813054029347651834343262874024759862425981001537714709204133332039991527089025781788456016117416406558583354844354432860811428064109089283707953894859477961228324604521022493387062762556486179058915209872492120064834690078445066988592482014333796534972969650926693871094837919754597575051535185962748543111786873663188454477055882016880826228851115916240645336140302640809951069634946144513708854493924352292296174057534349760467165313406350338747920078997960694540646529502742165751664744820096179285333008511906951954628713092501404530928268939804333244574103683511138676185101472161256465296088838793639762022203735503140605354560235654104422750555087708216050731573215164931155534521946618119209918011048005747433952674409387803566487388857549932937664749721469121954942322377938855808350937103440297063756790928066335405043110708371656300349641359179634351729002722992165591828415610775028070949215406950377786974631999362140455164214408472237234636514922905282432952893380937323327868759244001759791694220883142875987931972567421799253850277772372560392277218991272982149759651049065508393695438311276685523293736160692032484255855817740754721801699327291920862952017722084767483977800647827405705895328258948456727458418355019316159662527437130889012187106554420917197268076737613619329866409439037909843412985897435695105377273098468097057536206840014034739259175672343222837803817545087394046457134476882532109743649407524517028381136594211070663626470891752349214185639348781903108065225904801261281764834006605787476778896442653264430928838997683028800364260284091915269361625105698020663317888550838879013561837066234908030031339027799213323720171104933169433714769318946295957917523286458725013992456190858314014175806237271607660088115506298733952065720750913044879250197973159543887118530364774823524838620041155617585069312066287389609748926983221426589618674873956498531383751008072888347516280465279369494747376647530394066899525343884485014575328916923354917265015002028599704371081903039456011412910534063132658814729947514245054693324333929030092120817651676052695352083544670290097733521305652485770585382601069649266706822485450609245372176000200770647304400846351921849943323598427608058237465169719775521730916201281498571331843032948552388667053480868636071884159706041256454035913562069752770351837607091962424556483840567883173455428800360904023296972857354533035073712021204302095488244125021968665068547126218779031432824065412576674616873171117301461720698406341738493374832781291352048657037871316776586574566874733489472067428276451658962531780322612494252283608892604789563020397424465049729415272920819508176984278744082322835962331993923120989365237461068563651077582620513468796551257398580066430313061167486157695417755119822622589177511914648630099450407382008203123801798911683721788384994138881463380287481367226179548962185044294292077378261353815474560937308359062778854282824032890995897585781812619910537698305187151389894982602962356394696136123802784461668927299633948995325174368064314203534794811088029252414316731329466026735009740354654275427605261435749087275204284243082355328807734206479508308438768181568137590319633280571017589315085886851440922234712219995668565313385738594354276690566579894506351632574204615758556893771987275721063723980366013086138052451220703895507151122849240790112360701720103561912543779282094141329737652739727169145690743845366172339194846078232521917914151561896976546521313946655476026137811061111440186894820955374913413242406234382225899820712246854456743709108852176815199515019227140131883552253580718411264655660597431811202403706720922413523854673821138930706076329255657322082392653512802827829084599097749816329053806408781044845535405697188385012059227600513217752369080719835740326118113944156049793615211076295755228110921778282667115872208331095302754322277650935230204575195449816348520456802284440958510788911657421154794646418544059487664698672869323412511931741457857669163277549617996546184175990908015046802678274384611963283484887523007270372694243801219007025606592124340631145322120346008079700029272537315294862097457614982888485685150218045581352036294580662878180183881249815665199486738345649307665387501103304744538294727044869375741015842988128256939084725618314215522978761171833073337490439557718183288080924557539351073585947099942272193616257504125789512700320874004850032679180220351915870483048253376732375839590923153532327185049141895547396408047491490270713370197508520487918442405477156484239194095996110680461897568339416906859819249730239445373276577066484264275943792440629817000258102831299131481834622697484529044572506216884102307303027254232092135320244801602224301906803356989902926319466938215513458735491362248448817523718825226419364396407632806168907554208799976580445575130918442834480208496593057435911118427683141771453330791688628417860841267243779114181235275889701949240601535435565811919572224194815103116714951287447213696880008091537407752111893121776021384548702378728476183948373694443631293164668101281495385294959916834428995931561264802277720308901664110666323886117976270060254724293118167849270943656002762764541728553375858914905902867177534679757532095905904428314017079103238040050436489389549189940541276965031269316917928703377852372839049778164559988018542329778249274501602930632331040043259366902062161177849735440379278704668360623483432659912137932280337186857490157956409328206130430389506202018894117633142726742353417703240266202611966425068892162215676711817218848901872008447082010190203135750913103992020834213545379458509740740483783945784215482422575141901371183680222548867659190697033828388586713934026285947353080119898177412402425789142857543594293291078401183188754763653084809235926705650004794918409397616495745975730634966562550491978030513987912797707674167027318425742950331008745001394323646339222953505380997294246865747408976896107247531514669218740919716317833888446645860952278122489270636912817575253291362203159686022374546905838902678195500401169362510298820274725168088097230182449699010618638891875885460873120110933519598586409181786278167694847814511314827979757542859336581641731570738544339681236244266448243256790719134519368548900649981368178356358626892647952743328137292762029750888006190133056704515295181188257756464528818585752670124040371644037028327588557523376108502826309145543248630665039644921649643881476498841033322230592211089339878732087102207856888024340532622687931499185218125215350396275299281474510478134839980657748293548474944282051265482400117658817299055339142377438853938941515288500982705331190759723160741111199216455606833837026881051675085981154357046543789264772768190970219018864941844791629256926022314221909699023268894130271741523731914735588089778230898151691394940144632858360197953944909905183615293703211614972007223072259707025179648899920136957675754825962332190898696627500675452771150647964072796599881805355144683294214922656718304174935430173744396056519593658183726344473566925922845872400910079709482242512507127404381357427229865122952332915952101018359180850698400907060716079712164963740482760542532513087670701687038400087142915733595150155026720289601541469242085046710392363724818617914835566192028109180468026267556641999518703400549277224369896694393478181350210355072058148154253990243111681383245681714713544149389517456223001755402010146067081866780395910813582298824300855932812239810960332572595824822515683640218952376478070428413318987300959486974807902151424776341308447521785485427275792764942514712652055077277895553273552502608262554274822868370712099849357300675798399252723436562592874473544407001139492579663069026545426143618165957278103670465586587662937838777605543782398428539899056605521182467841900850546952584538014084034617940089526987471998799043895839045415256477410300795891532316277610164538303343015734366829031826285737471185242675886011401529261238988955872539968454606900889963511290326206430746582293401858777496136255010634157745770862237812723281316785703604312268235214560199019957525465903010310372017101698603985905579878099577840918299027125840623658103104521065681321726702860859845782924693089295898402584164458329767907645829590752493093119779563162753646208503472595069863676559709644706462117518752618288788209832299118179341098118190121397581210053523904135314577287907876963040766781188403399531555453592158696391714393972589743593429089831583726652402497693041626101587956723749046080870204273414581196834633860995191165162206464643408258807379267895984353743641205491584323724586709038239152812743074289956100667608302791508561553659279583646171856627350291836693246250313889462432342243240964157026680913529390398536782898934939483508020996140305746582769481606052750335871738346728269055812124160238814833146628599739740960426745711677895039352119315876472607717648699785514604773041084663424067656158492518134710375591749421828591034008026084024669938063008027636257199328137457462967166359102952031939386520216920987857636366815763554561766192215066481255158478669103261413922888627402068422994745031372813587731388240350835932560147814308383692644024237218781778480360050270892333799978690835128849021718397604330121168079698878333559404112693493736349679329093632656749875522408576234740631712599464313110454525060828651340535523094285982561495327722698939156238265508386420593968070482947942760136675924195563272695076144751598870955469271411380497745488399272463265611066304480625611839079603623546627805201795705694021726307730999478461097595874533518489004895850578427756659057662748183769368751987020229358597486133999776735900101580005412400775500146410462510125450580069268143210542666958507644526940937331620461567077584239345626121216916096209127632671229254722687324005525564858001930573867837276689770058033593633926335823720233520131822491856448004354971293474027854225388308886911374634083065579857247284694144038417709988896084287239558909944307776567423530422335175253742358584771044425201419488500300156119053029618612346254567439933812142834046624640255020879034593360181166387174310410319474725711583986835017233723671913309137563337217026727120185091385953540325893847313257288754644472833038604328900282035707440294163476012718160468315332600842440184861146714750693260738052394245332189407134478250260991114927548613399199405957002001087157164078868264359627868774948784105191803253531230224306287620792117834219680349818270628623553598194653169326921061874213858517189222440059778773020474094381084526141552682877847450294779725692130062225224624817966789902329197474665047236426414205330329995692194573541655098417446621084564277759502003100528441135564278752996426126200862098008685283225585320513536224001532173083773035809558599467255980542652147892884933593152708527664423538420104420981434047986034279198396334942327541311126624955792486350734994621121127289933568687121010626569113485618870381043208516648701413459142654747392563703021134954893716334956100373502848122547601203863168454316975258734014003950599146846890886945401524341541929645437605025469601066764562022179841553691721108408068206901235261624405496706810758395734398677632829436627077004918727792709398847445434960902907110696378752749661153069921708382753880921598362743020046440474431821014985397973231686380688563858070204535102732499134858361395093118129590330325693411596366816720809080136813184437742736745704853373211404213627385808142034946260112432991738587830712948465766513380557361152661819623213563264846961961609799628561853677960777675628031629412005603938075090886009091592657185095650263342546504771761575769266971397270282673934550634193777567440708148775798951028154980861413117777403262202542347648809957289899744903002100851023386969598690998986093415977849446252915291081394943410263088198052679739077521048902044338434750346578557530627912956601186046775868021831723518524037911770644406210302552240219988925131360879138805425166274922461005061537563901467275513519956997825365709693405936058930917021923893489421550628757665992317980234592337027503035428722914235563836854604900539007297179401829590954548288718441108683574038311485532048294147715180784391793517704148858456323787010175625297635104631113761430476028511998409550339807094255189708749579040963087331428365707081946230376562014073147668586103351416423215704500569541714756130415448641688530056920821943065265267405685238052761806475394053197100662823362982968406619100779818293090428145454604377363518530088490636793043991155080353458892278220710330355443514912636088815814734191785173276619143846852474877789153166323448641703715169626203389644039681921636676984440505137680974399347367064185301883885107875054461803403901078680133185079847035494091356596036092373772945260340287330388170192334699561646376330470209758439357343109371018714111677860699097315846078693491336096841825100996704555247823460645333650682185569543171982076972225930214953294150671072183588443425213719471313662591511258135735223509272508981475305723377055044485904282800159215231094019591302947870344395278939386612375134467431944149160346235763168838718788141381529152469195441125078353360780407996482932134662088745538852789058990102510175387490651244187157802099904572001406115100569654588236769934265356117051928732886274071084792869781946589598968139571151258032890810189840932319489519178383133846682586921865839508145059705646496641391501432507333009103079794378790387445618938021646367342133753736112257215839154133255824145824409571548734206104932315396577887110888728747868445662631260198448210025933258433900895304686321860583983732313639119220474408862819812287897666793017467440092900639740981552378847930359773809625030471937171368968342058115313108645118300419690162134376028491403371864504329483320732711480067020427651535913351987058366400667967234810459421110518597498906428460699904404690393221514452395580989237327244638822285113472981611627246806365720014302651447623673303639939626820837444063856160946115512104660959200545338556069538021670047813072503232108809477617864382074345260553581224825388915889054768301398550154882319176016004560830047245415598204972876459493072202496838936714600298826849115078683433670131573683759686757403757843695304851568252581468182206036959305368902720987072389197486043062824239517632006631145916736802743216369000652164412009060477236635710961995723020292005968322024244132430927444299785721738309257545539188302072641417858710085165848219153589438045773375969467552142838497739101605132133049528603809646614302962352434757294682459277288928553070989836645070818034261475828094693963858022660867213241360007701613052246604140133458760408573856325983118246888867143927910823489014709116334195317243944603898137167873212590481084084843099605276502760215094258521664459778082555292145072583023298004784065028121635732117425124929248237774789399904163039693776535452805783853192824891153658473245799456106690261537870370377205583355348721189745415743386445347870028709916270378466668341677711469912242544342873541562363248787535267478466782415046863885990789980197075836800718738523553385853224120990487471319329774855055473220018179316351024015471720295231141441796001753359027057917855723438670955894103631814714738615976915928476212578234803373448596003111301314777592748598628380710108961905147880907334785003412031922003563074570656687113150435318201775976412239700249187019538733891731237127771146184698415736510699002036458021757953241283942436596513230327714613430125478576361605536928772457671289497734422461201725874081449091258531101081966359070692004055118925839224976930427999940913957953818196845193857050761814098424202732027556808579871878919480116176609624523194634656270703241876284875745011019280793508321107707196791863926436100088043894810588871227419180165718037030000972760654535444740837171729795613374441893498231559353948616757074158667906711089355090540479879347355628884476124835328235266979710453613408967665534842546945311629000724024896619859187562396763047967837962135549827721821241780665985118017152448558641337105495818151969832781000161713761369841690205715833214569117627145444755674407074134308351910995585114078694135453729462534845974252296773804001009576664328257224728963725556088818822031217940502504924054921991557665745049101310978931114695057629098743915609575230887875263893244439849767364511137704196613752625418747912899303348573373155033279271895048693973474697525888682388211080399015291420277809790425488087007462237468096137196195568997201459550932325225083756398633348861467520621435971817137244974809505590107457020295461877380961536930447920136187459769117696828183756722470110443095144939983441506660504361423329492946053148343935397086759054942542644485988775318647875808863606218746283699901519608725586102183667581053330428501166912514550598317822891476564859814666953218023232233141631891413245731271161277553482729843244994074682524445232419232535247817091571096280217215124019937110930051779278855589602123091922564398388037102222585996890215355669703046621694489027235611183574157941530649811488379786022234269189628859113218671648095614177508511187772437415251786167006248278608055741369051676910905206110119840208447997563154297050442944258635514203149333989416255277895735529535654952231594205060035820991975186175745387761296999899616157524529954913766697429842833747809188660687065454735561786743529952548157732167300791544012121506172192471958774519338869566824086751651228552435322374653305362306667071831966694341325058084500413604239507849490463283859544698762392028983858963422776460020248743214717086997481140647227105614156929409119335205254177017440485409248282837765529930544279711236879491023509038736228201252707056192523990331281115274085790735848831955671043238064037659825029600737162442105228356112898343316095915514667330488888211449481788844965617707943578140668970361073070154954675611317197974993340096044561224655522398518546771110615516234817940810767300425576855583537891432620751631757724616298770521236773658903493490858237240027600660528846240520260844815431521391765292901895712707512096575339280371099177794330373726633238814458859641153685047968435825132695275638852314559032288541189954533159147554881200881588757396311155516631899370123484270712690428532137494897867042896247618576551281261768618927565773823817493383028324333474772562816715528637633764389526401868603894878471809810789556450756841229191024487686759896874838166739748238996443126285136920412426744449361749093678944329580661105455253214112488050179704439651122385248784253805977849584917757487228306890726449367169478171410972747291218149099590755499482545687296316625557981484452614723934360577067771339953375498562928343073638756933519105892559020033453982236962547299088891097543723539391108893839937809457316576068591257471938248427884684908422934408626537612561152718962536718468475182098950534531483654372148916468819076954471325050438978448905933851954283321337142401359031862872515612894422059373250530580889405567683331707879370744332742095948506530936798571014537881063678648333336311898723611751079855960094935563675030614943421636376348286836126683499354310948349954752178234500619443171195392081294445254200003548675362051504007592057721377964407144127994575738774567424244469221032442079372360282225233892944130168608288135574992644735893531856745072289635473416150293756306861613032351210699034758863952582370721971039970385472951448755452647925266989138855755835930819449504676329978330881290950997277324592158985797850815434512329642278701519212470369196798010497454648309971885870529485658159794556109927287763113989917293599090864603801729384134320695033852280136530800075430559023530939974170994211318704096531218315824375017104021767750255380827114680804937884429851611360922960146942170423197751044498231426301642970911949287208552104631096305048412295254131744804177486729840344102520309521921083235150516148883740489804153316727547794303213026279424831609364878387572613052142644953581370503222595741536029532690374800012459410637381557503485708771457162136121317909161798778712210395721294381411277039250500613527810764915063043037234853748230715238441912179194255024751091859880037045547093148783153044451175697261378873051238239473434249201503823507239336355104716727507699461279444703296877914490311610089942500786785855253795967031414817021450383856127349070340903032354325497607021283175757061464243826755580426492507476496330432656468769137285213593129203955729104875361692149195337055289857160619497667606658296738666255160355742865502074876105025240565024171424491850733136630145582023857587810627591419391438623787975081983266497294282425301617271983986146427745468770893315216818150209725450860894283670079369104673764530287543966487421915238274435943202198367338747367672013393999703345349394364064673363194647686314669730050577259539804001914407975876606236029400891000716368390411517370504924138291400637494827042356666886369400136472531933839136284838553978794698996876484546860726096509808100068354376163954034971008537904713380915847674812126496511110754256182473637074723430191811808454889144645884010163744527836546607655596063842832048491219882062805645560017964874277863679797529430974555503663117430704194137406816171546466075870762911687729808980836150143977289402775448255451885933424972719736231457751110238763445743504495795362071665425678826447376278968089736877443138340185226504850997006474837034493459747312385633201406512129854178591429713233220742724251677433894549346595652038726389226798302728426314649712007040762360473285760098335405158248532068492509326098895388583040613068305541147688753491897348825213797581014951124128962222252689932267610880244710858878096706407131219635200789523322925230325912821403966750013365033811334254635109822239985754009449830361237982451024361552381561504707361866900451897737015756217732583830925978205401322141020735257459336035402946417068302327141874969648102214493016665374511058516727848559693061108978136790523200039709000664405001481227496074359162683594321695005764224031149727339456142266677340127416941754500214206866333630736427098257461300980463566247011490031329776323365793038020541659962157681272800158494521349748927271243745515200161986711404736863941396924858092960538016769068152933004506405714758564302153621174311100528449832589988378193988336447686106124605357211444660788430669128471563141038389444122299253374397664259765418962645633310288357963748051047033468594310190689060636855538232534068325545554482935007516155256823977948759574355176753979897910572943680304549188618933454654762030511073366839131057803663198497630539578493746110127192164471972261289159409082605981062675869264097508281132398228757497740893539986851032805973875458238599835282884139607187926283083760343718899768334660518649837217538133477783059141758144530631852285076862255058036595907003931296698770528632215457319332797729035192248251942047960584660895308663532558874389064683839463759124388097725069380162044535424998443776461128019308995334819097406705157156799856361657467141207261162661617560356095722946908325333011189300528150348644975338107421813679923528706914506116828827941998718386042955609784071598130841944966245830341938957640875794920889798655823029284893096432954653410523548648287253178475976198197505767562300674885637042345658073672120358520762404088761794569236984348344338885323706441337093684095177602653629853080825563619785563124267387151298948816032513626985570240080056806390681803735459433128430138316833426826411839545727459045272582877838702185943336897256082536424491388131198511196432988107277660523056741521725139039848757418369805019965698990758764083202660797714920800985447874794056119010698394140020799383913027698685935266222715032528992759106717559969244330570531566083349920956494443108595552160897678043831640642431336844604024275003550120391858698131458380196056949513189884650714866090915529621633065645333366186825915453156587382737467880801936991229259208812357006840571101163523811010322688603655398888050928065079888440279385901869338877460396751868300966227665540048164192301578820616337731507171280241855091048877187725884621562758821492472562768775082612381748520127981159558753757581981540015987756922875413627941385891405247976530108287584115910915323403569374456027960047437545376179198640705576481316950164382269694193110258907418234018040570242056139097664268545198987278481186420696196804580343526755407878767074089479183630850963113666220318626197093342456956447637613974893599655667757667319668447858364515260806876980199946224721951862889843604084267384602549492905966112464259698999086904946729914172134987013196665497554718163247285610571002282241760215100634539389859148539319769074841703916621287363509585801731695839457559463137344322998771933093230636878845430899478843814480361850024065262621411954485821192535341302590412535102053847056649871092528324427385165416940650457231881856126165159049405675529974200949428890766850545416172412029244938364293676645041899726711274301660668675884607203840049636035492932949022670444079943424982572523227966535617915587853352043077535263481153159714928595979721485296378278816790632099250465075182742579739460425371332729061451903484928843756527067615103092389544606826222206503203542310321257461233224979160519753886156878958770031738959738480389658360184197080392997646631322706425546827195286429630859352801183413830696276651247808741142346822367168839709351020287167912120450231735278612144996695815266835723453634892399126244521529115108227062978733997837764020773775633165943859893336268465428068585016403174776023572447493392279673928986891802404164620862907063714354097038269713316108833710576610006835639578096807567271604182564757373636197511494528313994986052066725132066165788037327987763165011448866751576679911985048274715575014181312006320784433196500115004863309420427757955940265975489370863505326183532990731780879623722446453457896654095865698709972211419975299111565345744279093804846261092131666033514352029774971899612091607159426088606324262098137590580761370158913152050232140627915539619883604222758767704153396023242127655011150309293890851982560382166909680948301211638965759547901901358926441023021796960611826770712425413634945991779250502939479540998459021190465483650297855848635013499795516402393880875159453713930079581576841571786291596996980800282999461344090491318408892967593708389456041776814283108891897421839897761657481328226699814773273764674563988863070328738929670978783216241671439322430945954937948313798728567917070918527757836994391953316847288402167992740586560746355564815877499277737448901935155632130915393542569345367625673188502276073467613270961506423726007141753051339425121379099009676946385202283585077937241234964906681046808806073144027520274082610683881763662423899528311261637678536318048495030916786267838096109375441237230159971908658715733662188903073731809113515558375758245797077635152664299912602194323863571278032506650992167120564801341856795414331783222150771488264818754948688383940530114404802702441572249129370930927252025384305955045867229876932002250576103889945456972023239367945153155190640136480483802969925524713648033380364808394720611105812605953395592051698085138318596166674965598548016282569091175646726964157904188802110007281383314961700537776969334131262570123017528040195053550646572202767047014559802246586502092591772375527355013841963172914912400528149091128979031919672390869282110544444814177698874177215733178170615538780236434612288350941705829552934734283779406520994493947938707367749207916870376993076039076024940907024728967872545684755313611707899291797378790931295559613546458823814911613125823742863757465520025962714856454026730893018552795358797931540287801204405330635145279344030431116259869888218370091963363439468953440086695351396828375653289224167944598989745740773810223425431926944727577045215084307778063313378847272892025145231572378565014950048043583073697010012345435016019097051467854835505099278663730863832717149516652880253238954984305216101812627977681305294374736647843628849585509423028193892720174998497693827528072011457961227162570387556027637903089039405093574460933480801539700950542613332844625744408430275670396106728976248940157494729264341020631637776476680159255126135626376556796954448389039958722552559029490560792001456171144918043441415886242306319661779328660027696904725050552558106745835468657531768783785787828900968969861240063227776515886430209214203879499480661195327485283231404827698071000686644300128243204792054916416618979520392110622219490747897710456242312848994642204901345776772265272002996373627732580515091116413859335975933766714742449475534959618102709631118886311024131913626384447612267689648188751495556429399633541976096315041181920349334929464552148246136885500758977326376885734155956090618423647966093583110723671624509495172725713521491291999223954703077081348030770956212282506418041492693698171021830745110658586613582355553733218471058306834306984977849099921894411356407589147846040871941295087409743643990940051425597313362054774476451500831071964245746668869794205545785852174604049458112379810660992300639639170720238365389861515061180939172780958061691755354028005698995666246461190765099598176172985209383336433496845792671351124776615101963161973822611131080997426632731255053585360973830694566664968902053156152447087778746676856057307528814152265830317611697971159420379317710581067725335876923495784424637343457245666873291342589432925778292764609135918378859617683496261327265180757814775858154005643246909408520285167088342216559954783862340943627908783087642840369709180427500626023287412239351779144204378170008479320082545210472623767137671229048414978166235325469897241104294710209862766715417801945414845531163166787025866682352696064065529041940888456176714117140770058269074093989384451069048861351000420689794991971318947570826883368870179498653639001883660061302306719018296280390403678901141882979112044934893319910755622471922650603421260422819581956714334143059914175799446650946749915215093218672173674913379722200116886323937149865066062753932718740095343906442465556077702814543796657038830583819631796738230230723019146611578650400419325020536736939873419210930254245394288222778374147256569627250685276218218641853975834278476993128173057645258328260425582802813200380130892381427297703456353214317066029481014142518375574389595670767372217500218743186459187251733780553082309078527979996353034272451690158486080122575147145606338123281161893958963271879920526747262254630331786642378022376358588940574567602801942012548913150943312822341615052467549283886333394807085407361888082602347993745257540472293022751687039029722999264553228630686606429706084292511353911600257804502425960210138690755866820624488576835680445237614655555373160436432055678160537919359576450504430852117350932749322525162753014122033713364169021138115884194233386227229679106239763033338565204133195380501663931658629111957075124303852265655238785960082986774501482494405050985520118337250382382847214420241192847774025995366406392042277348674925590244539391123848845944727062275587313368351448197704672858395720828969771926436910943166842852449549114411735757751128901043209647174960095684917759896906448223395516566835808171860323108092412386755099611964108415654295303760071619664512948067402810586216427763413035789226849234002053037936532186730596154706957118792467396682888709426288871946915010871281456498724346421564885653978544995785702303500420146216707957920847786546200659928618984308289243974361655197876860446224637045638661472318724425468472380393973063306437425733684682903020659233993189115074942242964223381194696339130641655968601559698542950495357614662715285178911091974732797527921086091891218615030407277689335840492997781788894703442248138306491924406015265728229958034803706696522028981781835451150794125615329821959274566910361091514768966976857566889946399457422402724442335615537545018529810026014745653726917310964859412099528278077769668308785107632711665037222838910300176083696886162450536278207283244426475891168501364733428645710046597649215734539158408664441000681330385694921558036629402856768938904974738244236685392155136180502108969958479262851529443078888076556589522779684808620365955469952695664058082557678608699483756788350603503207634904856306322601840851787255061110859918197116215496192320848744356484463469297745425656510115258428024561127627537854081534148914549706292332880276107567544929209184934553942468408184827714193836746647391006604411675888542952811274436887110799174109576461549609062965116524689555093411722332304228731065018133362025245356623584481451771291906503894464101258105636910412406842688627879792754917700671633626756798653408242839993203632783915623403122498413539218888658845816925144001153441673779441007253402299822415457595875508666197336236566504276668898629888318064006591175698230256458386944517494459151184336795078323897985570727323099374243909511964251697513095105894038275151208275851764358159626370275313446697427326678032221592031306652828239926211469685503971798402018505001997688372941681721174389602067344576916281721867881903124263504259690674754908167499222331871454877381222402677448675018348463323912127513740608385556685313278542969343696338372402364879501431609021416852275656147602438931476894592222939845012199475775726062788243908511050795366501761621499645096002692748157900121437902646058161231348168475367201427465059669002513998633270767898135732481041929330268706768837965909898384102398273141987586139720235422793446991931099208478022132324026601183153056925256154954412843150572023996959264281195903032313050191696736616066704565379545109222039224079517296807682156964887634891210047238586977794153626581370563089861479348151076405860402433448633456960400585024488717588541739133356884276161883339392602103262220998861894223297067334160135944495676670599662486266567512579576400908403757924582628911087306963598297488998566852189429011062713281157957800911300133190397131371749620440679857679965465335133850328871627640925122645355825985211397512525570343782360938589134270244422042188378483933854317810273563259608829636961057339284184815822697891628675447752753048973674623153076707143880730414094684723419972154654634720932628408327500769792080659308291087956811828655769572962677391926297878586922063727724489864055075352333049481659478263725645722262916700628030859985321214745089717905763691893107494467293151155669384685371772064681091443839509945112828430948032903814768942655859498492643697226293907429133574601323697133867033975456854398617827826995758360348991545010524111146154005009606300822866639895995458371344132408767949024448070666224063042531983895541939212744440195242568370891839207523499495076093903226696841686644434074123570501590776762657358902183818734859506380104992925114349194919164038002236707254446604783621511337850256033100156571001880415478586226703382639675979510299221714994187232707575755833664560245568382915615673595122534837892540388302618932167267634564582965069470093265977788245654263955821846987399602589672998914102134746838183088724395508149855918422746094427855749208267455951896032593054179095804631642482483078909382842934328963018963125386206880408353811405900318967630207876449696746352330015935621614380177580539070200822081032244000921453972407879081862313452957286330682131234031830730008536478253897668200923918029330874835452029277216883843677528165555853041635951057532705475635729248376889722208788880219599338922241152039687280157255429666014858920843838086949961157677306740935842369596135382093230538827893608205891329299019399117224928248876241843932470305097768328359550408735090183386679513415361720867217187218515381923674197331115460940187131762506512890438031038004056084104101081391621379552268205143558014578543762623136615992826149208480030860680768227246851136963900167050662289448162387519810223796297520969891353355768154910493618955945042942451802456052684020185524147946568706088472256305696079126910881398696757036003349442094840485008693678333510002430124469006702756964379866650456450258804213198339242656015321766581356644391704676237882551035178981557613641049456961566290481827608958302310163838776567371425622443084948267618630683424325081238655144826074890372631475063619406693119160734828528474209478088948717074059257684922184930670055876412171776566291035918192476534356791378242737331589467331439738579136156085819620601792037561277297598175338365468372294030605536097090507435490307171492653825722610552692863850146299959779379904681936517075315986536026618811615285878453848811356909121468788231445228025899305986027787646655256550460282799238986815077301479266603013331662913988138837039111445075952148591713102507691388310023902802676741782886087899123723721038039544435844981996491374696463801037614937669791560655506459399382458739085141290879772676489780770246051748033807961352867914612800433906787532906746604378330781538513234997101930868887387272653489650818149492631393451732336195759255344864351217889439884350586554968739088010149038587936308110737483487966832194799943898914048440728481593746602496652502414910856141566211454507806943038007224060918075322084181641326015331937806826210744481800718333781459597462048610584890670603517786404346621401557417919922234526847378200630531370344568653277643067509471632158347084619220261304516644625878885867749181042697056620629856855558966614441023929510126107136155159812652444612811212964695270030744674574223365801744361230050112579669627638878514530634502526372968333557320117340520301440704464174934397324167242977096300709980606342404520245466418233647104204077473282221784079143681764146147385290658399545020145965974028943683720292136277613084464213844714299688531183663968967680774246818295872869487191918344259890922220292951671854321735624461332502325780798408482065052133650938993793100122897541395853744924230300906787787119232489758577076146025162568058338466520853164959123741192112379840726393555615039610158462173565723029882901933294325872313475425998817620536151090028094809475430027249615398400941216089054973920150627134131816172928860819690425258453390906780415676551872868240541577094909569170535162396038615847603982709542532169037053330490208364620697444533584760664699068186271637311134256018089427097773660375850886167182501285187965405183701266507830551785632628047008914811997223628947077736650199863669882574752598619512660739184895068369343593645462700444347980528331399018131395650844382334726098799065405563912818735805011259000281258630393585192720828179741193382751622613560995489828656790341136601955745061865546354465058221432294350867203113797813513480938015487955716571968042713956769927630538526318636926320096519020374311146327550584849917111310597688357788869605097113465396375985179123052703361711216899661228590601294907030837865228795289161905132997331383839659762762453285252302499286107163646070783443882788675195194484055735893886857768330696521110105766663432843335866062355556191034249308316619416107852764113448696308646126774226234266049125151424497681794622423164380563915978753518924564386774075565539518199060016233917102743998261552536478788555170524861270826475088893207027393609425524186257898740092770924384044987714864138423470215294677863819417496394680089609613089319769028968890080908903638456414833781493250042383554194239621123554638382195240001841230882358009410320000252432424599035097556367960420106598366320681785677140377023183386076023270608599937685979539351066004637488042163629076314093718117210596210873161670272997407666594005695746885406225199483910980458568140866215594461981115216963060912120648255905571389235265373227148372116626356928996392303842807025079418062731654051347739613148153527859160265056285154541046725831443892732758290180797861538640856543852582992463187434870528104528515629771758571420496049312017129483296224616251025624682816694001301222622747917737197850808767086614707446435333583539292922659432559440717748979130490965028300544811561575721067606500350382367815562708151701571932740189623780196926125571019485060351625000439467195901957570063051993505935052644830833870310686164062547994090369059840140017487890235801506833635060164420071319988848459971516613273760598780699413182216050919790034045617263912080577122305164835727858986727531322535850749007866991755485487745033161356248352080681332496957301815786296781291442321330587865077911676438254443132527573628251186673829944103827355211212331064459172156707907484518799877263500890297807189822347719277090658608505118486966100485899629793212068244129891503260969500175453918703062335414550793080960668417680591085545860421549552449513780963979018604362774991759687762312999715660413176261049488223916280597235848400348435649859387886132516894090403676533144392084575556068490904236242590943893763948091430855296337322477265400906905156855093709916883554373496648231223659717238651020988820480623699541890709862964721875871476694858953954265787516944168934440161436119807516981583989808297783729025828859321166540864879344303279199729652070772155173512290480251325523829722554587570045681478928464017926068488960878351035450932701647912374752160373209364149356657639635769282050367398528987377531366326422878016291564667717302743829883241245588135700025734180833997717949540635555357667995196796090089683763676587669394023776452033926742243492598376920233288007820432536546718717334106899123029853119397646458793050670798830874125159573450253074590710182739963133766672007136129789187258136469347317831457351041865646344578331747108287047501239184223866335740656712554775088254404092568449974794707384774740335911286298369011616559962231695304252970089882750489835738317999656074362040199107641255377656713940956131627974907198211874526648342063297296479850266130388874009666487131693666844667177333558281087442175895257853967463397637568973313316530592356284004101962184973746438184648183909878328635515803313247772547375870487676935658994797764456476168739469970471962768272670854980294126684316955073936438484812520623643282080611778089772862678690376511660661025773483120459596850788527194154502151140206344788563330030105265180417335437234282791211894707703296750677586933129665118041736563150703168029403451895408655397000610205543933478888595800553843420825764428996388899000991409702486939055352670245949671683206134663291953857938411897951423633523683798847154869591295616962601984717286508478843963164689494186587780011805349060772263790688809427373697926177854857767887325308638019002232055293173901332696816319472252131581337141683430697448338586444535585594046657649869522560748219315071395565752995164957812900829630435510557530442989488108929944755731396010092845651574589788986352010468836520234385547196989739987071409981473748846846021975132742377844559927839542409379561861424084098004660303409643524550711580265435740112453271164933805506278617353805077623402102450112263741072618941944334686815079223708503446239297188647756164665433329726384638759038420369087127063084397715275101919860050670948476934102957882854913013773511006781345647610329169524198676504934968417283744436693058968810402850235013111970461020724705965208801223665218769121724000650021925699089857282750327753938405472128945853432227737778022369813335261793867181939281548677039717143892580398541900506849385130343724909959787693216361098598695069782679683904771102942226920656000150261149913038703844888456136909646445852892469835534016493895348248562357699956146794194472751244603563157278590507602470934492330823800108451461343418062720027221758576787572115654260896905007810764493448369740308530383684155459578264725117981468276158305291097168773698906596267121361692708906838427232834572531114314706037741595978715533131220223949410540603982690416650821141436763282672210261438402526574716534228161204576127108396876230206547758929937473898271728428997541253161764649940018493891930056960604009979643210405911945043555330287755149178767704493868175537730087836584158817508541550297582205710495970387665574012190914152020121072462856688059013158336097099648145220423268283512832763083856405556462555571819435376652508857428728868689901561505271369861713202652151406419737441003102161677599636705611597974247295071183493248114068306079926458249650543428630624832566859087727866465590684652215568497670580081652572523794973907091518961737053694436195520195811068828809503546061995727493960455354651874124557913452640684528885465361832227058983833399454118790430793752290559473414073486365897747277816591218516295820063142270035854203240221169005843021412456245772878178942238803209224023638913740339842437610787087859577799764870327992022321627014762112367284839390937447955995624942564254614217749900074240256610030849233515203913669809697106521793795666106989250494671663792245195139247947694346069180411267072102008174616280204769265409152598303351674312837890894376590161257828995203220680323864967867076426647655561931732096442695637367763420574812149011634637724125996985504126345277919187563485832746477491512154360675414244425675891131479976891099059372874882605819366462653284866459376520656666587757841212063113347590497210724104223678871053911306480323653182701284249231090788822701893334345582260924309539881958318263711000889319560080031425144134736335376146765161593645365645085204694341594058054043697566104081959059380702975964829104759026211652279398830733739317142835065781502621747636906659717658105369343902260258429068853857834744138781678223478809638622238489971500246785392312636897418667434924542929156370316101636673014239892616712028435432520605272419018144150417803395854562123337030451940329899744140386121908705591821227852378986611800058432606116532776000721497524353129046720480077178958763341895519527315797384314265315662627770309519773900751928380715049966510146216788720262809345755940820552403272498154070763943658198359198570328041114938159570912925237002827687143076137095961375534530795862060054284904369704121616087856292093146805871618096661934193659810842924544912494819981477407128130436423090370693080258469145423023001096689658798662015138448437490158512019922357415832397847700760221286273552886932484275072635851111049674407804213707236971147015894669634321351200128992208680905732809976731258228198255419157984970607207259463505256095266521880155509770851382898159882684981648390467488664139845606211881437740012980164177079672204168900318474373587701689920113986971385869268683628570223331586615070530422290282000781385286167871077863035853721708622335774791930435448622974337231973595120618935210192126066648384916970874895086731757247479954669448236155901656748099078924787126627917418428678331026831561615681419985386819340649072966498051841757831275276077328321088425280659997550480763946701088049057737838660843295388282774145370784938219852332539924427933838126499979546741631172474311238861453944226888334234251280206644039317835612256407411676023681729048363607813012698496621607388208223110496005796938673299795528238893052142321043864476118916305235777594817793693998223003538803751291352187282138937188683542328495148793534483844014560140832979935088053049008930349964062142516411778327629931994016929078895818835653961710358311883827968844132145751664906033343050999269085914302455368484339742189573668455415044258425470499729095851991425459335849946000796525857750384536165866919092330163371235093044782953264703546244426996888785101368029470500756167767925583046759029333960853531688963242499740380329686931328390157262464531225773641958484820999180556050252320884822127829308510638618952370564094964300772248068455330541665992335425633559785338329264198857029259059450250389522145151425767344921020001736816300051699296645797786562528530711713871129380739886216159117051380461091654174304401257939185352948083604330720561092813979423266096488741308999054887710178707814990133770078259264979989183407778813295187107758035696291787160985563556501329788798918198200980836600718689281575558567310551585084878970003940606158125746400840599401660319265380695340407920171571456847770150763663569715086860816437904826949521311000186395722027006393265964006654036664010379616516419942298635613339202383927632216793810177682878508349778599279165112307629361390575167480338829512003434727808613469262631927738397380369753630792325602374801697485484281585334628546258616192704487297235233633812464565676097749098503987903552846027702457474074492852840497956141915384304791548155162633981669918894206966284158025846629212068138754185989615613918419410367965065350513565022102395711929875568768073144472714444560419598846931120508338211154462118785153073840542156310875472765424532783068830785200623935060871118737151818584701137271321898469433832981394311846724784759422084405383704878690516713965488902501669079429503552279132900931186890512320867456661513922073869416671942811227314522578323170265219069896280111315329465804193719653184521195269401243564403367722776479767634031311803453575365030712953220101443289722458122840579735213211980030276496830896745689262959158887890744415522758429345729822008783443136201336332999723346949696443121714248047772172071159777640247167441389727281860227706288904497021588071987475434126207326139794378620595279922469928379869990850614436828091129164955458002042207594637017687672431166915012757823384694109122319880366614516820658271683629507359329315734084019430418531952668300417347965069481808648240653557559223151063531281153334574673073034943586060524598223795016046457535395399674459461908252553380253128056185617663373311035642980584789316158539185394459085284992366698947825072574377633249903584226549496013263048308758155261831582643693144342104611394410680016252910283426370261633959544999546908709353171407971100387726178883904314979925268448259614247504375037551916158247094120158368314708037521269965252267480992454121279494677071016270968818954166826310259697810464070214435764767213973530686311854534787617295310522773208435673782154749782106470293886789528542771633449623950193525381872136949039513343260104144343126655596134516463690750964180561756647511522703301452151439909687811588946180318827025833422362269920359322070686322399927671118720677061005111737014288423111917613798116829691497427189260521266919903107838006834941467045342521084880944835104309756890521540178441520487298253663802393613497429488812641518561637598904450088113808171676703630889510758590958910411699431425541544499212030520825921411730084198556873796859894896600935968162089732878182782523949548324830918991076215429687496765249841563271318095535433211488762941905207804488960148527645870996141838251740816604848226642206382415801461389439474237090614309040346726923006459360181563548111171154910083434524742739039153900062335983723688842676213249961189003772044443691558373511103520324197452687540188888181308569190945312634441298542794725334523248418808469637439003691580322828837258840182999268624822588465837480119092764321807403730694726268504395145089643612616597562267305339339336986984472728161572530766178841563684633357466112430767965919588247560322233169146551862158711113165124945164875699953080897441024718704284510735696135471189593760208867061548096701057272319394269114009694303016878002903795259883589006456986027497566877692279124327125809177770315404304511323373764049508380630099843792138484429231606397166169102907900202691301965671968458213154046074119152178656915081224775204078816906977920622814650688372849513515691035566933210854857239053573958557615688099148353901292144132386021622203723070088063139083020534226178667977582712329024487319211726656661786949252639327243714496473904083544200955292331648104316823211860202047594544869360317845111512642541863537698527775992105349225660169366496666984485021878844187999406783279747655159631219533633720478101568368159872773624543032104783862073101954853323897869895579619507547690443892674817748208362861836664099255998490315623142185721828939860086911132141657642436759124197902131226187999211107196133387775713025494299993809887668338483357139589626935504350813305985562164199416729558662663485019832601207779204223241171475277344427727014772211957346080804595994629413332971924230998455999372271275786131694277451175996849352464099303913552665897868245711441458519862595304643712097658906131661307220217319142826284847783516648856735844483226094758296595451213055313234077574025692296247272237387617419195628653311668501775114420785181057624746004343198056170298903739102309090753084463758304497718706828407996677274389450056118329881805135600259691463887108703076214395794282293056963812971135404487992925749371894669623288837679224077308263318137561801090139831500812987819659251683475475538699739698358643020274569956760260397183385220272742799296685740324660654244247773043559459466515730789413050269170987482976684102694732238820316631478571934059121855700379955115624044452982045807083663145921978472053361587826831642555269194778875047571567583824498881019592489893732364667836947164849416040066509783032235015311644170991776769706516160597191008143130205048092996324485234972571917132824822246935912866982439505264158229914078539030803047539657358295090353081624621832966483367369119502661481194958091337680989553558654894504208484223764931262206175141550126893877067512012078782515374521131645839478858332513819262488362714980700092970123380065936418665778243273986135869713134478397103338002401495766337703326168141332886702646214898315595671090522438822186861542005861042400004662307973425374007585279703574690974349283327687563608409717612484279283971372674919279760055550021862550264210763697973201812670924783732028149037525893719088016459118661628350454364832328117718518055278696392373877364603541668411720176468665081178090161687999128062566790581133966768745835110717554294422414505815899886574388830510195105363391459112736791037633950475047461509497188746078359813302386350073333799667555385279738817316085001837571231308334671893540016465106009857598417487079183401442390652004947565884743936465591132848732307002933817219015592227137020612410080387391385285720920667300747156581964038684799101567778807997833270332168748245547119912700792045141579430694439436138555269321033465077310902554811501658988854933725462510842927869721231298624387458790351238141752488820172707005016355216161622999706693176058261115538123749079479258373693747409814364002849276907696956828126953079558511319169031267426810236576163095321170328187194130094873323136882506953869585604990165132203089512150522687623176492464583630574471880274277184201222467021992680059913787393177266023699582216506971722432965975666672520209350619870349532142092279578703673668315667770201774857562797226855932124471523612570872770252744984599231110004480125380766882615689169667955581919328970618233164310032103531726121679688006018357816101197912869472374710095651904442144175231872102023718196813278696988670136823428608219198966460462170977944420858285424990535187896651416785190570317774837446798301687772607661772894375708712099154650422037752022732260500885216379897885155794284881995188866856281495967823710262294183141791368427129676315683875599225086947433581206061731311480941841672432876160371983674684577583774604834668610219903078957595345767789003562338278587226688953744456296551266727315757437692903138294421648341336442456602816953905118855603861146642944432414589167665971516260982926134871488236998076043237613776964810986594020914292970953827088602499087964239595853830031537650507507945913976043835905150977747128909735062821272356649358291168301296690057053479204256448738186655214119724454819342683413386255199117365951420945677618362330613529623843484765946643163814100694073206600981208507461375427894486245311470684526082020966268149375413294566432897870978280309107381439930381699687169110395439969693725103035594884609690378294533156892104192280720555732625135490810857970613455230786101767876536141192251586568237530440149919075736601692044624387050391234447937973557331726043349598447877051452878452139936130995352252746330067196186535302448374467804950975563372637671480140553227595909609945622206504770525565272538990404719652284547676791763485204350221235945114600368935769988081274080058229045650218669643220847172566763992830665519035141764771475980061247941313710806420169491156861557362932873692008995367153747036114365841189385287079871057845418263229299708818722339222251977939358551521127732621826039659312035386177437294517846829386598822561808579408735464552287146252797597919886256802067910360398301214428084905095638458858652279254721115401028875296987979471670804432579538099823259530787440399962514852722867147420331504969588875839744830870717244573726519450092620716956021359320460341780628920807510803711948667058213589255107680712237302488493725623627154508251645458239683878681766098515213333971785862441265957896753628527142842779078774560439057633524774643869135624470551123001023681465271370651447238179430787229885155639388802287453929613590070465548613567467281552340061739995152963327383590957409631075273067911246888471281796735496680291571855932449887474577281677338267069689630532703921786061624476616844180750454164800930934029847173290192693227677812798082865989925919909697960108141337043750993717386529972543933434594951749989035734133413901853887381431576289566670102208057595752314047413053819162723053205307228735656202315900703767337549276546779735206414651361292680605810947568672703314616757602259895386476348725186930828870354636637236377172058663125595196211259773646013349073848780634293709390982877431139148863834877648262178938624159555166308345045920112956750658239157938532682240220116109506990643827798473537910106251625307396786870929132808756920202782033318408393143286235460223525083895317166271545382961858585397161272602467488091118789323307037759598673417540781981793900179964748162485740842843871759610617137120158018802355409044773433481424643672084181541769021337217360387040243477051100627571062296782687507841895529303336907452103772311716816053786360842711767314882869742422689987329473652914278846339974870532457463314331527464670196993281127304410774113622226361501156283544656112396587916434651230700703736339614738219057666489587664989462582651450875841014217433393259147781184212358191950581848058200486905525273579610116794910492787083536274090162793228489891461200440113172177809285619654791496534617044676155523573464166436890713886549300442271751227588924562748637633725457689035652848517355920413175909586892260456155379630430899613193848424522455067935036454366818059670637705157562718662386163876373034554429517649978705411440721478688689313854123672084097066992736187398597722612317665721024374173407180272605490295868657591461109601840618402927765796960462705365342474992279933630070140142491520649827773466584328227134958334773040119927914438978958023242306829330792666391443487947866165795361269168218473498399879248140840480247686130389877170227187648045955837749681550444329240898420146422698601099476517922842173899830593820600944658366409934004383585432662652443571118487072291674585062866459770941805930875258377572666975603093258698600140153127725675034412727149027319694372172346104286346032705155694111592044023186551612158481679964094717683780953544695909627822137603893140293795342541343643395687224834473608257194856353049353177443855908455311954041076350654216860372207520764390751617313281404425853857542562434994727807578564141417727999385770841863699390212349557504299672847177898428185122285415347621645137934555120320896139183817769915667247468975240028031959904128745943252028322925752594222105496870417165596482141327552590961111086627089525334268634123488760572564153283173276611304289485116163750063410705869612321128167296004791110141331099680210531065252940524931264642103635106048074364864515363766107645280507615204489065044943426802696923514263115469394348788559166271049488149660318954358834659997517969036589703056151744366843315400348022143491835899064857212412113570172176052598760649798751796092627039766973323043953556714146543607845748713832723318039538809276458808476382605347252148883298193781565342235955161656341777115987684287063405613462588764281422503406572102703047443875205402703777335050819391452347722740206877387012148595959195765361489326371510507595701258674267293107067338543835970893675502329684516870634623141517895811633051814847229271027171832317973878978854777969491564976537289014374366560434422365980415778758300957904365306443287537715942717082718067989867028560416688372580951706772565873380036406634369028741238564684891288314438834419960566299635902014296590124098775141164637209400629893828673472132267346969621992989097815684514497332267828522245264384972631667310922434368741573170395916473863833952197371570946117437787095154568240077132418700716875214181700892084585336136199337652641486919248920982113531272444497459554266593937003247809567193579589968890657841504831832510827522867184181588080138488017415421773298513281318479949383347469219357819298080175396226712456870814068163643098538941589543183895437682282358644050209922456727563635093895915245199746465006010335632258348942939774057304923597577230470864196188443934101507062513924720187012050984704113408509801339566696518433109499105240584569147692074072070715543982511428758316808470364582685381243337312186270360694898722465849649337127973089688005315852181210814510133666107154355973293410770804972129587664714926806164097180580782306046471463800806422210777325759766181242919107043935047614401191136967378231709333770850567100561448526105165210613040739120116266702726885708559572714701723087447926101928116686057884721700720513238835332657294240456558018848100718131738780033898003834020440960085757583368006163074176495112154848468534680294203033915113504900859173430788748497870650561813670869549732212145969658088838871741737410492128853026935117686677048422313172413255166069227104718804656473637554028165646315772814227994624583401027289521675430605381566486482067302990219417345578014412626210282351398455132285410396480715250223586175093885597072628505995479189584822320155077241655088737162967990866333319204944267647775242489010973520723145655588815204938251451080706765597437233578033172493532452893394160571080005738709948714259586686719663429085506297685842128634067047245328028490865075822339221668752949822119174861521209216698179706772765511527702839793784994789647567646477620323970376222472581890043860979459388400676641330603618611761205612728588971751206165329906318699268919199071739909087824814178996862717845142231086078887038421144199986930149180739543125986502664147088133347883343017961547617975405638679048447351276610542665716434750568676803897074766933432028035063178796435522924408462553242085650461354693257146571522302818018853771598796085943923209127272545848531277019369322157851695309548693447019658868024426221352001762364893332764513253084968871452645613360730781252882217641874101588185222437504628652210141579126342565913856048799534499061329311907187428857632006427963794591950383345970790403700316498457407967007863883958773155808132164960296255834643779807428788130170823301410289330364470221752928820750143049814230867962235017521608801511773516683389391885655503667011584183723741850061771947414476168663136604888540810208544487255200662207698322226268287273495896347688162987679279592316840993438407060294851132423485309872565370456065406519663669918289632448677207822074749781838685237336522460506656059095649034212279125345948372147635527000800562308708812579926829791078463216729467132321689228948153464547574545087843824466775866165066575830982215742867618626039086154517361208790950533965439175811817457111627346831975515176304854616189036967454395201219992940441329283570773841268623482911370138060165366284389224417718308903822817507471480824094303841203808298696581140405311602539523346384578954811722820705022529809372895359987348336143152473393182776352934328605598970947940909801450130520886872270701177187659245064021549663495229144298813849519713231044317133448650127575232202859643626296080158962553390718361805790901907740338728669098719684770472499434717997534371207511211334071132795511520421328170283547880381834260517728690301284195480295436899975509560639352208094398907918049930157829413765466538638915248520329909199166183076394838811047044996476174948305149365319407056929625643167346329402552624176764196809239306180229447351848798276659496037429130495187100933398195044460237965789913794049149029338751547126874741721972610768237076881972269500365438874706064040239178779007683847350357149560059035967803327003051085010415614550169542967643214393376165536573835805062675833004504609220004688723381539321426677288889347537154675785595363810236069162685503313269140169683283587018594207945721122979359988695834721319895841347300878301631791685451638255838904464761989460714049378622855511497831367181044018086926799288041325815822200858020408200663054413814875457247465092813034865775392422747474142656573961959270829340160250121839886101504293167526695909555684398507177927373988683111192169693486653681415460965398658644288433428976052740624651662051040049439809592023073476347744724927863618054388636026587908491600074025484994563326901742437371739174584834012739887967299567561415754664629164984936485411511571584512887569790530141102957652017136696314042907933142769765838598463654747328443179317847032120391431651421181400873932819257291847906451381113300734637558653647414186214336685657114052448524632746925600143469435283490512074699640466877669142932941318735974379947823618865336269776406417839171121283693752804948300312137825585396972813711421987738656107628853875474173663277032488793459142462929961986953186382664708196330256765374244080388350678595594712377711087427057825486063680784828279627242440257588159628156468490744100354690941563639074927459298208456102850659212608794106504992096038242400348215976059283722684265277771993227701990758521699415341209468526887367809729950050971730260068179026824721222616525874440423456317105797796983933671841569220623339365892667950217445013831190975810500633889261238924118767825929857315520802533128914749377357347649987771552545765676065748695097167606893168417557326265225493143580622916080875848290994245514059126545498624904407245086811652692935055892953933172538678351210925576153370832879513292312102918671147571283848897478255986061802654654652894467714885944508924918567966094338877174470376791562818060674368053422932726595359634327080337835496582406648972747703223124295261170570437494710732229360535393708927431040859035383478235468003999953628877325640452997435877914381946875083929319851487587384058880055832411658983553209565684328671966364237222886000194883453741505671390754460616686655314721881197762125893635181414173223827542026420312845233377880839002849046536765670649148039133934812092295297214120077338189070124439948934757354919165544598465162156909934634667714234679381121885322265085017453477007390514032718611157428786923101123784052973505161126599415646260688385642777339063631143474849860321167871753599611538843603008988911713916395133887025241445767002756403132499799681525043886450195245213460088954955943211077323461087543108323266879810356957215533746860148871447817686726037023433546598766197205720848509913284562600509599205312662798392241231117053146604933054352111835701921848006552758104906103191858756175342891607471714158244726919798733131047757938603900615494176833763812005009397874805850793165344728844457740960579936661524485375442722803636279812735124647011683043767232324187203525800674321991572307103999372681885435001794979967346727309258044033991459026202145146731057997288995398739223963959412307173829072761661275936472858339788627241170801433298622875787480197936049473041117462435556473461273720578042624963197642264855332513376840040510469649300451873666877877308185147180964477131816909949404102527724902256632552842605368965239949092285149471392946390818187141315698603436497164272409497949430872193744196926540144264661741628700907504734177326601838151054936234529360966894293300508988204870736191419424094718549697548939321434161734825396018647881931826444949891517279867659492103144522396185753502793245382132608309785486287035492592162435827316126005340057172656011964792408190910845894423521151326217969574754204990861641006588082002252111790218698794836948287145998367434968554536413921845913887498162427763984806316697735213605218197686331929608204900135761577077004786391560202391495518442164462288393586882511736677426547935986097821076160685731604643646239656239816034447662070011258028525877232974332964986641532666063991316452197107875607867345051041506898583154260601871254960870889526463463990055418932210845499204440386996313820254122295068617836133044871281857211298242397028182456358735765210971151551376898277862301926379358862120563136132615937724703265594415272167518663577562642214585508887247527454494656517164095979105091854113009376481159967989693213013846332622192677068350204231824097862367903174901897484298522870706687720500044614025787876060896176323308531065328784153203620696518669671895832434277703265708922932117094904897231120059413410179241033534171900162188510945185892280790337315523528336582309559675770528165887915958661716751586837375923413794670884531619604992494171538482659663710012505590096637628814282703907938512739216532504098554142768822516863611349982858676007387298869144425553342391867481725538902184522086095648309712838837085881497435137102627918351653119439660842978451245980366298494551813270855291441291121831209110085639558080420315496632665703258959444254368971484592072209209454967778746537542564054729713149545218656786805268894397873920638890818448158039473893619060736856050345887126033628648844772258793015694035992173786865996540006716177220295864762344809672002555169519234409570029658849880070897982540746519170433800033442006948646372466735616783025091493357448551555781073454744044476654118364288507779154602886209374188302326394939512493491867274373339365369637773265270416424546045162226344573032111856382156141622812473433905073893302039664568081439699968927914577399436082010551072760216593848454451342866250851822528473923455429487006045970556095168732541344175332898489517710942411525650723883777591545514346363518382804123214663418946067398625100252102296759575913260047295291126178015226278695345529051798540298860594399256488873875751022435348827253976253007316529953450837508358550162656772500449607202955773245628476438681286822103714091608526452939395194009077807158783866095768802960908804111879992554240225353000464025971315872978438960744847641145159454384473525010444552463096226784257892692681718948909216087048871828516658179466994431804713403274173717990929091565750372249782983209263882800390434272935744204619067365178916947604053723848570333100568294613263577974395174785740660628701705498829384400823984287072244384397337347383356931849848757897623627230398317423725745014890229768435670872421553567965682157251803224853452409761925321212452172783543935650305957964834795705469982305486857614287846717920708075090211924009478160706431299674734500220412921771385875678832654919656065267398245804359476913715483765336359168114656696630922740962693306879611013084405575151133756345642867054444294417356316513517003616919913324527894226742092820725263359230270294998070117723041677863885436596208867310056862650536806466555038961818984013827161049218158263576647395832432246382275591183193092489316033905991431506374650939315439880085587275000539197111099953160553339494920236313842354775564014376220983457496097035557757819042643713299448579803433188431496839153977145324569511097744711457118195153946758077384016824320836195554023902028508124260899774235037620633019071902163156085768287896028416339305937970899541974613885625319436202876139117023779598165940252920815976583348141511541477070888746714310073705740972051149973664387977099189005704647477161987732378291001945762540585035061281274810030057578502519041654528127128645134145469509754361272404593860690413348434027936789194312371843527586031262481452658112895934259000303720040511178870724974296053585611412383795729997196883058011621516340636551724689284318646229812500384340917283087753757913998944012146456950930320064109595495743348290858144121607116988948777223667492259607239852332818250969538414202143892835459493343262936612641453966965808224548718142084526327739188264202331543302439661446987309400610424977765524743106794251420629503406026110177078436466772179776826846299757255413105520864266954982298745027306238994823812056267871374454085946318853519746445157437302069958300282603245970170977971087162041269644340948578310733768282353570684739521355145171455848654999613990005703202482108646769989519114563796477309098186363019388462404388659548033237870588059481098544229638338563272999897249602567988633932740610666909948874957083820830137713176196864274345914928259840771972140927757491502332221970663064739028395119407806620173715738387321939778683710430763183704175534595998091139724227474970541782881741939319493315839642639261388408921144131322383677818639106571374558472239088201695250539560198043925810491559371822932259656058026895345141987058975048269385972726879218391758465430754491628040808313552666147570383002513952816359224874882298827658518551735908169806161213183718108406648559857085070584099971097903993837620578395042418052942599178500883723127482858708590904618597211176186346412459471548697695418210544785892498726978049372517538764267865127662310478690752744140861101412159151700462231371296501496035302307471718591086724617830263331220301124234175298647735116557629464505302074500341812510419799709271247644368995375481532460402735658453492500861326829902136076183268967204236447395749347848005209577004406520093611381343529998818740140740461739908455121622702003292633599385976855755733547105444735276789285053453998103434739710188470015064278350591965611982184228549623752716684842316611739906778460624188721344219576708192627454998935284268347811956820147738513567986855264386731805925048556813313108053796063686181126194668894286753144922577631364556053191259273217654460582846729597947459067232917361673443928657633373718567018013580748994036480866954035418278039975379690561355602669939649526323510218562159037138074543086668703102317078463685126070323596636479029953766756018521118288021656649034216872156376193082538450410605850315513227466444698050145565755748849152686576811255835247802626674661856020968264885443835326481476218536159203384543625195733939022541155633905127335360777198701306093781874821134062068721171711898684927886179623065515006271228924757247795288736933033092667184089971521827484603794427294032903275052071744777424936452516123602948870020912434314551379873574948206882593531426812976574753959641684324450812138314071882292465053230334274828735674229401153976128471167847014938951884270347453850068200704608198080419834932726720027621657098317028490954381289641828317943133180752553261581800282162813334095301901431580941038319857347088309398187696041965520236161575968032104894878477142875669259974137678775329337230858959398732034665967028881423675435807062513402099156089675133908958595075012325355810574463866618221924614094015542058999732582946961627885851509121546758200935866514483433404893221485855382078689670160589148239386400796397590850781516119550780234025615652976336138568426561852557024770456899810330041227927931384806904143718781913052570637176628247949420321248725499398415439226513559675562730930632387159191495369682335360618492092241760282400891114470783963953430621709337801326341768835651556019335993498676066895380478950522103075339929247819689656758549433636441797064127554178638303583435087049482901809885576525721119026610249112525560097973306939296160806991774333754397551071619701777946234268873858116653537680610300210684127691541102364806646814223929054893656292559853208677255574136431594139567924092780087196282028657207107428064085236896907843699649025677853995947554692277978927842599309555900500981861731735300888439416574518398087824579879631539530992764426395603938395590218924389678384239941640504940480526407832304783448929279998209500088381580017651879945414286497855333439268101095752902816745631925875556426223580207225649432647457763886001658813640834936841808756508521687247785292367944714908513029309747396583155340178463931583724441723206378995033410103884817699157404229007224801419254521171644769154306177288505140470509983941051198936048894446561069690121556299803348356134181199068098018252502049651184289843249421522028458167181744018788771332867805975958928849191414755989443192603438079389578262496111187942588535796288555620826650677388918910153953046933515453076428108977266719320217138157043199446334265880694355615879617041352421185625124012576546385947906334241864156539939400002436416641957975848170645561420173781416385472154973333247006848267617519395480304371227142790519980738812997795868991459712910439373353519928513656186633801816915712633173107720582632284336708804413041917980471915981215641421162698074375507545724011721876444638702276855072327310902284436574500584845358242883820116128979948882082701584572149288851255311165231374604037205974023284294841887415337315896133708984125765913218057897630296771165284557712302842534591436118186770322074884280239368669877813448601041271858796295813913571126129990235162920945842041358655564478044338138516456081060763243673452405327887949711105513113836707574072041164134164779414082777379772579976300060803967391979709998364256331247318633588101741431789305466142596930250045516458204439792227682744671849535484329392449363105891536468525833863091026467194861744778001499717276305251324947311494127657753267015229890473110123828588121815659849747427630085527042481662908831124509285523073713660714547712537309618298473211395846521356896088674174831971213365182679638902857273406080683578719589257959463918402052647756862693192061983562956091356461545111938197052952731074457075702606513665507091273086219869946242803642095296326755774367704253392068440869711939882941562011821736037945461031425929941930769989480487160772402297064983766510165878335172162893224830727615009833247353812122658802027983778713780223554406981493234847991868976913585805228072240176111378591032160576702199167446653385173066803186046998006170055009779719152861668620247272083310830745191319752372528341455527946167644659659305652424032186793174333230151554544133714800662145675521436383500286850691190751845882924486321950612105553980667233346421147842835831130092095643543684040901828510791210963058188159866218034599133711248676913117413822559132193862967066251582896943736893352138193718845368456169813825986249970324136925934409645548835980441041684427130515326368475525505893235038559289910920745358604042771708159161662560956519039962615317851514556588269497188640970596731687968571171705952794293360698722231529119224276031344215702552202561361821465492015239396698752646074127335987532095548104712734842955993779694675885250170272703728851593383835713143388575135308865398572901412248908148150889627128436494206611254366281037891010714360464325900083518555605329338689246919733365948395395021630044902629830186447535155573272736398025982054871809497175573995828462476958920513871502995322785636793359386492179381211597336872027475615095026395309209872169749069484657420459707865950160600742753460253443643242501148350702534659157239003574290558426377197152405932498307619206894921730230761771380053081118971857443690563693494604262221775591575518747062285404792094164637986304095575820797023005838788254189551168131901190374490845030402850196158866421000607643664223543091530770465812601251534550965293716408574405876817033614226981882321131528664922977200214569227439451193862287504263295373960997500940027384059676428797473050251104977193963335225468939529866747772404698929630766111751676201382399860199516735612629031714296787166059807248897897661070146028466685913648897714116190590606525552776297507215381347160231537679286755079247930928138445892655366252993216197579398969271458771612084781995379580599375099890073947224188446957231573745274831994536243257984583556182083265620545663370314329025603453018001232950490477522343354841266089505778522481278845282396553892254628446440467441483087500388593391306697259212700261403488892686300051549964652885840406588919037341240662674969172861662979648821009180383369577449549240080813795308417639060338031586653248628431863859461631271540688717152735647213443043187850054608458398259814627978279308791551711359425919749394798479683748514918564555948244934413987807557881920762486530131220444009245402908238942681003923009308223129876415536224157442071582102486147738302967535599521517577666608264871372729952145322680996553149179623931388098167104326438658852861243967277013360816196310523054912147198212210735994767519462379853325673270757825905863450934336386001044705479224044267132600021006996843693954258761664993355283444664099528839971339004861473679488292915354254698699946585551840792294274417926445993832361959936132091117790691950588601376738770925814873398627161299777958795754940641654548481170975710585528145095276151754089894114863304060256688973216571092673283802002705110847099507090049977524059050447347836483557275916795109636157303227813043257939176111223396892781948857979149138402385404538701820068432341095296483746507503487114574117935906336663991137866789658188265812287188730465367930926444666850697037417020220631191177780606722703297691409602480413302612400820740024791752690072987816860145297401051679988299382834819692508836557131334901412947501659516898581757007325412001262679113757863958668774205592873061753463646885759501850082242422957646526935997780360875234105260650548241060510973758634876295121624701194297047553311076648507930044391567147551716297275928549548129879947889224048601288323102784198325340573473591502406182711987470953881844011468471838592133002995048286003327402008898586638998757857006915926686921320631187624239410236766843841981617331129450631543387972106320315410188666352946310399201861095545075404026435673436804200386022794281114924236162112788257601061471015468733250419921633165597700155378896388006599699099760842548199101004229208160646259104311113065486055540626305179972201579864738984757694335920161595430289810002365819799689904794936298206132366720260333415991682446476458639484121397717538631847283020793262251184612686230713784797083788835479690257346993310222429325949711091452323367851572968969051306860450069145252850227148098176530376980488915981851613089287132100600855565407603031166908605991074003222718118978303124391930098478357244764414799633496602114369172991185467951256367125230464998055998975439843592170850043347738132143584777088490343822240390895374737475461618906243182766800923595156054559040504356388633121640891620779944736612992242829290310851391652993292202464252602455596541634344581437697683395937914359228325085369477247504964281015549057264367406460941030927864965788584892660255984981777620370215566420004666566893175843077824999117020858207266756210198479201060306163892821204643315128092203870087507056100224108807270282477459205829851455722666672126226920638578498380306252147085692641609909855507626457364226357690509733490274310732042002480679300814984830374779497884821190271202257423722287409382575383342450390927654654013151179978522383688924279017364226917832887927229139454970209246590833727665525572164871006765689074973948108415258578632887577594679428709099365116586673303101753196018948998820154045576686593744158264475464325513359716557828372868549336339208834111559175848245445646385300879100687361363081572107737442402994521981152516659557594149993255840975236307618651583903200098210121812553575666373156964957636107219426042736394800035198434822483273551329616527946980322175136260265708096162025911727554155634116322977482852897690504495914052196977106295258986935015761785405422967822537567373327173100512407435287197454066642522397503250953037594797676608436838588645746257079570475477240761883895723232689738517984393492896067288956065862149076545144803709959639678250232426429800149615612687746158457620075479323952582272057086592268244351108094518904579796880226091612085708676267574100850994748897337703496519753021202726496804503656848107003214098627905602031432164133112567630566645525431571712869439926558424159108970642670120633032638051758896280470264903411030435545191012272042258374928457299713930276573046515963864055239297078980700260746043055473510543872990326422455568861636963613658031554739088949776850125391089577196932901943051470482561145496562369378480569117007068301458522867072767650352016721630906332177486542013186885038357477642993622011235826439930977597153293995252456522690386388569826756050983363471093232532576607336546202357409825435592025332336186104028567728151565870095425300014490625289513043779723934742430262756001488078141565854497317819004261584455519403891656833524239484545271778273855340066069440524968989832657831691059924625758487211450266545828380508032944117346942135667392806382977497965300423685425800154900076036642584835426440501980802363988372675759664214160098438354037022838338804934388103085236817148083466123707248180268151669823062746636900468494944024871750612709009804239482872642050127525498045759906733780104876068690259851569028310061114800645743324061693267978497278952765674465643151526283793612544120549735841917785001843059356618372465581301400543962563585757346029042664386806393328863048719412245251052308868134861066080790371554752088566257508954276399105118283692966166732241013976562079350693078155492555904374772226914947300296976695919308448835868714660816013296895331266256887158805611362165306416700165403575207770986029304857508322987089700936690758193248892362169591577414126776185776291296354958734380051864129579981811940923767424135488535826440911856584049622325367573531493128676943382675573593751557387397394574839128656659237490141192226898747196957346538839947958383862628033512445330055967904284786121962297687449870653986337967324186007610144626364346406225754769867022627986918039238718356275180690568507199362050808957880977690126767829237818937776333671247719830130991648152047530259416826760046601036529064382570658345088807212726794012882526316968285465453135098509656927050511322128516359144752192630780713863466381936709977222927785720749760630202524666746162659308810784350590574095029293942747615758825627339092012096636964555347425044132402547373185073371837032597431331484998301222209375642796826586830347110264397847972001270243140964718969583804615965684989584602334039767115126891076975999494703755538932321592053255287674091389514182518079867767387675838466782773630378481584927206671947435166622947278705712432880060112670502486137758675591265169885899770098250296403537109977025081558606038638333581269861379608713528432326029177208924888345082504036782860396409029090362934869726563868809817504904497571300209866266623386728398840238610770784384714926588886732002550740436211324068273254374113280360066263794598170128448057128234335817214247623968499400437907926671913012715666426133357295501132414471505684859321735133909148126609063831681792884053451475867161271121445203115628772967125727937894337612805982302249677143477499212686110101217640281481925579175133158057775998831130904803995764986290461389010037347016514047587455152845078501940623914031437689602499846100258239262506585907234901758207418686817654422726926069748230214450437065994122571526903925817859304125996461243660079106609620293112625550455617746528777094364769336440758347992554824283865969955838979912358456452495549633499399842601925925821261939908368986588952294429696374356004892748256406084494946774295472512173988347344456614497530115529191387268295688587651795102830344203717443598401232517696855239039901698206466477801484556700618604867558328824955314761102309772253420281523791503660401927670121898840393864329476429216240635927184658820269575958459688627204130756491057471218948208715548645731456125059951201205172590079047775733212345783046893953778731569671395488170993200018559856107369653318638445078800838644651841426989778962898639455528873644634070281091969393779405811660911410980153212119789354460751567366964998918320042773270561812948135456176166751881021102188086308289251717969075791959457622269953293909905533369563275266881786061787555819159560699335177357956903276572661184684177609810064503471421958014511901425964200759266762068044324398038843423809187655703433277402566367286215550009467898562302120748213516113791549229887062167812042823549602083665423493614887027345794513001444113373473495095727107439708542971726174860403626171900133426303247956954638572741520034749400323471330938903503586561143091092993474068032359853227111222923204738949864077078218128625039843694019144108941120171068952447623751236698819319095398701599500725241954132880246854733584529545752841416280200297660275681064713415931211768799401376095636706338637941865924072549388849518692532212997624942296897925959189586974157897432423032326315093220396276368295544741205000350034599200423332319689094100957867640336125650697544813082161182370579458847555991823838930249001607719643887030591451904154408258354313272114014125354666205120137118392898419825772576616161125837116035448661570092353872146460699311312690074683560652668652013570649649730867032923115809058518363857978296228145639005431754469185344405539788094128013875081675990619940336676206264433169018126730880895783100216452331902120923553412018449288969881580770877524129229975761384696223341835972040327716539437286051177609147571526870154690435656878096647645403360189257171502361667012954198736741107379916182661820905195005336372950214769116518376875748027265923089552979681083041301460790068190062213861243137186986717454564512822146779009917506896576831145219498515894131563493930470120547884706298439082024631168440978486190995915574828076422128387708197698913893103043760562142329522829258425021530483777511742713223282414861301586406951932180108212325217478837060004845054103178148696765442399480965331362044724960335920788768452610412582373049970596772251672242162379908601133987208629192268683526287921135328206606536980698293668089686183244833279974354613868020766165178515654710749436110582295042206704081807970304487398850191874095390068897599838621071356947719110029223176976322818735838434164530043577119580908120440032870594378701217127198254323889305650048383286415887859293351487101299757720696057823648067634533424216916382806256182819505774552752583495187424749941484447793129778725991948439317110568613380175574837608323902537837995616154433323171032863121292394189341173997515927158407298798348855433455052152055886673385201733704372415664123308116094565646702713458308541006864625528547492391701754246414882405451173816904756733582463233183788489632279067308187107177651344565381063851416451370998846956638998688592879167775644925557461129631135777364536718378529659813130732576256329839994815963760732916770647401227287030930280023256590533408832184348198633025834035673796788441987131483023100903243100862942951218821412954667669965275046172990533184796912622946403591390485206203267546558986074594714463934562654225139318027021241282004912278313275796424812063272879057638545955533027149434030845601248607218334716420178642727524530200180627154002873963321880683975581237902215690154191193535361059807296706806727363798783520106943860870816727716908618501809540163436972780978622954655834746727163025481477315885993731622929834519907648222906797880450848547518838281245235853321655731702812117452228858674387560600131782175157282119288113873774886036525838503999390128827459481109740717204790863016907667998198452740170854080918303622500973153598935761162735710139033433493505222917085624773109164379537308621095956844681054848789900085799187548223136673923085785209705393381880601713146839779202274305023617964875017443101070139403851370735710186351625817612708589243179892068794062596693105772173924952621865943112966343528624606184042708003722826314692512901703782287981598928363333906019674857968743221391532009366403013416343642704998650931882705094696288521246612156006168595300052210820533186599043322788095889443950897435804232882698617766043268122011366691107032760969195934803901005799206467286661720217545219574761561318334422641187298665204231318627487967825711787638738480665366831673310299077234566356140390318912539070566341409142300914150722984898027650342637987184248731380150039448492170831597976892336499556511314268014052711404894228401263584874518932773788751824051530993766351894848904474353271912774492856682057481712787119613192621953178968739617579638630262808731770211014409545205182070212136849427481727318924260696638258426975053126288770204961429229882544672735754246813115725881725361740302895503749486210076315789009668120478623069318664107200667618949381698472252045662609932703000988590283616156569438061720716796040719978549458982768737045221839716023254878017783879395088528227884335208438781312500403354618345705500907426935770249304737870336606559063181041773149102079121170490152512739414662544410810591688208392176187176448063756012204155660836682991285768424249672646286280272044705861477924884959854225221506148816426334268369587130548890575185868846882876786384184033575453606937551238720804553947143320002910906109753494040121628078254414387732238567534687367828081834094765545052238504684033213384677714230322761302803286192984897487533154013005570415352234910366616987073144526833369140099854952543890944117164581855784675596254209573963838713091533782302499891157340274974110214806603943369909923597730540785019141853975593590407987954839945470160023953388493404265237054760040267050764587939912989713907395481134618115646529499063290178659035951649110145112105156937914676897629093042758097860223516431321975623146359751399535701231307060170699283431479026002555426859502288464198029020578297432817400868094570825677119379083862261696876833574105444605560765535155984026720587913986698642121615746010854545188220567702238381126607224761324899572490880664149516829944289207289461820044061397346143950212132926849426976346578952984111037474169164639772869180135980830509394119837318924837687411549494191517919330942350835481107150377661963978148602585908766650882302908802886000192251263669665844393733971728560899703525575739217902358889692425846144158033061639735135083021995226848764174896312581188800779638107030354714176899712685834107344426560932663884461054053486227801486465067970410428704671034286510923712054287029594785541410340436439313144233501246792384996680823034497587068757208116213546360774960244524783925817608455321531928942346450610332118514474030644065600759823281861156826964506166250098557650808092845169025906313711214527060845863345244246747643284717622341476234873973452007485169227932447966814290392990342089018548944335662422647076634232485298281592462626182933853457163291146796163593705111788582061932064603101972528625016927987926349716718351866538621264963447893099353252150192639233049346795525874078703020729679324146272834006709459139312070292770325616124353231522607806267902148873214942718651706663669780455528247794286078488784123824378989956905213767067656494886076937151460041200976159222251601438547768344061676738062690260108077244055846679652975999009044153738040938319023643634521909360378625161678572682228979413103510104742905613664220994348403285637538240426805765653511614608496911813454109370561443093795767495935595922277570529606306556994134421339858390258531252165122059815596171013912905686803372303138422808224381873374999700120942424896874670826718010907830151993629606955531388010261779064697602812898139001244171092750568001720230050340043612767963492711218761759926659496416440990932041497082724272741126753435572755503459598237406284990119180928662859764368428363993705239264596044764492135051843458405684991981961423772276522408550013235999183601330165205893501620137136644257069178136029282337793702844947463922182777249631160842466190457424972847897423292129694823587821382271789269944784855252366712429217151407798567721435857207257341411762071048032273777290934498087295589448718461021947769340518765672886708669673500681548264656696522780294065798529868650303989089402258602749396087534373186415922155129647874119650582099902985484399006572755155150538820238024773837151726823139749508978836511070885271706513265854773044229116845628413948011406829686506496059126901384475032808340512403138034846846410263514830748123489455937740623196382341875830500599256392205799409719764483941520763663473055318706796830659634363901118076957906459673187734673855729735254840591165677994567503218615458794671630296263751427252316300453694624041195009291321201984889852877335767423145322104485935655222344234381685002778509335160586553055118948749137136463619543139707831715397862492831596966983889428923186961579241365333890558523929472091407459907931762779666453457349405207713162924682234902336643003399801400104576775137764932023214980502362699599278951344804277528623136891188948762658571281144657515745292023933954075439337978565400747049666341706220264773677032811515327233411993744725277476425393506576628969391837357552609307993388264985381162731387891300841215515251588562133355157022501258689912200789603363440043616015012243076095944310174790218576783471240198610233723079331070895342918548271378138958412732644974132137182625143918733750329691532655418961647490524486563533899545835624436230002754233500901791712766644759179827536241233440035483699462336684476878642095287378561671110282017245878234908800893962057553811690237810125122300013295426140805719469448333564965293327749475082810042745719838744874244931238135104081439755171287400859125324060306864062653100146313912468617861520966223829513330264632249419967269843277370529259738431798051291624695519362520133276986636352918406702717986337131280379085302051490552775584569431082086650530071291709815060970817895162667704951924974097699220233066692733010373203585835755069007373516792183262455228795079885399560217053695485414963749409481022893608627759010299453938098409290409455759145891334887212612511886990675491082547867636316296538106755688692490361112491575486236613656636317817949154371540287792555329885876874482867723580773245687288328030272735949352635191157849766754735775512506898941049717467632608158047995211902773623682235968368347936009814659523784815012481201345956595316650065702362750761820805391424172577519489500993435598083344284402381678923156760083427814942063746027924589724356637393148636444542751444276055269699135409625670684805363799761309097530927844176330553862676284711128000938550865213407728956449196679897539612720899192764869920173846725004637536919564101604671053386634478616966837481416781165560284755901484274356800833339818383097748162445812739139552478219518971321569666173616534368996352966721122380382582039625335163915139155487036265271849528071960189116099848847571629863414524172223131940131564566111878743922845417095613558696388426441655792759594813674871736035251179761532734928955722325613182328170549141906859918885182001038609227606228674585338255322485533473483871727758642175745507934422600612753329710883125188368291245589359123763840535186518076523676764299719287330137684493290117228065016769206858265339919071283537783672754596979019984615426727117006683972820347229194798959668686236233692472232831932253126648084529214230693496791474107360389716262376633000350756547962628633978617074598139001648865295940599141071609325287577520887881620224275614484063224212908753664863436527482563560690098780583321343728700305361480748003498771158320709662544235370047602883839364649399367732659827463111626388920065928376093564983007567237063473042937484577720203962670703803031668900152261052247989791408794719342588723136351457134986422414562354174821218272105063838490529450305330528371884958341372189289808970157156922172050020862380355967801875072281978584321879362058254636511364343136377816757880217254906582557185895619349143430553318954890101229760320351636052649458913668700698917127381141807590451503452948010066813058539419809620635455324769041999681136800529635448350329588795629915607479740040115314838255148392085152274931188329030403025819590473940931907017932137970607104960649460635711600727515663093724617737605094446807969273413611668570160514069157942404722024000586460478202594351153670146613048801788231060620202761804514687187245409411190774695098692041761271210665405568296601298093493415144949600069181579173043759108505166413687191331557143061753280458226791321909679869642276777235050727727948283843104859820574711093692442043521234435158642082903458929288306825214671698180397681768494508488005897822572207042384249570028436788431675784737072738624969074493077551226714656682052400034102634842905398322600576482618462377113292583947385065278290646013249959426800939338681510384551253111165625930792079511617223667649117947773939074674240301323382921822226181205576278586750503732106474171324466552430613261348175384578959953404946819044303209898869839028104138508432274171536207278562832098759971246005659716009221166687804845963488053896104870743738352280836594607590026385775530715758698070037168179385271140971591775464483866891448262367878088224877955542415626395140547346525500908885068442875446800725753072121820940564112429080453807867429889055032133280640815409828855695305454930234902718688427690407139000912429370142095831669951054935270466907499731077144743695648178316115200810524089381606015645166237927559239735471375923611027842293882701739048878127781384542191626803800031905537779942700308652252558320298717063581068861738454572097918504973723897561707853494245507488957645164998511699445983507865852005982239354340981299494514362541287412284680536967886375064332057186518707803920069958761214392088241373544345404558428620105540589634322871460045081728965234076134603428960645104932516448698251871670795037931152252071636382633162553850645785222551785674051398389055178380701449423420920677488248663105098350601158755072049156170439158086153914076107502948956493137656258533892616759991434823792778786921122150163751700028894944637069881007872525364598053275081285772559914504097346005719610245397657247788792932550987708744469635818632764282607535398690618200998954079913152510857818671965863529618847507776755968902503214035167478979158192593856772195663232202860602935190642842464440311477417866743435065339634424774229447074642421218372799280906139174860890523785642325242462154898385247045438291636628795725327249232944464694612816553693337106576906566804788400970631794552680269252270532589965871000586982696083247732189818737513301840131962179192217842525921690298602167584045365396785588707181546690085265635662465931899570617160339423320242632573396546764556809866149231730603140899272964045629408427726891985996540469174981526418265576849715257083281690632735837980540663220422696573221353883185511477381033434069387233707765516952205580901355451381988423135023850144479218340849865148702271115185746058642186088868902397456565338143480147122828952642334019537452367862307454257135325909431495993386791582599262287611013912304468257994036166692763493707109345165241698977905794824727260545381380617229726289235658772519190071469314916175749546049540221364507416153887402944018064382248732999573930895790653511228884337245371672359869898573168408011452042465001613227392812943631166885973455146617494547815813998409966112597511983754200105115114955258539404160535912013041274578479397522090264463363192589684885125035456738022454515997677249815861063709066213452963476630886743898070701113865886103031838758234532396085902325461309018215112657545269422849622353207794966523674858384498422837586299951687665521612952163184879591939037614995687384677776330196372811289371608665244846374800420761547431915133705416595032589922019623836092938934077380816302599876078198805600490037830796456488626842285881438988068443735149161883426342104889455109313430602111032829583103089968159057312334530531457776121248094307218871290844644731034527302478391179480261601761025643443537635806949658753681012519517037662781256623097734205168917212986684777493307250088322403324890106624118547524482087910029342008051743234847540150102173735990792033988274698793648948798684379735100858240021053419981739079243979220079674320665753482656324962251313666503424373215581101637174111174447129160925402428765652455280844321325503031883045658438304877428084475629705305237649874520023258497226047307924521143093682175596865964414584339445253100603140338836834767028942657973356065232918292122525168395083237185224589373221554180506091571048933710752794049253723329619186576335891762478851855148664849580139248925977223558180974418956904232486058784059831292420977833569977815412434481008091244190936053637444659241668622686985185727799054010625818357062880429933114898529248553697797199526892909791243629158613685944534568165865174440069156809207158016804746295099712732782623428982020963356157988671013037603614316100117997690129087871285904631411916592437552660603257495393880268293398547576443285802172925215317426888266930870276882054332543395583175026296157130927988952901681130654858556262885494672095863192306424781167858779382297271740461432044703235065104191022380983554796660302537469489215872524005991054751225701153579657987668324047536538780533364505937339185418808690136744321168610807738841757536147089489538947825291841703168954747951251020495898933643648993413292715448896782977148675807346095643789239723914214096464462459194794797954825133760645150613979570961060179770044548031275943567652688979808488747333000045371068670626739984294583066040725755920865106394279102810487692642688198679324359766875022795415328520368597354322147996205334715775050944174256174128632899383293164413619025046300910393607400561022088964383632088612583948403120946097590619968547047876052959354513813121029773078960308800551565057667350720130566948605179703048036848446163963406450083367713186864215578582792977308410229537434072307274249884249887449028817527474111004643868325225899204613862058902801599682527164372432595964751904699592616040535717953704769571917074621685177403675745344699520848994397711992385172944825300204341248458741851530277296348975173857438366973484583574534173617810661504229829946768902626728465294306434661779223666089752056654729191815728543943792543405782039403097611498929198442133906733608412123721270615071930255176157067853160943980775681529213111839039750620850415186613447404928286943107087820525579455116820634287883070940433232140834805610243320217927532915777088546414444322615456305415950874095021491367553499474348844291535408438335037398829837031176445198694384616575009843076856458014147842314114850285849146428562413990274844697689730851432030914262326690529576588117798849248399094155035468324221244743549521649848970570164363416785191487696251890098111440382054404026420050014755542897578257665637138440955726251460049077108462984396423043519193915279549433227533678897750839307783796009881706416613645817076859001504267270080125642595062814282036131783283527699860500830294387493030459866373617596377092007634762987573372913453549395101437870923106405439201233349581767617368980098292676260816356123192105564529585694645181880759746478550735403684781469515109480043757820723966301360284188296593913226286064538980522816984049880331358442834709594667392753039891987614190256237005768326139957503660806170031322110620623672694010840344559486980365275356863401304065305548764854531631643947068279269525962160655468217730349325735462711519217298511405133452036402974419922458268967281539722530830415010815058391642199379183741564580377025759177664348079050022318304578325052186668537101290124463912510874703853702963134056089286551726858834018868415168475241222060481929358105385044231187923643915324146042796505928361506429438472333440079800320081749295505448989767002526638156849165167463620814827906256523216345123488913535422888514665487933558036550699648137093160819406595552740175874853620014458498493874999602970658889006316296385184162725661086578433280698564909187038278213446066391960065495625476792212572112979710698525437809406913323171101399292768930268349671441990908519347259436448649808090436115933988336069666309599682025501098177176461016111214735565383540507856514098125202840036255275604760040457349849358972743354725267065856733489245809195909259081408996321399779722598597006706630812837872801075210082007783707118216465446785495837848928333682060978436727044218982745851251920014117680528850022247121209789210417441477907336046001128324558886555879524383124323177246100319205947571046934211933401719196355493218944517396627014588844449373186010083463957769020558121278319078691029152364563593222015520093321430440879757488135942675881162599696123834455167405340576692742685451094324329931728520420195356187773361347884166947091850291974155869344918390550456365074325153002513778668145644338504689990931047173471445989944743068934323520554625684282797827141219084344475071522115298362758155313251566958004706900180562790551190220498003196763999210276713744475400506905129784611439529538559684569445530077848435663645168037167294745649957771050954459943199863147304793286229457042558085541838187711812923660251883272270489375697628581030237903903214465612985813126329231370077378422980836071930166075221457418813754272917921857867660346724607055261535480544983030427655629663776387658533833306578537707550287500217049913920431684514110935868681715485426379736866767524674616821691906635100454266396765547465941524768263310859220618898068772495288966712449255625772340646973390876132284268084080930620304750440349337447943497258358407394475949524504010445705542445101002482887720917374899515605359059730100162820486449225598900718011974673408136642299274956994418331832376990211804887000404168166194489970529190869726433444730320872218502490782671456978970646756884437986858398499188794757640655163666732734290108923697204424463515156618441157525142593801380878715095707984777373175895753113498904622967470686707432148004457007829725251511055889526798342266820303091598494182512978139060943886152403251240051302353426739218474831226415775305797529686823971316190087952777957903724563915247455279205536453408019564556258495700997688893914036658842967454313152686458910050864116025849554816073951155352790476255172305699629550380000436061714521370609388933465895342132778358915409945235336695409028811778771189395573050026975807643828130230432002007930167087967508804771303140081904452092860128277005856934647765478745970490025094543706663726186289516678744657710729970082118663042316884924538754886370343268501763373091648938047845749914798952710628368104734372840965802218599444459266353103445208393881451931362514142237615346855238113249583410934781388723681986801034112493209206533020199851798904588078060952342265081425331371610514872524098347361459589337771448741606592645916832677428880107151933142312683920984095202143461577639092240986930724374730593281641990218731072474413552042555881832793156199108726839110081223282428215724540165770221217828973010391321405017428793432612439275378912343113431937566207642055509225782735364617146459859004584035292645907283790699877528940861460373826364664590026509317204172020463384242760352593594422963535515930005530069758585432208309020050776763086482654650689059899932105775327053512087393483866824141748543475543931221833520541536636073002630445141624457372361185430306583584248593991363081201032036176257319214215940991521869389119817045131708919530601852097333164593667729076571084025580478922373552581587351996666922960812605353914189903123953923429330552869384096006171671222616867951613659849246098892951361126996412621016912281192402018549194569723754307331651551131497357434682128571173151176117883582401570491714332661744368968504741600487970519785255259540089397222919826532162697735486668893562332704335916081719816600467074645962914323534533201249614770652609918373711652108147564445912366428624198687892042453814271258444218574657886014105004385442852876764323262178230886597224836101080507850936390139264488802639036894067556770550151572954098306925268358675914618341965057989347238904887655883944364142251756097279430562261192628514530181662717221831139198377674998637834059007564147247120590910801919344972974945748402018025930236057038361334907622581184576423183180827446029945179136264127090282325842326413611667411425035919302650574276899727727995724661910298298021144311001740413811150208922733951150959440404209234453343079829896184398379392304135936447097788565347263952730010298084271701329086029130616584610407857330283986909050807812370289924180061059713941148369445244661943976629493326162632815011348057554143627252538648345996525654781588763616207576105361395474605322419015893635943837693407055049668843959212633516908074099710761941536719006672296300621451870027819916493374739315005597611321146675887966235374983225043386197945623584353345933487239834834410605882360402381644853833359629454497489683723677809442314392534280450485344087781681373261090663964937269865098238243944697772183363100714429254227995886846944629346212649584198630080232544454676730290646355673732629420786669050592437073270104980955727033927552962174248726848057197857588584194857561174075498159564013113586882016380365997506645528207717166741381309747286484971561084674703733505257875171092053324549071409217026409642644881516020552415307159118211181875090176418359761360866534926023739401751374965545195274679717475296852595584471600177782107117410240377520838077843941969983308156024646099304957337426594874780740533476243059156748465952580257377196189546131152489843953158613702354168834879598138351443603468497700545375011499256516379394871269521675598435448368714448720476594081965432819873295158579245638795728491446840725711512996073220862231805176423447731413403129296388526463497182814204031654974843864301370105707008445396650763844915539589244788605824220960006996567161390513659083146331186603182489376025401043138319298961024584638474910959675185407574391311543778189731726554455883155661633035894711020107035513772574200251008477401467951852452914839236467601638770428217599093535092119928122662431979018777599382370065902802848720310773041320925324021005743085177040671159160777499112531810268001793245242683156246790751314617049844032241301722559145283853881991382279501800531713197731620292208035810681670728124527069148166209024671272440629966375848972826999174738064840357603744070956678755292059137555142132003062657111575757009269820157138140576274127059038962248841118369805817586986614953196089884840021970659780219875865054809200803422172104355368320668262728817893282387847414029910019537530525437948381398685801495804327572534808950666499727458271114848747521008423691499189624295853030444603117425401095956132608172715336117802374544478199488060235143606256188650762019592148421347466127450619684830446395667272560119683364995523807137149563142216447645070980744161497979397533581841799200210876481966756210094687354360503906750227420252496990064641596135022773836730857572611114190157432284827257407147770252912732580542588215869372664869932111043743879977490815561881793997350263074918693901310232087599365354170164891320156312268999160376277722470683075235808445882117218345220373186604772251792135847831078744660822718067600224465784411002627457120274069419952875758946188046812484128360869639734016210490353625988528016553910499342230910129917466508553339821299275996603328009927350020676533692780374264453239601604136102557330359591155072387268721618790285296771008717557006854784594003386154428278137799929418183489877693007035448533847856445308811203593258643273887724275787030350082588292036517050076761502384796396288313975623136647517949756508617561536043837924750358164838091988817342984712275633407839420049409091326696342098549052429709935274897675013154061811827114359935733580486603922910778174302132099850739755543460983391533637279297513406432850333422854979676271257887092575342488679683122437184612955845661310186164808536080675021809508138495692281311730867625126568778969235055977229720104781402481025682474534206178038750726925619021078826998186525018643521920001493756775324276476480132165956216345767713518996702879812504429915581197896036880250734481415122979918463426373519619309589965157912924179272259551723010749930068608559175004221916401691334191322602004240787188519436845210956241205438557108613503167332341052960661035046584984007918618102899768970551190686991166445400646712076340894347431568781441844067160294550856447217864551424836241039383393130101412496616253095250950668412235657067278745367853468424512742377970134105593638440247772812049436637648603200649709782205866437759525181009164489123502042598833810825632327057561500617460632776360970699615859644662868316282859249874446672709113704996940660237551863802737160817400579512668470402079851249705445539658119741704959778097413139584655710243767928029518178312145517175880632305551988747521805701664680746550133713795311348610964092854520883612124077257375590031751532405291120783756194636380072094275396159167582219218825628556108936631426441472709902901914247873261873884631307547685005269585666050323684058298459927604119820537340070312555419328634519419073964625254319738297032297034825262263701278465880550205400295854833663909701686319342495968297982364789274369787330669605788942516132973163198377096340099829433258258676635140909402302135034161769605195900767846688520051251735465754256588809321525320670342664081315335302973120851418191742455627625287125792541877866022562097917909230137871794595594448532103865084516873419870759911264878822000378484551238194786606404800906744948049692212702295613950548965516109236105085886703389775832459235139455183220228050681539483129968929541474014962471047938612493324224992350106292750729439429671734413697580235968472493599564564028702020123261710350189696110536102639803841155780889085094729027024889111454209224385518204881907192847948057545619104486811144961370338665152063969284386015649254974898380236709524596884778963051607850197083816693961813840814826684636530252155612787887102893910586209881989503900932149885983112748966118920112775428210973381387038788420138507503206628109946324211506739030002816452097323918348174409965041915367350132132007543855925480146058796856644698685322533801255509061625172768671145104534522704248693373874542685348496774588949655163306078111913927422471461568311341653276161364097702404732115651569209967431265781259816632710223813279461351324396080342504867558910715453298862061490457379430538270426746771961650063044566082967558968725370113634322488243207031800229885990221847811647624901844811703827769917747174597153721559136699378488921864203609145094135604299464588978241357778832179257181121460498329634177227480892738037478495613837362418627068460184065067039701267269311698374480830790630128242184868653276398962013219125897264550552438724874060122434389893376151019316495908745819808846349561435164077225295955894540542767804745892521011350944276854513927520596959001441530434131601841943957484223728517161316355883823528146462696773898194008580781372207799637677634779746555281834063963321565353603984214532946707907283741009800751999797340959026080495443846939866760737334902570876516945641162867774482394516670685462469060567437008323053024589001890367300357694710744252619792996496788173356987007096315824319836213098180730104880424025607165238400698884562849498556105381565783341635790906146698244845264353834647164232002830940143828910607176639909573716958984389046031607639130527926279584051630927873510937026290549728636006835267907453545233024463987458100607290685956623998397341818771566696937991718261927655354861620630987442857862620354642697599603536705461360770367770479139076739189667107929338874142779749600448772158481897160487198221417765430366442388446789789726701930258995478040009078154582363517664736382708888138042075850623328040538698277218437896881914265962068567845084931468958454337618014051318109266331935101344806716071077054000858241682572448469862325041766246173227768647446653077887571477793120090121448136144869114994451790364563198425161815136688088202566269729743783247964252781082921619260512488231561369397635998061496605041751747816453930326446164879172639329745830404793627205745484359622941328590395449379958162777772467961391367769160930288088057052190674615391959957980700903544314902540132997510993201740611742971286071637815981186057609848689069573484745241617412578319751438528166378262046773434426854977901721199745090842614929639529410026874802922265850510494794558336068680484268082880776327653532773713207741071834721833876411418424659783594725190082287503254812431034038359929084272408364820329669868449281575466243183894113269923294629503419403459287827026641808381024090246654715276080056447145118272002607204436291701446534694358558981507287980327089777681207008112520533628785398954245449330322766686032201472777673664060122462644938549173639683531153607862445008955171329405769140674778883747911530573531035721955131799723710753695000537489553363227626082253556196966047464894381781606965824283130934193344024510137306695361044917782645229193863862379612943445931810665124771316931702282075804131817802563238690472964597078884215828951457793502208523216191745376720619768258702795307620854037963803022855692643941914506639713628711691272951185634148480961133649315245533350432874693603674189790322209409572834623823055721955137349295992177216193488661225117185299904783821881949396219291212676453073903338319885073278214429147093488571063753919859517970760360542983573698294304794463608731160120926890749930122925436912261471571553947555027193243413670736912887126921257516174804654808176013179135917413440680126684728711107649167654058185660158185838757977763968997446297779087928885780614263764200811458289863126627854006030282506762831906393346927863421898543265144591961853470136646645553174408193760691133621715992789532904425513405585640532106138314057048819159447431557424936537728852249439994111785914077345146300585430838301600944203081881848759048371516722341501702563212254121471793427250369688910942721513530186788794734498440446038682483740829067699596428089380003846644425456054921071045142272203460148477530956390358975702570464820568496721410742592389806685274240549029275938735578626413883090444841705157442488526330753356702556299905975367797172923671258792469140448733542004373373908028082020640053497741501395127290303271699589498974150759953036264913687569210934551991923853217383711039755192202976462267076028720779507033694780488210698671120771475412641772912136253953205185984200187741392371375745026550909868705888294059772347648329277708493462543976998719765567801808216732114386533363002700874014690550009953464530602546643642034338762041601577427017276929153745534583999854293469492991351429956455296171757596090786336376105389990551687495695113028193045063967772741845503185876201386710079051902448074145579836451505806175195680459218000208330053144006828288074974189312882464173337060844661636281268676670798228020908134348588984957171728455519967795984433187153900847315871160200054588984314839458556218523511735921844987600722236250444903100173278328566709524719169645206641563297603104870156486795945519958944864383657662132045964459749552404147148815783918012032976668052834158242356277269317572572801187608635817609700157003252318553753972678783011484461525798117226377771069360061175384248985973612646857848829541817868661373548939608905971609936298284282876920289999901014097268823288921965593486519707145312222837306586176558090581874875854027200240120389572791269467369303931115536567765839763267876123868066931850067310994081732445584494192190083325809412877909614877112784483239028752283914564553281000669188314717766402166827988863044938100901795287377087578969936455957129656442981896158658570314429660512242416138905777547227897916743775496429008307034790918137556975644029178310129527623847653378515799520075648627162069998688807721274396900679229421027062023002141517611421577936389275821860380419264192058234733709741213872995585502321763597994165120227907976477217330098512387784374130815521090622020815198897692786383677914341737283006582089533807311742745723567622966745666079677026225595906442306694983602600748996986826199721565716161101557727852732775635704897264472748416134679488294121388665407009012328159995792984233297864380190296808157247212570916853459878817440215065673315446039792893526132923622487125891266181388426640177683967734949174890995152932897421414454676200834174830501649296997271205003428158138823390728299454492653284521682713601205096243899823496450651060357507307785812170139265002647618192163819305623814931776870942172637466046898690586604659546513668341929617553094900099653213927707800559428811784183882056155626944084410531877802596367771050124930450648397921822075079392624927096924819939354827918608885334375457280033613858493819902414337901979094980349155189982481074831613716353874502850359267729298544515797674146341638219142244299535993073319246992750479306064386210900035439402558732712235240078532746210291192706466075510986433704267844831385397660635615523391208302164802092277093420830142217803207790913579871914099616907765135531116167754621719662309948101113689490378283747496018464990796688739132095792218850658546019545057670272736548218304101965230349153724057311082524060177646884181704181646484660687881548328317482788099050834685314858628560675817527416332067132126282841170800711424946361411663026570761219450038396177815050532526211204655968435646193776495150925285071890767440203509318237864973231381911741876464386859088488259594359908068126263770586196628845465900847234427684736613823960499055223462335303887605477032683726023969684750191666891421839911122686759449117248289184062219456588313303792266535083569025219103533325887724979750996042222311704818559344447240764021796390398445920918554267255726480813438142456802113305936116871896826398671591900364617572987268595356166971576501516922060797362847905033637688763877674630215101566280553824073691243544538595147361499025811153657897063209012066551376360481828988245427688537021072409323161769733376294857603820371258910744943910511811851950824499981894357272159149652164671655220798579921943636875597440721146849799052667884287062503172595906399032403180673102047981498890333856625670837507823105132454711999541458837184543437550445556436403695213094856180713071682335960029315833192664656889595098304313810908082452147552292194515280280789440095001562257960772649563558572136581523777535968930758511540844446292838077113523169539842069894325933741902096744054059278462429927999258376025132421123758128506154363951137999740635058790923970296830780934015396256461436756132619941736969882365463928793821821996901684575857607316859562251850489620411258636531115933948573922452393315235627023331884558403649530070588692319422696300473421816953472944166753248440746244241378701799210876922709055638240045482345134396520719366726503518931916786943026875077773294243644319328755906730955812186871564330442240513121130237363164478328140556695514427337192541501027275124784656063605748764670842524693945703677348097273465713299172615505507198241630625762945663117883612216292866610975995676529996935402113737062407785728675378740404550607102937437484928995752683169314263688894752713704126824305187909804659879805292321737558980520261383488991403697785702125881005888486064126921658466076601619299629613932252893302751934145849205058162833606820671982720490766851039376650172737130764377716061508598138403109496773153742044127057386022778881313855979089620260175209968707139831213858122562241484146770773755373690323351842584951262640385164516215341721749308129825700003176318177461656431741080137133530221832921738175807074195586746613155785880304863030494202154688453889186726100183235527000545960225873060203719300934176909743565266308318259295081507149021186772157735019543648955334404262164861244056213944836473710450225682193805407202568323525241950178067734899833873179844973994498878514304100578754578219421549679370986183341364418503464232837954890421014803491096876975195929489758910881613932339313900925540378054455741875461689814639401752200954986927626472193343270916743043177971560733562379109783152587161279278015825477367731844382155687959595926973219935642983859134894917601387849207095145644300502436613055954405168531735043022811192584470852410418274623159036322469628687770348340061279293995310156266079517332353590573843717703109390537206568464673543933277258718534542262328201224907728478848822628361477747560402942524806899779587911682038160750462452246856670968808717064166751537014372981694841635198603737192364645816810348396417146758639018888868376774320485569294569944717430428403753159463328932422612552901694057758114414148509294399082155983983814053747262755868175707032741609166772141843975592475343902321537276208437825809880287081760316804353398770280980221983111808396158530023127086129709620857479750268077340015710475327492241053552286760784318083815571706969792496384658650529294010258248428152897269110143794701132490152510283714743166654271764566015605706554034381718644083037376761232703599684284274693571726456632881231355028859378296843760727830080532022914714658533814473406620572457862999436993696463329050203887300844417791447994077380771087720677574951508923154400635012638378886214612231148551020878336606228060777761792366266887574994022064434853868693068170745781704939926465528015191024048206972716953491383380541675168252201233008626599645705152715702307212789556607062122655923572653028510461895975530028369577501917760178697078044119703279529814641218027973834049762610257646690400685107346301567673280728235755315923864788234765856677485703345612410258802992585790372293672708044341298127818350344149134903081500690292215061173451803704935633072981821126199023769842396436617934844307976638527987708520241589350069313978836665872897549894658364034705175257894287081998341734876585737647600383611233590177419371461791330468585505577163952156541251411065955135210745683059057052793221047908541449956708247678462871480910912156034058794892234754122823629585381266481296113936406193693003501636262664037762030398529974151713110053459259607200227917647738624316300491026185006184699095541345056983795136342229818951429410050745604868440169995800478264918687702834970396491017607012033456333023708903086421530265839318541956617893856009221347643977206176726251611685506739182239461107951632695955666587616724617116358587070691482590442780208427931174504672193556130344646487927505262670264019458772788140824232377180072419365339129591853817445383996650365483910868989623948361417426995882619214675050946163224431182485190182870059307447736195354033812478336537340121193647501636393896008261038548213989160040300505205423773989192195749085850674439125582800312618600203580457401155006467958673686825984091114649175366016916384743850114385712089764650335247746047172014892495687414205212160545712943763285281039064303867508797366272339784356749319063770963049172843083319586777736744838448459332491412310870637897002968117114247058830332519579560105457842191112847637585176550298974332931442152005446855719550021612419889069124542899463884001057416013706061061007854942505330713571556764894883353063982152630504086265211438981513522746054374383862826572919633402948454658251851133791637112999752816935079163008010269466260212049521290848988026155899618042298657563151884925025872170911299358362537003236104383313784821867553071477317617104326397783897320376110920695937721134845675975984776977730831166999829060471790180455562384456198860137590042407823764520859431935317871923840992884740962227609920995100752097221441716557705695329914060032880588598591059390434655837601384402439723099984741829149263785014085321539878598617129383521231742330239434997574690470282861261267981359449936962109105854666062713411849638058121800773981436663101945644244682100673491445842681179140185614763029039894798125783693003856414767589968010906372472168133175171602209168177608938546582296123014330034548879254013219913842432322050236937620985036715532306117956450357301784793028414297517026727127427799561703374324031963959743995823278693012334553685578561626350576828644397804179931092157148350576623038169101593709502758305367001794814054328740378503282929766917569683677507677725705673507212410402657135394658036910711812490067405374038911312535494163042579603526432912536873467741708601085355538489208979676819293093060137121230261021693432605910079497803320400425506760329337271942593490222979197994193086020540152442913750314206458492629793791858458564103037146947298184958527843254913587555692650973625016096070835989573107233589084851481762663103166570035375493804950165849650709800017591704186222721466367824862912795584842829208836759931230847040301062124332914912172281374106491202869527975877345165785560492643122196751230933605350451876050187063326835010458383892521584994309180201964731626560519830761371326695559272041862373222054742896536353982000988664206738874679078129388533811093453816749323972748016465881871603853664626833456397187176327575326030824394522244531284759396799998896944970398912822091236253275902003732782125963060406153876395520175586515126051804993608083233709818128218361915194829955999022101058016776687783801413188369543463980538367685584539954125319175097122518438556805458118742634921933709916106444305089109111819802402213390765049921933672054733488441103706288628862494010885505762467548044001517283889883280642486981401511450134909071203056915882413184721008202661743610156453351655865573179136318148775776537062280078826654168251952593786594060594110665740294719726181315292264818316253781176712417434538564780245971254875843430600096218192928674020119536567663665736610943967907967434014272994084784420920333422289131852699597861927567212455388307383260599655460898692454260848785484243366333781292317334608700830337671313913942148025560668678316446175163188024581107599909700198100849145835271874486025315375652106455058060927087292063753771048075000864265776342344552520931475420956319764986368096223301328497523574504055783848696405349799943598642725766858647436106659010965207454081608996928098382889504650896318644245107236783417629762879198208526245234949843695459220952038383462175413752033646860305410596083523570183347757367137401952210227784758405615523377247302188738064211473480099622763500260035804176458274205269544180702439643548294067576371032543764430623983794710172468378949813129551670095356824821122713463103828036398878113802012465692172263975401847911099775809023280891842568103664974461065829674948397242611460667977266530110003556868704670234809588275359367971920632052815617219293787608560240317943618424428798552713292387851596940474902371835113657949872382423168779730218580668367107390384556719950427822690783697814056353423761620392777676664096706389126977861829984167769208405368550612052987321901495074468780696953546767478570069225201466394903848993821493981284425863557410121395930072828460416869710929946393843307796077072353030721711787810918335759739634464393859820090689223246089186236858070035419066500393330096054666870359004610429417192513378702180690429756707137868572662649678625207553030426494885227559476058426413325618909473509055429845478374957526617551521412912104819597368423241306231857922653637992042986468249137317396178650381711500167623026197079104982055538873034664150469050436885180658109945424919783072707167816963386536205874822433873484430262312919861832377951406663081445257252344576074583680058351535074941460084912583554095352873360083733538530949466684019487727418883992105392727483072896546364309164563894593672271484151324115986359888202402034097061989319091760907829985945734767449444624127572421424072229469848208217178513430437711638979990598420730864422170942272127253175075433031424883313365224333291952671101749567931246687213053112869716601395175298093157604524091053698069422476792158772916171201859834332314500124240020220885727602964522495072732092798746439152972479271098072252084331889515161544842157250785757669880480843060351755165659645946590995319271176690155819625446365497108019112355108193541631317266929378795935336703068583980577372624957283075956160816726913339072812029494609355520033723089317853608406265269315808355199873976561443209278606824095460577000363834778659025543892684489623794957407683854104475730109672207810085773934541462856308837943760834446148097762275577305335028262495989755210780044508293172124176907215298391012055312319250101500730005642162266073780976319273059055498138396117707069538338921120865722057296568823715085335061543301463380417919664630613214873119368047453832222918726550662394775148612855968057772996904275150018182462202292240341201219792335284855402153816266423578578013108926374899564235840201064487858572616336544153197480611316937638551344483379634953612069423362171772088001617372426679118388140069090775567129420431156715537433723951392366534836537619495917739570352733704128196581511130148815465436864169694976599281148637036569742429213874632495498941396791588576753609732630465592831829165870360308600870427356184545498684461985435174046535378220406570830344763528800653702974062800430871893999708305312189906387191737018760439647587750053356040404914074274640270549803429528825369422751345479471717715438630471104955561355794852497862807302901783714570352994112239159031023298822939129846642604611640344846879408436405248316431107972972952268080324939610430801476391669769979028593693704475418944667180388673905769826508679165246358617640057371285208526019067648233497162569432821538472253464593104340019261074726071031161346958767479411939654397938547675704506124333857625269790862863922371698616694746596707849432198347613108592812665970231405200870256153808200898905728673777143011506877503843959888214137194858709041036785972255207618924645845967199145322997535454615618000252108587699253752030692487130899279007834373924650193006454800674559369332606364816594659373525343368445113158732178975978175126727964485243374793645902312113622033375558531625205634409809932436126098848286616559921904467859115703817117283373064968064267415817418164321047347022612323276756993139451626776518856459855566472339913359474149399796887254597873887591088835955410375059033384605033000933782192783565889723474550566805957097395787849881352759478844621534881944503005430385909666743021487782980602616981364749082414444475302398234943497753322730148049467737007584516947918312527572236707888542466472010901831408458561035782062511003762620983332207685194771602374613858661706224243065023470852908508449843510251280359811309279968348509288298194994991212105631757149388261341271103449772416285293891541240879350753558931907111726941957185688639767464352136699781226898103530188732878135612641947048326232066891244671682820833545335817690197435790929667625314497414967647583857469907313397269066757656581446176994992438935964471269149432241246175172673895863936577673173606983017737206798093819505825313732305097574418805615495190088027918411139779966218306804578031224678780671577104238690522981256131291474113667875793811539078912270567430648342728926273961273325435414453172645681940260874955074302383482840497840303291700250810756587403868636844848821840625398124775389061058010758616694023879933528275166207966916103858246186893232794899432799995171096460513848024540525305608968665287273760040293050755349224759944031296896901456115938246704256663112454864482708045908639401831403358410619432635182466870369166918011608560173955740949589737565979429394107941323043565512489989577966720065566632621133023277471810710997465398837418354446068387818845122566134366801000848206485120677680083256377523335686087154010895792885594477003524807340865904247806542671120526924326691612062044693907374170911785968887623891340949005661979205295039552560619744489626459934542516826585802029004436789143763096526349005191776708837090773998286653679792848689525642942228796226246239259216570324836795748342229952298077425221378830724126391850309911547694707430444268096144895873315746533417294743350124455257639936649349057136819592406145526666024425604808584906966008863030583153948179074185721619042621113688173689087182866682224594132442360560408923462213845767024295917949664885408449537860245878796741249695267843793791704115090399288862669090798207420780006184619930659172902663113980562619955892165826414563315957927670169251689984547666482070422262417558624692757413616014447898380556404981019728224604852230722690107848000390236489759655288707383051312345720725356130866047959688599428655393129658953924840419164227919314599679219071490532690252150962563461424959571844379078757460450419402525017745474993514616258385897487780518724116610661240206998709502738759048411022124446269373019409129616817880929027898372526931992141916603240413810283117020188983536021402720226166085971886749164346525986403645042785564221355595654817402940220522911970953098682263541110646564508973749833566813397245390243508828881551199071318976083281223473326195888257132573903301698870530307629873587596475666225309921762099599148166748671394749936600714270901773037636953130489855997515291400485661255221919591020270883427227964376822791287272444142713281636075219459817711616656486074264672903915598715531512122460956247934901270015660014384894619849675525334106117612964000136656612785137985017003081915987766689659167345592701510885854317008673653220535009736162749315411817447594583995376211106931766597456278532666705288868493110102799207102031696124022055822553732681523593276252415991354080495421940161712337538647832999881925358965307873747953129634904803986254598777925556015299547227613805897403489853762623334521668830982441050839392986006326254378043489696230190781902155376899273407605826767885860910413744972385179048627929759635651501879825134448861135599704995931971296818014198052551087232795575554526955053101657731955183851005017167826367368804656506079061712000311620234057010425275968264125511507388114673855365656920146653201182473023554360836027296177073070567278018083433764857307481737369552963265844720289487563393860920264217177202874048285500866968364656023533043543182755760826590604779617791520947972348712130903489384435926681833646567183778815368172444916081144102391394061134190262563335346101856911726422457876286924808664784631806486120304164277738736006464184824960144103041683131549554500373238045341366367727169929701575856705680303627786164969684557064115011530824206348953774252695371566095325619035295211017557351887407723633470709281530812451566479681911747137421949042386117322716772764569746273500011857899797492587972493164973553627660665087942089695348920598026513956686495429101465998352941427646331774834235422195792541533362154130653389222784340509758020602083721400326766207580103922543059239511421698207894242722843511020848635675094378593765021986606736281139631649101764184312667034088197689854146149876530876950793068178433972179741987848101557187062849750715261579103964402181413887617768824244680759596792034524527838213396738122846860430981472025070784615140948965931833661285534782590848616978863078084000266043696640788424476828896835069478447548415140765504577465858235202221438420875888363600370949916194279832556349554421759796610223505615106122855389046931258404740104482283277817047504532919427270924381693529085633729592106649015733035955734831849101406425112178142987490799798317791177262197560823640487370915990699545069833022304786508203058221832666655044750288246414587746016200616241013627149650930057826426943561227884071264999510631447709694451667929219011958628780325454504617061551460591991556925153889726010461293001185557956215902917483308239263305497887142765224932454480618360211688859247891420793185165784618961445591548132589884943815468704258095925469263822214399253797948699642688594270365642686577246795480270644438805516053172351532595745849933923682263395727116134044042907986200964316398965266587566020865699806117531965882808049116182877361488396239943742785328028277368991277349498163262970744698230826036860147357801679772578891546029151253711892827034896278254927528615377889851360366618087812158130785700439642458025691857536260085720832290582586538050425375361393288877245052160560272497565058690977823963720727380399048598601452258578756425590085504986854587941765188161172696031440665034473768871916789214626094571733383263374052113977084328337906136024371925317103765456571562365167210825934408982890390991865624789888342633732302193330888290431652254885560856204161492389144387153738755498736128356885418608506515099271203855018243097432635485548445078253912167569862379198497447687316347480477028754365252328779713414813653748312434684462791099466094175321759772193567808783513618572299900242495756504356758479705920447534450292064451188687738524518093165391988880514660376291116256505053810946013071548786587476749486957253100787766974320001087248158622637235826640995893250295673194854076303616863250272072666961078401440842638891336875841291994016814472064826811218604493478631422768854919354844547268326981979869782281473417675796802125906298526066686302412848018776308130837423598178398410920785962893091426493561958001228747025594436676963546246894057447158511939763741165365102617587742790574375348181763934490913286315920047772132987033051297094347133178388248626348107696607464055872948607967404933912520794099027169429906594860203704672488808988609546691480026538942700761204161086627949148770972325966136453319323783867629905690906967843904975871101695859612260939073848174555754660057332855072191705403583681744167456039123553839544602159924548658383296671559794149245242448536660813510973236271218978266487159688731928459887980918690410973416853844809371639463719840764351997546365939348790226200859086456516627677591254083755076281208565912326679993610456253244213895671527715150570231201410503168789230004520683557132973906474970871309597044044892706775164704786755685579435416367834286200269008998800538979197258551674633428362710782762456039318424903145248169261795391721564808096327456410713937404813895215291382654635777351051124821208063309730324511404283297745196667989735134429851200669118219927105539074789676353056550949103364659104239915811244446556339768330672098740816209833171629395551637722611713306788438991610304462926627695279601289943687382435496105503595500588467228113409827069460727105010616175377440063131619956981310194988312973411772470669875170002747055013386192394962336493911961974663368690365081586402879987367132921379129932709959809602358092661852840609469384020669853943100701939675833196936440133658327887982767848086970377771769854628658560531398486641976665803786585620078247663515286511513087693298533334108795708867917526773316015229225908660231454889196932806418404762187393145298898055582109584309732089099668863422421289279431767487054595667507141001079798592808317804553103779166586946565963350962852010235448788605952557848037092857904400783173855381343012705279662913893985581122636797778400735923509632129390606555988631792110687032456774022591523187902926242608165780029353988029434913782544020743740178927692895182640613617629426094722630117413324489248777747237639138400879166130102218490559232197681228068264205012105032163394348108888590849221079471691877144153552168730688004069986243192899018960430564767214253782221925775661982585897984924934485975893918964952961455913105164473258185018292228085919136893577653763128038736178217637713208409650940155898100456059335233346130695054814198069996284041540338378238732369033773970936744614244615482949984734964424798638477090655076927801743229103663378572470587589894652938555887577022638053360996845072497582289535060772753681429650975933369806192906921590759343001767293829907705850505139337927013158884058527225550861735027890525824232597113008679517161762196980865938328993831651951101916932255635275321402473041866890703684928873266470079701106934346184742134851971612310013464626820806196224041286580677445219756798653364236663795288084107981996154854290407568822768479360850669277842449313430060098159088700854943900876598714885383604753129950544776040569945902418943914973025455420326994937275749517056035159637100958660029050086809363071692753337256694101782199567524897753842691300114228059400484458092393966229517282257281301782529904206040113065157236914440278133392627079271789101233380617625483689652803964568662099173797880608078883358648895097821880347117774306724720479651954165821359586691038077867614316689771475265712262023953408329979537030796274586147552944918314691677029920082939336252710612388372591661239697034456019221267076682125967960159162028763879243955929235164782350023613769344678188215504138957631786440944375165329581045210518846613414687848880137014923718550275661509784399438157577866140197560130085556899190447509693581577915468571272541908374171359993936184272080858286926512343512806628252855391187032873854139873999502280314572020745655282119957885140507187525109821372212807154257445836174669246185074999501788434348212006156889048253339208560619093611474406509345740515442741995701619123748721398088857095705154010379694793158758668415498530495911127842325076356472781124692512624332157783584656157872624092153420119921423381111176781006118603441248595406688508982020719421645534660554492276205681541872810985610999627962846131158391666056783017099646769314131983485637400271157723515198041078766552876228033331581622221986572019890217483544992155381446602531872904941633711679229575829657299507732044172305751145334480227591240288574561089100730693378204847696385972803554720371966260569620328504272416571542836597939410146749999165967591723142682656022738711881466594526669964976817235244249269508710858600271975867732106733077096370935024919765503449119162579070876332157527319079242233657439407867477387371788027033707027695318047471817341782153556069862598999865791732300355989324266002003140904106346759230671730264826850994736325229998069559518071441763332001216351670374979175804141841690585898198182765006083808232316240462909072640355914395888494980652373577866807737679152593878644530943806284740118383801763976473110067933728252083468229267913139089114027780705770265728391076989553260223719227160753827850923366486984161221167112063532254787946050158234550292479958042581120675038799624207715986795159808935084853673420732580098964828552017872835018252102214087028765709582190671186402503345137684878737898460658483989482430690884933909497808168740325267522137351329044876707383219402961330677050087582847311777969437488223266822346955197114165343690996524953843728390049428198229738878747960142085439229809869336671853827382661799834665242899290681948720634988225243332672060592871853215869229468902997143114738989763916454257141393928086497245225012063920848330188145960866311954405571675610908059816753961259376053945760997859733298626880344705439538210727933436132359072050342811464081665423590054903375186914221227070931451368768067764572166557056665900833706043035277748646574985779799898117819886342412375879166476162898676437478001934867428842800213029140631110808893865816797355425165677874230150206063262032022039315460511666762981449193216262927299700149781397052681996572574636787714250193877386485345723478748620639318030936212688838908049826667673207657818899333951017600353118344119601633688385661314292271204735034854624077538468786432795825071851541041019044619332669914667604220070061254956085209210647616997358642042729956386936924243102990620623230062494425146329849252106408749246993148373410626431938161878934907896329877913757373262318517945943444112178879547458625167949051602028046557859280562677592128923003903242584873974414909707468472529419316311670785946235861535342453880398666015077430865856204010001543300974115196749054230217746222832874006922838305224181644587330913780844790073467860578504217401367847826385042496419499547679097106126694246075287204956424445366762292239173039565777827942294970202512425648814069643249580894069100886266388221095186202368964935677416327465534820426059800142874819553940055489768367196396772981945569101387472559690992064860783309440989103332965761301947356468231294045134074836575181899985728413205154078134849104074174335599804425632462528707996162483707962791584478989534886960521499212387696248636640623569667228961101338485550684231572822468946716613157053076388690894651969804675823687004021577707574924993391753188955396806086995224579673629788342785474148870994279532875304961510488798837745988346563250459445610390997238377881442338506327731789716119059733077805135792032515142238745971884897973755333251340276056637435822842717136615966100956100183542601381714693308027760790499139577454702908948536251663990254559109942962913638378286702516202241087971613181315585989636826004597363145760515804048507650094522959326257030871366024714727318296922594548556493203351379212183591014349403374872334964959598442475645940037347005128412002464581707927112176255201691633033265331725800218826358277812364364040912152393187185475941605226238802235027452910485212407512451594416068231086921521846740874332086967370001242463877058547237640551658095226491111287177559053491770715604700882310988964081758456903277817706657013998191176614156992624762466287616231725744178532687611888795887923601824878612567153262285490919394374491863699640381129724135200973452518691657179920768894160791007321425731184287283393497562136008064747662498628677732666510948796544375650821681630046975229211164244381193017031403098769902004572859108006118159934143189413752185188228724451607017562132449799346505064133573588611216513622318373552887394099222557472306486428593939377009858092773151955067299246808656111967594440677598102369585935429768873494593533038367169421199977833409387645019811004767130955320604598673863189418969948496660541589794569685227301422193335459567325444840976007476353057025686636685991323319553500317672109766043980081136986879607896728586086887836006037891551639670917841047807346774060370224878457993330930022755455427865889750849294993735446179589195165303143240635455195432225327676753842248832712587710665994562078259565400343446797828856297426190233378276221826237974048434524663337063590828546413916458381242404055514518374187787451276414149201237565337575665815058752555317025778782251801845494153689524576290887200655376672673458313471415715208638341793921993589157020860487949973209688835138789262889820087334848889099138131389273067904604743010397571943670042280654741335606888495663546009498813508435799326264277367252540794529910051954722029061612011714505363467467484727076226349035727984306260314093302802839215924290439191758531967082904320883928353742887919218028997010440884370661107178459754988572100203243932132426230140355885271590289275103202798506459906331121370998847380185757786504956209935636075560381543758618163845431999952002646851440068561114045505233143789050018357432852313039530165907442517822576294957038124498481153360286272184688931783901210974462590710336445217217983626569306358182462465993400254308518586498645104620705264851199315202031591463462179539432989181352756542180023185645565391455666564786166651565402421643077032593143110940137109080413646437904585049637739676450937545465738551975333023182190193894381116775899974470851939369442126971695890470612640336285887527290026217137092061394150380655743621533240040642094383157782611213787522221969630693760597271666753609387044646833215478330233776911259808739337384745229139656137756298141450071470864713735398411365236149496847656832831989710233979771050313949777565834218360773240263249421993097364365626109520905608341868347416055501604882282666149009198023468352231301106868004587031669472898955453533614809067217352479719628370683177054643895596814617945611829498769325381644981286490886005273779168517110019053415730564403390126072366816761994680215041542931459747333598203331693660237937192310759188113093066901082260477684070421354167602318427214227874889930829515685135627300565358199628613914847617508880879617734933583106426213378001376158284546042735079193932534358170106088857749888469754395001819650467031686829999750246873961905012440050042135482900727294908757858285127367678321274753944206222055890654258502236326299993408239714716771057293923485795179310514350758690626967895952662447586225492340955606207974875004576995842140886974092135037385857584172608863641009651940843088099840619367435130293861851813567029796697484344322266909483773472661119696393580368846332426490017294032610796806363136883774544715643696115594508805384104948206064693613968047067514735696852356679969670832485132099888294927083915684394266216341219465409750955118474357933105530040507175751182635345227900107960841993899780673800912939686209476087371252491075213339474975094009769084080665261933606630911214309037341293713076070628064069263612478847895528879534486456911721687911478755857905518174087084426372270752089396874051018874950161404898442116171447986886399539225694036011905067371471789606872702121899074592694580803085883348977819346239696240475700642242739442339654859744089634483036347106850808385614596274387803692970711195260318569114808207800265208136628089216853381996965253791880911953658841280662568489293304666293058656876480987386369777307808638103740979916909208558336413919465136244541787635265148317229653678844559544140883635991783177748995394163543843474029979276762400599324504798299976174208656163031978922581342770584724452378348056274556949807897334786321661240727219651735462086700306782835905378801711423661317049713940379373448824006305004556063029148096852757704704634688888726282950052534473882485036079961280825351788733361591011086682491169297802755183514766523192107987103035491844859487727365467933530033764939381902706599624902074357598922127474921091845886413758193595474663979828124335247168538230231344146105807150707847709014130742359051935298895928386900948499525955355550458909193350338235422010264783876460269147200525799785577573759414433890651383121131638929104169824183021428478964254417512908976490765662027126355204228099619472594864987684231907091361521036661156988785185244219709986583077754420385463467057447716326030494569981455727974425924825413470229538626843558574057969137618731661326986502484126824161283086318189483528624307948317719128949746223700653650778808377327037762946638602614596172198135491901752148202320459846648398007193060918048535162235180763729391966133819838840939663545666277178018224167589478361499087174524334432764864487485544892117536516535031423647030066925696727196593621835851827513900238913426967250768009968712410744021208553180315865994034953866617629954978807748563792188089882516897709651117704074081581018623681228700931735127217067401971004968339324157196054232253646301053397180463716354855762155753586910715480282765438089399458636105401887796032817476723029636999745134010486327305271410460987983107197495015530970393799104639083377058359025122817055877443697983446655262366248266036170746269383714252266915439325810245835702977858106224341087091332102866147319513876396963104811664862959571195857294951078976697863269365698567304775979268505859844302014986977158469631056834979857430956664029553359349357363616957812171294836185803206621384080642486349906308865155867257617801209284932990988848940260849187186351942669889284941932541207702797191080528840688784755985002342849417259402061044500824372471209379948471554379372663542870699398119958175180980693157729575288552136234110175045212875643955581023213806045857799178973512307687914409047544713279520237470721127816822851174794013422069600941153074710189525946053625962266716211140631548171928706377360450358434583174615410856034590046976766088811612230286460902876084256136733654277759475563336977019131051391770724190743668813754575639664138556848225740512935265916960273486197882253729759914333053102251692775963468277124471828263181336713848264388770675413341101850022732093537156637336258456767949308879105828168195923302119338188564099027259614089923694076834340114408277809786854313986491686654743715520647948047817680738072359310251600120544996762014728585078354503719901797662894098385825654752392585894251237446277028731205146362418567303474270972757860810771317158707575395247161298319037084778393044979228510770801512983875695458223386188925158147324482006421529863375636090950908672552278897668851032025997304500068115250233319373286351668760651135086033994392777765407551060231713254467561074767414559484278507559837399539731366510914587153150331638910847406168347421477026905536689104002893640528740330632940569948678481119695791046533104124928890861671204895914481708687121881603127024493013935124701277473872982270028991783690401157080898573206066303416734056900515978918852824582122844552246615514108428799414172103426128893803564433469312263535087785265959025953739916332672355510177414239158265925480025090644327384960674881908319585955783832296344250709304688657754575856223435504408796374093822194957602477743756252944265025007405225717434840321514614285193104817230259867893614926027904606560700354665982703509962534114838488434825607382584728052969164734885289297768849504992905827144376124764226499102998504823439265302732985696456794294213625753674683995951718382831492220223936000712822752042674620850204676450223414960210024345461100623082889965842337549565621588206135489869581368351994373852202229818229087690358251818029377069208127471340590118991244319739285143915414500195009722026012267960068223304192706381419624086782251780288371593890845752579766503699248720230450163924217047151593307480182241235156411065161890940184006587511216977779011104112691509780842158516089492271629832880871079817467048523252012453345174623505701835534157321478083377162934615117398228157227139923863094538595953654045556285429029205013431409310396276783689291027988535911105162720798469252883480678981313279996356991997771303974456456248821485106756089947648071874919812537226152784526095173610854714838166870223729634131635791567100848522696356095282444418972741677046798790457056181975952446071373280400614989403718533887555085179920383098209869163115128677022432504525452327907826219931349888616822951791828648839707498840739390768858685215336575543633555908218452984892192629998803818061446568487777170684688120187128476265939804671141536916321653749514394607328578783115033681521200054423058295223985827336792343289216839600636021832211845079337399533451348723705423315438553985926397259603202676415389987579489226447696537851545629707702673962224447718951592324645395869928194295620529806394684526850749164648853203624324913297694785997082995679379472829930774668757895032462502001972273928189589521647861086471423339529175673339327054967649862715960045613413983778626882634862641127317102405657733021294582083319322255394426626097997881293918303521972736711080811164544143329415702437386248529066502620615329085221104365686576285999880708006957514401353053346026376355669062277412141977827602433346447805715557040802235141038564649429866061860341485855053494219425533505559294470883154793387996967357659703445659730187607642957391636413098159581392361839752701067733366575476674672269729291133100750980956475511264464232342521224534225128250576200443353459527116352234922877505418021441611335489681954585618685737855264745743658545933707879695222618394259078755176345205097890193759445329458148032980311962668625555981622876122204118618004512871970917821112872592047889174864725641354392745030971163164016560079479236780962114164021448181968276834928637408732269892091615362247961295157104194185324350754273807940405826254558646522790300043044903258084601803506708684835573598617792822260094364776799493781811485199546043375701011597413736385892350477517882419389161804242437624233516751279811156309270192782373445698903937401484074572972181460071420504945220781933611219930378268924656321070180155727159391031869919936907559543362985428844548422214253604237856123941880156965060388332768413750478521097095706410824231435126206357486087955005207455779568717744144351026504803726274668204057909005901162548648534719408940177072607661198037671299561151850150929824664874886737000714431026856121219130778363850857350220662117257960880891023973172677510440497804147352897045935675988730013718992907109861851950097403590017091655533315870128733004365412040094849675791342817303154440139675525701754946642405811923712986082066426486061092333818957568719088055639962375690545315957540583635558333112150749845409563942705759569953070866517795031457344820866268479203063409966552863776405509646297108876103435274501185022067809250610945907620660146116777362182282614848786698718703119635921192682908026240586111631308645725832869081482636087314372746996994737408504551391360994935005380675175285207401271535455850018253992071005252293740699017709723610620348843061238059108982777618480878920747400590613890542687028895982736892801705333049856329511132843946860740091529884340207240561519695676243274145533678317728547656260033181675850595579547636637739326452629065754213976033916319787988686676023025897891452951392709136326120232144626309691478214324002938013823467562868980071415726153096327819275171171757352187623065564609134399956106543902385663800387148974826206117360635819721865845830635796438214540336983181994301908966119893691703882714453178097833577073652086019420402019630873554196038774758620212165492456564985962438797819648422752495579007654719351566701912486372523734149832447740308262184924321966756850416866819231378059703856277531192235434447295603094006217508523313424181196917579797181045289640361015824309885736910435442918873096159178703687585157552840167103725454959242709664529167080468760706820679271908572699707375626036036135612195940733909374247752613044193700169249463541074363607454763295513951900465233848159025158333114581667374028386591766949772612822135769774457536281545702949212598329498822152655491371629822897361656889310075750506741169639494131800400877042821409280712503126012129369507502932561957063858451089008370438577565276063012137603751587767983976857929850693391135566656358813281840840131130724636476806743039923976149464776623566901996635660703004217084018978334537576668892548379021715028291406052902467677370302424184483506615759089241777091163652190717623347336537799929170585058241217508507415586372422046013460392868888154729286364809526654422565286402929952892890273181481212235877381292854644081428449116977218513079654296205593944657656841820179234575443043488539368791958667655857837023966303619934343569181426997105191662759301938025009046417980009038505175136811123052456008240654970312594703913989521531753795859878805030221840873390665267458184677211420594454595860407544059329080265908655737363142481591547861885581624068451288416881054058115748330177697103474894432723983597901648494661733596431285340247708906381079130399422912923723938163862027032749554638148849433215154126110816543566835465956899350902418502766784150616929301292008038319217541082727566435769390057012840551500342718277449152384372223948222346299529784088079855521122702053124493677807070270529041384320274874648154282683887971963752752655754122091961434076475545307314684162001239298992849679320646593044409919456885917008951448608600809143550312819494265269218212016458995775902231990185017218833427613189317068337136450975595358055673303458072191529056144165451798596695938305825019055456731717690863266190323146465815504137395371656138351274344532380607235763755138449461324274514907831503030738596121890494486171768301876523042370722574462877140540953581439551151229998161730092769642956205544968036723418081909077315176548404571684334666167780996827278067749993862006178408269554465058465364644473261789044630699822299483036049405573121154457098598100915802200668803237791820119640120705236841055461225916130548406240015295617349559356337714564244214405847473115671945821520942911989878959476501498719840685301457030739740229840149478474768225081497473005117766319814631106766480798737535275565898033152223370389962239114527508697427930156709445685791135133158669983170737864000625920899780880015386449574199761976241342151231595158351796050940903749223442435132549976540019778990627438196590978478870153835929993697170153427787627974479817827573040265077091022871918911557066481027242363584304148722019655050558938966482634382929450374964926622058200436610296582360906144084292079004645092267583286233544876561166019592384129942529914788645470116491854818396891600887311655041586182326483009840536373947255270477525337673801701294201265516929822317258489755727389301062900618233138719900629723744869471552095716388056145872922413018919344082284773524231711395041379367996024267096544698887381745606766624760445335284178735779176405016079659683009219076564555329207041002401831290069263194996589162495422747194634236987040377635561351148594275303708261044490958394024568054296178022330015998790306685816119470911503171242852466953007505761791396312604452207809635215330086673328291273817768568047470507420116881581805949913836764821914903271072713786278435686355187428599899128700543158331863078180440622560824056617788016999941680179244707409543069807243210246647651466860008158614064296030044699959729945340244200414419348913660771243779683149490274160853743507969747114557066580281640226265895000660603179300272764324385566960985173392353269932870363447986801113203220957624844056893148917077456189468955553524535173320294582534470801072009852299500102456065292423806035534255013587215962095368496717697165603957380950349894008413680923880875338821118553765082024811405352949734348767958992206786689543625209235380783023078882681555704232709830726650257216201150985787824535440475911711658424397838856173458294716315237302356658746981590035438042716052581427931540389926801148633327560857977327615246476208977555289859396919067164574496758113766831793611708550576411317827831054897665935076642025192353763846086521874902658204422885844341951365357686793985444739347311269248189825822110681625976758103858676749232501694388303935909513276324285570922500279765196160571997757534851182654466046956861552165063312720656510615687293661846365297267526876500444216004163338375260094227409489300827608888088360193650226638000601101490790833821792496332907932711147139645356205103352997464085934968952674665924079194344349028020305718578248724154955921826523994123490418955764441542008711243434949063183632496581614940349679489311953150372154339223441572500086256673664941318100281978636052816397067207933044272705918523634680038145679864246755959352774461298745020393581631418025068029939136032400668728977468506246889750139930337369959105175077788271518503857515630311454169944089752072749269366705561920490959735849183145702732115460297136491919505464970369455454456406785680386174684867452897795776414539783575682539624063827462576769094709773511568145128648200925215713122281373887769393659906134079047911096625027812185745062053003840728247867532718325909897228254229900952526440633423389887415406047246563148997247096445983794494650761534168526829646633221548112072249579349303563706795428329748743208171227033488804560645988447905866976027377600787168588354559208222474166578004092972836701279485574869385963847363103565007376218949642295477590224548840857569315347598974388173553296277649754946842284884093853013667233991182745583552346525594363793115310178097253402692772068680809947684646307201771686969842842714683093148579519484215214543560646185919546992411653302710562997484426352019367575963789154549832029422993681073800605685243411710341442645716793235235923556774532064191470090565038792006766917403293389127569763760317032324430037872987614824322169438153403395902686173760359333370852781624873016175548290888886258766786719673711699156091090369597745409705021340222906658024544563296048681406268099304244079060146202596856790030224121457032197063755519424472437610399421317143670474487005105258501039907629793864206818007817816946861393943685573508166789948790619584165051066933368100828452109333788907030991950267864408970799200231571021179619682381654228402055110680360067022191518468132350766566083464839047451800226451407057118488266754334093802851548953062988143357316693406377949702404951170519702221299790855804001226861521898100928489024724543628509439646846691577690331886172274778331487898042855627453634300458273094390357658350668093792166410721055737113662257501299157949555619085905600868879634787687621795387956302260171007147862764924938964741358308408040424249950997125985924540122295230277608374129925215879877017018510911852082643826704162236196892415188665179870407564072228868475548652662619555524649724158554012275684459908335761187436073711714740059431600674082911228810798797269114086020033389334688107573950029416455995443855588018167925845958691673382871813446476156832860088945312262294401106033269073891869746886494355587558343497561026455082559555352805141594992684171513019063318396595759732476214901754022154497690033080095460111589101897736473566258127898947357186463045930302643032277206573859002485573200076221453071429411724003253901921114863446170778870688934753163718283505017190054062624914077221966533184595435345345045147093105366654936509131469173911761918792479941932996963021020980368238994799609927357145101459109897271083653684079757665276908364081399035936403075885218438422989859235956208163732118784509310511282567059477797715361005447862120620617917079352460028064526619323383678942138361698618766084870844123024514160925348184710568957269081413583878602425172459231785818570020552209235552594973108720685375957740675653848696462019410763209199240695467934180128352225689630459180215412521625489044499950859619879107716192548589904681864361719138964833914273877582615303403875719932418088069167205474905070807360764176750276939538259878075360015596371731376642160215950300269302411713800245324795222375186015067685697784621874024269824632074883895722844055586854776550943714980673193941090804006926954199011181035238293523662602098716178411415771638539937719149303979453092272938108121642014361022021477629197303006180155579658031401560449807211313206370723261820292868289378796783483928466352791825768011293450041668436351162004301607367331264538019627721023583306034255308841080776634826716326348878274692589668202882026029315441679586116291721539028686182720606736126763106895392553043814470477018554037825266251805196893196425289163706917172170329219502185778607833719881149037046954761884953147598445203840211712433073671236627152056039821123759867492218185238867205465232494467296423190630209538652184048070549798965280220872047594736862210293052637035145699623495963882538213079406635872968618504741170865980333020879025926840432172508134362777312431133300254454865295053390889036967893713421372217033513067866333888653072977692123992225690057120048438735031098689210275631843759907905695381161100105632349907705572587519726204043865396257236961086235620746231277687833680353417060345216903449090474019618571892348506506803038441409936057003350741695450699031822372482058947149547912412097089818295575947869987507775180956366134367257058778722421154132939708593068484529568118859476630114350140848055368574565469653548753114191789143452446650091613960646721933563167898602239142048527625641328727507451626245135688215839061057369376715719713581566386215801917911072355042476226369131851779284203553544208937624884642717862337292685305617481287201376767030195459888296497612078731024979953026343379390240665834307354562735705333002541693817701998936005763502419889099367614701926619254267238757146096972105695559165042181626302410559320404906825209439216303040348356959503538527542827318541941499986253956621463787638716112211753376939284636327739679971903655321185742179571345450335527640263134153833686718334226713715467983721064420858673181808248208528462066134820967529786754309958469007697436275701041636135537752918738977030874776582707851854361243349240146808520727503460322934311403246780429181936751925922126756050917006948093250581291492549724282742065253616982348074385212740994318213150562762163228740865496278029021834204753984177912596255623977904148695783896402147112756002891370070975421355770118468558635695000135319804429033562068200686471276832817056599283590296972904916911308336394549787859445453842671982563095479624217070805665912105782902551836824603525616139210042491046968218582078982621699939247158927428464008431100072148504598122552827178205591124075126297016900958733332243812724576959766280825392284293841328424032765367231250323835424684955545950788649683928431036090280373354338580494660237326078656892595009619746346774879471865836693556412541383769676647917632017817342245523978270488877592592014826824415756191164063668954719086970465038065719068094854394485762704378644581077096130964942338153602219435534670437909549325239825081572368823638152709004928777411642835374186775903234475867922390230990246420587275424669042989913587693297322563071724254501272969939753307990334370704469795382975813953838703576781347323853520305735620655599705070115767058233220468156788909095966918949762369212170656042163430527467393928765312166804154340614691962005364107427580291309850338046680173030604863902745860357069116292882969505594830906175566614402416485646365193172688034825423458156081527267928535477111440077064524447562878196184001840941662494608458615879170064867433770760612444573484713166307296938381267655850189620491211995821522175828005798450427731860277557502328005093716942141484287993173537629628244263516165483607271897135365651448932311437902075182639916022627984647706701869531311537184610170286030422898160322315776149680072324031089641028574808176528842039391826799882318519089712754596291097551651563511943403856679261762929543324735215532285669765780399983674209473720953019860236831874796938617785625260017217389368431241848638021128000135140513671449138414688855270901784260556154266013221966047007322695624101596661837334054299924869393609551614359356647635640425618547198852160324003690701404958530893000423298845321805097105921629939036252967188135002251205523782409570479407385500613296198458245522582632449237743691460935165436686217571533577966976578921778027708159980927043743826815749654545005451169465802277190174234359096145168272234314835485226034300701724493869317771911261225878487606244396059583235138947101261431727454802647926058170811478300458335951460825843071578467652940910446639223477986956316358787719824699678124755148652005130347218371422835406882615912907822281813883575393813346090796445412561488473901542062064003067497411273747421433083438301953224286347846142827361374742548041686488077437650964070132247097060585943710182216142225918201057218126045545678736483060840622394262486615259204967983216144934277291679096271747423156702106284370748603679617869523746899693265019013550015047631918597341982314441185683891544657582939871087676756905602930103105555172124925518427934295626262362138961423145086980825113812007847510457759547208237185945462534486612132066527617065112434878345044620876460269582100054339519769204980784628270122539304958763759021771342024567189827340540974029706098019112329689615502568431541758080514330472582154125163401861409279669799236331921561573606676438173185740947764145155161518438856086317976040132913494705877328866182296530500700539933267833738789690494157668112664309863567780182088946514259212268415782525835444467974217511291883877767637194861723166141549562866591517523911025340199985817518078195823728645513386617242493815028312447257629447961130547137787052489027071710509879917359863314081098286761661440929897375912306260808025565167628553646210575004106353144214048206961732820878079914874078804723025499778917198756288922813683229167839640010326829541816068001207002600307776224973449628684924752476571013132401232593265008156406796141716744380203541365855903914716082824640969472235809776815143911649871520382821469580394923019362654964942588862189480337678337937688530197687858267278726258302468222904368766748680789434518868959535853138740030134166671283409090117848320461567481678490956653249891855979150185861657171172314076154687295814785995837944551110881574855526106156947810715365970131264081744319149198853747373790234395591899635968590954761088701774279708469603385555492938309995474475680273023104996327583211181614387830085548598386452596466892610965217457853694552796090538504114228934315887861971401892651521781603214716728396087414566264309364564692098202333907015845697381567469424324738265499248197749285214653619783715250145216788776196016128235251770450861444914467902029771574753132314221674743145678125355177389717922405269113121195552826437698956981806645278700022871039630319000015193012089969217509219862113083584257610283784929224279359385300780551337934318695334479049406289861743279585444065688804281675111624206673481831734266571629549975583658954498793188371861978536501777551076238937754780294431106798550237273701705362578643570438474923689706531535445296180692630598919016919257694014346997439003064703841534898123885844758690780309779059141607515607189108427280980717271797778370653327445618110542071985919091202794109305903422611006449500012815262556023040939362733024995882102717314336606006436073816517860870703441441678906474594636702048931504691090766929519364575642755332200884707495296908206776930459644020271130257213755563868273503417813906656074664511629825606011136696484888573569087788773722702025745774309100331991168946186302256299305284208150491480644048859321261605691832358241235822083999757109751851772812281594621062538818494190992370349362524547121278873081696448579674997247210623570908366323582316175291539376033944342447077531561679412847222888505402588171585473328469618297693263847213729125237576734523049146205629310704517968574062898654918156386702604916222903649643306482153612820631604692071302106404743060044358361895442530861067456227515060167247394959884691857406720130013418984481143055426887508416845555001567273070523609471988581766387360558903943455980734757328573210409738414620344103648921043950408684915871882199486523271496269963568623406804911366866059795874434643503735737244892676435065687600418023851553050413536565899622259078972803748988787470239924440586901619183260336409866912240786729310268747805461588653080783878422732743527790568848763535731232577436699753594363984825881479573360275746166207085722611746412100906221143044225315084626152627943319374992280294531170851594265842716666276309668479720373451966253318426766230780700716364889400842873984989386049415701419791032889766521107927832084379230010471148858878553448484861523860757026714693268490741456247706693384001350875837352324877776771453846394636942491463134148656506293859855350969561381602906193888228972493978766318374021855057127270323153865105746228811943927916401638485685013939577423313694780374293236298772818118397556263812290836593924604113108162164347859198766706171428136599449601001595955459535435258879054482056534821118277003477245303952405707104310044373927061499757714186042199868984713789743377190539352443474723580058075737865649717199430957289227745987599863267541116680740337538995433678431791125085785486592550103476727958306752220536607741745451463449014283287256820112246367142281955584800977607808913277833029697582886958940788125391374026425060667202586882671399112207645628140023563226911044463616655403993323318698336608023699603925344563425688599053964524592053276327140132958970262087142709166373346504571117925616918370085755320994555001057215627345990435611382001133633418497714898153010706683965053495618040042608136726844480341471067215975967122093229894862278266504652801505726162300667091224264570307476136452078630978189741587026667278376930997583800371788424149852157616019250489358607953448088779307640011156029757184486865885874218984534682054441483729745996332991531997411754368634556894284707546756651694293502576439492707185104798270338146847552792601110214584281340695127622878635815794456728872596594341747074171860048743010442226094553070493425247826454248409919876800339093046656370211389525782690728694417480671532340065201835716790971674836925723585887540045432173636336527092067891669042423968266751556616483835762848010471296429823503498145607558688052355488395019136360720466806651719348897634361953994632358034973381960358497484181066881697524995942879242599749800499131596934018542146043831512707182322417915140274051910909101824256024083356420365333520090275269300849235264390356638799513396137882557383712891940090401995606608479083971487676247360749829767004976541737773422865181958949667908272111590409408660231937414899241376714620057293664038523221186837913686001027385588176635589711696348976584443609243291291949921668461077047069161262844023354068579456158222632226498400332688938904397525576590988754429120933208008254864413570344568832334316182217001426773899612268714205223245406535975543963500424749037252490934935924115634514725273813235639970212249109889996407732190999586886725319735782141165958616341202452351404744340224588380461189483829273522312222983381465482544010642837413091470948026778855961110432002003067871948101698901562858836256351827052220927099329218138775398469204624574434846295678130480341854256781458674205542714884126554371553941100636530426974125965563644961519596660477323735524297463779748826258630418644048755926991959911010795530007700722891931049549695244101598415388939133565847414645153779471261937392321175490042779422341247190211938088113346100310509290953921740987926076480103802468955437801896243152851196873616257651703104042890334120709923303691299817705418715246592521885975895491717256442710302602546022980780979237799815792507960602746064154773487037309120561720690432668033638963171665734558303047257751289636273402519117833838584077561551452641436399191154263734931519491447710502780272126941187426860227008444871539777640089066717430719850070780589934700028538732650224671264160584252481762592707067077655296725597041173545228122459666026095560296605356522320929550132523644510836546707942771454264023216034259966171104082037715882327311985099284201302805002426675825548882984674218707267527703633344052947196175877634089027154893140574205835772197221209070459396720760169367493917671794982800231545041504366108354889218449726727982582596134963419288173940182484940485091698816265342403868148057770909576483946615061737425459370194636694090079052881068843346599790834389700358198996741608058553117851688082700305048928422430548517656784236272361872067413872366566406125212197745571247173601187104954911701023026632526316999005458820082954098948496845351480265166092412709562733355589015283035042043345931934294336125686946173071217832792179604580337901572602753612425146571230297743158829926184321144846116404351227942958589972907627479444518745326326441858768848389589376691091101840126701365485524464565263136060017042436423901222380354263986741210896608065395730199213978697088349210507655807304664615018286378031257815311190493211047313248066042806401550682544161743399039090073992025914517266970711258926712672956270305781191273341064727767798379790609615857508053055807020213017136988378354196336052780090933340184295584195465096299634101991666751178885387580832369988967608049580240686992528716131857332515491856748164512365663379256189586071924391441225065367496413538423696570713880838622091243682305216077072236205189667411031182908747785863001856088775069310997911109475821288147876099519953879507068670923109134352936078042294446214747476272821296951804587999442333975287861969344640236288317000611538905888878287895547022595325879643740928523960312076896148786637099061911787656837414009449272243301430183421205313686663445593430076200442500176941805536462533191144636062316778160745138705022405070335321727879437425410996035946768436336452154310770336657284156610313366510183182760155356819104417239005227663367117140194102266868916529917640302488454890536481884706865871410020474643313409096901113425959395206692594086869708924954008088539844283727690869027340091109122511094895569659612869242080502871055793192702647450846492736352563102168703093422869981892755423389943903444957472846412255201147085480808493842358513557750143316654689783309088508400680594445600428774363691468366066208901173408042342431200339207915492595584800422849512903994601066048053657234908953978212709204319376952023757120976949939125715451941301958177953108400710342438728873876742565868880689140758464805404258646714810040783172245986350542560142933474452810278027745482280945102012531081861542597111628639764877752577551882376853892320590443886870971631200643397170236041701753047910697626313518099266210883013476663821135049067312391126963131152197728890104083866157655352252092091181906417152416213830218888917327226928204522459446288128672923246089291478184782860338217640451339808966446231394353707706676742141181938599748501777105084049340092888834605066178244398779689074919785132989451019486730360896998622500518870985702034573611338191460990728756942768182326750208467638751822315289126957597473515735773087610006699134094444057326770736866012109197775675803775505081621441350937758612026556214690550012048673026191609914181788626385544922965314741264588508233495467415488297161723359896371437123177503150199660265380384381439536184790219653158852876791450855224030171544007630106047898349616331489991746292545912865306300863980180021130922104029875454002041554173123194716480249199120195825203729965405447683890357396547056670062789586358442091988610271153535555151064138243107709046045431929505005971873426204155767882911667553882980479873440028718145164793406598058736628778958280034250489054105614877871063380969378403396627587646651399472304255565988217970563644737912766189056539850158277920651948196710685282757429850497190255696037961345317417540771789037997044211989503746390428497065250475818428364828447382820242266683041296569458251795265443518563263861999444123423346504681976182116794443060677144868501651494546691944263091243118058144072919117079843457262959765824771394589527572111508390323815381413983436115738781708504633006104387660013518848487130565989406057698139444835709873933362980669041141818270325588095869286835231826720973642567510036024947049210835666043529544743498044531589910247638937040049501627628930867930386649866630028280562942472820822618258502898243575020336392345930875366650469692073653904302368513387203382988707661303214852395767489196454143818308543352530394538460495086517315786936724188880704359962132952873867424687882365622147007201773760526344509307242688005865506082004783915532041407871707918118451899069327981198503979021444483695822463619626097116530575479714495658661537776941627555427363134709803378225454844283842027534103801519117619506569260686482035941817365544547777386475133567625592798939632841548724013189896632104803107678056978335164922813640752016025767670141311821985328978782779624908637193577818845269671153312954259571048859208773354745873804358563099382351355649053264445827441138383119812518043524478814890818097804586461485169358197153616081201598325775994837599484655441232890230118472721632270627193184213191946284088394477009811072549265930850365699400846481653628492688192318331843305754932042826066972346363217860959947259847716863128098094920992277953261444962157914168577827629632702077955910690476841421991399928602255769331934121396664847209828934489826547042680440187504407594664252471333714129354720986414720487887147798364968167533735021940689437997123826988801742218158658570212440824453778668711103998487433596579390633627193174831557601011136616534699689708142588866811561046281809690644197198106187696680429349283522856189273199455339767771800233808272694060984237388862415583626347100846837104286920129884858663465487623247544225917215768623810668246870691277265896456854900364666203641924533695869099937573114462662481754410112950258042739127968176452111667011671919780651746861898550681350157614352019513907908684907091732646496257653017067124354592798263854568990523039219248522187907786689355442845919248660886443181233356530835962275340872408093692819609711744368525048047636399051719527943913652326413001235136477286446716689772149777144167257201718676591623836078126885927965748537225886601288206022848376785635883034411742848945036045794761137005295196894373497094694555615141144955034538094795251690213239526938487718607434249931085202918980404516228355944290798526070389104228512517463929514364142068824687841330111175335160777915053560493604763748095420540233057760472293818937953861345226285316513823584429374987285096112293109213440833015594068068746766412501032019604731894036609436976723953802419699875333989226660827128848347460652437336865944404679341634563380152725668763986270116914617206806566967508048698131837631108298423179770877826711326175620000651208890729055806153830182057565301695434053851446883564388091689357607187252180200196301527591796606655749904647094918669429179469321167538045518239914398652250649705497352468752778121371390017271509340822796575814637439743745779683370672407169317968270187434592985987403064834373766298010878463225889986440342511801684312710631558303920346703560147530858458509315488679686601402806299904814160679891241191964360109984662788107273058470332179923401423820929520739830555461389673591864877262075050084596744281235061453456627837301796476689065223229705146545955111440251929816236681994851202808947824628395400694266489935781066960321239116660333815635164576117062870006129539441700152577065705769370894907170875414061581260676574488895624718834173467423478019090619943023712239539111807507333215464171189002119253993707497804417559447094845606731984153142856829396104678918290833946997471531985347541084744852416093330337728056428789729016341346447429675198551872827869140253351294568262216142923130878784137123540287657865475820504996044305786835588394406733315388589647823692073357031836802465779841607334195619348096647354451684592806641042439656814079253925521198181307267961741600340712884815047280837312923412781393278709925099454476362070018665052183396386796232766210381711195391432830135193629480308851820204250671971909848357719585449612674227842879684900854757150135128758153013638581639131149631670010086911800898801288974202324736678537118521168239736109576768398487137510959668714015374151536293600405050594572058689538549967730896904040376058701997097562551217655023736215479725873992090323575288560488767719073462004067523909752668500840795043530924634721943742469630420354815548868851324943165584478877624124129127697307630071141863479854324008874568866123764029225132969325667030554500978308544711300004734724538541941565824080633441967352115118017651930592901776619003622999681005341653876327442018362166769284831461341647582986862849430709269426113325439046685455953537969457143621959552691645963346630362263228244833393119070077878477539095174264737170896747443429231874507365495804612789701658068994148430685753318252816619960708154451431493516316318574817345375913647773356121711804707271302964688380364115468272647658339514108541803692876196458951254220074398519190002822499243918343657012244814450477728107969996431999080365565473482679774046408046120170448961334754334715446747538830735715886871573886734835747790758199373892648885250679016292088002830675835706160796196397565296061263685472285492080284976620074501032252257812373083659363449523795623623106008950613453522648339930492033478419832654022480230768117565298649861228414455554753597217527877040205792733874527450050612688776042907602510904377562708087527091931834528986873668318690595600508933711717311810704557859883561283324011879787457725943534885727741901408997885108710532253714223762326604035163713628032445511163543436318828124406013543439151627113274233471544935710988554985896501515360112011459714700584037944175971186624945482539083497762287771010982871219391003516310972782922744727193163473871547048764925316316388439606021301221635884369217231398574435830492878272337203292564953815905794670578716667115924508975584153240598940986015620212079736979061484069218165964464510214688757457284607532704625934265400643378539116907411082665069828073584428180122884665441747317650230652971806995399958070583508369209330915815059605553408724176257173761090986926979736534349317017289353920313687017590681319764953729309137362776532803310489646491693215114322060737189290661102110260535690486602074289276712613469295867716946540512060731885222273181679487940416616335563544998724057970620076535900540483272559487093859386663569780328657851052918593892078357569928983320340763491526110306197427492638048437398654480147505452645386148334660055105203484753991294770544855859210225779518085889911614047658071218304150070124719977777312769752143416124953064772391927490545026601779454073693987550394241052370428362036876576819393118108066186314817957110078762153963983383710585496150467021601952534629154120404391577227019285115532665308195436535567353713227304425555670506040745667293749623586043276927428044666375823003060751052770076280796025952021228700104703547583392090409311261120065185099032808613995259201676303871714651573670782927913658789322188278856610334517634845007495461109499852639149785758834830642151207103540379765854504753403862412631388709810201989522717854786713762438832114968127499919952218307254634862203834405923444131543848285625548450697952829389692862455852520339927195137385046190428921374136688714255232639944594645622629537586918488464224178614964688094140244911850654891635247655503728303958409919891798022903970503073770953237489314782509573258764962772868581892445773541858752874686860111349994618619048294632993040816918847672370458216355609614115682904600671868416262791748335413349902436898938262399911037750618455083909402893047465077776704866298124521651159392258655287556105612132063575981310905576014129429513489377795560082569121077284131507263979537696764226428261337883566912052504701395405244702774035327345497955439971927219923948031083404993029727146567820633573718730344390887735808337451542503657945609277079365554057413020673383083579878838338935954017823759798405354758405000672788172853076290399475948457554827751179054781794677935408730448130982911266010345546306444743576936537871868364538982615628312229211390109886998821088182348528746369846163357411242081398755292508483809314247017635344116186389807800790907816073363968981030722233285359124955953119089416553885869249202442550771056046102068162613437391256746805274478312347347711040249524960230328281846382933455677804856488620068056201406686434638394378947489601627016648869761609813054199195327109811944962903152438246603014418192797138003836450841789128382975496092063576344233566594744817302627745745867270931677445051194955543630517277933119700004550236713500374755949287415253480140930759634774685308830324924098619183999380591558657192426779124364617562823845441658593163009904627738367207853156180487669901777942078545513994676577757511365822242556210857772469170383012438326847128409202678950538524420566454551753323623379551989512798876632457020460800576152614591421743865615650248614215159498343866068584510797288810999136856942234635332916762882106029822011228617425473107920288495145402682517879900815624990632268218748917199110550372622630243176906223632711202360165959157542365104006414001441980437766848876406972921967288921979100865970960832866768246191993828292321563247893592314122463692021642788886587584153263896411846767817691382069471328844945588859284863276131250167658602271378695975420046574068681083617665313834712768084848353792030781542799418112759051965251457540616288442221080562505131094742670890560952676326914768039836862983149855775512317647561395260987111089461854100059227683316378448060810785074989394742369391912219446308535963163352478819295784512168418574608166935514092186696873599694768853982659316252694868484703509974733929393984866956130493399404954478914482265236736790907784663298897635220913727407546825427597975704297585932624172478163274893484322002859060511985228085123820205772855118301134532992404222234162488942864314763305067291619955680570172464090393150947978055186318342597261186789677891749872320315848971953186839784240998255784652168239025705238196986744557780426943879111803142462386222987906925461901632282377945610113136412757853722489927628368188951145297141215548615696137179403633879017292389040271760483799285368911893813024831675337889614626017123522007163979336839575008596319291971027287257765478593212338490944710890185561637092138463480631794019149618788963392067430894228818805270503573016715147307646503085441157657456192739301705314104533459421851536371736154416300820061942328628763304367072310789774930328290089059153982665071792989248945968634921511263577486136232111175872946212584906273972212490303372330356180333521079182490074172485434890482412025171412751857029621422622540965614852177611532359833308242300011065927958500245533440146928793869311427009064888206422781227974685211571563074864927670844502595233318496102115920700020044133667439025284981984512402890135988125660377109207221322161836934543620384325203253397792257515315088750454030655356504909587749894920300288633001952525346790554817598102582552326968756221728361142315693221178028076222750477568554814717730669162122240911833025786467155273738036046210718501462127054118952031378909689707662029129986507000949802272475827425905447171775641963693261934850536263705593472402932637541615300961205926736256354777972583057597996519633790768865170798198969947070603916611511919169681508064588780851819843069657516330830123743361953631535357375988773612578663963331662993078999455415515983772329191150655314573842793363284341075193529655559961306809004992910995429196216525667652257067997437788993424073614650073829457486653253526689424686804394031069878344565305700357757734442100889558001566643142066506496846971187394402851576226081947204840595868547848004876144531144115707458286967324809343996555085047601498626176389616015506650175447203483230203834346285477756525341865995328175027012492092883440060225675372199414840964527648580085834184712045272584052998457591905140160749348542131357886117364139321603498277514628350774400340983612939090908183626385475167148933029767411977771504778712691273259302347833542847473116663512036294326029746891007194026284242829777700837372745514270158912690696101477749405702381757218229448659418878118051816599139901289664935043965145392043139415007462747949473470216271046550299534099895754932232664672050516333709849122572899975882913252779295495089098356011792855160407477315621859857288519891061175349101784725203763838151283710595584153524053585323518464031976303884233052916879413319489966917839578206938108953141984532093968535385961023099724349968536437388184947044210436038977492391359887352939258913036458067914172726398900529866655206556405139556011669718911786030390030183493116238971938230210741983132801765391113717017937055619862640339168187256695789052162149440924873251284252672744741659840247021012503669049691753828065786784925630344169193874290700840239925871037182204134303708907337876633595257050343306960467041341133285775779133941723655385333977504776625343961107930824053574666181160064810196439209309739615576134559223347786415330915129672697530918192389919711552885862545165265297604931273743817181049098134295547704290691886754051509791763452838459762541983103002662667835500542578015232459280340588054802990468200724451042342803955364217891967395906131996288087522474555772593637581251719584633294691465492437188329587726499772634637741396250911963319018674938885774576926282637096955401174541728186073000703248693478052141261695552584450712801474692518418511794542175977624876372673414962415369057984833162481444375747332573174852486574767531591959942367906762607079100608580145009529917539103139794837916779124155045464682761168890856376787215747552447886734197249293232477682379299223143991913821345982204589535727495140327129926034780180010141150635430344298898632466778578669308079732724337051578319510625068642664012856875811651749581014768539498082807289257355264023375099739183082179184990283997896458136534233995413872183513210482464640415996595115218915205853218844928479968780242416934643171945862926495663639526210029452941144608639537786321741360298996991800412615601770001877022265326774655373049151613549952271884535521236737875689839966743788750637465338679238113916173796864010546209390813648569087526175835024758599870620981393650435231391500269588466509793412394132227639813231757453080385350603327849190382456071615211701393787545100864367707709957631941695139175734765312241184330260743753733194701416769454688165499904632344900017931677978113345804149450107046242008583180725772759658907773027786159242275164117136893093537748158130949337367333491092048969169284538440113872332862254954178836350563725619182071082190313040433347683775770591607962676513385678631770748037353955136848315449655452192961993933324066503073039905597774597416074255707928435298539962999053814865522077779751028711318826703559438803932948023762996878912294768212424555236403579325373555281249189375171879064508102239957311625765035457553143341654054756261836764473183681752485276019305916124911337816094901141172869495563783397009151922927416063857715060978684695433028214239875737049097256351376371809560222317993407870257641791881837584996448234031013317168123278298966064029304481107519028258847241315291691588684228758960190319653655991685177470507502193696328064996921809233221116923556759759654637139563158216603191469335407575913972577970690093143534561229153088829201339914636596611068784993564624126722598023822727807385933560343663286405947522701077771465995745249311356206998058337854950914386345705783699638723771399964089015198305146564448497808044852078833808892902350887446207063490236259537259427166904009276212381831464872399932930988363596806210198171544584421753325120534996738694738149735499157457139097298922726574014056332887262725074402128242653754487118115738815212714639583362583952871399668972343963418405134424032487395958913599478984870913369887284578706359167076877927706783854194207202820474829640208117856834982889073622393489782419278400729072460217303165634089784745459878632753023543231487226803488829033902492373990940293899285795008717417049735809666556925225069021263007166153861235108039033414825102707178842434907435301275344731127434887192020587894814320880177960211171040274852372583273812396628954675674936682991513328359216903312181929481344323380190789217709543030896539230438003218436475012423728502550787484891575712051265156750666882334398182853860200301363278167147965727982478072435670102163023452983081823287553596416931137029026393411663921511307947848587031036177145474215802398979531851935390540215742198942255732969399010883403968295227617429335376251458490148900973816603052885574529784378588958352443140419330781401355658340191984130827749604499390188669935751946238445258440333765557639938896309500818003881171962705928617997731515375158270233198188764349825399296538796837845923613773044629650025215669458893528790148442572171973424746397724811266103772011141592431759628639719089104580042571795057544419515783068385317330174956591610050484480258697268205915891040618875043264381510298458985888469029448436862375436287935240334258926139899831739277087165528681208341429709071144327548871429131519620932230579090982588784819161857500853668246362065551623749511765232565079725239553450832024956988407276531522487233061940415647079595193742791055023900295648364052347391986493379206153099948653898230541200154420077276762071059767598942111715203517572571111433057728342023775805406226101708501470019508634573520192831509796721894412789541684008047678539054082948300593640474261514825257012461030235283116251824514330150021839558609957012411802821127116208984279547816357381396036516038565042344538517732887047087109414801632386242370852747684163412626543601711061883152501103084652629149942581251320620731507318479999699973383395786742821435585625229146622437199479774657634423131675227252944933470188377564963481256318202006074460015525251331205201660622363106377925192262162850106476656743999972278125810549512043610241935095956760207244502367749499319170124881549397470408139661604869209113411063996997456776809008689096607251422778056335437099249421024814575882861396996542787125558233006346713976273064378612651207457221344946711658364294298425736465045277374854156126232225829034137468143405988696875740490659902323354986876212524090740734980982620068347795897442446911816331648003432696524241159474833473108138303964281481985321858412604385348060118506289635976012207932409522247578255264360170244185643107247228526371236285138796481240042732849460438288115002712060027484117660612613883823856421635647191205947399391981673835651513232398169386032035751443336214499915993165191174700312930799061200966454127625702369265960243076280922754263965354771782703852591775636282339873135109139877367621758987773393579709295956109178791944164092529596863335854280620486939477531832135165706799998824785365990596907747705302107984084216286295601465518747445923498455307700477811637820790888478491236415885885860303908892074446353785574988615034385799190415584590450426726899959944436307776739401058652607271692033531236337399436258517861728190800002691797339459357185800805764315183337636369257257810216550574590825964984231636590494058859471253322758205543915969357544353439662927980123252393234721901608624482995276575095827704059286404554369744518843367923175051055779656758856893123093555993964906425641937632049989221191762815203872160507661777444941114709402911068952069029462913530005687786392443848554674180289522993781151109543449844702013153244606321202271807162337115501940535177098320449136006479950477134355235313754754530911810381976283901052428800115477125370340439197248967861014132479443890914427172786975913620699474592875649123416621832942902637821723561470788174762508881345642626302453755129266308915341969042089290369592926326512470856110959159083419763904397024647327049400724255585471971201573700765824259400006194431932591995893452750392438625941771744840572013453825976747877556785486586139930477140652933784059806782852288987260335442219208890870347309484982791611376692315981337172188402430616755664735054503025309297426215402566463723608412547923450726891461094625720741890419617998529496985819830696995410199649717051531278055743559130861231823566689858456903943536260272758264027710394567065407698743021772644988819858637046375874955213113679547931768298891548382261165350450415783446343123112523039776603085191542950240984509324729272367609853504969350520234995953491591355341842157198548342554188353183864144958708774922437692004479882494620488528622075219146073724647537710500266787714422427142374878166962479816244226822309765179001532035756155163399497673424729735143959910613702706536756569961489182042744867142477454710532234187001739965531134731709491012195717212348191296371820984158407932559956348704625373845842663145722815925887202810436299604031619489997138579145058686143411024453797760676739244783996111943073680202214900767973132381078842829854817279719167760202447389735621721135643783405203973334486703957517608181696349685228555377372505710100838347702343339313200899931621475691619607998226882360205484410587420847629455279689840849437090237908100730903523265139553693661196213648217483104009367420097529112662355619728791854632547667246257210246873004973716517910174998653120597387997892587219885683224556575343351489259642443557095522685428320529495794177618015769296525773620243407777617809153218519657394873929875542864011439346643414160470066195768811830177059033519086935867797081845307208195534950765998162194268330705865962149341614290078009854892440659258392162701867332181104907761596043851340505022245399813066916852203793051823930430213526520846120031353130182732263155740247913053797527800769131832494564826681897729136330562743715228199811920229354818816683697610149975431719988348823877330335282117447652951317247961402424295825029808320812582650980980116523851594357617218433830375752125732699309648976521312942715389916026914700849563383558575559108006595619338405543934341771594848309287379461530136819033976248776367977149847614150975467649568013362390827752881596536242346121887562969228904664536412094016571082093247365013043928968949716866216073682303662140969580760336070842020255201265809932119593024670241399402914805582162460384320452266175402985690605342039065370229815122465104244520015729666099452295532403948083793391658503756927447965895695478165231217505057609582436359173842613096186963940631884689410146372474886083809093093469471701343368561130143427891297689698613921490837019538375373706776391130306318667210294419124424465548399343418942952156727454916600120657291342766282711515718256731030883448736434409040537766637275353848104259400902651078789784072515572051950283045912665459506915533009419065759469827546770249057805773983401166127642390722325458459725051356914281782882896088769528527060649113808591068739640935822732444149348176347596614055124603115025625517970509906150700370417803505506972812261967466355260510401531844096399918110319083399625285992131736380529654223612304814135887304996834444865666028739463679653753539639120971520981286827088744340821008489131830822701571640175236880265741555818855483840896028788530426765290933462715269196245671393560497820367564059251044941200716934486133471796733435687187324373386571444358967779381829782773688278527966560592774954181744660237193086366037341578107366010703360855376442555720842125010667550369365149064125147945224617228525657770344383597920938317676899983811861895884049256698959671748609892223143883887959798816138018239044414097802669843587750884247590422105489406174240933700239035087833414288849848709453741389151369199332698000902329645734000218148691037132580059647583418894268839355379543904262588846199019393498386794022037421609937546806695959081592827772834964454410770066103402908100581216564395583993744991451915689530053787666867492744438975219548663509380910308637400064323239190288588558005617698464076208387271339790967907256061410711151979044805060662089953869056609138704704728186856656107200119209954496278692422048864897928743005475026986292025467054751356862756635380171228496378418766149731500293835709139039769527782098301086599721149339295634164259427112593290462507340910611482094191412923523484124726273167481941635143261485315820662589699733862482359784281529614530760851523971726416805491240878969181482099123572096584551031397475065667240560794467446964246663725486461772828635273680878048044852042727712013107399945154858654204365762177403270929330598659247489362043138215216616779303970687396676141899264863283344885262331493453103816192711593921802316660513496648157351488569954342714170640214913944850390852470974616496819851760353957719587565728674767415510605686619655731324042618997172391378385096916570659767039005654662560379359818350648292429793952993080446811081060259902201816658586591671308324901938266595993018369748809319888304879773671567873039151542010073984775908550281138515020364656291905108653097168148258628363858356911886933169917870519853026237627766124801836294228789591207486597330946895927683312670894762455126474194200061355655147966016700276312397515341600539856992684361655383353474403447190414874349161870433645828079007916115283157475905797809989856986914642878585173954264658739765436068983124682814048727138070734808303729099482037593222595712725838422798815268337759392105759994490814018578750349677901651335695006663056777704299719347514088088816134911539895652694076498977477098828365533943951534764206840840038361847984031925659842406246231358805114844514164506005872873104877858959548380317745194463080987197224110984223290830233425848758669377671822246804231291572457451256171301801145827860554300217098314178549674874024280996283889636549545237171343276133600887665760604475478249949607292018097037888608720910510737747739843860773274659566781981359919533579100431242104697820160594851892875451684189169530399217836924515542404453158156630571697265570684986149130342957167374339043082065395605214679314620821295685876457576824747119993111326909622505452952043189554496320051982168217887643283561481896537803582505673830311533306427952621008663862359802474079965270149124503677914104279584298210074538066529915207558018996091773412992369223438820597503846313139502248809171325144963199642364481864959136503998488885877940499062060784243575492180157271091198394556045499832760674428487191165984217341119588243576473811880673523865491774125685481806723236145184203641285147574546921386385820550669137462743127974414551762390069731938576531692478803612820488762608785651474365060620884193395726488701292004528084236255518475475268568859088576632324196622093376904896438149965771494921844613233781921836612847019655494108424517192237372795899017551941575760077413130527562991763029683101732907973515344879581497108876061406221986004101124252699326865019512541530898960335273693490471227750014561208884164476465466138677638887755481389364273553610827031554909729114281665617070439837591525096466422749065032266329801113254717075031752992882993719514035316209796753044933510174571690436543204465579202480297881274116602970230262985017998013648678363568664819565628816827777612085324233071953501034821717730741577919855799475641648458008939985270112064438931406933904633894021424269376111526647749438301838049397047857773872528206943518380772693124681832276984304132059365731618791874168604130647798479573438515270925660085404808002136471644128651793588526343525913520300452374487173071471914995308630341596948247551406847412172011636528574506682909195929534866320017476488655984317420380434262480702090989383844149999018926289861960480142968344489674384340391268581126286184351582349342918484620403160763535722796765449223271006761661938929001509325461913914714164461808803220077643903383328016683641526374712080788881291155943930546037581458879197575042483144515286596408023545144669961688957226896301824447524485888124659697910486539901316983191130912373730123506822497014531366995983489930717497170497669555631778890265732777240720518414298539388574669999992488983013724624022092248393215427549027534467996339487764790704571377288636210566767607713194828888639266480380661544891203347901139395781243037771318413155716397909307357324554743192413840848479701832073029453289755422791924931404627508197251952961871420534020251884644569319384886224614430649188210485827178267916544549726572551596362576001727202931537059199501349562072228492060397278256694496795712525594645340486750101223018654722085561179932171437298515723363082928629225967722407126299693585749210536146809252866215346871236419221951236565573683702129089669565052421842351852361365812574251755911650253925753821622480434916352240559558417826599913127245646475267963991624983960749628565165344875105305829977563958036046989356918493208863314597041753699009095561738323002124393320880582341614003324523305931898967326637092154195274570146205454668924594955464429870777106260778806798880976157780605418425662989432053160171478960559022436459230553352190465780158650835476251117247602590266251133239134149364466242224817286774836516929854436094704705369129525812713666823868959903210389386028606355657762536007095242855038948420178823807019104003672290723630616168591015428204484529968724371916003247257728089369410565956451692722591588444999582990167614741507431181636459412764307823935551489393191679709650671759756220138666840721510225311738089859188512231900641158508733646534465673359412742390975463120121914511226592778247662905836776785222725448598665140072848613384897615189832460203640866600357369314876201124288617277054479634949336825150801606011973715826362423401866570122903941020740198828377466245172546535059683015106264170169540664495323239060859404985198235421760538560351922381396281910539006722853124564396493251482939958034779541728580871673562678786708904338859808517537877718753382154881076615507235035245208664356671728951505491456242493115793732903655277392893109471913716759951776676221523865509094733655554103010287362386830666583340739683801232622961689175773875695432583514529474205687382864897471616476099148634576834953128955189300276491114580895879693194847429271005791396114396772252292711523351619796726928758223678145143106458458036465503280236231745905183162153306882481929383069074401505276021764844200545914044848478476086063546091363319948211660625701379557502283887959274474713186640938701615355586830530735120125755679809809986984631749737124782195452306208743807709024718552253143358680374466588220433060208843236133805581765520849470722324121008635784751071162362243306306290476778157105121353350259717064970980799538161027117898684119707148198354022619979451656466995645487734464725728840042357382903901671540716035418762024499555561325208420064783522932527314037765096800960243853787928375108838097848714901082807747031282911249028763125406346794039060958959879694864502409326266362781517329742824236578837674377032376719858032908492816951659984171739467855235394493650896449938856032948836560226326785280754581070186674447073675709093339301476764584529316982056430315377070987829610037097863727502113277451297600097899698320677813079705281549478062685220108691123889207616290160562411852845615359595097551525806759539995009733125735653177360233304840672910927495045182466064821775471956754656475199392094052670325878900123107723961556472490791871067688520970132526760016965608841085107127067068898339532212986089344062926870346284676926480437822061543910673238673122953267659008283336167671446094944419357387822969640727325283975766929351475305317323418448727927324981176267087880256682622216052871610316140998639719017523194981423145103312178265989606146214376828057049187251261104416875657545683923094873346510463355506657213514064976380725074109537157472246419542877366091111834060957542388101343825616216698423177543043337698191800212917312232180176972047827490406865614020162954666698297338336996039150217871037006397418007063276717822471924045757944924301455014436834087103779540971383905652797990907838059239305650290328012136983016656882099679283577363617119159890815741376385153005547834559341507208751382029187878908373874520829749638512300328051479726960373481542537320036388384345760150059711505853682195357828229672881930619303760851317432495791235108800624352136005818444738385785083973608920702401241161898539212563390368325126857418980653242274309207432594294180846233089828815985370337085451457746493497784602420792343870671728469891626654333997194112093063451431310409779669235842987616429351078278067703909027667384868163264826856736285755585495969493180815925602712412690482093369883559105864381859690880108718866173233298591490759277285163301396978493182247751376113779266382254624718053262410202478593174045496578430738969270681742692233566453950149343894035221958502971032181618654518100104532240564230428243765023195469745600647522988606157065385336239356193408108032032548540530274847438874293969352246197268531589748920472130966906091461899479932536537258225713577969140025010020140128704509446487426243035665080522108845048857872018366057900141279803104644686565003597519782006618610464261144026174626358799696954927927699354710555964122704382664022260020416750561403103747588928919704390126537916426938637573655970597621875751617520764981135973485970130466932365724663785374700178724427305870406232605656044481747994722140232417531768668652714165429211495200804626313228333628947173004122214441764808491115437315480262923925433655745761874041491498052265010960497786783470211073168998171299872439164646684344490627360692403073671650196715503667169887335312938948656530831358440970389548860186671793433222655855584131611442111094534819492173744126668023814594318294879984130266824923081285441388076936902700898503171338635385654926723260363974050236955173041835580523151687166233327432108378787146055351255993502671455386222364385927309568953054153197204218556586018094694772726983663689763770703318817522974563048538602411789376804231421860637451952576481713662929228955275590842549467540401400506213878314196374295997737982958126792180470734144958552411041079743034676686407992192220743462817751734895795497571549207063056290829412834550070240908563036961088442441912766207362882020092802337441172459986958436623059639624823157134525976176834744058299842970855028615735387536653745379488895728152783503834286938123320356694740522347381429817037224319970290732437988556701153473952201280497805875531797133208429821699194152062085044911041504001302496837059012214245122056333710236586816086171864775209676568216547052357109797080104744796328512922744294439749153734960663356238292237631658751660535202366460858639983370769167462551460846116291694278485054197122050974953893123926115027465481377394575565771224634274847142212758436026267698198640995234012990379909439979651110561072889670667361127540533733917728826368480641865462924627931904401286134865808598415032687264754380579568220672309640352152351981126810247744670386699739059322066048741580722709486053871281527013818599353658997197080976811894600326076864220053541166457347742621585498907971529285631478295836799902691788504955687478524367455931405927099176540672140633985305436347833557084553683176594999258870355937527320697499420815161951944970252607871892379096605459859804971287119188534081643815289167442640257878638369435743745907557995017214053761396257538064396852701006546132618761985722938264850532000763211805215909155810527066789767373566658747515371070877441656444317729267956668332450173215152650270176373100129197617297209460410154646147022497458038601517686196060909358520983489505099964475501235377214990370753070477456540709018782124842795863840863759279895572694332499856812924070243261213824801923538133244256696092660922162790158525787250568663558058048220431783603112050281310268797491151264310477662077844393763398344760233977890110392545514796701623873556942297828066273060049799229596675961141334099831614689101788423076031559896542411297981236350050730915129731330845439170330508112739762918642499985790243067793772684532370488824138819920376129127842947568437258580945994787754182701976806916036637744965423159569247414769667492184944343202563964088200163731215016835402903237369099776227115862601801459478558394907308828222004712024597516596694565517228866095241529591371675616351644631949867276238343354934791848096670473144354825547662655703347953740461105862871341027755620116046547428997584188177526261102513043645167409772430616693549242904451043741731426512646367914981700110229673982770189276470603169383044485904812044318787378260922043607550109583230102627252702452630479096702285857533751889900995328753535241190996277522269884542094645655883999054293641436960576668788124901169253965886130351098105106160705861337307933912383604871502519862302592966118416622604354908899421758190382957935972871552665436337313471387164680597486940374399817693697801908112631219150486002708591393032712705786260510446431168983726988079674123910536315915567443677487732750168392652023607452541106314927747602635450595500902001191449510732442829734993835268130670716412240050908466415056938680204522241037198252337121286313445701744404341468880824291178135511100228214088888871183180903847528030230463343262875818420604347246769955698705985716550929940599026718004260384659274853119107511791621548924851847017010814830941862556404559621366442876932699515976593933796907181021231645042965523985937007687578788318159863950743138066235306654551666325323627558593228781960417944905931668489524079304710223095745842575774740740175587465100653156092559481607976857282482020057601940450505929375453727026812319252502699631477444469116630733956129859123177867470617284751684208790056780129604959619482104705311418171590412901688442674285663950950231025388618524931085975631615954084300845379808797599272312744951490573701501929982294722524768846535915727884103589556999928099789301595641456485587893534957276732104206806675764095808654538265566918151286003987777420755259876431955694065152081799425546426737728061650486281022995298953226710879351555798355092147803526661739321007065171508981604820657564526677435735066348757671760532201111367750544543463728681230911556990600655893118550763881727077712673546356527030987471305160841363879799569716400811035544207666402956846430787150892944250337254335719128270550645239477463046405029471834629412902467708921583593658951970447632185568001486721585139673367211656763470941314953770758647777308495195445143267814295612122128257047514992969944127675024156761999282430829517430800490112198996429058113966307777326721639525008598283722633677767472897939073569277722013180711072740184696218908748228058315187839282445170889026830363487658986595225038931462750480212677540103666803199370017438654663257327441172999054189233503531813457402928453793051080415672728462063788195837832119188000690180772555155258625794941885164896907942688209185035651286900554748447755296636484279167284528678463092561430796619704772269168047828054925612201841141444188444927020905098431484522443730577654621866241112200190137827549487667475941681240567845932990477442603086979757605419725020829043926369852956279737810374693515110590088157588807123938137792295016869897520121302746898324869789786831828044102152867801693816420269470700846774191209656241452972049216610864433648450773963346576316251033132997482050408077384868835661030602136231661300337446504229891379706291919886230259447955318413040018306502291143798950221607578876314112392453047009915769004615509244396633285858434163837162570539116214658857012957283964119917303203191639274619490521531073589889052203174071252528396246925689414369727976690571467203602949368780408035482532607595929797964243093105765479081820429266672561695783249179143871737461922781679847704572639987721203341369275614516308652927181606115227672452672387667625740539502755476616997128471986901476641092655065187154459044495277123165193076026520150835801477671969893802680621428191954216936378203819596722450424260406401314872843898291082797426663513216009814422409929745890915264482518570222340441260064092854530825395839136604855284766988953451297993081971791424194557595569462394267271996016108600880841457710387610159156073588734767317724354449675664032721827713518657870949823063256035667515852739517660125851214595552403012834300007433782481386966179306845966631227011590752764850582196690767820724639329348643644997465597740523505100529646157862580719433180685164262964049665250128387097011902862111332282630673153224971959480009480235256278158533912609384047810376244479289717971245001522614690901300067744853044551976061991242715598138294421048722810916211161236450714473301932656772104991099886105530762382660452458350744837070665638228390075216620146131462200088603223781627491700446615620854905406230567556589009105681233009054211499841407537444747540915343054991438538870287935784664197563787380470353439603863958461972497925690624554539117630087132325555511662000345266059373869763500928437319704506432329452657659745714746691731021463414247158962206862977016210117035310283680046222753599742292988715419027961546485746054799782908502541854139484653367993995946103702054657108546177252207205120288802554861330328406274970134534978972325545335242298644745158747054390855399275822435811509466910528686698382895474611777620332521192734290210556861335235195122778682806619340982027849482861257050555292273088796017668009738061617935605333659123745626071191531665857830079755810858070051954406908083602925322761271900909908824929951661583285835962468727788971303887199677722440487935509009816725897893572768971076287954190038750380495822992973563745568787296697642714252533112950318589222219450059263434810342600297125582870382419473961295185505101153489294075130430500661124077686271510347996451093836132717194734038461279085971670666957103403954271013559321286743708132847869694496972057999624154385070088561908956888661938802231471448221404049955191406655303427813680460251865039822778671443650772906766414804947503848204156975266221860598696676983641498153876996080480011051963092030300350739602017633308223056610777904037196687458457919844273475979732070025285771785152881132127507511756406973866717718104460972371294497114841509980000597671118800984537324024946111099032553127348241307138550076407677372398840142505280682287639656248791756519440056766434551629532324039361001669154241123720062212001530772412878011320173589658836542873093354538604136125631504791780249407792335452333258412226048074057487625731091534236670155051781818024174790821198894695718229222092459118884539487031500869017688625152069957607815028518107414495535708260495394018324700242380987435295522732154997311041599525121648406620213456971628277556377312148969280765192840166711889569517000601281083614418383365195910435015296131560113551061073277944875038988844090122807881047975503051363199465357897030372277555668163835499049389385908922880776846913964412084158203294483968258513844059666817975898832577717912241815188670612836598485166310780966520145149598784499561238214741262483461601022949688289756098934567064698975093147472782331057753075138093384187848588326563108070048004231732050525060658924549210810597528261767703205229094828841540366017302407976403920796584063770747674228378389897590213732791256224222894166392119393282620963856321275161244846019177634695613206000134956508289271924135901053643058013900014064018301800962813816363582284371920877325500085681527365912740050096079326812989977391830434385751298294706133203692411020485609288958856642215303862984772619172933447401712211381764164837390675305527223599262697232031447622903692514766175347479915956051731370431480974583942857968959867514294240724941906148821470966673409888559801537273022838557579816804244643433179323278415309442389847651123990482059339062182339596647628030661035774715434714202094696685189295966014232613834307057840739418408692502889653668297656963432059448136500979687921746413084509990127922130596506770832917757871153109155603897487910656561864284274239047845265172386940277214745296653618636006877930940387297213244806326868900535031651685402673738429160279558933797408516508651799357615301944468815787392465549459621926509113530435959390338367929848353116476361636158722720458238510189817001287052812212505698879600380752355849962614160807071925024093541438880078429790143885367712640544308944418812540926545816518690941231959715247513766112301522225377766207033148103825059254852868133119720940925096588480658037368146181394748707966095315178670058402270129470707274007003592080543278203278592429036339804190013511646892642339919742842335028542359277026992778403335561190336259221891833123039349019512592129856193448600721514662596743692171329741905619465788881906798544986880577139977351010150281123734954647410428136855366208141214398173506770858208483791460115363212709815912017427523898438618237917793544979620384916884941109732741834442372886687991967908471804231987642612732308863674342920918699263927757058735228042950016076671895816313378606956273963111591835241412723827633110476586775327111495633238969985830299453079679811705462825033269988107008508077879078235768515222557540396388961875237768835957928301824714893954873358589096695010092986993343349706419652389663908058202519178407890266028379905355604609074888099205648941118224633055265090893225150526078611813624452026343555132170384964075747587544887375581554433488015688544166379555471188153331770191717836987548078028970125831242069275076263479083242820325166858159281022220216654730105521927463928307196510631073596477338303291499866276011844719177616726461045210285188228440204627860837159859680684871954359367518042788136539418252487780065612643019484986380748976904300677604684417183223111457241911376228671637017449390996742085389882101340304336158674947868056692575229649255484217073873529890482415097441056849176745650662811402888364056567941861750855409346189222100514166060392768502918944811390845867510870441376746914303582156595617976517738512438537437404537284560669211425536596825343300236174103538526775901775086617502439861183236853922774189052169553511478394908806609289906311221278430493540843295910563827380896624046776992411704008142455442872515126227337726898343347979302195809560252218923966681447058669599054925100026611971302716636929139014391817424834531912500376443619915235866318663964815757634220145970397170626679426682480236967951139772782873741220413042338503496487840463787432581703974502442693128150691604403413395210170857093263670265932231170253714814518024952078633918388881312331943835196150389867148043939295301854469651553812644803951539843909854245002136817883006136613355854312855132368805791142255634523964579459629410012637470601040675033686733421998662161284560819981673382231725385014235675614449549047543580222985237035576173503400547543153037135307848316924270804367949327571300602895030008107414050864824075686783381974583504775797757017687107586744295777403262369351932356276592939164125287621687006073134992894286931580426903137051335931414203117509940997430786636909611960778942166543895414075435683855554898680409189858720989964559042532641640124851198131299999263317700537828046935465655165486995204659165105675011283146075742910322537671037121886292062387837084035849695224316168881481225080631273571559532499034049400655716127842365053024972544186026536970510171332137056048667174634389650419710909933749483458389641055404726231286993073654559794705758375697042732117942476967501776511180863916939233068962654937492850197364461009319777226334468216188874767238024114135437373166314239039538894693684738654412521058797993653921993955550131594637564730697160370666200081327431188679552387017799103006867975613305833950565269139930350266155307384515272206737040230655078751806835952411387630111581349361783553725243620862591264174418432752315184186898145859925257540658606210169236043007297620190516409260742889765786775339898914540619603821359720283892517611974117200529585036777408778027729628804653636475777092726332734338271771656929933644842753239873817416678007264391470294415861345204312649023491326508733186337069220405123007238499475438175358568950317170693430489129571125385007497675102823785113810401175105889633679799950718389068588908992229381171617610025154844742457639819387912791205983984628900018826654709022011597052798402633236475903992473220458753586398185332985403132846606278426810867039144358432737800390371753713102131941190524149416457799147870442930069024561158916408856489427958171344464550966728282953744143510403041108578882008524202563679028925430909316542651595799502459571297062373060895503103140272726146384070136555797940306551852275777843905815424039273480368279820136744614314008380322193661834273920705332085250218388355413404939464729748006449167887349032312604311779303845632689116580706713287283651957675959662639795374477628472629429758068557103542484921389003233027301110321910661269110919994857588447040625058022729981954644733673279673674363872503745420047272259065662213390361199839460144001824176952830525641001939667997972260689786492783032864498006284525094349438384305251646468435316776648686625890424813123595661829867849223481402902734942695172999171988022646874827012344984913238172360128267618011689993062990448071087502427147394138068597614882802849632975707162457774131143624009315745967599960703091441930852717645335983742945862441831151133658954424402609825176676645218522820329951042605974984833644982956472908452647079482893523033938631032744973492083595468131203507249748845707784854358726972725342744563565734757636662769120807752977073676673420566278946746342935191912290460467226217748540263496464021729601773925270867790857544582404491994982337369148013864135967250022276693410116316205731186762486892180875530437537415230277268760872976194986433929541354962545070231191642196287386351252681397167606868489763166493502277184816914171310591572963394186486722963596397649779161523777454212008634640128187680419927187801489823465808000016603843817845392983945227100303839073631887560924978239258810728596891627610195514097170019026915330376776006262516004643458185196343475897839219441557279438401833654651825640501471178370543196202506597054375281695716723734564393924669349365384054560467479602844808220450677000502283794696179014893168097818150929759323955025498224844264595549918233745719082049556913150639611501158008073414725736633537344448076463285337404580582502340061516511292264980144846686123044214167466553913818758542899769285415880565479363854051572977109372861368450745144368886998463506681801999630369505263616690209694893836975974538279265029998449447489833242387519193437225253932245442681037394809176095027619310390132347112221229948135571281894795644038138168371701748753744665073704680497232981631423925144362908007912753787119716567248921492255500181964445534527050482874773219814066710114168606269001829918159241540234481459149583675548880416797848790063951974993143511122028553608164582297855415486238058987673528427764136139463583249828322212121900423963213405781839005508067198231117640222759982032089913031910300385878086134596048183324687862865711752444593753099511082905723275759728193165597998427601187489150128731253706028831751233737467177716966550366277764224083871158369566698394567271149409379758160983160226725616881158367383326762647864646114619026868486201651710945583604529329736955344446872096256586028241417479957698857991267521203944925186897066276262662801217856593597057884795640259666303434118078188387215001846804324190195634004917644864540291416393992016428667549055035135731811002193000041780613561128906168576925921290122730663422347160313465917793945524154494935135892320820072090252008449409390700283743038473972899585294843168185352105977890839982650706650322061131396269378666032751232646031483800888013910911364816583085577228300337779608276993743338714316445136404477546891206660701062214127012149353986241447956168813319376957722362012947175454614331134562389112059307608368394404921910211704865218475607785554895413956638868224252812700452568397637521301416056191173473670862940504371821416554628914292551326820272906633121692463361455008928254958082147183670687505039721604583646244882550427904040855370832415579207480310145742631026187370345191794740607270447549333844061482164889774300664911615673241498222338051315982126386688553060093000554792750797927015800810366277231830001967507965371206776272094923779486179965196680382725944708692537902981164180202472747218547427531504985160381654540037841404986986702043185910501526200273080629388305099888063724101820114635557153516919877209869790553980004845695929464222359460009190047241245760915611952627598334068453244872962287282505032636475058382295014426937567443968000801446892215746622101480178541359328615224994881037288062583376708000617580564137412271324256278230574986363591790423627589306199846885807542841498193975619437793289015876116989162430722143972991470618847694670333725324471449292780516357137890452336054717654537567455463720965712664805633067090349783829334816637559124944583907841948528734648346111735730117900181497411894199478221178014254949111609075688008156816889242253362259806072280101543462959637563626470472441964908194910685294631678563506017943998420214536629158924010077515748168610601777426559144487553641724701695989707346332505475356274505125370195540268558521834385974716972653453995444789047504058054416837043082564859917148896420700235509238401626050201490308482435813313234042326340443988175785013315368888401448076746517630076648730401290005278843450364391527135986529334839038164890955385095465859504482252389254870324962849780438084097885045118604018918683530337101812769850565817714424296160137582266243999065436428122062959275712826587373103656230639575414766490810509048330891351488101131184832187066446986581257650008136870533656059076921068077793744715365862899473720176818893308747617219467172419999122582356156976365027897507708899501051498108926788200137366321092883470879103664155617252315704724760221404209285603451875775160379770636520756056942925311369183889426752839495245544516668714009101191789818583881105141166305110415522307440251619567947368174454478260783615833908310053628449874087671508567240679408314950793171978351752849871491917899343651668971714730496796536148940868380659776659813475013955278746347795858119895228762741950346201983874065329433317376696378318013392394955059497033645353286161915853334307302159121185628988244752367135384460182311539804743604664603040954239417370950543069053710411762556933189568056187725913253563671433644680000616080101475837906456712419707064089632570042337516088849629661954670294510518894482828441177514304301464362190864761253125665483282550833746678243864635981994776277779681098665949617838171924511399923615288998122746211483888898787586746151948720900455557430742483567150721482719610427368178378875521527657177200067991566730503142528718163695568549495488727980116182536135062729355362117822086885865114608629539732359638011509213196456306784765711671149898240899936665645383763732167193222265400517525767377611135800357272718773278350760255083965993425943515341979973376440254373389739494156293659914574317357167581701953865002652844893297913459714500907238322201712481468038084770255853111066145256305727117638114166429311686529277517634061389515524050369021415494556947429376747846178495830235094685383807731345219385376196262568680998603308333009594685673513875409204630097160880000594454395214435884034299996882527479727277606058228567483682328632602889292432619891701791387101564011282464459738170148703571130225378504201881316090334057039399398298393231748694335009179174707416254406945305428382950080102760813130301421736138746364418936671059975992242696096089739606713485356286472991365152911604317386218747994340598315092708729367906673222540198304435010467550194776827919044769191129168311535090800498244841904904981721278250709569887359094858412812865565760282403190685212250590817437195972179795666192460348763416418534429517810460401366033270839084987161729958045768957460151587923637339666398409556121977890314781655845011429506437148989347467688185374078386772431861668395172758539846598119614988958568881607953508629714619114577744890587097321894910087974056564301949569739804151102939185867092839215499775651980538841293412651559625082403687223416487081035169678506764015552048814047654806580112569864849912262980444909354947909822940952417688777383451211276537272259190433828047837149866317637440784818762717154328864225345254782305430005687966671540829400000993337777864464893487139133075885488295200372015014671223418577431233454972217954458552233615276393744026428654862839996664109639147291040599674196788795006091021235829414869305351359340135766252797460907189540044112644224996846981799781925228093749595295282372413765387278191007756344955424240534284415043854500568469472386590933239067125456411838847358252610630249748746602273620184477259529689427025561847205907062048693587925075785967115924071541203625787437752229546530932065482740565199069303295951985097401667166412984408351509748074076922375208400309404435101230485686690452713630284032839484807444491118511662231969819122737044834468840216958427371452141442030669552443226596120902108155843437531634036546262330360695251334945867576531021134160742520993558536234608779556282100139943019270713677134945391625122607292247915160991959230988843535922959285940066017767460081133482181910507172193604517487178798884414573206397568255216705609772999201375533647536911414350008659921223275778206767471128602405068311925798006803095663212107906147306602467803673270331659013956738129610937265509267301242320747161173211464771248294921640870015589286247249863974837182606145368748699670425368685738435962936611209130837049547348503789352976513758064310262362137837816857798563306345430747153960437110190138834080579283875341772394330474276268170971334475294738950691047320833849701829026520936298462114918932275426289401100290777919254044862139027968220866331060845665429617955746831831815037357222231093711816700229135785176572055698394852890747152800514202695829331542410594089858705970544562923729173267628602026981064087702075988586211235735378788492098244970240144869123394761466443661451096546596009637660341455989824354663361856190668908710785652972771058671102710051184417996517558945302274267903900541912783697636034415794779645413834893264377372206568081455468207383152584946226732687523084676395783235390043168870336640338222928982699007053736282775326812243056066692842413614035742468620949696333275711513710218746014366003854691267130635660947990778923835350967273487935663017839116762055715263798606408321980981196250913083417810108581702678734281455470106541291192197605436795908057604420284152408266371219782237169010905393050979643737799396953860654380634011757497498258341104102029853333787517366010702751096416981068327608106543382476833644463609234721941787855259716740455056891207336151020528715998071328212805451947958186259025227995347218506399380853843027226751726929623904663286375511931701696328739360154426272250439990072792639815350093011754258723255267531770266716846945346422222479941376128062833030338290190199075504588495229993301992446650592376210589626110890129919684392208383120594350690735236937443192219578876916720641299408010634221118240202384226134735458036133118669630488952125610809860042687895547370819700062395918351526593153597878731517328122926095567900446236818588105009075856337876997609534215112512130846770128504690628225838207527194439833280696745434657164676273146425160223131571713313473414534956560092086011871430699152277657274505026847076090339208180544606287629484708051040879691547841717666982338295040642191080415288632062070466000444085670130230184766696285818185139080899081214077285648844449765524633425698355988609193194887131102772946798484287850491456536058126679461687020466545185745933074885701971833768261110810223762253152658315171108235133375573923416559005039647939934122693308977157940303309706148799103813422382423376611440783734335206944815666679144866974121726261085213200515438132486895410921665264988968686275846630155739904997402497990559484415322186475808908907972087291372622561615554240471299029018874447273766089184684705170179605494053620619590140339724202617812556922315112741051351994105060278201858947144328540250734026488442485930054600163579659555442142913770854634998328878775351021036848662243352905830568270534261178384917685182265321127324998348901226255541838791803063466085606605003423897051617883866448698287880214594130073622065006910777935576123676800720253478104564573108905031928965519644042299970338419948466645624030980959645636347807412641398947322366665426351128821229914682833391962383540687546558950779633627511486150266451943680009717198120647701023361422450900849349675169448096791641481454466325471375716697552812951461107682288230578388551240744361769746532782537851949642495483696681698949877098954239968658096667468130532994358545944521812335151836028574259857680549921390380542113621383576313619817998090387886737899672539737752781752697398952476937736239986959393596850938795676183050847132963471548962523438454389900786197753596290022406135777917550225922793026202955076129110498336127646265195368707770718747635022279730065605887037686176355829042579284562969704229723542372398339086541652418743418713614196852616066357778158381202750219560779010368610234653402694417829912465847879253132036115936646750350778490007944145314531265935310649742437440003647952040419494193712693375982825931583708640092570843382867389156776011222732266408389429817263871000427800699581897238679509827940449615804833773102993652984624303001593808753350315672154231715725752531160138028270922362068317463094632407040032277946674160388210312968597428385186606428113570884731758516561029545961204625156371958246571649047009739367166170745816411438190738641976929588424156322866851787096455744569937804745459240608593390450118455550042794658065050450980960309152137341538374382704874728767957371413649613175921394962522455951298907657437323824819601883973779236391803943732315416555473373532043915492140195376281458148989606850142233871721367563625632703671361559332230638852603852804721670488454092100752824078940674458951391304894789946536666075561855134837049363129946834275262531405863993352126249926229924697073466329259847573793933184785203738899377474220299431570037590429023844971523592506104550538366762975614353617266263908977244597900709738569397006390258746321399294703440191255208231610274261372008896069626905320470219631855661489654263263247664050591098606504239693816329878317351245814509302441424980135891527051652719679567223845225308956127841159594514531055298872488097764681458353091815695902786099543576998383466202771934029947888088589614328778730919904577218694615658588070753893814090266319086405770327807653882347528143706557337804856361347109286174487825945975565848933358277324201787075076001448825976832399087104447744468271089899706926582494756404474803034517726685523315684907767834178983146400089431790729794818749555168568452920291422161955817033052256405392322675371220090246560604494837166204422011896654590372402289149811143508310536975791644616076127542081455471157406861211156799261844289993352521089845435527125674227393669535631468009340068913479426961559359196597332481077329525757504263056010534821786736621468384358440328102675459589354519466698759966388669467891021550614140074783850374524355877178702521974303089550857645100377384343192946269965370032126354829955290217697888153442743553080651974871895453196441545571085568155384107335824481982435242350722362220800278705711214884730444065785478294309735758015866117135912436680365064943630598717395327233804859863740467833994862847664836554497079444226010614349480031381448479411591728856141774439436196369980274558754134097167547850703267807275066564966811565164710641090399089783827755369733588024519307169290875918340281986764467098628206611271198437212073025172389789282297790072817101183221163172030010291182058876811239864782258555185821858333458307803920765059044957871356576496919891318059230781723113617556613087304437696439190805262574703031537758827466387062702554246906603141203136912005968794432540560121398200512526817657027726700014751064588487473159866322422626557931992091372650030097347489700722554511092122482906649379330868441850787004640335189659551531984160375899625925363768131334635436304149974249737014200514216464126459400199221446309222567231037568976298947086404968034837039033804763812171473190717884274131389946453084349932813335848904549183931374747373680536023477978585844901797217121370040697129405450118406240982005395133429986186619173539472549114271249138493320860773552581319661215016673975693314346900175562623571731943006795536843996472465069311116341774673019958160027713242226101212261821808518503064982503380251902125592473300591205099211760845776056194722888914704245614126655873969646742892802724500847767026180130817477255121273024745063008470493511640534015238964439090934310619713525653087091678802139939390324691856974031395257490132521821387518344331586007664037536199857632323883177977181475082111724001459044794910714918335650270852505778017126346312304753890283848425187127716032943495199978072529990371532955292264974253911155704715011758491590282383817249926901422589286550858725290933844275850176160208226261456664932471265434600138461364421874964274765574519948065597763830032062327778564178389626243146410084435851403069512171770329367052436444961292606500419772904577483832110271133094625076576694315559734488089137385286644749994081955245786062628894297554236734250280469001917667259090816637437399375904940824562850445911717996859434330028380413671145727025130085297272058754992656226932089320638711299883109962703061107393397133908927497725684840989715779575391035061429882083201816025979456218061922897525715856489742552529248690258469364028443822170617520257313335354904986851284082758532133614985484343230321285693581244091581550325619864452978227316356230006443800312745212466279460658165222348545397866337771186734778671624070240247743704355189740231642637851165848868850032428359653405861659514976290279089551916100358787718084287217213836562873582764028072840561154785018256369758325212400892738423640062444929298510800567616846862376873996216970960579494305869535504944049824672220466559341761013037663569631159743096953774741331062042899947922424455931190982763932703143286092760263505128598502340079386845355561257894950821684401077603530974897896827451324071733688111530431858947423417614325129020189358440523934857236192072465658302297390290279373703829029358001110195897639573533723090585919450486783995943635019335677412708321012758932645655289652271006397421556494913045944157008966581361335458085302394893264188844915395894558692327061263494167865667961650317517163057556845092826721918010003917480112835859747468558426838203610999320695020317213510465822794195253949084321125068460702232569317735331021044977330908335192426633511178549053313482326008600053582210431863724836041873083850552375588514182538668696950904328223451389061601532181936368073490357242830040213805169827268722712169504864854145819717593260125881404239409775548907726006711598684951859125734872361627677567222539151911827873620417416735630251434194482693496487871815445475028901068552984696626543151204244722637474014422006382737323015466265957910957227038434506462597530913729971810207348903610658407046803918874473708651903949107611940456027997968221728206148856100848858800819882423545405757728548803224158758806023168401907217991727559386328067710908113388266589473755272300439122637379562533251222174786445416166718124579183482701068013223233167689585614904180924379869338592407810563627844357686904809305660290976249979341404278238274085285293959441410230319668148145524699040422559298270361854167794088102837085383563680619795385283431676085545180318877850758215488091548893455565910962969640910260927454018111530042151654701315521462636754338907815928875927048942312473595748910905348209312550165657978533395032968057722501430132462715785365125320274487644516630754639334111260821066671470495054864905901860590481571370061391818166458306028955256705593806587253264324954779385896922569243197450892075574934958327195164753811385094181168210000351991650399214907387151834656014675557131094894692713766497471498521030657088997672520138512484141103976873439250132971355703455841649834859880781724610022732458966350267570295370900182148661792414345977490331219530584519192325021023342491372935201677967436455591894800007019178377314352007876596415532853861100461008821443679599661765891642247275087905638094373294813154464765950861639327713305127016748633483543686116905637051521234088051588930429179503306043559101368083781559031483143149064203511741535064357756635881043544985530626507155059539838796474072100990506179890641548633697194069986345590667721282816169079453376013972207111077391369058358279267029571428382297811446904761752062053726266816442958207255092853048837004804586381127456988612519014004426038434859590683768101945585246533676486124576052193946390055297640647967223627293307601367031219011667870496888669876451280836972557984196177973129175691479519591709526021171070150368534468187458795977273351173851062885954348778595897753166808345618191744700433704620547707715239772348879200806759957640280840925380939539824695377727627806718024951230798496543552867705564863541922459670885114616126738498284463751307771842968106691958153894937255196750040528207377903909128861649326486926971083984919282519368805433784465755180698506700858941132637992467984227350412817895291395350719931388152913538946525513995215403204523434623980894406246151840635805570622826302010539323655411464859378212131942804600105168498650298761842003802660931129561601479538751125190459928672998792196545877369125444982406696378722992079543863538619897212927719194443270079309503747780099475935454434781379040803752034164469244452445793073729969052347875373775981286445303567581186057983819562687524523307126148578779655772600939998518218867207314242604435845704690785883274450918503027948608913748257362026244340945059359599448407980894746411536174567145530917594382638890648817719289793225168322539135230876483991399693029979286269429548142018300532487309975739791490488274865563231649032515668383575334846857022929278430355581987937803348372385350825468039423389359166976299252497870370639590380277588632480015811645659007160615298903112441613320355972516972747360775739776687511530098581995089024082542330370863210670618669019669044494755418557598557324438249964884744959489450416370518444581201531125160597532181059897674110144657111191089989415238172618824839131402559544817054932634098743915326544573797756376324250799056873580471527343864963031908937688418319026547027022034115294362751389185703989841606010840105107873777524396340624912250232276901044020260330933900917354931194103340587224539759774251640524514067860322534400826863230967415814107940370072012468959526924754031257923156911803633996976162066646572940199520824785269650662262386658888766226976502482327228858095619844577825924861573604604552682862744518921694691725860740631809653966173998323709951814172746007489676244164900597557882126718799532162846130047017672088482291791079345472887175130494127196090239957541835679260207570890297899548305567710212318555210709375521936726659342435456481674179128228217039041154003559668437379647029756501885632429868244860970461743967758960427090133113901416666009627378075587589259843523677812386948519563202812199081550007869780680385072057529743927404099206200077279400484614304373597710654880276599236706501300665845046329972654232305310792794220291203363123892665618065227037511531086704873202909371616964857672063774234758981822495355189817505465310147180367968499814496107838952729357100534446267023764827357265586144903710002888423199698572290519265362419934852164388688210160757006091767631011024737950694573250150576083102227064163953146920919223584961827321857251296951625292492250289858896025335968862111360423379623864352234089311255376755002362805237910308483547365862443327992390834298926383007986992475976123172653835044774283491537817762069957777265129449535496395581745562687087374579348041106486929738544958631185739280680970224486429548581522077989950224253760795591848667739088311348784083745221844194709457404600224642114359324061725540552682392007819498159957456144317371865000266865882843106417710759239292000044263639960013558395695005247229653810144357840052941896665729556410256939832653826134090839621773651516552739169337684396632021592004612330192187288687469640385113573191246995573308967326225394074659638387485201217088087872193689602495732692185835868237977950518426883245393027895985243887669880181402340385887895048034384401666581334435379964178853453169885103372838039432961202922541156664593294795741443858537751070324241698390498259679829300732626910957048208589792044149764788152991326381882465614673064497618855392539246243375748858944256044885341151820976681087341303420781479322773910898690847536784570868542590980059455755465229671428828558209918286900974406121527313398368683796488691755173260855805324022643860199399407162249132224772028582889187245563047824085035937481769722110636907097014436546630818742779106247209959656260861741410200066468639766367369104397032644419671674506820315336851002550189178322253159677966772910148986080361005200744985574563075276155434449276814678026145364709673872219274153567691104797165279192421455603667018259229142358406425908636711027088483745267009468905935309192226855568432647905509752205530076690450664838280128772029436104489590253317285419958354008960161405181434944287868730028937375801095294157230301717852796176662854199788334776431568600897191889758250554975996764368715871662712943854117969111284314447908964553341382825991183156775529156116372014510988945873437499250376866888825621666337645804562190911144866338650865846872881770702446394899244281995691660163249169877853501433585241766574784868398619682945842951300451391090784168864992927104282113443774070902321134844006974314908078845055608642256626287995797632154548882173095240558974846484291355951431030406821452476986116388250028153541712925724541075353683129892958121575561366144898184758785368639831383951691155842192014130705847531174986634610239581661904796135327423681638604884261704329864449843758290401791636793514736825953619328717283719673894065780535219312720587387975974248512867180929475212249903495975501540211427520968963350735820797617215338819465257823062191898230481697662103972649481995318522978351696017823821758710856768900692150561674683756863242399329935252180488401502139279331640255229325720069337056429264668743288533326293435721893371339523981836292074819469455530278436880392277364265283758200787463828032948539680546270106020950416234963623023338125726100407113336900750606393501742124492088254940957619671962274351833925260932091888222912982009713648788249521467410165362156266239489561101961618867975531185762409586402329953528239243591350297903265946458827978822558552688509783753298465743963444404066889968779211400297743320980770161716760822230540042532495219830073901819428716603829164052598143284724177166935210212109945509359783869261236547729969460046774629619640120095751960071026665594472125687078025271603612613231979799842102187542090141252430848884114333313505649986169433895960349427859565895614367730047291751550172341610296059529702998098906410141556152808715154445643662415903724810278520885297603406389394580940885247786289958655971918992482902615160063810219016921885179648180951430855381893445055530369913417053703911320601428239647039580505969937052478631316884461218058433537287659759533331658514992724039688514878374110270424257023496273732415061988784353653940273881815145587462167836292003880259708250382811882860587748359828219577695922134897074433694202911524817370150571612637139115894918606201336697246743396532866017433354658909496349419161107602302675880397211413294412690270698033617084853373635791866184226537793125193052642627983004668383711358242404888744426736985335726978588242045928570639065696582373204760749310496121077951665238944556644846447710787322481499264041053723713188480346977466959749248988145327662638637488813147364061794724213401081827646816374470463182487992847737233912256361345890487836907436122526141597736643972619973425584201276902679578542399327901909539654332588901661848632535183217361706143754548890569692575025461615353073119217424303703357832566896736422093160604801641785864774479914101763619421784397397996878282852776478129397833083781410535238495681564886148147792997456922041649634670742773084343008166688988449251086935436363676266844362848051202039373001666796288619954379510209359664486908236392304459952906026086726058899873886695388935932546532488123528357896501996832944083626234635417085861686025612561846631325310809699966310031324867261145129148029446706276528089800899518319437536309071461743276870764254084157644978026211554973539392705061366711838466297319513625985328538977169201600243952058851815262423996334164035226106750017638580803596116856571212204035272508648898016879292864898432644626199594526879290284125518361867744746902312681287037672759772684845237761319015215693432704490191846280260020369388670889280439010818326402471153933312150577728365378604877867089672355735680749361183549221735817960096916211414990489114226814092036744832008288687114924770957250058926175546760342761048417359012899626138145946914415564724055587940971320492402707490007187700338734506032399988481240558345328494868545523965606803589698910671684878771316196037525544682006376294096221139902247165979711278276535123725093969029096013776102945952997262704183481943740535076684218833295868871432150411062808735754033980678815567136153238638615422509936432945672649567973048602250930337339722831784516825792579790799535594430430136094495782256824552483646278895115439356237460468671798260329802139678642699591809843120087292806956210927375240553981090689979736267149864346957037230139555327685648175037064773747640207024761463056290558701164084593413856078603551875221928824050247871616661922189566473240726050861848979110524540741677954642411219886571916297168552526267652998318170439193910786228632812408689222708324464931761001674892449587817426248557959313761118915190363652343975623913938992763372318354278338326463560063577137960470597907596102767250836678993729221754209647861661952639146371211409741976462213378306796135672584967256856909183965271192082559153016586575924695108737936494085364654590067942377043704182758880784164278774378576381799674041789058439344626853970840804446740465852672099396909185176475981888369383505294217985858643360665829771013378317494905925670434446523220806540438447308268329804580379718872796142229264390148639321048942472941742998108293998385393336792033557350772487532237686956595750793970643027629087468540625720307897514405600840417585988618124261257598859463756168055715183846661545742233239598833864461347291224751840438624444392158034764610220501842303518730164015884057637899272530481008265220774576913043255147316832009651431416205114460628505584447183018279039205712677194502189210348862582788712802014761250827391394509806702658257381669342714134494879025804051216601601435721232404365431767265840126499165953334459764639223383176487346388887289060987476724165554517983368795034519551969755616526969830901151045455170963776593027744451236587967487773438585846868345418479046545679561687602167177936980997554183200001326213330095793747241555287138179584858832534205539534949627342757366106026223523040697582939605754773844878519483874060938191356556637713984671508884847316868618818297260053253220696844578541602458685509446448851069925902860886793291962403569397886904333228963964548973349010474373913109648829372980370696872038124701895364173041456616758060632087754737038457365194050329265306014345818485205322663383018560809399769233416169827369767818913091522435123528045167285558835056297633509215167440788444571108488303979158882142269718644909552762302726429810616068475328980224857893397943274711869200631970328004027628616840633789938398086751057608133151992455406752694723944670847354201921548005049521530750651623359070180271660279065581996161627195773170785813101316587347199521336502715642626588973132358103819073221237817567167296144223145045013591884973296081113511690905685942706805493614948204246907716928208028781657574181434606015055744469944873305102647486094345007094957903026198675104724438681802202230137000606071206245862811567214537967540825615254128156871678393093218155597429287489419692941314205639590853003336973548474874298095059578673829783056100181522064898633468671409124220642181355331556338992969871358360084124519765446573759511250778691354762608200567312458406037510645073728605779168464539351447812659690214060890656370123170998377849949048765916600430775392825212376365472170450139521917164218914811806327703142189807481674201151250769652949517990508105151777065231589787485232164120116186736058507053304691736490683809869488321593798929881029738789591963005390876737728954280791920278648848330794037684068600349526924095285685017835118722425122871148697979167676464428858029676038218401754581691958002659457017194228895437335995427300214467664748199695360045882474484383792332832234686796495457674951845067630715508544774469693107997034994551086328984176535241937946965051268499892509869280772422178518251562361190758079939348378490040907013066944395591857421682124926909033942364678393368697486466118343746101807852792323041913563501403126483397894331792517360266235260687250027115634606657551440978032129635983039052027852128379475182798486274442697360678851761213925121365321883094216281274268238608999035821313699368171571898378737699601082685003117230107428973191501390589001305663991282115649539327437814849144473062681106365906800519197125955502299371963726411325717989916998822971104242054207667445882348261879084960476510206789867878146782607715894654788308311085676553485158628651631639366264354577396325450495368900282621505422097490301771275612281287494235077625167004352650627015847721698008717489444510560339423989084734132967891023648420529008960569649358989119528848694285526812676617185006950107701814163951843588374088922977342692140246925731352077746496069288571397105362009210032205971346459469733037441912366137795264495725764346811728876838504684177471305729139720626976490402337073620534889063892309300163109828431767615354669932852654341915221692850688881199711709488058623250337059148428652216460129419878523945368728215682519438505117308850228856039779222572160923022974903708808784636319377689883030138431924598047789240560656707978640953134951068954243496404327895850610998531853465378424862743787397587382014579369771376184871695740835395568159155615712137067234828483790233857138007266268542456536447415636598824460175561815662607998708250595923199850337726367518935509102150724976940237544003293360340891008765194082165654449152834663640084144940245936431416813072634292230126620954443940108614019965155686483471051459812109779583911635516965343034426238753568961422601603230403166307764576872895080744681827018265360991795417750452629502969377069326169907258872856850982080774186030898662162923514698681702289456544214583040212198543405319023088435417138098065037565932932671026515801374532300226157186521059611488000648627289636018111751857889302807779031357046056578807417194774222637330313549900582669635334666145011320745363482050537385310965219343832023127703085379766756119435889007483530454891985928627828208986393047263716125515082519152655465806594357487684015038484413917520462061238313700771505162653252194567227148419533531595891442627959091288826199639193157566808091339990552443283727054378597834877454305218095486277866223865423000803910263244861665008290700468020887951082920004306817534648969099715833076645849507204873583707701415128048169099559837638748737648836583875081184622854176365015674818551128909333194218691973206885243018256636673542451003370797302868907856521567538878663774535413670140228721444857945720322783236949654277642017816593424416667056208711837207780379240019298654205497478845742263655179125759197187887383066859142190319056302884983283664544892829827883208357131158851870746087341302481932182819996675558149325206594514525040199800768536182758291457188789060238191046279822530922915420118499069648709586620102916711930259484811173789225051863637629239043278797898034298782038115660488925751507575075521440642304767482679399498253594349695219979690089498996298454948966688596813316931933871786711380703254161337875216391776029632596870536382797461450518225553040412818850795651626952906127075763292900343409767810180597929772920236954687011802876993418374628696477175270877586518518181664051943578122056415322759089386626433165458738314626306054069499185633812390071219739025262154639661314640924534874532559734995462032838372492383912831819459355869439052802076627534328687483589818486034040011342495940158741807825720424460836909211733847687253511239388606028351837622675697102804951730779250594089451749275780884363154742659408651517555807265783587732871057482683362359186825415717393156870878317895787345246130538892660072529127801409965466844849959991581950326940820433897503542416441806173119119955349601324695817578522142489420555972090486194605575736984325275431327394139102770822783350417917770628578238554640746866384970182463163301206002191209381430925125874670735219280546548127858601675315959443863077791409951224350151011816387179504279834435698355796357284708256268702435257241788553417736296121348679032593847838348112895170429806157440718322954291841918983521950564599174238703736191943215129966557319773783218390163458877453694678632325134131422501025549368720567340672274308922419554470411211729263977450170623521199046508574256931036069508517592899423008475502940997000722970482558023320123002759296859845835925232177836217642164426479858697660976450068422881317257611001840918470271548900897652221058250462296578852596087523786794354573554903613690031502621341134964524261217478571248396535669238004280743148781196224530252647143907212619585261778951953866496063476662250424878719214225296119713409706635701376596141380416332824838330352035629544118863212802343707320602592785735323918357115157351183629326458217250442126435800982687886848773135256888185720424640440061153138578178101302162657742994865907165329085487598463778310586859207382896648828069112238649890101767277488987934011862869744390088795743312994342853701268379143121299253634964038178136254889067461459331517952798533455245848529957293362994078048894616366370372527572270680719461615654017619777207481575430917940231274309590201456469860849573542670375250276879234030588623088258897065193392095891421618609493947455336383574835150989862338194966660297733618483526499595539274378299280527663151104560395349364103262794027113536490000598706752875066077894231962270746908123360053471101414942495158235774910118363216495450982092064308977908316260426639764839069589136927322310486971795511559631048989632370474526054702594376865392003415366867478485529757741899658453392851224250362916651593647379523846793971530600591299612417935903658571436160288707912578105280966047892386566985392833427714914267625710083092989310604249081856910358958859937641256587553021623091707376933600335969657831472210847287299189572134360582660783411622750368904783648625092800192618855613114140332310002220803441564029862404612558541573555734277041449261111900862645036554187209465958429478178381972163525877765132336812357335088452402358283629918394227489106439464178366990623270082987684542336110298861938010182040478537320688360115131981514640815027014881251957821769700046617656681219275663991462982457328882982315275604872785660641607215724419016893293656016003651627975036180563855858324053474666894426552193241459443726369447111684253777672486443329909473958861393934257616863318958030601500397946972952084583558057507862656256541888697478650904307439455256929475395029105140475827115383845879565496506533005066930908318016992833404453078992202653313642241395767435238724695967411526356238245961249861801852840824130533067938426631815038196125343318609736109601007341439979688254602792463370316074504624022162720089664380591196430827169142348926451547517584540581259729597288186595944903274128122525231054464871728826620302397933622055035606907431113003565536825376104188233194267513777759069263178902415671698016651975493515833608702615688649216102706471838627473348589815094606905495693897860233155445546665088632431045599926394722486217531107810145483366308401261865176774757282707016915539429642604714097736168522553684065853309974818042583650975327170645321780420444877764346613709490525004582925436030302086521730891737504245149492973168000225656856923446372747378157468685480167919254723375474649666948533572500101024841253933605721888155564244702353961257876712842983679180483540329593517860225698790323720972119460308672639317249075023909251207485251260947556000378641396310380899848188688135060332438411595837227700130410883262239810439914988463825871266555803603102336133367722111667554111512653463117485301970032734794312629694222809680440702226824163876741404109420847377872757005533479536065923176413106594376458222309155653598660657196315771789484587735950029872088154493026361590830461289172619701534503837729728120785131449312472469253226418847959433085929596493348091773805356638781169976448278194160605971040063047795698896202052089317760802209141354563219817634546037403870671581492830572547810841994451186901671661465079260706176578947665096019515325308401792660896876096299559686771668912018396017916730255985300378179714714871260766233006307870017777885177423057961663549732250963590427665047234892889239734282500272410330998166419026882022925742161550707127809437231784408692479285136407894961075938235908736607395081467305324189895660542751199628131626465841018540373525410472035165244974042038882360307796337766841856257351677286033418836487048108533403749803886716274014419957987095094094159706298411625006937679455011110839541654086342857039333957394838904783561305624148702677437448490576396336210119801562844671551185550222351479550211915380580330552838803148414336167025337211967416673797891180777281672942982659505266257723926316426799739039545782512791753379344111623563843943154755088496551670886613031613623347213687214725771846885994231240719680231129441679315283693689447397082878828898936436568416819840904720211417302415388811346795915313250926523056257338981633434371448337339405866444416116930238839799349327845452493698228230336152835344875801859311018040753931416545129800134612171000762473342663958562039269821584379078222483645496818429486387625802092468497768010770284901999140249043528003135709633217670157057897663957475899304964168340336312575936291348597060389386248013011165177188395269046422418891597395813130201127843164300481692171544387473196514444337060042793949466880513656796545019845489307807922212275542880402826338736974497169806006013916803133951806443508555670468284775843543275955174397081226406640908618740622410434804554550234609413668559621937108060027344345841730171602903329396443364874524108120998694972366833538791864982365711406883373335896307524977645662802782009948606935053427926609913513066026366661833965043794086087253214195099497047835988354140492915525152944261605287836749167434455439235088898561693649666171220022860705069032856300166401664943464653997871551301629756377754144878153994337523609635363924007830237270399079983742705950193928171298901024579136540034299441986792757685628499371105605422956307086944084770134446986928119214204223491325375032306725774236464664139949337612649053238668698575103132583346568246851971793822961800293926554753240537002606752105057510277062324768232441624571590412595796336737901301272264793881554561657607958184397795738808726614911093998335431383561616111166676622423492750455798316224083556170572967517988601045923879661992645360962822069784554340471003675691998317415592745760483220872087903430547660031826791772996525790990763526199092284768885964417512519691598306379753953027606525542402591358295893650584704234398542418771701818523573716525015702137319990518598757204987060622509710588604892173983059752993660730622095969939577461377446585682832704735332538378011191969812905711968303227323124217549441426156390077633653236283888346648752110448072683188587703853942572005999843700843935610892969136511517789830881270839911209597422810923914495336215132626229042073759856364343919299895046935161582263415070513981104585655687711062257942370150235190774276858805373408474338047607608491640582263694387743537151759711727359849002140315927488076421420993678591557033052950663063198391308904995433310153797071889390128935605264011115652093394873856026017921114789552451202665909129800992080573023305786871767507942439969685040049303850079741053888940270555154173105110882454104908821387526583286318090211910383486486484741936528499598536385305009129550120479694547731631590328174802325662482130379868066838356914126037420187369416821127977174081481803195706735038756320008835476265097515357120098615366433753055499650499023916130398267606992834125467568614346178959060932186706873823528380004580261661779011288507238925403341424617580145308430366976990131374273821506834583249001738893377756843665663961947121222271497482136554580746501070740567931742761588605370018934134754231273894474697013288656105727353847967362839790905840794463127053051600560961956544624029080633667822226023699099879881629123109477541962463457205188934086113070732539798565650112650515480408232365526734385614254324295196518711858153367203533682178253064612842946164424755710750759827377852175459782116754090609418153836264278200329979355502498421801720515903759707299341610256644759701583528334562492090241307697526396639479891215346549745715114705685597222921720665730064005455287115553419678329595144242748897593404282332501645752450531433322718793470446886288621489533750023161818169260638607430265395577238914314285974084648470682270293654485896776561378528277272022841864665374399758234442821396564732474819361701533355016014408393274340001683867621950695101399891582283603049825986078702983385206759854975038865383417745139648646739895534505436332536942763047508505919836276552669055682895410258573257946954179367840588247504971844025844094226411256227198039637552393555128038461163234688801820883100002081579445588342534805347726260442623161994535331476663074339242628341779264345669121233324925259906959658001030061590332106093351950068090701547760286022623129274781622526508464138328421553593406573300659944427293162952598391484271730073604154784380894772192978923624508662933438609412030171192606758203213105089980832613911995877506406879618356048338264736690841948140777057416940461375395882062619589814099501905552209641324071515174794504393005941422865955511380696397479234820674208429050768186230942588423379505436913586960946724923361940363235214810520560141218607943448212417297151521244375836216325861138278961946762331822783475682500339331255457531166613603954354120659195017751191363102165867340089637599819928507622765092432308181352223269443151976884953869876296337459974847489978543495759726763808304945600924751705089805520237246722748594624363335894409991755464258056160813983238472057435742356208457999078074669367642640353820665290887670055935120552611906651239573081050539538051289173339886720316560545026844213368536277584945562865265769987422962077115043990350678179979833226010404499022301287615099276411249050689472339652333307014508658194242511327493382819337664762666163792925487620158673796576845272158301051602950360044780732443592687789006390824210311983363960017253514112850051655528404236581966022689033429301422750618514850423367080078928997580472623964494523475806316440016075687508083144138084350448972761372974846557124659036318890792098163460611989182033239349690030726614022873952157002146746746671204432658562274000393093196861394581162867972887186083306936509911528981432061776733385777661097493923773038009959835583793850516064819092772504173974202367540939496742491371279043694627538380500850394410107830623094511121734410347572567287454983513204795308259943754421766273471038011347064828361810102035910387785355666268931326739856502860450796380072132282791496746422039979173997488689816388157028569160299658394909786806510884727002142661784852770062518386713808672330039150973863281377895936147250135978365688286414258505230721256610424430228230946527189792963777181383122666735304855625688876635987875816548808780298952680265904538654190535304976493805731898993343294166649700711390182724165317440468027903105971341298840608892417266559448546008140568228434109831057792547189159570499588481436498633496997673593645633932634426537407547637433151238373288236591241249340132230979762573938622770598154375363490452700848598629477298576414488545285207610454587100057314896176274997517940483584761460349856084148838933302109882150808009385814397864676782136746140159902312055701069117660026632589067969958465026256883924332257969178877151560297156007845392587216504538664748220198028350637892011588057884619876250015663992921092663906593275609697018844100194896903545769643684497070304969161964417743840284100324206581156249624207068650829010247747921378050511235301989750509170128007337150685197532309373070443751419420014538806804929801591202789244010213674250619036240619760813239568762718805248747083597599304116151903036370399930584145027920622920489497848104428224157884355506849234965312966280248601382052249546779725968406252009965616862428306101027620994535300927885495514990977390755797794178482966156083364819147492024753939300440447818477286431321580144304943825514825833353270016713359076701641365598729364065923931558250351636634969128391299199236129996090810124937673123303648069965715832282730607207502556449333617117466319946774885737729008719357786161009665736748478607861093573183458291244062375866855941746290591057182080463511936542736414823991698908498038946228064828975986283961500780582003811959847376633232330750047986911631012298522865454860088260222428610170866069788590701833758265836479484043888304985561576738424516153000287511464904610932453236701676969420056275801203202745958121847845334902187652142500026796981118867130998361742953990329197044720031392452753493524707151048022647593704942356326024843710846835492178110075742431750030950550736018046015276837437684833107326871200561571698552472928455227524302124569127765477492570525302138771630330068694339537903514847860762140029017690485575803365468128444490586203348384667839436304378870248576965569840990428924398980036135475049569973031426553596437903928908409256187557695932187404500384882838096497471349043543044767539794169397972767860118779993888164330369601307898656234066082415170436239529408510667129156585082812678068642420211308916633776158563035070897993315181671844762362241052505609895209063438311511727341997534487901753599467835123082017457854878341815046030826855536039023678734645852519768161205821596630818536542234281278549081279735388345991871934062381416314752982808465600456798455345930691517702795843672159046756661827067058918168299146562280135528166542374662811301322081675091725838214634731566523656750664571149860470094427906804407614040085406712182179888004998474304636688731740889646824119840026127574486536071892475582121631913560972395291980078661333389642383122482113535668179693882187595181666357701175243274757398629461982734516618318997781592166901258178991139058002532974717818201909578734676227336261051695254274353243388425973057300918088507000860457412027570652364093585748887475469183000704877037666100628226621405471093824097618595032766723680379483500072171041783554392340274944794564304208328271285093839759010404440735637482080018812233342399377360262796259493063556265454180242237625768566719170700569845095202843455925249293879053512619677875296126686129650800761316740407050506228921548971526782978670028841016266566865179957089585351563094424124926113180330464158660872884407000532119697697774011980809505577816860358513313162738313713398212942260328140163167928570001229180168729539015940642963766331210144273745354878163972946480958610764284209893078291163892689855403086977301629164724903531632509932377599771007111337148525961978653045657404953232243613421762580172106848855444426695083718534305171522360492512748256014195809420076727776781793482765212782729440238041247952989676800717979106985552644930964368462282170449937023893736185090625726513773437714949333270079141682410450024990723035163736349197805038052502683103586745356493392059727937164050848687450927948787060326238893010930647918636792823259879400663164813475544152979368316135191287237593092494381198068220693743497977896515738090361374560234545396579275568953702112891266645475260412942849187342485588161043910432538543413403634279725655215424294093895039910467249498625691546487131708412377646530282194752014921008267566826060956554848018439330679255291690567575905184991094127805946043505857478081952597193852001096923772827520056106211051715373656598248573693021217746186778471604780689879860853026316296262731916841769428828507141883756410371758768178596109376562459034080769234356977999730790799517284937159112213403726537233252542847030741510883539649325490426678945486038764843316862705417864683029369002990870395478697645760432530678952901352379688961461566015891230339441384233613881655477055622286975337210035254313310538587312748693046006118824632309572276362633232896983390390557599456940830233718694825561511969503134200923006111043725510674996875085570202120724684674771922475058089914115741270654437595738530507520811406560264718661294495865488134793691836366258230471364805836998660080009320315967888676602455891716232687042073676291017798815866833151781794650090178216400583832596566899936830956551800594580393697518643781490963054543806392668006543238259680746444680210066739210790242726632042208195416862561162256519862860147410224488981177818038807159108877872781421539591343237339878641748370448463317210099545491862417946305950908013701000804804287596188725670095900521421044114393022203422835947330664794171368462884771843949264715347930455974091322467981666518455207852184400410621404223664157953781180053805690128293860901898588663731320337760819905432663036794489279748355933068621117732594031718055932014998954450619757258313144730179693977042993920706810776938435892928931325158417092966689183627773090052579044510964288197922467991484693832976884988757559313128758757346700347507034020302388720952687576535853612117845607572296026878973969202125688859870077278509642868810018502462810346097330553455957049785890745007775516924881352462640631647725122510928377742048785381688045560203455960585060665902308680929752904937487462778284204926749269382157816983825316146544349227452629575432412229437509346136601649214385375443151891383904365506261476955943020500810886594740074530491268554672761450779117296102264344829544299555592015757763959193241047301633825808512536125452698217394778581607158637688395552186088728582129568429639207488026644334803148208071592770542565660184422291868740065411390983850447982191408896123564077341276483029226444677064487693694129882885300406639283722855264823287134219429370442907193679526174373652883138925901006255266886428296269337152864454315844149996650253023524820819193272750527827312379754659186520263945363077319336187487400879698872462769261588713249902604386439123631664106628095227316362905035151281632597435048196283141050833538315096405033719433625685962106205119717793006824646744030901879414560194356683576435309503337781492914408842442936465218065496818080419816209111354020560130680522959682885324614795063092299242588802231899711332822877494852773770823550348709884439367509438205558528750914751200361497011616595750829469890306139605405395338419528590715384940473550479298388577807254677756962676951083934163227144384653292877225099686174069720366704938827995147298650338824572330010190138294237748535217590722099853204154627902044292143979148199766316595021239487723764298843460074303842509467874033755768725953698944047629174029378890435992364610087837092056946238656646936902802084161418932478152929739549352684575124692698854887785851638621080683027596107207410290011935023942173692442943960972219208935927904297744203552331512185807571820517421130268101335249102313145663747169657439423325910576579210975874895082430005163345584236449034168970359150187110148067800621221337741213197598684701699708361556213884362131287495802269494807025947748078882638892106029377517279267248047981419904299296866119975116900652088115037271281330723587188096057851149172320253250218723639712312382954986845983101981898709039347563172467525950178434332705792788050105519467723368591593875390874914283893800108761660516364808201346333392231770522062484758805464404978573269508207370137091313661728213558626158562914470454190440253658832279618035464944930434027592374142583866155150701573333176683831340822439378581523333044365120257848158603804710947447302648518860780592196742377055752426024885507906824967571963467156974478686711031224709205301478332764367972776026044280255427819352196462532460465093072362383745417674879706062741438274192073466845331739089559074441637494759035263268364919600739458963678306563280041515028171252075921044148597900825281530496093164665382423900343769745177685025813355275434126335410950408311426062679880733715825285141581897581666827477941656404086500686217441740995661544201932084576313282768622628264762267035826552899986259131213697859034996134734480206355827858182010728093157078648901770437691658478092284422076545712785213459276821108519719169309660290075426507786240460890976959419266984429722329973413587878164367457082198654985561473278238708329592242058017049913042389314749475040402094870956548190159992816272315108713363186145255694667749857625639071925216250956643011644888672125919515961434022611353071834226875224651799953943162455445162505533421051803819529417691200380819100269488561408361699957453125226688733270776476472753623946888463194225276094970551628230526422952400924023788809103584171208647403562442261545105803646799573575368705423096120553500288197428046612127940162148442234923321409580567432783277263931424937376327716851289535796164117487118414940117613230672772861961545990936574019118127078363058140909849081744129050846854382179584769819054642550900524336501860922077265179331699877246010221416078843147959486034221237542880955498883769698364322973575952947101693125427313916526731088070118872715064867269714752766481885030329098256753499174734158891522535606675392752560764553448417592533185928774129158487834675866176679023613766980546244640711581716787867461542134878081597977973483798226782208623222740054005987193758449645651992302313771424655349046540104627950058366014176143892318743273559565854681013382746593762605410460365516231316992226617196645759351976799084960943334228329663384029599175045059942279849814950797369994141400178788656197385414179042120098985583548311175376117100034759907706516736732387242192953368186678316550905923120480994401967299577667247870882314249891704759970366923460138354234603159008043490122541135373304909025989381340245031951193159205200189696457773902683226704617049188053648200413105582940566678169334528730828056774203320527880807720184758866495884335290782207036668474960834893971680019899387212262721939016473955511791540846960770820629930572960956308233926284264797100987995301110601155747409727400709185710134258561696549450889597468658551976072851553319669283332839863392274682225120832926369799503710989472906413098988778499337899861560608477949427772093474519488606710218620962169966850240800653889079755752580489721026980830420758875068993425349768344363051719692224008088680734947485903805956399626658776751892151102712738349664891781109857532825417307633057425881663470450238047589354714126176552503747054216877501683147401521966508822203388197914361581261136179302522568567104034882186357475512849452741951111247040623275695011297820564664605371849643307387159470197298209754509417572661495586574147767547861243394623029514698591459848344239347867195041292998589150908446379359062288841286384412677090853379017848532453586581538916575978478644282818352007096470630322236822500883530793460566723046448857640707960789481641168220338848428566110877339229215576911834677682267900174828722375306345675608551550634535754209898913047936268867150286039054181224318454602168627195301888206362355294070769718281022829059080173627339608919274735678632125569358136049898878313010908759479433121117985255666191491714735719837257593459854501660929284415041488625648349210240606789142624775447099161203795835468914152475177161464763437206893559467275622048505468137662549245596457288526754109291548658342318610111912850436064443776693764523130753258066708659784215140618990353166357350427311916790649005121900535439695566702198035651730634988088263029951560255096633493249960233883112384512688343877890625884812348004144007332786262247779787712547705550774546622344657634589091259942227081250978123258844422035125978432551869765304038166289676808084644187266482715315205381463614131805106546569899933082837224959954377306218629215955292667300333283567251872682307999991289531618063542873183133288220721352861154728053670783932881620900757222589058053930404556774408183872769091527230320274445528771834373108245925052804780286618300519547180837268019318827899718388769455640853575115874652537079017558975492166024631696874661592245955413146748436764829048511023323454304048932571759307495393078067117257242588951864454110375862279270289409218709845302258879635075909120216186940787615734913648117999777015232614138777861817311566425043961552231792703249122370452026578167966861364930769790466612163820600543899174110583838113666369089357421813686360176234729289728876565391845082012561349680212785215956405645033758011433562401453521375156298419212428402139377081304148514221392523001460725258710424086742957220705055432596356436267893147909621340086460316228170863247998019171861489483395312715892039057777706729684259504164602372218901049140068385676931512268259408276448178604476283416537487340102344399758666425233743851004915499241483583777838042994797248386223476464357908619234305209833813177667218160860830548755505085475068333650491170614480893854578248776675549815271974387767117567092950757119614111051552170080620358382659618842520231735355205111998806594003231654601841055612019867012021878243217429070148633658952316432556919971179038678885772794935279606059881237865287402958559909791569003233111989581886432469463251581683397127074345652898248234921756224407528528717560739751169940204752644494134028783944852087643113842483486767798158632827128377313415536455201019711172426742747531422181406402449725750330515430754063441214249949789562293187084466854694944427539412873572301362690601630343442465930450650102064247266372999026791599872457705416069052141535564099635791347791393065455130043826624591484940717312000547567688305996968356471819238983036409375098891536155965171992750178088368205223265877091806002671586084889323091574495371384017964590606207026940626920666685558382829595326245212567026286194499937537960286366945891926543925283318581827718142990015550947813506560591868243619142268668922149172653298476344901131060906127698386778299418137516857150014646404762003471588317247278712288040977393399764464065587027303320320278081651293116068604033871301304761263167558541452910180648912979168627457777654805131335470567722504414917629774846354459991645679328784041832554556948828538847637454614394769420526951471455299758239348807708181447330399130543550590821879249439888417839453782517104859776268484879077947917849902026813975673384250650941901338849277941595506709380167823047985960556075237629335073401818694383026223368658369265468735146579968934312522678441689235080271308110345322531206440714905963314023808185263452072840565966994483030048133022186652744224376602444603043597628857054904596155205517137934011830241357596384509318999607465357641164050763337687153386861302630725159753656770767893336930371751778859162039415837967611690665817264310152733934355879896680541267899161216331372192419778466772038740205336107298814494170522126780124936033438130484359327396162864745343034670726950521060915979481895300406541709660078271911197295407394003174977890006898344062690783591707113172652822637824607238947674979118280658056504764434654727850884104558812669502637308425522662605971437353176047422178638677570418370470061844840556467316076911012675070289461430461744710980338126652940708988714073810743696108312128744249624050520950570369549284953728547244692325156678154615385961876198062182026605767930545752162921641639750025814852978322884462327063581200492490521713797416374293829980880913392517729070805481127591711088881920295736502388875391228804046471354837933246915672541744912428853507700683000482943844487287444374689773144034899279388053320616285618910583153346121962262424255166993772396256135723917562785362931997725165439545698791835053181774636002534015607259289350731903318744839516824118858498567219706206496015325474925974889693159279248273915376599769194396344665319517401904498425980671529132266137292766419262534138635083374099076432557631716572759792034215955265910293769715267159675312275042790439108028556621263064627939836558453815555612305426519142723940042626629134678395416115441032199007223125201260046022256815122143822098518560653042446618933130822714956197646787215348060575622641824502567956722133378675628672221654326412794748337933753590018262212092277531582887438126041900190172850728002193700553758610065373738473935001509991336709054209667982496810059181919004941365360917513414854706987411703002693584451558782770662082391887472502234068329225080865130385925927942608048322137394891307356773402539581883577482581806986926191907380155200355768429620075495408983006450860442600422102392779613366464711157828816213821924903912789540187684299181977788301520885193316133248483635347410195565044908296021428605920232285118448240600139857342718801139050762901746921688971901515409649862767205572905025684017251159284668392520252014399383700682013716818300363373504332409543247812320836636435812897906254928792603586716268549426977898919187734243807334638639342575137578696851776872065584482553632118344893790439331879627256779028546646554841431914174503772550006464180790502549981592148694255521910525610509040160761463384728609019452542902162957176175297490955189538438291401431585861648994762066250406161953996516868435942789177014721302207584771881689715859099797700703013815145416672799837772606650551683765071141216675197503827224802033849195939932984475256366069885474546689647435985838051991954303298631858719886566189156889051690803977786809037361681252865498325967193039601987594573264102509146041765563968775724646245663085134274356645358715431912374192009152382631302207102383918669000166389623561376645252972069552744015028582897652829715583887769632666528735814962672452406849638683577719037104824282934779488430975476382528620196915897419656574239689580348336565957871672440850318385098963322498322292188899547920023208185598068585868917821789512419766148069159743461024783703645964810481206714794546017856456425585897007939276392562814687376065320691469747967712889692749912449791819205118223537315542456610707776135276094329023691985688720491553876304154001527631711134184817916429714832328799862318113412071518505353432598628238333238869938304086265414555631188541380578702086626272667762799735083472016444815424867677909810620305092793647233949909616177086254437142317140752690404484600889591951426784805255621995637735917419159184447681828652995057110706100087671339991259796594288855640630841564943142544585984794556627682669935098565271415170988643741469838416096155081418933643489458758626632150345950532620115772967240643211608533717683900661415967259271562913078062170384202870202844230166426663101718473828744266587832881531124542253071466092293210144621712645010695352738085546127878926611373887755353456814943857569540196138092188595409212571492298409749985625102548495269398081026827191377958137169284814663499210484900857800048150411906488890982349206708483724943741187348392796280238308040734235171351949638315426968324957568243177801317886219550817080493906345488445097990488145886411551245610370952974601104058458281490726343697816131381070394196253515999362410158569118826245173423122807724317679277201187642338064574026931889271081490148845710565580583873816800597435523773070221552491756701057162090047831751659863698525154910859674729869562430277839084455442569361394552312657483390880709149536363295902594266104483370299454675125331611963754162253278013070434800573361949778842918096556534703032454175852865252553782788524318159392257032864465647833649379175551066365613011529320492873338211089453625735872425426904368160276806174767074889985835812013330822436127648478844289169871038697407179846309492705989846674776880980252555758086489876016780310896389647004178913949984218596311511088348435711554455076687732840827896704520634335134568942537516550675923513999901204773077151147468281673781410456587749811402167244116367709201222865428375840691839103666347730235230913160856435467072632380204549264818537590574742008578092379275226943505525377820712010289827842563587083159860758621479020671836534364403904066848542191075072675607919184538075459010709819414568941137182291517607451138042381896607985858861328465897510760986878981945404560607263533335481863592529437645666689544630435647283443615007696380892393756772071887446879770369107961735765107723361867852431823841576193011060937134857711968204081462558451072818912071913404607676356657493452186178043604755339347803851930691702968860851549450229194902312206789409621740591930961985107330279456256187040867696466853506405131949763375893965316181501400623774311256953463449725854509481182903105682139141543372959123691705674636128965225511562826677275555503824033872893939064838777546625744005180993713948944084928768262114861945890951631155558419779345716518035550750557145108442378219268406129353317814639418421087151879797030077542519518941783600299576382290300648194227575702810432084425247952832299975439612311090052370368395268289539894003913641173430951203483755318956334684733850084639272537518626877191655175693094515697128036554193242898463435256587831632143892545272864830739977579130170711304978032579561247796222529399006481821054101631752272005032396449406610140971390520875504949105172089825350841761705090835400584981444713006665854676392592266083962881252899985478025646048727329244967604465841916158285425937759758675319886160703667558263979193215673916622094635092592733515048642284825913992639135049044020028867180932678796231668122162652518200500780152956520924430254187594727087442820536311342983435500419376763186206406784952323001711339146403391843090882350775647223211255600832195892581480689933669951369699283219372281549338004805033091048092155634385612685819616593836914920719208900936223327071497198341473531834648337630404882715094977081176590482202047499368655105139753524660715505388048075319975249284277309396749219924452920220826594199558943414878194758972854613126555989979131559479743486278988012845623285712822426368645690225127497391650584811647137077291395543331792341355323129926104270282212380225546155179597162382409991766196814799866614108790325373110991634807003946664298933244085198522105742343835459284033808339065684578942911316319254102376908476979933378549254997733872111917964525283615558445183120305622730253712643460821651455376684850260576577062587810059049731985610487960202109307289907596610844899262439993997811177212841059255629088688741448283723026675410936794899362159862033684505513506591462602628873609282982577672519196645127717969749260585060450925864959327588644569152010625859823849208305801622740905939063283990223940638553329428957247378969970699769828528185660182524631003711159833511156332292459373201291629797258967451098168356602336006771850909676415554556611861648965229755021185620854358272169570767474538242095617418822843754945452140682157548156781101028132158957194752896064030083352866089562751275972196509997220926887628478947428758152329721904045709614002648449399246787904532857180051964087197367796812774625596186935538711090606501514363620716161684389271592609150209754336861361745277928412649371413564266958652982060686048975733934718050211285491314965522367728874000169052603395003746283950602552618519863217579800824002327285829999820526804560918848174284408492581456535763852349294121786189680383900537480842081304927575263698231892002173093768977391928672310567475328951216893745756911110935686301720157241786777953953268823839642793334737100403127611435122371368636846353849740975231968907844881978078889951011431467518754155154248635497952342034243417725258706980853127347660348916839724759454908337849073322424410940077981668341470190652591077855858281758255491449254271719893206742428425138377640390995024210247071136686937677640932899197278089769275441280801893411686041815047559107062503503699441111799771051619256877468955001469988923962377340040660447063994913695819926552818458750197092068071672720997878108171976954090965191947065362818830055883888786476072454447608195236664083841719641406796627398076615647589931178406538299427178942442943760629889052224457200044424013574707621091052315733982184003031346151503331110721400959127572469823227682721373062607613513113683201725816185295937111550569929969245688430384654162670380819688001738242939951466036745153023924801475805424914857464675602885304297751308418968215874656267198332308387724162982216341596544637733390027593625678743207902644207580608944342412208583177893350417746871053648121611228003443555998267976230232622233812147278078762005195320499310200133754085381346620347212784501646106429916362356852887723972350736735106733871857030204724155439302845287960933460892405875654091206522614083597894452895880588772269974389855782944764637790841451960033062948818265656989895018895110331006297070779598473022528981348354968392301476193192567229988296828911540118384193297915676771394404287601317416322758162798638976448888656449544679221081754698732991387673185006573826438794515990038938774875702217558662926834473013431207150477698269195866911641497101336672892688234177487925640722295966990389552183125414923838757039763339869772161024050268358895806073779041723698014413037080962008534431937896891677814992332079635614422904382076547094717143195267157526476789202629114212968436170449686277388659636189640229213471502510547111079372916667530802215741561173700069047889718027327699459695350134343177825704412000341937201710428774644430586798719841957462636461374988607199887349173658212310570311536389548463888850833214900020897749937206439544689739187757833852081591668006433210758630447713409733593015512111532222941372810774756612748979039852852082625402410911625668678024731804628225642377762568287035102991862336496041923199861860217610620284829847806177317170175780370185905201942893332365243902252204863066015354763039773720554886557469519151326944305373283289008615980808874574549117147845033778278820737900274384185930893115725527899315328189783579629581122876116234683428379548202082803428093515063260476673468848364408944518966117737545051796356208808197607586901529523114363260369663145468934420646776253559040213006601875968993111429517596791815866926834043889778190275953552358031202869496724264289594574272313749790118381136815960734687628162711298375208777557218444014834590117740354395484570320227778335577567146266487067730146528417187977803771354269836246045959920115478177090820918571478644885592110070156189118586225053946259174819763871505539119332993989389309695410443142776493368111937127972241197466019876555830468730654059276689435712057786274255498691598290980162570392513262581671239860414325342725734320799463884513996281371110867279651899952154618301644977639483368890051788967141920112127738835964807627310483959363335777525762214381919412428327397840119799757037057578400228390326497020390522519712866373983805856995952975456784259187704670155475479212892414281913206855722945717499615792661574239366510699522662687078472299984044903670762679631295158886493555496194157843117622812262263046701578995940769979636288198475211605447905192720835663634426998851098154104599159237650427807109129337964724095463949557820886560398504538944260630998657994627922914823084432753374023754283384522019783163323666666230917679186782242065121653255902074139487364326691377581901100851080280970510238851758373102135912324525014890691661921796137719832754692759219676597834492309554744142880307033123319164530684418958710099323896656772415715923648822586583624037698575180704747045049968144873976837724952464065149356807074959325170302348008634022385059789857744258569777655310597959583907928468627110854888980331052876886169936285648748326018973923482154970764440534407138552288003666861855571743331612634126166040410000746129391205558373241479955994781478925334110570498100570056672529132449160288832833430305626630400585649722043245129707949476757140152492942090438837891393495374208819980285904225424894540014741452185703994720317519444939281352555492338057701897301135063460042961079094981230227542438535595192847239100307475812016173776290843458067216058908974153812012871199346706790493329428909552351750813954941597516166144567638260079927975245577816034322173228761263765853396915939037044703024434676357462836715969284525106287339225430240503327659962983032820361717731312902387544489091798769096886195553961111556284355108230352521487633554182267334806404747970110598159333414720221624960400325609016990440360060412108425226255407349896208228631820327342916343092437951174790419307501210212925824987595404192904625252380559475944334041823518571116447591387663804040200977382993594286047461615050732702706275880423962293672568552733306988548324825891579234481843036763443443682049161498355583970233213022023612085337381158957067174575521095597371041073985188905180445585167360825035887803584448822314080621083474893756320708900795307616857125787458177788183243391294617068940898867452205894443595936540179545907280269574165682836847705714010003289312115181885832698964872277970306585166208148166237608089593158190386024308720372626417920037150280359837862170940691621991505261073960536697022642837327677179366744546528041186654786439369922948791374359774789348558021862242838613196283389816943255978179801863424840211201222519016081972558370275154870719462217756821715689266862669184454494493129469297791567705878033941302020506269184510043639655851620956150543550302059621262640206449861145953348030079963425085690456337031427306279720233150714056406898581309763406868646645966664019793594062480318316135707929359051850569317416506433786550824995488805547845773899609950311675104821649040960334275397392845625574293428945934375834275212371943554006670509819163001286177858954005871340607869948293383719435458397094902765072563845754661863241233491480676667923694095528188381904628613199117003210783220148910869657623330264678418829433836205387596527837171917759090323942762587465335456691824662305518497090447329333009867269100299845339155118464451964484128544736682396494577326300051689688794908466430994082022228104465186173113405853168265991575828208108105831004746137961958440955155176158848591912574780013661683038732605363871204643327481543690240831217063461316307301190988789896387098635676472788262340884640076775546948891069563566533161066578787048849020129485828898864512201678364517274712675626502194416462034201039740780571846972565262625082307204229598530947585630872854151754732412075838521333273040540913911576247848183436299547595436190535622697125405173292826294432513612180721920857647904968758281459763865944696188411189901858746132030337501699333298011387994102388093518101482780449341629467948423931269433294903678612667612855862884415901365675962539358772904791479101388957135823036859623758634702435373590014918877951705042619560942352393055202481831059243968680866324540751716428266975621714426052523850510621632995930478078906184419894887593632887897582675318882206648717631330642103358935934661757844095677432690676767407731091751191863594110411757771531896190488296451233606334761590398078251847565584964640103427605685948622470742210307189372707198911616860723317013457624226209805823452235861918466192039554972880855773576512416499508499242961689772590812768964341290522248019307546626860954270906520747295179742950822516095777349123924238335575585077384445697690599908826511808327679705941953526936492224880858741795246129907867176103998402173683543463782210588506643534758025912472137211966896757258141715394275030185584303311225972960725802071098176791412064153482660842416655153541655258305097290430045270767335011108178320576429833832211145496899049018563815739578785299880203867101915751111147609271619619764180006963025805429441812875207999618549911761513563854834173675049904695480679342052523858478537178299854397568827379547262998975549112924196275982448745357443989254672939305440593232689829312012792533007476152189476366478032737151792667331319017823079974060627082330711370494659750663886410419350584994027316145832554172421584236488409314942959738119606919589098235540347961790914295376035460942902853638020441421968050793802876524473778823266183944174102448229360800807591171186217833622842900885753118896360169546343896867459773886630582670928894847212772402127537734892678295716740612810744396153911443098214297461493782600397925654763666931995393916204134859730932626093548842178954822363931970632866067900367075646358670302380643684020339134272089605952212915837176516947896832087244589802810369857025633259360113364113951763455509363718688449398082891828594071213539737287795115137656946402640628991541960674882653910333967296739421435527783055027125839672039126047811367996652045441587600371768897302183160609288432740936654484395266657739119567048611512196465046434995107659451027647746276027312501840347390162363819412434618951405208429138654817730520946600428898203225276200135475695837530168757534865846223119815333555831791402098402428621511046427258387231133581177898494136662340855622170107380165926706068410670667867592093325117688027780406165959093907113338715144732640486750991512202097665146384873611559704517126591794336047872753028560141580607799503208806301794961936471677017181519414004890615678935628825844176410298506500342114514515040902465658572966006087495498496463426216807489688059313474423981525739153994606972958620593393427394240111229628754636224913569864329132419443600372778576578293427978920750757723612998780051081430020312090522192387196556903897109378933122913083209682628913459662237121967426436910318499786503760264162386340198366833825639750519337899542682311232709117693783584805060379137126622583236100345336843248857977252472983203720197487740551834442078333055940865129884500979025983078043518566720280789325247777581123935461171962160889629154829924748714171476832301338846335497804887021636886437542751525150114957031143218032639325094146600241505335973695674626387499418278582511505946266486025750793030768481443168869046419440765627655992324843893968525798080906532462064121192723524784910810846706613642873712837680640212778713195488785500088678962968377520350025161875728995812416519646683091218742268821121247735015586780889588459283993749275680637754084118473811857888770099430574611304283660310493663752616599460197213410251446433232853118122281171138839182180070741567843177299224958835596109103509635095949045167267524125119240947569364575744085645623162247483761348700630355035712832117713607862847374808021602060867513156395755477971900090421068856877415687647271089395389144572761139710871877446186785994458402064184740036665985228547525078334321851017263571712378147476042478485001645762030734802356785270629008605251701931454869096860484875198983042639553347644748927021829266129490497624836892074680976183881051244131807252317160088965871973516117997004697830456847834930273462880718050726902716843997992885378475520260138861698949202130892973417658678977276050873760073182144479324142143806619531898252539166119489810782753314760526616876068615867868908298365898572332032077518538645313299886328478244081091022456613093328999528197446142998037713770836688769944574097677067751447462974729304846784588609487018756207687564588795211685421272874770485103202029337959098628070565699156429441295522007811995800086174578923280114344654145346079910460046759790329009697145373110651637223034860495338747867254778839871476458886298488012546226819876675566092127313833225656486628560549145810209139715585348043066267313042982139348950016386483284828661150745143854029687958902679873831560573434098780677019129927842098889873872683990342689481283787183833475206896967221260954641475009751249276182546244977976045558884338172916113586018591047618261515709407909329808249593609608796507796555138622821831028416408249649799886553457611308731158692540166145853243272971144636963875161717666311644154987810377546919991978066464025159560828293379590014178976899393907486317582886376201689155688436269920148908567687888745498372038462896948030663797031059937442280332504135524892014329325902370101318999713791115866024654126898734788087326073334973361925501830409620933270312346817933980761066285392943625750060397820754980110330169292218860220992096248854834666855398286595226738133045778904562507109534277981739299662959717049538789825317340020017367451637545386181473333984225208582217569457075203832790437928304720383922260404146945050617319454946936447571118675069492073344241020058322038930635282103387375187206912309827326286311784262027577412539983252923342783042924125999091630134152635707748611255803441873239325102299659827034815593037714976557765519730616246938109981565727456529767903173946559565278005985985172455878586119200059156341512419552069199979827915612350260189368935739026052532107952490234036633212149443823623848639316331954899917655806947715220131786420833690166085405196553777212740355503261704116318847805525234180758406152607370299212822947448415943657465126846406659416664296966985772155068171052347656244845781142812235241003441608678598358252522596777841344083639563664084263867964860361914109165148245636862280641649410348182383379565317519781080466548562351944845950146180550631145132182482751895235567874553829230521606250661745864359693353471564066579453918337161791585075678507528344803702857270040385113811093529920073413920389599857170776031934679797123264077202298070739393070616446376479473642767600633816406421915390556061204709703298437170154895402226372915042789703673506661024636661898794714654457658408470876872623352315917548077019962737443270863271315776156549144108670441448548748488807276182474481954877774978854972028578865427350231216752630762431984223433239405284383983188572723291267932293711273860346562200101185892564904890090548038821136546365293105471976218003511193972921958653376058854800813344004826116954898494349968143394706794305514652245154263912150965063648457228695614927014598464452834190434336090684197845048646039677376549292095549060258427542534045966503498739003494057957128822711549716899066637688660875353720401849712006057526322733904911306953202690847537448723299892876376089091494411035913490991104848337043112376571658046486939742026318422067566145960474180885844259409228059494378750850332519981565601287993036384752302430591728118919480137409220701597133320523790643839336590221550327719680739428452338152519121949431261088131713227607512717937158822160540999546472017531554839457485509874375378171236882866775323424361611170191397795924258979355827595145521201795823749171022010398291001978969112207622690342298377994811709144175166664940393271637145525558222939565822300858501578255792964033691302454825488894443717477150128302967378418655007771843712070720769248143704457020832362745944423573361176835197472950438139478306072189848586942209292803564019756395916207810926072681243386127562004079063719527190721817158126552439866063175240811779504811831472872550631949422821794874185850803791789037732640053557397209312989955687694889765676130036245539400879203405299302730607853598005161908985542247169098418111634716416141762393862429648284401104107231819106910465821745521627830047842993473020481132689142767233277106590942650180324101187061812731534499799003960289005998261896286771758441649465025912963258938095602860831074016111430055703962212225601540199603462199313188096098556091136019193185639202130454713498354573658172858576207890886642844894714033993133451974878280412166640744003032133714287316311626895756582269427105260930732878900698215955923901122329228870358750828928912717279351152417023048737918400509448016786926229519051618924762615035336657190594117924738906955176693652099609086558488817992482995133591621681849378115686792598185033720220471442790894553687806949360504755072417681994951099603978590703585599644367334742094631699124183763323429319980028077240891960842691956246174587552608614084525353467731999813322472578001873060626119834510768963999760019167688195668246475765362746716176042272590137716960652856530671693329268710883493745129539678112668163721674815648181226996652645594873223493494466337014575039512280135141817186398441063867010856556075479011100115820086790655471391325802292007541776119191503370666064457073473818385335001769920536702651098611819677124906498580796667166828715358778276764120989055644385632512069294623833089369349569631022790491816610146001411185759459411560049741046862669769559949359348720038529427401078462496992509550502403524463917693704439941668289606210154800377925331976950672485984447940498260054523342362520273232086921585148238365350896256940358095355833262177221646688230026488847502628104570300021546965266494924829016737673839128673029654643113505947274241434906185792696820920272996058427249110450936763737303429347275839791166191848569645362628513580020383127575459542450772151792420114298347187663649617755010784571803356711457918009770747447274787111416187194060756958389298038334230308398765273406891211836182334695412621193935795248157529084826995229814023329935288680418665181896850248702100813206793984975203088251310792529275349580525694446034771038759322067058247964225527797878467484816818261480846230549794328114893353871115772095120995957112638680011367713933807765522313796616681677609109961083922868437932935386575249230620741719743415222857272595817337704761885626465853490916695789762552577021878708831424847653883623265514013002523459932639254862189294939072506572970458957987510304060844149236811429037356225486245185206531437337467658927836427287415977318959483610816394394246590315085692422735522201625892119045760759310431301564872733394301615506718366822182886903822737423032624899874794811344013492575230453343960751436182043265770279051859538794244550644809834836151734608045194736202196613138934567670482100902055156785027653544362292881931866801138868016875206448514537996009372175836196555155434421041364481663193717303813680226976834690732624752906995399023214793506532355726359221997004309611181795939257263234772263239765952720918743192899287570523682636628509405628972281805616278876507472500247927519413947409960271648378481485846321345382361881094584087139115543901714476217423511909248288016637366531845093723835628448462143819974796621345395965543741873191792560348225619067502847278999653352275487608365789614996921028236939988564188701052957549606257920932793451502834306804929755745354645000764417569111739485361557712736370873640997018096182789161699832659868123851535996656644419853120395845904847370479322825483637757236814475200249621342879518223912679731317884190608598454396180233661480432305794606159124411540617696089898899638253354719054890986966124022363048851774420014333798759056866538497149930688470782636649663306573019167377740181502589560816823080285955287292385563469570597128859003039392983435121665648321435989258715498877123599954859679648500859037988997650012720818868051776751048905862152187065442976332047500679584585665758533710901932804819235971749631933491405569211725515317507116142327908181590080179425888805251540094280901410185267669642305808706382860672413029123867463655541145815368775952757386836821821259618517743769236371145411310319797540229413875589284510821179109612546914275405155326005507621958705374650220304602520206163412170866893444144574442477431004420149708512289710954584575441700876429705041352921653383010181807262894239830621947032999928597446097423313245694279648408708483455721139882555283518547671503802411589395344502034915918263675615818844161179971182350055474131900090635795454637764079807151860021314817723418391539451043041818657389713616276147640942889504606495014555645271892779935101818894048587371671182962015285031041191637688955306907363883433358951152469318261308334467156310675303450460612945854334933557174543081272333749438854628010535904927532312459636281991213897747803944774527748653916540525977175056946320848875068219532868004281382960112839292010149107704295583033588796049595780508918114146772439063746323153285476526398148136247001323335548735261964887426602870841913422271497552357616096245238898908522157685909990656747183933827259312176997569731645011247681640399452911704193902495570562091029923546755760241415749851485181272653915474848796096809055629508018905464615280056594620875138607693677168725269494283590660181441859786587494920951140596396685275850164897532890631225189766716815827380679675502368805020640533538604295133616650496640862760024471672585782075616117790742336559897940239532156676518778660018941531858427819549343785461269528222856387132385520877506150008678600238787658754945870958321838599543942128144273219824040645822354650707699827314526434416393519392679606555840518126819930655797533863393585642079801018319644933422057358576264086988466302802816824408326806579103260238890223257904421426041830565427430084764449648475175248931656657588006303802333151743482101069946831929189890367066475018754935617459428714668405950898031029232666156370482419998599786224301314875921764785452732211686419106704298282383471002903447147722657213767658252087097029106924708509994131301816258372199426566555830187559563878052878308657535042191953669859103143749732937809618380100747692460883059751565442221936958093241973204458478165233412527533247931943327470732687386128409855299996461480160225128744286107136934525518568944429373340095009821396732774857737372189315043537304952655127635933995410427946390053478166325818747566830827050162597193197269846558221242219719147503612087099936977870689279425372496740119410040088237403350288463900657956290771518102476868331948013366185659958270462141836446105521681162171034987564803394252324314882842577886135514280260136558872813112712579766582306370521588929591471151624397303180900320226792559225949747336785868234898213037681899205776197502751671342921676225781006101566585664749521757089856741545901037944389897370107187696252233419958165911402509891380621539086262200795984174766871317417480435660821053805289891706606208223499136752002992233144204264725366736746778865351946623148038336816040908313193030132891788866563177000709772916565462752643806767464932480773365885338051388345849587529965345988949008058576463784823132301747826659431008492246507088663922507017287613450425733617048989602242887364912305406352967788330156572312944212298323824824444693416536397479985204777846196775440521773192471740253323283212026046152758190141205694323020935131327060960781954040235139701560379907423115713560030071644655155816247295170128605721379610017994355889099737934074780625252316448152964898035878729091815916560697109024159069925514531869808787561813977997108596328203892686405206219521970686880286508055036975138963571104163222919609115522391404477429387141289570772711567074616036398924409334489250599198475431224535755848497397584904114800970143085054145641086129461915773918043401227709131733394855069960916860889155980067619091212033998449153249756348528558012685151255537268424058934071796583326354595847153495805024151443743884555253365225812909601061399298311049635825447751908240225864486171463286278885814257221132908210032056099679923190162438394398863098653756234864620058832366270721912203389164969440829441649803977131447188043435194941537174384005490203398624968881505981662518700218651458756325986953719113207687003110249607494635520948416248128680187576815669352714853949662723670248724834090994048315224658406088466584660334197790851857189694969419303503934579982779089936205094399618403754745468320286768105811988802284010402769970770169547744160014721041282817805748411548116321300406881672140290246252821643912268903789603120764774855402997943580240875808196256185335346211240425761659263184854396151631465325069040343396883379128370082249299924301262146196184902497938233130781772770705706509236438411693847822627863147586110082733355698121736900974906134360281661683122198803965941672000953398089370997550068021172692878198652755991688914268270245054154992688594597945177183609998822432119190730403540475049560737595833586291258136215601554496721065415291052863462483527468001596882991741590650777064501761179347378290288599742961774467398526081066400765507630875715188101367442144262839195262520578510207825997204796162840951945824549654552640821896841954231950272208124420289322099399034931295422618806333671723375153081467268626313806561510308210628736614426882544817691334615623396339591852282495329134685780905842254421231446127304954165034169630913105818464881344635731126351971406650629787749921809828579689803776846542173672607999815817103755043578639569030453762237798415042715804452604236093128918665440528833226473510089385984861740087669045397618406767505823100538812753607132791312395039640822697162073543195380837443689822453097442115811897522234128691112797165687566678151218976846072683479170570230829019614223993093845015401980451186637581221351360578008293111224286683269989223656148094937341001691990109394207572980817409253256905870014409810192972968933856224897489996982042826301990277221842857842574495060341375097955829152597713040196703567598033547068494417920333410066064221673163550293599200482810053988605138069019125524171702037170134010956325139638151715055968932542003624456332096262504927157652519555480326578415734641952372718444943879760057078675785930984011808372600572582780513872171980376912975102880073121771747701435465381265175165992340084145075665162170018457229148075896278431858550054463884450527735338878012540628965963617945790700971214544016558747995618700869298479861457697135664071016801914342663921391134363003934861558281992467656355300447733637223322322447482835316403468324754796356165329672419275873057566376269094968391707116812742501962605273797115651072665355835188664420709813443928961578206540675442499155145845508631003609148865077106094895120720320119251541973835722804832371791129989727509895930969944883556917458409118812088950611140886845855946808610013145393067599654852359294451648630847004171865971672431923244808105486654899286744500466279972609092200567397673107864020992040421261093792876960606716819214257258486361185579228142935585847195711302656615786517078739336984998226419093438965967087679157252326854409879039461762806765761599786481062421033420593444353883383276689943269657018735476975737737558091020929217472791025781937763551257916349684788829240013634957437122293791256895121500428054808097316678678200970957623923852700265594496488162449912066304154663453017939960165026010190333620248479609701879053849946188426882443955048490816493703758257926569607434533812728755700517982909896857636483953350953597107825880952264088991754712291130603864268561890278579260620029777738259203745608447822224240421203499093335407931730689329201602064994793260780416007642104277166297766644052098175942266662023163221382427453762766450961526603882089440580338838095120436703533863882251971932309681125801426134646188650047435791624774059905922898728683873561014407621796271949783224286879295683892260646649427361422748570561662398794572908355211180914644786576132439481478658154419315973362106421438407696195089415565184910672592959088655518135956403651416873031378225924052301801902936212037104843169940623522091420495673461253977136868652580596703170807833800704407056358128010487999791390509009950387012622024843621766410443291974718754864395781299336333989769339812230442896944266748444742970973572243792189887237787445673377781115596189287192142065594877565889551182437700293666222469222431034800826106539862124349132071769486298221610325852624420353751171580968940388092995645397792142105914320930472877750654463584239548940090803898941368326529744748487111909837041068563582523861555387767414037831957786252868115644912592416527414071216786035377703867753125819178983797383753953859545055459873185122343998729284050192289253757903381971910982529829529447229127600624926756780989147556190393259619371544423376697027371743194353381524441576607078439194805395817543262662845908610007179514352887443900264976781186745592176422829249415861351312323354961206012328831210932471589978110927768665570257844319767012704074810259157596664644343317959718864814229573238668173501917744037785483470136820025390576593861455296547300201006458549526366632607751390480577124618116729470118383346922836753494360894931915861227387637110172561667362419775705802014039412397769345470921901902635997422254904255327402056779779566406820823058190423831734596483098627464316805245508731797141905623508963529565081269238445611423323315430850036073114469102346900355476297933311824699721763094554635933846290759285813266692328913958246252346907154930082222727752136898060174258939084325178763428838558062717998057726691850969085687214595097722502189518972483920914591265281642410664823089754061829002258002804148655409897426194123843745637696376777686457946741752226607136861609607443089981846043980347950540674859538371915359059310534181653852834837832940234467527049055560990403230523781517696153551873702860040166181310622502425489488696757769412897334554722460975361084461451076272666428266966536996415085771405212739312390784580132719808927753467693124785008594644755585293000700835456938001306194118445415642801424776765015376944197173355656048259485415564525053069266721251313490052647713921128839812478557920517241643765289125472329076259519930546526544867985818713922337508606553157750178008530035071234124939922968277343711434180860410862544706850632403176591291690213556574200493626736091941497024676641033491758215962817558901832023446953552668455357743013042824010770301413757120257066982707458832673456046106879110672455967567759542538009339456272278676613882506654606396003305214284974861222517380497713000376884294706572335038267905088564728265699745056655964768091408255772458946419980303885073015701699843930871662698682165041335407738280498597598870996958026496346280805965920598945811989702823571313838169630154092003556517619384242624294898708254349747642087216577875437459867265864169830065877879074977830877656035787154465193806850975364857589649413193994205544204361674847627449701776150152127726690370559735863280122690095124719308209769254443894904610787400771036421531419158635620542513375980204628580724846176039952858722476005675039754124218330124140749532108250644916734509367503471157265561000399119755509198993453415143990619743485343895626331616654330658011807612424670311889468876984681512255950195583741458124080017098021998030675385976614257644248401839196496877736699620762766025801473171547308015004029795872438456004772332208828348734153426817829579945566959578541303271351241224426418002523807528710834605340461694916483947406809550104116788264052342656020362019383582648898487391991405390441985975534795458902426965624059822574920977414184425285031071618657606483150570108641527299306524033751566770913295903504133632397153388917083574867113161562630759234790942352602441109209470854329335795506551083993499312932290544786018670963844300429087860881782161253256027302101021179669286839029581735548021032009730626755380736032589980441804823613429139152082265332478815054288901453325362986242940652071184900474345443434051133392073193799423170893001473025355468474828820707443493295670681381570318184288575228107664923328364810287961801769694274586690829209217687757786919850588119236457608664690902099149440527895452311627872236579360640609233699347500944855186204169869600732431535919712071649122478481528266528861120681589687195984790772198995276079356332302532358505497084427559253523625994201308416293960469390984009776039547364816993733344619070722766075405007357985438172233154356886387100361047183228012428331418703385142018986092438439725054166213638413593887238659201004301140667546996172174345695297047839361101425460223429302443762818289617135394057800058331422211078722404248766650427408597328338417967487725923194923348842060921004697465971020944980045082519573618110599524697147896281993291295812001048536881253189209896021799614937153229802851643982536363952321548921179115606082409902992017968744334908409886822044507438593316886816283235463091719564881698034343320806162060126617089765180894926017818366055920357792932873177607517540301234712396907332375510380616432241809919638944307873598836543790414436283345592421782467264733931582922236020585137111130151178917811129353503168737497517338438314253054209182526010857845647117538508142073577427679412411991180421922855553113845162654246722136898897341574744990415241321558383772676491956010650920739618672652726652213124041090010799620884479879811843487728410623269406226287393891459797653037861997735193770507845059695501903002506089256581217351292634487005164493824277672221621727778622210370210086066791210139079388900366671345136558644816800281614555323445437632801721011870923336990330838041312391970947453732249905691996751901042708390909713855541681217457751955944351409793018417860880899527897537110384899593855863019827053617341596776496022598983944641093739703488908500244071831389646688846628558544648586180116678140911667289487813869716468076798134402467664200045813337147298649313472449754790994747625188075504019332767252831458626625528184027286064890382437235975472210170609530464552612038844815407822010702333285156054285469990352524206174856975905632463456112220523442818414877565323466001903663268660604820173824174718476952057306782076626581718975480868623832055032478431500847804854849175231219640044681226385123708736342787509562347921825339431824724869784669238137219641357528570734808019842603202558690660958054650965208012954832247553915009923859493737749051142643249035559975049130266499902183332630126917587785499813629182629053987771017575159542586295006062506479133103945790000204680964229505895466089535722551699341283512232099132779888821066038256987691186029042237754397317894992478730631622025699403939707413538885307073249224865856709094542194202987534862178294508031933841110584907658887317855142824016226503512525034133863563186233909605189934979267836804210154319205457034203045661581622522734430338826590215126222410260518497951832858746784053194353914600244972331334850618850784118412006363983027001950689497542397390985414296750654716894554716534869462866464104260021105769069089611158434959615118728797249882977124740379650717712151738673022558912602072237574273408902321608780622575597851952963648303441658166805980978666864931283084607237868030277039396695069639618533892957165598701211641923373381824709478223113641769489611173704359318610006685960798818363548344623070818957745950042626034725318580204971256492067524649949580429876272884967793486066456562520463066517261871943589629865074253339286799873948923663374882517846020120741684222484256230779878728262612984375864095535347768542497526262965212052732416742959382788270424788655744864554685377366970690223018902970684590022713307368867293653532979456089843798470246364219012094868597537362918203979810041812048097681090429815168108845254968033390603835720450898937419739032761029224887777295588980866474137220502873025119803906046561407975560920919437861112754211395950729181426469392102297627553685841364961306069111779815461327694827142640448918401072626350675669380539766223985237622506383350221041484332558860462608651733314760910157542787898652482371394701914780866124109917224580398663250669852907524713662531785967579858043344658331075020008966690381736005867644525273977380149017254617306049919389299567855062145022229409746855271826670311675901071614445664688035129393780222756617178456388598140895314302477978795382347134281553598934966137058784887709401926478943034778434890426554704814921854084626480838941613062316552622464955245783837184372143276232864255972142821733126409586533372658783611846062218039366056487278186261008240069398240266508555245356226005427700377008856638946914357852490102949039056893489633650815820986626509818945875406315448560523980322849821230177341479671216229497095027685129181732733874065300425499014843756323985556533233332072946858987928164762198797473839810859796842598448469610248301115150552630733495415614620042046359284991607163371469705427961470701989080192642956889381060380870505873473154977185990799279489485141501710830180055312473808489236262129477785908422364712414616295067815282304386387721344090638761667069425851590038315064419694206191727583162037182301413795089710155775637723867105874820781804114674319713215985637995297614261371611536866085697127497322608034462201450458093535049306405080920510797668130387480241149687212309515129873986140745788413261590614155025396603766875653877055453093841451656541004676972666065402972785619635896476497170619275238981903333837600756841678105063572707480017409117828534836106994902880039614666787989004052726398878392147344679817323830957036150752101639275039352292354476308239133748009648186012689071784642441281528937894341134368023458142498932902217200184605283221065862505268450753336652351355994233415705985089234559694314987974690481810259963972093010668280995111269923025377274530822934101447467851042545349221016348344366706340619495104686550257511759260566885595931936822105465357141803197373703189144836272272155963056434131723474297045240647985053765229837752382268920097833520971149846253831857399846665930826320228572511825573822738353155364812264210356039317954334124479052894508376649679375202119122446964257047830567912839355448787545931337951895778392260063516005197763954044881290635720747962239004254768009826069490232027616486363715864983587459034694225968205085280138880381692196381887590486633609466151643809534034282054314516607661034246997949590798816247536646597632357095944464252741920217981718339108378306747117644066383213597905914136083756977521223167977658478200479151254953432597702565752243084422632572264385732035163545394930546105132970675993098200050685847536742374964196272786468385847934572419483847453710118560150165638843869990144930388040679689055349055053744872449880857882506851192558397975271307937162995974211328488502921871950303551703451115350322236753668934167695662002929572308497856451284128130044509037132341208833797650809571231821643078109337130485106305989351924053991057058823522382473093613727974069569027410496135664539770424766641094296657898006368427240432064473065523574666735570455170800374389698580131144216764928389400705857307854786746476727119807216023266185942610363545143788696080073558767852241576490826020658245864154378822723000198019283928943278192453649017878943786694267245303152053612150458134029232513263247718692707211255420068843503363752229428988160023553876467189604630470418674176817627461243215683276112582732258306316816026832026748452254845709136769337309019000090642736432866405794814207479859344172827893392078470829247256828280815325639284681682413230095649345029853132840784898723981624874643615696543404817162784725325214417105614565157165146919189892229300098182202791399001402186322246018511155164075538111575624163915865724647504522869381916920545183065680620390775357525905506546924004050985998748206374719881732189364902494418147370608310759466521222845520059309313829169965933550197963860108533752343670588267928222103558261683383109513466372912895875370593992552224195496860349928493296288966247994475155510554939768186178215441299890820187763815152446914872039398065618718031621775641807955800715189505563072182269220874779931579672412004116617936123504761518748102965578122119252102021731765958599274797077948316237729969139947426262958208650372543620671331415527449421827886363657594679674071710312798196266653282449117627051362280656549302750294665942271987776417977070135422363755910927492503420608247084648194907016197468805293587416516113782348654332483701775242886626103146872669744137195173324703960374488684765453609832734528966699978627484046649397448620710599398888833065176889655908329325729591590307647225417179585532565514734610056910657457212732012995149395439088960435936914481453193823352265736885459842471941097780699944304905862547211929030375219071849728631466429714042142057588230769021146559925868310073419329291369927370622932394056353278382796342950964697793678526302218198662614752676643504042372236662993695853899589177988517278823365365722376505294086850702356969367120869359302993489149302929364542985805425797157464873891973637257941111370780035378510214535520939082116738229395145190472535505485736276290925546920174674894804184769338115222684544301854580804191495410834541187612031092478682723077630004515869660362051380431759423229898739881943515802362265594953831823670617659028056902450338602802377682342910940944584591623710463323571962794058749896608167918295509483460716398932997391040473524894182737811585390589178968138646810722724355536207893933663962080137259808157441793179222910496175552459229592863902440846670147101282153649443760391930619850838498712714894252871662478353178353499198858468784004963414279673245371231111171086614109846666781998408985143749449812050603243046406195855270858054916136812714263115942415300334927932345654669650801404986464900686312684014477914152677068658600614567234878455022135051533185667623647545296849635458292218417902323875475038708180890910925888854185388872807069875990932773565985990713134930032871278850979568059063801987027189401863014948517100938858183200888824704357105989651396397105933170489601876018796298947867563588118556636307839795385335246870462215297379643673114309852752912172836299996766188732539853778590094189062133957539260063126588866792597789323101830722506186554211009826494765388733404681932893915531173690476707333609048502909640434686808474730141183051560094798161743231889668542726423617850385585568728442395172623400704635269697774639313282835939821860934473116185914096953075138271931032712844880667102909955680748405080291294274305584850045201111789455172317888778075890482373939664098631823190467476882891259305718530703757347814700194620775158122682421538372416018035170620357624713835452394427193435581467456359476423139305964366132078307363069224761705840011752942458515730084412801679643302556084526168737913984551244623837227328564245095379753223004391586371432775350662356440879799629367473219899189298537483976521152251992493377455992463958065998040716909464889556193255790482179108224893568986132255039266977855613630763976167259135935172325021947701055566710027226426233658873345730138087552475837118467622571893937056155525990229925478429949356020409804513108290938832503553768449863436968754038772655400600939282987472222089882876043410283161085882865225239534411732357934748154114722085666800012675630531751740505281709928327921363348335566706212440601077733322918856862437444480331401068807720494222133964115799797677600994327965356309488213016456882674351459025054542864277083848191825564953327148854292559180136860819691688787826743418316827096748301183355181035292925795589859372017379413471471640776910484593226463253766838938939429194229608988335689572715256769978187157274842933470617529533993400261850164684297820234692434050115255944650049988148525636739649166702316501936085068972928767214706272356051176426368609497586224939325970340188150384362499591295440476320930705296462792516233374253670789761882392215193155854254690662174559047416939078180969410783842946161220519904578087665521070449563428129714021996202629243655292642573664849435760077356116355143027790686203300074592776703876507419915442987636363701045197671485270679918946577614149148140646175760937696625210632772598666735094161916409925171189235201041199515485844617749099291986056839687270604778709795294605602976625904489270835234593876617991209326018052644062092133296961647364791092129016724939011502027565520680209803084937281626296226751743013660367306830880843374885739808924231557092653954533269685300885863426323637158379472597368990284085538743475662353093931238807615680761300785309738740887850831743927852560462091111745711640216219314928969455046357513155688678268913376490069536621697760048094027274032307161453591284132745732254807384089037190901532316230969083525574579308218881509382644930523385283470742043238465862469946710982392002035696943146640963714289134514217589641439498250502352578874014334492722887488022641152436143039805139818005966216043485985721348234524149527903800520482790645031610044392811984245765503550607727550411439153842613415487569033543625257062617261358351607205659337019493272452259771907136848609003940367963031448356003210638845477900355761665360058098042304015170536067432100451039080556566635303380041919502964771906665847454389231688372251340278243327355883806636471497710938561963341411257053169176801331358576821249739835300630682248267968553156748859247745613140383866854468816409422335914659530168731370304403455802081713970024555499010767130012252623249386329764723956442471723268021986708729241813927946509903865333054615796765638481306712453642621052777752262428829192254428816023852375951819901734057809757341519213342452802228213667682131616368305977195492650541056129725328660542351579083113612477741444453480316091436762651447820888913268984450784537451938665903391599238785956241914270926618077073010949797095000728606886985210570988565386822586729786622961677739478752458023495481815905354273187876470156295009786053965635068520604229826200090492529776143490192799307402356212457120950783079616476656924126039548704707612560434468482396798494617063846400795435190302038416968522928138499379140410938228779735697502437164221743090994354976602280381970590725251321271948224523513154955714460978706977210831722606296402115066152033653760404191805320850200441849564536093547367476991111831256222031600281498388277419204561520624077794744615432261610621172356874059027050763888505531385933877887773343753053210033473707555437979874721915034486247385334962763843171288835893323941464508563562694759425249765136917964495170052799947283235024837483984604057034213345076925338384424648539029899259198366237035313962890608891898882003077042650597789713087364146858784697485215690168525817510855708037581888607768943322695886308059544587634610064397521762992244982894018604969706260129160431465779234140560577363708040547952005428781395796958913327518244856637820756940218601471103395050790470774160547637236995877529450488659016282722611888164372877267780100935239778093598281528518369568568611257989012974583273598191551768389528113379114380046897540203113485313150535137563235830754761490538432854000551697817204402224616010326688311145068633547888497543388293704894537973123684946072085084773151168907145241694684806908010924947570276188937789736360973547032757328981353798579724748377198738210121491423516618987388707702542485467361732401428688697727372218652505412606796790774325392168692693699454275864110482566300035571928749325658812654223850384144775922740947058368764612884145766576345616369566287465786048116485099849555252929800591180696078238486582777282408668236939746648002828471860552342947285855956266430943497290349073349813654155384783365220229462947380103174511518423500253212287501553827264171626068616818726319064852749203203974066318904585531649365870618982643240249388679412079119420611624599415096598224080512738383315808188140913842925451515849828782757602285898317167489346208277915049219730175749543208244200586993478315627875674754589253394675953445083054782713309949441697571859995749500476448061184272637351230171188637864827734452584469264055566468482999949777429643786296744716551615176658336430631479552105173071600003063150728655082618681381646969527491401447250008484659339359255337233690439823440692398788441653463582345840028130661555509850828921828622897385788857080370317278774802663467868338893401298098957484514564517240679304439499939122079206803497823009600376398771586475524588329238249471668221608725491858637856302050035875373106365405878144294858731188262600856909004764088868553551970689853099475648004365110822001524059802442799849082243130724661442778514688250831603659552331483011233280266857856258918174139745967323646163971853413238326215722957841542907839378173820735141567096301468963794315238941514109883510887768757359575329699765711858836545039264977592311400410659931323714641685250794129925879279356794320697810885502708584564635689275164807810474935384966632206136495346321628789473419769831216183220932538661162163333488563279462860005078809932450234051478780030408799685774118919371273588064856788398622294477707753820461660121016046341767656454214137407142795782741914166763945837906019452506923501746216208753441304790415849639818007803929092744132718207668503117352506329903761015134967936742665343835645945498805092078991733753494019696491980392058323571776330048507996783813305821536302916479963874154560458793883305750493916263832473887913493737546401726034951304670197347314755564855345515153394942439039442813847026945852853023188909610641032834479707406891200463629593406960261552829512636953045382036244957908590163161070604015721877510935615482518034279809024458424543550600121205452491400370206992246395252800490129062524446245687060934187910972986527473425142827667956449584264157176503632891225096612897063814310893490868035292409035008097597357651344473448676256031104262931762141875747130544129915351369853185736628287393908527592145800198930145563705260311280272565512283527323472181295995773532517279984656809511250500458139091400497230171471214415263562653713999238332131638698345734396145514251395690472664120235432744792913064192375552621745772294598974820589523543777694878909430569807156577585300139354159635085120212915477173759847990131987849761436874511907401157688478698080710646256577712176690665595682338151058337646154100040963689092662318435558710800931540713715277258984816802100971220066681739280934821412835252573384131120313274719617628619454778568807975596768592224294971016243400794664917916714450808137187580118260204463508966007710452680006325728703279908763767683745330348180271242360126559499592983989335473009652561591063082022571686039269995780379997448847850821416452905495387357346199725692731992150446030580852480374880827330227019143811987602850527012341301785964323093671682410461983720314033829534413898955301808250350494341890418360445642699662770176792773661627296059997254795519936161886056647951096878946571514325043928906426671318844297582897971634535097912720013493107406423841865998564259191234510117323004543995030243621052373696940902709410527544462959647035007433028213251342880502596444283922151827767281654053532543685454273219364768709841605001905283296284717634342038057662975304352568113283664985583872447176640781797073082826360588678802554688133189824713057009968183121958471370894918080138024867271723956607023420298222694202878534577584423692259337954543333107170488391015078518404851675625114230903203065912864551817765703532765409925873276262229939445789317235930902016960358954548305227233049781276821054987235286125680242687769067734815744148077318764422227659950894011522605863078381313879084858032619111632047375870598383875677994485170008407190523580866169433347672793517488532800031263162359857224267833052276700639661585820891983729649993429424255691500307783445958281600892521748094961161046595616408094561712983668074268828562351080715738963079431628748129571303951553525667854769412110262982446617797932292065536868874406714654061325973070398300419146127286546555449172504495493888995790592332720794661904879896607437701506244598358860669103804882038541806433597595137979346113008258260555474989793297709380070155875229381738677885338203844804739400349693794185068265431011514579602339718025801572131488398784247768496173523231157667009981854623420872747084362699440890652295916320171370393670831177574993845009750841813227724494301543928030184972228807208378755530794678422334579186672209541417547593557845018467397246672789457633777786967208665836038178099649736135721092414262856312364634345553067198457426975611741389101969936191883893254728239597855735732272465139738070834375637063925183397728272402881461749728745309095769648227174387285199779243080715556546350112254089205856364515153979284821523284850265809081806427843287846405427470950099097193965933601208587608638867131833765500165193837488725381733502021798336032973003130919527137371373580032239433691101953453193953857299529861233789418988308705332108278078591879290661077657303814122915590191938007459045025763987900732509927984176439560490648391323061643792313133352693583773834641698536807922958949707895865316025252774114962886299522204936627046409386371484967029971782926350335739025398035555814030631774825222553805734724078977660197690348788918851873151787841541619718256396378260873014444439252401350833818237084246173987109674775143199749307406248255444423540852553980726655445692385871752826266242684735772739884812988976428008127603929535073899484376370452945934982190650937977069509732710500222326096003239968795860625207566194619997181225205787262145141147376619194664029179595778637769851351908946212736719938276775696802292877813661922568183701375948584289220224906867874538536674486059777067819301356561271646429477014958592662976354874105530772099992122376922430455951996746968653242622128797493521366978643203047537343268452034760880578702228643824657270208242666675412994140819044679769682342404520827053300128251685285272185559574818335207737919496220471107565096263670908839075583739901556633316681159415018351256710134829517599333500026757991570550178353795250103541580736070418696244944352807438943896631647613623730535136167182427782767548040945326117923194902812882640867683366229319972586860589870765448761737741631470275689181357250176310782540867800239810338549334923435949321100956415067163482030743778932937128230624136592782989896179403379616369060953954698897887804771646913901162428874141027795390123836807859578174068592853519654761674092200244863861004031366504430815987401629821792317165949930676832177221562656619878392816984454713801081477492457773552900111261391667350316080269606189366763765785649517346963916183803109603725520783302240748447844938643566988117220179815870794159624218011854981159547794332090961428427989709272062367888129356541437707338831652905744078689812539181332938369052189289231562968613295671798786181087896881765374673211759731626477952624481735748794272482037244898195505485562630983260437422651089628777303417126507802097371795048445706086182250584066999181514358589936528661098605613755658487841071908758543695052797836380517927927261227328457250025844904462796739228172394607241243645388238635628486236479068947770113131320995700295795450923470441506073358364340525738336908813836719229936979072884480745424906408127440245730385088764667460849998520296836525183631271523375239336523905033237221566241602399252592118692110606773862352727384695573125648498035951909894068159429225802069761753602441106532152642529744257295682618349127469835349119434910491049291582830900800472835792531484053543298551459582433335591591715983995311984628576361154351572450486135982956072668041170285153898450119304249582224210690907683546903541346877087540163639269762356295620061076218043636917077078730169758365867293512575378295226146389098429656169309998985765041322800215042259660770521468831168630739592146021481853558707512948887741420980862912680086510776715125105051102374438078625039418138067201983697404462045390486999320046672347084052487222669296255989864727027519325093276263960144407746298270914541208328127248021734997582348473575640477665144741278846156231961421778623018042151236553841995394333182249443990457169428676835260856603992249073091566991369667542124123914323288627162503378823860682074246267005789498000866951225822865698070805958022666454294471500190488405679781261725575040403513812621068814278161050277541105041929710520684989696040229153346567187976350855238093915582903133544904224364051033301069370803153009934183921920883514016432683325756828335613033708452037730728833971096032918154827247901762770870573848471086988370178905174071291293935153350314637558486550195548111358110751542113468067902061059830325318297326991083567631224622474768183488005183572240816507944350408156167876932343476538969636104889722731510445359311836844055795588814662653565510303147859490461339142108193225891455413499678615448187512895271346549671657741791958608401647408140348910701249648504958463016638738280332261957101661266736055211808134304017903390062923913634298657101483806466384520288089958343256513200661784841766553354104848126165991568686172731918643097997918516803414278395512550750967992735560883035043325576544839657050141780541796834679871042831666038853359520077444247240607463162300106328330880157712222338397994966692895010404382181715162192725639883835176750459441104133241878285616327207825330967487345589178217190919654563295611172643677102927064543512572911474978605119916481406849399598133384587318685507339203763315644189549146483942318676754786499216642069916570534035875277552465700109546069226553739661272285956146263178565444514786420952250384474126988182289679205418707665377842373186798493704288659330177779764435747727810423786710117936600432613043405575329547055379429385185552199019300639176321609910223486812173188892593424202962922639410373030106183084738744036863227386265615969671195794255037010411319372092849063760376181069465834408476530287138079226178492305521049915052131319181755252992068936806694433391136708888799266786461767984192557779846620807816066022332591748071953193545076259577639961805050134844458648298219965013793860477047052661996055983851691131521181350664849437985457570858887603477169746591045270864773217510247270501405097352349265509839592998407735098207726274767359297447140447116855226403553449704029255980239903341081594235036943851370593426728885694658566804785881078186590527279715358410912959752589838092185480464749280579324512509270557161956357876685659523126204229010587996702708400606659276730158934937121442474039748449672632703023551546583295797458180764914409621518981673408960823887784485639877452372390158730960533186978536776778637036976855528747491174826755306435454445191492199447426116668436175157306104611427107435574672362626293323361095889865334819668322459206825717954187591376514660597841930865305887298890747184321859665537307734489369438858949481224953222081507281574037226759736730548252836280247365214543406621012929527806663060414180279777973554261660489295630963503207754372414426877896827586622784714559451658659600106452048644041782939564854796919173548355895507192125621865279446652132475935986111551392716505846658919612214889059014371865285445751663402076131359791187072409632674121953004903835879048081526997935330163834157928902727737770260006196214019717400771296855567088092973011088362407680996839837856212839197072586514224313865935862839244731934420680773526427905510342758963365540933472966955376387638387519123384154521552392285918682564320293795692677689435819339446206306435025118678808030929759862160929766673375697259734525478286352594940033111835003982539678200093438102579540140396113760457243341144029652331817633146905802743414916794812117389022749993881269117250176149085475499636928896001553582709591531583122221287553263751886943316009657095080982103939006024681409759197300736939053549492571611479870924732589432125939891792089931565883798956723244275928154961560916820002328304805564902088171737624514682809214113946402987662164703045993201898262375619221355493848177858388808853503693546424190955597536464896488812831361556210581619011121379615900927135781094839943113602046234378675342860752892713752558194324281220727755044029741741170484664482516761655834227628233286401525750637183613359827314516295528239225481947525592712997858714691462939919106841522671337920876273715515332851101491495259859354234517205918153695311288910324921196219056085990138348716115323561425453315322893362643171447807497685747897242406981152077153236301642267329709869425457274742208956534419176256544245946859597035890762514860787361886482861392072858268769969965783581992443180081400378132730158099686053998359565581381047699020836076445110640488631077287459122226762511676087909959818925512484505543682092379337352795300616704223009643901639099422501183933739705300087544411165521523616075266520199710513746258461787639901055739436881368893176227605072239716616702014508887213055595201721303577137105868169607888388743296427180112001536032696789292647472843869820717264102732692750590750017585054120410098369181914823720608054635322899849485785749245177530406478348956871168055637464273988898853289379330250761633222775226204300387837082458278700621746870673287929594169529814840757023863014966789455593473624528206705240428301909126388548667315768956873649838104995218942725721282634594325960828266836741685344978044922918705482890593405378952573519579250952356268670172320583378886920319854928982528831647521672701963346022615260236193600412479651682526185298142131170410118153718927064977828318715576556745345446113602029061160042871840083795118567086054534359592546208356256780083310861777665921857566332363576462876613102105379491713590088651299072454820469742228633672147309371281164730744292606259582155273365799638255673273522394305974695748590519881773655017015336202481584066866838192167358246792229555566728979531623064255546078010193505473939440649905667756758079553780160146633599398544349296463878895064767514442382547180898613730904660690718352201175800374961584250112865947597363110871658990529158978366173119691404720574330465985381966625959429834182096500836690319765730612025129397908373479039226419027284512124138829785348381762646576506618533972260224909498442383213024416816569962223924608743404179236779609965140864182928012773090232389172910115401631330585233856503277304812212388685883305876154895539515978883546601498015544701125798022426455079019776563885160034517140881718107241045569568719846003777640106391430229818246397087570678423071785976077141099744644308084716088080343195479996743945337816652274722931219650877481134377422969836898472728531473403562065790668021649728180596689324610446236364563647474511103636720565973884964495147482623084482502859959357664183685326197230548959778845706323783126695160715368050750506990187976933996837395271623103858998137565442172829421746803025913839493153947832854756086267510893936623782824692578772715598006226651731306424747456305551780428510206388199403924412882324983530837856214352052625602275357483838126792018854632346615372014796345237648129693584483519114055965146688348252955653459422968938062488530288160493636882881496768376400881232073127454788275661950862547274509372377081335710600825874640020023397905524694378746827569232532335594993154344299480319371520470583325897754889400579468823746475717531757683868632095886863170498467283093864109675965224745870580713344127014562280253446118866975111572584793881739076474474308132385838330268483906646472632920685292662836103386099112875870593378722507417723623240782698451166646903732280618404643499929508776584284544981974780350491414397039971686768150801466880711220308447755548259000322165568042934604152286808757599237421906605949496147578910408610175904270861853142257501130494415976161056794506819345778482417590469175739796084826798947243581867655711676078375600385866181313007766524060002502590169465605914576108041440683784663769420222122782296972158319999785937573224201443011480865232029225624746759427135961732055870087664313293247306136741838130272324043620377846304247179452593953544942782953374952663280507582373914443006785952674717582563101341051117862973612228757485979735875689833843714418613017458219378634436569724706774217438314676913288859906034150089213169979565047781754069434984412281729682138756462107195176962799104961760225358220339273492692563786557296749753696400981110799581315967665352426109865802769801582790015988646630637266405409417631889529098551687349466303554867469123255816457230612782305741534284651596695171382828070755135323042140955977024574591944697691496288685375606000226008420592723594032281699088286210861338840314171031476730838865007668966366947330497122337464613777883229298262108186597312993025289505885927775824464434288130920370323880060800604529837179935445350774420152966363928592573464483155177057468778307228342739183164573842078232105903607494072380624498826896748191472761460371769894140535289689328843022007373406623887557745494372178350804291582688187139257006727637337294678286152916230727737843275726567216089936964857891302371518671303746872309024339759562067179351415387430759984643479861954055803288675466073153264512739117001781381982793318264417242839513655786650747691915596860766385016460519191385234336810650796505852397729985811721985892113180140963685424519263627614496893685704600620763510594037105338213166154640586330802812216203525658631503990969297545064054906495329936864044409608103795003330556844837014480241039559744303008268448795815885369187668470934732495325545962265361778849398174360364655272880939360936559187377391195046848413719085234065687277590239949839090217175708662883994592590448202094027583765500478394189446544338046590053276585482218496617543169392057455262586416286957494244138076020700730997498762470277921602379855950700995965363895270168245191222159598741310853327625785081821994377810830162359215454940103814840302059417858522049876474417817253917963255824270661094206068613810216499110125474221233828681614099472894307500601509591313519451502833085007639098241475860128573616695983901527214873162961245312841617678273605879571780160358461489340587305458652530933462413437088995707624598607689311280010987475120978110319098562206018997961997328529983397035373266820626209682700942270367543881363819949657170834682071703323826555800441395141304518300056224042963348621745893666497259244798763727238888862626272801532472344724770266878793337431579029323564464616468749935203150322849292834865531908118288354211117733376858223317178501442481711331878688112767999880971416266061651685148308424721567091525642503318708461132685565157636371493412454014774698109209401329002025101008572832965338541094641112779229080403577340731884356873455272847462768604014887901159751623396467172440973069042288449673466240432047671044754172429119334436505443415873891732908705993449663690533167292282560835961179935360294778089961179311571701774284235876260902270431430212641609058889622889196623420393099484262316133618801486166308147283984500119828300635580177657766229799554470950126547535448659475377196685699533230486581978519721542788814790629636955400163537575085989754474959122574185303334701578001051564022422391203831792565661330755823860806363583375128217407358124536583603383309313654996425280080842539866472957707281282889475660180391469681634968116476242187533530062883507137911281661910437195683305283940654246882782675536837679908236836965444629111727854888664567379583014551711857266692600297651150977712260619183290405832416872947129237782814245511747010450009468100491363532086014851958757707424031432834946580082773740027718136390055618784137958125891903895429431247670605830108245312607052390217118445403539647099309063116448112038543189368389587486319087269745198631641907456358251338431681262804494861716267655290441370516519181477601371613177353298640811488468945091775456383627212224155710175027537910365662741745370302400561314456657489309299344598569714933442097878496237281998406150729436236433593427767458030056951154751100613213807580231426914154982061262338709995646878954341748980709404548571926093784085287800245263191253514877295044643619875608595480186040293685853839074073320802978122394672066501295010047604671969488568884696542936833035065317183167347307698026981235822534501292818331515171832221818860006752957526619353765742174088561233040975626385184182545868641422535057618493132947603226876998932414064996890553539804333087490932877531928843995424189895935845816736245546166219170845895881971840106972750125800373808281430260393828654714777461954151071944946043107079132489778439013853188572423555312047413750195218146257347046817995231841914029521034536074777368510285743524360702864142072174847781477599091037183319463511568686698715474837615743085543247055263529031029131938781635772539945971144390759770013948087749765980117419085180820410799941870073719164691028923387096897712206658624305698324892737290440823305564355363669551992321442906240246060073200672324113175213210109432358189643938414930124085435594109023121485080762087808563859764920819825564504802942687067282563679124221387800810853562407676414705150558345168844091888957087555238586066580665066027825761519224788599815043822329958152074945123978930361633163540648014200379334499966675128908241834178519749507900386517037681963838800989927719470002815567196601609685130133144698142760725039589759107642633334015138888039129126784519054178858595443045995104134039359356626910378341935893111381798943748900017330710140278965317217268597957251771671258205331777357419652105887169825953637618623888334996544357123814067936124689376433772435337186325808985102831212159308740576752456092668883488211025628764274568992127751106682818227520473395906683030118539879373476560846743208163415862215785431098160379715203308958705832750403895442524621629378593451403175761588485380191204490451752434597334683833415800489283126851962722478479472283548990288621745550098013631468985969471140518091971846287444376545017808793772566101980303726657747687374567304893424613771712438181172095188563843459986084275822108696812030000466812326817594163719992687393205824156735282426720322527944141328879725267376980963537319367459355079310362030912276814476913733317139847488673473680578470927904708899364623435758431872548104561571851313658018193988743718876486317029725650380842620137689495570020355753775849757539246617861374301584862448656394135734969947607861863368170925363122919256884447281873622117630163662108107105179871115027434369929972546466784217553378507007710105968093394353570015926382801309447726777372746817309043480407305808048316623353698914533907424169857725229893434594242038618186522858087731581734771525584680773694612585917528589771793125695383808131220903484152520049673016421322490191071179032165034096420365032711853132582280915735220033264976178963116762423782504395815975443594393496490398813397930290422222941420529622429977376578212355351491962187948222507062953911564127538255110682123707169736958863965984082872585662381036897995369083451907560981013027622326325217584210122660241612821831212519835771349774405050153496822900533063072257641881073519716190384706510371655912013832622164460576718167926495182579815517666583451637201226086481141507584914003437411235607061785858127718940028219754401776012858563633083074714010851625213496878205993286793568226597871526037409768586845700987602859188339769986896022814097424362091000737157010674087534397480072618064419778179979444694043367654094018086476910415289986651788200725559775141670550892045549056963097398745870334505520261617243749800642916082178248382059266498882703617364006456977026432940427674371341313890700216237015739504163816428954532831387083996403664871842025226403094757491940035301751979974862990719781598622678165704109866054318635911660695585349710446206423266718299507697628648625004515396355746158544528695850287895149828084316336704503229262466823594586481786037018180518257186578857131128827185355804480326936699234058944964062352077063140141752420158890992730321247700732908036418402409375651547270310738775059955247754917076559877561342409907108937777386621635017611223241383882150146222234800544173301247655588662367184558283080039924715449013328033387918051790722928890240223904577641451022589264837045779676667743974165947472362494625262123458348312277942510567666699912992718093905584708918555537504263498052413654050078773553218696762518016179208051411955456747089016833951298477244951281041663618168815612324093332530943065239327116392838110126807519476521799537517997966183937137093231764523627098561662117150541626272813360538105606944659040678790463532586204625033203723607973810296721761841605477729177204314198459562428136060868649938226361633482651115135986934978548940886286725055849938972966872163845016197736989023355702903644527252426180869408663239223194389328609903630529472213549202947992752137157299894034060621113793719680516892907776178683052481104029922549927387137395502813741990142247960686154198784700318204309434106842879462204378759054166452620955370071857224306032741402070497469950312717278686864828537616206552121894469645187426824943330466707339937873622096753570779312149694024322953282990223734868995536828961543491336355336155658113269238163449694588486185400572649536473305561144791288305990071660887812036075480094713985905773052660067121809432618330950403840192747235507014767591092761619274855352207362204407706391005565784301566905939534164821879665545514483012421928583936874983554561798280434527723099805147640850196415661731800994477588462599569955167423001466116801359730186112739957271249401437253090645827717801429210281673022625832478655123537425234112594518462344983671637591355613084393093337572183785876714370777244539160367566326201004929170756866191584209630891279399049392941641255950885246306285923052532809413427970677878953744429909306528149125802340887761776667612486170833188693038794073885869786450961727552981100061461000511899017861100816520799448419041922181810433796498036519901702869078197982583832675026690461009885979603353722641793916121494626591761930488334927824591391657555606868112832687068296979337548155027648367976608234675624682984013534579785656998317971579453546694829736763240439840972526322181577840553781966517225738673167056189669475692399794010027990399732043312754124100643638701703966494974926681339018501870855424765967807442262865058055941742203215512647547516246645079042660196389718358964712127123324040203084806719286644280164737047744540708135494252701301383227206515155684924012172086525804933417877484979959780309000558380541962492218573645202475255062144694171916623803469914734674166759401025844385804088873186319078427409980733391520114641091033138074365060068752518957790751900101809565709325968429902502024508556066324391671500547180364466387539433217281111481530341267999069847583685312361475313317325911561445660055716473708201207015868412390131649592989915101449261639270036193539513790665412998724079947068040891982906050521242294034354494319932614289313377324102247508003316915500783530638498597106770268812983330454173212837141590394487460325010750321389163371398055790716902383488463673838428046409476522363882909193765667181652815094926275045320056890542717053668805642581993831827043310588454963104753787197245794336589599918998948218772471039729015757430787114466899518370733361428682502683074083359360058113757942892728601080606884702334589069790037767467777842611762562787699375454742481638003142196061112765554028799182938697912743739605156719951723546209047225889415963427719582132889233521526756519051012611183794339471575966277420920025060976696716066225019129204056160360107893176625495964474887443073989369696930051946454879657111133633428245399453555499931772953705191247569827590973352565870579254006542637556875421417432118622349726335394799648888088874241212770644084585204223193478679160018354027867622579680680565464139258676951435928201078337708174796878594497886953137573632510635390327684389286909301541304621776985616760183317314749074377376058369538960208262675493776899780666777447272556414412430132322147114455830946226934755384740416256832048559502389022976183192830686099839787841972344294213225747686724071737515992247346541046976631387491860372333654464085859816486381237680226513550381436314095455416879751285582791221661298126564642259163612515937699701778622430851918426947811303069729450580604812448032198324332152558503122961121551487709721421819667734777971188219160433550190638104633446678983213425618341927752473941008351903550738219152590875667535811447303017892862244246299138268894508685993842069954923526460793217215208707330739239617463845040988911262120057985066013759861896188583792605719237192260430742898679577589762735680464185754737839648807936203520505762952952129648040851891217455286526413317059431050674619520924337308643441598105313772973158958508921162608647321010544113326254570595181438641152925580128077801050556878314226389844196069855065918562898897685568458719328815526543291332037628523137575847910823570148906188225132061241796435528234181202617097697688679315888295690289113648727216273757937938665075117998746945660963356171020778727728677522761682192128021750936286088201074006685823240878245500263799342978555246153974096923308093949626602621910191138995136168890516641689390280333461067928263853135698601066283980636551153979420776500605041434711425329302879062909581502580259336857294471760476766226638143902447853752211617259013433151037130190594982563043265684260120244219159091033901785945398020111954580879031177244175793192128674599655450592394330728256008772102006428175131565228866550243252765687898459065219949153206748449613509343027729519308534714263857411830493124104509657260036427078987281378315946661309301962896783121973213844221234810484316742497606704877444503922883589414881639075283467207553803223025703547100720436448594758483096167659751934620464583379625914213657324752313308569374400729633317064817293881462169563861735567246731039797787092272632505801990508102399273266444746024831828285875109832761941362962812640267142658921735375035632647145083256086512332453409448545778970941005188242489323045645694099300273288719064264149374852450355261661224682856761038026828509689442862108704022183780642606562405613032994756563685460415030816447027077684229955044415154474030261488519575493538128487074763951302835105280786422726076471245204574685267436028229392356455250149696084878418380583643389786734938895783796463419837775818409516133928663788548148052248756428809275876265695770139674182214343366555403901712808104337896143609582545320088643467822755191583413268966936630495827244773491445105108729137384648571135370765705133106339588095332789006503432462053225527864889453741945089743216911720558929103850706892295857860798588140741378698114831458761724385995453557870407280341056383635399780842018800996073310534699432951942319972541851514697447141888280316187911080414545734531403889767629709775893351892022357908898255075262551565309246129141184788713772313246608665292708420464449290996917463474336609746440106524778486334360885122125336128219219757962800080395073775972598407888845462359125408930215823289332045658921217373519813487005617336727414326548592975952868773872615490245596260520163289504950557263258941285531760318155017968004078385391809148278661125189643970279585168807547809313963335177579830722877981757022186381861326077220592033387671779477458116017656497542407159068192870838551118978183839699696049923506247465336078155866178159801342556474072917546556394052139470209223188093350154487171626758066817369371930372886059761154863650030174331248451436306411501416770247706638607933069438831367987932329105020788747187709166415651480000773920145273506230416953274129465516092566033199442258938835104772504384376548177365815312637832229482866120357089443063265208216067817997010188359108357674704038083436890447931834858962667210005719341811710531437809078270262726379226702228232250734615691374935193830325488829869073610215405976751186747180381516354885608667586370421629674536987656028199332959543606618654301718716916631774354670025177525900201756590425650423456134625401934178359273516112790623115388100844972442722938324303167395901496803873851031546435399060034214871043485137369213823558999756717713957376366597937474732566851259832534021885241249899544140953952640049232848896834124348100026798806303744647267697417121412432909225787639734240674939139968253438486286537734188830046012030759580066742332171859729720685642482301082521843481350909573532748958137771652950251883014512235361210333782425926104191723428882203995497290403542643933159745360352194535543255143396626666590366563516733628951449676188816392886251353010278152702135454990925566816722544353624514214679107126557745077080514667542517502888471158713789967091921233511861296982885435276323050200103966253378586401559566498694678282692121402053218114912052060518336016019406581215738777787453148001556924949178357979981923691814352043111051580418710083679229606953561890507255211758834052737425322326513436505330232424275778244073201218847464641218492995757227823158119042914588732396991506914183749613640371076737132229166139492244996443754212670548740101948198359319576783956935697126694478203505662640619380416588379379970072593718557685137447935589278341716534717983105863646012986577804716999557169673912140616768628041230393962019345819521204880021472428819312573114238639504306926818392884449612384802831812196531992757571810131743400585494104932808622265675070516416310960014499791144223278629556684616649255850352224389201775064072323457410967315360218100830392393414124149538672205858109529036155377069331657407298140744100847327153781284077197569520148698127080338684016972306705258249136015172537497575125504881127411460991101567212283155541477673793600129383002596953655795417543393630940532964393428871243178393861777319137421174502382652907213772975497079875268643115874610298667046601020656374172473757221577892298614466692368093319900587091497649265518250021634566556737442464515807192617404934582816505334270579104331033917723098493493476059786780400005940875153807703022432543184351950785786417371042911709202273585757861213315670132163630432115863229744033035540628969651640188449403019277473435142430310578506392723871695019425662689345331333597727419073498373395675838631397199453320844610313531225398924652377453511506213864107893010946339342984969754216825141418847688398923813029468682008926981145339252555628431901584037078014928676931367112335984330708985716060463481624789597214929294618635353290597126115296557079545611455795875383508997650087293270148254577153194580004437868635762736152408169066291046798804486620178377484047124121387885573528920067379143561804897958985205999591711052055412545200821208479749897315908345283988815890787216054334120331042350965309711696261799192757755881079276747186400579585083513445136897892769181520820853375486772912113345198548432050705481336382381330418897350822171030363733009200232402175236759243294350679594725221213538868056160016936028345577272573234495574969902351498792494085779659472830945807593760155638226456317308648733480893277181586881833881163445140927012638096530609203798544583302576233985342120343126062229354003779100311035337390464136164366269669679464262353701866453846954642333954761899616103457190228990282485348775794880698968536230913645635888097138763216472596899939104911980843202159439000240540159970921092403801882721789540291619206097153090420705883510491124986494526430685911665954061809267582841796651789634464245334810018484480659295032257434796763584726815612582764613400311125151061223985854941321160769378964357520092583555324336120069622454710010883957288963515684846094873646137841089878825506311791819696084601807686700884470348673143350883825765327956302607811251413153110524963967349547815127643004113603176255604224599955815407958169706089884954565123932532723628091877955842552688705617804871319624248386062903872249134464113485889125414018754241772893734514624605632973721660247191298912712860365215839027114852632283747091189110754819162766026904261837047529577523899712845927429665891473260228991478401023061659212092063535392585100050222202874426264682609506748970343799428361332510639009788452221711606348263001101467562220433404762264118781153411988338290273220682938156338731231451213970617610101780971384350984284260884616746507219695679656733335417809154310174332215377874488172346248344903353613395606881361682725989835116286506314306759583171183494481906812798077680335754089456798320381794173283175373086339582341845769428150954251485878060126995469722355915754634197030992221366043416443907194179787494916382803813738075207685379665489784659433441156577981302942324882678107080368004924500582111209466889258410348487385203157596138317209510651453387455479516333728018899270440933923940635403809827412850234249012350601190075951469600994326125852522909718636675537321701611723282100771945636302337898032312470695860961494322619737270296035588359703568301430627116394841587899080354043011311332065994767306151509534599149828096506754505443238943224408076894362242685893189070228797623175342618338514069254072110927946824075866848750897523355585543305783020098501898466882550287998378703687093780093040799222088443153574475573438374104417956628445916494119587135239130916502091360115778608715767337639377784216463883636915235693207650439530145114021867221600802787307448341708422469039698284677081951260068598135205441970391761860817436574560296995075907921147311748973281968901981994118790561003929163992978345528615710266846676086659488071917603735155085626619176977593418370143417630354519732487422246986420428032430839250154837589518397250160239518846524234519600327507275227946688146676823491537561402996426172323015635593218529596140412784740519074642030427384070042305435118018124176042579357470473047591342412357665644737202758336779470231141922925929999014225437300996647805470213681177615990158361979346803969339853766474502678616607723401800271053532405469906002671426254276360132001695448590516420588352828627357680572578897129130452247143506489213434542320675666163186087562026696592342721402609382080381350795770412280624400878337861799044908426736259067628509364627142404376822150842819740200206796450262500646370415648696678327546341336618493905115922171527537908430299224837435179538607942343381309861319012344429833494058259379737887267461977157073674917384115493561262336302181545836332141861415871858993873315810917375052766509738679309373244669575697095590118036836946998223269483685873934846610330594638499842001189763070067883601176267721605837121072024166075631976088824417616210731632252148289294819873445420342317837436046931792104719339387409033913380196965194521263981768247263350574018503016607839769342288448572067647637963646241705214444869942052890894748859131669110462586688591170029584407785958394937784140661794839744028963183360640675944408425928230152288687242239889529492067505284753149084197355274414265194920522501924719380887034278300956523220089008516399710144748308023508758694392853862236801612873024019769933512791491105308855738922957914380875338475699808766502185113763108164783199361325661013311249331837181440771202885374734666934844267594928297347975906030010973483606524434228021880387281317573257227867787641555999872116826473794552070173462830213804849418985370829788423002148148330115732608917131413849815729503512185633012429667663441432688548469834591907685055769982536776551780960393049035309786383936534257677111954801789015210809585472402755196306274601970622150619625455994489687065759836900998048313598729108882193291890600333984395509891781961660928892260055288520371392269354578302117267194879436576070367914513339618501513478106752926711965261905541237815228903347122580642426594896394569828810118487361002785080574812557276571547291692378326091080252843210702848641071457464301312030489501940878014854996713614776999274055686165414693580429471553814545820932467322538840367942475148029562556625452189242982912953453005976676910782175244339867260183763585293242715474050688683605832895948005273338332390779995890811634137839561076713654536286270735772832941225819184853202426535860281222736678238975677406320769461647011999955373679921286103987915288390937703363765389297996786675813467904639242460174797684197395896225978002347366894793980668839207795025060697781310889578654789699525849656213995717641361943689500322359155283322302546933415532859475130243211989418533992384833025193125840018879527338616095498822725725007558642379334259140943108961784425931467066565756699491999233119921818989373771947176252363884339134517008089411309531515621743422736342995169911644236705546587419465046857341840504303531471162876015337242219065544007491302887620057293040558367373139835906991822828529249036757307490759057419809790456652486848203018692353397640865018555990736012518503489548811825223215680635053354061517677284202423155351719068569782009767226470649423906389648304050728638960630412635127366223176843017321779459865932763552381327200965839383901370803201336894208350049852589990673501597487667547195068595299864675432954313133141730288466780536345186102995544093548471112042733276119787632853193417056096000860987748392769302257420014553127717714878362189965694453903270526030607403915591101155451693673034218163332990506993712719753847006221266217335257364753543320491999436661732841171837965328496111127972393462492585211034079821317203227463824002123122004525724610664900254491663587202392381677723364152148233848076911133773846792310148768707843764382933045041050890597930034982172251160907513750201512013949471713721889112667645739354343505705741208967218190672498393005640597334624568312316971101332798376301798108858913039151884867542067400986512818995358426802782141113486075763254926209093255185032006500491265052643092074380243788328172372248209529809783967085603577569107157689822282673385305341695421600222516302714192791906080383179621964096228316773906324869386904317016930917313191005381929159089649758526894316906905114363156162874171722803849453413030323271905277305393486492202471345695449904366339369688368895837959595686068643719777278322906506742075806775165717138272317357284472094417002703404317247704560644211221247583486667220018863056409630386708827712596522654343580581229468030323614760892629588030113051572718457876947416437823859145760236183023751908341859013201800649919394666228147565737025528755836399735840920084470360415671122844204124684690527578177214414317771477694267259013440130552575026591215473490645986373202578707925708224784480504274645542183269377806493423278518596753818819100757397841797090349476078169259773642610824329603215112293899390600045227267577465065652802973293803941182894874160763815688544551165141590080527871708521164059907264725973899852317834715519972003422780317366194278883781252164950743145471775240584165202413193528462865481120358481456379350466985862270683454621088570325905548744718614284773421207498421383141471302984028648271825310871674505369203285696238882325954854937050721048672004951576041603517992449196644814352484364126530260429793987334789943632772997176476478692480674921804795938964207759586545238038661931872771653950459083709720409080216067126877734369551059285602896477858497183233774627145876056694858031536950971779960298811814700871310342498586555314270834217472870588865214385878038618893278481542435217736245900983979132776707626927218839489057133198669177069305349884698310235259563395980138311615648392063379209110391483561020956609710070491188801014720388821833904666572835824737896084710644037286455672981797209794948216301163897150329093140621807938848990135515593851270370695349172658463730089564681220618080432673300151922885258346756267417149776990203866332827035054154810999679023983610280048078055417692215456701811015496755575097786461107094068063083392286077604976086894363032925922245402719356650115035930864253464156205129256439960552286384797609883158869169069832447168025712774071052143417324588603067875257236393499666051321452198756079121211851265573369471947070660396026986971639143697778252489223843614566880529218764786480758599092796675231145816620065197792314020113011621652376489272806407110308087014573414069139094763748453497236651755318856850764684237201494736473062364892064657931991676559297553543397195340542034427119173345308921667634475517638588011430574721411679373700115362483538463445662408771710835372743937904447527923043222422271554852012534830292974054571442794397622907398195608553240324646725937855442140302201886002462350110228584197774940258785705228190925502220047546843355720735024299943033606418242954020815815757155810070355886475454564186226893340520306763658624047732347734546338784998212772839415956663367509993999298201717672979597434395600280769523453413949363802543994096355993364413515255064359043940652609627234142856349008957673891333027415777937717919908378729512235804165055609630821472387299292282083720807792988422179119717865674076613562085593804380498526190755188498249071529576506018820105863936723436162447758888666769362470435869122344022585609150810045037331301739899598703970305476153476103029084429554007335810744471507233852950971582415329034440701871409784930338332828558775156685276071632717742940715033216609791581339367400128470151713003603636032922558269536236509423808602582317244671715130759569854446403072940141841184697712182557320686450645352110712604447115140662830145635306458424389970512324738403495122252169093092401214666952201389401639153146458544995112133364956072529992979365433503308820337678260219390893886485136339608849172666334646215087539812771316823752636096425369323708186389331326878705223895948798490331580528480270572814670885422132833790926239947128286952754678544864969723703261186548737644733920327414182795945788825064812931453980456823700698924708485799700000530552761192032059522403643759783541272683796658010324593373142780947470407912411563688986185968362351491421867472604582053098597298846158043757316387315241490508784365660198174134259932287184038274859715522678749896169886358334145933977101682223788497398822757114492352576904354206382672972055023936327699226688505207694906952597286365901773879765098046737021094843792178240689300822399139017324038234672394084665029674246214624361093070387567015670722821208845612302707358371072304293062118427800563150098238480343909076478134732308508378535173622921498399529006544659075686181684013008676044510487310105558715516717845394715303551473518038701112015886087387873454806910461849234030419266854720033583487086099507895977147059421190040122540928811333874589108759958044403879970051715225532696683760008629587214237291859054194414857268857310484155802549637629985133839536567065999473420254211715296919558512697059704227464795250633571271378214213614733195955651945857901228421630488644472404636581575290685102607332887468134213892799075010435292669315511726463991729334984495343863019502139954232081740778940095105378638263502800589493005444581222159891297905305737138499787328357730482981898480267371163176917448389030011182957330450633027175751812868658101964871569154691653616345700975984756175228599772336702030630296201485336592837089434520621332588888433850749789918709839948244137283484772564212202519317797811816644925514733938294212502877959694073101195518839108347781684611499349228519005185989758003911926461069634306795559809643022852027112150390232893658675060919525703623050028261145138541360139084495104514933453474000216238721543002793596258268809455353779120684496298867028957351175292384364924846743494515323362230624200020725110294269048442832309755780439786764795175749391163104783585750830138103559815735659823108803768374676020886698607022005283238300896095433216974966054859671751872442895619101666423497935587041847689485058894891664923956591530830462606014556771013491223160922407423169971152172827310034244057448143442519066990249119009476506200367858174392633553417293636872283869368971878614705133979965505800557081978651474629843534391544962525210565341058046496041926112133003829086512156480018029248157754386774829202060222601091467693860254454286307375938903749094470279880001171341312822494361494992947016243634139672488412935858843903030075390031747248061009678843650632088885751394840292652732506562188471498421307965572838274567371728324903380641965708046922118870073001530346913586990690056219570217658771284571987678493199861681303739920131304136877008353793414402277742497502253736780685161524895556038241397583614448177271626979052919560225567206119020768156501766919806582420380448501414107856886073363212538091617884162857869049973213252874662395226375613676757561557168080117159191073546064072695357810414950163975346848199802245096332240965967239421924622280463678711667206911026489700760586144617151459144988509870000253962221496856794294784156010830110483042096264959306206296447131110806176042867739016018610906484534089067563162944551638959497801991755114219234979762336951914984654372261619931350225286466099592328645018892905322507855021647309884160579411698643324782290077514081001170509549579986554520771696489114809798080835821778058546828420730199705081548002605758723768022504205663746955939067100722634280397455305043572951967508898275007517330362081718920827182173513252966568337255667585150777788332678979405711405127483637181503038890141816815599980897789325299420694115921217853014987065356651901712292454820670042407666580125635984614197110857967360947805609249820350509694784012119803093643831628351625017635484490780463808888724264679763420229306751916202678874125642408586196007080435790957852558191489913869261616988715449326119428090414363381377684254352922664730070952864009352679281650314745856477383409173929757680489893718590076041093246631195087177835342594192694981013038311906508779437622231364462550467230587503706779916653159100460706007545185734511960357668274955704356141348925995150921721247356327583150349836768659145086628531709269560352921266484230353943979619728016062648718068229303690610064292092739398573573276345901548995774152654691836879693296700499296851897064483327592006169490464298384766169593928697986546073012882018269295239945338052766178502591947938905014825223645400039386415213552474847838894077949521513251657027570194053961222995665186353607234145404616048452914172772151192761985666567756506766721045659089187906788426537461845015136006691766332487411386564159839223042830184162241147453057156414440462636381081012587823481219035801110975512939249893217554407445645460925011838051284166917847096916200587032207737365025735502627993876157993947923630801553243595588680043737288269192447934296783962972158038377724869740972462656734566366878851822824096075751167730062644476228520301567420800310568557118228354343048632276184652203938754386833307476634415782932412720780267184279264956636960072770580711298638439605022764863098780626575494214501443672202691794514174965559521299819284681710027339181412472784489253771177679256449785422229798910516802507308913787880949889476182179800567680888149978205302193660600734178689970132005405196817295916671894745301699901508945361728087673938859128323253189680565795043812342074170412519534427463780544508826639577589109987008810877862888415272523900929506856808229602809443935187447297741432233746593653715998146336437566601580550088402069016925226289032516578742887025318145775954253517105130395333290646448302817350601533250877077956394435216550722121476495868196848819884588393354235552392248329338156981145600878358875352254553565254278929353978040093159073454598558005257806461297898302679016611152484326691192328541277345840073360277960077082009564596851122870582370121139270751027653574852441484507332508036671433636014477541019133625384809284615497385568215023263187118021680332527448800378919859255855992861450197692193797296757762813517450488495969364231466118663503304990472257023903908185307668321537067030634415373418794756172209713615441678924407644703741247152507892736646690077755585962249017489003385046350866424862623446158826863241136914158695311239349268606260021998654066258216257186851104779513775237727912162860075748777539909987063477238512699006949308803105158238978945018019997941650194391664537571623281249395138955496754526100572079687765338637825479549116486970332688823503977991056692575872284635881405834353656250257706757337066686996574583545624081053050050564999852591415556789277993817461382168238619307179816909992698592617041191780263768362656125133941106236968233819624010844212419267698841105590027854079935682443881208884994910695796749933253756610088784493889678279469676136833753729286421726352003449336693280251048042712592288533291213139978121746532471691086734279295664511022814761203179770718075038273530237450567939759175627057070548318821745199774155484445741930765849993025728975821072604477878028616418867115568315008095254489874492030046315246119889094049839949462614936202849564153649861955658401488061858118269332806046865764306294456963749838389184194146922984751152543319721573113642802850189431491369336630343731731548858001456939862865690670566770469095073471794941141175855470572733812499783230362783558334346961743677404555359831956461114869601759479928025774345356089120761271392139996579389776666100914894725914620726955831795718004355165882624271714366256178867577307124269803545657358003980055929816605743833497182405578582432200874421447327904256592926159074707383568522987434264555624156983662639337221112619191554929972492487595906191548375340350145903759261838841465563803464051834336733465106027448396943751407133096560426457674191713629641315604809746734222386651701651626863306488712398644237497926780385746450055404286068257081610385875157133860804412016985002685561047155322397263222707242102156900544178134393253242257565276810384459913064667343544075364674727073291452707959580122733699784148124674158480688332396230282888638883456658152766126509137872012984614277498337304124249179783733480138590791241108733725805318842682411578791194467289926796568973125948212463138441957857028362769956849604271871255534051065571077372081891712907499170906095937834581827941018278530915844377570324663035213874869169076978170648199535416261820730273353763648030524164583232276404877564445920536250036397480474120963766645716493853039037484062198404731381785675497379938651387552439930614798905698009530696191607915191466799633611146774332450647657762320932033139474837632241407101331689316791355829599201482407083743197561248937770547326174266410010686596807034962477230771090822024429839352919698006245553191235751301686091185607138607397702435865765191168173617075522772445284666155918764856508026812843185653313635629889217521689401230222527107747560307630762527694140788867431319349630814810684691681540297544544589808181271487788381567158420412473409852761132444821249148579769553360067458203643552046194557964027388114755819189515007555262649154532887762626223164266985885770220361305940185500701119014552865021822977050765678747601884384521513632451082097578167751819465880804770080888864849106807079542100324858621379541628082236237995282366206166505212345073805360366828141161795148338903522668114963187593565610598076629119963383838421721948403638534549638261061660464809921618904478608838379471127265425214327973910310895626296371240115793409539940227261345349816124357520260386020646911421011272970533597678541861960920806507519444851336533756388833251535481464960598689586094166377309753935179679704146286577493346937032518564087673848273144875469992615629255939936832116483131941169032375189705426123854473669746532352721996156529871242888910924525835993860949199786538017108539050127428354612923509608577919144417127733495809245361838610294462546407233377942412453475811760796334603331519195888602525282478298117397158735726501265003790670493531009944974887886325748605967286972142396856978353997495099965209869436711724950534907257196027098936374984838291877315138292648634299732051639959258752097722932429620457758224031041954309387261034329326481391549941031067360862266282519296749276259612006957891950330584944399066391141771048887573417185182582298748705013591009803882430878560604338081799919091328449040277338401028446774759107626780961651465255213049301335606037263474141746228218202711657427095590668975315995706411373482728020359077657262664071131085471650158841109512451275398902462330292303692196588342146440261006287569735780636197982976486128026618203085481249723225259943345150564507338201446209305525122712057612246889306249861772171481254209513133218244748484122152883841301107950490230469322409966058729448077120186867665279070746075896329757613164969419002155037033300742625597981515965437223427832366994925992645449140427055603712697579142742225611634640098266701645792639482697064718712295213163399551168029913728753954291858303971377748867774112015611753535799968317709978629830015752674631812547741274976937725966774191760617012811692369369193157102288071494500695969368269980268423879322692186872251065388544904527275358164868569699284431021949968193676962656339503263394903069416761800686370538403513818419092467472221534025737206854891064230993590663363521550694315385124885616676968156289972970392544104387909543062144458303717769445300354126090398056386426259899026352862380605483507419911012388445354645496681017940766908575483878557151577050688165243309948090889020810089206486002851390938912722301684192707683434747470870884144731796685307321718702836694984841033364693151628378295205183208943180505704765918960731196500285942004146787569152636894217669248551274986577790467950411725537252213254160343596146685504235773936118707177426025274375778484508194039500733273602381490634474834715827062604263553041141160624410370786922179689096361263217062978608089092838489084687434966682035984843489763265009982222218576030647042984791300620661080398100998830227450094109315369985036598919111897196347994058231622982951070342945216708260286191194015170506501175910946167862797598706811813812817743797290919936354646207965114355405652477566883619442513873466171195195210387196530408297017682155820537573258647625210428091859178524432301344946915181705926353349952916952745904253125090667868645415321190398161892491985587600858165191642997504289837543536935351139756643670019985305192392839208495805263810213089797848247660098324694986067735722082881117349586482736328608675087990346375691241687031515660287088894980073074373390395585560783690415483703089441902495990035791103152560998540801483262195887839750975203237845898065899995831894002815111091097427079456958051491573358213547802180015581476463985358581189719269043604499995022659555902267609028984247347879238428154491521402063380273528391297380728419981069994698330607946427618211662647121965016756790178089151807607216776070119818992968581385726947639676631922852954345347821603684542505668031306684538357891026871893286924127336805242088064630328139453265750916481626322043527208741997225738677211623983462666387578245910217438270938247997512998433386189442108090440701897829955094394414898148623901531236144910430145021187193030647019385150241056880182156941310021547711140914910067114093366898084921672070962826555695768080535067561703501107462081233912419866435056913377266559615940344600117905780007098865169898718825674918744138335858442089829848579349909530276186449777978655133633294000968185917042902913492902191183771428947555147692708209106536461620664376881417370279910598481708627729536731729257912360864201991813577382067380229173584539732467144960831413607573817660973733670028356220755676778804036223100972565303173924908313412395537376522349143277662575252928615439150157014950228173154372059986867424427315778594779092457051056644021658662439402492250313776516259708096652318226622829799794033289479079892280606612118229581902850571801836712212522498830096454737719677102534322566550832229768234950583875603061808017253536041910201360316549504078639907193243831710728695937246557072765879116023185263547014849189196360089800331138903692215379636054116935970368547283301334521692266139553492701385973489134399385746250833303117542347713943999282876228362963507172482767949007625274608177481774525478301613691821633396833288004305282362672944500423067041830701425137433400547040955918146267642349680673993553535317579148281201390897786762367900406063755542709414346336761296759230803988756563046941226451594306969773958434988301607375080590403073548354672895202518265636679535931956064347227372960510987027561354540819552929537430028796188506644785834850671685354246939482001484217693171903333026406954982377331974907753165911398889961165551835260555311888457185244149070251016681429008119566144434810764415658008904062020534176372886046514020175476487471792557166431878519494329426459077117121925002818410782152897787289303854392670521931222515558883414589758738034070926796325015986977554234491395854456730446598909508965187665544000149279232401782945667241549089697076010151657912617382350563305053001252007459147333878386446940568257285714245592136107560372352564336391421897508378760273798821391006985453489769358956689082070236735708124025685624744024915997172828752564840341268564693406015436746442365176539571041490752391136874009376620488201379294185520244007298521059034936374857746899930410517882819092693150250339578741931202241277202332010400198067367944823532929475202442741138972234960693281835034781622659222209501434090518011984930438455035283108203257102304466806992943800255847858466859932831223410626243628360598112184907009388140400972573121363265056029336767251658264788580966573323338362059482716441141295537160913446008622768440697279338290639079562138930188434297206469698743355730610897873335579445725357427476092629360933351909595397932117613811540589058429712217181785595799799967559401918331666737899523736786557153201489862350099962809757520402392310893503806494365326138202588952711991090417760452822801348403597165325304843531082081408822790365062577988032074001499279128133933634928461983674066412050492305863774772246946240787640792408409001595665875120657991987880854227616347321056718927673990504285174604258703994516290213522385793594091909248851832787592123085881515186228329395743547162440632296180918760486944802302652347836588969272649510728997533632233767919931521810609983859820919163929052130345357089349918290603708402832412351323487412207297798591135648725785735162567438674242915628619482555559438994637402969774416675737808607379938758596649829171745076851428718433130600587670541761941596387888535262946307768523028368127309812917014234980794570705920745810427738291102542489304959342426346868550875960733659572836364192837039305047795210349925618721322461842426865087734741259452878979851533529117067490713587603458881302331340876719942425726869976495088779625978877613364466717902259063384002181177777562735871480857596048551728129793572689987219878598527243407599481035188852704065327760464045078969957324433861228349459453490629731650065334829225453376354330253416096044823292672634246881657497084796039967085757966255258541810695128998412708734785553444756377048075237833041397999647539546233638901942884001251338445940406703696652355235280782649593730199424728349657730615284168975410867505277426245096268745146571401457321338680487093681084391831328164291290152413618008671269369331049923694485890255732019176965470158787165963845129053601283899225053488642212253995752072137857889790656976628988637790332880657185637244572619164331851585001194262719013143721483330656827647890140454556359293310841486216324489900946010116001480996916667029180825618142669594716660626423328430053691933717116073928254696585094960094711824542917054281635344026721637988340751310310309902536523396210783699095249737122144077593681209229522910612540201243932484705183090966819639337521439774854335259411611685463389857087286458482652495994498636130539082711032808227135893966972430049634834518059812249871165473940444145671674072828745090494245352084587521694775416366997478842410941264209074782792843524990211214392790226933314980058518118876281519639788267387345072568162255650916252150817341890272420836117136246870355979593837735108141647003194954270471760536044528733476233061518033384120180635425874821650953082309095142774467541943050633663863837784018175235362746523916456101528941193218724565552068854007740706928943752302408069065426758349499604606908522598542304283786387152241462048212406476012769575821670830099470911832277450624705854849320486722856352450400769582505279950688672768394407144768542573908144562488027417485079934052208297485032054679427979765612597621578447894107436983913510131206946874561803857073598401298947444514501272245191689036642941673655839006121458531458923985905297440656792557931767571383191868183155451309930051730278576932260577618323771893359523246829845500156245094849399280711160299868752168380380488157189121832006939534340703891422882147714925010650707890091330022362038989592389012622864324528853889107704627259520277275302992803883283248196369177394626257947895601887846784828736724504161158644710103259758430067855202780081190611543604425828950306578412581761688043304707281753542294668689764035273073560107024100649249243639032288548615649073019789257865890381912811252255449343296305888710688602942735816662196014956045157155050079027761879058974531313809925080851627802955532170303191549641888520206698370997134669462201038768490644974058642567919213758101886351679397980730230128111256461668603677734070293289363268891573669136539607979025066212044856535292485241502933147669040444258789406497492237879773184171443617276455203543867659233722139948893196950876457894377421020884777062208536374040075481478647290812517539524845429869585839693477721981335037649342911995934995401836942047748853571829096893710657904976598545315941826074641670275674954352244733290537406498546474333142518664510027860655408402187023104046807334539993975272395030521054252153684886911384347336268444960756478691860158279496469376819526795872020271357063206578918846337561513873514466992221133635948446550574817996914146307969081638929442638813677156231777938368567237932798508033222493022668896517748504388495545060180804137348738325891976900455202455623002753531529102017358061578429550802288013022808940091646060280733624844216331800752179228112997882149575926259565361138205858132676732031842857494344484321947823355678919463543034282099410958893773308094017958042101772778176725913758065150413036671439894388880388221048379724634603896788212133570780243202095781323683310413578547449484540602817912921124180836186072462560509544991400603611400714735451834824083378502958880263054009574031051243623323763385431419188563659904305285588070739896160904024770263807465084422085964368979605457078610016580967905046525148590360396395685528338975364896915746967171363712464751886238903058393305242434655905730859530769537141864053065936070180449524681778433045562073744373315051493229737142580054386753233243770655516913811486987792658856516451477530887907848996040067346411826917519213015984431310118473042851663977185187525000360047468036237571723922622963569785932387313456329019051674916607540341582267329940737573185105955569698901096258427542204566181092854811636355154496881500232579580129033001225815378063088829717801219028109386217139740870927076033537029148895143111644555869963122843452683866223949576625169074392285698904122280791049917672713917264632615156119387138712186798192664839593611726277209348284801681829737919943194568101055173176071342280829303148545809804319322274435480926059578243204677608345835903563498861047437420286541158315929616968757790728091403920900951112548703519452573883317278919058751574512680085249501442740793121537253285346136820561634592672973691972483072404024548562463594271342516004428495963663239847728830994091279722126476791460751653442058430365111778283411224608987438997132403247916669142350272725551534202614517450999956027327225005197560070770591000658684492972227202589203896070259628038049733290226276393077714920537121550358502510517339820225446848416702315957489867313941007517908333378204104128159631433047950722778603993806966989820514400915254044932056001213259407425259311298086972294994661017647884944573527659758666772285604494551843625155064285241157119524861677591356558542079020530171900485114547435718557028203456067403447535703353868396843703696652953826446557492927488182263420338204589251034274879653118070082038521005589618736456289582638871870551210381438439058571865345358426310708876518360374532415209243309846400029142508046767327922946890659219714786048319044606570943139217155844999302300812064447922123637362741851573895661131812769169449737347635447112573297665851538940310289219876655155314747833781781636383159025080695232397422181382402893133842446046967086216110530523664987328032481792446385069439824105552969429356171151998811996053170068596793399881682660957894977545104663487150037082400182150395089128398918435762401131312254101508560852283393902902376123462695344503911023485569809022063886393736952239948606291604617308513755013572131624464745322371286832692198317452728441170768706106120764226901518611214117519168347534259853618397670378048965677871787307126300380330307664663828159999092985240284589599339216440426694337887200062695511922004046023876879567725438931017593856326540542578742428538941282918029171285696198627367322800441202256895162501838507585816306139948964248237089895253326457399379195786508178214501054581207527862293771840176934743282746368396932198465301706340412143500280468212101513742479455778784092990923555163957055758118328286490128971976205276700293544957983038078173795564558308389467332647977890024430373757890269444095103809574794336104072848089357113736640436401315664246185986677242219836891921455951747124635323907989802312286458740015099615608349223824256148380463644000750822527101221624120096177592244338313228212690180174376381555757038665441505033373212094933802925698004349778985194758380855220023084333200843742584716490334191236724507839520776743876219187210651732625306604543860337568985423046389648304811083031655773661831869145807872963543274152633078388453810960369785457349062012781316391306587804642343665134106297733441933445580388810469053026603103681242683650100745513049315560099542097411555842735804816441308722974533614583095887329469414695187324302686618277723697307638057611114021210860454752836908695894035857188896648803058973612675337980744068388435979992197954152037110662890942397291496325168785347856164645092997749955827118969023945486542277909070113086423505635873894251994185433734019180434735614296516099746933951548929514856357482082601342899146744752095698261722995001738745773406980551294989351837816668692434077947021218533334440542944921990776701627884237550192173320085654610200563934568276646481993460624440800931200600010030613068921639796700974959612781858509274547512984655228202474756363611540396227316571578609229049337938739763947551303847365299645628302652016658421796234218170619717642866274677982300229173880783473665204569324214185145132296879695486677111447675863977693131612712220452261120367754590223435540372657273411900457832025585837385600119726837277047708504991585641871659256662421240690640906335930718129722967793123600552518373143399074168473256672442834187012899377690980249432208477743914448417599621737324069564745949725883098595621472525623714151224321321912544798533085436500315169767559788914748451861805411538263534577852922692055928890781746481605507646635071778820744425905128564579091664500614306053833529156017572665939652968739033067071255058703503658072345618938219422061886648490473965500968656171200493341297600137194977588352983833344212182731876747593516374525549955443840232722248863395452478548781776719910199809035789613478360022868570807499849322789733800118831698576269008097948118200533079643434786698528098991569960369105683256114296141301210585345360185552172582608937723561555973276034466641236307900606324320039001787856756723238215890189516657952029326071131022375268446134905129998579089133579907152733531525874660328651246287642587324914012144466619961889407825547437808978105875971067345239379973642534441834677126404487705282094009204977371215847464043116920300306353742995692601366997029050035421419746046229827320426902113027589120425062454526677061855160226401007712148968914576811401922169112638767977978309572866570079115292635719462380264538564960092100714934229098765450859331219552689783844614221486169639187374099097114983870635010243844608937993113715354073382210027868127377072945799747935119212248186800217134914273656876044856780870251529129674081357627941838909651437592917162140533430637370441687759629231581870455068136847396062961137747872520769107038421734192911254412931871935099513309170653383099212560533665802799653607468739992702248593779878088580478379217815866285513067844621216027314439757825611901965906772542989405560385874605507981553774743645478102745313395295715333627320760672936900941550837977845026746243481869218959769443940575053370864439092264826974644959016399371552171411658256101619436882982423972327812735887324465573089902347934810284207170168749352265281172758229561997695289174321198229007052563245951476760277378812496391099020193450679904429215365164184654608244261519265229851531217966386920423926818952743488061966362525775097487188471306690492763000167164388082098884851738663410225627611040854297245412772015541506862788966726772023398862339547885633687199198984447365866610564707308583563644152004060645735149435263206380809424253877346846187509406748008587930112191721755606065416317659880196184638445658096348820738235225216202173332846560473553721391703539280713195247583955414051883693513111509462397531597838073739985059293069769726381088437008671564023936085962617702058688023423367352254398038977534511343512151499319749781173068983596998552092530871504767184491756537061120133248423334987990811262126384632609489823351022849332823776458471530693705982849179988926480151008032864961731663753435872828299023015947874237853185002272084045432992373576531969878584856358396993846800727865201799150433655880867699730561740181262051492686626130579938632712918938360785530493399920526296895134040659994206660787777386870628974075271587670742252080960277894811851510671968420606994321677125277380522526090419024613532781644349354279133394737902360767894249214729876207401774650527537922578604784553424280635068072608460249743735238854556287327777432247177541003083043043105067469518880645043178549749369743784635974910252778099202887394823755594531846655638500957554574861710092369092273139784088752794774126403977479426376843012033538762461745851624588183968033640933572053276241794181100494466575613363600279795638492628815201908449525577696542096295753680817006465765767085105051229557974142268717597372662110934310924848021164593997105764618237910244686412658888896259071822297211345704421836560927285803314604681019025933579238754434699553687054531077387282176180247062056420446515671608083462018125741886049009803444568223274291951452357967031711191637495853433432841508700114081921980883122432481808610819396911675869220228148533426696701812830568833686192558711531493422260026065840318879950790386845234470520913163464507070375998569405698838948187564983229381407255233884454088788358350114824227865109961545600466216336203817642154953833236966339183446717756574864895730397203894825389617826332327411497840475722312061587619754262103645210813891147450867338984466454808280100403421407734089206296157443718203803595253050454464539545811757282134891378031773937174526453011557919169017278219625545172676080160891111906289159767511403702838885985593518905809610841972741438896208132164568117508788983609075193912621176754415130569310916931139407488662146270642827905073048057504045365771595731263019297941518843152015372767421871367688281928818034938374813018064263392963675129546837296695056900220690913584005817849101739908854205546443417113915673877642216466329098724312139806317183991046661648757765127554502527958301962486824640186498708026152142083128571823712561493123226899648570651622298235607792137402677571250952139614985170561263417138690764025266792533932343300611585378462749504487636407369718245640026895250328291733590846597379097559029828584104907548027547452256357793426563354281812275855748421318088776086309671075317290885953956854249068240340333906743333543074605249826686420720304413139065247062694224319437150205294883584109670168975891869097708995467835550761063045030875119298541069751747987981692552904211657796211738294294537450481017910794010581191707118129711518051046883173882796744919164462545813603875470591863687139995484002373929564561083533216029353833504366963033838643621018448094821471964390311171099181232381109135465475538976463084296903433096188435119618572941224845104774471536404607625961159635757856915006144655694853413998164988840872598787737010388558938591268095087744068646386936911859085327155778493600806066247993813770879818554741202996106406000062023704224193816889651853125543465004180115408248431403133115341096733369277037825077530807590208701230112003664150912244706556111984388608670275523095926378152188490382339682079414480719354835118178595194274834094944319531234157182755966014314922880316292678395971163031986550503813607645416676209066692747975110401296982725369580261032906875822496225279302356834764725427331730246032623203193615499905390842529452853981738407119669498771826549584814201341652424383057011138583726020890129269653498742703969535867904520802914869399666132644716911123805819237596604528947925455985890782557769223409367550242772208393024630406777064142226073667321227251380487051382761875039709956310209809414237416765091629931904501971748500991989193832922927467700127883711698117238451808859074139166128507074685805575688683944668618106851547264633642384286850015625118931035952467815364142116025736213659357486547868494605093019920913023433416682824934077019264191537667653736318344905719652371007946725096317463765152617590386801499978970166210948343355336279567150170839228254833077729323382672944241691972527363148748976592936226700252295195878872073580509956201309982049005425923510431509363218494567384565789333746375937496365878701463689831770650354504189015904129353910047483216266329261900513239841468957715669782832748257940270000159283974433944358886719263274355194917330721069278873153048497576449730201905078765487449461026016456634165555727544447257403446131705410368158320696085679843814787183238169366878907227403741798830171192838932425586533047635148076011343268912305438592487959905900774813842274305914544933090234433148525226632685709873100810741110893284003255731492460931247981616778751219104562848344457133208023236077431507186458673245539182723672001497820915733153518461299303087954651825283653555082326713624687725410865690169844236817201663976741911079932051454649444176195629193888374635037317792860836784558664304445988889854738623234935404799184723066803076647906904602998453188308853900943527573855081163997236060577974567024519078926623479846962671102507867588819061249737314509025891102191090204555821524509595103955434298049046575791426036597566862208912204590521531253280277329374473698593235524939996038367869925798913896989826756352184869043276551700535678130650506600436548697743578279364805329810386946601693133514445384055281876634813219691986519337184147417110569636977660430985401838330761070133522890627243497700414418529438722298191003843644879389138689530863020976805354675065471639795912665421594770891970937829640885641514133467157667232850410938836063179491354580557954177163362894130438813677087751015950379565987679457638117327855454587591355031166450398393776133862350262750489048390842547516068827539025266724541204188300418406633938511000949948210181758811605573408104308858023386910193701405631852662303749883262499822247518837589418902899248963846269697559623432276178553246340163331847615613439511450600308204066749286756269596933152595986741981537931443339069557420485116119687165594668175066161207198755203065697114679949882639181839268504537325218792196481276060212375736774448137189503032146639320626985377797489151646093578145305612791067453540879293609434244830904722954012421104825870685283880380736832154360367985969476578476658181411092997975687525003599853399522534435528919064617736500398894569109598882015581158071853611486310215662224683905035050145670799003037536366377642408388969193882865308079558605934120827692020031809558375386824532814173683188313096967605478424280111065842519284246100985994762655117635451987870959685800486520892870405488754824419253538266136856262544817675031722680560540876496008094782248330681636408311413256556343106444974920648695682977463223487348232497238092106776617342647631138409959681452105921238144221912087534283765155139627619142395388519332900316094780964386615519786046960515612081915100293282275972003377457408436950732307542244438780966117715320422674006581787479352031760898648581227818151423509019184034704867245073118874850059563839702745665408520352680253855277174634311710964500762253505539307413266652315180036414796563619623983098725865653445884691134644368604813867116944550380536187269656695469816533766650659845942049800140337320328119891837688141051204052089358779813981918606789982438074046614431216067744556006566025427256317562973777305028941603321014719602207823867461474700062650956325812363742735637390331194401060386209852814643332083669672890242500425019084379147910339355612277654359489930046860685472427188763588220961799984274382203957547583941293183169221649001563203204422260419671961737990504805066468615756957742051254657581549882388195537080145459466817257361455471473131926644241958010337387139331126698264941992705265470737297475637201052956329780535663613931879784017667241076908765958383460739079624617609329752567139135894639371077817156047956605731426141452541327681497746377280526059828572948590662677085538990601495158545643861488552208467543802391607809565055801975327833552589830372266413898010807197864887564589967155166535050649643452683615406714620820607551028069956076459583031071451880016161352812655526807817670335453671011920681658953009322044113502768622486362617077303331385561995300784293707034943728230853660428383659034266651892461845213654643028916220682181688985711948570127140191854199394813959283216852290817280178603136773206162849345205072136666712285571733531578897778819682932056709331084996375586751796471760995440642891528415131408596868184513867803378225474388688235086188002040443244483592705819760915273136679111943660333650798744045994175532394346222194304018179978161556117505127147428768197009989941332557943989504098491742018623375935079600014659955554947809891901915794082099788864134142862390864270596233747758480748244173126914098141724678499857362963855282794614117871808776270946400572821999333013500292076894304041095440252205187526527093971297688559419495401476107437488502341063295237668986042796275190436480176985610599836582905762038956230321254007202883127046663173495351005798208768619088835210065572080604439061454108921719847874527488170067248369065212544481764309444758750925028277814027722542551425366111099115114693923381931849475105829773096255580956885383922056025702534241391087361219191504931690218773217951823263433748762653864943981514908068782873169456635981592835864674979211911935458676782128158796190968190116232202003955207700606862138974993709269364418634942034363975970091085310160985539195922711049716674936318563778825638922431215409668918477770795068449232296604507027974200806920463201728698142825275015531222460667634005494289881360306639035842134363324665560233829782273574658823782584585112881788202947516406514852348840840459098368221912013120542468586737368513500294475827035304194786894815177041225844075614506297767564693075944654355752135810975522670860062309753588255940998599159730054210554672448400733174185787250412387956714890651577170614909949630609569890777638152200340098633155650614674663625610134131074491700879000199451969039275966329857131371079933825357301442629903311520384218235777019880394133349993211463610833506291663125991545463139734642986987275168780264643874053024164195097622458656962579540366074270710704128163156574326327687882228821669858367400936060697335760349748628373737699040780950534036150924703070865112298430084420726991841022668692199840579740540582475971171508879447421702439851341393478978818249542133892771168545238099981062979133353259133288648162743172703812306683916833116879029770459859756305441800851861007623421086564913808855353036068955538488052791040491904759085078300902377092578744056314349205481606278853191532594249204339926973522562425941918251857675682006394179291336147774795188526759605524906078677269798278183031648395521917290827773465662766834372960038333691469251326252084280827263121597703443496857634509855489772698868764467712993731450357299393324859204592745580371452159675064535421681003944985011907057851324335268984417387874238372949273853127467273633110254631642153600435796986184652407819689558328809483195786786730225258084659534013965479892751791926557381717092058967910613444223874586095005358089193072636408932304384130327606588838006079724401285488223002796197453891981255630114172183306901649650635190693909835981188534668781691658079107030310892109795617139319682835851634314624836914037962748504282764460129566112769089734199661568402302850906006766569734740069345759724952439233284888951504428359717922014261161964441356225596956927393322428541413698735724718203118588273229994180771423952552289393939856441047238517780628008438794849938862918299952894631352103727261287452211114636871662110446790177730478111318767070330890926051376067322691691572079667233387138070781498746867722731386926298808835544652402336651437294070840239391738884824712308024690033303719009262638513775746273638120992673715282448681808835795989000932823649718751170385026318563384722213228579153692329203002982335005984068281483157376411847537064958576852007969486267580605731253099521624792102716036468905981401037141369946192534214131396865623215426637701685233095387552001956598328621892741954120470982346454351243106052673382696887711113294175139631615779893866632162813660655683323866830944142463833398952729895255708565301426677855759261921968268337633329699675196137316974808910467235377462263640099596188118784836382479766715344163542297745582179897141930168039285392820708314727764415987181674346386956257568626711872915017260684575621004937158425663674625708385826814089174413090598159761092393744929457124249912791538666725192606735942107940272572512111831624295495203909332275877677880565305112838889902668976839701147279935524550835912852772617227538277341137114756596939130759724285413407527422126186705072062444752756460620310902347929478074199118866822377164032517811350490797651656500826237263906104703188746089196047267674414530355055493524478288542366523120087743310760602782139107308496249973172268257907933262297381295398685767431551915380635586116853670340859472759289790652006457538881809348775880055751462799740459250334374434023715947185378802007079623355127997393392032445384030621767498743770088161301709690399858791040086066233030078629058565364963596850937699726256490751421538871396316186275383889247136776852498137346943978540856978605473054174484849886567101424178792001362631649554390341266293878472507933066485803568483274565351276822603780001112710444502343002330369953992432392098169384355442298645550654507709891104591340887639967952753667696345543225732090346273467209926131599103298888015128952042252511794850784423821547493425590727932913059808960035738465556550210721615288167652224711191093148994213423024115177858572066403380288483091835543647056961695305585555998686832347155482514246622704537210014610240559137549929920198688293004081514893701945260998974262349165861151271004976934965922747433339940646730758830715236504402645223362580971727020622872736518300381671570695225129853753631500462899120500038778894048736618844068007791002590868668585610465513870019880352592175503780412007300265128575940391093752650212456400751633753217736753357795466815562301945561976812345163344306208366754131354954819720353071496471157627148613595516070129674476981432576553566003323250716241636762552735591115504739279675963917035180639259548331509572839524539620261918623598704216918099212546612594092010154496255606610517080429869179424788932113053394136596080252614151730590384415545596897157054753036540884263714084643859842781249561232007304493915290900355980037000939471990014900816184391595583023275282228553472377327541148871018180800088626405467162828193812960141970123722042712724581167829566096192229518837235867546007234951882360825907572947819630004197073069061852058214774743812754119016378595220048562207451566632835995761866896467285510432340344857287553519635612942163610925542806200741230830999497570798064199182900901618535784571091122322982538609245508346033680024263565245782326661083593631180069289259414112630381411455546996979920860990512704104352226749618432692975903396346264783215560241531751474411622190299828258345648838151103938563363393669147131966221541973583680989227400292766171262529208041445497496221627236919723120381287743270566334854252489539215701709223611810185294309541355277391876629399595464214475120847621057545918373864835358975078361564415790616891178356985565114169039069602673285991966715830789322292582212553251449254566701760265561606856678211883810531216816780594986656528047390255835587671908270354648635777930378612644847713596074556842668966488947953249742315826755582252089026709421676690282635109153998074654800524322623849243685573481429203793812582180802167490823813615129678761388869688425941988752924768117391013298125512645782233231982021805356849934098956394859021895002718095771035416210933212444343908297529130535924419518101109083984290962130135670024049831842373981565402301826924852750882355752350323559575681249203422848456066686172422019821661850752227072312636618983357199731782541705537619461860134309274154575860947060629594456600075506561521846843468941187726136069954649547040003577280698788451007639913893651080172123010926345004784240845186748321928265825334597250661941436128521272524386942431956347428644969118368696407406480728540555135001678839266197924177825470778539890267228380628502876057549564564701097148922037254374645597678287477871623626049466692190092668667393623583867754712859434037376931343178790262116315501757236043962337702986029677098643697507663821651789206393604963343287018872803305942898089365077417206985647184700082730029351224697987951915820587988676035263348627509581063213460310026393068810290736042968902122437029485663771932085441609020127928011454726420708036143142535678326410630527452953921834285276114388819157885011437286362615245316586886444002320681695757979958824136274409031362641107961194003815778770836530483859283700239703718014013842765964436247530497721654336706025628569710571321392647803403532018421388440027273485836897642160649176019509783641723907973835420231850381273844363044134914184662811887855932443707528284667309060196387029902865396784848461436279350279019792979663511065303869722149854304806343587282445509697201482551850119621560982904859725146204666887987739428522344424984873434633891501098397014432315692091136396208329872974954669927476298516792339634065124301312213635108176702078390630260646047570543109396349336077662015634206015563071371601942388361988585073652831374777167457615097042456103100615715812097116483622339501134413639024823086204638226710845898489525060758051948741601214656583101698694469649926749290884287795813281024251065292921165123283910132923835349150569442783316753300607483093195019115337232805627954111752284453110921778427442906959239637990964658054876081059660114541327510878704018357978414752699635788875832993217493439652737116761305553474434883189888433085084022926119276310055028571878700135602401937699266911601903360940894973010762322705593308939186929699624941479647336553720671157062691878596869252408319904146782821626790080576189010623123538623657839748693195970842047179272776205055864452205309031473210989649835076635973847174564385534499449984001995446358022618087427327311138375275024491495028055744767420085316360185286472046138796055362972749279960502672762416313538608297657172029744181154014419626215712768430598835706013308797863750503469828797898290693048302068233495183238713511249078101423499920598602564982647180487571148673154238938830690954302264355072768024892127451089186675956278286009651785552662188050408940149849847800402436195682152103918145127959522259522353842297296981239133323214987124689477365821438922019511019770108794982780737728940922215403634223333106846659482837976082005415875992238697973424835780754266115769915223981410505096924875214131576386844041440389371498471040503174730443740138638344146696828203259117697270817927661241506767043887246052026128229421465449422144337606701485203034190664872996805750969442010442801686741372665137889089621600718156685504508988152398544192261095371516148670302116649742029151716591837320315415442275825963530071703194743217280116003934067128379944759340149902394266524802237144720426650749878100055481820971383897542674227050776885998875203595338248400515879901251068365302277056443660271189998189693185361378848195533161189681753691962375024445642786089806873897588454681020093453604702619960308862913966441322471719501751528953393010024990844812694790308174970762678410510595603363037431352275230849705767765644713696315741832141819542081411054924651852474590156254958640308829405126232419014861187845756770075742213326549053520134220907316206835350263432703219487872641314211436992931711079303981824805416227180492501092165149744590023024843056022074023706335901641876052477584652474965824653609370092368052950755754409249959825430365582351074736505072704088540988739106667479755203758407650076240846196750624072650735709215680747281271345126857870733279511599922021961852453791083752799994160287812804430063016319794160546990556304125364130699507703139363028234416615277439076846434086480392138395411256375184422058573614265477738635816830896937952875817574468803726245076833017599039350358670882550864896507916469996982939387820746156311831079097805733568470114666581749312943428756234424527058122400571786193475809413416509276824395488997114619342331172194666875556515023256655853979344961613904963116776719346563186214584456691886950440236670052499886939558975588008907667593391759911075681198364254434943925170074366537083207678145036151368865291961794329550082489193474697754373441532658265194992860871657645495468532433651177971432745087542935405473494744462669733318862583858760543167614473899930937043585723984912244939298640307756881156666486140833356137425254311263931730777209776114981251142208423086979020532262116091805068919054506437385738201506492687882939830412985318722166695318681286244350034672692600025338427163268977941861396315407948692428958805963390182517894849255282850340151768729827425638368898666646479347970397885367575345254547766337913401659024875876705356932564845188048591923967519582254947631290736704299349787919566335438581468287604232897455448821023973241754007456542550176009214708317718372805148431435448182027459480119612158489803578019137880009275202903221363762417982907209451940576225222013011648138418209208339773613664298212164307189673584826042662605296215605084792161045771166652342571590754038533475522408215880193255497103817213190357381376943910538376000788616907891587549047039060781521793112924296494204971151838540080393190061289610476903850190070445593379671546222383185472373767569537659847543540973028950545829230613665215092380643638763139297690733582439500045072737695280479187123101297250492828098541422956009577925208571693623761863643304835866324549281277296835542092693179698361590735664737947721131560232604078692627898272701433063350241287160095581975919155353631303302518977504340749532672219427006989066966011743488143641872603923062897706112351070834932384614493220471564910987229002707366933573204774259001875265866365679219140254531751125293597965617177580861678741589965201692969823148542472442579640446066921638410326645870904488147863809458271140266159948293408303141389128253686587559261776973050378330480176666285015416871752306716663487576244289759041003848902298397713187518603110941180373182977973918718214059067011423771676964345694691788047649068243713869721149600994903231036476072456936154741294235274052730705702986972501885855099404136889063518564458224196080593664692511476968687666267283491882327029209873459637761107408235153273003760616153436270307981986686461499739254582286333191009929864413880145405921683615769807883353996891208264132798252474192235809479828825563434951773286246787652711520552384722544672074577974775749352280523076330427356730756885257635275678042676459388303264278034323781723297607532862501170347271926367812153780603462531074179710231074192310844237641192753181825263843902641663424708150313106507740844612227247589681452728320395665093846016025808124326605267292027541626096250469070847682652167345233095189022818921367105442596054768121623338913237625853648304238659252979784560801432845002506292603926806216123937397347620634034734564529498150237271951295203755853075724316961190526233966543738959250999790932330157789236763288876163652617492266088928656989755997947120362921241975432034116996667385446703664601489637427612537661954731644467294569898942981763029393899538196447133818514260660191322209785690967451231960856137656136241117816280118809214346444877666711175866911673897711475520013956251047012076097906292236713174663983625941169323517206360321759235657383552873791073378653973595091106612721377988414225831931300310667481615362336544163246192336821081030520204803523076246920234981143432008408337872605345600222884592112279174004916698504827731447545434090720417141504067802806333062799850903152720274570326675005431737956518769748422435397130128704786355755839758886662337223511048878030236239060936398824397629348734661272291086777576239736589407370628974363525945921954706499658163759160823838398693329779301310794427953892060391746546446093091651407614507046816680396372411536542233957629050039111703303077792103110310605424823931558021389553896660546591472972044188566088684214338565775219578806922206021352529317142289655978229378901697018427219605335802298905545724796675741872819703870779979219124611931525249139971973449640307585188828181424568806812629969499560030234417039379327811651498812030054515486216120570149457874603405684455955439767510048918157306123888777889677106177974969245847978679108111531979262128433899897269449218492502490249360564244840518210603574395290069611925401577430231509797384986801241532100097431098498751645417478103044095613189936987674712004608363910826763174151798426517814456979161351295346376383998784381327865282700391188628295189864016189709242456087467946024971406473019330303326180922568775229309054919377815200501106702153412228375924163156076000730233260848956749441038312974805567102903767991677784881762758289293305109209927745235506262057014608354104253577466451595205927865655006311270188933723599777320911635477479253951839720087711630747825248466183045803259605198818141011554111449291329649889573825567637296181834159348028329355402214804703695642639759504700909329500857985441144710358863541117925581587943674414916433940607856589272232547392473666817309159949724167476401725731612136281320826987163149474138241164380628997956857942539959849379733417523207683710943358374893536458948291699583019406115833328862406530810334961626391889202791321598858731125902267197464491257314125403760904739074973693383014963847483297432947711007430552517179509873265585548323154834703954893339120357765114392762678862843517519176783527181502976004274901350462051995497588838587664633637008981850117053690580464788252014426266617375569868125037328505845424302638011139841399676349861221995904114383995612093528377369758232161004912743744297961662166594974250944171491474115579426160974261928947742531227691689560681246932711342020733463127764486953667899937488885697600814808996624265227100163816509881104037797225743672243150641302833028593689873328238454373984216065749957305565388583572941194371230936242574353690296867152168768356594032473194765046276802258177233996325936255614208883793992427887445304938793092260713072080692581244499776206015936365323582285408539105567533297573069354291197049497574910167452245467316933959085983705548854648125425796406129523589183775786449807828711788127554687842636658695787405526628287768732476431469264505925169559165899790772775282183845080119559691460043912400711893319549444967325196204381241745272250500446957007602504247743951241808679825454608966235448551720911855880834661707640418606306753466387786547741222750023110667308385083092234147873817136238430572003617393749230754592277654722093233030882977795537054480495618117534198194324174505067278636783093157789040548795821326050304265845180033297401434876666970950571352147398317740083174180859459324435249826892426572907580911796751719844244709022206302695980157247121624453471914323189824493024857159179301738599136708778453082508104430254895796696697102713034706332404151153194558722906622022695806198370098099939580973745265424461567321332705474088420609642726249325572918254422519289876541990374911138689423357210627417943145653232531640630708242549050862120803361572686909318553343329473522272354291304258557130992292523601573571209814292665867098221689982461280887723564938856985700731462268672156100939376125054230118791587016314989163951822248363760212504735008559873973772011092092249776577629270102653469100287386863097361633753173954035014077839419615355572917817999718689348959134251244335450150962216573291883825384133518374295916359880026777937063646285152600376555787863576557223712151378655279468202697859322313577648211828614306590288048037452822648296876321899983076787762046516809723979253962746848625736132235129541651938761563768840894137121288735876199588977295892329634675982842155526458605507499972618237080300394849939722588737799575798962841969936128832253388978572078235546379666281963095762530190132546955691758654007556327403561757648040621639089840575994790186322608866644273026051880821300595866201063164901115196317105012473190003271572759204583986340932036823199644910283950703113856795573296653706219447486672093351601233240892470408228448807692927715169029805922539329862368059639558504413616247744927976186723492651141197605112445672084823922507245657840251419938977924212731264656780759158316877152766203509001378761073676663830531084694778575276799757401792959768884400646678046569708445877628333204375516040772401928190432433940842803561140964956370573712432320484014521396753840717825713540793328264736936839867440875149617576533631971334608145178747894061378086933695487841918465618045405454636293093116704311404528872601057958496472300692479461515139185920101236580299467929802635018648225772474675678667352564116884180428036659393339053216864581069828727458654665995924042567015051951788863071249377966285195526839230273335245205147087013708969490575924992377524581068105051540546114069383427505329605401858052872343856316327391613980493914020651469995619878440941692439064529866413408509881693335807790387380662406424732762410525604527109727357909630947490173156642518628550386444846095705613784673394621261782523121194349305416096595044057834991712386488990053088401968988239572018667306356446173644251465122681211665529131319891792643368779971386461183921838792669828784133565279380366502899600822246376085122517799863972797207102833183912316479459130326819508189386036654146977323531399077693280156508928991749134880582428666519358779355224324580403030855517654104720823764413038547907808794767718192082687518316460466951882130431186172256721431727108687109767626272836620951122627997029597695038574183593838646909173974109082106896001243474923146847686511351278434487171560487345207830746005030245680111824398434468137728708293290060228455993040071951226227997739990690651502294237976700579767490103596890117863054432199692583998636417607202657698593184107021597445949539827797733289281552301945887869543993522617062041281205084191187030261556225528224602965567822512133111107547504594256092327475022596353240867676744952910361225293130266035541601657165137022796643571113706527420550646974464573816519813101097787503326457826569724400817590356572492020402710038522432214996151257957835177820279005794827794768413009994044184802800021599800265866402085288561168604394061472587924380301656065155475433728422871986976360518686694060393518169074445445397528764488638638598171167034716889285740172892918183044871618074902803233237040499842146311072316738885141229577241680064210436197725321877836894310406975556685551387979031668450069443943312933800228146111034522544620651143131509881933366595427186829225086323553686936454027313591867670202903833983369886018081550680377704476835149148013985876398629440791325245207954579040601992112672004648761470055326410655387014905639633891272590812543667781852820293720062217148206042193939758959878081621396906514907852987369495664058684539738439855223724561444619446625785496238156536126336321724411930715529188346174060968734978472465478258291664247463970107817189072733904832156733362695543720759396519754765528334040216922696672913549467398139221294844626804045360139714423594002108583414596599826934614411292010612467747291025301325275988020280145944825495902438888512597575449804783332723989572340052944211189590268196147985076728660519682458478097261898312200108209890022133498859295845955819948990490159797788498619313263872739000410047128950235883457641372136256767842663317530981432344957783653491008477908254948941327010954127588312765325250696566585372988086969274569989704471292033523754855148915393088625395239140027660349296288593545878770807810437519202556714404661322530286300910718625438437304853006855233055006092666329785667380774933816965878509934883625589118058817346508373112151471080884623103325315392717969980444158830098434819318135645061522821679041820830620566085052451123613239126505341628478597574474148082690913116478856194899980600312027543405739219247841287187327687773835988305384686923994315305139400854908654671003966561227700871115431189056382037056828691364029738160903230785134131978947644235386315828328369844536533122698528190973519023649699869647829253553119682977273045496615347223046904666872660710258787945960727781369415499248202830689529523011332942657476148621369428189510155903940671438097650904741030990680211455279151202326955759142593348306436873269074260841453990754026531645790849038108615190338031600156777814667149742863241465836477657813987312129271663686949592023727568462656815043949542702823898952008457634932068329058241378658721915507064175299090183202167874609928422947128093421393622562880091130693294569266642018747346084594089683026973722634938988072764460189681453336321058912387678035004966376153870566461439713557712514322066136480773365532578619875622709765776193957700169280666613824961904520933862417760770217166068647662172125516339992652053844432023678621213306546584998272692402884538070199773064268199666808999225401238950632976672939012905312799737202418847182719165903358140042842102441586158755440503932896707704236786702283438574354696581365742445866407491805955142477518630227622660845310696699828099513753312648038935804900534346932908208344470595978305846834240541395885258301118319846663978845736644983271399804475913207027153251498446592272978152426350332340515711025330459917189189113435636402025398617974301444965928280094923382656870582607117087315977136518161804071440447899209958547449894167035704141584358810436399732777389643669099588545884412119329104390033123062318930210337519892450208086310696948968156466651393912878291844556332070005961995997257935970046411983363453360552146501293645043744172958007130142825139755154552509382485485241530451845036671321070591960857226355636229054445258163131951665413289687380948612332597652272870651248613583852021762442050279375421618929296596090316932826261883850722836488692476499972824967079256453663316604928315167331632997713046273549610927602087918224288066750140765668961360870025928965930496933617084002534215653741463316030108707833926369416741500800630905906156356463515636311579858191805818623861338656492757074868784635206654328397915675593159513326355230471228405759600031222331563194132935000890502802819965165576850166293775353114967325103722551489897820466312584245125733934784040007757808779785390210979361960227300954573441721505239890015038577629199489023809568491565347997951725700307277993202141174106226293554673173791769926524505194583174608622215604686826776590561609488012285666624239814377032837010379508606921099160987616572769931670947733244177572782114358277751360758485175437363313077087450974753455935464364262391757160213665062064240215133839628264512687205828335617230033755105246163358335856348194540481768370745138585033629966033998434485713887622720168904522978470751431760669022884096305592837156232302079321277510426064469808817345175293009958595898612673867099236747512780827147307664062200823834460367593358471861264643213895575516004437783216636344604091897981139337557088133270313118030590537177482397508810341754816575556462220402731328022077295253792804157022705546421468130558212387285764934341700803292446762122331209422787875207041017793823218418880700677792177075744526093111720576754791342874270774922324093999552296888514709213559102919323848288497749753179666132448966245759912676137951744040645261517437744665164374345534009664281255784680031496195437888396030712170953973150220606642509965385418059034013910656553683604363563793546520218139052609835225376766636613524456048049184624613443886057367246676136389135753214766610298232564175042837357813641293978969267759922862289543321552968692164422658058777738309534661331181131389489627814637786982570419384576547775338904035350619010882769392307542717101960705838269690301736839164386760471924156061341888454165996701029400905811136928809270303445702486653732057373273857246427176439613945583067035417305373956473336563635724684901979298814332892107764086921324621396871891155819111301352266887534249222931570215216045350043667109912144260157261231912262074429353352210094777020836992302789964500426661282029329311184856045429446501898766600247083366940423617188949216905336822555047516703334438207075635301041607735691671109303759348277282007279710726620173503303584644943023977310657176314227614704037154954088807598175321390311296335831714702169612269753513857081200833766493041592276003291546787355291018715305515244691605247350507200780214079215230170234785183994760800490633349604144401043863048388451733128655048200619823392576183236280224594279549771104755906217700247071909069145433388933364438346014293292930640361902795588841628355764838398503635374062732214855582125990900545602469111408899435216315797899114667983271244968118503245186962949629022201833382630218317481972420261993650811934102581054723755299281612967056145047468119362492749124616779245057260034270159782831601546342014961645909586898284334532911591506171857875562060535528070197480154632984358457280538671323274814481960478971913963931031910933958471638521024771460156581312666222371054691371121601699248115397653653392146215754850424314891143347396618646673950388603719394084512247566155749372583162832495844585533119111441055730630183073790595410543108687573606128559704036042866262687512275364141038673013778815085341868275478033418661453985030505008945964814131112595214677498771024913619956776971468947479149383240439294688177840499168800967972526678342541393490965433993728338723951086695781471260719826508791980194638225225155074738467540623522133462872517442865226394977522370582307396402925196643383589403398935063473121313458617784136050304834379579353048431451486028518497954648717645616530086356261768606114984483166264315091755213936095183922514541942213468501215573692594889169806795618422566733831773464063711873613779260039235337750969210060382671260959993485389857890854205562189535637845885918688045234550074597955343446901553856120818476203126990086469704060832914695426887537683332010000069889058554884317623982871894822888796694805246947657791267884257579664336096076455531466171820888923855601046816915734188667916573923824848615344726812865354628919965795039795946213414305726638547904593749600323148824190950326833066086705788510728212403049912013990158427047339065389721079583069417465143045830676792293136412077411132073980295056858364159594858040136087264958927177811053483290912074299829920391611551443489707326332342160558384883183215687834368374391133794778058544541302770878162487454251053546068934225104102294016764416419438445478914094801729473243740903598910270663856623295360267664617353151146829223013021721714295585393545535531713436897233152012434767395342455272874886595981866908289516535770343913919154102576199427253232471713755665703404631302471780989861290223375947108565603437455090308252058949877326697798699701504431619865565113787823420158201349925786419102689502437840447097113986116318691825155607485686073130470888956932205705270815530011736959110857038121826154921361154714897616253840208833125956823134900156816651283679766464163473254928342591531631709375836692367667584507036118501346613663939734804494790627251153301089236908611062283036673741765002142694905366075885421569502690314509820545038319263922996257789010268500308275510612709777421988840826302104063662102962502590686460346431224992086890295148081032960929192063974449979606678781416871365210606012856529219345769618548501536440708315017920746024949991935982996255878647628917670801767503681608196799423058142989357660281541466910710273365128523061831601311806603950515023025943031084144080968169579176959263938359610902622213038892241249039838553922838132472630558618657277623251758481941979373631490757542421578614684886278527971495334373139929718346494619692045070750152026333334128544903654349273963328523715789192569483154028023315565067570693513524045406687377717073759834397873105832439947685317209965274972402639684262475175972127682108817149714010550001075620970180826589344362934152794359514393576801778250884080883189169448521970463879991000405614803720547678711205162698182774738513343969182696289789893626131295448961610937114628207471508187809243341232205368509263753870690330237290365048182969179637107687152029881352594188940660542139913616360478878745652961363343615866479287715652397670147518282695653572910331607626053899851624810488974539709854749498697934442692209735932182253118138942148125638000536820745098568743885011415609883560822862303749620098920184399909666229238649939389008174526667374499250105273404736405834533382026247300474835427438699281796544799217050542339171288769082585839999116661038072689070386669618255878731137289520154149825511401119336916208359496636264233697625037542469448599896241010637828933439724115151949921990549188035811223013176353077279156044191104481872807769770015169623629507758840569817701183837191569145985913936198364594437213118582315231514710238761362397026970135555408716813949403213201049463136903639955131835483870653920221922498989737139333244599823699199837298428967952834647663191362790696007558861702946540346408209573986596887923266344854790494678489459049222604176426219480989519883407983147652065489856186148514243357465739357177807129030758274732843389343495683791077764491187246727074791533601281080160476916357947189012556872064513441431189678599886638308379738905441380389603398726378083692848446372905607802281041885150219334653966597937208157656966840372295158886574481486515237058109010839024358080169555944489233869527263103802912892829241277347555642227796174170836714981417649735673394031717686380846889036907547384592581559382499411281660769557617563411262955107390197158899920095636639726969163133207445404718777997078865192533891224978739934937801826313481860370792222767810179936913711501244244848255152637399973659976933488152555092321950296584050561364221594882173611982384183299323762682881642866930490026627029259792010552038345075287692951332756950094440557607273605473288825638327357690747164753920560562797039862335391358857443245032223599588014828652053134623218455608352443643689937063948075746085160642990744799356473431053496048253956036326435980196056464965073130910679650485264666521491827015221000857839394866441427128132681280409829088705257208660784102656171493986752801519340338554286082551625243176585796557678212958933170057475936487764900919415419062927724914654768308433759025870411698567871555865403377809137055436387995370398889438232642666957678140564576028963894833269687108447507583344346524594468014523052723627464511730045331460843064781444466525811306956982455687446361301436739682322537593505054767407344416240095137758334846404387977929723204521395972341238917144827682044105044294548851735799520196280527428429587102500197299777501060441069705909438460853884341839157902393192096103032752178119432457678305282568791631660898033126368799067503317895111231553950103089062593415693011057260680495287332495045934432962600049532277865991866709069650033949552181894196663111952386933613200365177439665288866055101757350606971323511755917586235907729912973358963768511756858750463414304575280019888936869177756535773066473350120714340425348554593627030993176716705705127732658649110190557261443770098879418677725218815398247915404569640923861555880270248340100058458828781625659072432285960225494363736562521381251737814532758355813069850797886006077988491896593484737967682151873517246943031029497660710825686759866864863211999113867673017583481702341299239268844575503986815209193542070279253834356236916105989934522519607812008317563401561187925701856303138236707500838484215061875263780838996670156974377130665448676834715740636373585019524573340898914035319972259004425454648388213119744919963493652746138254698134521236458467920042610417843600270161247512647069785336563576246847487313913430030685383260426483320403208802150160343987667351305378603743537343740801223727928075121138904469630925356430407629619531569752232582247010049956761538625253951134912726577349803724585631101341609863239435124923778905472026589562240253748623299037466040757507333133811921591816678601596386613571558203040624369650066258205906963848216473394685303978894773904498364948618587358023098597641488273987288596163906213018538225511257647973996554548668424396198183399472618436888491678714754676553483557665094631047653875836208477990306896602206456889905944089801532264819823551155816017415986991285094458869792237354762638604782519275355470888830159979041060614525650141662975972453422375557415366534091392201874823305246022352659157289712647513194318865034165378099526096213012744754904971847799286691542520229904652900379937929673766235306486390135837940759947442939953932084646661507410299084105767410664153179824800557527470694879881788256688808933103925377772305256059705098609490528947278932303185653513620818507970729448517035832540666583944029055888062362539988854080626414249780674206521504774063307342066802725564304194278811917213324498086435566038084510644344540765174245467174532796215836860419059623188481471301106751986205871153552285626599210602521037071492021533828772836716843297398163796436419522250944461359165425745569049647054655561918397881350963478653371218000029944809807450986658954451051260747064664978447601297481736144796147562436894096285304606042828476649716462934553875599704081462783309091591519336456672196679349518701917552839591414444623650943732602966756434873925283960927430836843928786848346215087783723045264826174038693543308436689814203060920765567831038948447205541633781110195566438935638646789119276028979672454056807346916168679945090310011257410810753979838746422341116998784741816269131266915748772263727311323730326733067749323986876601145972345121145787983939555081459997086188470960320234828042790274849015471747837395852716648096122907761595125259569768245498928086646047172984139836803612560303443000086432118420303902795455872609945847811620591207051611056729203155090346800039636604058864072229377091219781924988166739463928617056422465402261983273582422158967460700786040475043393063299971774833112166890583198032184752242758257728972372418159194651272848108550032409364731317444820024774046691451090942220899183805422533776616691669652399205916618079152321734012838837227032016215248484261126888412706406610910514982297859211368851728059743950424970160717366583688261304483726159487935407433521628651613732234570533942271990544832831218624242692423899877626374622670030266363253227542609972961953498864032128139702742590065866158223225024044711109371071232778575810837075901148248707289926306344153741077685791327939803789647296192060012506368828696309195127072320602591142238599565456578407647513461964183753720794997949322411069214066118755181585758775527980988551073259572980859652929158944174358374608046351219990489407796904902735596705437904125879989044017295784318358978064762721256495022563370320341119335581125085720219133658383612783666503507055918691788200400131644205744265978519898850930190651889707288529548918581811659481028013476511429447784288499782238763109921036779481275953953814944655950791016534553334025535952885189867463671030221098121449052822468310106835443216015929577595576690217058296217991726351292833659038614350513164169764146760984520337053815236975381934418898038426842576796216161044295987618393211663023809099320000031101575594433452215971611337773634988424820176075138602161580847953850461727760815481225891888302329672276071703113115467645649757064971130240334061540327024613349171650407364646101028785139400251486008745779600390665404930094107907887552376885614330827857282421452729081413908342087045148721544760755493088230721010873993568164831662519287071821651295391884826044135840612072914995207804763551561881720017973972948810077995190210023763657696133061644345548411377378933823540104007708273323592777469810333699548031620327468744540319603430664788794471037598991583016431816532067983992319647775168647998760384010285446186966159878026885768532721794382053388323461530574002456400219679142980511037335014629318612543938562991634859942880847095403412960965662133112346994748276753010358600306546483979180594875291669606189488453952092341033870862965525045644131015023717276985224074293284726876910651283219039813201700501728187049234071389790862728279629129229840593202829463873762776930919504185125674017967328047788055397758175547430249601765093896470489602214417702911149725122538336650690299767594620829352235833545275583752487233343727428134253578763346988713637964250879268644920171163730326742796277077478594133219710896425881546892893003226288371759131613523574820588376172991704496732002596901417762114282805830775293659272359442823749744257847936609713649443884566661361839844622373928656012822905153505025117253054544955344313666979722318160025768311961735921987954724989162426377276141226603372715908832965933402143127355824933093634278057768609392581287975225524010553366063485449426977517621413130965775549148542353428166344488294715495929290283094682286177666856279606995288537236981835810501825399419252925956018014031694129018739827289031593802582668918529751978041982360020079730343628367597835072019973165145809545845543145367240514571104826275843169947692200170829039382081841494625018431342231205263686839805578064788577785057709046240590887399827934876116276368754745278235534409480427948868297757869423626347216737220184973364440736749233007548902741664850503077459829944110873240912758081742964523159637522786290419577777894784725304851787808448722286602018847089198498318500202086008092360171644400718163611294837004067149660436357214739069858733908709868632335710058657099534390648710346918006009672133318705310740085286620647677799486215982704388489073339890570919466037230156213805606166832199661956341063197450712249545537890962470556682374831606817975794293562375387947153137586016489073684822897118962931974404793334337989949052916288287320663115378371703835481160628383814568082510336862387805350923502416132550118031058946501646683579471519859414804418634908663006207293449499946649575882702302642696547826891386872692666220864211084298870374760220472130926479111898318512658103101218245217705370270669871400089626191343373441978152844577513269343070761799272531132041489434204206916263651751347221514902465066067635198505665569347750698201522669382344119519115364604407906368154564912705000797963374246809695692318895220825773114632448951866946409042398319285696320641780999003962062099285579777456333131227717539490478934597832872464472472842951530018747207506335349455096344061816831746196606669445466797083558519637719990234541459667875750188033756674001063025785901693828171702656775330160683681024793819713291046989705969697513839060274386211134769732473595742357117577126453022432345382001593098803443954648223786484879286883356386941109191313604835716266137446537889185949391313141192139403326780706792658809955387856120666252529197003888805092619232360796653111570260229038595302946847495578102517899388284631299325029025467153189318483771841911973626320110150675457115092877359675875050866407964014290591850941468094195530533912920761537421718164724780090793253801355260551371675441681449400280898451396352765416000190200941846942600086594316725556450432249752598957442024571267525968522118624544231066202575572781861216941323523318767301169640889210325269019628059395977328271764522697154488970640969734990675042477545033807641087354837191851073078048236857204952374591993697557190653468331651529619087170330787101719421965943116676426896938106421349882264647015622615441376341806859031129042316453555767621050115248373641565663858264171370020789434841962559214130554080719212301602723082148643250274696020417799063208876143967156459824663754965618718554006790139392235026243162088518581645487849554780442640969922218567517172144314428177847317868671255459925122070197291017988460373626626079610740248321435225520736318388543921116013631166792713251301336431532991214049090846073043053354919317420850675164604038410750914088244088995662718495386040887390291866986395317636653776117636550826445918182628029318832167985289291418363365647766477247881573970221571453644009526126760867250161867452220838695826021207265547283960167622650829171846948835381117088300699472795988960572196464807881197946934736205957403777795132123024028655594803026968597358687310015757092914596068547931778741721889451106339641952259715722303694315873386175536865519472868321275814792028917418350528940669210602415629600021475031302026775082334296919099465804406450381663553765249728666322657943867686972295314587973661868831423645359611108215763555421327238538204711948248045865048994406544578792487324352499211828177621938132570124563767733336539373292143604576425470043128648925149030056050034116167722318905328807258088134891405006006427904614551679934107953462605696425939462087156601438542422216187298668802111531205758583003535077087523996254303218546779500021683627581802767130798260174045219220758249294378868215110545247241965225553880208955117801906166369587411856656630513536341346398832910800635212390788144344146714283895639985015864516900031583626426154323694322883757456513399619302762745189176793813470308188902546408979543975511881055658282653945528435902370829103729279300935807398817520091580836350826964788809493776929687248211270108073788321206572481301139257980070596282649605120921219913177982401954143189348948521714716606726507540043835357904669514889874959386569835700392302975107766583279991310162982473521456134611746359964962287041136319903982989057058173329703985248000662633264664269588181486255169043706178057672477173790561791443548346106127880930212776080023056684380014287817635576655007451916072708165826907712468771694639358278902871650886533705228957653684331608890558450110945191797760452761204926252902927551853118169685045442563136200797247447180738620820077907045996070549204769194906217156865444068069833996244336155499532999386918354514435212816119910950685539300676199593085669091025602442913761593705619062167963534271993013461602323202309245844139650780160464077089543489959545576868912319273498064443104461176667811167694423063833389414611511250956416255647382198043418295501407108763326921220483442534273297151413093177213797561093077517145704690482287642855880087161283668397469536190000827938981460339209995029626766429955686285681575758314161576636643644365480461561120113879291140219341286244502716819074285298527019997611822319973461984965294109831349890644586286049196319486142229043647137490468872111283593187686405361025094789577776391518657079168626493627577114663352257861818880517805449643616308747803695750025295665490723297699287437017630061041252052552998349602453690330392215549586796601709438029294063730432258740009538711861581926904802160211674723620270166514650024297977267193289499234068889687208735331718861290489439045069292078878928983622957694295692413411794619760255591126622785076032250832476209444764820203215795060817607399869327748713676344104827933615665413084404383828083775014249578300347031105995514109910120334032495905789166486805966027843637934089337542236219176070349398371055135528023667136891764461043198635109647922569507759049124188293228690281254127021776601524479503740254783259394608344315905086892996886733793211752144622908533568173435178820515434400532926489662077078349686672655111014077758520073268243027250089988970429120450478191867897721921875992320549098880826714566297412234671679191569009274569932731751670709765159794930416332805226946095453736043976694714333592245204225152224232337172031710168735702623458146350558059728301352776666344534828595255298117877770499326560461749777597738221501481440412326264854377599204424590446689238493989403748818941269431841945318740492739478485762117531320922527958382646436026116420505158995263438701859295663078174136294053957879699563392499423889861041504338288840056842126953467770278262118530071597746889634825202406050478459464020655656106258735378243069805658890692621894585626928173189971757931906467603313001343532675139630718034767026554249307802419952402083887897417039685842694801045818442501926907743689349326738287248974759593967090347994852962572587556232715491156992920920047722755001138253983924553198947793740372847948929621838411985382111547235401706540145361141225124804537842914385428617755208631141240800199793970600664907837574650576688769202704979760096477312520844885698652680379905683810361998511019238831041078324247845216227374792415255820958903744645185278544175914425726185182405923187315457693766673512525448588264044314768083640789798584903075169818270490456012412992063783901469810587659039728885439667561013664635391275701207237527519563778237883287638135215887415969306585889798137508223805088414397835737391148262749366247508073850911699557428076405429345669513862774270979841529704669135136827708557270348029411559768802969506032793204691340808176402707112281614767191601666608127306672377041287107678390431916549410530610357195326564750946531578154247005854237654131929564229177280921771040994146702581539381321176866157571985325157309293885794068444602549683087658783143132736089962604278344542763354437424488545998827365978825920986152491158001185370431123675057800062661245968871510901994927233802757390619436792151182337136955015100782540423884600034610148928170361907721122857310761159366989757572722455891247604857844981550144640726851172873521330583854015249006371038767269587574868542394679072959611871025984798183659287053677408706727331092433658499538499260456556915376326820231580916289830421880623221238742830830005679901243211672004202650046408489787152496419842039898115912619242763412370621305392864006098588571014645770128344288745380973779792125240249345643355448030163736391317716783945730529165982265698071215831640799976200843946879949363368781065377041135165833488153044278834654247972808156562560785140126304733281852248768675045135877940922926942899512220773899788432985962733229578934037635470384746552799462339896732139391809335386697954179469819539862953311638789631232344938946584612512644102545764453354386954235740861655307771975501640352696811522468870588344105404702542261859549556563164583142283920562266949205321002495721457395430076683372144813237035158842514568126662052194206405498278656503833990222438554418669975143295508357130123896173285169846220185542875770113774424423344390622242627159938922489803482884619126268692596863032859110764122324691326456328617271797344726158991933773553465371207481422875253945213127970250166914731629551108018904559158155350053627978033579170350290525756819732749608904821082711265349632217830976552134202569990748993976148589420199938982242004322718427697310540672983878996517589925022241716858759532403132939021326773243705416618905039207511596147104264986177660739534684474385065369583877814992733342139480032054864624432850785992184320732922992919811268004620537419027879340375875103835673234984071919404680666584621482647037882456942364091383803147893235406266291984719507553576810769921330615010274464363552554128781643414143395980041461404786869084430548407720052810556222442916111748655166867240158521978177202147438984411620570567223294916742403749874433714806690515969330183531596209928835172254371079121317973642224428578987437480239194661982503775465709169925651838253594852946503361751762415968475366776831495831004799435499984670576529518078640074885818487760859904131193261646862000129608192747759032560746684408311110578589500919932653561902169163722025214936616064514840847112014485554230330838678856055868159452168067387118608113150126568811711982235311980092979784279333864204460516185347347749181119797697099595297691853246950284839920333664752145051937741909784196197497141091129864499130982645752152605185865812826760437533606562433184636698631037662353168594220144376391029653462379307282812617353799781428493423645502987441551737187956366705764985487075741347426020837184477221252018879881604530811769799650744568044669327163524960776908435625332596901147795843734677055700787937809207355780154877078227349868995273421606869221290997123443942475560591537452720295641939056387162841184695049195264357684652787513382945697646696828882793224041908643006905706274187702983163759743624604473733747226866949617221300355735918303980993200487886547644058058757259706485468280782381725159955105008295300754450693862832406779169349783766985604790237652189815654773997246030074128634438927305042317170855870418301809665521632714232158384294392677941474387547025022264560213233770912946282014368724507732909967481789216335998708598653198683749080788312335471647234292154354432514777160027392810900330689465374207297308572206984317337628319036029897541356879038569124728124818193040769509476132240238704489988805634433758838618570580301461078743020681757265060886691583512198369819429311443110758652805030796049078504818691866485450146590254025613592426012456405425426573267805023227984275352900098780489738844723487197255745389655305710022798672932227184891385282612897761188572382098601033790892745180796100753330888571850322729391742144032139765634126768678145686632615181250012522378968657150893694867430689734814230181285801883428974052760986493451421395638653550467179725317927730458488199394897838261571106334799637281399287941118730757499134962556578186030436189165424826766682428072895151234539738043807422909195446570412246818612092961198114489163995511733291662546859042649677732970326504589054858495916149001450985808877488123266042615068922967766809799806026667737479536920273957722504324786474781962234239157283314982078822731473445192651411451024139360717609218546012659007662838065399997982499516811949655821548841058282925909218419589693490878901350732805270125629668673356215707306078543140801924355372440892078508038770004994867385121186567036732352531031239130289404358804604130294482918533651547171096400149627641519364036273304982761191477910895511156070904461691833881447495453993422570097663898196426468039691998753112028343450708480279044047635575753046987720219611754093644052933194273395181905855361320439383561390260021237043460143296201229690308536477098200404892448170018309137767719162872236594537388469345522262504362896507847171738497187552679116919744155331998841812169734464267417936801980236293196069368803453283858820466753482279553714937519994768564077863503187827526486348742702150493654664780670680057033145378400649008174392423045479327280086515321901053558006583242104056036168236795154403397363807528958975529222489617526673190346093288968728921667408639034647103710513122494878452032432827213151362334880549289408910205832181367643593562667808049155377898586642692340810948782051620486775181328038010910176561660435305260231638154671324656725088623066219809707829684427835779997713546418623454823980226154779593889522077528677320058130087299015974751721007770652834269309793642604479915964750593251416077626536231901397267828495070952212580998187987253312718622886339003724117153335024451868565440895463692606088296337032282616243473544068175950933313028085998108294646713419506998774033902161240467606563936424335686789826960712806670559305821598383177999627316738316884364722052332944156748626410046217911907865917598747976067741258353302608069897107924236028899399856869002307087068369233927600782103683416107363272152606273027909894567904373184640796166390820235257734845747526272202814313531411707053682844593629967737711156132626192870907209685614722099954251094419064402050617099020885028735899630468489719790527519429653887859513658112986218926913674479772399285238321247235635568313091969613260047611164803447262765451077918255087326041927371610183654663370269757330354567366762828004606443157162861211248485990892412407995885711849760458986652763505187858816091803909846375145284939125882527039266994695943545119370590613790895659497847920847204252661757406859003776201551415081090114257321105444798737613379195166534755396386543206553475000664541380647877473638238663471044562292624029455590757571528137362426034715964689373227713382892177743659983463749831396565346192585577968837570742543760078438296878227575476697095695210527908522499938569658630017909783959098528025422707634094617426411774904000124208514062322465880096635917344397336289015344393009160215659509371656638830363968020667376876517809435584636707498217067109196518178288377081399302432254325225149317599456016242461204349037834677261853453120526633442552521196627842567694087727949077285808780218852781778778704546518265858334100946782720673221781811798696118143522232382609397695703265385035159272245949032798064791180745314775055830592447592097965361017641018600299456287995747277557548394406061575575961746710828303685181801197760278695925414080509205211880280102343683979735724675986806372909720832238618763723915614816793756354033055631004081022010409008302504774437808128449554891474491624450233856401770893164489081288935610550687657686933734056114308050839463799504755139455108380872008682451442147744179069387695850025746856160458436963289354118936028221355708492042809485654337994813858023139953908292215193669378848320196053185441186938326899073971875478923079430663019971782581027520547693017739305279413533576446937725702944021400351377466151371916393160591427306920554444645943071213563143138072840590697939953090209559226660095865499849079405616270489452353338194822540765438591024772098260495609715812199094010684278976756765616268061898393683194939589885324069561022804056397718176849504691989270275771548893041643592726487643245677701186086132354723302985329343365768545019975249320528098135775956249552040529135376908708094714248618952288881394736279519264655681473748173615853829298117776406210446823703731244428112773674197337781839205529887902139627152778288805656022985503905157578600323338197466058741767158671422310908662440715381557858527570017296603406430480114052765019568962282738078033803412522323131050564502252855106820293447991128291068299277391724873948081370163062674982570564982338072623060727006012017506434261143219682217785964841835361679911430693996944751966681567103583924635482005817629017950189423736495900150444043017077789387143422148071726834370804673494082125301129555406071498337021615512391270958996831459631220174005874039073301983937219601697587417128275002166477872903675344270133526992585551411609847815813589412234555527052985886107171656420088174625873772093682306731459613948969915007676449801488319973166061144448611651615934293493413253990160221896173376773130284000890209025056044579975077449313303342206564167659179190838063759544310853301276738055479651198068695219084938005554197019247201409218822551795641365455824277173987708549213644954253249904372768656781942737238551520361255470193244111816448765798042319839950821852272986996331055158136768164758879431368192129976566521862301747334220671882474292186342357972139575343079295519126249242584848887453701470545464712774000279483717321158345137407433649173758382213929313017296445545391091599644316472628718531981349816047102193659083215314196969377666580583747314412066331156425881702766295987411832260973210927547507184210130618760528230456153644540744140735052083779406266591138122602371193984516512776411203361127834696734517979799472746825262312076436709703325589493804442018215999424025682192033492266758635765109203232352197556527623323856400791958353028871651714919939857067359870253244329764233336927424690612089567354561682829114823097260108544413598299796065019744509953080601267081816218374279047452601482908133574320663499092873335671932856318858829645542383228301066179817742179672333194648322228722959569159855231354396839109783624017622199537151397426564992378130649433687233568934281016872837985377917163620983416874843436402327076771201998999174411582934899907616143499510653841514821420525865589700403628339698084549221512214179792887407728807058704214757455217642472354623209247685280358033535602508350038733418464522674069019155005489794743552672021750193617909960843615307126975765310509927280080706282559725954954855724581506321915259512102326831344332755206442139685290050716035213426063521833555038895225659477608363203851477063336339056881029476760884540075936321077947935920424884991286634252617607134562227135465703641752793068584999374691031700548849568492256178493810737515276438227198418198542198518992744475834071928850916467905969383982779114506760993158963017213377811541320296546043488274081334233293975133235166954423380656979017128045326404027926000227841231068397434251872988761082215030608371079171459886902910262238942269117471446518273816730377561095286740198312356263833151950418603825875616354403443728628577189112399776344981430209976160019012406020559127305902308305822694864787103568017723519094020633932205879825578431737189659474331475852636534759690028771772596220622453258486602548377119977495867231602099860985932111137428051022557264198616139035011614325722207019535796424017115158161430355180561219773276532028277277868938722433287815723239878192561951754205762431604306519388521945568703378529976690604271485818469258652457940003227261841846722119113416942784833567837591546542231649084453368896348835668162649106884669246172184670140089677111790983755416322225667686436983693566605934238512445909751552215275607605032796764678287794750435908210306171060852574563048106863058473413987810297849098180978192332032278715685377438048321854141309935860123229288987170154788656631129398334676467237348183186920781763867173160400396055246268545632123761637101976413593826767089104548271346975103130902864915968093577536773446948118807259866853725515874354233311455982145951868405182521113632391502562078256218149063029812280215430925030586887356089163340396117423393070856821601599707300414699152694091572703609197701721905642400902900669708148267772321086022027272291086150490704067330479102772550163251641069327276847578059688260357024523877740736647368317403745055284507369520321382223298085012453689164095694255166752387853089711881699333304247701206464076880040644256902068878371871671171930557158231887506344361094149005081682875067991292046818517580633375490961843952335581804035529264785264157233801993915180715387068591815378548538536061740906641578219157845767237545423016913630708586384852504817208737671470676182135907929258525569114999998631653025677635461536635540853823747699872689815390152088958820025378399888561205430893612755139350100180975819172454278551818577643267191617999945830011647054029746608917572606299084989064945123024702426663659633379299498109499027281866152120036295282779130435237008699737801534421355405831706528453908104223383188868287952159487144370682393023759257215865117450842379936068095367521718583068187280643570051149236101753805183655529770479203959045630223878003523036752009048587126963982648266616269728654991285753052832596544047178848471626495674045719703297086331963237046104788522486803369011194338760433841024648754291585418863110299778768003339387021392215925872883503110460601402883192205660699579798500974497109953308281681277286538279358566119374298914842158388185336537937869109782820006619633196591592098746807482646863916960459705891743528073312265532426891205646502994030380563756592585712254795974058409889706922583725145967996983249509073220340653902388862466764789355070704499404278239252944891804660744710701694834709667584126004616405319292680900395463145408089974148819731418983290545525216964067518845325087400789544091977961735614257096666794862436913073001579681284667803208349159279710132770970554426490620993538786923313268621889455741488764603649777263263433997263052107176811845070930317727413184591163194651187630878467343743598951847041855409464120723426085061709798722654791603979908674157466188352677863857119813455075400555780236120870818153929892605740343517457323155478546314364509295353109977081420735236987350394452205261302091897428300017341495284230471642356963373805951743352674398631549182309686543035492602622894621903616554019365636140251809812678097063602837749018121422522603660186917102475910160478570946152560660803255316463554172182045358261825742749234030178225273373602032728044944838487520235529906020544068190882676586153584476743127858555629663361051667765313600585304306452625562377799180217517793265100517481946377534112260573524848754192234557496802485499675383055132824357871622850727911143102868739539280093300933051264012294939066933320907562075725647644729161445338448859652556401997237528281222330940882515733138175900335595547416025805728143336112551758648630439099601304385636424325769159344689506826741944120244249934300779981828684794745019467037099959002812040982160170652590202089781620068261608962005714561784000066611012037685526722200704240729859192320609376123249138594533500090394749105274544994398216013916595646223038974682883282438759231335134891365049688660989915801757961675190846005217661680468521889470933467317883695709632331249437780437809614898519364692536683666306326129867493483041866415989107170802550883296439684831926114632921180075679737609430723567020372628182245049842198872850877157270877984899338996777293219577571916451487033189726128215633397691373636817704686789864497944012688329870862773804089131271792203871898991052951811747824606319255979491248689049744766886121979271224624513109712287932549880368007271015234411030580687478893162950576950054125634664585606119210268948965249638647593121463036730445233802622883106029182102503893227456217136757281416212552904687225055683331235801490881819980194757207175638157119743136721889435750154167521050128708937761554634299632906172317875527499255637799728423375989326841001380685475280547536592949957047859584278292179855546350900983551908301678374574197892243631245482185027436858804791876572575988771771406615941693159936021638543254880611008721784954728481351875257337549842631492433248211211705773688407568033333438461426684141234325755095581808561369548679523378040126155166734624041202319466654948598143637587797429729237115299182227857184226508734079663712231432352250050714884280107187141067103591078576680112172407199922649389257940885212255126951565602316281166998017221268420104712190129742955334252915429545300945250253975441682638641579637046869147999369261052491279766895331446619761058342505314426397948203096924710366481809521288077007268496913134087649151937509388086520303606298966784241380496748062255955088706360665696342130249429067167096430733440068364239988506418233113417131464704160130384555839519709382115501606111010514312769588835151038246098111582484433995176957609516245731087623407209985164807928170831995437913489345161415244272739899761590225520386144349709036079231296766826448399425599410565975086070770968119990085452643549558612732451969851231749581435832938393042153468459583664473580560143462060587705813900184732577483117119110511407414775703562751071505973426618151257762020364758597673969291463940571071418725961459395897612667082629218863517036005926372417726690595597545458791089610695994981470589208488472285481018819782936022761568857508630282690370661099116464620315159513729320206357164798926128899738823525746361142944732024154990275588325660438194470050515462456642007704333611336255664117264405117810763034482047055001839323407256982862425081960393027089073969104681924963980978180276270498472566468655623404358654951051957146007401821445678813087874188473005140312679999687673968239548479961464743222209439918315906433345938388455345783661649731432528377642082105022606299347133243918577457180506871829938947404368675750391446137179421609336558760118984858858394193974883299574632636727018054102556434810332917439813729920712805272465066457058294824278978266238252343950673361679823815923786015587927800863108326510236417433625506798482999506397428940934367247665657586162696618893225738634125808445530829335585024708540158013947128230045410006472299467719278411279852794434897327266458981532090310505543072252042496188081432514226419097854466183405116916097556261600017331034350317371276506044683691081687851491473542354250777720995989694116400899646408323722298186508090609150547074337462333229416173009958855434712178987801956614313257851392688050511725273235923755812006227357271265468584807504768171586201700705078970168606158438030981061155836742639536866255661341496054789995833758988381845129703946805170162431758932528630595454144801579868710941335032254820531976258213882911866975222465271742609106876020904971404418814090809782219024007475934267577069990805417744456795408209380165327849767635342219278934549444396439453831622062233582208775623561090522723149569139085013042856919563252522889007885778347510417930409336831955033838093718788706839225031737238797895166863374104965080662266032389214130424717472526151599331403160436813786522451927992832253494652550841990215522997526263546700555823409144068109066698234037302234908063866665050320210856615262314128656674403878832574143406349232296780437801704820880084827934438151581182856607806256993900186564319774363659509233440414607809771862371435201610393612156427480302957777463675383228723761842271339784694970238437456709566278292468294763599669025401290987356051211633832576284766519951975346732676980168121593531592273392949373865231992292241081860009790136733575111215271952007227046489580083031930922254234014270302447943080693972728025405680821097605567672919141149616811517277977376525946762723524615177420069203506498267300839016870651429473938305965240851569980334855709858179735854203169412194589179888207450033433339853285363275963281902731424500540239610430708015089596674392882457937197902587163961632539830807899957956544561101283419724865111030641972768601383294238876951687645552496077203702071386015822647247062911282064152705556161196261796310896635262630560174524626630811926547769976222535843136977461030273653457102216331400871947750247123427259270137730641152488448659872845816757729100857082196379420586599350439157433727695868733702710548849338808593040432892381161277255770431454363353590806989700222324973651778174017089068158611324779334243886669962315572116410044955178977005818467064115347926546105509973061272320272300666423339676921800524503071320042378762996512151868885162208752821296766694779236240255210377574200244160613714658492806824628524837358316986495187808531329782417673645727232873904712363973838286053185364220566348505449135104973439849583525135991691159750997068361850935607340111329023959699803099622649885079255312359070514151776260078088800334575011818026825536691188141183590885911644836895317777729573537497544895645181560416950501899363513616874753241606196985662013622998472148917499056235466750847214705045554778562887418570560763649735350761711961929754260917360175691860878951440856806478205746301044577717376090678417764488222570760426977403504759225632203486840275919234424476953380194703974404504252059499966770404686129133203010002431528122657202309590294308434910561149760411068796988297681473862659151557062676043613468544263246070525401158199331490677801730031132346843069645461201968157874977754584066591529011275756412864264353761942726598925934943489358778394333288549042439318017141008721393750819290158756172014724603678398071212877699160814239412459688936109191240837810194136019257548706322137901652072094085171410443083224729411056739506885756581605475805761412631575458766355946077233871077516774510277671891345947232672923772874090685418820194174367241792316743908769731528392473514473795060967596623562911501509659499177827303976776237698858289983099170171107714830205899751941179011796886403607672555324551927401385851180941934619200834516460039537440561605567115259206234737662901278107554837531942569117518416455245073628658282711569027441401809571987796383747590068841636495194986605675329193154509713572646658338623872511333570621806762406721908206001075727092496113381924744123982852982241216899875759155886439835498002300240227770519071490522267322450803050496055977589630500032177530962853078566132361872625945333704583724650858104701296233723204698579982408304357689645307704161637706401675564242492439327590453951223687543453935415377092658981988244920860392234569998826269265708399141826157814746506032851266105479439190285688546458735340497582996750455711335413640587594832938388524074380766641215814526261027764939291472659012902946657691860535377574637271392804795037657896227212778533705031981360067387767613259090567193014946992901683424768865905409849916120522430307430651506331773903160461173188936620996082375120107267321391931014812426231707045153214891078327733007004654428058886661910442882066790707305020698112435894625311899377511285701171390353989422838103636278291920684437123188444820193057502246756355425695263860218765360841945825709477646349437838905237614884470517285790787298210935009988758063733637262912220152475269654449056037673224736532671370074479768042020170652123062710907465442516328207067021622906955685251052425625810633121279538485388002534404841113194005818481877979310457903314413878861800889179468447216370894306493195382881739441848037089130009216274495476226969571895246356838612640000780610317347838492382055480340700284084297802015467173199923362399044422610826799701957004026320888572174831758426678249483124392280990654586968930698847898063185387575441522318044665513315815867173717206488855511360506833676511452032666726526889654007904707223105690466369022727762827700595990853937666910316166464518660002155081151786691159293025841620619091273632496315551324446593506391528910575264909036602159968631718576348617429112021137560569272698448865062497524507569233465831913668049436064812583360760909245834497749131342567107671991067706440489834520921155620155923514605302972718672784076891906281698697883475663800489889694611391545551826058473906882788105729593990097331366584368640263611378624766907994118818193193253166134954700770532233488026896533435408699150396557697607351059839169015600786463473608014680832314685558743849707755974966854756005353930400270582866675102164700575679725192360872697644917198717558451513465659717057845662759760218403395305174158803659924778195282120622881018373673695484361308120745737008894845556986688697410349227232664874006246471215029188005740287412852958731282823821317575334368616121877227950813197678797974323048219031052213138899726148960624980273217690828303718789280544920614664626925172912417641290814519410844648507178955857907406479138810431692676580953441761854676143364609191215035073471351624510715356219417881105069818392596915507896018424945439031846787513286815284084677307422269419893628798775403493968463496527630279687431428483250612055242883703208166947169700765005713062767462241076287872051225258322520357314934440425599390021105877450217744500093251831698362102960557147194883988781685778458936643977556800952550624388229050970398187567198100561132553351411349152291501913788790360165808748363358045330387045286152509030695060748234588047174656659446601711806468587759137954219443273371439843111611663102098629070951747260470354991019937630461070181260225189378856842963848790935688363879725372939662215646510244313634515637460063994045057482901042524509088847883223867163796998633828517214304249123869506468734260827529724908394684790202590463477855223805807915236148643235182888617934360035712351570639584561547233407156461401005673852598087231694093202512132129687298266750797283775786242638764130930172275493761447747614615338291950042511731825485650728616103807000749833038555920418064835122210241082162352416000377988226414763665343448832525505059825570441520901172158253440213652058414371377927138374275553101939383981521340753613949078919992521015463028236247839877712214178986019714319150388832576196081426863701709108152418312247278645414246765935808724331129740677572975026058055251563610658864160075464666999706542143084490965868222205482085717652920507150044303707290309015064085261733839244695562491136087520834507481634067705797537173493580525794650646516772854163559820100425770729265044419421254404458161545399827681595294606485647914389022444528769590328456176881954127447915209332687171485299472229418518408309087324126346085760865629164140812962750901506699732782234315263094429461327446398434880536177396950794905858489388091078052755175893363051296399916051632328781528385142782215029710800290566867526635954407808809321295613238212125232663445068151265707298641037770026927832703966162227371556262497752806672887812511341462698174108482320220790394104594832129613026394340874400608295954944003817841295178435342491898026925084942744872874933934726614436458651174765373506503646669751439407898250381375411204637444161801951993363187902926397266647855199957238003538265845455257403719462033966515268529679788040565783787754266966229925998020773632892437306206778327374405854462873693800726706268192261019632743868571180791456828022836733695009178270820709859381102759502094089029082296370095136821219438269841319292900895748061860031465111669485569927142887585953823212807056145830240756024382923255363943329481866109954019343766222785940336379031471768224610580218917468142923506084560537227826545708975495687111532506425102614764149097454045336539452543587959229608244579760414843301890027200305316726570559543291388452910632143949778945852475705300797327868401816901787994621010907982691713028250188304524234103283533644738730016201228012456337214817364768903229556247437247774361658015211023612420558900929545186236863167136966805988810381998776536630611839563847056294733176316802531103344680169249428444387475597644730442491400943517233699772845065737592193818127804604527519843075204872160635830399463931330952967857039185536191682474894414393902881179176982223069261386749480491504442141968759142814146439728310150828411366637844517389162738466318611898242219806084852002058441563613460797447922097076681631232557380614140152282599750915260452136504496114340719203938926840796475271002026619852458808554704438206062333242287849325018701948790101633038698286415644186836799484123267263270894075142790828962991641129891270388197889085864455070131904431716517124764581199381569878455032894389475049241187618161084369439838703782070370387372036778008738216158744553306759684213569264228605322593541515967518535078774563892366900064350362923887398360759613904663762300659396518132759250201851532693201309207916747357464700193561687531293346339374158306819376586123339564742978564681522007376370793017236278760427700576532631839852173412542286657349397095403118339116950657821411590731210273743292517062952970106146367812804912968109915013266451126902478572805488257312985494761681105577401391941148789818017293882119710135664424013474289864125398928161934225421868388978247318895859045941543065937243135431104230352606687066537091110104632628557896808151288610152700648800378861789996341323406126262341032237209779735962467163561515237743558960859844983744601761757413699073289429487021017152613139508304240903300594026995169045738210653088929742847572104899569509179891426957009601863234913938344556073868958300188370912339304119198491858761514122574380287345595904785102059255010730902972981715100987626602433609376755727831668865804112444784442437299480305069166825697548114305661300406807446474140400314832039425887302091698163122023369516545088950379570694352185045391292601887443867866477860039810489691956882087608333557725597831093045477579938379350866040545392123163749307217536244916401616290319586358035747533804601738364050171096708840378017387883691481008487161066132044757340517349547002429767596844517173981724827280301785323046984920425180462354520287454233546525044649862320150765777869155953669098696280126914870990159691629025657473098890311398875989956200732091734229851179185008669697112927515875242430569210070956626696530006612182280731022657713952520799589904375943816661069403880247919345182321935783722144737373636478760109647604468914323193600433125435650039741924110846162391295016780382245325368100828435659441915674772052713790060368648585737785167117863804545460439638139132465118416719357959000785655063238010379733688039113969537854505402240878837670298543437807330168598128867057298571734867944075275921998073438242194621910108695382680186876560167809205422029441634523567098761140891777862932698037932606562934851114508496407370019029432105887780431858069681489145716589741091347569641813256358873576181560810728795454990100294223232414893286919225757714000574601127728653831656305798472524675188221710401977820381980406354928877957186037583371603480478498452414293344074049601224931969202747198996399350052437468709924012901259555071864005100749700150046337828411188583735344381482630744064340438747288004917490497306045188252310543872995908240492181281713050985659869673232813662205686536061532748142167871898775253610555856328196688757503595633623624662632175988721451475439634780993461087097333800664349301224321691497433875685009784877065037041623144309284259414946089323952321630688251239892393467524299806489573092147200820219856564983120520119585556915110563127859058302162959966469148309459035417530562631529516243071305755075550718895201945427941051865937875575157417645374930561751057480929715017848856270574222688718550147513084398202783775782369103040186278232742879632657100432768445916025477494352068031072854766489414830359739539340927112044398617281386742990749843299577246459735116105660263762305802324998682027137321948878644936308098795556596457151317925467226843737030166110867663113647321034259616551826842748954884987256748440483667099820073629077610603984248587922671726663336211549335788444408688241366386813244103893930533262197095736840570753614203081160342222389023412443274329932927438785925134941548386192804087691031217198127550744218332326644393364569809187856242373030856555537819010271503783313110237746975211686657299051160929530287699267002453519650224705326163666216943173956796535013372524403196889564969513708540208374332752407073182750294098297901985061954524212044276497670777329211411427992398349234367487705742448205882729866104454559820489271214481103243315937345409451298897945189540872838375906324864343077441980526196055665095964686034641850655448957693505508574674628579072690335257851124930265502980020713608481489579636928270314921610886586337126066142166733823325899403360891813579462559909449485772544415736654496238838012239205016485059160198846513260075331354207466383955461301367127313167856808217518430487197739160382852355976919053004738665813138670843696690584059648899883901443895012169757602982059669833694636944290833030714315803643421941005929069815333990157175564565284387470625855657182921117014634332330754605552480210833942073664566818457201091549331268910101048874359125158808404058425546731153012461022935598251890325704413910102453164652179177460139967791609551546966689801948042750125215427440370772456211126625525960177341547210401295276351782917433418071892800434639354241900568806156611013136901665914003546203143444868974787252570087696843237975320308069725182380119858436302774726513566694163196177464690559331053498283864706167346622623250848731963470391307029341827985146235837374699735456958748119253523772232094164306913155189241601503118355507391733698729040654862967901454942080593085909322795779796001430409755508443319291019575322471581784226563539176977508922392518892342276884374533847883850382999948943784657161007212869885260532304752775957818817801616632808094856407615696213407745499232001982900016565338985214851730947112108623279434761674313116409777320225167651827065850127011789964453562532479771531814494920608744368100362787037151402888664957539403104995910429491215386247993592371691491183565123669676093553293015080755127616187293372002035481670715326962766260214795476764014391959671005493876424792185730744410469420404637503102177784917262637335974489524530773565164182963503185737570812823338222365679214354954435195502946622119497456547628653543338488308673331681058061890632412180937119862725177950588658233598798627398646106929711705620484532756604555190325270634843323050789686424727438615828866787568245035463030643052965431832002069163152644136713488558811089227728011949784326991382051479802309703078773964682476778683461107310991042976571832331045487256047078165546101453088240275127108572955096996567879619449868928870930481062705871838430913370259116974302658417894762997675165987056794986287566311997898129376151150350883049460726296887853463544690367574922174295481327801811299931273246457662446465927245916273824234123182563755635370440864164427319492989409425559175513223162095452072089971654314419002578760480249486321263585223328058504452099794595866613230284124394639095809053407587159512666872483504264426178327741358306042072678163566893213317182338521830352625704928580755061087020858870554712070649536775304069513748034184099586819749451475137523578594740042045241203803243800439022506991422805546538244514031501581701164843164490606411771761741931244290426427844696389079674149506560580353305845749756084834513093001985836458004123933850865233422152687127097538926839100782593233331732705705060284269113126253087800694006672854379117462938832193708439145550645654978346318918896477908189620458346565574219248930648602653910296858235759974076432415140462033348038839388272666776366023517518178365311941859467745305460966584341908314482775926629661778326270560668618950096425123125254108711325534522936496759763416514807437640266430569705407678999293331775045741267786784625796778464869893504860180008688849434642510943219465631501245700919350053991525728955403267998770508626317931337051273282128276732786251757252564284710833048139941082746995971409259820957977375779310903283248050812962499804243247853376931678035869678453951569719891769668386133936372285125730137972409724405475501911669173747727826520402615959240518601556671854543955898845386450344754289043821870536665595124227275554600948902710909813045640725218549430502993587044211056869502463027171673672466058552690406974488124262945284219149331519778831223529467861862194797262377842314715976355576165812061225016083293798656083176143985197994413292306008338696970713113995614178221828785610269743974064953637251725258406520613287194195056556446051729485231724626253448710946729184205824185942912604496555330160962927490498755327411067613004641208175136342560202608977575854840939805777624540574049872337817539134896162407150192340499907539592117807257932086142892136930215691786880301338279691103563112862775405806988127808861648872151092935120445319732028305888142157939214685928039610393961455103347205880493271644745552046928627782712672024587858849029858617815558631405256399878647853119195827975464963488274706889955561630529329875060043832191186295911953434830208129419674644600929724128658234737429978245385906236454214287380130072223643799656686318369728701774963374526605577078627754692405844027707853273395382611892987271406853064693199964449564884513105126029841157135775846372917540462247559452668726621619160092503009300360926340543662536922100123647680452682963332347913374015078101045575944867774035801154407612520175734746407554198727563843376527947793129629778857719495575021022318484426173637365537018655075542947257549952962285895183621632369913014680000712516004902907134051896085841293717105231645648273956811957706476072469388655443155802452730243935993566584789082723003059770560652188599396563043386331919018500941761528031431561278893044398481117105307007664296484469817917280281314397168034230032468660770032385111029130294407593891010401512595036475299380499496611149256561853666632604184900869717115244870407528992233689290007774747648565243813699571263656939704983115756234202508490411742899856472207896827870319985510561586069379012044651046464083902558628263577099494498351840702579299994551724687074530117375614828817128045155366158463166114773245135747683571150377700003694333324493465963861403143089680981032035315080894255563156437900662754627151640294045752032333913569328321799791302227253348169491104234431022747539002714876245282678251718140458925883540799602908946373715634132009377406858721783641986420470938558451414971208715126818527792347536642049165882720866387689470584156584797493173306971325540522825697224960019566197888158906095383039980310669076572502666939710427678283463624602092256458345882969495500848879113930867472972117300118505807790147799781485685444593369858967543584537757016653149663919405870139853873829387109834361723821237613520540559515790539482689329978282530087030537157314350360073962599844482790074033419670413008518822009447336422623026508583991869650431402657961049384066473458970099209488791693103760590996594269536921265399784394533304364013424855748435012224689784345962777298916580180057174697619211756605728986519073690629725971681831455492102778458230508143405003945543649849466855246809266023541478096891830032769048798205268534054854219596466937378015259274798676490699370686348461604101569701404002797445484220791256086614213760985540559073252179270771567502443952694958172432295831745915384879626471266733060245162878397152551987465571371185349934821263740835797156217850305583538451026131904651595692608994032875851169074756834317338167127818421003595241747653422555391270464203273225427299323708496415985188981952663988138231503351805452253456815103549613131351813980641017410219869157655872554713947245426864280154747355576614560451502052378549678557166527423216402892540597493415482387138075698706908779670655390348264298164169201694441917965685859138650411590907468615766048863351531810250399154896875286636446939459196676520651106192567925042063977517219234502094348377593923911497830487773620383087001862865108975579020841693249936045848518306761858761803798738951400546077342683292937429559476891305690932242336328417724338974759781836001798643575477838721843612716949745893206529483427070549616422174474576198404754512978366781407545816880749760326898497219706153482253281934844987390534169873075279697815186807147012148180555102802483403182779624894802724686555153150617804696542888514403825713890010450531082946020667141627009205129099432692125485977900114599237403116284667744917198742632062121170725526311419655793634808370995003278413050676462953988973799395570399855624819868056966837747347933464477377230734559210848953393031590477854625111055846317652132347888183645334737007477811493517268884077654589104249890626243728096892283181519389872652868731370893278062680420489861750207960107562233927253097345468686188930293847961396356191565016197127573313152511090780443156385297492818228106629451319603844060714681173440425626029622991908371663640763350990649743965684596072090851853863796609981768632976811062186483847684929116985721294902136462645854043923764382416337469803998351681195285711749325845706288501579744258809259780794673056538643994320275127405580034981809169567042610558508851167788336402893838016481707421085261103149014637660473542029541558712685672225721003070941924473143979337653009417781544505253748720194084587685698424772436929736659891060172311652660712158707781759918066855679975171908747294967989651341700909143885127744890299501980234085545604384097144191255082594161730729837759583690944424849133517139677367734419711423499308352948455753223120729569985226424022582981619560760453396456148281056445245768251052484245681328742952952526392856473745498628534138251533240993096920006804880839045319686909023263598100735225027238817471252297015776205750325615923030561763228666075744570701384186441000613000738844254216616330843888566031661980180224259314944702054832152431875969167022134631193366170151485121208328820468031047327735737264468118962473288367983350898895223204146590320348014866108442333907265034082698795852246355250517401879892112805808854656176215795028774997720257567402950710102113655211141761790145768086481227439789918765472912534041252021243951453348997218921192883708953274818757121138406398224672650011297883887520378252854125152022429688566091444946481476049875167795857586485041498629196346887220574641856204071854467638402678414102900125610910057042840739833928610147975219646848995358071602189609508407881547889485449683470725273179605235826510824839590761400405977756876990920708437624339820023990200257983432927782958777122512751391651217970183255072530685742308638483144186093253216145544167466391851255935700095896317570629699485505482657232596004672760671066418562820224552147590921449959117539901431101567257502227398104503431788469688639095048127544434461740875445379965237600457636688482603770550594889689319905009866787671985732000605411791587006278367945745338672346003811190845534156492488866593171112256261233026855420486154022928470053292150456890455042420001381970315967202426684171110549053871897381718161262621432080564632683721415186290625483318484946628150454831091205723903244289195651886784645756905514076261674434120435188107717805259141862407723311635248312755713184311652776846668832864609739884069405084586292572874583973427064010889344684850807716152543829936113983439575614226984525504105343698515909979261418697983806912488285888925288972075991426438922311448461609152406810542472168857029081109046836786619811590320365537601411304968101712661639728662390380268510378870317356929518718959347762901868590128676102113662285276650988414291125226435566916631621974099527798136083245948715480910735630997883717481257683086702512701918550670262731754894037515747011079518374089764083884226399969520626830747809285957051645573905924784818781940246557213098445969782823216923223467910430196774867149267727200019622308540085591462101083081109559409485325320560698097984006786820793808058875515851804810678372533091562486566775814409506640763990053716954943400924312728846797526292794725270128922833669579888620619081978172596458606530597292562482268591993276922085899999223232143272193558757183583914956336076880417148558285623835418069937607741539060385031576317206632822644774160790357685478623168084065470196263180129565005485054614502658885606434207873112222390970337937685483364198723956599130625888470407534342896120490757926934318292209163082973969114997330030946637477103005324329075291186773465671209396257731992608560411892447762112866411816068261961259850645158663240726743959290588216799070346770310718939711351417173693466567773295992667587984697522816594396956747630341173770218379335284186608222247381564832715873448096517550589895550450167634131068467374439595094211416325412595169671885446349206522284292731327084052801617640865468345093168724087566249324679867237407681792695992502043265927452125417503846966449691108759506837649657744163036989102015194966308589982004477516258085569326473601295336763750663698837660711096996895881646795459503982702379207549368199231696548283385239511791604583407069086411987336903158987635099747717617286340765345987831694230358175419705245477497554694376911284170101416085081160430707014894481213834676114773097384380023343732435347902845551239164380215051646433741244086409929179401991343735417983763213342410768186915648602482892360096050747320799892407276996684105725592290427082783991428828701439359087258689724442473147620807798213578576048086951790045242581509150834911436282697611658501040288633781128081197647436573330322952624319525980116620870245956378060904087065313586478231449987176450266779932164938912259032572100820828804444660402675879416331605620546434579292258805357314121633774927557847688344635095991081408658066841033021331917887176989797348511179485450597944192525042759450611396508341466923795657491466739036662899952699531867163614853698075947697723790007560963370689873830686779364102691618260479289186818647050432010569140695142149569596235619758137317463410273641314313027384512616572097994057721317291356581100540235909718623616374843640979418553223740555050356853577802765913377429845128024078491447974749469066242371925627262926909477417582618153696845420669361548841061305171245630853762805922145529323583749171246311986050660277834087744129373523107085993303670012426996423975925670734545450146427733377769906804528527502713390286458819947482113476227611543678314035282885296923196032380457116932659801704821899747802996501625272717390669134812023929970991075720596188531064839843794813214034643409224370888818382771774322827355153903779917082611985241097425596925970901739768074174871460385262381097460947595407992595537660612414193336628047247499921967782769235436008354212634082934579272305694047596706990080858700145177937007503728598347141885902790914818600159536400702093672496002775699206270650721829065243390622830735798610476060722839806390361789279963922661787526215969726698383143008263198817273649919414675408221463298153656057609409224234483742100812261183005825378451671362056128008567946253610920584987916249794070741392647026023228923630804199012283905641885433607281999256599025623674474097310519012020505047194649990003030798220636825321910115395740594882782038419887191577390214466273615137969449251202557564993729401972839938646697220124503474244301836355377823582547486679019952426226759113193100733029306587632492163888746353157136422826744274420746299097955833240593471207812266186489476168822349926441112778561061081418085621295286750368765176886617024466363081802131803603084659038654772556053426302302290289746358992468892992055932009819527153631638126271909109038746591096827427932936223420215534406416914375119373676401432077910809113362365467514658251830314517705845864246844628472862666512243554392171814622821169480154976701458390216160180785082227739432276811288362041415132612068965376390522891514289568703789948434604116845140624062133204273998932965022358844574257035733516942696761048019838839625133784137107842476659940351566731078898599571092829057312159801102160434383020235211629109147640921949196569400811962175406255113931626900053993935166958431275578760502277973810221656992842382913119416043859385673036535399373942975341152032705338766303766381712379262506786763584480467835214064823361369958403623219253669184085766466657360757340791045376218053568682055418441506881867097932227279403025865791560104148674551271348305386905801748239438956461083890832723922551971826838422116858924107429165734221511848652958446913419148857189974150516350073238549513410797703883408065006625927064102425557389936360129734427516637436564180467893722092818138542512605244117459013652134404772276860159974247667899008090698081069218805768499749836284128620946376668795168686697928893847133196066829292649104521162149987292175188797950162402944297165961903254620783431834673166786472488646071698454173167614206656816260374304810240395921661069579586581137095026945115512078771803763956946118452467177569115569435863915325884194722087911077570240026701264337036178058133917473020948129936049763902713829956393831740418647678416151589675308022020998875196151048587333475793810548648884579944912768436132712963668463679995664459622257389407050050567881417147271865043589107865252788883754484390316501682914036397979500751594109638578721962324417467849594566772132989021736930983357978882500423778366619332398960360930776693909192229358299650836754693789693863799310361732909605050397616841652846849983234563950770989608292019697636084889656455380620928862664109181553354918853087055453353495415820290893192378664626958880000482937826177904085681826494928154655355338556061211955497168198003497934380606187610375394011110340990843021520205249175328850275627114226049355349700158815217270982211426263452932169151014137602902999979957751222590750947472080878903288002538385846520100154070581224552525970897939053493229208482615511961859993718608029037875397042561644754302250391696151666237134778536724072081316321891172024356904230617399246609401234067807095147238227937283861693246217442457328482245569638855535153347843569539105363716401801661322369811143515691080025666350819412560887738867622965211198011380157861292159456318129212504079382799779281027368516302713740721402738610375915851907723860674427725268127343756377337052345343635249330043269572793923267058306968545151841170166545206981846767256731651692895315455268814074661326253300636441962070368935661410180493077676243101028009845728065918728191880789097834245254022939819049649221630630810841689420338800621956634959405499338559011985742714177276643169451257708216636446034810764142304222613404803294621266622453033185983445497008536913581207529644072672189863328079039870528750695834288002158499952334731826656007930675409098556507448945546492360983093695738292622220549258331530377025095722821609248135530289899098338836366092526223268979081227519371577879093882462966721223552285145704394710091124115545816132096881745061383301470335355937355651104827583070488131333194249452735984375515873779097854994763022126102545138528616096018811128994175428166957591190095047261679953890531120058110942714159994562174821546089897156331948961026160797085332756095943745107842715381092783729319991982670563270902813673141028740167156384108317394058546509951501551414178027963752900653066697984851112545150404447392326862839715841014226643026806423367246968182935068489919073166359448943230910340538910055519690818912479635137535791192737431080642875530839721631656818216449997157243219696967618987489627264716424274762616232409199759667302770587298876357844715815519682692823894841336834151927659720651033388871976933624227085257338312010567080354280437149155807929922469373729616357134217794644783823592115721422064381561883776896136522573635361940427251695849391541901752573375656865735064929103433624373624009991004432778342130598859010221682917387727149613871068662434804813797339618062136924615423411280771709974239427843164604188760972383905592074175766032076790498188855338795358178403121934626350322000944993329143941469924929817621831129708790187541975793659354706358222733511909900336936844223845967557477775305648736663430050982762041473107524857420676957082771834741720118003602146284903950122959606765720563947270731397689088110545867814112484243234103835463930282111633252854105487529266246032612197443513850915365705925823096215987850962499707151484704829273556376282757208201350816487168811816246701864618808840037877516265484251384218068850084174646553936066115371523306530410356772123455012803435449239489234689899572820981176547879858970065333411649977231108704815331396238142909906005933459382075698215983428678852447657447551531974361208820142153958714620270090775744151304228236811956516629980808930530155626906733374986572325848833104173627731840934958577691604753805932150490002466970092898212211862773941814460635782947956488619433876825786855737510015670457941015457271808833239513686820002276034170661068120424628175084964835513324884639496094788257846613919733204298797115172734905270794709088912096689570427889433421162986649345125499513795112536969033857041345768886641421261602423931331581768213619717325706496586745041860534412150194509396796146645672683490160650364777567246828483538422364704891841508139999802639729645924524275358403535415363119099313240099305312211140142431007302493951784971521393151540830977710118478410561004361639478272861773870331514316159581409709420101023561529674707057233331950539953669347973607508484729971620991860408247551397420168465114329251861083565688192041682121055525313065022012504074072250510132841675957655901036191815618731611459668043550594935553412488379201225836011686246821679355454995791720796226937188489636097184281868166138823820438847387504552943158818571840032059640998374193529518904103105290727683007846989388592015173734264254890723573909642622032011382079897525736472164533346224932237099894674416870359275059823556791970856513053829331579760384290749916412273466904743992352944573975903576799498186024651943049486438003355955057081053326379553208010680101149767994510935814806687229473140456897168906944699556370101844608714458677261873470738139093554133509431837849547024343655003153811740796602490784096390863836605064841962188279315670774952619546595275702622083422527019526662629586777570697740526955374182916153749835445738575600213008110675573286551392363454190630319533164312490917357819298064680295452622637740273589498554069011889853600561416755575247152762398435726771717430433206150777339493142653580793996780850242867331648580525901341842944036391483459131746407150956323578036789047729110181317289556511481994925415447778286741832876510361490520428181840748791554614811256043960128388271649317621619264951668493876722284445771776890981345747814351004304321126404369415666765087763943704040568398192149988572966978400155999367878091109322876060713867625789151487786845592722382460299694201244764395072340031896673717179326936237169122792469357360280095388054142097768323504242988293329486739395820220250814457767114458954909201495867478348940319875485078938430037007480195568120864061193643441420977814990865065835206991980419913477477615366698115843183202173720137251813560003098117109151854846214854503589294046348076814229856688674835680313157256028216714408085760953168485853312645441039502243107852973092683188055543130687521988751952845317201659688424724449252108627657432797663097916353832697069934638076522648219765286037874866592332664569865538788305168865059895289354329861455079282526021871269315694658596429029925453271778227183576375672176807747474750534048571392360061193573129801692016564653456012925097977658551081621781429085924351298358721608965655010381790587380675498576799359247166050247515026603073287015547868376267735467411581319995609054878320862671400193857584980741791873543833007729862325233759848468260795220532258015047364988201763555886294666417067062302509621094051824129706595083259698629971615873694754084202273764484303471303246746511962374195106374858498426709714263738929669190901622337800673118437261292448828838313471413076069157494233586912159233833413786471765153639828853304352195266127455733943280542193034630050165845368378449435599532210748290422157432304619313053281454955582800113450888316623666398878854583855430286773012941562465676043154594578524193269332480530141022427758569667897691653895209503118588337936671734470485221481501071145245863813460441036218604128747290418006691033730882298789894443206090348846654733563534169190144558429136360627043128724821138342514847899630629132869574057158200655350498557577143294006244752166994088372770054493566141993241107543704139640257631193417004127968702901314813433818382019591932888598448587761421511536495079452921575804717829213483120304131430728893050507026952525193034574424208208646765019953629893069525396519653434896520051509063505363615150620197096734536844927835646026382963434496297379986489838772397780408394814243791970165345170532355714073176270135300457536488196314766222469371422782671773784119840728815507394631580518889328383366489174154072674552644852642754664118503192361434333965710222970449821611022901930050588913511492314622707753556764160583164671813681693552476857378766472561321763694750109339227373339484532829297376219247529932710785481775002640727228880059124308019324135016652971255084141006228162230735089741790143592516503832700751440853826080005867853164552992112598461182782163439485194531122085718377912446821922526569005267014423526082000616017610328796090772604210475193330928082633562682139554437382298269766502840740495473377263443394760402502349369551761730867985365901133922854585369814066916336247223366610573384193515734427005819271779184159523952029179806380047316126554807687152756193123551861090841328114945743492898975252852434584473917915919326830920654526646820132487027707838116341483691170608765204020118242795420082337724641948128092709223300031268605764877408073649577590744265303034401718627237644530331647353283361758125729513804354635853362353946859579267229056053226759461644896273943359531367569467008211814357717034142282552717185433604819622824043744860468084058557487377853645319278242472142658215279200058037054390530552073168493033151588116560246884099527243739952397983506705854110374885894281717273213070148252574986694028661822423696924681176000482601504396187727179930185420933747855299266524165825066133377960138843861881756392476931850104830756216678076251089958841696066361977276105728031026971741955785461784253601257514897674304475607529958442933830637385244762984162471387684759715602579614477924405674608790089582774748043705739418160251411753165873033131011154070519473828199350916778472308644567468799722104945590307496888872992536294502128897576186825472020026410942334676627221139621576371150779733077036033876662193136868269627607735676680320504185065071058209079503809844287164553956629528999143283184178925333212660196077092405086913945831990035421204392881541380369729222573540903549812876120137008683539492280280853386414222936097126148646721190545964847037642365541319863805211609773841550387990135722299437021110622647274825089622099670562721721541512274689770409729157279018863117296668710771187302469142116983998799206827046996976641433470666293279518246498490702604552591124508061520260917955965624427521139205024840404740750897295944901415221950547571704158538494088924904358708615804099577700516110449509992568390125291869785372308534030960188564922751585744772033192791005227866484713668782096688189155793650777149137754566455095046698187865826836074117365901547435773025874901995669671750010317551234335511786014843524995686754932682092675663393380371641172370554830954923566341019724046322796755257776186288704304960925856510532054295095701269212884988709755840929365545182787571869867891344275436079911147347052434987397616094088812923739049695139521817660518599325403259773506926410453570012994250616087406707018380404744937660766026624177503258321838255494581659640866208783592123484723897825038789692376919986564439619029137737038741624370151338641940118433167709474214095188871310988255442026223256044331981974466437173173669473347644741856298332622952897726605942395225298302988749662906096924717041881981352375215874582536969702050159376465960029716431762862493750478406728336154592775453101444132240024728198371908381757781984642727873642921625905407771478205335445446179276622552565246511460044067996290840838161583084596546418219321981455560600470663694527336616368038501681934095675345393641071827654056123398002799230437685143813506914996369378340019839384934512790969578026148113639758336627788782407534723702214802291288035314266757504247690706322723603605521144572549820867053124951805359881208125172599200914900293143150228494246103539438780066005588494294867982049827494514369862388472516873346020127289757916159165954648752346951193862656504451295040669781886048054079674836962617102492299986849870938952652835642891976261861482148393291690079989583715652449152727037284843998304137693092308823767283164481668043256529970648957270475887471258283822955462165545020761663769073879858971528046010574204610579396217026761882652208879682810331762891323600762672415693409128463957274855544181961937692282385983073021174464631129381002826471579031492260358370008806894626540982475575849099418278965387535255882797098695999294531411327319808422151103749432108942171650779919726703747285018473576668784130222126962730029354982045741885183603900144337802742987931412967750208972834007209802788753153751403570674317268338984857838349045106782136332243358936649388499212302161164040957416614843166295454669560943636020012281886005968756870445144334871910849681296267541592407090723923978915468639887280641947989575399901917620995888481313896790738076260798154199817475346213663823679665322954371087404111626067672134332854738433371014939200861183667478113290651366599305116411750981492453146470879358560385085262026151474731844482955487661471874276556093649289527303257455763395327417949740804407835801215477598004033221197089032026532130839711576395994993889819665914882473682600720455560964287919781856094607113919363226844655807743754047501122899773670183639099514583247479672868073697606004900658342318732283649060179403539616387771347468176548387748913820256630794697932291958133970083233228800806053512792162097468315667429910665451806913356903435123084082528730404975393623327189023163792265002808040112380953595642599422362576785705941485136978956465363044706234718296950266842423947996415802739070670912589010128486893585236362676570965621367429099148276528297926659970634111057324520392174070936942614832368899870843759675759976665875507758572291617970743606524911962026379366383791153980080111979087731539108396334975403364186796522460873958089874058793108550818131848792467108777402728224494950473050289602443377873181757910978458867226801092959469307212941566025735699124357760171921151907613381484719784323958068615828975693598349176080305108597198635618203780821340161246218082142873338236431796280150917349435913458251660915536768966317832821070440086863950686529257844804581975673040849828246004906663656014829981493348320297014185300161829083500319620434745110985597811574919223586326356283368278496410294253526806896599976508846827407903959008407169104048602360943658194452566114108523015921818518131156755503164493682313757802900409754188996243971048697312965476798140210683350356639560479266658884299539367952391771135276073135483065320565008621296477828000771117087721781297819448362099225372658946994554050842706960832918610244073458619298724347061274724377323843447547246701836620442855553495811251384539429349139801987629747660908306944692165434998846807468925889922036641210898500730102853351969087617851140719876535719305168910654485786827263335844963512545402757997389261503517107385593517362815750223455012510070984857072714254082269739902830211392238592457608543968016885291302197675849168096371495671636151985944256371388121872664671675151056621268686320545265410622563267560507493429865829561023401801472498341615765474478875534651165180092130080719443798676419843175371185909323502866664357691931554403380674309446285586489999350532411209120904143154774531894734191341713139371772165377993414892912025480753013331844287216393408673047598328686683968683819347679651609404248217433244320858376320618743475229180529312615061326598982850999603165873342536591826774572906560393774922215777108309853073867801388851592376249592854049379136962175598856118864573482747289399590483907904270674712115591464742017148152712646700272622628212326571290250789339731351578513548831686180115387729755855425280580104451896716743301925361415075954748450721326872469938570484253722720411736058035822023177240378770281080046513994818903733646817021089680116316735468287120565096868206195301106519699367890940711804143703500913362594088047461928521363457616540951177077690115414737211188181600925797129738849170417167079243292708550283621096378448675498573925461391287558224025940029148714169050274867213529648092819588696073587917237560007219959746052778584908671395347368431601048382456150654030488922919755414758141192334935436234313000992910801193930448106160323117578160617102502949864318444926202975067481164915680832090565396762437973003108028536670545640708171234015038605456720129302009406276876573058936317255106146562049496555432685627981592493052953484693173846247484107387479922211206468805817889139793477419474332189688576156010595177018075782788568262392353473344398366730148245891116975153780572662512863028877680382023207759468843239631310110763049860551516239328929456692869010479176601919283067258297179111785601032466581752516582627712317622733930147374933941184516263345652381351610518725585739305734418396099723712969976682184607835350900192035064451035425970453197529617220134623989624905934728166477383643636524409135353407813631859776905845334633072849599052225749501320131174943705354182918478264021017477237531069256362633650537366686757630167546241363289483866947365125863465391186724743237715531693688963883519145928948376127117189209654350983336544264095191029702892960781118710498658787118337943911905702941458939939445371228059344915652648077685405742046075983034844716169251280216053456737863005980807642480405260713856514277106102029789182805699646929695993110825929347745806447538963034347076995460083137706979031795734105699755774489994158123110765096908365406201602159139452419684374505980381798979805966674276932464193432831689306880670616956064979610197385943409725997412699783779623970121049952722647575854752246497140355153474827767493717551393932939943215388097875412736492826087466611224596880043370518658831059761031111129907254331525191216166914409446448402297357367423693145775804400744760639801290846813538457807137807922498787138462774819154745420661375079096405843165199995592239476738224253481466452501654779154512008849007183091541793302350612203136784687970504268351936535873569667734556666013159347138594586488274934510191085864366103500298649992865732599627939855602172915375250150911262916981679121854354891169137064810536399102183434851113684869184957013412835732324928230163348519230366227774591184972063958480369163153301183526167890019519374884189414646864596977108534799287951732725452676123762260700056792139325632981209100204493057185953746807930939458427175838589711038233031116231871995872879511647445663139646331751148508122662748869389868360627990137858309277168427725557797429210819190923465812693293226236355360730798152600752608007031634347791604939437768355544679402054221269786504248778088588053460363600021863683121705710004785611596958104400322766856568266116160239535028587603825504338928385100113952380787719694906435565706777577159691942051982086177009885575687102063741486320582459726794081242808388787216989420532418505687569864503664486384575432647629803178439839429581603503615827771776573895562656339413738435846269306386518870672565230386029085923887407481906210905053907915495163036023565391449682383168930549768692194884402364312446168900049825812369302322528531251624332125135427641166650432790962903124036785917028478181135149512467680259767033354834632090219785109774524172005332090992658412921118838992721960917473104504717604404370278018947641947578420984342307230369114616122986408098669377960232665890220548012569864450415289026423325398013233382036509708477256150126979273633479730119779528550094368812714735809880374788988840176309741596648079690942937274322224346296088315810452898000463257749677617070078972273087604160170514442099368473559643555270415917061319000289800809729002865206996420076475515101424996724694010323677766025487494442724401474286772172248730219008425155364152183317045125883455190354408738859360142760853131076076690698427849755714488517137850918744817631405928382970076303141916103543741902120887976536233712301481279753459787710587609197887407675860471883516981866547391663655787520705594268529387916373681305165065771263481877096051578485110127599146300347187890315581313885979656671407689722999797132358438171410756145719053195393917218260239512454578467376629234897852308462015405143768624308408589599456957201466603102940734237560488013596958877157317601293144247180942788866038879100001799138302796649385539825071086952669033096205669562074527555105149004717101915015239944217533050426648253616579880203943840223293488781927369285137475241630687789507655387791585764000117325980005329612025409419707821610710176530928834414679047387099187249839804917776427063854324581042447829217109638022417422755829329001817746362575339822558912483576851973529828419047801113611614712246148451082223048596344677557230563400782571725156570384162188843451338879333154231548859221606036502994818355125298355687013391603741590159338628001820217124156029879444847526816881525410121087618194629795133241070660285250105716887475858395233710680212070731797024506320382299201005649765518067983793899563038474769728576625965688480404517543275069178869571986737723709061395672156559788682548096040324614508873046837425112157877942529665434387104317960791152838529981488140803351902538525611073618318604194716591908762081853917352596726212643567219998214161143897087480971346226350376650240949028510175952209570053205894079994891139602264776198827566332347941639246818308680921699624714238787597234300089448968147766828881046214334516371579887899402996680255125012746062361058438099148642446787305768873219160253835248310134718728027793521953054526311209124503854316003344685242203818143933152131320703950541041766649147081429602512265768972816873079635506882962021761049136404460326898131473820336632168276748067543244742224749606999805310536908014007001281666639911681945024003817451435392355739984038228024084621947937929745099588497138348059692971060174286712533655437951918497606257721341575823685652459393508210197417655396485457898764215243754680227658213134227672873278851581890437783475799883294596762908271257002368065633766870961649305382606834122821752217702588250752870635256254438306791101329068250648543839651398041363274787916947496779286825275511067717976370456544363942651104038087653215383009893547536417521599761570880390825542217772403431004090028714204506380364657634120579759220760211941182382482571740783303666719954954559983398532961413851004410404663197836014290454982619902712365353101117262558135506244240004143178197039440346915838523981044333682201009476080285199409439212443193873684581334683226371964844736190890186600432062994618398592624970930477564453929252814038395333137636376335255910646976626485919284200117029535467265389965337270894726030482528219031792678122511332715637606164490507929344626619734381491792493326175185039341402387085218514283365845813833733646165082776419816635599340850204751747734721060356602786772065806136019035242680161980398744154557069525542498608954596496890987379964514851883980219283647667661012175055966143207999765360623961989360450464519738540621035373949711470883716865491382644428733918048366675466299785312236450800729866598056203616949318468687906203862708867891860666227109897598657462834556593915944235314836093825871272873599609694096559370744120244384896266354750978332883461319732959235097317034382718582823697272706459913923958993916400805705032438118399079165221223200784757323222041770537509208142805624436242672223061967710181519037256884216967942773557012210612362936948702714769834519480608051468582356320338045369378635283942257356429819357080795171444992641914871708196986838857830715846531831504793083879703291753273340818538471776083653813389033870827780444176233474099866472667336030072118457576525240028695564956423854179419347737894647939078830021282047074123066433828311995693719829917653507305856984005989414304663944620039466680808051603619992420473812205893178748151633601564202086980568317433562847395631741554574393612583437002107264622203730063209144508144398778520732807522085298901003613260346455584167299109341180523379900805518114437805926476454526802633365943754071779194500968565866134955362958315487148142151842495296127208758576041893551052368668521630228918479664825649526139093125579564825314510718152610234336405793573359728665128903994522825017965238594426639629114086184553296139515208382205571161324432870924271799341068222875716066646739735885472771757775216412766961248433361039770844900918495212559394625285556776567730268201703704137750637582206568592010148105381694431225009045812899750441476488096626014952131905334330938951012342738810002941848074491147937669882796450473961074707246010381247566125338164989345579466477327606842708805199148028583966080099662525226807624773705766947929931230095091400432201605782015008724944686852414339811272925914001516479382553701462035496307186077256659052041417636329891238211943829799896284660330468430636842904065518142945098110556485968482605262953293041560260338671506181472460555433610212085046609511223458254445576705982178413780408005100168901510040831739693931597006822763621958782567286636636440524129926964241805731786146076395057551647806138279906523581251673315323575366309378174365537896856486963868101076486359058565169816031538797727153435523215677524549653396799303058027545675750145529581196629882483607899281107524690608384244088364359967308369130299237284117183201455589723035252589274843149657123516416989042028380832427757578135741757728007231869216954742916192237768169719718362974793764321596455895187657898883279007090458982698032963033758286112718683887655130482088222986949605452169867451207876098088001139304099012746304945012383658700483747329019600529069079859316515797149969456801325707215454443382793550015920849345302675778976050413933022648871973081932217669389973222122367594797249748079990609049607518944024929182746699241268706203100820653564493633551227835796685491417313005773568812152064232801535872889864733525743250887138602036494258624333694349782309977416196643943382423826666631012803402084114944116148915259942548997885324149354851289526678690490834682586462520696518960212387303106990773185723513339711651330348879195337193677685097986064549078992675314631341875538644665915382873156872479400164503435957599285821224018979783241194725041824232671658843454591996539857786084888205792142583598836536335366629350881928791788002533145392129417803879330666061312500214033609185838058659435093545043090290539957130170042981292751316289809286636073783352980562867275574090751840940851278304590811608176759010025212278745558658632696560066519273828876363080424828212225567297081226886745416892006041871761685188823057722642858230312416486012019854542774283548418173574557953110211630861466644838934380892739818575766674062626879272296149167642067993794619428869768777058242096141098830810095014291043804660400609857324444147282485719548843850980414748647977777811178845920682621646307974420838723565572096002884083961209391783879602357125878733540560560570850578039753524330358375569635307955372711292485570253196748630188990076152220300249068882902736201365736112742677111232470452452365313279531162163904923212054308378237493467876187307286827518139489974097429556554149297831583445952064427245565012955738429138320154765196747005055824007600521770851943228497588256477219138162766511513588615596127830651838838277669255740050894200510464126249396842376695057535160065644566978000613969521437152971795333955072379179620601271652803456543974144948052132175656527464237993411819242568089896565117537750483226549056894556672528388208883687744850315588935845220384539351531321321968009976634889564097430780203570174249501316371218341701215061290932611674668757073295531924479482225446871131626810632743779381311215135499319096225444162392986902827881506457592622018295849027718204281505941712450999010575796317021616220326427247728938555521814049765791630386179864006428163046965430217500449679377549352481889095073825088549236516937683667060012322985798678873147942804297941796362213060088510389234002362591679037757899021061477252396239315832771642549978056825223766541811409889789540764343158889932055632173714715585811618701253569407096341671183162251789313156614486368338656747284297316310747404150533846761551046970036950171674654033554483215730495691347725117199975289053324723007861446406345830975017921570657436515682305122647282317976333166701683175578902580682496351051072875738481908821517314963429881483896901337936087868584334086247548639171962488331694995205720378874521532596361991922393999856391480329984372129429837183209327363908384850790133065754657040308525886822750530907525990341874687684898323978148360560975358594054934931103110491310595975436053998604808868914697606483750690075496715550020978704258781083634460230675472480696817717229480430085658577916256972485222557327694363460855960206296262510707561089387855782724665529507086525338644916180535533106518439026472731093245105279916000837500959870467083802605571934144171427179998393969302321819015817780236415213488216871536249279017917512570169753111886665162700011947951305243149878015633431651929657055099376965009039148224523902166888437749416525759682162426522436596111086263068722340596652093888706776057716253041565956613065656812022404770569547239053583353884396684528901014854092743253903706114415546107638714635995605563592774680469330482257070005217616829105562963837613823661280520118310449087160845395279379497855858955298863980032488965485350762303910591575106424403132645358424260376455401594681972620572074885795339166470294465415477414616914980717761297585606162222296424515015220902158864385505677106182240020018803657766143865467489579526874281624607248890625178786192073027570194963178682459144476091457868896843137515136123688154657129554340684649155098946725073824699582787496128409328113923591017782731909822114609270445212258710121632539828620713329576782168995707498773992977762476292942505046076370865575348271237225039478429339174005144363070418915380713962459750134677598965718298986994084814674957259417015426817017753197249101045645306191097495277804349562736325376614459324694725465789659434171648783490590373174692849072426501772050827822750992347821878774784133677009982078695728928893510064714461944849536756658050971915060833098849843252105555298649036774550406327522077159072205310748017398338252528897425129592032114063049275511453559377435243705157330015638928416131046821939624192574924349143629518074150910632958039507417803613043093524535490310572283427406793622533923576274144419692094912777121632586503094253080283370332730942526918909701708726318227250293847333490550071160485478124900957112845049101570844626747387953875436490208770096713277573928219825318325694653721213582543811252899069364919977698743222799736885114031289772002752640075915919500309175267574196146424204710136378002170625780796519980625257217866978227374889237045312235895464922829914485945686324341353440308704799451699602166365900138466072920252739631697498163382687104850180298929116803931121975028250671811160813617515304552113420604385505261605660600323432545263551088538231463496665387059781124274001411123847413924734686365076080650456731303647429981906425307586521066210998392130503455028477216544904932896458013146884378454543115783063930902639153489566765231229749383943461223172223039497194695251119915322817401571311379072690894445155268251394543664146873798612427246357856875126227051981220666449697611157902026530415955173712753847436328279083339883623082978913467566592033212817493270110616926410114420035308460963349889370898596298493459181223306772083025722149047652771808483403846449300828876303757298133539899935627859520046619738020119085275717377168971369761475692736896909335181300029220828755987325448875680543249326569395757976525439857292708512128162725643915417642860711400041960260360539894072664869492953194798059136791574874038080620851958671840398362482009861077748782581635257972135613247190831467909469792953532512250321256112862500476279713620104069733139575563720570226432737947039577803089993370113073427279671986662464285496396942607875262345334286682986662485985650173601801148179283668386120166796956985424676339215679617132335332175178765080370030679820102459118218615315459901514988160053741750033688751461472129461834006335390575685167201135846411543937864238372118096920073821020751681500848747558362669005290528963188307076338652411531762925197009665947802260885161253214937309459742427458570489965355791063980407818198660793452682907468116375289247360640530628700038362603976728769983646452284337474617027828194401556935032601820677617121785183411533548079046649447862143949932977118181340751898430510159183146956246055816768657737369784888102578062882877198847281011403447561372842888192675523105454488941231942812415839324800592251524109223863630903469469390131799534495318799587725639708341577932470274877796117241116153176878809692682016441713576101307828061734646471029097798362668364796977233827985976843983468088522595363648056083976871104573750833498261847698835140729772981084699561465508229109087295915354166018137438961545149338907287508289417336906631099268951912997823135729436458772610372176415210831151204210289449495191870594999355483269501353549571943715211438625859316790639479512782496307922572298260541630027988937927013023623548352538002071050247538568984161353489969121161289402084814232531195639440588858940747174128536656364523812762537754160692425343612007571522581901552546994959907791323287183983280646634818894327820622460387356328997703004298420663048488595760544206697176486991621124547909446670666983459944297299616490044983310954176088687109439411886633994023111465902524497927590165405347002333066746926613793660644891115301786387462012162522899882082371259948323340825098146846840405884357999672690622103382423111010826039952045213062127744544582037507729571266705013946595503401912555095628821618993527701728850585412476614635931507753882381123635625515962795036280084779379394032679111284425490192117610690812703326093592517837636053219816034992057520571198540781447930234610457864126872407295490931866980135287184107114897755009384629454993930874135014423598870610314791451542819465424330133648777995038241416992979016067863216915727915790174532339079729083426289390728431857646162215236528016077451220426089960823314427122417262707311475159695459692915964096333781522822839148804253383795242443617606588960969388793465457917940960794434198898540834078008180559395696096242292920167521758754244881669772924935628471427677567401278079738678536851489988665930580032140502563582389910005962017635898128476875394285181351731285782783338179242429081813953317994766885030902518089590815468152892189875960685320886775056186036742950743807401605823756628611919729494243130264112262262460379597169022805345011271197386237320063236726204155376225247562203312774465585241276322831252678675507808348451544253610616843879645978431754437875877617653080741685444058479311330167817499269247053611122323411834877979290680177647233140367061722184841764259775801726406871951262771065779067739608315287963360987765789576152549395793916828585977123398091158697319374359844576723302613236219578365445063383320788166588824659238306793417632852803848755702726362724640844249959412314010268078650177020164162264429329418828234124972336695435622194361860146593084420132325906562492796447090855825517038794651194195570240657547634552580653905268152513109708119743836216424189549734789818843464163122969421368111750178256822510676710741101289909064716875492682193970476240849712558714354708007825574506670407001249080061364043414245403168699976125879000851916373030388800239644457634762816385733843513897700060064680271577117212368159562419917620465491626387546899625445691999015143606575937743020394840712300901888719956525800141986953609634076516020850291328465863685388099452206373163957380255569517910334878223418345420529123043738860190785765589637329456472900773766922988670541569601811845897833193802224325316573455462994722604274101577514522162977259848186390742086486824115203068967573551398555658139531080819222555181785583803510621337504988016072984419898973433925682987750080858854019131437291183134993792150981145332449329066316161817694824756611059714270971758607139157086340547700570588187280000011391998531636274452080400217738663742770576677371870641418761841862465659891889168341073189936351427783834451846538200973137385443337413612179076142297987943615867703796632995859010092464170432307554719234712691082061766755048748771515090646446880252304727008251253747249242142049923385409090708311820112427703782666817990203262399666815912205484877590570556121043058117672445216501526753372891297172872052124323897026715103827902825609845699972179878752733682408328520292773782578167859543091156084626679787069447014817478037791125008343590076975278781781849133019498046087789112068310038214739618240279179545149081033082870078607084547431739473933092096293671085152153119198041261955268337210918081092589053286031808288470897357013639147072196205119422922111030402853548814987177788764230967694100987381383751163911844651699553486502379565106404885771754872010945962257605486736646198477313405605091010838379638820347007664749497424202789444721239464646944280031312165993017125619283223032566246105498353794802174754757296396838429214554550214677254668861633852846405745778492270618959644421193290564731231508425178380048994489222596043837111145367489830705011823593967688995347531439748240802556401497528041321102341204386348842161962408910454718141750541782738685012003780958171039142134068417853516161590707473138843062134207556990797046648607677710232897902831283718620337166064386977945896803545903016851401010328148872072428528307543560333145991755190495728985832183099603843811564866177011851901680553111885183347855930887394157679708791766405771283163281579660179312046194812948236950914490262831260161901225165884663599993875401177475342469347469408142629495651529135783011696402905884164833596475171649359359570426887682469102949570013639835820085934109409075018483336934082999674441321291979563203942021873691213149206119949598770066782539980539202951466871195347114257371730961258748058075147667501620727674003350997805348468403106026424468212584247521286136669079463063569915173116692167551949566693758927302086406345243301297278855349795427987150116131847822168849719852903821151917858430936231085250958920347118470241297526011117296117475025858123484753902807225985888282561872555432051731016115286580297446666107685391864857814713022939534360587183253570186950542839912216644300514886150547330985150217821404251138078619840486181474050933961392471251858393611102780331353302052743920348046297483074885769102266508937836597642769145878505117457491476097941071657705984801855794369896321413636538676954265204868276241995760832595289942430570213079550962979397482761426118933840135665064946089127429700067859786813764738503871114030967064000495261059431234949856168782137877410821236677979331412988000109153943405228972848823369783670483801361986287028221500935757197222440824960413431987271156511487566278336829598148060474585717224991706021035372727535673336237576686290465055761603270739286211255598087233232106670638903813976408179680340343358642200912346901486371892340477775728886013456562158788131673229638403577519322157185817571229610769360779736288871655210752827358074900908097779448957842742336570842803278029633936111105765195244398544035679497608672673544327366893625853515906274578526079999265713501616374022981110789344869718308218121501596933963613703672602023291032971467938962526682021314135175258538160821569689082216566561957350437341527049724120720271307464558354591252044376316052201966658575408596219150007740999354244975124924961952237783428611517898079877672186449664399186317652521341726594559958584187057220257371697502553167820018434052981066992055147262602192387403939038450834373930214551931161870823920477350547868726592761893467055722651164831771369679434770981846197892150555086889388280588719305345016850260148726529971701475569082442063257150345505011040971812879380499238416488228809837686668325686444732886140995403844492972570828503450062240335398974318652273650905112333947960915736912274590074461793003267114946519487648296860466287445928666256123613871518654196628474454505218511568162016390555007237793323100136284281822549070723309550887191905346422196673400580151019501379400817879685840463777069083696092956441349723024187511561284248622114713564486950642429797408770909357820642561309526653643620943329611851983911951841502615822370731459662005387733525097735449440957481541598135917519504618685102355527758882339412111938017162620417265456473902967045762631145482544881730603912526420543527930673888683781657941959173597522735802718594294357203519337981408666510718003123509547807478602880104883035690988866894093518805409747697456088080809463053396059813301354032010554333392692517095167352435085464648029808507227612151131156201092181543621302101362246927495055124562326459083269529004378833847728010628525553380950129467956287859332063879190487823046626884891553818611162311811870821191710763361939671539600581038193983223936104145058217239937935302711870467109447110253767929932801889589914252039549107970058248078811201058334800982547771028906089006475306201115473916720960181786152116062382556805013872864577274791641727884698297723606283494137555456236024568056872614050214619871195898120978822485162466947664492185399367021985124514715626188283983608029782639519292081115290532096262586181087614267136814717073775742701282878871613540666715642820315567435058410785215138894467449792494287183380794269874704175478469601222588248701729064070134157651587451485368662033845112579280671491368821486939254454052716670828069583963013592952737886994260965371744963520795717407066765961907779935252069550658810662082216920938472901223182736984383690350269560910125743900902903121769696063246002859695217631559058655384231873523446481078315121287852627274667561457564718674731336347554011240512383838280153107458564140078014288738603737578465346962144661154372316569070903459380366225496628174332925267538406291045481341426228378466047635665143024470318394752103639676964277955934342099853063365067812973654847949762149564641996907469914126479996707214977988859083129321894706417448661240566598458757754133998580395236019071766981294945349760074557687099175910366949066571120854754749937907772687131461193179775580460370450497620174839431387031945596214130999891972299752822619995807820335976801140411074141801213820543828819901430081985170046582409625355568986010530026398943741623848013952573614138690054562220512669598182250737016114132464176448170796414235713759061207293442925944911692124271821212459535341375513857760705589513563032360763059901664428347642448762411739101488734312550905298642129876921253560480255928108926082274672928977215678967487774801906097085359387071323638609246352648787393481920833494488637497546010925447692128863996482303396723995006118847556731293397073602997487542500142720059634374905547560770050785885045766853904637642489578965538893817230253802631177603638253400885168793213202419419912100326395931556822332428784027272864074493643122639875315916637035894975258263585015437911425626860833934827368685015704750070450691482285677188766049179396259828763235237420349369437797449716514390657194595876968257929111514026434569796817587972759206772314585978433816492556702654852084303854829060677672407091884776901631865628535069543945386831403681459979604617672074772734239802639836179859711214337121755953066131449009851467025741511752531956024180141486413328049157013201714832278553164062078383157121843537836084383041529826643273474857710481499242871931856792703305370196070651577628550921584145425334555061752890812571421540974392777907097753622205819841663188059396777809300634995404242224748430076958069222040732198874449445710317660363055413894727610859599811108064976336667675348781242698087023353652261104679857323518125265343118210991036496669664105891199788960200111041178472669645217105436616386972036409240787562667655407662575685650874653909350204532407726702716865222382636003158371294211638332736044073366862962879205692639387185998230656218947414820958617094211302595887217872624166174740403468808977632449102816106770254721717347970870622207071174056503682716086329831149330458696388351919329057859826841847503084405704840637817644683575132233903711301658331036723893142248198290819114868996015059491899458550680408418717571754638136974280762874795508997557833466216837114715633695975281143407608219383668855152347169676664537915112334624691126794900307801452542920092189511591788717262024452365249183736513974376165858418805962599344946283607384058330413704548093761029091035805935145363614881248300010428896388750215588291166531422838325100466737882856787511701069440122457671691070873548734659079608057364805434088790439354022572821171455439101209134792374776890472540734754096291881478373944690276715685558515924119029800140583324987864243679546445990201282201916565778119743814804669883832454394845722596882330955612415228087016915413867239156554687318117909466602158731952525215437366474009926078191490596695599795935997804902198100854225858801363363000990455319438223619161008981530316463587987459026343388831652945899063132057073469839059126134114262112109290599938250385970332292071959482569087947568496451553180702545513134473986882544206916656650965740692098874225785623524235591053247085366544100753263406754205001407093970579990004661548854172541716069446849749466181648541525619177513657487812707705108795502282758751554500163940831262504149395083713266982673880509061013743534263053043731691844520889763036842114033364677552986725599370022197823237860733689605176265800600577144938913818356653372866948901538504721367785920918378423982134248936237732520910675258159637883903124022662220506377634027263895083069136673108713122656052660845538373515135154651069497014017266221977972289194211745359920682721798352862221340592984763446531722683612282535328485159092256373985635103225664356860693506115094170120076219213340790561343888136350521462109521493604663717616591326681351580291632777597846200039765112675484732654304522980419875823115318458074600348810147405797150030976500515871162890545499943879800363568287203055884118472522335128204218580146612834788228685807576921806257199230614870086761403851628704157053423101067174608548632149828747610470066030434095004562185993880132010753775564106036665261392776620285044792551207748200489306024119617907764805414069372516349615773511750804318555270380634374515857742913995147191580674201124279828789051271340466669341455507385985765505032150656186675328845174701572223537862034668123259324190523356628345100466402697251621854120946126797033460034343108802276317432672386741261348324119850165494701084453584959144808199003154430922618947542183356072325795420556009234494945157026875008597720809142968434713338541038116420956950222757742001335828385282315428979642065115465082106749787814545871357279277312300588748794898474096659317867880938479889850475895175906068540047934290482887763426065352030272460055478737904356554134635457544978546164028723834861489710592509680828406815783236564392011461691802085926054058120427961851676479891596597063645700768119233751390715328785481780965470936212903977344705591327308711050794539661652827697718736755278096742989894358518484873860245421275387563317867669863969024812235372954508667380447144001923407252259074514536170571572967742439788912665425767071597548375024036466376753528560477009496795937776767880978369204357065501332771665038043075296249202104572941077502220465687260137415506511241061133433357427020584946217444670035774333205810797784529815062996714052369254559289948269694651590119063135869703626980139798126567341139748438861475465668785712369811583806341795178840686620512402753630363394983723081937601978766066791964853437278645072538115294579254696896350315270863653580857532058595926003933532322510655228839687969317816003798680056425049389718837929997825029241360761624790733195177381738364894084977685033743417325057715973101149652292593973058410399546175629877413612466802973710980699043033282747444218421363687262977911255786888444821558683283458636261180636145620003219068051095654668060492730689693846258016020470844259534284577064644302220073691993211876336784051826672177279297800319390364555292038584848785546740535683750360832161583744898419069433677155440475845743296004070949949849671220656118951122464467639269768526520360681586334579547390432962490682584617709807190990339311844376390204076165165730454559625195426236314598608398502703485015066626985832060379149503101905427733320865685934185078288316484651242277399018717537278783153428679004639381562605448150902209949801646505649696657864443086403964894617011366727933947264285762430764303752464083561391957033281141284190571238334019253901458131516680279698665922037123781608099919861150771129542554507802368371586300002064483495368058988772548078184086974669259487906907263509800476569215392736958901654936509552982033772817706631963851440522529281545785805978040394044408237760784027014076082832380807029972865590454138339898264137415315111203322500290029609111871561156626807975748875274430632465557675119380153072902152651411296700459586987982867891963646647168110346933184798258211792509535518161595869486767481980733012084811020857764430601300902912805916188737872001172035033121315039214052070981022089319691738065635624531498150745797220575658534716044588945256113752732600360774009861614406790205242794593107481937632902342781772133417795882748467710850044872664816808366953226567354343314999295710441958867077990342512908848831082300988798736509432648953227452728541379817707660913530965520081104381936252600085453306676375598836733430112026641217247899496940621307586495203917803272136330929862379667767519190793424280771165580581866187667988624784553622916314845553217446328970923947400057550440739255622267052866598466727543825977060800056300131253291027649049741408468021373137751871622518930879906791660951319321954598761337181111514690158841824305755971283705869200303978951396609231517650106855856794994482441957184244014613421324987549438155408545826001862945791518055914919169341118874452406039511957319293371626165236566634761011793242349597618422764730632329864187781350904149671158198999957614549426070359941234459381164226402788695526488549931283771025557735417625929631355172572737271643745711658214155378931712554690309700344505220161886761276600434419959704630163911428293633371143330909983008514498385277576416769166987476712367144456102487667619034143664286874635154633753370350915817312036109977781370725020508945051417676655996364289863731939716668627588990958910789978338555613955204539517067668207622762028905283531520710304431885083532239593147363056180608777674881052327361029904587741394812324058803462523834612353332118300551582042289591521848012695047807935040779059313103308648904567586357773776254186635320733476609761287679890323355018469923992453757089922828119928157665706166585527818652732140390654045267071120593310883355132971066318257160834878083335699445500154415414694508058336358232314165548405369814840286545850939036778789886476798577023352992988546409843726777750070726759216128743030744452738336429372939229122234172125677522308299888411574078311055988080327205209430808855017378179463413160274908373197454409384268023446049604197078908201617943771339210233926162535344470924924773835124616047616144948703557543701398562112732174450186767799674771769673773138530561615057980555036932534868655345619960685966409698510057657715655959933001450929282604345721891867091016268638781124565757663153976861323159705160784909634426788598185642194595959685152992260119844848922294914687467463813684586173208225790900022126462409870721567925709682581464204271292824764570331454059058739175606797348978335920618090111555753818466884473421948874768296889260267424786973796941930509666771060053381086173715610467707688917869440721825535687021304505605432981343049744495453612510412084201669717080322926583768009123427556904961030413742067537543954651330182840417068141838175779066744266445843523883684370948869503686211275437398645966092594082174815634907261184915942004993786373462213704239951499915372764588794367323592616493852861324371833497093449508773244057404378322730951875863731289609968018293508380534880994293400664515687654659923094390443892836606076945783031895548810110227807898555986597268683244832229763753099493195011526693562986288219982882897067390861173365877409234947473966039652696151595670597830449705917872685099848505270301695712940966230341954536586813119571941789425793042866591783013452915293102825203174448847625697618101736014478947373895747209591868389352412536904219239172189783706999604161460084381535207913346620192487341489191007918143187546002863072797088851545350771404791179838262591270877422954401582531724127173054415442040140126156092198978104718643211471914716245954351394868842348674083072825390204537951853990035219246226644845906238524721488884730574502889565068020192274209240090067478921847067423634848597197992943247809331863762712886715821322723944624028203770209251064396863248005205791180304916902051724204317038903601758900222827437674581922405357499133712637023482545471159573229570233216328914866458523696355138152528211357495917962475305768697432357519916452843573291617376912498066725508366307679879113856781573296362446762098379823123452136177813494510877569301451862385897712694893015591978812773708132973775147161906115904266184273992073625256055693199029188851886833662308706206799507030825164839638325888809899212618894263690646151576075627584995483385205081922007878893081387104680741591854558766341065444815049179482148428037211282356181648513901478757175955554443959693275810820861847943517582143553388274817252488694664968082292334808672149714804656832666224687611785750520702933164255235045631812357423710126376967938854597756067520994777652101497579284745549935518792402277292495542160805051413384351067010490065649024472450551342616345578803043260277777698532243438610484736580586386570189623474750463034585083706873765958191251782214088237100306343245183730249891257607179155827478821061176113072534553115779875262228071545155160622742856734751718963144587696107868269610560587707107738810107214183049537422638074055388776069825110528709828012294132466109243359109598951484083873213076065628583677486797145530945628743634502544414943824696317584030201386423034948277284850488748253936548629460189773149497886244485875770403480381399746328627699344230398351028956397507295963275765034446585943103185436852849774308213598249471296744601024502665479684094279652405425860186223093033815228996595595631472808759150249743799109788687418335403673761664707721254026122071933653043806853396679409705401654393711478522822233468312855381042221552242924156378342487938252380292897527650988131195310706855192868779204240872240998044158254949614164964529975593450997653501545114212535211688714179739696485595888827490898076864936294775393543731339907357211191944338622377921295150933066554778907869512365665628737716245985954029387637868256385557810895174692049430562633474094461295111105619931849552229531575725527663454899133891664262742842732485772440269375331274321170693223560263428945050260104220882735343598737126314899536347080710842297935045171605919626579755595761361039693413221270570099019889021893033677493511984156217487926969787479164426540237903176162614378262146212266417077259239272618659709721536538537430561525594495401619566896989710588933636179718900168116196103658629289706359914470090720893568361513342385729208839690378730923009501642905583194204526303500163409247090830494339027099325878336482931576336671368314761480841047345457420525610567928013115205887060709576801420797605062219863312973670308160776841640817281065965838333900435559192080079650599820920042624597443197645578999649681257246818255896056815853654295778686346656217409875483445075583643861459603323350511976753637282202059836317385404955622313136578130797069759736609868853654190474270041957107997895410128363705074821108927620860539156530658440074489290756560052474690127749148536608613557343004644428607175753257763055945314929926252112829540417059926703542246204657947450619670433634378741529882910348269819471858806750809765440781455478996016209605928906738287289667270027627362161087216125629350210061862160904163687285977180733654519841809492741733125043020591625956478113525227981439151917224198902666949244707906948781661929218966419363348443242120141162971206488777436496668365696521896592344024289342945162991531602128487381570655294514862432543936458932528628264094469328259623351892416306903219537121621451439366191258772261183839494229479092332396587218112637381034137812959921203323746831893219393138810014783498720511707797176088639453925916813913868494255416942374730106303790733343960985453304890549359012101265721673337916986972653718026328938668093727489200498590314607436124216682763977423636771868379142884921288862542309582408514092201489220272155680231286519583510187490292759228230726857465090618314825217844378811803300499834705466161162910565173873254017575000266528545058567531511431024626992232752820440749702071455840639831665182696783300879879014100285686843865904084585889274870539617830535694205381654048194605803735440345645000377069511658938155093463280586975906961916785453507116741581431129543364285937352975356426354959607813615691126333009861133807514387950085716930610869770066934402619176036988563152628266771431387121416390294593043156330512118927797539462188587962343893990725919442642557144757494124766249138577348959349431226773454131969128312001694105856899019032249501935713831420275308941178627068757606567450862886697760274228887054167412363819987440762163530614441821137886632741636336927600858875029712223311724863627116378427649851549875814555622359724459314137848633610997951110983775716222857450727721011429523183821738776870334116552261108704340328560041144911614870257216766423523414000912441207553012369473319681760259964834128418290797446253650560250367818757700005805894379338523275949825524904180933693860891032735330973829921788009029580747078598774448950742384784451580239152852891610836451800194070721493871315695254494596749841215530246003272773882294454230362921180710436355958526100432785203409630708147151679790064836821960791583196249478530861030398713613123823146817412726092599873847000399554296548717324595859311990352302468632053087757967811456366087595270275600628209396721498710576118854958554852867199677562200005618027338112525310114055363575195937378828247715212189626340577388028964955105034825467357551435342244727984429294043258016110718984280188465464317324781157451313147360712856961174200639224537824691986486856350244826993645602098028079281177607842282225224168788400504582525962014049287810586533196110626282114475420303308401123611533534128407605524530314441895082854128457406365141342008667659801199149455919534917331148799800064661446606411491952848018242898925415083067249757540888376950901085887524246322822580134613031382943905165340803197170534227043461760048479206616518794032178532112582027804104853295054337357051150212068716818318055924935726948964469580693906582714747848348826717874054454330677553415167102461752171122518934053406166216515769013762062368154361991733640755062871952439348125523869836527978183268873226459024269592930558070278406480426976814952614474002630772746808309301397372323165197999975845059227562313297788048108986526718719512007620275056536926611529212355006968752048465531407356121651318945127922257022202616854344381049167618745842107388624016748353920088043261783234047536854932580456002761396183735240931451002434066908827652197801217352697637245862214086042690454862556319389363309390920975212074434571191088443609540323270290861274573970917765917108180574356545903737769484659042732047577978446864553913104115751408731219106205264768275965969247236921755022320571982796134720939157766373890607638024952068016048536480873447981372376113157657511046501892299697703522001768282150040832140916270115440515429511956917092194090979690184572127758153122841811096170796349254924978693573156113217568921074797553473882586798279980532315624528089508163099372920507495424793578786607481366438767819160616664398249037916711337420170851953557009962844803299114888555053923477710574603566730043243649700428292162209135939489062062929739187527430011109773341757625416873637101842393264304281263222816888529395599279899926117078481563975865019692998980527875032832187895287726413716757472693297548040011242167348157632672838935884777942080319342037161967824230231601234406457501347241382764351330171173528513974614141669035606722589585901108485188185379002640260101439651845222564415072582791947578221043900176598224370199329306706527231576787428562145638163513880485553851892696569682563947960062329342417241478767956930655310389024925678147690582640810331191497149708348954062328177534243271788518977313886969763989279863989056441021256880057007838444940473884205591228156835519975252752832501964017518400787338869360236165222021382152370100957188402265389949388011870175173646324405794985087883641870744531551164745448014680540553039390508683578301907933739718475826788686631842173630914046351582034442159777047055672060025994782865553774695841826673861845169618404214119551496854789335068185659808985027090909401317902022395692065285412033711581701562326243257428085179223622716825715800744460952032362056798199375277010739764577323966171668590351341946553039086547623034878119769568034238073419412488531790345643871099668948658528114776489339382543248102595655681838051105941410221407383146098684359773349280050621369899381492692668948979842953609170154887772602839616233617790719076446398121703266156019129626765219165154167261172832621643213232486058128801806625106554549147220150000107282946886490950420472206302885090623562240252105368096197366502650552058696612990900717950224709803605638165217522127036085055843474184772903895341607999714978550640932058294764833088150978787937255966438387335459099558572898914826593900022808103352623900841140835965515994097972694154950035350963518340149295998496077984955019406192173041316550371049013245198231462589558079304144268789466389819338405653029399416084718455432453975554476612409035122882196998267643393197056330861578427255787087885581093864104930508718565701259305321458447876359227319878937718622724873837061883490916101178448373810502107711092581321340650412919122491497585158523414927139182065582491828126530579444061408657179162506831506244988935449119854233427518225129713253480036255570337311197302524348357272929731913804511249063767538061303130940074204340610126211681536716605502105455290953161563115057285308805875580184731434936449388697963402182440046706938546751154519553877355558139766825219728317492122091923963130833016482276568745467658418895510566122909110222489178715200278250057805726175666389972695601204578351346649702280899084626221260876066993810939757505599929828644261839477369412099387510302764899489152451480737999632577404447344721452112171894488755730036994912536431343290809914464054804928963893707670540708099365563317180424696459139830675963926686854704079230989652298122336709220614754163965602386746524071359923943573863688142342004566844205892813226816255128011720577117789784925426490358886149822149693850601309052590765830678108742327856238637282516945942480667399302430147864876001000372287385634999940566676933158527539578520645470044857229843590149176308753700170450153663501847336984031875021245298667563037369641974390692249033765799965459278132180247737270330898186484322380137686472236062660235236298909040862841877574492442214933774322512842561486956321466601164167245005901968246036132183389571365320354245094390844105989578586977545717582533750940182330531368860206975791275011882781217297378373580718083984453149942189046479048887359834346510215082890729645671937013193055294734051551808350744850304267466867921696082601671327300889364161062751147836224310106152181231261436085132738401696787751620073249431643753569251756106571509755629154360577273145179320206594939957487756737138204225056739811255980812225728247401796224137470380815750444146046552957326227386472581348982008478007386084135543763395443783704980309754532572146380583561885497367038335153087833956201595367305446852080766134819811830439920561276347612488623596443636142967981740720816840018889073530247753806106679753763498590897055231236783868903959442214268334602995284206138041879900161049263516799940564925823821598237958202973785938771653015222669709232539518662997420409289558149895385749643495825086325501996897405606587089826319432512323680520118764756848791380808006782739350807500677433448467575168070056372478131771634899490031991442188267527966566266795572421054087219021380085756563145122550027818927955565469469832819660281760842772095936605303126630372917939333571067411797280498068177627735979199259144943937034111800033267114286600385036747800928933363673331050313944955631295658801361130448641008648331956106921028958887219961055727971483751041587813549419475137751314143074422090233033714742593760075517109474921720675415213396969064206371480152987379048613789111178606851197767786168927003558786666987468733863444200012501253268087528804857153452870856068639023645956871121656576069347534029827507009554732272149890680401214046600428272077745306171022612877721050069844127689635210047859606801320314366338964611280944621238645577552023784006219503587786550415027883494506004493207489612597369345202288988643058854391411862872356861090009586106312274490332677592875235306541427471096415839481379173049328999827197808324264117363051167400460480537044898021444461014125167007207964778271685899876565626253765751236066446126133094742320673047387809922529921032853478577137036446186721912728595721332794623432731664649317405172646055043975844769537568049505701542886080784574903053376524586779804858763751608464981694646022746906358946822226676101739051891751633117993995263578982091862858151984691746794426218755857628263778598529137417299910920871737197775807040414168844702400828063081925656559221195481736838336170834287569606492450585079150290155966965044194088816628119050349328944693972570133521429422710576473900886569254925090712828998761554536156431448321242692797880191021431036954488784476550319065956147778491497050965310528091549548698431909265261308631404511688739766780690716359129940874767462094871337928635592994713642559775407763303837489665450874729349443905648812123418629628769512323680830189780341565600191823853017724574917160001421986503591181567087503349283796295027055735823848047510229442307276991423486504585234411512066553685154838463892758531391752114588295668037458561879543953849559928017824522319915413347103570305691395049650594533826078106802428571676854954110651616213053065237119469604562639042366361477384758562222249991704807935048292723750433970010472609466846160123710444717983804985773954378353474982787440508208145274742649203520038441997242498987371421239365380801726303079352271407429715606736492607907824007178135493474691014774654127449517775510189315924206629505066604743787877181306558231785126114458336890187835550631594304360046798080529312256868987353899013430060610928058131489072234659795802257215632722895974722949382281438796283036796698305536681981297703333109705370952007755765457538452763486505054569318192339018808553488439272150754760497198226332577299573879605893839910402311230429620263876554290904187071694499631345500510875458664864525750430609488554033681415025781000667535539673925313971813123254362213573797939727202005548094922697066977890213980714733284000034427946962815726415775536061106085381196167798441751130879040744386771968554787943358417873421750007040568943898266207624213512705494367440997326998135301132200459335667516046554834219128742857952021369747962738106470525734573255396921299823989994767744801730317229343872369531585037262514617346930650821260285890536217313902108538522543804562824782538317037278621937693976467044047805502224814291674150113560951598028216241428144754800546814011477248651421587875621854769737114174229577575439223134874812289469389362964437104138675615175294873249846623006044799997156656810859547525627005002700518509108001878323220323446658131497018657719264667139392980068652131293474072500538125672176062676962923741475662552758456168925459892313673260775246942434087143550057980559273664589844499148695259083425816661148393628865265189708606276068846139656356988124335593603207798747443867561637266198262111988026016441019468872357229520303481502913469216408449089714519551594400767147568769514158025394057037713300629892125689117814917121156914937473490078616806695685954927627245917216865977227876398500766353453393444589089103611024967605506098451405199831065792523953672383613305582173839814679546809075919065150733386065873730877810051329506146865309746947700932133029552396157862956160909230133766209759419904494879019709967934901672688360477081266354488330053710838275873773225773438215155353464676421165327122064196211219050070400245408143287933090774864304590426730037300498885349926965466980479202326190248726713738356609988394140089470042472947087542199500294707207916620565527759046365527641257514751909153022147422422634640197363099852671853032042364613056831685432078355252920651739926717831645174037427652628577759200213932021957810981158531535328004578964371678637786118695656762868682307284553979885222834977893455689480654554743518943315812778252323877425253313239573815266951181125821358661895808428067160347192425721086496880930854328894953488490577346862783099202338542622506934364373854640467296313696243585158772649083516825286543648664412984595680985699010411306318347829219745723523201818696709613922243196348360650903709647311528724540940175838533167739564644281979801883120535849777825302839731525341811325067429365847007912021038331403075635144531170923575694352103548021059488461758693886483425383406624140947818353556955201778943373860742138564264247958761776276128587701273745795258538801765520294505339529477313440122820375209114319686164750265008906597294142866855581796350049384243677660891641799801315104356500737766916739792021341216515666076292697073403084285406589496352640762765648488718183100573271331394923362906875138722010734322046638840206902911927356150450862774349041971377270297764915347058661021833386076029982129187086213012681766389183600288592998292483187017501665001988611022493932411496720992789678223516580922868761307198325020402986847904080690664160781320640438250787645496422358447757869601463826355872753622552720747215564372821376694566097645495827719614874640713173143313098703016146195324955935571793328011389249369582308700977460157498373167001426089854204752118394212737060939934868106452815418267098487844340816771655548954120411868349039542003908093580447182233454251903987182020708941433713613949853294898447682437271444906110269243964546232910372314441078273677356176524655671560166955932512648496715722046693191079254993109620055803025543487974740303505081686925806222366434689096337430570053818668842141264627761855114170997531752227425731360708107737544111628852706149521305341529248666376206572853328569969139040684434610905643814542362851227957146880767692607006272766417909654169664648011662150851099942761383266445640694564405506490145977590567680291476768151510411191218719739939071649451370206835185074444371982248763649664073510079945714319753396505445382558107539572645974703356397896594156934938112008058599430035677636225697566820420604594897385770580321505959185385523350862994149746260175970774133002987369146650172118878519191660032120088305303383314410153306622601039795248497408694986870848943842292176794542092477449219532133745550426340378717811660922598262077828519053939446821331387747179030162309433970817705269439472780381666868535572268876253623202117366671927620571799402875281168337279278609671008856974273831966875645071233158937034862810167573689317389579785635607205848276394468500932929671478956020517597283847516218566835463715528721681520268001939201765048216265068355995938894629471519702150119766311558816951238434688956887238701133903907747357610191856803106508413218168996077033944480031970888212629825035296423626895480858879342310519264048500516575735311272403838577686460729383005053380828773400881418286446578947904204745238858523491953573563863391587352331053171076750166242227434739121671668634209208223792017065036026424680682153998785694033626595188921438308727484771300695185894963244751510856071178531216894991245840490004525375318687703939720770532235034011468980760915022835007247627386648518858158202143204159301060349196290429093858401189231158637901941137989460686899977381696598596693916317065807319337813471168146231754700966168546692465895298204013894499160004922315856605575921384508502890679677049578300286845940878231411556500821832950528220692797092938539005257281208662456048848243357820743644672413356481885133338792677179550363512520150712193502539853043554330338774899027602108536421037417883708859485135499383513350818656245394865493646710271332101500381260487124200496314647699390151835487465250826810316847952139003414369429107666860303960528692211985655598948176349331495229275715940255119316949242409295274580778434635045211299760191166201309908173247945757176988596692512143147658097052318264463211786406429236793640629615888172093670750202882693470270731855530491642311440203800535913480568895039427726404976285948702286454354059145824669530691137892875461642372513698679387849503844909226757515359701707738058415956449776406724207620650611681881669431190182387343497244039436077445021694349666198314311313341911834457257930494080932765453179482538723604813385096340313695721342635563727543113445608359274027974674673693983693048538018367670796011280614759364935158586894450853179931557830684590020095262636471817573626367892682273517714522141665190714140601924432410308848467803913456009225376128718886398363053806045108241518606048412301488183754182944719438168651541300555682875723022159911351911511485100109642177364838716819721768637968933717611593099068615716758406366631700148325907341215466535539556702736116003640791869794649852065400702918429437694255409504028854397863718764727971565715299434741948639465462256663664081672042379591264308242575998035775380925696866760829775733059090028970417075947434642107924451084929583915717618815451327821861949309058977106397486155775798914681785365619522992513259660733495160501874383059376121278114645711048587941410027702417590241351586501449878594811962944694411780760684563124943061222233302155504633555032644247315300460274567471818092824349846199971270600458038576672916796173189530293676206964319681380510859797202489980500912844157233887950310028566790612352506824556258953599403319704875128034114998841857426663695900346598109523020349174247480838959037548016823112691793013499459187010103023058422838557237056079524823938220018279694275283274281032063406415980307814670702635718563775254077500709549574368185728518701088117997638321490612086958231303508789583752272018119842431772235632653471059311923629344458470249074531895890242050355985540467453277349779834022833212114145682121882412111552551860632895335051282524710360292439811540267228792269386944137212952522232834602041377878849627324211405836446752303294599125210392619491230094370769656386470908605591564599706505455400332544905442360929937534413499964571964193258841354494270092175909680933063971016507146673221700146895914125659915961458622124818097122267264618054666689163537117172089921041105606530721413833950943976703106088836306227072003405321716584415190646005675587013671049343240304370286743207304226214202581205146966687334482523249534647633277119215896486766421731117069463726969717395814682267165832776207819051000947693733396722894408113809823962707051716680865414085796823468464678600034749975775622242429743638956808476961100916891427542908989381816934288342584705854523103655129883878304218464757420641685895426689859936034004562307744897234951389536279051848098235010155846121589531081007667678382229187376181019505272170608406948436132666788556300640398259525249398961258902185816898322857688571956566385320736468550899842446192401106598364066044477504629509810087342256512637048326343390824311219550473578480225934442861167886714397772869727270479841433478731487840431920426933627617574385953194905942549980212278151082378241309564652531078019232497298756860050133111899517374474086153269372576892577554817789538842775387578808284093485046523528737939135066171460705412121565438560312087740926955472638878933193196875414669057748984166196688549688121742789115053527697059806695126080506279450300280821992361876690463430745978042892312018855470904174518239764375016258362849530681822434187910380864091458363202839102343604310674137693016696985284025620838604391977136587998407742314865649037322825140690468403836836748774871157294234193317876211540317173844804609074388703673073522794425560623560512906109635271697525693054386243630500172313264116068066846522162692752577816001632187559797750540326702983745886685002243563599534202559240881155206201486478274498412893601703333278421134421588051346549771761295574086794643265411589487224692682992004044447970662094288835440927225607893555492902801432455815492684839850477448996625896816495322811919207178235235037417277714976242686183371632198341146160541625445576679945478267641790725538986044993377769033084224389084117007363262638277772520821660303449472160522505717694014458335608804972678403086864661271331536488750332720732142233718246732373781577121409783719030919074209173005553107312080310298768315630128400390574489199172547619261876920277150402910518925011187553817155451991981596540004066834309965575346308856159571132987502711645031385690415358157181151997478140457802797543857151489509658419423780106117255551186794232862651984498557292132908340407548554228301274966707937640140124839671289783855670484231704478685001659422121659399789347931266812337758880399828201573875940029660658906554122428311701247323176845505035596668065020268336099365121801864639029178918029265230811889783206810821745078529508411844358305882462548533641487311014974285644070340458400272305015005163507949585677681357799723359540251754134026012618487785217537080187293730937888135217538301398515851038333164483231230776862961404521401722272010658013129585706608414901507400817516551579057122859957815965544298084917214182130451182230151215339990625086547246941940634969600170122735810361221979560479173679977134992300156802765430490587922261046247432978028170450439785410423473178130352238671960528605691119161124898959725134744384872522535825886872950586997871213371927325796036149839333532401059359607005647859536613203067068572552398546426748479285464735188242893684041089281911727144013820374250664778372848858670193865370588109855947494912852930821607423678300938591871563269197089330388976244773663120240648738026203566049044890448152112333223317494312109663351936959795987488862766909602736347887754832827184253318665004601319624605494540217813933136073664665925462366083521726406237850165659062962449979512009614110304112085064113230124254875805952555590500087867655852138672937641409255050639094445847554174864103772490894853208178537808392121215986710090366591897897886319429782930886587528245352264575133682955342898703707938384082230418752160580571853285580289575425161541221744953942058191745561005294788453271908329187726907292812981261025109954691336911112936815742885260943333612852270978954281684821230360913630716884840745886947551134585276712867292657577093077811412273290341463107416296580374875758517612035358153550254825355136119578762519833045422495730597158625964122507218936137025574853808211227044075276262180150215736751024046891328251679125433971027668085967819450593363232273539434894624220185856810362888917898694861260118832097325229625881246035384026407897828376409052062041716459464005159933966810402070361831649131086024888757687151624320303652503443408509819434860045037040188439609845752178544138807485918990479586710411132731447544151181559196465048306819805932533210880662346617179214168296274605874915411686896282332687535472936832911528244947168205864535875413994772543606995039044103364394464686094859163162923037515641627294752926731690716671806229417524305430595625139570195728579323568143527962204598833626073763674744035206944146526560339616634015494694272400850447037890590864850564175696809974623509585361594521813774579680591899936201487487628785661392071913181566888383085031266238252437185198229509742616347214954986718319389378223953817639250782620911760132918365505311122477665969651959960648230238379762020677201637316662829779782537227836020589976796910399395388755936616789287045933290107441737957307787947782468762345919308287183141828797304964889534604693530686527712828099584140782413024203464309102583317901522174015008688910772828896194635725835571332397340851435718284752225176864120930698412565910958664569651942639659506553169463494097388417008093794453899900408415658251506932833608433581701832290744582882942837198819324392869890378979307760806252388872906909796312946676584709695703667073376976833670105798036250004767944276200833908409145260135637265931530433871089237821773302068799957710620266272823144347003138863549595285144530271185328744312088126477138475863433564206582990420532613052641203107422575578608459362018447826861203636825895099941553957911728287557071815027008888748266561109334836382272337070244607383455947759033852728521476915752270161518605619043910537248632988709197760382313227850534621673069813752471284182429854909424004611598569812781858300563946710986805637134664330143244073052295782387980990638120180357685033111288315454763477534956599342744197891554518022161810043805465751585720134341688664536347919917367160322122297262760060375677200948575814223413582385200638582601185805556317174322321064396907276655774020608386235591560379134293317732505033989251070122513853673273546018221430949184488293463069585834141890615093743503582901963610203137701586326045773446015085271033505445536989558815369820396412268288259514271592933005317412739700871778300805961450867731823478630533193868929577627397584985913081232975682414566173729689256346667797312321881573948231318330205673386614767702625193358960083828456794407689863498844369482470506000172324487902445409079177173870173478631846492133367987599406071551975020275436886170560079118751202470113169725458003593559566237015965529554967210642138072782020187266931949959766895161740630597823120228891094713948905179036276032156243671334551789108804131193931938625343787171830848683640546985926223345183027154873861951396166161318740123410461878042099001455724231057519091071264261669913391767309717061671403758789668132577441166742664908681150723750667365288296115388525705752059798874910512799096856940674671539940674080606080587305269665758508128680333173609742552529112646086009921391351686096887852190909939855415305751276185958408284187565108008776418531003127998436180151727591558197167707217389664854349057354088322864019301073398098798332870538254232048549941757761871774779483546460561354844172540970682493228103284545120337042752007120522963249735457358872324257158299003242283075472585982560951555130476391183655578990548832602349891330672786109669690789486617568295182058785312962667996046123496881129344218194890736729037924726675901501045373160486098679858419672121959204535182624854522377378439940710727159083971289540673477111225406453267885399966069790695061034821930562045639600506268727133303593825349143327310120010763205019986847004363773573265711399845857048049745511337440218055245804967099080516806543331899993479539015164865054240859585044735035113122671803244517612091587997987376196360719158526172552054662492438666487175821392363732871748398456975663559803540072440184941630039402295810199097782732564438529474722427665646746580289505873636964979588650784602700729438049067252263858957178011081445102383924388612902326338431375357432842151550985111389153072045440149120881214672909431570280146195042011915462272539610570215595246599240137265037288998090696081955460068196443891106124618424341682918361439504820827932104756947732123362705567830458069972581493889657307739665855359345797653707550305692368311676470644837522093077151679580641639096654710424428893387271066906950045579803187599300452926687368320474240857870567342898140370569751729460816011070082996075657153371356159017447036440695232210845422195218846327885186289190332828955341682637732428374886398769785833262260977353053643882689815477211172404792147035974588443063463226963705705505886727942141016192182251308822867454333142635275375205619131598363026935008608245629915040137331321021996095247837747149312510595824907057810065803862475369359198777640847311690278963149296341015740335515342998092041852777346907477523697387599769683433523221815408099182277990339056932091305370699484634064848592076817740373110285725971719232089747753464353166592683381547977176932570973789770515207168583670800486443092722436655678164046027379947570024943330667432508046654999998902369229784613756452785545562488365306418378495194253213365876657438107162584530791780374535687201392364766920037905193773972321204796491777461303064771650962566753038200553688727527590678441672719449713317768911351388240679342869530797264925392503783485065989039192643583992665918817875541522951728051428354927052371348222580123713479734921512526854027302123031400465528714561528973655214482088284490124489131512504453878365148745337458848175653062474982778143943585780209347868704774044727815266367803101764919400578908686615288642749584576984159050042017067886435773661613910133518305277800206822426488384699263679066013191359134939662892608782981560057461362074952654799340483344520624997898319424665199707944515211750666599427486786081142767454866781468923851382097248477228922523675038920128118430770603855531692746320484594865897759991823270277368918016103685825820219135030753804333741913585480802253481522753055548707505219828041611484344430481028607347575578276272291177226944381790851431086640682961796940947030905789291577956362940607506951885617715115477551629694836066856612931122313751868704508800280102539211026956536221352817157677330567685854274528970477943017689819103248383751950803466701705702009855284608226442581113108173648701370253842607428897455343207082017020909803732674934836783467706058500427794423463538486898323747759011598084335242414532742727671766567584506700033080057415427158574519449438135025317709353130549792728439218023238375318084960226000172177630213340255411738885103640819856967793762732448628424378640326514726396913417311991857673551687076557642343155490698707878808727064384381631976370072018842747714196056946552700157895683356723491515407148660875956944433908132523763073762533082080447049414951508244166866683277925841953153414595209698036524203720239034435480896392344972479648365085496795498651030090213536180546793183544491523141990495138621341045449642791089663087574658911269904759075323713300803699921131381668452855206469934569509392387051075234909203396220478153492926275446489005865788416668666360028391207875367016432651702780289245569902915808784164144643727632914821104016098835978407721238940625993735963097918357952146467476067873531226441689036925152373089372039234239819059059304575587947679265190187017699745986438510619753795539517142367295089394235208251634290978764918168642527808024925708844766551067657333264896050770951890485082326649880663391716315364597460046933724468256871482805795713973086062197231160720114831578898975134249353563355132650648258422173393366633973502800270867661529180505661454581224182338975244451887636035245827611316513812032048328857063497356021062320436921982116185063994541478956818584471827178024580337225570979025671115712023446160127770207773275656377341327474792135873449285541520860590146659655546740603416690290789612418121284748715266888756331848521096864622988543444349091100408189720844759696600796016617303756550456757901979500484122353318975871919550176040200353842406874515665168556329790588158404640253671509961288468333251391488708066426282662264939693783373925584243227302338224622206284007783851254806801747514238254955122153983055846284260487768212291354271887246834136327565742929980369869381015251959253534700158362164874520968027948233994165589544528157357145163889086828798312240896758568378789170536764384303115654840791490637637195245635777610851092272876294312824702377558552600821753943027001879173250571531965889536462503279112557665537030227408606496393135850261123651743684687560453247951507137876470288889277456299943483943565706603942348859557606378560648652355568457365140061882192954394753383516157003623208334232976805095272753452994011299745670723455941537651536753106048710575972093521176011251495219882501298255942450925645838935349869342016098729575820869560499385016344502804172976737281384733521775160744167864367708578105757524627110870250367896178494117077195715949708155543347969134112412397472178260006229537915779528625420516858448326083751265778568247655424239618971658561872439266167568450545169991659532474350398210413735754437618856996422122192415402417730028869490690714825503895787040656883574723548563720188923834346770989757487692049890351129296162128930681243567568315827867554522885041403016782386282977386643690735595280507939178483128970474946591707551222652840163073154515646419101988642817582772373356313065477480625463693288619521681584480005176505521641836533395585796139918418594766072648764345050937028464886741998954513590919135196083350539555171633912467154606872560424742339589477701898097313185520981251140945543305094502631910193632050307462215321207196281744944414447448216119490943628854706961515746970034445567650374080821820298771590687050845526814801694480522278876634093776010149647345812039828445489340062195355331156924229524799973580151941983421442058883915367795297020763112463800405202066301900352736005747962283036291114830078323975354023390290552415106371313609288812427795944459574460870554876521299138278499624830813859107216738255860963662970814260705865968257882663474142665432535498199869908664384887749305728177509628790396253967021358885598839643857212297496829152583164239005270638292248788749344398896663228713217588572252946297816790452198772077760118879049450577933845121428634096549302831868137827484202504012143213696995430005893234551181156292967545374586990800554593094838626117701826486001911633792826055129125237992378472880242016468517034413308141073759619649842753043319731309846610989799589406468522766785248333190953063724967872136297514973381356679987048029268434841998517257804570614630877442097992470647309961304220444030617711435985109532461501453304572096570578502841934609544813597252135454287003148328926961732054539871493076763132947275544438864951086907096706860378480127298513931700570082460799896330071583702748441616406167866526386652020449213084488793559595035934111108048234301106166741707491601681669028163203217826640413364491741145646748688943770728824437538740395308722488677894331021697228448512207132183651049321592614648313352747914795491385910122921962902206647667547786696227055882771527705043970876003251492982467339205500847654180827319566195126669884167745398527075905025704175028898710474619680822126406044541661749318513560539557752694811771858195682875039538563774535600283296640302463043468799439366566654303783157356461284584694655816433646147042942054922692844635445534462608741650851643270028181766965215839424824199992942415525283758571623388584961209950495976407909957303876137882682529125396869076205803547001272436457825132813623442894444144771907423037558221594669663768591542207151665980149077045697418833415459978116299984590895741910606489892427617909981709189795222240704021372875592425724870702269334407434083471482355108564546180347561082516894960384551303787812749631884794767767920401778086820273290799113829604405484612917772869276854493171405762421602450732225495446966189911261436515648548474680071351068172995914817008237867433500118145052937790571866163120462782064667813927825108427012303922050587901747613535259647949492966342630554988122539697095835930237971042447697540184342603252808132614274744420474807681672072107528469927474828598624567332208875263293758376988300805354369453741053540379843282115559181318307061193245750276485260748444733750078259610530036642731004117546340371739799396091517537571344368865988318643425978599148165486457810123588002714990206973026834333291904426951232149262376548418153091977505325986041179138456874004153418278133501949806217205419048711674213160826116107234493594832386801025219162715119258668935500138037067208151624675202122290307113802621683179783540497435007287089308042444823556236670352683669913610313472893171493368201813843349501532458376961828167695977708234643796605077647624648108876132196753080766245016809788915636808582238538173292004167198641430966894447308087998110292386260317347370617838787308604305165561793370016334037269580961877881773701858475969228157208268803888485894702960187441085684142272438981502634784634711706829733033578133648644828193125342479255576248712033277866536590475894283096543066465333780903730749987947164433069692298029754207262905981321145874032356082216851912287480879018755726987910114968994620259958096503223420164136373889807570953228557272517063233841656303801837473606960343846524037517108212112461164859393156432061437970962834269551354956769764742983100684393445621981522352537978930617538973080506039533853378679378966050233612587008211766778119807969391222545776297597720430582062354721685939961857610390050853698903656624265589472937876101845833998848033417321278919486081065541428517986562951422860023559845044281342087491779915151121218198747689335092934940390947088374569360189027880570899142279911542138511553445817362315689379477217758925482473021588568883809487990290149511322506543947416374625815707281184185190734622136711669564556121045167567595314521675636427778122774486687035233938011352583187868332796916858946815544015345571497791608663044571720343446644780151337090077438340577459695451584318280053097374318572362265945745254012830428090281184649698732664185200616692220723538305457598143254327989912795176423199638363886877095769506094251009266762823487004655137016192880029611101461697652192486691833524467428113482698737164453539423934917262770602257894723325429739619278341703288240352487236927775974050891759325696961244935098810947949193004093428570761044946733147865722946586135687021408773168778499248697633552764587213242866568931802832649786695668279999081238856656569399473783678732789875093255873758877979061206482526645233918540034633035596226623507915959704790524888125805411206771797938304397537225464643531022407830595293125986735353819697959512607813805616592588342574243866522250442858324982167542407602024184328969415252838219108057432302127038581808674341194661130186785155055961535781656649257545956948363591136099719640543348351564190335199204503881395675095121171046342572189841237235566795173406106083999221775148392393727668261000248417179027801207242633329408146015525140090786303291491852051181241479054876791196249553547012503801225777237895307577837886188075664800889084912990111882470881700470534320615029094965956234396573246547662515445284012019346399159873810710873739972943426665530292180329398084524289449950403550080821685812006075662969632021910987338450037130670432542805484420856644840736290729559981948906499753849347431072284659836737262002377208186008646510805281667701234151435159280497676209792927040783093116194089802043930108539369581347950624734712284675062128275123128921479736995037276110051050260102255298174421570196518681352054290532720721455679743032550211710164747521068585085423513015560287704572736990412801317811387668654491958660506451690113930699864866950426738403551438736515658154762872289510864084216122838165814677057761289569514797593468719962861837244933681044308086473462524577608645439280399224426862406925422643992355113976865968322746162566983278978126946091178968196145197168961607018595885014143159133530793979241390029807870799546519323619731082848283103650787755039914451864429693022214443220688315240991565369397089909980218925253260814568300105357281392279682030939346664858394525544572450836547349593587087893238634592144189054226050046396276849819889201745519188150628147123603985266263659610592337328475822894762304078298891419155206367597629094852324346638117500104025583465692376607629515109378808830639226296515256134428109221389710583773091501488284090670732528181358823369726750478637503668903416751880543590407362427583287374698190945524709040501954922530424551871252749427899536550561397406010453936631403673826942429693922633469121846025251599059228413814712838135838873660905886883939950324073515038799718716676728107509685365455053999461970800781083309054536243034589852069834644932193169093023302730831740133430358504627553288693127753238499247340391735371707631111146671888963974887776690513575830564751754131329629302915462604537941354070530331635460837198226094988981340626380475076783693865437434358696796620975542596236157094991832015210619706341214054033479827072415455862079672977993331925374993887437704594092601627952820951536911747557193182927665880465338992905457533052960430379664436252648843600054006823445720277572178939109687428613166208963922877082824502720109190634275729661058811580209414272797592459871523145183004522468179398613191118543482731209133421851617959486693647684334273461200994922305485468270202725031814099529243543753232493079402115958038927518274921042935546531642385512418152715823631279898682683410719836503116026388681040099986990022876503159636480814355474624414243594443289050582866616352223365014437486445184134893689466895291393179454415017813439028522395844256065540722740570755059834091794541393865472267570538721691474748099931209626843870988145250947538260896297028494162090152130514852422776562831934824926150818833734399248991201837179696138622185370455719227102952331680850283289591792297380566394762734176793596669812610874954623018995270330098137471244300180478262927245116352798869345741755598740644706114461220096430998357829024486118105440230710547781366703321748928796777585437968267480535877586581869823687017235429485125636811755003977705993920273210485128489717364355139178960310742686913001834845870969884457241306775882901078927811781694847893118815332912716270911356424295164990850416379398732314026409165730637951202411054932572515496607032068384436720927713074084608040227593758181737020545693864087325334606457701609713040822033532710154815137152153470256633576476951154604541937112358378496376890279545573653116628638980575578043765315037056682040673306740558587590739715747248049346744626245900067471751099043070664817560181274680018475347440318588215016514242732158855261788689194012560835948516686401195297485674919925451504627479267537987082801753862062035847750315673799843018946052433815252357131473548612431493721644127822120877144614997282922034654424932584040812129675109219517745279330389218047332425200264182629155689101621216376777302662792794693671206574948332428043839446216450894905140254566516727738284140880712257946186306516003133961060234186354425448169311916697591753024510538356090110982730540514535560309537483699829810189031759049577643649883475997574355021960295740415497106005371513388471302778748679203080773653983365023189945817992638382584436821836245188927983139247601834876195529558834769844241260396055138967749226982525034343821850400398534258174304080654458680901121959238731019770106982549891453013188192724673342565755259572458565564644417350255501128479909206137684696202246623259407733120412230864513660411976082312996697599819469415533912883577651240953156857106174709328422026565237844327953903980047571498273144291069370561453686952287896141341059468333512776500009040389215759289141315266909941593311873439129608857405524276368019520158047504458993455507457588095082242959554794173017132714241883023015438828513270216862460915203126047927595451619337359677980866273899693904764659953528089956995635020900289764850466501300931021478031556812145123900385545713931967594319805513253939728444229002293871216401533986087235453876244605938205599035786716415797295713003794659822374040723397663582018958058479935400052609506216648175916351097172640912816073418090611817574648882080329478925404533344613616073118866732769365392661628814561156484071861907575630439554750778192018263056867739033250083297702334608687058116352899906831263977067060442575954867453025296458299516025614178671514049876453871666691175054102072240363076538705022216287998639708397391878928937866607371900559467965030692736762203922812373230065835982843775245396988794324500752945426128025737992407878279490933549752238832752487792725747694569968848708359346359314746576257403118379612632515751771469719787711364712434880332879555390282281457566921960408982477349779667717867532696522342112209382005154271049339102107107055095099490128015420318242948006245294045340609242987196506269860094346595744804899991698004359925116146171031314819428958970271768916841612519229458151805650429092806035018291244465332387379672430132097538663928995849937748747154650249927330490040026944801655444696784418782675806949860343376896475558893393731014570456892561505395746159964006094441422943751638729515270265081806401176897925494963294716183220024736632474352593422597758842987813441985862963534914501169686692572786702408112944811605114147311027755112316654822998668761737075044442177389221705143167815497842389260209878828027172427471445808174288854956457230520411286860567863996033264456520327731137380291679721539932014985795242603009645640554668764902405158934866008276998600575837336580122702803138562519679554635163609496123498262899640233777589189645524130002273175667617850933469810308495064498942498618216453558339802819380391504004400544418009701612867564501049227427318815498742366828624028686154497843863484946842633476025813657266382204573533845722461719592345738540091151321020692617870315962886338242521569768547492624212830198625161208682312785467373175578370426390725129640060100496728611902103142336645581684931545240123349243589338703068241790488807346935726068141827544619105631057956335977488278006982439038157894045046756796866745478644957942194474706473987239789565198186751861697701661211364595365117585459971384889697535734233025155583618262347872441906570355735348045262526544208933540420192433398840638886713191056460803990453944491424029832224491111397686246725094601959297504790663180753796703555498931375338005927902505753137570569500124332437448981320345349342047846562109875011290574771307384358309685827995523480726846843194449633612486667279561580955537486797990502689124282180950374903565790299326227995771595472664084491396974916565175029966231341921381527148215874475250260648937937691707815106883391211037015910917891679850837362649313620293676375509861051024198726700264902489642165217411775312753082717586753482998089320844383364398897219492534918962072127070488545054596767419925910490026297656878624855558882167473732437724062714803254870415553367120345768648434499984994548197676003383300243007058625808476852172374442874341218698357705295421200799716244238580988246970695283885905496809632816628300234662455793184573658591240766795042414884903266391427163572616566298651999982719730222223229809780849317904784584566646048513641424441970202994595227407833137669467329196720548397788310806922837695893547430602039189791486957094100045573939895146853359264116494688063051626840549125492473559851359014212615317008165165406369288761440478525341642527878323739335825046163234410079396245203822962252686096255380280558704120248027226427522638446988219396314243243880045415020000951830957663557911107808842980524284735104633623156751606093243050303184806584077304490167933163425722188715505460963657192768148061679052106690120887697910628086602686171410159413159642275057137794562718032538175151369329148776597174975697815481427483243347685866008611578552220855682308437783382486979487020093136187729634654350367752910107256679817522729774789892351237723082304288629619964122802538646509991619473216656361442504132781102864133441687218167722541234318010665715951261800291898279086888864440324685240146861800184498166097376020179189620413948703815678701090641564060752169846569330462992631707148121641627446956731003528914397982516805912929804436232671812592673323093396990050986741928861349184068662391075087636075987792690290879395322932851674563128778406306891069899411476070187375064363808512864069343002755526648872052044429018220728375457595986634843330678863553371514619645048791840853886260657303793497569476153545745694138643506844095137102714579398790896181729719303469363074642471380198020168040460279554817755414323350972951026900001272466366853027430159925632960178127493410052650879028653573308354300819475201051271132093229250941254544056241144980879929216397890300626652126414544848278257756746174675770078159715923349403089063291058470843425896352555685685371161307035150609923772032382282885037230122561367203564776207613420845528668997179445568795855488937027964571326009255217780416290090603297250323531226568642104151962652317829597907595310075154245888420020364244532252118915432693408091337351006289425920834055613827613094497177409924539836324034768719499872613459131539280778782509718105970004790275248445271466199454878152908640162903228289234299683849434637129263200542956060689639075519952205631097829792303717677701509744130998802966249210391527376414298806974943023919608181587884759301981685599746422765024858764697585870641802384627143686100613271141681213482124588752571306755436503276223228345275643588810353148750090271305174005715929175236876103049454531991217716228595631718128578557479311537465375105936226822179481936781385778908807237373368737652041250329770674310606185355229345677638057804741553155991386857296437116759881100415535628742285678738523811390163401179903295473682444649683404620199820722083033433592835510525228033721559637838032157652350560420327008453844025075073096605497431313221315369706433775156678714397875284383070619549869361493639096659975473859342190964049449924821242342641979665788263946310735429243928655916569305433569096193915679067646960580672338768356473060958924359306123531724294545899994400711251382121231248419877329944206910503129611187004381972774648997786882030286253846155453484355914124826985822014133034945004542642869893021645963276695577061361380005240066396557191701686491323402182771907438223606828506555734250278770580179393835263099603890748341971090163546155690184361009369818872392982723399963870043178949162381972870886928742103246809946709603647116899571672839112692666961804579162809544892756288038115235247932467087011953236081959212198789405964416640599514681202076944874970804587506662883952210953691125395912204414610617279787828436079251124039382065423437144052074595967369335953629389503480807705588353978892043371685291650774010333892487001158224445888534818665260631913779937766146191740996946527905184530984397908849101188901749247569504496277542488922013864559507936043402816525328280203941776823780143733267820753265235179669482347052752328675475201557205349939387746458690409563687728703890787349883447880179091218648454342338184063704079892314796259876091283915541258754835281541415033936654184115346728069714392466604043981373725209016239546853970059049846041297867704926227092847100489025087590467522551554609079742124256721897447282755662848290784076234602341464581867461190857802957419567273106761858911948668351830545387784617945817361488283234405901049428602457516762026367975469208318789670502309715741331086232543114663757019731133288244781415792996113704261545547622647594711750946945942762564209971419050409756900479527374949393938576531836314109802143057388022494774286604858656346456785029710302051234637635305668106694148110246290155524938636468676685068180142418516088641859883182694579439756517787679290882234096533357169620791101456392970020103250924819989505571317709764470484866165060682998348671466662148045952317609389532634471787131135329632731635515837964936533957620227242415475624579053740723661053945361428497876345771116865814206417884606356266102295833247297901006138210091063190310605976728338914541576082255042431603594703017232143915508903530218760927630697998346104323970048191589073789331688429844517540365994536562983058508627140959479069090275686480353049736328740182924206431107366025422122932585046264717436165540979998054244110400169121783871335505165038518043931561472519900337808810296769847383033757897269471757965302042234776223100218294133189529996736478933372419846165713507415547251550145753668752546215321887187038898382146698266825036283597485105952556071183737337505525565602284166330230338832278387817499070957463491989926565571336307826966971494114841069016764208185082363498005093836785130997018801494623415722418486924718778612212276598466335666613708926601872913260378041522281018968546501590504970911775658046824234319933793377791641229876447957968349244906883397227885230675157621365989690868931896669524212753001131923997153994910662133861256379748021953344928268460417369846075655752188675149071786941058376468045989287238965808856622136334818205799753508667441715509216182359185795418189083256470211502275088928842679836349171237786699392926545710331543546324959954562586101258168512325884084362413997867753725599582556172726473153732385438446460072059111420642585667616628551718195653373169999254699464836899213677569535146818985125893486142544439018462963811447369676190969171197145575606839312993546329474691253398422836868946444086928861534492521402415014196555875515528401904822382280400329255388428970061286535347889036859890930370890839676708965971577869921978239739140627783776481986838177775726711291381842575064273011087785777718056128293155302010618654373509827724583331661555662392282772297677275967024171263425322551388446109989304668260325570625824075432071103386665978962604774382087325054859357601574825126277701183353797480742277084972415234598839239996900543399897239542668449097669647954813633122605558121870295952586307817395833537216865897467102114088710739120083171135265857445130617590347228212137603051228604160621829369445021237424325824064183440540931255728626275548677725144796785858663920495849197266884459694736794894499303903197628768624260865836796340148204163770325172857551154235023509171153154461043121235094851815278580969358566388811971135180912617473686466938911486231559173469882251885517382980258051106748354137877406389127196516140033540944782461843643643494938178061577089231339384637409801917185129668737531340791099365643934707462429918904281804023865388413661798551935811851205123571162351334362240137471999346436694529337407417358765417843992463482112679596850199805723923858167663009376350831585307173151226483293124860469318624546903929458416405899624339874535446652878254802627218488742681888156121890845887581661790284289130839142918553571711619688972680683820881057425639980732146998154014960729258259331710026387359152552075126540899766252617036080445332198527187054289503956159833058814909220434495739423197073891616719422560920940244437490814688803300741485716035835735050843988960574105365398074175781714070194569996742251012011856156376021155348546830322403674187018188483321547283316469542787076574341237927809064315795457324342373380541444638864421521449120102632251648650763488559083222440001074752205394830908429190644084427719725759246273699110414501043913073198898487134943542926110993019579537942266407298909914631568035398005459573770540172322561870665518488420345808872231382750449095693373067760928236338634652604720495130921934227867960434343273857971265273492562874092615994960247132183559822500611956204561226405686912922036835025115327980219238215306172109027303274693814171434937223991485292013114875296288030507566910804744250383299048702935183158068021099233362923482552390825427265032585278237340865470272083274872991147699582608555237010779473698574747905255422536802499481769488445670158739035787117064786754573843779036654568172610369176269284919048926149050474406698572116364803921570613643869762297072539400437815640255263223834140848981931911901932892311739068727977654031801121042525265827580248148352657509485805078352218217087572181340175258840061439900607173782749522608324518412349888119866263104684983978424244540441334596447827963441532359395777215881221460042359636319309142599441100957600528419423882968076626940885027532623979196750202621833384299439037099503158869493492497892667295200899738919965991521795024823980410878545114232197232553253975788551260849262500461905114162960644560319365827449505876577922788933595244368843677498579985376951871739072319528751750022499364468672993881373235223009871231194744220499031551477129234171681288090455057649028207675431880874999007731515238086153727138345309546517562206445545668291405905909581694251423696557203651424019029093980397270684409537375766899247570080278201821237608032868815742887583375678939254588775455932867383203830477856264758181886803699328778338076383496767271038038845039644889334718525732319022579158521610882275811773933989461679916877170952285890217426133374513839820458821967101035837360073040942990628960977491592742269650094280779758677587028602554313684835370537099939698047284634029681550797885659811649124649874713031148984395667260976467682893832578711609995187040350231766502077986360876502890987286638370426997159699796124342577231190569494505026358333045619018387107573263045559067871053642068036437636902106448196639656950190941530320258071764348322923998507382278602279627749421979994744898098318678285402822422424486759590491874799009137702511102162422387116946190708216555164951552119328782055555675571322267108298194457734998123793199177658708547531550702987105277562893240772501832804544988586972098368669822701592770790384116806664961093679790408532992782417484906538661224663113628623678121326170465531925065428197068405999615722480418064290540212707132674545255277164072991154896804655504550156547287043945454666052431523071090106102647842982830954277449275947346897339686129472141573480388004651741314494437290896248079453944916301906367882658924490230502990187708389358887827931515730240169998424176591232585319536814988475560373582568852483501053296621801588189196725645256317809060816932569617901286717569069522520490839377657368959752293422589073545977490401122623229610500072851739359232094670977835539675333395780839327316313982251820025522366039044936607251412523563396974243654116747053853199760663396289673625739074466211231122502536739223423541088917718555052950099115132469817911633128671135520248671596341315466187500614564768539124550912852733539805938349114190993627985472075413566519892985372471864548515044008120411013800300147340259599978958749636738721035850129031192320717084018186397522973002266190029976992222775454590288243730807384452307909341654602202643375966145684785653072447148545217099823830864687738875402796553343398145877398350934364684451226747055590506349096608494931695973138383043779792201913103966329955971501454224691386356668618492590955974202757852402762581267906145107260702090255298719559352051488377830468261781232888381290187694989560361276581456708558789286856840545466027956859595217525731954279586000625063104740873795117566718246885552074380507977893869711614362799179460914138067665907093230827691142138196999320811046492785016425561454170246787810484932436674164648842015415916906527436796052080079999647230004778676911043645985348507269654677215591569030244323266278311012028554907141591318743198407432014339954881688602061921533877182147303383243636068476311353764531279010796699537934536340329202358691168623003100830873946698699625766349673566797972848068045457670719441890316681118335963670006797930361247365839722638450569326038512968282586163734664411743181366831369660057259706002979672593954330255007547608390803551641143468802673000088115930595145566612832758423168022755515757634262555245064253694506489934524359319029020107238555907989909685500411806133544624922034796864893574991486658663054570379315026724501506365293706336322067801283096160956405580926799995570137209190173949926610951333106043992442131507697895686554367511690714003165776647777623886032700669439742570520282475108537068783162798717175540051383909527791186947069440755478390106175917275327350623985014023286579380171353933583843259229970663275014852588323654894212924795367987378627711051370310704355169070137365065534607406335505784397583538371446207772088113574391392951978311733602704204840517003723130132062303513975050551071978495293026662875773105741640828075296356144477493384894370004601878992710928415109020551389186775012581784162702041959847523285262676485258034819862203438512831304193153407609208096233807395723667234904642703992253050819044237881275428549921009375098553339178155428859655189587189454430210847644628249162571953499899498289178991307282224689683616906679671644706020623787908924768067276692009907883395667780914282855216664452400795893546955923134567211967203861067857857848738409026227234335392466867976802956529399752354119095730695418092092336610985820908217517495600207296436454784950510535773095250205197548883682103832712996305701240125297162210343265834976376043956917218456108015560881856073295176992806319963107383989527243298674301416964035107963767749445736808341253377715459556929974977166634253320040602455745710858071894822417569515059494997292068139931321801852230686160271511495424739855627333290525438492901458871558266293945766748486596175255826089685249103738673399309901972001557404471491402880183578101896715470903726658478160371585404253741869415900579742699636733584253180727415904613835425471457367428743477134198223406877381642366656144480259624668421408552621171393493967475019033724903020776923355552487224675306271025350000811286588168367572895443542021651665201658472603680604832041563800158622897220443910778855187288621992094154373252106263126318509145731492323653605979658259776297796442790532917840388299652571526624417949975817529075622840077073110253047676910724315017929811863442488890398945082594077836418392830291612861690884414049211639905810588746886177200311042793264908832328640936516770719185815028871708917211040171105402930996402490431563816307343135905004084337596944155263494419213266446053659027320822219070576767492866320756416085139272637284921520152077916087919337361730599164377818527217742926575523783890846365687737688979012107303000122679143750388193643739678966890954262693874879150644148467526301399923798186635860952712552948257925248521366711203965185411028410219704821380247569212362895932486143968557104334486055067716116597655239682322163102428806770975443490845503369078609989451030935481878105059520745295025734218860717647852278989327335386721708540920141852677222273263037205143194586928369618716248166986700321950282391150932407943411312927116931108451937562135498191312392384597548395148685312749311719721806816736117299499298920949533685450284028644136252975707476691410639833176729382913483458832047127481701751317518668908263456062166820592307251028771503489034637695314332214140099976188567397275911714896286438405678213706455277733909093647772060789430275527280875191255383878590353177026734530602443788558308182752607383938578238312432465264540367410924044518611745284543946035224105553440920675834758745177925959346141886859185311189454853217554383498982795831977162239259595409082809210576334375424679398452267565881014713852674611688532331656251642296371073187927352183787273380446924442971826697326659336321742534234142022290816660234413235771653222583360607410288534458272402690703484435351252244374869342473770307081542499255410318816970170067451984544946587620147681937447944334008422054693317297531631493987267379604625984107403833303267093164155688300391501324776014469254501048459978995442532005408154256105764322454980072016117636467444385205698930043694095733795702848091019580893181846497535482351569123604862542414468834151152256911091350309883327636485087055856709403453866724806964923100434784097830389986094420156371228499786992820794716114682549812888985146585360208228554143800857146849354173326809080354013342704379282529085261976928442483291574400634631054576079883095799157456864417817167239821973327842911981420222417878211752466925014162923031078783783392874812844151607767622055917531171315418657471104236988530831319142810248119747929513388054266433876228664713061554030888224343247849015597760578786179592751571408379937832554046202035608723970991424640296453771615411802097970852573936625056963730620283348007520584881743756746147132416660576789296490218710474580599763228672108961686029640564624897961971162540085027389847063368572278768088518683802234467682749844619429548649026248288797433719072014487603873383513158575696329317428342368672388227971977831902555825184068470776435889538594919094535163213160450676268319683173503417106538708593732647522449281815497640356442044152381048902365025392038372900707138660287832074487565695097129149985139485315276085004226035372686732954041341900559751890330026694744375273976063452020666809331347149447061495395613667707663544439336279127204596303870053133413442868282088394682703316457243870385899040518897242221565219942361725113674048967836648175270837407342409438603425561619864978358887451461484035102142810794876053978610034871835243335099534651986803537873397400845400115540195957382929704741069307179543968128425415967889351017587720428207607513016811510232053025521417027932840496578545095507136939064402866897183284805216296479835833653776992916774355226547632284313491530644758397691510402423835528988954501766750628139604271554430858987989350306727013187024242825980599420920342573115231376243310555527904198130641598329171599391605979941568713339161235514582975786916437984536007693120654856287649543430003052708361131082230209895475649808718566892676174880545212770471787709106170791072911129038337540392760711968154864443079707164420644049832957133207667153916876027653604530419002708502668133858128800281784005614422918666328399063329053053206112553171103796548793722626884616902564343830946385432364225775351099260458962427998882978824956826436094534738482046049417444253449869938576210797852048850813638597643142068977054137107421352301611284759122591014322868573273484717326096917618491772061570630226235141058665478532740650844203314006930360567375415179487363353106888683566190249385240290691276531842519322877924709584033844271434918490219310073842890428598626614547694747876443683563356045470917455019055885595031003930666686496844946085588127399665906577397310366314181773460768793782456239625180622958011092587085561566403116464217998500083884994635597181358252169910863022885310078876701079803898974841542761009635702901929973399429450751872589983567168164419402095939725529985841808471136129663898163130377914712115455740623563733258452328723210549326339722018922150434858299324010544462376486566304421375807809391984524751479258365813450909176618764168122635185457952242394048663763857210311129097033715330325614902270150821787973877706846151403528353958371826171642251426817521689411680377521680372857531212519354838096146649443668081669738623327130738324882335592608122158084688729794116926418939580644693866239052506283352497321350863787952472927487822916170856467455569581175659323145280911352597096241530742527621334281920556902268051195588463081850009929444868721550863818059407908375592719991893556025667852079957714336520192870420719541769400792786642340025552373561613881435962093430253975096038657904734430344342407402954755977445482600171157875157691698945329591679954172045420406609069447811031839642256584951059369782271797353296539535266868551076508785161904127006304917210135390427817012661263117683119157411863461776687456321059929807407524790701152861737124731579769706148659620042924703727648566477726473968235221293416270345357550171903237699213590662090963132051696947411105397334528075600848431308086633251437930166038705471455538462983648405239401949000290017360737694085200586791425121157728581153638160887010448549322098607727037060586753181732640369051067546110536052528844543700927641230361546959704403789735654842503709855909770025789974406164860815463858088965413663346538822270242130395305843536409906250097404797063447305791335694349091568740323920792163708909856519244831655208422660525938622881794312708928700523236397871061276375048123604731389932393324235533712218292017455783621613734618501843822314128875142934816131883843842223927360455506428502574097905495087619995652294079302077764742558821658472404176500099747773703334082416098075668298816714840549847500062237453291355629946612460792691119825311276916631593090284449096220500661873383497180594259205585742035506094432632232481537643965858278126861199784043332355705744271049326433786747923038579916351717955260329922044172245168545679442607073043740227388519814765710695065110532523826946943050499716455639448811913377878449773612013231515286106218620468121402646158907946886815995180737418259201867507387148625468864606012614260811491431861729971881896950833636995593727002835067535760495844607304100278344094811772263805120893893443793742075471499488511894874877746935683558768836041854746376701854248953379224548666616339918695377389047982224289626849238454748959069367175702115824532638349949554539881086547965529578379837462833013253374640134909698775483230905321057031224855384966840410599449502838446817060910254426401888369312394474452400837216290620150638617985462582471209682425413057973885023413394653048113667746993442931528867217428313183405275522383038519030194235225217394579743849928589202370733545235888117086106497404001099610857468423649588366290822666420203725171959748059620935665554761544585620369890128362371839904487101681628931973803771966389971184929686210288723428039458128460471818345349736474469772133232525800035791760128378401793832354400624333619700226646216821933440686327322780177367024677248521773512977483981546468304815909542231739817509388461479008322537533884181629807157233075415478476547441493497791669264896358286402786820491952059253301095083537641569381175327252751297026389599163334821039454634765438447436326261713108396222667829145812925208845764939679802817559861245885776802993341523941218378255068889997224167420827656645737366051457085843051789846620080972278990777110731074310183379180675642979687053705616811772757746309305849745595359342267070651876605075610496137132504809920980520079178317847140345739044505976366717128383319532115488190341517863456748656017569707499392648150596024150515376027295143530165978623512413152046667981497718367153785604552141834466956449921161047343780998133089189978111766307961538678859221586366858995590950111927791703440548049660451065591267637116632093527611173458901878509782107232144121320832491923086203562616762045500867862667597872977561779488399282507564624789452068241467007138507487737640260986221801053425201586051689114376992441976529654187875772421911829856245457929399031333105933730506537584505817500586771187146834718417448895220192833189370076405133800528884581030680706915841954817645361025880332555441623113364138739964644258109638075305656287094489226499847064811103984858753747447910988656128457709485913953609067199373943017715747942183410346275110540346286397205128715741760150547348217433260457756086697664376398829916166032502645917780209428432082089208943229739152504789080801976215722337990605942476361262412689400438595423667617369240212956375443771043929351673463510889120552201239200958438459344300946485952512775675497510819447869417047808745152823134887528718518379633170989995779325916456372518644221735866319992068857852166917062897984713799366479232167406498822281308783538994180652333516726792789249534412784557064676839869218011503255864567580257814728086488874266906062933113703143647030942744910964272667058404724575494691063256750760994481112743563028446853676941324236908118600467761423080295965778345069327308258460753468614404843942728632166847101629643052787557914783839140286461032123983583949234948557809617175167316994296581183601890249837849749175896838564135649021479934063149509201608389424021023634354491695710143195256696691021496519500013360267234623336005149559791530497041691049446465771970306012296064944455674862720671686739808350134687859510336007668232349053497053218573482586223785431345444551768122817782482429189181032172557057857993302592188213591584814428705990332602572976554424081726266032947879820488046356259641979712634168519464631384637881898904007240554153107810244049403913307423898593895684839722826761849948502321819127988125702096969673166134894465541000005770132081605418127582990172194361197823696037141438604585862261617641103296256588245833641902177468992346456963317840358387139104290200201715847807032142994406228311882405985650872451876408896868882780986412615692179163289208457628884493107418161072890719920369708854753415439563606047787387738768670498654550534634358864088482761439932908875163060379405341273100743523503926191407161229806098029612736026099279212996742648342264182078254286239766758832500564052028826727830662947951546996827919810540834616077481088300709018823314331699194554165279443706224155437540480891507652089365697601269868182038366063240374788367902778587853071120211105468225350131216652075902380292969705826804592378366476885862501615021899424651473542436384478081042463076973731445613680588302065017455110739638654326098816869364564965624294687804589078107139488123015377231360341838734428658570787384765262878764533615258287467023347819468959010091108532539610512383128808758936625358402702061093181055911672196207271947375794705729285859785059519633348702773005652309712011628862221015638049061334316877740684184612717447561949700063804789037908846727228912607337456838023142143852000479955656958781859463866614554180928449766657138733747010117804170452666685962951520619232365898721521809013986296053033837832271339612906260972824783844295167256575046633583887391818430298244302712540433487935191733792429537623488686923510834625072816013111453900708865920222695952140764962643221958819220271639725085917113362620990408594423463327398890242528161972250996007474787540062590221652542633172453765245947153561325743545115057771548881116454983496426499842758394189794548900722067608623239154052669730080974613622247579843982713761550642233356296274132512032768737425401430225005669031856328363311752776102477091974818263478996078016583284334491192700697830536408935247248082324813555970271437139611089092272956245036767360945097330089562198340450162467701901451815609520517777725048876901537315427017492394938926847862282091823651543755949263044492623468094207764820976983722080201139774728806394722343494402217382873585057521754851100117719476690306027906209213770694267153965714601288867698170243551172159502646567114413708127004437443027760577900290649217017359225260450995665581602097491847914345390809014853012778311592712775351701765435606233462500933435595038959958551616369513322183047127848736390452093269105583363581209788589995757877837799459943356173179109455729793344085666540261112562141014623303223728074848790323113860671216884525569177656810802040798385047297791861424735372102671406361796311859612626115561774105829476955733029099392939516713053237718133703291817079413999311724552600071673259800546463257904885585581381798969023793591520131159952668631214749065437010826954136789338993933797157505525184276908111413817914224784570186970417976723268270199155205860991486157900342430120281420341621677937598698093190919987054201653892760826973786415335364622843776675803571507615472151677676456175952586643487593924866426089369122029252078582244026560790496464313950770794795789093846758317480479737295065554198284303191992609475456259642266294056611613354278417754640968360546412197802140257176188693569057822847905462914539603167487871827749771247028097770655773912773638838243976573693798600537227402507901589857508150718513764084738040687118395322321699785243367523425216077527903511352201109702880342643537785640437462738920083248384474642308414466192275588089735577629839250485762862885715562550576980581089699691202261520274556581817378483644558094616809444545850484630414493717098257130950103213352581857517842215042063955989012220376239317340569130898068374370746060685353440342830137485274095955107584438605872949417227019112872186014232874959090029705118405786956186123983244416473231114251064630133590315754165515662837929863372878956778405137355038756482393906009360906506312687492720272921176945613902145316799223906044248457064393525913121783976075439571451836898043965936332296991892352695555810634860018077242387744739423224063917053944080475707014089497417009619452377583224147003465433358925925635684423869079564639217321052676141823152481903987182844767501146244997665283739953181368327861712854207593862061526220149039525019788416210352208109520650809344230831952242533467683858846023112248374361324669065154054984480133125349895546669336297662126633782810959547244969254117601246625855801949388205418673415723985956081487646539656243075460009900996608869798861366535871232744659644777054493689111510501567428451609405831702840169777735066646839430174231567653832709264575276719604168899918344478902930472253933622401525199012349270058307357833072827982117844804436419168586852337197476001163632057747058100230803325422861106512586314537304796133492558484922190113481287158217926036956175745751027255779883894725302103945373336980812873009392471512790454312263618723192758143076416015937132706599841675895919081444635234197988134270592266654879196963981424434628620867497967581141568777141442737421564401942749564453466859184207174088996756750593065380866642758431517583219922232150782646930820236130462174706652483319379544014866221785380309291389257930347209597346693600593111858492646113384659350755337643675217470527720845412810151521995583856938625762061309650332605791014723347066900800900488575912712230083503534829865537830204109207306861884284574758988543331751849803090106314877685002848659699689135368879269874824664015222026974723083189828293214473898244968624773655230881904899789818077745016866426375526443027890028768874931860339952975795099642958944499907172141155932447208351307302354086695354803975094086307625352924541934679309068728613639782353713564470254506809790318211261718686247593498134201572426060733887914667165004980850448588981220193578315265312105840451530601915099182178602082269601972244945923440385582110914652892974467322981220177788003044411402575351386658005157427864834724446951413718769409942328754242368906111303114709671228531244022538366386644213954862059783674740214930015413649219592033569573937099850591881534038336390220588784378604232998384690565599936881992018110146997376823076776986729050259326286504522784388546878145373516228863237356756271816488191434272709165401507967813037792267659106560904421108678308096887463693759803611201985056707094579088204483507172305408687150504938044189042152770743772057789143663486727701013408807320122672218195807218896895090314060469489621150720728962529274232300783195671507593717919462689556826886420371859126593260588986067626798708182572486925318731477462353863444453259036874130278770070943593812945519755059115115505486815435923201327223412706436405330148824399327441334296622000564612010047231867629453391951501405012775832445256680330287140019363074198013019420620468837970853617383529281806358025346948254805973584329730839385858703908030367609281022124664908473859107174071441929470736603200744205163349084339430415122122308965995629473530232812299079497293417363655781151157559687460181254671399374217989823647086387464205889644776337264237403837683389084638826014637261427438315983652831779181635282245174344860013945169003508282622685624993107022073561247346832724378184691954841930631594234091428895868506084742069785872354266822846472032815910483517879936035437237702730368004875156736290136083734125850466829969485341030196615869287109841336121899446248605438403478827465208648591620228742840922979982801003864686438725864077945235437877340873473144677961005691933787689628550623104833973471511541130900464751286732000481926593446534824241381800950289340496952542387427111450301444394555951487388613575885409664666189589806027274101607004172057827823865667117012893270777756737985862937505115077391966624116929820007563172080287730666849233164660696593828750018837221234364612198299792422434822330668478804015841867626957296284170790173575512782930283829124623116665515937610331900377329315910475753468276857352236927626234954329265160083204278313510800306313420363381225754930779606586886845507807997108020442823206250852986339896936910942603205378213246902715303699576707686960331859227862392451757568526659140844291968147333519598358467577665457805107239522944683358846681004918815824849069610008125500840361588327954763567592978297725113800037576370326561296863539746379299571900652720025116927858962329675907190205760537194603487064592627868807251166352380316988889716377715113281563803561630229677471129761594266742367656039470159614900544896857585356765228701720827549921283187653436308329745979479777956382276127168689493554787064970836239483859721864657967753209963920107997333668122442812658373965287527503755132409933682373043746078281864923371720817624757093749546064916876917889383209923508317056271434045838255878157964387438422182602831246323255603307192661861890036636420749325018642551961956183434498944039557335371386663378763287748816083711485753994818931662596496405110318189266931132629407100546187724771514090827934683671260973446500138590480781469964065155393073848405961522678262068926908711241303056912609559355670542568910931250390235007342439296384669165268087186178399739705756303564414895409902510523335597325440378572146610560345163074670665504013862876747152557774413692196110212291243708336661281924067315746130174009748950305067315407447943198267706054078348773269473722742977538127949755704543450319145137036966778828166341238144707066075940616626717369737403795743783165253202472705106358223835293207005347104790510332200532955645331892924826572599719288307151926460586094088506100933533782012717475729435237731727129874173579306142336925872829237515849604411981598793932154731700044218276934190547140993271601430244804318637170964036832177823584023131635480202044470550094626963600627903357379644389950091136135247359824178684895465810222370213941301606897598093953099937211259677296105464563253988744675540286750240402701553515016493038631273850477194328733354917955750348734642917702687302461784133958845584586735391426122382133795745506673671084002671662992011370970366491620075249753506650687772978041738043175659309332223632508688565315691208518704278499743336200784832596890089985365951024719631855231124279053515898184614848549363948954556477847468382800002440528529414621495881421733450438865191668888865465180418983711210631900591773651030221045301790873061200405811544640345940425824486837067400240884416487813651463821134674950588105867574600790126372743332929935746271904942183910995147431655497289104429583521974127985704784335581432599256404319280418833026291861828688844503386261145981617068412198371988995337427927820001403966563652998345320642405220427653521198285548292598497799881565405591312903764081984295410461371324619644679501390227477148675813692600094439668128564605319219994105187727900370760993412516452796387579145923622712620662402976066703395771961963911328794294611169166751919598746026097311980608690855008953367226776092541646401182088023941078608741139090005354787853647043655711917140687602617529589569952259436827587409434487208208345945018474378957086174937910780156300055213583301957067235363767094060835917179204560158213887479539241624935332491714374099808263737195600033602137136267260564401800944974694496281212105304051951443644354184664172995078093470862942682742693397270598585001851123417882561662958203440643521288070908018301480265469460701764653341508151782313222751501275776099626011039876843441432722723699721083077868960412006671924160290586114553099952158636663078466930771693640235320146922561660099578775496388689156363602732205762602655121306025799594799715940714603024416864515569354137723129324571829951413623095184105715294666404495501069173380290384548775138176983221595577518964735533347211570652669422969574541830527771811238879225829985274486114780550008208945539353896467147429577122122914439568168286453915777950404693424077620030463761401345130581700530961073469045995590616700718269261820241128501048141492978217225114579069828605551245304174476049261202340517348400214016943116520747776108143258035945418065075623513590270823860835984502249192994455165015484147791246090848151348921095983487912078068369379897094865320617580796657742631709442340627596740192066279126933685556024684665925461821485804876809951386966159723579122937264893724053083256788647697203224400757609541518222333180089814861069864919993387868246249233606047764538706896923579533688050587231493576888113083574426483056382805819504254281615705344123083916759728165304104361816740517806249182798240922149088330452247183939801072838050074726307284770868451986381216203028923491128229727155874682158523111163398469835566504340356858063578114880438224639821438871908240892631169666047599005997364820708644015482551627478946889701496726579725740041462815869621072836260845879157202520001569383300380860874249743594127856142375808689014842503768111975882955085137940592355341989850616834478730981445508644136157367497084403620761259910391522171164797929436275147070187366666999188903510367935800553522214603720069517144436935984464212546746600681690977850306718227125431533959967530543950409410078042238283368947984308505365990461678033482591298761087103557307019367708736940373107442985966293695504883035956294479008321985010578328668543052806951681478003451962906174823826325345003968443028086583979960252322737294022811986618087910704936214510359484323427330101384545545003642048300223635033367871989179404307198621124321253429160051181852540393529351795343442537060272137604313233752024308455525006411621485480231322956681606305744033565870550337622745363436272242728564266729865730559716763782410205561553620759751896336250746844651948222961752429526723670490061333155578354060511599364106802209634237374818167048188052699614168908912807120528187416417226753074538870985915084064950466739984379106887564484486898302272544814845536879672250515171696361774711348935069135193809832041750700745207517704797372332586804113372145552960909929372892030545053883940610540488337683696570182136912956934476232289098028307002822986007367296771961184156326661441225986666447491619119638016445151570706468923503079378429777607543853796020705808729123898964800976313454667457979582592104597508913138393799581301989824420906807694311166817783953179630949826275497661261850834729505587442797536321717022033701294955526280669736418049228531197237150663419137589827515493820849855806170423079613656595499542648026598866494070259352796864861407603140592639768807455707396903504584655004225828744490929934679002160905235811997202076257790043492450634024795957186033278490319545158259865138234859749298164591032763454226126079232080184255955608453325236617223399004057461995766050364799884932200497564065734383326086469517483104268599356402452556452948985227328938186936532810490096371246558218351844068523938864440468965811498141359259475689762708549459721435765719507638021340371469654977797311844066094147968144624958405826069661075639274708945318949407748852430004002547275876867161184549712517889141390497328303596080356325780088659599940868539215477683447584088026338157974755580034400988755568636844203634040042388155956452312623744032749589462792946144635136757163420249930379985376957516789834125605754860228083724457982943097938389983804832774490844382368021100128137717107163924408001452832643374169258425237516230732071459990258032672527834568578499308938261190847287096301514371164012339986160568847766163038144096990936659145329464092660916939362847422476122473634596731438849430415550076698842927142026628255863092248526935849563550523690775619140978801238966871941875634451533183456427434808522048191117125058114465649726006591553814643581537694021476127387800521415282107392769152428112103623917319344489874064460370800301900885965287606126997766889615791359434027558057340242947225644034176102381117262287054536243128638754495931466121118590188992456477148867546491180863941483771696934932213338095701739976794525068536548785203926481342460700977248078495457963523303203344197990450210243205869914130356001969348587846483732488882390816545619887275787072064071010815624926197495492518921702687387523525409241026978083829906115702162271742506046317929405278592117538281792817570084546558636362771162423830844955668094983502708235398766582122969510772671090136629324104971837289276031629354793322453630394468327692915375413064362789342011743386380969124653374087818200495769156107733144343126731770253092833391170687759509188242222727886725152547571687649619545881276803263086745764300586665508049747147919026408756157157032807889275015610015593331514214663207215500348782528365551971441311580060322286034536691357296580784011861390892381576398120925912353270726897141827420720361911994613036989144438443404041719368872258594444469209936259404906800510974724982229289342524500817965250142804713666035783632674594354866215941500830589330449274429835345211371549830101776373273551974901555015809024965717678638110518052991977769782092952223467948655687335939474821171414033667568044001344270627500082154563884108681205022266695763277633606677116500877075906627202671827120708873038376552817832462912129488964194268010235784646100632546984799455707036466085476405277587949497439639963693826599452649568136903241744114852890466328015911286848146234574942323697848429630508475244792263179871584433443513525746408293072703982130615717457525828011787388768585911769416287931324919890288795442095999888026757735448755247515223510624219707453245310957013159703082473478756705466783593474508949767557843140571781819916197219787473459811933822535572493976700341263617702164586185498121650472578889801007225679838815197580610728365564910343069040019233074025613943646835745367751738173557114892038214906543486273949930814420013656399752229075999120633049670614342553334622082886514158956587269470173572278699612412594041361123491627231947911446292287837620946138798833328188430243688388026814299458787094225390620598020778673967486167201113568257388157909473343072871654438990677266671517185764463790662379535309480857112300329713572970034617533571911741102658701275011473012897164707070144123022370643932585036712162213967654765711107341509713757893939715117419386960848154196277979629262234188185898462176225119508304008632786313410353654428844300414408879359081497719964818314265574540066567316536069193757703482320611368680013445059640997038457659131361033682136617217379808534362103716190931421593221008649353765201057785685243335773141995907480915925058660981237320336051537040607628598802407490961648589083199931709961727015345654016739897634775797285515923235488240985050380660928946972007253318519294695909595874991062647413909128540012498428240451645379501101986498251734115823427324533152072432693429732458035311660492074160090139308654303821656010154949927306452950492429369296798853694051020178785603947310388418944644877494717333681104430710928050661349096639806049610875994806702661335706241807321298541429240395248833660357196697018830599933978102771070155137942107631717288515554466326962107574782802342563225556225514723636760220536028808343990601885999124554395636578226865602486817628947674954996983386046871722943599119980391487328344414098791912224316487006140159105425930296987742684963985915928401447819834526647451275727132462614171843042278935211748065243232487220110066670834544790084080747134716099635644749017669356311963922876773722084370869011347641861764170164449060390399207831082950893175508968957047841465154781092895660387581665277366337610485079762763653872584746371947846086839212064870251173165177361504594038729217711556259814127698832559036959597390651833319729195863668624941552977685320361618078906738561156351428416842863629207395937629629553558286356464959420508432177737576159328419602027538716117622129173823861020475207893897879056477909401110627731041015599915656370052794967482358250015550635609016184442506391508541968722796355791070218698709639459268130613546053279914261151381408137871745110882801591839843473188910013273902741452417878762660689015512973443352515494690244700063257469227511741365047892401465442381035106760916246873477657983491142137989776300422936666732147859783848346794688958378909882668810418348105700382582587030624505267871625934973143957482845007035333929473205163331532759716504261933442227715492245115234390367637799448404987712921461112532302607600269513266610853416204834760464066066981041446629870870678468217359680659275907656388440917330458243654041775891585276669443512215237437716466647011274119052596711792802797181089104860960817108786417699072365648858772629531635291997674235174439750933849490148149501066481324181042454421186705222635414461164233027227702864024512769342765789164545016154233107322246563236568303236049788960211696625849422488583811756307817222806845251312889657890613162385090443733858518426049017023391260439137382377216198074227547872149238755676822041140180381654921526296685034701137999802213879229928003252268500290122169072697476978949494859291305025334931081353438566757741830695971172695819937177093576394737787440202549630467704741925085305705276461407139145753060839307459985073851177944610414432855484075012876010200703694949570391501500359399248631688795613417286440990320201057251469290972316807948965050077954355065600515973369173560126785181106122837280672291779359017048587339443403619236940042337381575430512245541696987149178208307578495095019325085956774787818717855065457983337163973592391531817784088040549078984804377934261107681149303994756029546945231295861977960622839549502758928249456687226091714803512565287409451629508518566706368957440082921558292298345492461786657940526831755008343232038740339978628527952087164966287386071706129262447649009061349560516100457987792661387122726461622899619730953973534717587507145688249526386686568773941327105574414228083481405315040078220854207478480339563818382405641161694016102006310160011689214197704094493992480391992307212120167120816386094227426850643670989893997352450530460709193301179168307767087362487792693097781815861041390895045853345424510260698769254853453130404374878911732677589965765510630675080859735204576439069298320798691629712953949716169779031911127536342695792928276229069800181194207677514025253088535746277687208648346499048954261710209997196929297478842923156512542741559147055943633808364994848689436559444396426082272374788718125405919292372931877318875453777655192255593131101645920263061908297156024922535376746843347934369560904913549217169581666080228001369525741286634291574441164823328315321626861364556080218103948608007543156739856435620294921818516173095105432204920334554511348533164307721858700539486397164387363114544597523395712844647916268431289159509097551048931653852184451505268071107777397575702225889064071211336849239047698886917540109889070104557277860959277735545725843725325215682947954763334043204427316424110148177162301281547694292780642776839376421909460229229088574498334744191946551343374823547871314056608407516145374974349714373021600784335501770449821319736528428135069210798797558236036899502350481209337764529468212541049636470817436109883190265388783317253361087580297443358196164079810381067578633612402549963410377322221253669493553313799700550654775398869545197957458913071641483668766879939336274689490882363620964970954167547173658011926670655060579038798844247607655600389246489918978416603513922284868067842347475440768376822574724597288759789747785969374012330871773591363023404935324216440394276785418384487562799577951091672570471277907172526995855859454624503416566584428911607872927013981226014818644205612104929967049790191391432972966306876441605708793695335028617607131340529422446231670863767219756041342068486114752240347615903798972963571147074729533528028063697132914055363135090678066014639941349544771377097290731034016859683669703218911210868774153925994289707141775126711701012962423296099109212821755351169410630851979569564517262075795264008157626352985903560966500061190297280618712902398166899612032291231896172645924737276588403653998122583317098549004518777221871746268522030561593622211650575195595329345508404828173805556018267319569253983216916071339229103572458441476638995788939185651292788572280400938589180352128483186947545389669286256626687002470075498965580885619049357234518950448361955065739807518720496531195496282653260706873902481975848386583429638872910289491641754310192152933602056863033941041241197504712967860496871644267316629490029801398823973234899573843687169040913937344182353753136234821067808188514916532867380226397843060075446421107778444249795047790247684204111404902874583625124783018343805719198938971477863626497847942323074287458650530003119258008440141577552239130080668894211868198653287728590949927727735796448760033483003117784854630847173394631115921718272542287121567012386439004478786222046293068702077360940156228676887980883079670830318238141312723542438449171984328276892676590848325167146133715449026401524228049174239129860914606362688233653900919984761168559745592010866928040445600283311834563152796211460510417543902094627482031766314639081953860705109057978536582494153169574756232040148664064164671783139495564957563826028331347645553003437241396836876935024164769698506027444160535856634113894138081662185036980733413564551830380909461182028233435545118437821690956642703189220314502046754356554677197877797822132459161451975740057522499892922261033987365972665127144094856020194151041073426581260056508271546300924229018691407628429337741616768419903687054747961898130427839751977538611228836935545498873589300510920376792505860733510386966483676632619950564248947255068026600042679472995400225879850658227498839474011884422828332951841602048007183929440228385825185452055928757391682985018951253340644338724093888769319293706278006620620232117076353075252196657714490032784545597175390418559163347103017353829152611535546850431560556730127988701206702112551455233353589624197682137585887610638904338273375402572543181660993268322993970829977873862777816075412069667147680361613746041614675038777128593035243735394481501164229835363163858724982492771824513648716508651719140192228380319329238816328271134833807748120162765363681639352280622806408219153577565751791606245478008357610809545412914803946627406573442591888128692085362224793931453374884380206381959372764359259623966132334417704754324571564471627901825497029688559900243217103742554562593359744530164354790662700937685222537011444689188606764115363796658008338556807074540899637007686022289557120346609596327925074892348181520298526240748955025790798572785998849181402036712474055068692309435772168235878241717549992840772190550280325096721751712619917009385786418395711336452506245862177334852979847018288631945061933331596595920471065621993306018308494052448761147329396502764436638092903585553836845899915820486081949114753098201244835888501690911886048672764755724392264632799347820883996326726831766585015597873546489577256401436373880524836931172909750166713828172674197433641855275251269106600003194438603245453842186427506593776842049501343763654016363504504879090127638090413026512040990500841835331434046757328371465611166055248469630235194749802541438061164495966889326962396943074055220607343717110838857755498373986856183959560508293679323771271670380591754054464897175176353158288004995060656908266181154677557858018317550117186772907463818617060663726848540953036987277869672808451372310173353996161635317461998827810239954203104874298341331167984646162915378104258080462231471126442070519811610632527393338152620544699921796550155277487690881770777348521071173030273549138631727609560468490904615998230134260359053330266402217764879754556917469924732127976022439959987787027050281804258141927859554974420126634670817674459399108330048040954283397229189868725023942508091061519574067001581091498498156496112725829182856722988285306575988786038243146426529900129309865998362916605999026231691888343063651460718408548290402681980489634303951564538150975304036269818372036261956689524822653093510865850998859822564742353613903000215503234683812891611120395480065489305783332646048012670785745338450074684654490789227907286969253721376286092748034591601261260522291343906185535608399963658447852482106181968920438096783332722406417339840298325304169624704687816814240593270318498041726500990101175130673580744423139837650306097303869086548989768909512215312081489637478383151040662617769049301152993656829722662955074635674949933694078099823227842264381039356496580557087339576173704046504892585358421193176067006045125679394105871831550474741887934190511939995503443971677434162735713379300140093536217963589149360054694262177916390374111108880541711092449849578412332180803006863765335277519170928275851304822408837592649188285069600695823862495877106002517081630837568831943618720553841217576836778545891178753353691600736610296923175516749847526323093210861926935580716178986575274947089593333701443442513940356864993695927339282296168421150247532968001569008476988492755127002967938215474603621307976908291427776934581357053777468749048930381408126964325896986543508134550633147704657347867337655719100367587602907216623309736630018860022758272750677679395752390456369113854330226857391609745620830932139983092070682390484987137215020211230740060122152438027346405567914745800645464575124120729815118723398271794321452802501616734100181969901534837315103686020883034077036670433929491399192476854763155003096728418747873267146072915788272043391816750156606744481082826717067813333730298356514027838035414635191953224230942024614219793905661670110215914880674752844246061202370353673995858586855037222218808106451259133682220084229358595932533348484057007985204750813103978433758753381971608265240127513201730591724260264731487991674795744666077488191764625638184551380136078810458280198937126691601386058754369250903090122016260658706505680222140678354819109818261243016474309239776519002091833075376990819009233578136663453283625855279686944686411201856335525797412981731116737087160640099864438586397593736214326831954640833791717034757719391284314007735201508495026523934718443301097929618083937021912458853572103590229575674611184877021285798427485355352904479624106488852068185128459339512913832874215273361997898418520355901052918661155199309053919001243412330944664486791787861173640709334695705250962412740186138374552436283767898934204512382793105569965115649408685880975088640014570400105914438302938408657469893808136275874726660275127016951358193439915327628631436152380066623492747469508480541424725202904560481054559223671508833361953064558307093418416318621846995368541907469262690977255576975393350553779217843378691349510927042902365982332561980106710754189036066940971552175616087311360408794718983387727304367526206159525797504509329498009242057587845722874019811216730927450505744096695295521929087500530424155766093645452178049209420675472560746884295418163725186612740261385413187996919654920277199451465095234621897222797989094165868918714097701085491397758867737840289143459434562944297620405572444244808874090570759622021531285480930614779602744608448336440880871127494505126090632771459895713735192518293203792569409170507738797794651450778241510611101247865339179694591040012385548299753476691538886140503908049502438274932770648614100302999476312224219412078057118497836375950156739001215872045791680720371499116118753021283005531216499141923896032120142009944725804174092935538133463868867165129509732605007569892872659287399918231341134843963980217219036180887593996227717800725079779364735332371103244155557189063813343741375867945473023813807764682804014405207119116019526278922073942647588210166665888316752318684811604070060775097782429844829446112953750001334322814307029644574306567017612306189307534932690884694724723854016553284017069300523046579639041882294238062717555779125052807825571235076363593580771099341919596151190178142305704160190655387170217330069963763367623920884999010536412173796868019692796971645478051470944019214538950389323867778677769334492547288213440549398984882967334346845722037135459017889226995618593495090645167612071773538236316220099833012160418873761594225946253557756387686437159235444524814099178806062100673564133280066151703390344378525330432880521143575487817677816705572565906639684329218008556096211746296120987295343513166759612406764090915121232088399384605307330663145334740645093340418223719906484844344421900132588785034901867077940742159031672831539944009933459284790347419983217057050092384228322389655019819463594696229231908326199970219067447350052562432743277735319696781507818879238236641759875745547332573455540311716363616264526694740310385504348567404257631419281792083696591891471792242170063373480554597806811608529771660500622318053641274225903517429734534856504889249383089420596411389786792711137223280021398800426993461019654326999418823338417127574513546889610253305200127272345739984039772378672437809430655135050215963200675705400324752384407528156494336132950049535842474332410498192969808089575748651696060556055303359125010309073279205406750469127283879326930065464382746455560882530919252467462479360186728729372507691208390691649931263105409858302526402771226554152644171668025423913868904701549480650242523793230531325045978277132039093563514847364980904980905578932516015270281519788900219887376910324395667048576715122088472145594711423645440116575107471327075790038231664608450109992883071575393048079143246400983152643508650570521283313801441408578303658752541720353519269290414300923330269094521722087427070612879157789382710643349789186777104602724509761195081899728311052574882664044141287460506598579164786701981252944660925978957018124072504127495605902790545921664016095420073285963938072910113663567773940415629248775877019306612797160991687875920847719715550693708454406920965799967355843550838849704231655553925293236704223811079322227345246495187857578331844579346937115463798930790397793274236672555929242390594977631133283480374786729560869580717610068868779218263451174638579522943181190421804073916978375382998954971719780193444787622993705846772035599615889932881334365530525834688717864324633225574041496392596927346358407672500065244297384369357385516658549704548930220720659254455816754309570217428878793781188331306613101937635665417265059596415159598158189437631539253903239416377763842013416902290330089240365532986116557504801296587287649667895807143468836739570811035010740591851200401599778630909084255325190408747382277707913287582933040573408601915765618699765623975862916200428584263641758844553582197332002928552249581873879208986686435213664454229524943643209555867816286282877119852357374472037104474774495510188264453983928163077455630413641304938210497806827907826252118789046271067306698281136677364617173682386096718056089607399179891241351488761543647909258772979952453014057675265647458027214173441247765634109755952645158864122420673769335763505481872775693191574212827414276288061442270039298648873492675123948477961570928828409375695037925686766711277673821949819168706443198643403150959955470496134526260792697062193907206249286907249633064116124139853551552051387509677247354795124017363998109902242030664790224522491421151314583181943711656538926944012203346249091712706457101446907616078811846942653454555168615136124678001986469664271936926938537871870127674058877310952839462605910190153475794067479598130429908450033238043057963278901243609792519896449558173266640943201836274577515385462467461609704358992434644943079222714115242435773263255009063338687456984403876730151299404738023427058319330374766039233172081155641116761587516714454466248379359781140601374054026472673274535038924037721837817507493776696139609664892529856553791073986238436181131954341187001749033636484849184859495570156209352430161262850930498824183262012687743626987589622556220340660669691550026486855994398935508301750638306937206128777189170730455860465049156606883549861802617809237750902149649026585980998100523560610617339682870810587952904379292939296779279600846103133097283136956722743006473267251077512958876467616072428473955326771063776559697603008672622583693374765692980871641420645262999499314491786156644661792028911206558418800089977565379488136268171064531402329832672186777735595460196263147178089679563816588588051128218575320659912295957577775689412216986138139338345534080667681999779708224573620618112738093076565161569800203633874407211940084759422699891266474852984171570283606497458192651492000096380707172726190680361242711514616959677774517750624191315573350518518955554091579213903161034951304376253984127579839530692468763127173389551317725615641151488743804974481128669142695217026255101608316184728591492783363296305335599197379075000118295132065670533801891678458881563706498460070730104341467071185693334205205807637407206656090958252233160754369369213513616494881148823760788833706284654393906836292161808900940287383499678600244934703194540273141393777353608747542191464696823799346884666837460585249841015538034833785559746085797956222503169915390274039066215499148962960595331786269133611079837142714665044289730079752054876444361019767991308586670639956810418138906686287459732310935778312643454218992023937154876137381696350952611930911211833744293035262701883981161909228074690143841403050956364339226530709460196243571143446447136604761221331910194684774123798975438025751634948238593591865389234311488451996165386705424486725834794630545757734081494450264520396814038694182945599846842813973417945374657212365290717140765486055750639126377268803472167200428961230955847776592816552146549912079762772908166973872302453117970642603990186843524980320411013159337948537253531165177080004659740938508494463100797087969107950164216398234187890442745614441797470846010695945186474643135586624404265393881342805763571512482997784653114555501595592059231306538238729161759725438172879416406166991264579460500694460836818873887850989377336545412691110626511363556062570291732312020889469965035056534166631992083664302470674586295677175467410332573769915266248468055150245436589229949788805178526436630081315049777703064660446932906623016889661618854294937339130622779904036107621726606147047690390766445100261958331178124828826546780917128078860994879982481285933828296123126686368153171804632408826335132051153890493200279835876312902219802678965766012623450647361352339145071995953052035702767324838926204061609891245582325100244146522167028345641583042242743273053929477849725535893380624315494118866846267996455775223650445215925954588430097011314062237198621010014343569726592317151100771514250273558400949986785018298528667839962483928405737173870763709416069959937835533770754267162307606422813599614976374075510133068297161351477337420460447621804322861771208418562563987178791780513859069608801356460990724624880001533571698288135743930894139069961260824634114673522943585473539554806188084698161737936132183287285029135723718493193153229498299049016455130538512967490094196711148646616319320022640010874890848405903144740812365968442236424172714135892399422218167196071195970978454541911484079899462422006546225650691347832030061914158563294852524376491593613610805495344261889078495677425885109779642410863737091694468031960322669438852504222649545150329467133367417463317807754921965953781153040146920537103761478058525252981715785452824757683983545225979802541916890604389853142376093613456887256483698273676794595744172942580971678219342768461904107505886643149053380483787520147821786309624839581737341124727443702471797709066175231361187704457892301744750104906970626209942079377019642666006849557204204003177494813293183917582258680222559173378529129464925637807941165210120825319673438594285802764146802760418031471680849073429297550321056591184098358161598555105025655164314967417076820712608324504971079923719736077362959546797714511894142646803370411751558572066791692156787287685984291432990316178304327626245974111212444838068957954107750352902273397619184640700603441449243824776430489286651609257254624228837738741090713065695173048758533564963865506228005837159673759645917823552310269956408697468614795996615596758871809934680137712938592404921513237531204945861060582248382881901577544896422861821223199272617856212917038301279748577116978116699163817027121041288631617548376991181489792698606965951259825601298755060433361608265177682602349397260631803557602537083085520875453838034814898156361917128808236208981362744471799799348560810355709878612332407605791887462070086851191166889256683975091923092310452477658729926058985804591834934061777402717165648829903971570969796014651771002264317894596762751563515614081126900091016782716121507328796845549919808257444104413442590449256033255881973090611114681722386961806395099930742906059404073596593694611070975482878584104955793256917145965873644977044041651863763732897305021864458717648681952685430062519263045028825406890290115141829439166307987574937374302688928388619759954955702232002768079974304120602252179772370381730670177866137009385171867203363081056402508563812217765841341431626725473387477949449152063044392664011907161998384868700139359588740736556816589376328097637838953175307179313626092218040661155721698857366166952017042053574438903004596346018465761961288343345118761196259212544795703725126827285260186675731531732402710676087781296022389010788442147685308674447699679226111073112894028729807238642989175291756207852731771560754538374195069427682457258220361961324383651667057984139135808697165704926248081658929079457871618352310748362214095188264602466092022772351605436102798436914572018425250028837141313088941309281098384985697939828725965160497808430907578271178617324894276921213415420918596859232770921638075346898903037079325490985466642422469074933778431133656869627457121831249135810436062341680063835332092006691988365523303115888908634516326049749744749691039698126596130192475653653407058498972358930053426514758041473826937276013334364672838234945246715760316245459973378831877855349061252483672831593239541449131718932700926921626768903870289643297851531612122273032370784748362715635290044593630068442800902310204356260358062588107643967610596915631651253133574102928182712415083205957612024068964064549161215528613684870687534309870713870193783300702217888219364828424076019461969087289558816505672469884045533027481119259401782971151707072231468112228600729502240314164251096182933510371591422710834886609097033154307419899175322149335438431819005707798135519872076481379483845829864422494012695042834126903940506187988894279127538723105283480581235874857700987665985400280252218179166439779939006387320878486866575696309704084795623132253005167602190513905643104547973408557956189364562699893150826399059018216461547251461848312972480794256399333849286481079784325407847971666626967551959492523651426304090045833244878659440585931518163806145409206785932680674996820161662527590319963469544542322942969188611122779121553856473850887158277542592209396016364400235975700160083185770355730265140126302127968732329875207110517584006823255180050502485640432661178367383606507975739142229357183161666590124083878320891574774323334290265265082142034628810546242117348369342650315836474870119703651161720315413906916567235206397350426670617844364204805626958508910667703800851134989994776583274271291681491914030936584348183829987772530817929458202886589209428574349632314218900308698807135018268785281882691646601034007384159597428625853459887399354075798925251248640474785602411178652814836932233847349009095971261814593183763886491609717776421648233958547171542181522234093675466845671868578142104545494642708157814927159190536605839845269510549497584963385383534767417315762509989047900114477719005663657256896013572889515466012350008160639897607274028145680795092796160589694360761778137272823436232256131472558576366511683709024852769207705210217378439013609320333825810301161361225351797665107174575411211288345350145105355936365079023111561011372443103294410632811530195921686356333906365765536776149441581498069741197505291248373576015297054363066224703401319973368371065137550535970409842326574769816801006668117214527884526617317080120499853985394604154734377707859746776587166395678671338367851126349831056613893828096104046461518238079444144537804093168233063436340842305902061562111099571403647314975930446293835298109016824685391150014015881933836319608174183565718769661191138206447831946169547209060968264591570771198302877036190416609588236705377654784833656919675872759239936322808848180102543725995839214062158572112074524154895999088965276680456771310234961871430633892847145791172064332162667737830297517378157046696510530134609807802393937765307651448100112945933853296833519086457730111846040035111774785805095647564794364108467298364758999424329231824578467407874397836577657371888651145623519784323652505716877644521240201120360675793414728436829805511725876517124708222287309759374951595163819810493304654868493164116979083156317749266847416994769178839158947929535320640733165623989629768442792943517426461371785524678893289659674877046761531235282409893596787018430291387890663661777257396136151937133946566271032138296361408849243434996971871278408946945132185505133852336723760483657550281286114037328125414434459134787334527605649419901814006084715269932980898804625631879383425877677934914124107727497415105034952864527070415577167113789003628508637607394578469870721923998900785631302904143282766558051804706906545337130658640361258021606782596702110685468868690432427417463220428696721849548163869549731987799916598561885011926792808013893223676000014756406800888724702271543189362445978842567635994549959527288049039267411217334183593334853765781154923647447509782790734305449459121684081157807520040969539475532263551111666254647893522338161598591122276426627225097935331098439331784439757706434875341398193949492397355876914741489474675456204641882100697898316137421362679410425299212242176015927336050660795772884701940724798087372510622444091380734885700343277828475669704576150032391017234708037341990635106394372355396213161268618246892637067037829223130082290449161754437183727662082088347886566432672538870532493103402474334852667343388085033305455131006377674403482175277295622140423312267582167938107946166894125201917106434643836647837609681010939369398557368723874441841900765776527257653527202483057636391187553750205716021386878700671857139620211799778364974564544139824597237501019219295936592259513519028112961463768774822441465610532122604363342302699462919574904922270145128857337724937857835886547709495839467725993374964594923807903167999198419721555988806791610440711677884305956100947275891287793278580384284661718920594891453742235676553208865000469342910403525112968498634012075648711260989005006108003439895402487601491106321491887882918540122849092729148082595544554621502338092950172364823767992681175130296290295228373305338148158093560304481698347388234049759774357286054123363850297466577829247725806597040063908091200011228077177716651997499394116690843631185512235256903008454233167462011823930043591498289054314960067078566580792092544386626653419825879829202543549368165176233530252142097239257103130982581577585502630397227414473270075582535423456289093987849447737165918171438689347219447662693264178199143468970012209428817080851990753475199804928086485539461491441062659536324961623592702830027075584542190102399844222033095103255797224012668246289554054662722008769293088540219987099570941407038857299191322569168463500463590128167504209307923674218609351856412946909000764253308175933886426335726314222751279631656747869677822330568703992183873947710183743662940779913089961086373210019131148257722544960713857511743081274673021806906427227458984947448679960896060038555147878576532566639810369877415894508786624128721232591535592808230561392208753801584678349342534548972939053162071343756888954525572541386728642272684758257064624809641527848143640247781839097689709177930007498597752104057530432215362141630987822178903219814491462229781074636697577775508064406389637449856502697402400780480389670330973931791619776500905251594958646837729640475519118780120775477658047593683051112434666081948105172402836640476157498062820096114277998582690108736674178889914061918272057630515198503963966506644067571946648617117480548647527500595825889562642907394134085090030441547834012782965979710765663964692785061006326597486158432718822323041869410821403203997151276432897022660968904357459070900147912766649823411753962695451182615610692406346034240766492829921446601163405470810753020125242497635125007429344023397914956323002787291550090160115868377338866929838056953084946390972712640431592274294396801962377955931496552793010643770874499339415418061522131178452413920533066880051151709625414735259406755983195962273379162240559261250271501396462388783156141036122828386782402475826444352769034216972780537221732601588656179267450307207873714935193922267911794119840686782861390337865318679478186754913571444085203882900788025992896660438952579720209998576308491377326731600227281095184134801378374580451411399833912772093838604726725288107445357655407711716561743440263971266290205031973122628278068145067940288839513614616304949539067186068939103453954470604401577661196187134307633357555038797107212663518074518181028324323336696429305177830094569744384168567253970430091948251326358981010782125553501243237920228011507213758129544177219222221160279476385393267532941684607989081213012431532525246793432874245010634187442052282004896071498768716113073209763686483557729503262185027097373837216406573556779811725774470219864399653220483923978212440383009346115409627363738893767271535732691012745916261063969707205336031938608539338456671923114187245534259009877776212091657878465738726455984923974985631108614265258445363890449569169266467166065772574373714173415064219746460438876338703426082121180658672318839120717583829803135343324760981087798230843926230515196786546110628894379639255241531685886095635032316851725257883605624463701095854668570117966227868433976661206358679647240329209993781774400649118220411164135812341394055901065611485135773964934135853535614268143516044437627852428947787532765010907915499499839932218635057847179571616765725169885759694244939465185200235161651425270840807649297089339617656402138082480999997166490709988640347331984819569910939260179008754075856131268182704344601348403451070819127795241161319344079662394371676635876269806605868151143793369572665176186212469990447276264647507087869644224031964808585105718501043021933032513616553948040878067002405858336965793264771340445047217176706426516458874303560549282012994388308650757030618730223127147985440293562832295481505001013359678202367615834375695738421038937459994308801933603460622275086053810823481176503982243819152978250185039634380957757514345171453459184845850906706223128277953764740044632170763218661215964533440898943232405816454513406162606501777363425466333724527821169449318118313372815857435736850046893488179285526541081926405872334480279172216599132624171902008435641992660691510145990336408226966081309173061710066811952924425458753002467406705885252695169645919886871811083558726257424056345623499193434070422808102090039717567969624029970685958243329355907957320421291565981025115233638049789318309857560378838428163258615882329868647289787360709801392027394184854540092963454167432223955236144719730639507174590939377366704425406675968248842742167525902789505080943676846353671234405506562479648536849665764901247141101000517012718741288088194579554619908391566699736360874434613188576421989655617528195028221055454278051183766908744455943910031722166151514364769185670190249796242013687517255885864403987222208517488244590471720152674082666268351662109358918950148540036255332400463052359262908048903987795143690512470172810532379869751512578368339234446777236456711129315449666121789720330082853594197606804216815358322403199483812323914478661830214560951667842914400613947843756374344843780334606711595902351577202504015054648247676485322734691279978943084535069671441668614963236655013606689064163632247218764107287068018325221753641359686672950367894441303568232705948962633742015628534699697723674166445195130925225773150507028426122164916393378144764554194199555233427043259747484545317803231294576259932360518291669137606451326195764217910734421671225683407203280487209035671947376177714238925165175606847249417675415125623026015065562754079069067889747592797259648513485371134261656693847384442046467607562684238632755693182303448118672360507985604444800386724800719654973694810054323391340691360590834379755914125562913716053792358839296265797372707595114626046566237280445438829165271455697190821009497009805650382475573334039683158655835990958234506940068372030796449763299992988547980988823716791379827864153777457166380196403361443207002630248447004447139378408338206929006738018190672362628393716220128074201141349548568642218439898863185026213711437926172297727139421646061387177012343427869588260604189176267530273187213408895740034115501982172937751865328131092280463274319868056496366546007082095443118487536288965372465217903250211768139401251735212390902885275805355978200187801219201257108201212046817156206195831547930248172640218044867566097025344394094284800204036382751289303029774195617068032662905423267751028579453995573509736620804302624503010401969471453774193188870930770590803294588375544261223494049767591513879082162391919017263160580213667937934245510562621424206744975395498055785844926023334644425151497228530169372152798362462307450925066740142107370671654743756913655437838983675742996129533106945598536815279625349025382422340513455691042010832472413641500777475195547406186853213953707690740416611264883122889503310517182024388177125391717752012624878082354826599312900450066637957958670112016828606011140381662674886401765142408503530340430954061496005619269800405412181888466047211547711433225237278915150547593169931599332506015122593700445871109802638626923168748025871982018621300533145200657705035806462295221478456469135250599937552310391155178330398428851580544748185199974874971024575224649366754631858234376001949929339494812217539604613352055131095267919641879966047319402654811613403698773464331503528521995606843437227997630938880573140024160665128491543922142013793157870260580878729644172883663791064787816055399385738950281069875905530168531750630738694032668499484274835936615868580330747634434872812373709643306098792380318880605649221256896473192714623121313659568665682547353373925789966486226155920790496032495196481001711419223098263363805531910900904658507271136930103482735539430167316278800634723988338074925447516663332309589348313370368005889692424555181158332479253480602276502047604784815456129253437839134566292329148013731237296184864013803956391327277763542807763023099225830692502830634205501812116650832240985134100629731278231790872600760426783215422871535966259483604284973311599027863107142616003891321096965623976718496038239853542866287597577532362282718233011005689248785673627106862600571933080987036936340487698010696771734501093075117929124369382275003721719938061477993423092397692965926350529766197974039188124292608951633072057873458657989585764009442170685176306481287276566646207367542243726851105799881873404986450686470725044257272483600215075613144083993403237453821791516829469387230739257728074709050205605530575028055090662782958530313101898209923634874481292618460379990427560087760875899235268347727440706328221420298007841143387321371085748635616214515977831926301063754195655225903142092531500191193061232153532368213937692022565982284799464767755208673652221737072598667486950236182911817107527570615299069897671591062869721057596133719841404307118111250518113011206962507094644314607261352133353472180023107465869670881496085383280041310173732870816278533979971239188172715393198841239289664315166848689177012983649467583704263659436412498138156496365347101179727555923315710028352897202341903453188874548038863163192661522846742835140038158666037066874277741755645509517781543830643774118146689345222804462822095959196343834267548381602049350011190826234928184240698159417791192022690482372988727254072121627333960970130133801348108499100338566019502638379934428137790980437742441601977541891051119992295648251431164612851704140556931814691487355528919737019999260063376902529923774034028775464640391062198013667427991063601845895331717749718804368081958553665197482176372141722147068542344081816872965968388351713174618208111487577955903269292844205305384491901506892969960480611724150143095637100328891402370095227493641137799411540897683283958466063392090344145679499599556194947969236834228919663129688087827834292673508294651371513943651907091139744655940260882830733972024693168743376779197779837831479824264709974113906293929023476327263735841886356669626894280563445704113452108362509946670468953044359679043562175019639000061863533272738186583868780455579865557721134088349695163181826903128532107961545246319348031348997778581450870379433710726928012436920487576052622261691486994334534723461301317098353881222000401427504880436396543792990157262817691351580203084444461614154580337114407303247329238624529866587952784248865864646463186819659573915361207303811202525656871277872450343921028974181232270910264671226730066376507668634064973403604769356500495971289069660733187182359425234011543375797476033383202024090914545197537289662813709897394247499099153945328062398413079313624035048321964561067694083694468026753606667696271584455221168908450347413030123354316370282109022385469559727537349518499172729730071104819165259737633396572081358450128236050669580838388314812881955653535726699771307356172387575636656093105694970376716624504448719327414400616662683216806834564551011845471784154090976769837305150492660520397501052688493426912896561180012377865610904387193707617056091020496126710506432893270974541887835814193141626465450623155023106121117319858325861281504715002014900553485263143570901826864791667569070514900023678926068278400476867177100772404270134672533311874575278275651435948148015975795756137585448926991253116093219560459359541119086209933174407574470027943752135735704537008951488008565973732343059106482022299750132321179798622863805359940975847417550987156692577355225044980934202034247700399062342469131874730507900144987342433265829674169837260938585570576052699358686577126918538112176806718901843387959197864915835855938309462095918024754179023760565734454514043684170460544276989557179297735143853039953415946482361478400323970100635777573964929356122597692068647368571583492001533187224741348257338396911838496659654996112497389307756167202815123906789895005374888462987355816354934914746422286819557095876172897990267985531990464818370122031631009947738208660671857963564280856793139039972549476212070710906841026328010859694265987891008912206949770280502757532790473889704342334152062947708395544282328494850452579931077437251129785966019115473415916821531993546767945680239803143709158882569370903510958760373929061481095340315868049092615488161265566360211923979431019179819376554066211993864075288404828529815654752474436571787246361495222043671990587093913353118305508502550225438257609766468479301197915547375626907574714227195280219089359330744176838378558550939771973044161682660574247213776438095886612336047918893584681317440076189228312385678573302481137282716509220107671175548652580325491170130341647617378595199095693042413446855159988257381571734770381261643490908960318789509918611593753984555644458428834599222003473056942246634602595301961934768207280376392400441118732243112838563116083342203119964506080532662697074966542727528661149612565557991458116682473190924157930721412840722040666827141756770560604338588304265511322442766079695852721016717734829387407586194078196514628232708829074878286278366072558076546923969428538276917428084962726062566975787757344351188989180646265328077172695219025455210223880280766257173110387639880711391193409054128115691121084754084346417648533175986674730984165610772570415927243109227437921538670203429120448837947209135284859736696906066600225051938593651871163418659968551978778160435450798190093247176049640550015468772347902967244541894673032077003555052052642113134579540782153305302043867810958522887852767953363622946432252828445815849134242721870322709180527613148529151352676187105509859149174335098130019577731295228814034951344474630591129850113784491090806876143696582723364816861896723407497346326386129614798228150683324860498954259077758617877834190550910619452840913615663069255606665052863851409548313920706533945704136938076034990957949123007188426354743142589995151864021649382338776722306274659213390974153378541511539275129147957190079267335988435677233626314238140354718384324843550125356235421863387656083455070380881349056985576575373528677202313411270403876277176828365105391967189330843797124482937387990361248657792950238948383485548189122231616687279614503498065643822108093145941529499041547540959876270967515083844659757517096942711646927395236960124305875170188778604061181262756192987086653762726916755952937583884011464112175226899777809288013094709016462740395247964785108203827055956480481646232575299982435573760867885001049305540747745512118483580745059898980037414134233287135156919291775790272911869333747035718982731724417871577717932719330809629056455113239060623804154715953823403057646337912732395891022350091840057592036027575156191022284839199102823430391797837254398073623799742540109910423198810052632731160305617638267079098656153189526814774204680363960194387032482990246672118357333062089610925027241895333731369420238798257597814120696201594567934356654625849159420293940860373120779077879913741673541292320908715727545302111307726230094925741604947939222175329382372978995731120795838669712129821395812713845783844584568319047797132392969917442966881538122674921894214345545740615583961477031609922580912279419404205902847477490941040327331041927207749467808178385584553344566927660534600340765707920006253160690349482620858464984997299155783099732032627935512197634743222575191333919452135167067743910039082223881526303385400669210971825240405194629210387418043331389578526638559219399151315313125517790093130095245394486715843190531730303528701597788211392464942866186389310396206216592071537530894717090263723968892252382941921304472942385209389227682055205517084391634081923408497997657439920987235300444520910019646880219116187679945379099874291274892810326284971753908290946951308917521779322879353075108059756164753564524247058393805108108254421924440146498616570327100447668626617745888466545979539208092901873195204111684536702444368764560170248843151355271302638084525185757840715876133766829592455867118875428378652241116313676447982613588974162706527800765462966353612592638790357865237414061644045900114859516776400895300554560034150483824422141311185744890939223036595633078004314661256574374769072766588253204640414988580071130608949679886454085908083175798382201980255798133231750403810281113035920647484730501218389058548207827960286721377954997166157713226812708995110888728910685835744856359889784077240897520722542301019730044671453199920892317700188967245861373176617035262990260127534754996733599047717574774769646654559046891449801045074923061676357438911256292428163084590303766948194210921157497168010868301088060651951624964980060278098561498181509310854843410127428450463054085315883800699325304157682151085837935178781326621702698760945997115511075212983490697150215438289857605622934830420892288027759515987168588440118751936558686788551041048792673743185107474697976248662132566109452572519076488891472847353428594097779568274510899470613505647491484450848795156177753654941212731859155245692814762389452918636269962704148860318264978618624214817140786406623278215014495273946323478274712098068013580814742842996178591447611450387015479515409234311508231677798795979683942365920215993921587608423548793609078253275744114408236704175757278683192222926510904758961792565549480950745670951731719070501836628285034845102719596871226466649287770211145702692926633542343084607222300642131840940571315725039242360161589814727715924359276430065375901247328938062182026375051781200615152499046571943414338212303027898125042686785053313840077055676532207947395258329098671746981756459090889023223030319389904381880817627195030095553645317004892055205480780113140734046913469848113882802948746773915359363757287891927260556550993916954238383989006044877333242650696674826975352687995440066017929333300086920613538125376930025122418887897421705154094272679815576857474361051886982914809405598279719627677141371673390952505091691769373660780937746238279286556073886257671923675954499770728382920156509462902513925293624819634983217451905147433286027651936779181199416983914410265723202131740598823639479509957528423238807738492210096901203660000832337404549261110242838531095128487200547051007695028860493824171318330080697651890200091048870273848794430582032759688172038516643088021963161698022671314439187049375280994628490454570876642086586275748099895128917485050307141038775720690568762256837169520837838428923389046681590827405719851016061690332561970869365580253512436687916320559565007017598404645058233108237477936796992873759351820687850728730593265182603358754163949283443892099630773304729515976309526607112901116633436661115375878826913643747578484874120608944896310931032363132908331000598929266599881713870951551977301214677805194491292392667713862008323858503931542983106728970474469781973156605842904747820884749889165479538978071734607632879919421531590411679779932707697789619164301458222298127932479963298740161799169961568077374042293652220988094259878996122262781194271084400526346589638474788094135655717206394146864627425178807639809516218959634761201188546113188498543066256492137241178072022456170766166321845232567364080263403483667674310526499600638724398678269299052071809524056755779432398230278348501520108196231948660925188075622265741961889026336722549860657021169652824406684044115502222865504641034503395755846917665891450572811776971358494627571252127165143630944467094623390594649045736940252594943509212643531620579542293149269986668209429539299649619623312221498934852311804281518439153750613031232050647534176239896814039937149640875371332647854910685209723749666656746716151803277650542239500426557673021978627197681178661111679278686407532750856687802485730362684778918118883072585428825015921643935490357641993660127528866003952389686498707610336943181452072033096916794834172870523419179700224435162767792586792213866596300532515112616397741777067175837158749604718342508068957258187834625967740345436246635249895237489715644647881319394071940591240193835761689988431169074179174121025149534661564461160764766597309756549323615734719217611837359065160544299845449154783406310936993079307244939303107674931802313367981517474878115178767991314705320268433425016709523701689680623658244795187187951391976840417080815088472109957478539151987165553619266048047316886004271723192225079613556836136114400107449285332188705274139440432934493574215224034492090190332821226841413482582648726679554926700030138122676564102567119592297250509306746900828241092954802801506299783185798871083741928229066433383708675172477554653124680881494867590298088988955939365760037852005161925205357815329747383244651981671776538893702286435679358981352721051043995994100748121308685811259440712377564916335633218376117884641422893740590018856391457993483917735364845859292800982238076575226487862064712727867390283966923655041199164874121630091990562313078643204572595614814989288935464374883942619554595358691131496083685815995628767865281242432734632772488036216949652564259378163309827933282800209058118912960754295657667023922205716168239593137772759363245609552041491576201457358623508682172085485253834035115391475127632901070721842798520076344557391531596083030938130573971308683007193380408584408690987896895250168228674817678695039548661711508757092318641701012954823490292188477354449356026707508138147404828381176579582064573548060152286119555910415691818422136661750731232905840969535865349095434511367488502404111988899783574382817752274885030501954266062927672302345239650013800186792241021300909677018678624141540386226597214159297144215165094289138138083913356865863514835759932601298321170955521020195613462546483237816927257295561534305282218780304881610354669324548945892793558703165784315008453514739042230034061108245839187828572259922348271916631511906687528913163571275067050957770291045064495261984112712442183163202457438650990559143090525841354209435841323025907882298369077973387023836625902657473733140247135096551356141554911855033767539201273230078870812598864763755161992429148891501378894053219710386393724163593587342114745609039242983721148880103133285562100389434627019562300787594227245660649195018734537944177408611959402977597937565812464543963018781810203548326814866582147145733557428828638194712159855367604580706428740890804908276409578351062361704492868828262639421425509163353067401449353668504192858221744190535489485039427289260503482074453816710779545626410515130200176996667902689976039225069910640482438025290796706269989171727633225971826105362312405529624540987426525258606662039149768888113069624901308180455994296256860015619643051723326392548810133466251041728019663350620482945355703512671499028526883311949413183387858044259268924732538020432820253095984532999712682213763655284334385892970560801240983751068269418765976335347087858336475623080129743041279660996285142603203743536660272730477349836108464188836923942110222713997424733498045296631861785712718883286558294227808611624254402961177106720475231292441162468382812774103764207746330254065050359837208095788902114280426171536132876335638979849516441798990249834953170763775915167623213179791367847442240052335889873169467340794186986178137853853382483038803740404150542933493614291441366306213004888243395441263377179619232974821502959208078968307542473543876149247163698003558393454833334997903329832766484432095253528940433386560494757897145423503696416478267567056367895519159860549232685256082624171431087265114126672123053028876406219650602881752674138460278745733418987330058286498758687202213870061704196214015886033110903463378321751391295793860363655504154744088600053302825304540468295182745327158587096314179629954007270647784477865103182325610104063697638932105232921861695423671420950491404003556478616805916352123124057309609815500375140485611069821399675787128287014377928453975299787533601845309937267000480599646197998567688439415451215852808183783574181440693642091970265107198315405498903268977028144066557802913158144217523861681220138527280110863633593389279666684400462912471559295631984502827053696780481796084237637520862458239854452013453023079538510064520320437743488036394450513848628479582161624974777147466952079602827498252716265159019600717553736988327225021459672087370425950543828565739844326310813393353026099285180226416901601955919989633540845751880326951030966775754280328092894311820149843775198550033568349707886494371756356829912338932756058086543704053638339277260510047150170984836327567789774774140116785238031405935970685457570865038465545712037155652715496752582199757139140135625127102064805705962228880543112362898441758426850004612189527736843704708260796436741039407475537007987716926227687744420096106242437638548489236220621980304056511071498549597505979774149903781444755986605816391739900009874872131896498657936458219231936671226414288693587447004100105000187738016188899013986819889223704106915538423576736518900060155983925725845061438672837168235827935893515363304289531282036446902923436880265245559851573636522455922059523650830664368421116295897971989224534210792821975763212776710227444053279199622463945545091466421318079987682251133226611214913502537616086863906070171906007567423978755776733499784205179567930222323178413987230052213972129100952647217303040452381042062383427806916850505637742482288779387674280063509158370907148772998011864270584420690527600660008676122963029664610303054390549760323690213724491298301968516690772990840624927442472624264094901182275268801720769969950229850402146518719116168289648233056899671693707818198414270987668109705674312408034495693139044511499238797771057057802465125723685370371271294555899019591390286702907672461203776975155593901943794396784071621431213755528636713418154660001655997682326986271468946173577077128070443318159697899341877205617947719969042006507712243816176155645661742904721801904411098168449617539028287501162400716800556458722830379012347384933527408446564951017148094405492947176350264281228064160470702809898822373757299358047869287807985404471745321058799008881718130480197997948985837224465950138269673320422691322371019264373196661664015454844355333783077711081221056864130292330828553918527738265839277001789207042984092234161111259517582604391667690793176839252992303938571468410823442471820984922279562771942652123979702763814426415503366845162701254057870652853679924836944851280336657644660154692057857235474760615612753156211671831839264573964121696590310905673297936803977253672652357310669027679241278421785573047554518575219645736036865825737792169069134289692161216338445657650423789697417975428047531508016218286987883782495165219751673412871889638333100115296015863332875167100469705869993947203783937528521388058827797937589888284690367078191580740043013845025889134895532665150046400572948556684001604087686345252573953132918880657057340641657384430390748682759682879730462756334386611869278977988542006807947547534295713935001246705140934811266113975242839156050945639804603496315862620943729593514475327062301046146167113213492864856165207789761806404986341769989858302380353993314920005960602902956694669529965334524598913647900072194981990449302453385914900497902979057995449311290375932068458960759327021176348316351802306951071667727121867670183781140084355956383149402594999102649661033400981686530156432726316446421952680597080212514712340132203876554155631053587269155848543244755362741167549416749508676068984998260141850153881322498520644503522417062686943982970405108978408503197698770068323890276055980182945746279370678265312393626331629463176844717235313710601680673479540389756548470813657871583925521013582214038645512039101929307344731133250867260962635878009114322502946858805410532060335511658082949361564442895543167644072190328804061636632092950207266330517909421645205680344139698046425926218455387742076455144438256292466060620764881125068231506730382013897108144770820273356914760999060607363234865754698429487432628737131345100722005836087246971749597386123459785758569789168867405210932061479093591866739746089360572481150716244756180828275280850856641652451905851944887800821245357818128731957396782695951962444868692845976921453388226733481307863021884736744636218593845434555658342408651383534910752902756191081850061696277306503198377425270788877097884244599443273125649121378929289908325689742515791263348320633143919946077402934379291142439287677087595281210362247965418183292219307547155483185504992051618033011824128367680403209673088310844864276705124971756075360499169093775045709863741884967777795133242583328121596258597337583654428732094498789084975239737458592862637369912179471027115876118494278361867782994877964156484824678539015856690344675712587785789269560207250045939872437775319868837832011610467177677952487459284401846800310803639673426120161760321359004651098442730001178115104076201994955522094096578430588875878095030078058492280926079026787170019751344968979734106033386407340732589096220871217526418506383904005847738855911101269579539850292079152218642351265008913951647238660495144736895087480576702656736398742961399966325077386814061989078749373856257027005101357118685898413031483347546913279648121853618706950755106503998210751161355900509510623213947352489510948885320337946899904106422248121052524887273110711385039415311126272441799310799631234492191382631443709025569543768358054602984592968833799837235997219020200262144006762239469372057975674147066142033328150554602271077585957523772738642193550407430265770991606707645825268784968273427550185322069577958073710693736162647656428023365823704517951896760853826840111440959127586972902008222972908156655019148891970013658280089033731686415004658805764228149212089187139946477630593449450748545131738997287183806295850068659796466027502520286053680652580909315055462316927896510445894971663488183067842364524442681454710644213459593747193273662159577387046258533757997267685414049321548939811942652957560339222815847694140927915107962641292785767000250232275656273736563126029366974840138876217930182862034423013469887890433324785788592817354260654839968125023912013162207576201858399914736776952083701788330065247243739938561116284942320965674221470505010477187058965993707338291480744149623631442747249037846895309027782960497068789289504236516474464912777576277292681206189048791230625649630442475859165253608364657382093574332621414054287566115032049349403490710367054913892938335780477704369993558992334186328782158137460000725143944809350760688544206938529820383015875790843458752466384036973377283935967451933627677413057354395167789824023123994838559774974106270077250894343846438441732435936370696102208828215975261047764554265593059290821732068599099574891945701181669128210753067431754884528753636260873731460001394736039921126984972684193651106326546337303791467084591222622208719466294156226184419412261153231604712506313678777857723162188417308292525210970345781624243487568068793273919891770668791554848981305910941211880087773234045528785814027289506245953948393749988812806101055997150330340516648412959880018977964313556687728213560020652177137494234246233785566086123288836636322241974852097779182557664147893854490325380225054829779364453022746936236240343153396129427937262471097800525904886330212507614694598601801805342308118229310262708030031106715254042973021635768367039893194396079207338179341039071890384741066017004427982997261140785944085515518812898032929003612585555260695251282623893750551978378271673875498793992175107161375274769796299644893098581735608290076168975744087517669320293506419847792968594190297977342125381132457296384158351538142876976019399828276529604773767446890314522673940439583520636054110684500371099088034109329302402632389022879644344555752103266463979395195751115674635044949384097666737664143205612707189110557633482929986293498833276428676027478506148574519806065904700041337120641007949710384393157529818960578328622344065181484333342008479642953745763177922244910283821482634100199703013443948283258294615445889009703811404675034057996021574585301503486320340791779682298597498058479093906544601459463674617120269679842268609585458971470597900580264713791388838307950399613499534620038928418428852234688246526452252287787867950257293624040980352282967999248404938985114752610402311057287584883303043008421892567273058369271382054652413010359230873751475778988334847047479117485001912387751407922996119771750412556715084688871573656787902159147257577713200337515746603380321127771962784011724961035047337197871699521530995863374825967870695797201113317369841412721200793950581120358843606976205520089013672423763611905221900776113803515471901776803685611510228073376996926027703604017597886062110321553584140877242416135191049124690453432396384857557453051599650067384065329599051325279711355443386401807670682990089864637448347761162184470091167702645647014637793055529416272891613079873161434965882257495136087492707298924296409637850596841676751567064515066063171015502136934453689686760424157543586542446209194702260000199644869522365385892934813341956636350825083290688506077580441420135112685813722503762010315133703704457587847181747714020486914536960309990972235260534633794262285098733717612327746072865246441618898081860995832742980287362623641467457429075986416916718795570090141429655843089795763277796361100945524409952713906559276039048414383527685852523450859059941128885024087376057874099876040787957194710672054009618247569078370995302999650023287722314844524938793889534832070487087619654176480653295388290060900952128918414028506134698773621613491748870498115201843695391494941225754583288842370436938494227369456418072251058130693965658024951093244343064029457598028144608165765705811696278550355353681588125111919761741004713120776902082598726937901951352830451719857998619421304329592314527498251285378796932877128293356733392382888739937652417584797961582026821477266870587593726729672349031063222967735810964675207518132002712853090612071945931159925317438721289212726276164969316165263603787495062870024992348038847595416870117483678020039023243483184974589216523466172872140257261393593363685486449298919062032518492510110893002199699586708293645127031140941517257936616939238658076823364047450925879379607549177027605024629387526187708017207007638900915800350042209990987778025711679919544600956238757014249131584591305989035511597864996830534542045070750829941923569796123584257933611941583292029625653344545616625397190190216298547806897376443397805112407641269832841467598297980668750309485786774016565748355000261922991500620116552606252601173670311055681864326535715775984200718923815741789232054373779852435635359296369510385787215885676071603996265031097965037267241073610282666722217674119458807417690506377697046550923636581740730895744830819627582630996160959459404372180264866905791142609286627212814084798947598638314737472591282514299675450353761007480453820065143671962457401465533735145359806826944555365528238264076743732423152698386845042179734648399807570114110628913710459566031730361938318831595733975505882874064459027980902913287732448454789299380334881190478825806650045117090291235128383175146761462561144870029619213376831008385218739925615144658862418006269714996138404534573566019254185520645133592728901171881311185054917973782822598317491802611776902927510517115928915322331842081019382817659485920268826466282066215775648662490740300158956637179965972885771013694599018448535187192842090231861078195410671431692730842363236926007857941562560413532721365624908932529660512476172923664861701239705614901725293090922012488290097565747486146033078983733178801029101414319375231175677991391520436946866436480295658934633389751363047066798158122742017946292268243409533071299813124167562965505190128057204147582070026140167963724028487802794178846341959856767584678980341463833126936517298017445187654087347005044180051295420867201633949817194307723662211282300957795997866612505495282554978579631398215535715726471637649092359175497993804778721169287192009876427662571143546309853358663463661437432163869300309943263804266053046084940269643738680691592904980070140773511024582789822011863191691608295432157722553151979834303242969444650912801012754795777107198757825760742790714781217267925522267816820273707096585627789109411121462125326973918123662854573012906941822372648451755389745118112335967938646038179101524151911549310012710136385355741207604688363572513800570393813122794953861022519649802610563365039645306266424986049079203968526130566863636083744661715849045547843371055330647870707189448927396114130961826361571015215895637647328544802249044597703005759390347825655414558148548462694772624999639187140002505268343127189549050478104020429772357955608643660074489776586089274912534744305890936211366583185157349678242258751215427774088695720376839799393393052170878067840899693174909638651052723262218437609007264566995771398188132279487409809108002886082341776114072945006883384899059385220973393392948650145498369937673843806352635523999171430662698850742480699045173135003859978447788734940332684399011289924756045144732871746080528410212041794803834225805995251935695127265984017338976968125638171521586844605910538644742300573310250186546753258999257926239683593427276272177950883218670728106399075009318121853605564516013833768478891421109565016007472879148875022441146539051702732596493993499631407718411703996335930837561822144963499022836534548796248070569928596766977830658868049322742690781203591273702238329499603641282161169533129401746199245106091006650702997651461358650791129127388202089078809336116137651424984136536173795306413771181580375149774807977856700181581239678180359857905039097093789419493940128315634360297383532571910634853189163559478864743794096189218514269879291276583948121806332329009720281891668951711621379979569100616820444614200248560724035739503579758881138082657943046789040885638769124845555565996190523411408709936053958088185659196596737342020248842041074036148550613608372927356120142614761182490791456131869538918404394698893296411944285006054778884684493725533162802338545207959725061115348843388744289863319209026586326341154031442897450486705921724918571118671476776145018008319967795180190592861716008586350948366221775041471605745662736372348084224708802311086733709484016641120999618976719872980983705786363611560445766092455755306840953975937316051297643906913969039138327840115002785805830310347413983835627296649744472528341363062265250164164273715174675559096267074198475371438274970921062935457273247426950165069663637835578885570478356348913308435569003150883133098691428101365768657687639103803444729827679667149682336070736540381732138292062803915797496979175796455187363220454975954242424003685013501613528019920010015729435525739686172354631028226169725496416187455994131509139292108535845851992259368565373194869711332496800227206555384533322005189935319097105475574887237646837141617919929490526314177623922082933780032796152949451907946561219863590993883219384036987739657301150844592501657056671394861137257485767785202926893796927420102681755665074422267335070835568408184341704784791180796658305250756013997197312251446149344416904639951817241536039646166616651381520311172692707535336525801025634392830534392042929732106411688137352672010673436020107419795228574702005886089453709912829558734054088032496563491449508016304765180852252068508407360785605930771905397727761356020547100661994408809033559565696978387378870427874554230974188931368426919791393287035705835913008741590195580088475236908875299874977648270235996733559181838676883362739496497136540519860611538508915636978139464867202579977280758465810807060622527507929406595125677551852361284810176081683264388272682250335494707632761891504199793446880699338452217817429912098233541620399481090518931051755237952860856276004951491315659709179034627105028075963094546411434709907008968022428623509972949133454284052135840542342827728869543645520631532430719935744644592577466395730148171683595867947812932633266266562697518645994354366660676928070911769415524009685922617692659886642635318601140672487764798564242615811510805675296569611585982946277014105622024421929771775482897549383104307094700659308075395779518155027227746223866082001776420131106984559174414730287670966679924460750131623471762784440130250510515110624871912831623789041691197184556164565181445348883764131927509918212158240169234552801676201694207631261632267099578543194127993623783576146267789622299779853282355317518212764031712637325868846014362063336314973173624409783418484907667108343680474820914357779390368255549600719439494744257921262736632364425405199207463579586930593105876746054592199676748009802733615305776541272300194011480864768946908511273498827687732971534872219350229581097556524115631907572485735457963846115860976553926024956609601083729707365572180629014433944471884438213342405285779248689697626127210345817124021307661252630022877760792602392267714786849374042585789764548535012393240863180053681173615512826147263187795443546575637095146520401318417087233341100729761029287965166334537296645669519789028662389414862251273160152486104309025440297238657563942779042159710810945005562577300003514462115126734145008817658554803597249081222427276979091822715996207610020909326329082348617974769869579507236504086497614467384191735801825658190032623755592774801197557740987344688323518627185572894056106474176373707327096480021474680259504188324109983847137663127363472393122254026185275565728835602264595966283096050111163453921347515474853554627309409223671949800208108066527273258227229943319763785170019199244910423754734132514719049601841039561266022197689871652557673075231840821378798095564110061907319965809859259947454280151198432208496667462301919615146372058463179927267826400703738512198427368891593207915161951050875442978983522928255888756240061219525065081026873407241283548518336492941210888199926356558657705619929321049622838977885366116147677402987861118705466869511970340175491810649250193945332748787521033925886618416843307263667670338642878410574781436251725191540754133066492396526710942608105043123307688289172324379700092092913612536538718876476768286292830816671914611210677094045975522860554274157577373130455759876813088915119720294687554185887826892607433113964598175654623325121599235590425300219853570900912153806697158597009621889348626922829888227992879301581701892826672806694634140270631125262347385533393954127625965841359145962383907797663155687598770918833579879748051297947173479985640106776090183839462803194261725381189055909749060698781756418665033183739620866293735960125606266009298630017287204444813729034438444718623045514701630907822927285780474516989569188360154750279337131903997811311500000874685581523703127194659616743999812130089883988135267751041141140842882669678634109051656673020372247218125093367031193601445600722465454595815234694541781758542212162044206921184703107596235619192077528186716976658033060050672806153984019078777679744361903206760511447416277136123809804853198370943601303322668264515695772693816536915886934858596977129771378787255194578495442767337037251998874872641967888648007155758064923994749906557581698014204985024372726576824812890123955991890820123992847059317706287169342072915792522476207097445170792964765838711666180261023188886037033216620280294630693557115778789589862753151980866768713943312990202896578385618021081250594938799746350878046654494053042271528548868134694594874219085573452827679149324844108859551134599969665081476025228929702404392981805910977685356901811728753066013301756411044573706170770053217431646314542554969343578821640973020609116384911200290735448957799506462493611908699139347703800143569037208575834614111739606223142966909182882998377450526131969627783398918203817192585257189890220781202581662587451428695447039114855121762784618334294408594437933345368911139155992398830458315687723319900087832162037581118449479915690329025050978680467212398213578420342749181489944860921511578243470336884528191183886882004381845293812885270243220848824183397879706678827936424463651562080838363942110892529323940080512086491992696018601409664239156178014025680083338717331599531159315654487098230459618684673138106711638251220925141673937595080122284631150463629913166875702492054575541146385041322874321384251886758492246599589697594901173119181658210187547540807514847896694423778694969570753111294937977563386948473343476829090954534584860434903005495171496861692529148808860433160407836989261894396272911199512874594864039587057041141265195642959061275073069587871734807048347353488511956644341334710984539771012560709023035177023055647223759452575608699567749818049045047913697222099471099062151774853240225634895498127135298734679309742954208579136272553704764801714950610185510843188945314050083914980929637140155224473827537076966356599052678855598276514099196948475977413724004268893788023710336004587414981974533092994949432435499024842563134530034857646745497230117684546651423582090533466536829493037809056415283879385360815629713246123997737356367676439399823471722678131915360744469570320845059678416344531314495550750597161986936103609644651252118121894631486116401608219209263312787409460257434718044136682002070630724680564283983791000803712713144776719702276432463068370071192674456355637897783249759942531797128293312434548631031435423048190379407378346714632074250404977704247961284861324141494217417458159884700202182915010767852660146818377729144521348226372083118773132814439963607062873818266927073127232403056894347904838587280561732619997649657941943239577419815703919849735160552360517620835304727492076089583928556773573175324934127303573979475262916114884642662930763373031733089317253141172130926846176581279045961339180460297947608375545469075928805300905022703995180529774703046621167720120072528831931235392118532400647041570352502294517334958998875207531497382385030502611416796827306959449589753302750631559015602139880393543103025208350956433934764802990557047055645918018207904869792697334073155390541277042257721736862828501732688564058373383379942904617519923760208525652835947609746387282606231125017761838807795191067652847586329447123657391103531846445418354670676074085562019001919059145059518802612679473818497879825755445802805922606544403611867460001385730700352613559731640698794101497017165651793077129700748704089790925226934435172309612564339492389124664800739451593394654854729761583264886949421733127901224837193282904073324655443248841848946351282314121079080884796897931035678083936714355524628146321616702785493692072736737875177233990086047281031673410134212410651808419974676440107420382457659003028209652154215599430111030573359130831046005011072310431466962897914229126899944696455496771380468613359451870771028035634404640571469130046833947427896496420294377571736879638141499947886638311365390627677126076828107843932955629065045551228358644746973745976454110823400894124658010096457128077876324160962919480085773507243537585408618404420229930080828876140051144456100218756463493747710237980235554814540495822978651181672769236867379828792824197740295448100070738408129498563202580345556397672905100072875034152662447735734916095555812154316974742645824285775465669003919574803571483738864551729020375030344488769060717317196442353446806908535820287068002244896014715626644772671201301688444194220124703231365472527402236899377566511029778612815753945759871888495025566294912310272755134096576746808778519605244311088908875832779920915884540656750081673573549862653470576495534041298513033308439747587624287588544275723481741308354695166698655829726180578226715975481670661217753268442145105002574608637214436447243573519411365649684828213372360935843607623224896383476702880755062037515612446033848240379292800317932706493600689860938024059553378040605081865259257044229191476657841166070075415894693459690491450779145679005341917672216001593988658859569342285011701061519229773189411760380549231713386719066976584905523919206972896295684141181702861749136906375584278046904907305224314531573252838629883433434479506765789982319525439271890750918010873650366079866665967490275536904263767125384793151389780192932328585030744855338345222934538929958006422822592255378376091246720188241671447886814115384910429745560420838619528703263422943298643479872353442950179726652533119029533250750628451838975142939545460454662494466860696590163874574666209247326199293411014930833337752131984699271929457865625741313336216316539432248567813212850961744292067778180272248320240763321576630265749211526276727933716274649808533830406187367562713777981897006008504954550210337585155963577890600682213252086091203225377605291536410910066908136728848536116912650086683043062336289581716155095163187385107773367336207052718183976181811539455450802757990973143367012360962653653054991409137582967891407827780745540315510459830852980446602401015258578193248232255789529904540950515253892663725389682972341074106315609689474598771592851630347093894961575244743991809893596872290189203517424080644554516269120008545478174365035318554145445320225800912553900244755757959289352834593704804551534287802457239197790643123319683588609644362873554581479647551025604073031089824151424170173304435387200054051794209925604319651727988268488651809560103815763885215538987142796750113223557166407128261139679546997739652218711422109673986310447287013903228514498936875425740896431907212431527801789089095455541605050604103592110249677825888800220786148112395742331495787060610471896977546577257650492339654515676554586019178907560428216894973725369121350729298180375496403628194603703298073964536809274821443757242536773028011201693123693016995303414039472520686765889287855999064947939435366609219629695058520940911385740499812585853044994634266475590785276059374628290933845016092293681526915007410405894186263141291281871482655106678333331601173276207056443843518915933461585371559160244908516906658987734300577349273328894773263399677006756094326086608706036347181489871329019806286860306816559030370364862544495753556066992610165583090774988187528526437406838419560754174474067955215105169964418115072101272408525287185221745454241400544983292591034253722999398112446238128091561432142238945704143029158274655199494568467823641741534103055321982255372186200939620315571598592182399883859883394277479745872739182887981040705409421759090226363625127580944347383826477418508162976256855509851178469062144553154355200791493744095792815422263041457512943431301999967204537009902374932050826177014483522410318323657560557785419086882717086031654901994221515373924670264034955846821729475861011811334259182920413102713938030016577409996255710799370312489822956776339284944954177767060363639233388816865252844314652249822383378216240468425782049963720339916369429494936526773526497500301108328977409501986576309727047849874344468390795758075858259694347320754269654131107776856450414371308167697695270941149805362112377546690055650054465386638500002829676900884884598903067051618039623171928446076724399304070216247172090828084505998626296489076602521350658941730047017288020611818169693742643936791539170777997643652472472101697211487372584324189521350290660910883874107450722789641316980764228295198340333433322864091242892348209285268950567652870912895868797583414385611089844749064571675288198800401950872186232467932702133603123208334955428780082880629844957333331027996404502945367370652205412897758343500279538215219659747930989287597061332464778656994702605904917383443212685705626765398241434661632666130365491508972042622824660641777126749053643631520832268640856127287106014425611574913519448814613476056004840874440772248668990674694495252984180820166650731953040871592220785767068294147742461143711377790557006049117040025257186730681378145276347040599898544030257079155824813610351861746902195564546172189952065421156853974401686839677745627946657032446218098680016919706549263082503194284709513504690447846884641413870107141713725474482108670998404949137990291110106289586604547346927900843846474388423662641725737555762046588567428249252326935052001831745903491015785434884090366798913189890395194331393123054871383187366237951535461299656755217633853037436424883723386857617988708284298277746318176339010398838605005755570910562190651265840379973163493311960560966847629131187476243801078979586589214783510102188316104050624050713788062783700502237279931221717689512452628591760744974849472502680514131102636971839941449559317536284706717014604737982793041691135806901914335674229078051222763049836557621951425612949682821936549618267017527358384610644631292471756298868251108336640846188270328617862468319916854636966925919591383029428695449329596211846155874569452502439498426393878557533621709505770581544628847701497631290130643731598748247637309464076396636702970752643183192765799973378834396941879470252239874702284163826310249436810548216672349376644422475233583593679602826037514635780081172926375465641423129174149352124498910287102991022907317432032331527585044118616201450230141679266905273500933876913314876251197886957889689685550183689096209224193455158081758690481363242864487601176025750009619048349581065762661360552318560604718594436974769127142221691429769090502186199225721939911695811907353383172784468598523228114101636915968026073165073481945931815053843031588036185169421584722580573689762047049036525810356690668971487737755196356195007364437878814531855182786333906323503225590502647755728929832651324613980561655215218382937908630126830547640159464333561686253401618266458277178618640098683744375894627664863771924671380593159566919524228056632665356426628346229650111982115567121307727540833950148612681193517571927601380321639403794522340812692009531185206777880750744872791185921077227731454948969032310131961960605174434860800775415452627459534723164979375283297865015435912802803457926003131316191214405924870679725963020488755144744202863171030185524081837814841407470080444652330655901617743356636493553898153469936305079473046292867730727746317972584699925317505492170612508267626839659417971963400158895748817808878439517135291541006808021333133601612989419584455001347302546066759520295469548672111560807837145075676277912656435195827046882679511816215644622150925947398258052756834845680653764402940678600774877241507396149124727716657664258157535688923660635214213518608156419587563824026789377525391067546022204164136646617541166497695138213034624351137581832591554851783534252027989784863066355933794220111551085478456528572735024083449801091192353563658539463711951520780392027607197194719232495119571041365661648476067077651992006379046336121163277625323576497461966551267144943725166595180519692165661068631989177647721222998705410295486910640063592159016376798858915448553683972058698596960515676003998048661487255284193653284633801011255271598988281173725567518036008988209635305260673155311393597578166668332197823148939305905789817764278931518053220154427087800879271855516050981301326544601820121670708126442548688986881222316045427720932244991518031178973886365469060597062312229403404116541749871067372799772802136106837884431291030927380752342306773984385351888253082131195501294950942013363937853984968987697734542594805965025033787203761282803797593772326672647007599117822710286761950195189833848072809755954091245781916530927937333532360950142252904212934248088705880329710944198111124392622782382913980973622387626419414317709571242354465208944739044868591760980846297101113395459903766145414221594782093766512377425860879974901411339510467137430577607245674023166206898954716124457201470789728543250257104519639924130548319008101562950701497001740573607772228206699121102197613699812429320340597168982774758053046683414956158942348325846836441442223076805757417815893320486884857895862082654837815700616638730871367057804590314668488203171795867179715129696487976138217810234231012741147952597695416747660187818866507353816116073155912849224366963109656695335478732481169383096365565101145533901231567193057206619594764385788180930280177496690134803284641766436425231081899495982671987077222150378959230452493478125645399953679874583928563880219734708895932294246336696574215133537205465709458493991519226800578088499505598167358184321090279452585166282768360160736849682121043866892712671418446498113850409449730610700560978431636885801445440269273813073535359955192273001083989812213553473321529160724430718082500708758050255860587608721637655003460110392575373679593721715917084264569760257899722546508420156931453517971453290663899564066936974460039836749030562499569972248432937135045786018531820726180388365187246553985922230809718780767159115076134765208659100154989186960658871272095481711121269541169507349804096885158506104666986829840768930790606652622505650560375384443073566312432008417184033824296622926875072114162658648607798827312789009172742847339587402100852658335041380211297408751588971148801616673168907635965415138944329657736345801195414973176699048761201911169117793730239708068877487512928914092520394598188406266835529268119242663543234241042194395399356606157998515701198062324624522457602672605363888902231882460429814090813950954564388627322960321095278883518147776989283381214583114611810865785416035767214582721130769122484941322912200138231787887881187559467280486049374091565985863949025008396745452350137215951996805221016327551391623982436392841915427758340307604298726963457583300428422880715743550712157265185630020601885334987132791789092365005157896440821116292312883598948885108763463697113919279937449547675835090879616757782846637914625651891689348978987803249477183797810595500921810621184080115083181769959859090465141052261611136328515434731424225502867346664014465141613734212639901506421540933524612279403145906558496814723232943197910739229790628259341590753125807208992958633160683417748328915072423513266136286053366957118345732450979724717113402249390694520481674555921971672722082937067680150258487334563800506774621371675661471067080024318455559988947672375347333014186228862158714710146064311106379085344379448949015170469316039489897574781155834173719225574037007723570912735963211317577469677704978874262852606489834102720127673251668974585199443504663902202709806115341197726527829626901782568868011817801788832342437073542077720886067176800638595931748358194129140437271416325734554470756200133664684438343640290676451345738503398464441082478155644879820284013873582948295285756593759546131223945928792481807074917413558488176064052010105500451420963169563922915506231142836949291121299715147977135068226944721006582318740911091677383847589608329510878504933048271012068109722353352939428432619870516060168189672234281027704066878256995195975033624122575281448217791021123464927301461003530113579247017299513058445423074745715517553953670080297292259296341122566565463536884772859578016525176398535228201642186864884976441029262495767609701955687313931913678529201952611903839238283807593492650924944852471958010329983749485152240105554696096654582661874827097358030429548142524324386304443324749301868421552932531203070267175877051816134650609637913542082866857969776083928141625315666037802704129150193942028778538195439622141215181821874073862289260285841461910573060572811509606995126659203856037397041907149375571448097354608356276780083316230333659107301276822781231338544783994913012315923505111621849142697533736741015022906380901487945774100404668327408416485110873868015129013301937433391109642243064051311499202702054719393774324553729417566566612568779451468639662246022318397895689548475920264830512275504242648818893329910470026075869337525806943988029795957257609066337879667123052154893766062149011248971491287101956994529155844005014613031786068535676000758838943628035113187674549929173431539063453318869816810957502719873532519796650373750851250168727608004942352677120839726014434507632185766565528913771876959879646216187066179864519603454452748540125725741093625145124200619740047305505897083823394930646443359351228613170752086474096403270846744371571090303258501071933588452902720286816177709991933300263743841354341626876767219501734683021377307913638729187288821104065118414522648258757494609443389898976083586767491492621218735539891340143821828481987056151314761530284772624097042318216562531368850186433525331988706611494485129007491861692484782124421310367633027319594208835429083129541988426932057118461235437457872471458431268053549341533626460199726046699994858394864067767077195347794962515978776413153380003585457419507859768565728411429375543688616695987647766925855665830389259080887377614239954480526467827627391795253929851227763907837925820876769734568393896784126631080004346840831428877682044815636500229831762941135942605519093170682070703707524986816645731472361843546727076840272070464552734585915836710178280477785258306842602821083479140310985851439102420028961539402982168727254107433483640414015011883554602306989766999583454402917636415383161583237487150427779949304319305463102647077152741144498300782495931778728872599958798283358905342678797016072307463563273277408081340366051058214856543867644910390797548478623005055287247634738218402433498470138852380000636066062967127378838367737138149577565234979195648372312340798786154438777378122966762391222006015241996045426171688421813443458997974920255993263077554225474767281825950690057645269964177811361359278315729153077364099736756821197929244074513427152038170745553039878651620321403939341082815388365588698362939439078996548463033907698972297130756699251007889752577556489986378772993832989035585762145501850202843829117361536730316232209983843130977462432390413521219807668406948781462805891711163053503749374257300069743544325092873157957533399945631964195750787147346533175173528722254200018749947637662318053391517392742471369081882479138845295518022373853138301985455513954538874144331274940079956019402338968773404917991682201956445237066004337397785184247517848738628900930992951389126027050462049205121031735980168615695517969065925686725011964376928089028014870946405300556963739370704543903283155141026771810352453196097979614199448172657931418126948504776562142602001168206360324508759023045555296004423623156284094634187989562125572419376157204687642859268025311679167086966600444715640059709113323958721958279925945172385291031881002085339245236203418600874758917565352241330395651947369848600969749299507212483339663637968892642993846449144134402057981786090227055487900391976166996449777860201648986093244666216541732043307226622776372256823265357192312361777139956520419789398903623276072436713872850324401767964817826599457079184967118816153474299838880187373021280954629163794083816179807054041545537157911586848454316993227294245234469038104685481259005531596826489881914631915573621430317278727927102799078242261614355185654128531910338018473752075471859966621617123015668452178369588668886119263436036176108610647104895007970431246012144579444833070519744140894723254864130079942220394253330570730475460475625607250243205829573497560400518241689003141021266388878112293086023386572871251296981274551148659772374621092397879319901040498633398846610564815890925372794231905422409696149717717660120619065837465896342377975000608899031746137765136342309160087916003671239773213348708591205873562650228297545172982234551041478054215618396453998106199930817964401656132869520798537944436574068569202861643581570169111875419129163428383908161504346130719985089566445224670186821159678215630670836509664472460399542894356784315415844874933649597612436647630251891793627355532532177570174264705636892276945032955866653575267817811333361637348751268560852839676589486565422365672656509100790910341727180387962805713882822836581600019784741406679973419910982016797779647677994189437026553903712031080739340006636346755810364622486724275454240043267267592014680409264639364658874076188374030523346648245378571020462784816674990091890447916422028045717050679815159094587665714890843172566100129726305410588524662670822681632975455193920680542291122260345819593155029462451494133362223254733386117496443639589488397755234774856339590372482148058204321550465997806478537007808326651865431944426435897798321601496421748808255845628115830206699497153803179288252572088734354112819255672082411391309058543777456068651360540292623968070090896272567434471030608290185325964121123237835210615424938921285292498074303015407926570062464615341320214340506834125691432226120430251896136264556970080398964362230654139649282557046128613818201158636633706529513813275549138329965533285846592403548107921825162927777693456567772861710713792450993228417219854721810889510577466434909894785890078362354117297623120637536825715558055959307830830501475954172165271508501636187284737585421088671809843363882861345305163875303116890904717160768536417731081929546207616019579180121011331203893325343090274331809334330183240608823571029686497488844024017930511736832972131220345368459076204469998781521706606022516837721443847585233531290580879238475454900043592291158953482759902039467968720623213933538330723440477689888819354306306285963065988011238220022800769733403017293538592907611327363017817250781305623879709384652157912270041536023589638751387288475770536878234109222448188873434585526305490998650000517851585314368830001983355377079878184077734090215981342480553098963869640175433204166472428525494085600701645573433102914570721253302740148856228481739753603738370532647746138294438593482690738210333707017426422608800670204161867027220353469925281399160386031301780078777639067087766238772844925761621565616072914617830886838270582451617198397564117908158221767135193733131190832437976285832097942334183676901176007887405441492182357249670162065710899153374738802253001829172821515239557173996409785423594913644954397785232388262105853615474041919504419406720476035552715383515359208344929476148550836864383209874296216125803954341566750969951491412867085464927861061908612473284356719905882270691864713444042330463135522785300463136990434692281240741654881447873235663285326588120270680926461710831592183057050958437722393710502516068309945861444993725244497171003902841895279862060748311060539484673428856311870975903002828052249590750585219068509034556866845714615276619874846555423948387153363756482525731200699408111683329201622723791204532159640903331362752645308602114360216163946367934500404578397238336303089832286333365560162030753111629404617192269889379344686220159535040251956188898814933005728889916847101000619116982568540329467783564259369631925965053629146532198813939253639358210848333372407854867051302566292278657159945859023862507064169119610967991951227367020571567872928673479755164404900848262122490414913271841877699300891844093274343062651691669613735123771810082655249984446457657764423992016278819824456828191907291754532606247327038856631964046807979802600828752141496136864120355876747888698474654856475456265480351668337389397697550881775207843462944313999021123250635217056259263022521046178622224040649192943511500917361442022641615632614691913863081763928413670611631712168386485792063229151263547007424122766998684949152681708188860555941909370515905276501718034811091971261397791978121245750377546817281316224184890549974406569021444306844303027704886616887462578532070837387076785976710899803213203680499060042634336889881615951154231696239705146660757230840524675544501917909942999316053081396726080948506849502042045709354446239229243069091873299378732911547030064123101232823359166094997694897042010103654724087001492449952425453213742430586874121729922460385304030442770126818196322842036004896574119530006125304535969297744317523228690704254824718091954604686230780440610527010697527556013313869851830180396405835201865376129530072652359005242330954259888638209829232806587196608035225373372318695804045056218800103339227673872331930618113489077269225386521602779411583084630362285876375361697788119349187602329049768773079396581584366260435597935756659423285477141610214266169943573687287095622756269634029993286000087029716489454772045376460634136197541931012685659563684309322150984146367314355307011096372237772804539415822062666380755994662061419135903438523774906413141329198124593242326082503071651422414944399263347364723160231865985138049802834250158381202677601688963205739527979096839005662224593778450493367915175934792000772954753387484712413417287056612197242265918067119631182279401880014113140379941309277657139451812084966965620868660921047116331541632937825816345378316987772278690240075356180063410416195296174520297372105779355891836861596073445212232347706035477791918933539207353488064536486464040677466730684482340349542472616546463758549637741037648711590100743745789576310772771003777230202381705083210478655744795902541342174982655611350555732578560045501819912228983827500456498893148214170481162761346306056249782510294170788036090131021010899511074426533670826090872627325043853490664150581526394906237438322368787315189630721682886133106498598126215186037503221497122106014376139152249507660818254900441453238179073806660814193915714927155193783707455305529733769427808082681710516775421270266546840805190208193422954325436975654427071973733588986681678219286059664076919239886762908129820182312618127249740575125763411746697404064508696786663820393554776799726144135950375663255664525100771658995427909130284065323943235042944713168099052289472298894316104297525090286212592788038460284943015889410519302495926040687420258729641273563558055679870651977235914822226343108530797630473912023387987661323206814875971621453695303295533767900169584715423292154294511006189971316362673544856699577441079091211871912223484714228407809834379541025339780246522314591194644246508845763347639528442879427993779580788629191730403286136393634449505801256859040895644397131438672659734090526269265766247984401410372432207000059555250646784733877437405092792815342862634424944773612128321952637459287700270548866818703587775522393141263731622825536819032774204481769384881037160639631670558634607489471771864463567567605207273660440927059914913613163208704795662191095979308849336975756451591002617524754947559894889920164470558639796526412556122667142061296456313990285068722560161811030785601276298555856335003200937727819512812870588050527143748927940401172653602601379576121489218829130897668019932674906053153904281176309720909738884268804390091982948673233093872731820063727664289802977694420898543970732883680800112869824710019677850239514909713597379960176332226360622253298041300003237678123656221151996240532202542393339935833747041497609001525139213477755045052356768949923692262447222252479736131881492588333487264395587289976826805140344699846627494300336545829367618706530852872971836767706152607573771248152901829475925818655310798724154919765192250697291581870698166362014507077961336165620685173659490544579264061377053229213192799407014340432307210917300198617820573460806052665938033496754571436223543665600306719515702830549235475795749639083655915980771078511128234515090320784007030726124862646458018969588354020430062567526873037593944453836254528983556043606244439818139879416532295905277739694062021981778595002204442851543232819184757945845418724503712918635972122745178198525179345190159470133435515507133478282980403547176952344227668311458460835615070872797834962205425713011312253651412182393380990295421570314729594847752729437927554109435725335849984300965455190929442732695359347372485673508712106016538005738467890071928417888288381649308183337146585220273021416059789037389263251388693897274600981368626694864842996769175117787657012501034117790075265035443216822543736481928792796161689917672718707240884068803167294403197982511262702565445798297590738138540403499516381372293652934946531773021936014991787013061593432452658129289140118718628617085782392002652139197235360073247977295750782979407457678358681478195546045358648262605487371965592791468073995054143533056473616653075963972079684672253377850389824336912102061991730273990963841851950780177282402438158378410149951454018253257319115133485140070296525656198216674705367581071887595020748112678576521332478878003564079880624289958098603167231491276501719101865620922412997186560587014157709906242211963644422757014147558633911339063527472668683573858984870921074271522879808643439235065946718854213136230396251141918188917917615131098979345970211103678592633415681756351853854854903828689337557167314057727422236925279970969588231153918849539973948828618585589460132926261663532302729200947865140765807320348368653837071651530177360162837100733801447982722660145267618669253017931315371608705201244988651403745565531207731635662560718426371331598905804458998560174657191836859321523180680508788652925647441043280538481324502071659424463505697352563507155060487520715896421992980427805087870666422235215803168922160383330201239901467532804997401151434932301829261455987454210263951275130450723351350383597520492904623768151984446492878222326016966456314838595162091332284139471867421174237708799980044611652818631838913613034912950786802754159549800385261089096899490777585240477198548202628158231352119133089802395777040496711846675361675876768294937640914668045802633762947197283032420018242613921727337993857707750355863466652553157730213922381662433716552189045276391412501975725205088347206140218255765622868608677317492277631386042849975153530136380897416283013016129917378672938667996020315448727457101317914615381220127580129483144435448600126332212408177865769076501740143737393015470895868790150592866308786458391334381691633592108247326192132102420228843260672150967838535998818889507798472670681613489653993549187454255656164884867122500316169378181711924814773322753435850119251104483043441230326333796245868424589616640291857870925664606533750003858588009463055692013228126135452381929017402043867885157051197354843655539605254560462375234999538748653127005378109074231638824316794335268650457285416187906776043882977813846071561016351972954795830909132762800755981929304897822567481849981786126661514360649022655040820878315174766338276627228868089248532162695371629130214643536958708438541770288470588588365901722476155477847168420974426046713641522826387767265790107877020091219673526724724504145567085614228135234354737131732026492133373061870608626124545698698442100964104590672216301944642947702611143015627171185576282820598494183153400684402044965067766361428713612895743473186720640792575848536441467347577765583465496435806176682578456616631214491920504175635990008709124029114097300485714276746285551319823728225224138346222544383216384644884180598369100526955401397417608586375427293449283295631268757263134117600881570631923212725337063781651785223209695438443828536898407832374282461911708265046453695838470394938679428288436032354929788826356343416320192076553423990304040452882634311025738781087093475202297579674424829998317068852870705191399257470023620060538270523296483858338581514607151545995960569771753739280443363108613763561108127544084321968629421570820808980592275461643915011017146493365472889919218871109426347594537882873198919138371009118460319280077159433778852482622342722716132147003294685696814725552963761668254357223418852572511273387702686714507194892541633957715836792953015937151834198285566723128165476667342268372251593076164641804095664078084095638477580503274639504417255609458819152902879288476538956531157143442815306167190390085724814110285981437097558181602633348010887114537106715223684157061075595219582013735073032423402793811955217854444917243058326099496179185710126340504275837048927449633152619142625063254443205134273027912815993022404179867735241066272630296134347546670430232616489340975088156692955142748630771199343415606900631876758069723210239044688486386535544069081594608219136686747931792893428743447997425990334584943105674183626444674233287391017327244585424079501062582308271592628113433368696094421118523582915728405660199688854396711617124172781691764837135004587121849772574517095218939965527059732291899670860137464956652003623921724677597626561887824735424483302132533213450706892541595711642317371211553027322113632589992627765990502504392747457234741452672938409725448566874745216231600392847412246068294190032259539807169875483379406644888071020514489608830336936224504148075270587252759942418704590077734295214554530041233007796719696268923219433663184793113566210701665136041753089383640136201198897415741141457166876892373261508870463511478839547278010339146448678816088253705751483316080831352015651981372949292041414027323027476619858174595812510562464330303344934320070513164280312689351491381201315954631422010104014893142908405360454583772542869418273054561240495207598845649552482027944196611935857006264408172917151980843079226146686333150676089426047932857216481857245504454978037975423572188819782075423121458854811998757761710237688087071649554985308845377623811973431896054296396971000552434649039325997949988363515555187033661589464890273339114577667373393876984333766986349226256320029781729852525150586958101786481413978951371258687182907861755674469247180859176571401387024344698015027528469005804438052865840367958267152632577576847454504154138422303250023370187660715118666672127335694253736729009202338389112684865919208533387411509361101838759126977186594930671165358153228302602063634605628248555366893286528644305404554951915431487102683040060353263320022712040757182147651747217557583249717878238775203783913887614175992153153877092982364171241552185851335658394410909632666152395923884928859082663138900268812721465036142775900474208087393934609377070216372493119259287992924053648099721078572094832258402667802734461692221300038091989325148138054192212038909564844967420439658696036496119388602150909450354903055642622256607837085002583280666180795355231883758583559379468793007234366835109579285708621115287863441926706128454658282760857080212286284011321170112325197669286450183881535429535822083331669855946122023608198530262158515826883559617476260095337060828594281901441113452321714657845086706086029375514830121016126765353394741276178718012167226548669336733951192448171494294242321549103271327330262789749923456873963881957589438748602004542178415265331608902244004607665645623235428992317472062866286379631725846258043552449779905973526534441779173339659021844394103441329724547366236042037944539514478361385339221878726490430579944118743273972888628633969774024011786198913004935310259884119941332055719666343713946631542887485910767509422003062134483605042854091082097347014930423748017912162222494655766186692001003133749429883170760459174940314729802813983549787265145652913256491788039822616375427695411681412307753703871351681564514112200454460696632263374114553253457651220889949494252606341541075811058991355046157822743061088452963009715894657574040201634245590265603319615385551984647530159652624447649918497398388405526731775902136219919171521164594739826399021326038945197829068611401710407426471190554785726008165836176995487248946296390786552927002683930614516619731620556553176588151664933817949467793395209052835319720610387673934978998533536443956472022008593998987866897484805021163126121008605796912268015114330880676035660812664908942788247325918100627319127472618763670985131107136091128466526174403078907635629380995678692696757663590502133286140214981491712693267043326674041656842253964597017816986503123713578056979153257711993164716099605211641185874099208294479063276433924089566394562921318078168851652861768536059168392391291779727841139486628136310228920670222319769590743192063522816269999848490516414752963127531376776728491728375896920062865679376778325432247404487108574344691375467048634563141593327382960976459493221253014427021715009078946959416276062650996750713892927556707933005217199373839427808594979801573019862730064452987645226950287171127824406918175691962970177179227641052054614464754371344129687373404105831841813594638481522681757408440979790124382715304247833876713097016191826431047162198064325821225277410434049103597580520985213993947369901934399372998812233639579060166836771531244868653293520769700144542443996011673739997998293206105393737445414249990134715534351053082830332964728884078610741866499841092806918360057270606891292317361809824549445987929504525419727092737842671084334125539038215072344403635771062175252576442053957739680895829713374930212634446138331014894888270710307390437379760810200197198092966760764099036076443918948950098994453017430359453718098634096243691482926630541686716588441484584601044540209708529419932410251074693873823847336138053673646775965102718674314897897749019169423780372679071447867996915549691575941603341240704775327487195791076606957594358037126761258200924259706047158010443184719949006853111537022431103811838980474240449962400044509859824395413570065197420388755625401115772159293585873388587336572444322922728400798959500894173934937856910296933845332335071369990658237605274152941421566560072732303393494568233412350469559942292605307519281236118908934667445340178661635404989798564941456351432370413317612774355161601266554549788596165729715143307786455102152359878616026186422314967634405781612425736394414379594271294885095324356858530324437059702429309901762506195605085669718482358174214131561343214778632985506509264605374350700278115996607993562861559209313119638817029999321553955722872668387141846536880606323901000078192800039432047284379028819795586524807124339298762646242453015121433056851835846911855969748684157001876445188810739653091493113378858214166663822553063748625011494974578307292926225766566724381425630532164039126286571450990312317678950033169096940603375337490176763396833610193662804543788118441231621455764620638410371158728427678964081800771901382464956245016493270836491317099166280498138864076534233083535879349015592477293496964533159342051026283212854267480518341666072455823014437415815611301641925496185263539333903054720915286927913557596577297226471320769945571910433741709174444647325173748627679973398070064784501557446609637302226752661566894917313279726085197903604794291774367167566933984741009077612027074654602408257958104381818788330240609143168818714510139716831613521505169632479549306862465848317610194462395504884829885565725374378563182324194174895424579176544930407673279866735322657215481576217160156625315617491986541035557622466076343750309914322537552424017882459144965091963312251250056781809104406426854216310266938980036859233263110312803843115036892079642577511575118010343395183243746415705432156249021220252791359617877202250870270486468474984230220481819880701541710525531973532674291295254276407333057571901274536672174099915229440765085593225583830410176436862872988787087962450052084550032190178604510189901329770886551810900901526898667433093735735994388032969757526702055603232626522873147869837431979850936259071820982524741486050171867886841884121791510953537752838109289411466922658540352654210462716484702986758618990523518341161705518985951589845797892846325200790347646367598535477926120793376383385187780473270092551257563823723146302167618322394993940785914474662448180991586457045496934331621450431737887824163007783666241496579550513780619972244086121920223658305509325783414477442994849961492033074103603936937952602265917739761020694688014780285635421989691076112344595941267344026107636189097878609808809495826957538458488184910230322796502144642298543900070318077896830372147467413268573084086374540837942596740268024253865221911279723921010588887254178032214195991187315790437561450805856411863931519696677110643752118756768759059224811080246916143910232907105562390133770430778143273546867150094281567529660886946879033980949591427439684239522434045303388929178119284212997651888126551643320641200374852096475519363494201758084855570413800683012387821616395200195401826905440289238840740550556468442456247673285792439451779242237613509204984718575398251288034778049356547344910692787991479561714231481715592476979764985354208304198091935856455492689750062370570486351976098489316440330670469581880983708906557832399078508528783442187022038559730301197876076222760362146221517154986910147528400692019543008439945858176029007235890190966394691085597928665476404913678525887496371815486977314953811873769697337427020682556600686688240790301251497538815968917920085611686751670721979347777824209132558664882215195310069438725581958281947222295338488287384297712882877955688574248300293879193813798470350261862987712517734337272199534489292586402606391704882958967985195647598708741247489574712060518054632517877802098570545094231864418904575948273789581362409761415559065509268329936022966922616407044065408554672423257031521949037007400023363108884645500597067454359134254845015549589248500148354012102602661160959231188569852284135898928599756565041249611437538787726030521578103970848175961637507657256723732092094856447907015004070072791209882485896850149616271570309647555361091129004623705614225670044119140168838858462561588688282272840705356020862982775487205985829373555114011035479493246585872514323889728549772214718979929293270109725311765664763930582987298317907438581083023884390418193971787503942692482192008711382244051750801016490037272441634420210924569164245032751007104010817009807185955482514734525083255216636638985855373322940164594858487061904372875160326448556170232980709588506240731926538633443934572317320130848077306075075290297665491019536013663419248926079771895417270638085554852971837255568408347275651683521632517954273824461744844340292522209926383028765968234153431623702878627792379764709687722114613198932082984422640247359002294316877619913091059338190990635697933852229955882357846828471496162182715707863206223268394883975829665201340694546444933058191979338110413458750948792021512580051994669263108325871704282218085534686355635122012958840807052814214238600214355463102434384398332185453212278498241342806117557166617134281464897872749831797004650235014615978374458182012549988522976334276379187991156382133566272764049318840336549845746513448495664686407241374670196216105676963452170810474334384702945252227151577363220590168497061533043669470111305612343323058785047304018843643191539169423002993268039025811212296934201900467965991919296959178784281133767158604149016700858857031992441072962489890360681742631354849351606370664158346939788365718701198513573484905391022612213139301083366020294382341255474587974738479831169695038531948788818866031733445468010804487857183761606030319735502691974371209656216242015049910506671456194803844624658213821725462208631520081755041365239086813536922523347512968012897016553985272134781395869849679448574927475829780301554807217471438007307640173495370460228756198440673803961529688885333954631725362019492836557726090635566486382821748747986339341641805896358423949487213219181827606791412422177983650882890490539346455602424811281055417280235191851393381064196497505102838196667254067606245182237975930721930166399038363940084745907359978074990092220516021547918456698227230497120117973254426206661496362987893985596975648345163983563040171599255152458588238943792918825238003436863668930644281712948410826430918003907269165910411264706683746988028247848871925036618123038141730557804876313849301518742581041663589731685875683928445194670891219306149409647545077133485425447788147695647541276946539425302880480913235655217447818517047620642671117474148613111090459142470993919564254125182317871409318855730836344755901247775801541378792218425120866054016755786576202897084151793850395941708227632743391508731624522180292834928626363799348169944495608345383897643800290724264119351035200573982873526597628519548887058834673061199944742135475100746897835347153818744690263834765643562702511755093565712814489747550278403969624205870099623406857986812606125619896271345070119114867832460396310313311309051134625803259048224185920421119216668872300516880716862295211415166797992420798186186617619976827878135463994210993154919515985578251323571964673100146714657610413569594614085940895061502722556270450618142588930694549490459968141367924707182058040098897730401401897597750407180259373914791359530723689301358710580818104063692403751322170440756038203632132019605378577219952917243872589435121626158042544946596348554347799807270653648929188677137503582593409477865068235241432177517011594234260446444454542183091919190597927970670617348011347759164874075471302087624361240529523478170878211807035772449715103464595603582019977036504790292144529271439619850233304071476719171824035136513355350064883022240535253091248249463341699875281512294285134527133376241743117372130966946564393545170068721210117782171699279025105663754980814428131083365344153449543894706728589879332817517732948961798894399581197051554790836556910305033128355347172457350687431970201326976919433381345430914427175554330072366347496901733604780872083201429861595716737766526477994075624539644077338897205459249208289193952351886969933220082223469327563134897575648276587098481436214033685654380257783522010358989633226630525175617288080767085876779717394599087299625222302531091041897442858038168934501675905435486204237362620912756611669451135726974188995146935531267946710650971643908114172543740193936580869371214268278728930628570127379905477497537738947802208478777105496936704469487999192143846262797175570414221656982376846085075350543224084114345194163379658660683384237793255004503469540234039249752549788145540614535782629813317773203167858745441188706041625673561988535086254897201305320537513734257805010782170607512497640687576600187924438008998962663773935815817634397058241478236540026711980214735208245614926332416298592832765786800685866522859249605042482736084302993333798684312806530092145877523443170024833502167521975287239577608377388059948293448730048282543145411742817601203795320148728990278511079366033261884923975628909798293987970708082262241776968602752319604712128130079257445539881233038697265290035466429567863203409359325110526149987237832392009062829541314999473450213955484454951853910847092671607099745708138450956529933309061239642399529043745567158989046334504155580003163121211697957143062639119431566451845643613518306541183644252212324019288901976099464310559828745051266234753900175217165207040653977779485852235584536033286249114802923337905200274682285099977457491494345462347599572404884537494873446589914288663245648546618574696483760862098517761998806974222880337327201038664271583004081957573407691906236712756839968510486293044967714244623199381484758901251539086597553909518923547492454805189366762360872364138961132540670999929699368298785758480793360128002877515033999291569152351418833463370594530623512530313148147041561213766361320166229503197265078219012133999727785179012083417899158776306718273967631496917415954884006701588461624521031522232270507579589351305365257983403304200357758823505092629829672818067796365834327066776770517720093019260717955178903992808524642962046975532708677717994415009085493796941166313890980071231646018297267717518766165419886653601254552121731058333204415814065696397280493607855237064595966615409243432088611387826774609411190086876451394062577024401582620158320447191472887001484743756842503791176407036569207535704909305622652380899671046990224731498697082860016961199680047291730534387509508578710660997343329846448895833528059793649256556242157753304084728454718959926149181362579020269304236332129415020112663079445416358116301251475271179897620481101970284247803469898918922315719629576529065160045465093685231520187991818217109178143125554596635685337558975556435469599334015164321363202182887386306626227879637320233570072422457435829335677582500694601163619754204621626488901058541574561718964291770413534670188966886559373806168593469019546001828180541978277995237810989671670269283071524887360470277387670767565213315181556515043439763791301504370318671700029114267572173815159849479965196922726830738535741358290486221321853250395593168215008395766780508668313300093676347009852894780952986654189423983700986814802426741862704964305129932166034941884645621851008524229469315355946461657504956413381185302091894853297717430518548533851635370108156678972034700671615459584625948051902726494691715958913589899353421286984265170148182922556565879857801806660120399261316931542543441393754566077753308021787162090275979300591578929804320563282599743169299214994626269392646176499392700277724050013359021155606570271729160693959945681995574249400991591380626892393260316403933748016170789969561027103844892207449804793991382962454582286306458698837725066304415184492580986787042900493964028852799601344128538844366347003713736357696185852281085243316347186434884676271563898040477611229034395508946961622227940565636946659927518448953660445029416799189898582925197433240173406491994853485208684396222453993076840568401298261783901747727302916042592932949352472591935509806111800394618507903124160602336947155194685306135275297798418418557925674016275211898086857301316025928369767958208192646525902537988066765646131763614050631768071763015455358296171412659254869861462118080223170780995750422671294327182953002484947455304645764446476168182866480563608799668970117597128111679757523753738097693170542857470225737355152187638266717193093273698528089297850579454200121529343211848490857258505189058772090725749123872982780793667804644368767283634912024057218968607736325630027064011207759667923193479489579559269244676362182293027219924071481260473481451013953723449821503522403162281123255081487410776929549227962250388660953137664084273600593935174939921506413326809428009011592211978009132665631225164985675276942412259462689466242331410754348465719358757352970490815435585552826838746252069109188336456278719996821613016076590588962276357174673199922489645018520251843673482669929296279296595684269717925587913240238670145948480941595424586089552033874877125110316802746213791693731518815211620804214647842960887497359846951988329298562203743613972861393409200053661940105798770551625873707319834669438482772160427243014658705620800962691763179259901676395432640409665106377106183937441730618285499066547942067711986569067087852256694175817772356012315230864695471278972007555879309547590276441781487040883741457509369539893087608881032595761646434171398803612294894145241361891836084706285978054379232277660127478394979830098491093171669976319160194163329950993360385786083028199406995692906389727413513941167897902825492844081321797867618244760811420521000822792106878604496177570361740396092251305125942572960910469929987199271196373794685201873886386086752237068756652623158743691972861228528472852058976797630867290276951260792157546101855462313789742669903757490738745769762753740184129517209778220625819478791575213793988456709928322452782179025304208168582122023179719365563403368635479782262641607222903452267200039792216744388778553931565741066393334624500306564414589595491187973457342219399424587062518978129952991425545921753215514033019523819484604615344189698707449198034151766642700397250042016583180762470832845823731575265124882709295160918687230221280092691102573288687002993289455224132394206898076698266336017511546774155565950231084443376647692340460886079193630410846397471331340051467844530297785895367935318230191615875964117003726185353622475703556816090384881825483358875430292795572184956528298415720534363917187277067667120822092295924916758619709967714059268298707459031262837201111403069317484809954760620581644915061209983517617279624685671658564235517223581526037953947882307748424128910094607019599875573288124869409542851563949042197809135640505679654979963278877148641227822082400601128827563346638586529007919733929961946036743552695856097453712306715258881148321358807992007846905961523745072796936473689496771202221043958510785692203085459968779007720090761697416442201711588800676232476405443442815765108401322433542258508656932295135703879792763086370431112234698915504236002820617911309040492434154434208665385700847376043587654907793809470270094778187171537757265843218817408133927552118176739003155593286925724684517155744651714521034085905747890249238215543465722790639079811806726413565397780842900305647063222671005971023104848735435154688810644335669140754807563858738034879292626038474674658205280243358666421467236100978679726762755639181859106262206505654029253768382181433554034974080422329563414514387594320867579005168158692014202994707781790671535995658238243323412447076084098904834286446440341287018418736272768926761681138457445003123607079159369820270501586834172151640629656100990596336327170135275708130265216151969266324635073503349680127842562571843012336397840872600971695220952916537316553775108086184461247383150420984755490619780287310055774305573880255410210131581987271523864369371060301516849595815794986137249384291228809358562524208530959239672018083033946656809183677517249794249354679847225834535700944366747634616512964792976930897362029974141771551480173530466755952677952932882819397770940427185323389923903383874035287389503359409267777685298169853899890851678578854190927730470562176479992267615414415134656812284387718435049899252715821190591565411980883308754129519088087328339407153766059228121981799075951611084541792251446979481371675104726243087807318068296131497950188513151331549348066024973303282241235986733648892795202777212526543091098561826588175216090314631560836195974002920015935035263360229664913039532771137710549950639310555770635674853644391710305513766009581415223955731995911442546131530355346756495803111853193018365891990742674947330991066827434146550682735759453999349923827624300595951710583051493426360854752792510821185754872109843676396194622726768649227138959524293018201506167873961234823463223069093420928577236915358339319349961042428068997775668532040938230064984919033027057052640556080400216792338566614227954246027879677898577922140199510956387928453588187023499614054878256409375685797549609709387824154177780734213554783061558700611596627658446510973753598717113382695076110135108077022336890829512946461486689147830173634500692165032850846539703278784096316836164276849012026560645646018568904294453466687806913773666581447315496389808288841676371943227205339733823059592167635727241751991313297155787171434523892575604705185362219964478669901382661464898694301311092440456951481083634766448347956915853211150601068685590581378127464286563060934499469458238993487157908429630187485316854752496750020414951808061527541968375660439151251512172610609231582527353461119915842214946493879845094642924936967252888130419094391856788322950555248794603103464789150223314819383264696071430455273358103710397896879522877788147879838900125168843037498808062529306747474213299475550885247596059542962191440968636224698930184473265605245734481919192407366357110318427275169616340868273452128407605014798792778210988771720065230124338462989965314685119738270824838638509197166113867361838151565322154844273264278365093917112289471059702882719744452891265397359663579404255788152477981752487911769261487363393983714191897016593000634045725281379942778565462815565508582252814445348280492764507840569440035237823290047745330814519002152580591660844986539970089408639030849511016969535121012659923461155243339077338692120014134058931793128308417198153669444512953525687070111724972525984991540343224581890762322784097645184269467849065473224488551914778542745075950464668414490121840241443999029501252983355360902224336545455032879203754341411220264015800033239946093314642862649553996365569390427936997338825605768046733661626861977789449657964921256314372463260729621675280625433769543170176963303767289995454306413488222857991735309773765014039429431539977268884381059395651793569100172827013952143936571533416419540149291015121970246888823013065307822932062949105610902254874686244165138468230950057017911101715713301912401190967095289243063255335249894793902440953598513060989048544823406869240349943048561809663144079411515402283712953708153557221785220216079919432831337860595753629284980529645184781541821832926095981059483540257155896488541803348829677817978553913343945182571129409952593128193804347147898780382092588267807762852879098653027834629468568950866187278341703467563135561316193736920473355952162159557633587916189003010690897353042628995000674803301291097573116546230768988979435823333473392784432438732802750134895016466991969823720009300996372980249163578791979055600678968468830553628297397514432064532000945866162619954072024117396582525602672887844323581196655408166714398464167241830955101280991557731323778407684381619114086822350747857937434270438694758605133953091572619463446362301257186613121107247556716819317240984834856396568052739162543397100293147130667284823415994504672577399672593019381094443582587361460665911437069203745817335089432481206716466963131164207453881564482674180464903333872465808473352740196230202789518097109571025848794303213569038785806215983844320022518366660736827204097902531472777171569762405262432605213766386092395945187340935091965118379134564122593910415092984968370911390111472286933441337123415550875942688372253512157344165538033150930855444622346663160423444440618191112028005072542295252271333177946805910113037084524285547786769251908218706800594779782108213481046954213487035995608614212902472598563141864316904879557134916796627444669504087433230699583779353123910140824960883289402687542542077309679070520665390496876020489409731917057931404766564141627110480825238516061017066700097770452192962348613924110649712565390452706696333134319884135165055092762904009301686131565260108587189929747109986018613502796660101656581084655478845381516845938391624509592915920164451796134750975551426379520404144327267269221315637480164617189575086549968567752576443499135607097917034422678463884419814596525614274654918526775290597363127429751764621287321913208348023984814632742057843503576529036009688250306504281399058608464083102107261523346795225688060150133550789570992407199602586117830295151913220240620278438521769828494178288288980616162996848156572485271260739442325102432455949879159447084111886213542278213719697673099833999989006285666879519774076328954657172206767100942479357213361095046734214815159986871187847302051898795312308827888521923577732602570590778687173049017593838203864880231337439088254990312545255755591976166989016420733898535818038606194593090315030179087328080029836106952725723841233842523154590836994490770805516779557258517392033597362998702919137989802636602027074149285601166423679551204644044292179296374567820145216051011159058892315659971167169175351270471458166750764768319964844371560997471588191513455557685415034077049680983167205779971513332221297363317693209709620028694556492109777364790040135749369492804320772946354012578287530822220707633519586742954920336073338912635596539044071227054628116313377168514724924763483842686584061064099051658527039665905270432435293652875180737367218856594984585523753532517712961298612035941774564148820216027995370598640489162762093689335631861064810015115241581396257476004023806334680646000919964232399796932041525536877106172847138397188870627690877035844515193162261436186842600272244402409440267516252420444989083243462360539037396042262851985640423246607526387887550315032415897770436109164597123976242213610839413145342194154308839404622734777505944509685513473668797162977924058845204247396045634319375151793943891629743035857201338421130060663203946493782008717022249872652230366766882929640382514927068882845192051869511514328615583061451972268027203247566096349286346172173960419228644065184511020438976143296152607537937967535490671546871732040164039024933422838659029179835432148582859822511932353162198055351006950127548862199814417631432912107343888337322965383029313685613744708073854592370061504983269731879162853154326194890098185235883624352849368973383178688042116663518496805933474926919674308836229601121677048758473808635428745334147742735131314068321033498566142879430610218674110595910351975372111876298672731552076451103694397900703288338542757750062067594176995334781335986782385122527979978114709579160520741441509182567984673794122654746633604640006475403507397817287819993120351803458586206189072392752492574366965805890922927568160601928954794639926583313008809968217750147081374820375311213095258447981211859725393766546913407514461329541926625388674763390613897454579721991376868308826268943940763672442907449491054659870367115532523546627473516110419908470143399121323166362055549324152479758033407874625259317508324414890389098469685278834319832001291249628148509397577230546126721331539474010999139574906805727045894306294793799895581183521377800033075319353495926444727634108785035837965613837127043936687459487732872140828288859977677291613611735866803413446400315935066092991531149946538271241001265424090605248479735289996144837577294385150338134572764768959456556183344355549447406519695931456803858235614995524685713376807864142546834023603856792946233162200141450928269566421820015662843582899440142286747100895654823972455194204853352148903529969619188013803803554602141136275689712445747045406482071457152146947898383556861093808565380988082188314448763238961876262993368918802184485064525205347701784513115302292036048782100321685950854565683088321873082476467639283943627655623795568188905058634677064660610820772413362223582512828100340926072399421490592764035444742458527593619037528102825798643841988295069914668552567567238766824797166652325878308865268241883359960323060031352398253720800549919440852433033241944102429612041849972059724224597134122720768952825926936508096997896812126560373047823563223170307816831595559561035193522832187316856540005008895005697627936382422773277906796402211828104927320438196717743263287996660545653189163219466380048247684461835948044183806803874031507984926095070599126689894215688875659454435193850365669018960623371091223238752684638639662546127583385211705729387500455969209652400482789636827195242307725324919123500666305722573428086835773484751572899645634135615653406040321371334713031048616833163344588249636543294891875434025443325344816067352268462813207954677634558838407345239589170897702951215951280864268390038155567563653604517443442094328255862756776772125790875400642796450327650559107519318600848791664068191189437848223148651801174600722394705401290922182088045797789204201633980331501639334205491691547578846383056605860303116432519667434841418270121541842118232157944156015524782747556395394931814400481204205521556427580682388304324591563299911702445902169176683420021356642443618204694735441832410578937057991242971896172598032369589264615628410923784701142741090823238836486650823606202354583285026991481761230328127523066449114956219654433269531712538299949148149991976400655003028809096132648504679626659231071522304348480141540709016918909175096194659877652692348733973724434734767837100424954112775422446309228562438106952171418429084808641684558868357873542906826660289676985103286239373595478564399052184547025757644134135146411867527411416479556291599514035780441898776253264597773115252418367421802075192207906905988395419648138121210102922558667519541571765944087672342840342762200363912191061752516212704215220146218718009131490839080458180121088127594522658446464818679170946952206547284203024111845911626408067687098831958649419196918959073583527482006157857652724946927027622577116515773875288846580117157827506154692872982041474111527714279342705971450687345136260731726065588432710508917196380937458810310397341562190749031489128236921752321561493742355426838756364235894698831619258496385744970795179248360538861037972779289788025264412793378907326349099524142195207443941563077322435353367064637551696068466118659358536455616425491532850756771897697800075300050127668424566757277029599382653275499703584499884567657689843541115879908377388193774977496647370495535882483311658068888160690087645326623441529968473254401372149737372595493466786464440600973857462812655607213403849027803283989375693640200380682747113240403800900078570383299607597479179896981901951033806280386987364416812286986897206697818873036006820199294046872545559639586502505023932559159908565840796009023475040425820635678262365061653223899512166793469783405161080774047356775259371087933386864742549764753519182272089743207257058681518634413352194361616738164943046541613222388994885790442263751966706524100384241435740545418925777154664799142344056584442368265442116718367178735886885884249756899199105732370002538878200028305756791797138857245566507710913352954269620887240828224935263805003228308165270897322753489079718925681194164706175201247700953544958291029238488310094891245177009393697959054020622165139982188449245531624328149741591652056587797082061185031349181240028418428709771791442657533583096952626729500615059468989407669124292696343895619223222891945318493030164321911889827371565294215304821844295663860435050453858578375527291098393093036940341597912451545869327900408846910923052799565481875164839014410007346152321233098568898760278770828719464544917958903407433831441721961853632733671819419608147720494406874409959124148978244367961581044590805521788784892651072068022511298103224915157531453598775908374094476672017230204488516661085487298820726246318803393939447429092150959279079158245540492391330728717762969133739080032622818035516595176682927318576268550366887587558275985673047299336686392735788785570669639697400702365243036318261101379470630264800574905216647709738271800995124849208981069267024002883011007457498953927590186421003531656301081715789585040032877891358815072553862264138380515965433037792926425708858830988871983867272172037874789357182055870912952788763945223693061511432461238775764525291604308003414177954886839856769899044295518145624893249397507837421029644885688430017648373497973712476619927625918423556186353570459931460087050368285340197892345925348518721481699516510172813897367742282838651150709436581806178464525158824508909181264908104066698425232472378047976004356865675641838754493166001536151105082542599268038217152437958455258259678901066455129483446024819573074774928900773794839087044168938559218851661974027148023698852922441816825211073874586613377611098889265313420575491357217859982686502790199787462628265770775760194107741470518881302190298519413059163430241005191146840862286193814836977905878676424785974679580171130638007876444655206876275915465970180044573008790090164170129431693609031192451401800564713853114468342106440779332664410460121493423889960540562463028198766014042224472155589598689945758254441023240523836750205065137377736948146620194624586551629053760844351038776824075378482775265545983444608122792974265106930082945466792078003115500266551395466615278803215978636965344054007287656097050485549096342088679560701676857306926864675731097264485211457783915668196277461866056072817366896117664323289102120025899182723026462267628070562454753650685444702976264683404535528600324781479940566152113616333602107580470747118152355274901506546853843485177460603771897079169057704781207730755740833940956684958431968631109986427312296971264348590143869389171458871535030629698285447404215794749463690868030480090180945774743175567467000174551768419282332038645414838861415540242935347897545892506975444341261200211333230494687371244725951304952557523043799688029948959740480185073402710597000049760747376597821277907253145590934698106252275045188908279638320126222539800242541742728463047369515727305915954185678492132846507848872538359924453217179723093811154365230795026980728539956087676770475758267881832027596371397280764674795203548662286586523905029726790642066415079770910742079414782760894121244559909113774080238418176016021976201849481073237139661328510504977183270412948605423226277117584482344372860057874954496346270512776081011203387169355918388949853423522674891085609006133297351542201016762415547122457132947164155871849343676110624239396956998013491913643830104359890256689250151688810408894036088451683291117792307439520669317117251133273585667799675128892537289259781268628137974626320070180246319705533670729651600552240528218494605526711802827653044996142889049269857623880236180797938978438500798517741575146032413319334633644165471635383366496598795323945567304505095120050731897451122168595183642739498410777852363203812193791270858838573319643345323680794562310727878945048947685965107944294677799364547852618350040269189853599172064661657260061236705645726415240941847812301356365102282149907925936474331062447001797147585066682715273662524022892884235829472218565006019332574535573594608070743142616946650705640390186178611678220399422903147661351170826528454074693743918590941799318610871977142434205611627384527418183879342449867701729855891432770211118213971839047028592516884757949914278235080668542252570383102306525224805001558587413475819150743225285365402008855397947161456196636630146854864377289825678787474931629110550413406376755241214919261669208168163744378977312691788383650914266539936995616921680038394082980034238828092175534532777066212187092514919716515311619217324809971403071159867434534419708026798825813136924103333077242502736124834807456940974861980863805495053974912612466275325404527051153331689509115494841905841604519048214664486374289567598127599355215043596727781531600179382663216992732164606495544498985671599913151825503160415760060740855536511469010523422875371284907411356297634563436523849593055264109030168772108265035639021495223691093805539425100128180610456730027471572112463283088462439486328552125866419013267078068436262047502402234969727316944105973088259000062144383648789410049221324221788207660093336112949902123539322977968784891270898292451916677234408926849006717421785612577078485067657959713615192584199383370401803573173798995071127386724918958455175220919222488184553770276104987621403629669176370408343887821317215972989499330243291109005815490208563254875624270641142645972557115043707032160357143530651185194615071710536048000361109769536596092249004841723453243610757103119828699395663589168291079482919273775322368862840439387921696920497326203800588606290674040306450324929820574823132087309822718284142079575453584505538575368159749349226435649962835675871584743245442456756477678868883771313109763632128909392895443928357284696437984870994457571817503402634779423257570293532474638159973686733697024442092895451072176998932183522129756621711131698493610226843348369917536355337827468257860972420410571949656946051293707862822730748408479002243551605479550318882356975387364906501728772296218021535426915238477241219419003685093490490343568151797411848432730040559591864891528468271034552592905076729343803636816860196338340589005597337356702111566532802744735552790059751757153821424445409172041193325462739735631803921832826043893900668681886695249887748370755562485141230255406307543022986779739322490584408062594771294734485080232254026999442202706855019491439094111762889837517173637895616138595584032890866360894172636853073544123141386734713570485162426380845716037652367586328402346847698610020706482935383635712844974713454081175075980107409692693405282219311509487763887232374498992879302475341430937941193389308265620905942161247540011429790381744610071269717515752752244348543249091960732874759234669003656659167111719477879236650639772492116452717812654810893097705113392044521093498466270344034403267932667398891299383093672706845078050242207574737903847228376282813106779491793613645396327092637429884667184582839316843169103312812233492946014649062922039907028856353648930010310779546225682611515200270180292569744973127160646571293037578980204782581081764459178149952281243369180786320785248788244114346608995914074529701239745624892604852075637208689274502742229455438059316555402643559118053830036615955995443118824420272401787750617923815418596090495542980701710740095448493669801222706678424146517067062701374205180783914516749791461141020534565195593020362850854325946430911606796419823669552274352687230311912422525459635615915389283528357247893432843997481383820382483487512587422813992903530107434462582065518979396860500471459014442967288122109555928876510875883919051715761172197923719432176112537872961412398472881635000200866256607745280879614737681120575321553319353321952723676604345666219394221419843458696358435929786259274659572914520949831699190347150693332675751724280474159916239277813916825200481526888908152815390512493827219784835575613408048790611093597405655239703588965864647519592274309903882797598155306746567756503488834024140879107150698296295707621304348897886364269356983440578378875312993543556504767513702960648240486505797871606447391759901184674496055458961558302195445818242668229926684919701934096536217718233507760458667296232611397517091040565459516138349700573243930841176912815471391178072351905438547150734396472043115108308136476520182532088863230518952144429740424087031917965651871860379805573301266277536173927747922718745576336045035195254696430269910487481829592327295157456201327007195970442406774152194421427304212349771208055837846504373067653301395921998177751765848364947981856374139906723786130213544499937871574339559990887440669513277863525297578283246067813477583402907924556723115055603615510732660037694206912312514466939794154657685028753546528330004091297744805499145511165465696944637183461989708660424954209709991384655424344269962984716600743682118000762193139714273584091898166696886911822140466148425513031386826346154474954148333686636815731354173490845973665975546583180845570535619320239148480251820900246629760829204385477833670099900289515781965111315833209965841890434680332831808462705633347648544827829856129957778235139518731426967541798495586578620595154062636192062928539726429879283394257028769959833070065910929842663152281119244445930146069499785847342408261004803489795736044249425965955474740484710002183123413545580433305611022855518591090577797445591871783131293161287612744552339982154225643951112535225394433712172027598915699882927898958577478929408138070789807019178552213083250891328889078930954437563154273862505833958648497798099712460712555736842769796203089474155039528625168733798849298328361907690803123458796052796124037036963193978847221733862575283672750844488203460500034652585921751058232467061547774013488987421524257751895984493259273269741067842054268465100395052961144913263951230833504638233905601027731751448923818491111781017718296407669755016856875940707238141741591691101520411713401102216011254383916067933053151937229127049363032480456536607844264498836231763983100812302024230219509394201154453012278537380922072170414563216332615949386830508627163152125624738738573335919988944425907404817299140803805758336357711167992531238647449055921878878826685035307221958192240295636298292121691575696826520557120281927072945147925360049511472602013147017126273858624576378902913726846536211734235261396168096299371685401496671588183512462486116407783610961472413927147772760409440250313308347814184909516355527442719036019236163730936773799678967546338399471607838882856531047402930886205004018981921682650156410683280380771378769279702238510493515631383724537785787898678143114189522063488758556799115136117037102253139947411272731567797725066588327784143090377858667965858752236091952580531397164203684458426384869759662248330893326868678612808873065770341175613975901304526296736669983761561180999505085188476666503794309371820041477428542354843008128768929929226327904114438446179348818494922171996380011595894598174942309750519844347748743226893771323799223124250243899725786836383629105821594228336531956473738681306111649722569355689290311721284794961363220237557073984424586804523190974474690520622050703720100744577956505616702323690690456917598418651947341166308454014094010866024961521362198115670941545637592702339239879449873316365887389930328218535968958629010302289028249023819184149639686451825715698907657786347528887203392554075398929021188955434235849737251114062682094742650301611136855529869521751140735492774590923289511013797511411712482484882649912194691336624020892396085724767500743718568610694592982406115030329214581978283802255193236507185084710109241635576355413122268191367963430619890696592725083284106751693119732373437070340650102269878381093419368340947933773792429663039373267354534652997491619339639729806567225469757705504259662098223256746660165690663057022763456521217413166743764843096170526633730832454675014609449995862570104251774498845469336217426258144928431457937160356004693724170050032093757373926453554139672637725087356467739025715470252362065839525868451637404009596246142250665027019633104364166818362593830246928401050680247150753623189054590889129688771766752583229700053734889916153395502628180408470452294391511104076958159609396506793695325667336376663056431698630761590852007930827002877064510006321241664932791468309024218129306540746595498459948558198227013951083570765432238010239658605592394781431418577551504879189998033298906150533826325136491451824317440937446849050804359477248678644060156765455043032692899757461527528843755118510399434927429830337631514902887323096135998222933156134609356390464680693300940477309140066193713456318507537753720749310339131834906600103466317813630945027834190216396271498227247553246112590635884517928886507858525293694001654759604025155638070685147841852885175438722674495839116651474212413485187454051454984778614197673324871678706095286140236293878040793561643655685655558911138948251230395536827100668084758168616434966107276921905795668574308696345410545480358971065815314539389685073824754721046795306077590684631485454631789575824471836459600864301668545542782536882671086252879183977251116708960945628117310556957642940259450230926969126071074772227386010820262135417587481060352755249990140721354205269983266160812829978920945606861545814218832796564399010959376939053766254481233657028055738929639120567900334586022893864369997127878765510677428162332339914578000931243403542360635128428433704161892091569488317967600981495524024868281119640050979282532034205198040567776397149459751199334654008871115717894372575096678622057029325355995628296097261504509211454874141393592911022448318531298487177540758457708787649926278213351441090552478104523710688262663961484801662330537188251360343670436672145324542664834613470682865134403829506062888574848454215751323853202029959254478253265902224087827055663622125311018603112536621180888973993344755366480801546693536461409723139445109229187313391354942161290400086814014203567512250269365542230271118524047148441821592439863713103290486897072643477777110672142955096012942945516052338443796805371205795554408860728761672987519629929691071151793295820236555817431438468331465361705145420063560808771276595687971593822852809457752836293415314568752259928303309185511875855022314645277294973303016387911547647981512703085855857009902688543727857889340952621003357817729328623862602180430697842736179045617625672963105995102830187650743105302131434121692724031784149824965057907971606734090228400358009916953363380665757255054522690268592473998613200966242210507508407509995403316584551432976429609722257335867936880742774565159863468467886498170807714027814717426116650137556688957276282791153829343078091609984379729381108850431918715768216446370519712029837351389462750670096199897482983699165403249281163072117927536515029370733255856497075070281112346371396173755470336580139496739628281106523161968081964824064181747676360917662891127588142381973154165120027002064925580167121363408335438364817708852898170728433255909559418169303909282019656876143590893314128601309525769952795872345308919234303265655602976017566040520175077332392300032212658102098621131122873827321156043814896997933359573500015658782073083937964015469370325097614406526708113808660532807452031629288988516397257708662172143923810041412727176172423007765276205930391063854548495677998633765272156160645553529676034754386779124128235834055790884936348461400741357496425996632070338413587221311457989701530473143814918125902457336591486470532622870793434848613626925226531480762753934014102119025885194115552545249065539447818426672053430174988034769766145141427326445855592945436780392757461829957725778864794465008774066085289026179286559596018400911086259322188550873421584476434130206195835099523998530150383570378332142513162283681900955747164955510119716412482442572640473552845101104025981266108275886977866901210187277321854847213168638895416144817908403696388693365634502883193425600528709254653021880672698353159687886863890300848381345257623886740141406064340934625990848180975529474484567976617618766157544688699156802236685317235912116055158118848267317659332301704110553780615739558483879325113817602168409126449251790370590602432395194816195671733428347413118937045592817024845516463648064333222491542171427494120397756977695751961646847069944276717890698835780889908908268895796630192816957382096980216391223281700922934799937487732542279665112078858592074407434229973133714633801434087948206906737277725381865547110672992385708823852105919578014054253929859141913198182182391139127946185524039814252798147690801811204711780164757067794730378349250020820852903998099936501993096013469561127169680458626436242226714648689102232265698220303653348232523202552998727074733692532384665902387859744861843195076225127865073882098638735948592234730573382998949021831858891293251552818389063307361717907286062532387023827919687798389546527092747165065081372412204074713402324198567641963174817777946337230255330713237630690598431785189783227110198059443136098796153196504968258732710964100046406984586822995491762701086156423778447876230892485333501672242874080797559127929183594989617708514696856365090562109573212200438043667800102974268054797168692087785784804506214023683707441059920870534365560199793042714408573343343491707834863897056672924166815963749549651005169287449394833516423353707416562739532472866700625497236363577542182537448356675525874350994239349932528922196864553887113633379354022631306891276300966531639231819145426469214940802249996948233038298933301857730637120432195697012230232880715421286417499534864619656649975448782049111204440914084336338036343005805660967325719002298209258983848076745746717262277317497977236417780994575919096465079205478370410304216558884256866360906683209895613271335316881363890442050116555958476666832685813669184279785171242697976355215736358241273523270024878900718932714892574413205877824439157735920444994266238253581477927585297705541829667086336900498592413925765316300964485085443010996815453248578796939125801620070118417931629255616284426035344323221469520071548814153123980748817509923791411232642377961657470884253908343958039999534323722639863618890166449747407889687052017772012135706723131593587078149310281433220522820836143961983803063422437062985903455825915546348558592750380265893295502127131911362547066832123379501200867107296078176003095251373529091851608754185314537631204967302003469163448274336748790184031704624539598396739183233919599753535746271603549758452209224447083748937335498825959654859732921805593272980343512020596790499923466448166408535083562934162219277957548374405701158172008761970862752169886736770942539636479214344747779182916346768930246865775455628015861992378481490582618826888526723416740879452803126492282103081682952744988071438282373939113166230794542712462784176431760988496440699372071744314523312194050507937562904425710230684950284427712533487221645876952013012926911525968974326599325928303658002699925477751638741706101979421896804417133399646799644762858739447641566030430019660221262668835388601392930701362647525843314923073458581143156969082434223600868972988907457312048408335328699721599021725337672260385090481874206306909747046605046564424073384034251868352190919052784068625888959030808147138888859875262490817458537631041155898179976579528572868914776174852337545321800150141742369297366183280046736777222612369879541452895411724823843223488786537074675865599767953002372952894423824425223451210105522218960886309185281629868805450784064579503358083290672306393267645362672408483598635408042259431833482954324468870702510602319873323844114055212068420318463943864948280864599443686305300599276342907973731360191775790156052347702098027803702464246979394892976607066344404179251601429126487271670867323445581118259914217822281695729850121687643517027459768718875758115664109969781664884492840250287768056704189560527749473357149721590357695922903627011829595792533817230819676097336600821265213654525371147205511988079627708774485268125545156873996816367613367288310597316365306798161682349650505931080271513227194126700676344754246171469134855752850106619137584719322237888465970943982344647844437822869298660966384073915707056382712641368357790258211492622022257949861392981076980818708954051696747749740451790334556334787958813665345455444209123092401775663292439436276759376446880123575365953554423121416147126327664510890192724766731760160964614310241643015248386033883184503831687243606897438600281392431981901455074374014639084318390317473261651765301016568994869233327859446883974833657406758244552839316502802004830251560894778710847630620372787234109243998037903081411150730626041724174333277193030538209558874723289506595850020797096041543837288361500186489994513193783031131785898332210969100347827795205032607456332461105936565284002849780284016510877904471135634839790786288068187822517435248682338992706318823236940775902660875088934850218829629818886446716011199609001896780411269752451745640161383326927142490570443039759167178208373048740726018342636205749267693927503474277483244007548984900094276576839515044955201339386215424046537898301789569573666200139125195623203010932738574164604053191701690879535700470651478179466573185098132908059920992017164620401666179907373229596795473053291156072770841147665491711534056285214893909163034285640931638231868734945520712246614675109455348864766145058535611638906810472573079118642683802507643221530688682876469203227970683843403728388465955557032840522434070509105630267093782164697907397537639801904305312661255250634387250568123479079342463814001861646403459684624777706757687801047953155419999602609979143716504492649702397954498973809632389718801421964903453403202346924730873316248330195138900732494780697261129465136526512008908169785038991332583760876542298755111504324317762021125620400170414869488682816088687985307299328068263739656750525298545458313501521108850249562566483101725888359399113613744893602317048943134091064045409089402041959781938196006401841208867005692670988659381911888268415771715782446195156357038809453836301650582232703716767840488313939366916349722329611970426111911553171152941597383748697072169285137129483637088623938467191644581974906058488319232574945734779376502871265868671609480389583236446161171414507956764900618291675280662382146307978392794806076572161225258953318347384358899897578166662786031616741620610064990120338688264267972530699217833130820866683455946437309294936546276039684043025554163981605055686560984339846238532038329300861716339069356592811826801873650639074613240005877881346020101951240627907024753097150440042997722522952159975851492867084276438038065765625598387977191481260226691021644803132602356290655622653335294372102399604336762816441996814182034351796304421315474324096472698456561263780710925551669154668436491957684102094526980017469182890829260308759051037371603096392478597803107525781319639835270366031106307119470612650385647022368060269765516713521421573460173113217851674068488004264062461849039503647863584678427532119927258983201632190552466564429809899665080513008357016920601684884132370365132774039782789065416281618372947015779531678893334050561252701986389043359645312782368328171373634468301696333401518554311113839392779181008021103452348521386426782710051634829715294519337490675458686088652575228281611475057285524205733751559235465682292833034258049941647374160149493868995253482221202446950491433475701135008578845374583141620020285189957885230715629609932276603352413091068256008610737788045053541171798470147154194564206606766193154386967991200577477576540741101507641067363750877545773495933341867010414009819973704146654387387049013286731792346171009897291309717740168613892268458447776587260433340377239240906907157217433006737957131436331195065563897834302925016773447579502572240674416204615923339499621356323625450706855796029346955501215999096631266777695370022614798182526995761834670634875859713056002839299331560936828358270589155360332124387293667591171453890227030072572720556279385544818641117287486492975926655846172434481857169872461147364628431739015010822302956400984606580958771940354039591533921034481084060214049949076777323061176920481263894933474215381182919027968871518611359276532519893240508932553475719679048381866386805157104736983177623089858530171930460731274413492166900946751147607596275484114035528291427488494391468279990620228815702148751390328989392389168658976307889121222958304887861810794775197679852223794485188855639656946807937015335149535871916202031032008437645838272009122697839860886227108420611453995661858863914781329026785075278384961163329414773166074238123021699900498673320791054173709053435586014502447267908829144213997802643490952955786185153422448741397151237726710419692974673416092537392832567891094643683539364783262975184395814110429439036539139539584939357256462066360210098892977383190525942255861827696142524658454237405086587734238111146050367646285681870052342373377390539173219238786933209775680069902461945211798333635386925175472491494103994896683776090353529154458265405598863179853418032276368157540839003150859097339694251294595724259196586966799648443621263367058251560851743605541528150364379070776254853901506010855475344513742472145688006195595644846231187088518772694132340795666329338814205115820598607786762768601657486018558829885969044453052832068964944441389620470530337291162931000518677205578583760097019785171528063051967359132197105345288102401060810392181918308123104850325334297023029864545720428534597519146043038160308977053252674801634409663735501614628108682360880970349221828179415811704531804990543482740650323333993141659615353601038977632053101394678257494723871798209668761948910224953708973472466658291007686075954875992261248037436284161056546042036323229140382885014917639171607798774145246905994707537102533155549026483357778882779521394438729485275741303074225337103073630945192926618305641573363925529195829911648827643352280472259983934905620054399387199095577097419870604224925012062999895042547094003174143324343031205898428504919815390139776437515614247741991188929642387380682500711259206158635793604995308822023415695623160268352803804014912887501535399340204668520560948406249726500938563977358576470552491845425558370559957451749206763550004371313351347742742305877368970218109116087025930415853275836289814444589045806088169001853572853237856893763744888926674368162817498619784855656789858675501753955396423928281817704688550279915920264609568971044665505040296311577416342555297908082624842133125768186529234890384158496896882615937471540019939875104322800661635735571657822922432087857678459116772073634081518391984949394877721944230730357169448548884366934970883450515020905903351456848739232691037246731578001325524792248184461584880346874551964087316275139563480642799528311230745056497863698038750236293580481775564333628612358818550976904623763168121164725476357059097969967078445098416948049140621168613261527363811162439260515469881190010013591491609889358056875207598632527336190662614086179676742117416654210511025620862101786103567865467398355909916339445597391105589422033466557495266512099801787886104147192114159266191478525159918054535031560533766572230121940577058126963640261796040098202767799315954265930017635345313013587203779289642921212411745183390551734152739399395316449194470293021716592396866921155263097650095841261453658017504811486651232222306525550229079695952470036110857897128737060607910270864986913892378915130405800262800977313567615602250478963081722915326906657537995976287985188265058580091116752978886003137891603150393769786612358897896400949797816889870640511054526036033991947605162029122260050015922159146929851359966340139950904327523983751061725695210669259182407085867349076563311343496439115050652138064301168204862807255717158373472859749665986811022603056821685096137371526070658417192582702330954773730222126226818645498459221289771938188370090614283234581279320270463553964752095626906771619569867088008848550018009096422679399424986152265409889549846374665011142738387862554447987411189826205064076886393413363459192016719324658157462965733349381185071003446643773085205024599633289904627316745761073405941806835640808691233194059984828706882932398445529105822283965247562880257213174375286095694747675682245973145101315198446423869429365427839226043654665330768540984338247740178029926393496071595467162114352673840394142691277132448333106345742144010083494387519128524320215727121046587149174382180593907475393762689303067475829178493274253692531231700702688273891676636788513221102333530739915331204314386937363948185743512880292439111487615763127882903550204892005266866878939037717180854833090957424962336394570974128777226202258680960770798782121307293301866905913674754310062278804017857623317031244730469574233228921912166597406361182209702207612355027128785783616355861941809705502171085891041007118785510102739915254724752421848801391044813061239227168263808605091181612505057769749083623850966255913356917121970316903210637066001263069753018369267438705955464990658181478450222611165094867497726787587266182588541632353242838096195694401173680019745829580877790800488617042420768375515972964149823107109599090662562436937914015724362393838259601417353112440454308649696335517093554763528583994927453519352636696704516744519418507385003258373940743261615054587755873617914514268732702597205281594988521310505401886515198515006370944922475881525372850582959778504173737012813166880265259925303358179633191721777634746748321270673264755742008057189043351593294508794142734441940103855296611529335278873783131625949406912635406764160293787803206709557136708221632185292926749666614732007682737014532758094379849171936747599316135194353842695716364894038193249104303172506852592502446432717243004325832046645415003715075800815240629608932591364044915177543780170190015995702864908061749546914661641394896590705392849561956214278282405137266186833474703261646843240149697924616402084372579143892518576026030435803773554356071696598875553643363503991191050379567063990565137043952777350660804527269101789498607809531538895144885850592874258981675378199453572884308299761424243540864550745899004901938372388730280877412762157580492419616531198463823128908368167762309690467448085488170565928730106558608936474214997655480383055064378231203247873122013590049832645635765590219477525410097483276008089318128435046129106751840051572332696373041854374435617029418406840339139567867611939342618833250830464238559014927003983914557770086511555156531089406028112834981852273955417798566337618824416402038053885954270200462068943371356355166928546663151216662097436928195881161538728726499722817994198397662297874193773801362576109339492190667969606033128061394988424109225018309346586862827461949924766375956886093541375470967445410831496954449425239136829710160323053621434970330992157435941710856417350220765112005701913558756134300025215779887225436008325866023656985111958475944876767820800513521044473617857801051700965635286145231742039144887122856334732416483259619025537196471411128573413054166793640528581445087118485372474404083934988254713391963537701897230200109628736168524660466121065938758630667672937024275338149460153449082650592086273518016103324824824810298252158717532984794015373923873727764164997522305287281789058393507385394043343366255963263924829637283932233453748514677755227698425889133281831669894782334461314409123136267795023520697009747955968296569891154280718694305126455202630200625524318594161782189203429257172764592860525330954865120496242566598904119255527615755912552667478695785679351008501009460134989374640276684042847458163288278346805298588446341117777266631265832508465638301785599620175451421260863265976293274137981465263630141599384177626230647021205728229513469878591990402882706227356367157562916880419233154778069121805458336948217984681065772103620278172949043906629069770251344151204099978870509979914354038517773111412986052451853399263415841058036437999228087013441802410663248922678050526736788578748848291921819080225764389885050645228603519998315820716303111804601276806704792074868153848778891090844786326989805258795304839256727775705346666911647699764913202853579882410783697848292903147848555583347298892355927587885460907989683162424496465919397699668859681788386486943459222719693376006494382798947185362332406145599146988253723078316221217096743770623105512817695829882316382300970727338251622574197466085135847648738792410059959104048241301856820580605694530932480921408158709752457671484335360701630102140177494470606240711371949251674495422468564416412812408560161730920257093320853903893532413970506188532377716875984906405853510776652855059994615340912053157716080832644213364838368742615269177932281608245886113077203691614756419478748753684367660378695389600200413425334148637450196979545758793123614367296244219931986081747301755456621424599650994467670553876027136298581927249061476865801285315101809868471377629846622448006091040041808991349933273557656557625964311556126203815272802810196511302673958123129772390497575905946224481169116696682449465473336129218150068023545249111094743787565456110237427924937018680928231822976574639838124066226015616479374208854414419525456615304325809595041854608273953946569868605511153330405802252932017948793346810077114943450576463699595385014046082876046769903784691802190970725698057205545195085355249837928108165379223058693561615315408368072180569521427163218909151811392381681473147936035152545170858836491251374162119859717267789881517980776635459578222627152470302049403729922907482165710990627776039797128228409457928871380147038982780588121934486323261674847427776850099608402623567305738241075758605775012469486151383752570015729550428488434225505271035718244301820651556606751007447078262991210893050410830569205986091764808398979715179414597513997256957320783101645101744915195737308008554730130606241240339537164555935203182557849401155056725015646260668059733508609394276696334129805058388568332810643601276094884675420448547795916131183790275602485961118093547952496097251512100088076394108164636796000296472504074690740817260287564632436986527747026111165561729879337233191956712022761422497556283965022542889839500694976140702753774238756470288766170300437965312372451852121573526241028899551422077699158467986257127698972003030157036251424239654332658952564801525413422840232568877182534773098111852129797033956975946005101069662475745321031667154206548694893472281386465114066833114246255130515419821826440520774297110431262757556779436553335560455925067003827772337772621886597733927964168090752147188402069133770729313823542696965955789658297204697403044322279638842631132466204554129318483791427729654694881018990321463392797273736029715559360228593781144246173140745958976396449694332462268426864222183284410324346038241809084798815490774104715092238734006521386946180501509621650842727473289719227973716621528388017864167115781104716961780415399145663171121841747864944508859174602302531083158761420819879734675929707435278034023863200655694142125699050016651041944043951852678116700758666762254264396584495953161222199493917695364963556980213072537688332883981936609350232918858627561529118713572628697995171868068451236705048820938735458399431423610416314519836767026249892627695212272006180715631775601270360138411056306413513476938212342483497959000748596443344568766272144283049583072593345534578549277268857876188647855815727270539596479657357161704081002503661182266459254991053663306529124445715882959206667502930081978033720994961702274649594250467820407318110530141106253346500821141450157100435852650714688272962416122798859461447978860388123024690110394466822079771713264707489840463344747068122599229084484119074062951420966598395383368949426728582051675951361080891967017201101579366135575579689845892364122513046539310167183439118388335133855815238970516913606296040434149687938148838708782688405829714791810922307177133857327459473011595762292482644098010331851066671426409516529787685465364049604192055852109705237685890094149866272056906605360847724495060130575511156515354833236695886046588844856477668137472834676449995160068948292457408402801433427346420031868540406912940546377312268833561190469871603244223873151498550355186719198741531609406718850565983548895823627503999390436980795698658949311173923554697902385934675719420560962032882912507688996566638722778592673216957826053997371469229289900547637064046592180777378411022524370940715887206093785679074101660316497509343685229616088643630397144134764658562756513431673052550395608649136293171443907630452066265564523229241550795250462845395133343328010181445708129866005769868730005602598994564174705312678030860749783480278637089787208196348430525604266291923876645440537138378628989833732086263552697937149455006322213588284111348766181232627643423554602448995338691010064565560097406116473337425831265600297821926630103181542074696263890173891975309125340356790714657403201350271964572939707006304951777735125861725863587219013301583660858126580028953236809367210642124884856404513178689224374569902779872613511871881860153798982206984512569429733949794185223245968100242797180080334243020513860196229975233362630034949281696254046808315467783472720384884613104169110838632199076993248297563119520476199908762051726686317734299906906866576207071926565441733286766917289611353440177085699309283874664492606362789905610861833381482964469241494500376364884835537887708901075795662257798412776546263986953179898471720251230297622031979104529838178495431588178666761918141627752288308705791244352820442476181001337583662396384740141899427694619529854818373299700691709610191316279740226993654444245387989767733346911419379681843291435074321825395565615039124701971503384765665872108871507215656896170913329726030454956317082405772653052740755738855547252099788564751244849341887683209114817405850540860776081712397277745682631811355768328196348295786036438705774147843242916534937797339298624973656345866130803092180880892112854350883410744259646058162499617339484878514556884262143313226845473988805919693697000565225626934322722778147107401634465831477202353650782203006154590728737350576596828498079652778346519577541193126423802838205857376881101218584698117670628271184993923846017270277871127564249807599047160506218109182556441332940559129702771740497821614653910644639000040860655039216230802692409547605221507034968044424287326740955081950242221637635344347969213136823435496821611101888045892148628161269716160396319304287485871691068289500599319227197560071099239190668470036809594734710557741414916590112371168123426892257969989711355545823348672906598896944399244265651783406433606783591344242592174618169697273119338286075740337454851875251058250097615389104075127277297690970096864066489735058682905870191315006783692947365101008658054000957645208539981008730895034224810155869486638597055544477691719583784356724011049773725057755553466512487720672869459574531259628029122487447543067727349114381319531007564508186261627433449360610888160753818227874596991501625187282919966787189512423946735189329654644925582297406416633227580969601348127200743145708377023191340480912196617724218617579545665293804126041444078128453732647388792530454763233685216318285026733568725433745573503930111083261448064343272325336727616928341446768567032551379698403542504585980361550445588190041464567032525437182438950724285782311688117581311503028823222406593137262812321718080594548149599226411884528973210310501703593054602831894302697946604547790146391007071857677410914751042794103195925937309941024410159633995206795207428572298611610029878390597695123093957263389527964733492934099762827353705735712039696374596543396269424960883032233801833143662635824781867467702033004184648942741186523732953924724054813618121703905951313590603200487021688731302466655767991883834475006050073856005349589277079379660953978904045028491720270592432213115827685355860817075374034854269896920674121744420411284679749840394998589442861515877731304295422079220240453294642401582469083495786863517542810771009709875523831818685106244525416360516572206146550525506509841675208991099205239939374513479957820923986374185953714227463060409258256232195905158918540812561677970781220908960028662334633236395638573711514589060963490368462949372198182259726071609723506799844916797097206152972435180151721735928578866325276941606665392686584099968474551379063582910075868556691184656860807033824409487629118702502498182803605931494229871581484178752576899250933902016081821646213507134427607399389009777358205417307503091674604794134669462344162460802415813046772474118908228312850715933334424200473668374438809793630325790248474634001721862809679977138075898185253361737261340563660327830810250149789188756806022690848120709320776912697778147879789671206986715373517306607162110750817070896795480335439778700230843507266173584689957118710051887345473925474640621113579340605761047561100323678063600253334249491173083172229137688691192512426596366227827027097516335097707416215269554737728791190280580386808806136533814075154586662587105931784880285476365709366918722103919905453460336456997441274501039281131343226876507640240744161379316554882768805657884232453935817918568612431347119819007272362791377903615739076687450599709087330615120588450101639819490469919472692168683117673201466569513759407071938954286247853769592350052507283876922182337918725206306150589361025871545771553420360753723390118655660150113684356673633959169111876057257949561715518565797345090658312604319523973043368174663216910341619657652447086862340612942790512732855604001086321812229097693793058061540955013561731896952158551626807620902031097790667607554037133468109009946477171389434921174330006229914359894075056577878900067712177784611427571947541062042512774725937033653705850965369284927223182571439570792851146440822372109577770457128002923892958280736220531397756471794004955558755301678976138179468705352350830543446092411026986632769032998828300403229162919707192360847417234562222673926907157742690692164755043731071070449150264074438610036352057612047787694664053063822008155850518952936736392420986822391876140000653631781951978600947997419147626834673405465556542662984770553849894992870802345451653023188763885706866379314953804702604492084797733070220971256234540071596906710705446706535893228313836699507727067901202734076820113426347415513742111601195740521259324344360786065594298029331086844782979925503435185819431264974142664049446531740591372018101029199551767354579912384411080590788385270081130857006277942880904861541488566402520573979411656754545353778235639075495708989769285351442562294863050792816579814483594340026445673204780887787072439296786697404521933220926172436543418830227854129263812275798525318538602731387614871727509644730287183430388574797027170844678227232100516793232113196012653794791774501604676465369642978098413890118956930263135448238198699754166517807088378292378819419144558276484751733612479651604347077314076716010257260293675398221735669950637101727872703444918962115461780123064650393131740280540295252233806192398975353615735480716670017611925497854729510426122629964654268968233032598045554047529169182326010920120340858137961380314623821461732302638623132375377967593799565329058179726375071655147878412673352857234812555524306066485963035739805083794908741983651445411559573649913140836555402156308979927148689026654293090051670809118238005255361970656417497729732013722674982150636801033114874432899901238068664190684737919056871609165182342204747431098991545346535549059941910458032885249192203066604593064566328652861033474485793607041467768481184606417346154331700427201659455263233871593015134908382951765166123370925179155005224756939573908389894671189271195948227234695655135456013180654940206926318344679743284728957575259407547859635226607923840796623319785838380469955363208663159022886837363471704611767861071420545194819990518601176306457447085961187681248573545730588209520993634637155418971750467736839680761910034085123981017025008381132425937503921813188889863782109643217638677943529664701851257699186940055583084822360457477978966045900047436584947584886704342754674862883483788529417838856704707934081219564968220078944227733692819591760233607108722969668026574759969058878942603642750774832071060485878665416994724969582122616266072587322612354372423420507041501759458370734657560348095677524035472721290727768611137649025692466383098785891607094011175556978829579399177806913893477263343094971842746001482728776384448291600678441388720944718346480958204754880719128788957076342366566235280114116629089904807273122699160068582247369143774986964191773552245315747182023043533966161766051905802219745082516224277495145219759481696387580096274859882911756928805626955053212683544802780606205011398261856638467702838750554520128594703569062314062286963513605173533657699052105836129297998543330102498755636286486642650061521576790107405254113066682065327519293227250660835291303078629807155322218643184065739581890125678850333956217123976644970954514156344285336017773958404168265435615726600970135844125468632637131056641584936377436567830465825192191218250971155422683671771263537942654207488859589129998799192986153344087941835450727145155758202571611350315716004796531448379533882118919123717600719654917371837357405320616689865036206736380569027785037725392507924953789586523346303220238991034909882099718807655255220292502118090548004345950832380596436147827625945209485665815194368679192366690964593666358763042551396693146985048457150563575590798225937175940813002397228015574678452674551616541460056627704753482304577922247648178329600008463121721258181563302547624934319433897233862123195540484263970222478230464476746669778976042761365487478501899542289095667493697428882320897682888340047364830230338237784818390654624888326973507353270925585153028195143529539122198082470320756041061130859660489965998861033415473454350911523400834625137286302245112277778448179505159719145726749734821158053516784573562035916600791920353685142248983786067500380310372627335128305974298154685694653602563686655170477566207722865178927739436070820541967876308474620059004899580490349630695779999556176528660607153642289156235914092674417127178420972865601093182666498678902867334499858625678108317933612386904835234839180767565718512536659793701708757934162620584705581044929792607120236763286458041425523380008547331677726999267185728168317590473291488024948564172280663931741202151019568155698151252767132353107418328594544569534608086821432441106359019169378950400241554802501745585994761586126002766515334705582535935978629161425540592079109576916389912070519001713626945291137008312343293508222955613599567644141234029348763810693535796760177971955436258386918196885671864328621379912651050292098385770322605036117272138131716396613856278395271564323526156650650057563675086447647778038560456137836895665079572484654371125832259965874012076012164862146618323845112458038109311838644012395702148772160606729287440471462294432030100908217393651076985105012333761190801813517705516969725219820485956539964411309298092896574154718979024753029470874804629448372190997298315852535850949230663698185494019657729207966173539736604323336031438935758969741147820762909820876799474795468079214843143159621292036789613872868466239514152010447128611057616122166834090319564126541615379015814382676042452748754873662867363166934639041273939975120157673556096248090069236397542376288162660619384139231684312512829401117044662285249729771636938295818931616138125202909733142071524181632612953746927127251629648486580460138166026484292801454364175955092839052642526229495627407797886005513355276405721064167435602247049350166267137607895079922870308285098476549218576416821167892322924454261354268053177134049484413043367635217104782732620591116702136583215399334109318126369116017179518664221513932894189445168025900049355021644202355807656917905748502781497571134436142406872932535711115652157466709930838421989220816644023408535610350084881808324844512942139175696548499331557134683878721810220510514873129199638411092741581088192326857034232154817564823394248931183974195180751660958440211174081775250314056954769334019475396336141747457519834645663706045524515269661415066566822670309771339057226565897789649982159461034796056674189350315593109308720857326597946229078617267072346231135576456798871713726166157274467274289460222669009212834580794253551254622843345468507390068976649567336643866053712478361190382837561277010789459151229474158450401651198399179411588174497258381594071926037844777002725339325908097212388322526234968698165292332128217067382184598130783539386482177025239143811836595239771070041368036131888970152910187306974417271513176540117803552859305288498185424757520512025051220262096175633097939138725028607678760880945110301428383812680353172057756417953362624338896138172987620704228344419301660928558286913650025529449141152230408071500112720391298013340120084347597842392174207916669747187432487789451819827398180705726491439202785640496460698393755683739388495367740033296468428802247998808240265619813869316990387646793911260878807751650044498700564920567495939625283432441830328563457282493668695162806460344784108452944850052830059109031651696871522212821510211795468111429040451003238034531514808042629537542457934760497472738155868930344281229296632520042792303449808603595657481483299930113289390817851395372716556908332820017196508845400818318034854644781461415718940558712939156126247648120737798135308250730950485707916150051384915491843379101967869877276701968214578494841699249215510732742887527319569048841508486101313708326403401844155517175320654226740684045781018936128604306541732479283323575377962828814384219570866191463134897952237205223682522397656043264781458511696284713526926718884173626678949812278359856426696489784343322836639425317840361512469027139423165040815537543130268491785425423528261495497402113494588629080396696925987407364394178732175389701140403669775201303753806860937220061213379236230608853346479488689848346755121669979692782564470583387706029717810460564197890896122986384900727630906317490034744601574616456852248847819886162442769689053481488893315821073466858865804017822035113930313746843817703986683629794891359712366274828147416377316822382591063779842443658571025753457216381252156513332734678338846706373741401512429496130058612225764743314306703062455345388841989766594259343409791000564508683683371520864683434434026078698711596712528579754820983572739470791129414376620530961366547043795107412918412149635023833089966519674569324813089620364335497059603563787210478000715550742434539313682510343974496042635048658435619889392306023922278494943051289556101337871787069595569606443299210720130154286434820863224688271331003799552140474206569198970393107103608774466598343740715137029282100484175604266512350357144148748741884172068450255830664617830238388899295685938778620465267955834289873277520882195668159860501826819829014601802467055290743519851770798371611160872005949604375103183852745282971166928572393139557993025933416316285870649735407050182328572906950922906712712472829536687361003739368757284928325636022726189387212051337038125655221598104341236846755992525421052159916788995340319894077907012678720138589581485875733938189986786851012647694799085970411721218891855349317336646421168475188524602689521458030020106665550125904728506283809629485437378065144732394845095252003318869304173565668509252108880530641398902206716228491001774833901259265809179794356356211291240972506134869075241329790427985816013003060367994265245308016296811647003853877185122175937213526755077544374745193068544241403289656014106333803631233806070633169720216008044603584104823794854789442503415151070825508362861662871094073596624061816581869823353700586047532975115516460669021068695240772485524300283367048486275310478754065643809589184682577887137245536153343066546031218438670585241287066190371261129196803335485350317197002183996244625174708058339115344583627358037292214151060936131926789909291141310300915027760637511782086285933748919072499424641727984639670302755060552308851308843579215503796010971778838643159925616293885734728943675474753646674723275084488452530236884823151026630524199658355045890860042004584234941367703369519076961976038243464949462056487761332650353839243494297367698823920533905334395178682337692477529667237856525977669175632439081896820498208761575431796692702398208336275965135648654704668885435902747846313696648120758891177729874563904135224509572654034434374916807857114649738319138512874261690681835198682625815131050943720308402031807594096605179661158627188964302222932697793051587983948495018140909347350177107902817156628008324326830285702984969516182794748961700742856113781513390609128427195701688260490388278324599603730531745867166999220397458536915985100354033442029253144243105239677954785487816931340907707899097700905280836611985528649327977833320882342771922427502856679537248125187242825655125650565523622879758080679934374860139726507201757720850225426007838041298413583213623548948204750628093232918804546230317971283921152488733780569640195632699929586157687091420754356658331224686487917326407928686821466532157279799925150322150489163837348814394222583726175059784350849531434624954054724963954620040444247374941670893617908986300165339098852348174054291392885494527637981217883243417415731755631740431001579982892931103659851346691795619486389455137442597131450300892703662326399222586407723102840996178314653232776925616974699553857559379489546551478269621216977487666662566937529026367019160615001877845213191261490608381272262690472143035706351508044364694672045209976302340622224000532440283675619334633763039077680480945260564275532299984750026617978239121943473177810095758049677768785839402508288063685153420891445065558213377595324091840846049425748893110351780787067631107776145790635220961432132492052506592578035798416042397953957537033675969919833812232700935223329577495531205408922502255453287538965785647120148442578973428197402153899540874038226195010790944560357277512839933639241583624153794644046177613811932028852514521271512394587173004471050162821404812204448207414262080794780335206193325392424785073303121538644098856935871597661031236301902416036788686889324093843642438417306098156142479490329364365955597121194756708396943038532016142041087414179596374417529478098217651646113993403052435058622201613054081282830447942942423148985614461771495375963458282551092023679476215475416845643603088037066548631834579388933394132463848897307539277116952282842777826113446212791726279804386580663708984926440235867503125408789219386178389228023648388289526561040898314169886124862633456505869121086217490798595227420273560234629420215246813129430089639515678446843010338570280803102598532177003291197973609917806317107122772665703758923269796205514012967865042754840176147545058797195184635957059055368076821541091635051699423083320769167658521885032885522659191287588577672740660045277205300752064223653029960424613105092572244294073917072269791492924697416565546083091180443814450176472285698292713328874432704887706446288106371338689760676999132802008305052044346001559898696968773016286450976128321212618639910670844322398733771154075792766574810738889061629396278916301750232347671166048970974802859211226670827148617409050965439303631360838452996763334841357524034209163961025687744446641862710053775513271815706985118292542300534674003801388094904627924980814047981135971843462144134218661769235636398654710508290960644947885469331504005324170549646098228290248480042437616364932065678858506056707880709227519516221262637899969600827381393840922736556740193558212325279806588666244043032004856586687156371931294469669116603570100580391167929147176093891782334700559803555500127820521380126648877915121654283235108328820255721903086683803774495903324884373034866712285820924231654806965574965276118118180061684393482767311610195413256527971098265457904772151814848861022336183165341825747795655573753199722768272064434481880016054880428856687072530401542162714242206836047325618641784219134644475174249611087066144791673185982347644600304442256197997463794134287202658119417473771972699623700965310509973674419516909993460684813055564470048000023258496868906999023660866286037957558322768572571552612938581146013443063178720023388448553982900197153229720762447584979947979158395186769131475948595188978534213974534394425917234793503889798290688048602257900267215398639253002837341221885669798929484062339779499508916860034144064392175632437776508159067276064367690018678724487130882113618698417518923355783299280755084638293855178532125898898612086056348442528877081323970796413746159506956666989980555430396457777516412707940226879208406389769529882303586344437400292219350974026372184703127191722686391588720073943089067060358782692453872441296431897681479739391687400200820757353233266954353210275247025678366906468115476550013000993558951691409579490550100551159394914888832435044598580367280951873201194480529427584209557184256478540813125520179189508827386681073130598208174925085688505487108740293743882785615449091609090347716041422681882162977422516920585392216402785238319087916826606209841006001170911815486413410424440818048453423675976964558326895879983411255227051351234289380465822110774704221874396465740854137017851119027085786220758807796708832646875898642424087930066086489262174437391848482271181937159451742976841285996432906601398237734229346945113804805965063455121411094524707105942157025998866754896946535951953322052575943157713604078757515520846468016796631025116552577961383370770552125866963867547373013007416329635775495726246658784099628356438624918962453879370540409481841089207277871978685495268150329345139417652236069421858517846844897615396924264989357671107028449554948398753326011943786645650389839545580657956680021218346907005998544674867837203430133143781167996887064384513937473617266333135659289834125277135649817150681916954724292079748146137134830455664775052214176977547686817215000367127199890409715326277220088031907063728608770722603601964511004603130259279021266126353535205216932751903951430880205620556770790504926502204114633333867171008501773554740667281338103551016644462457788003973859340117570299249779238450041599780724327812226572217953367390568625748319674990917085974174251963669659607583831396394056535777671797159776205304967759321362463615059170785843600536402444969263679864221589348560276960331313342879292385593653695035377213428838163311377943253822339300486443304869979419610331111591837086909746219635971124556952278194800347976543328624679090493285729453248137476430115894646964778963500689143013284609248423422172070512413558141868466165060950235142204101513490835975711678935155403475001353080706510732613550396695056979740073044162152361218855452315602862894836690178589811454143005245432806135785120578290611438622231766153462562768708866779533695343403257524099408713835573957608387335732921171196494038388612351685756483392044009868177630547555660007983139698137944981672753590671968753999409872051502688280828729921142663029935091141475942553161265270476199068042462358257722885672368018419780027952595221541449972721949964918285030937304422360465916946517093976734508154589461560460938834746901145887427485203000234096266007971446948152909530339551762542203532128034628421911495046602818692751575224390094202568287883279667025790933012440114584108780093317538858121475328735017567935268732241648549928219074646652589446714566548959476461660611823351023288988190776039027335440620786145036627765867321062383766171179386670845570250550121256469524111258170407603040047285442388977527769783804753527476843837046801833256314108819307237486343377231237472742567808391738759366385753487118140751776029887806707055099441723085545706933372211854358999411177506009400594964229470226436275623732337563015118605857216009093775739334071809756942554516504965340317536111678388875419779957550305737836181436382190781222963689351980824863523157532473314620175531575826009242258998475434192219299767585448416016424403965366785298173176526062325453351447566348114591474907627730975722028858613663014795365847258627921024403700479217908814900086882190972217286565986069369905269565743513891572006062800919656845100288534199590418296939443281387589284468824941921569555833248081578024761898586476149899077943056596302848526305555183855538567018509229422576728267736019415244464472434287745732911848811731856305439332205717220812998294133386169066052899104351000216928123620652318875933815869652467541027801013760344968998533154131136829036289848356704652148305238886523985822358300336374203145960033141476482128728610197619124291007457603412448096659256019621744836135704721491996876190097817157467897853788934857135492702985047564073115574019391611417449449839416907142001670411382030443313757820959253936940063143527016537794148599503944100674317177120224731299213554610028718775996923698395363894397224211423902184055680969609767582059349673016001858060681922991534849307025828344751514408712311507701283406297560766201061955736805344477739858276063082443209248909159354469787012512849369030706370810754388312405196882352189167594604038372830522879629175056819083729320053210753218984452448253302124218448847571972486215019357726684961007253519240544819334015041988244710968790193368580780875347631687942423991348936759322708413330457201127741289202510685686171808699279097171872860395164176038750119171915320115137793428212303221346766803062671192491356443416298329622589127569341276706663438627004201013717349908976422251387036504483475430899107555265611636794963554094392961242652573384306455928203765687814494510381779132236629643834660210073705824995635366915971050063975081331794229479969762672067757552000486901881812107984317715123677808305840909679625173397781601592471302170852434252646380108745355130274950492111553878142673857130186444330365840342829219969756587745875388657752735279546681056887263119666259447724057798470961022823958732971496790466459513626331670376802098706585742312308731737391234991188412992356755038697739045643701206397344500106991106657771293700923452569831767028705732594254036046287528773670865033367844738303738766310354163401686675055011187947672265743447056296810579037171506244413967559314103428108632703788813295395903815040647265496073455566627254246925469218907639072667124221533613588557486781108596597526199469802134075952756068209975618362385084811577426789307287856307770181573030747516181199546015170630909571983593313497274417923620715266498473642903755580519760484061401007236940214674108208298974479931650854931188769216097527808572548757492015596402174147886182600363638163704650286747110646595111279167626982263644948704332249542924699908833114512940913085663654435942360879061684763269171333615596632491210559203521585018183958897575729739818380446452466539034222197342304157200273106679649303018735593179900598135149227148713108069397032893746611244836253806802651940784537714570443348261446845259112194226241320155012834267157049764688088038833875667036434366711225335970150480712822973420716493179972036113595702915465756155975611440333120695554510021773693793342918035800514045684478335272902277118141442371264113194285734317261651922352702885472601823221753176290063520103001795413307317448774764171400232764323797455315258340798813977989255615669915922333087689400241792369198576958119613830149115205675470118469997171206837631361841162366707780260753161476985356023152029933512775764678637687454255617734048734676664895523667965170661461266120244031878563193731879919326502078152273473188166037695109553695750708350738554467788287875661516769127782222152800329750609581459106041956492252589737850492707805876524743258889811171291496772657608133567991048777483152898498380855424343432860170894412912424455342411636041037770371070674471703789906837601778305960735761881683977566712874094486624970002611102834888241491831741410768670867684561732714350349184740745983043358825020997285905779276109988259461650891331423747332959018146866405352662162123058062252344940406796126581130402838852941203801874439547593168657486160137463033344774008264532528834008641965736924964625698608619732480120335837818211453984319813375186278321637718404014990949077751478553380639197815950454590163760858699542620193996034101987050993915530762786732433511587717169503934447797439857336697894605984936484882317615963028675349387942694201953530792710439235041505166947257664533301624739847046775679169649575923430102153266080996097368117715736604907748197663217820821416734605684161240957185628200361273921080835545050067932662374977397818678418137615388106925739031705485279886328767176324741311536039165242831287123456311473811242647858992928859857366852486978439609453147953147476170909273044438254262225966154118098232210856138437348034112703438485693394228717853120687226068737648035013805871398857240688783361189641489803048596230621104259445218607527073975209574359635864800060906950372133312917262910701734400964505247380961031845935154208575268647958504582718897113377623696610056514645993346110148059226486816047171520950506382351407652096551703549706392016122178357981753269115409866598606134706089029914942178466622291232347220857780649352104307888627380543797185046197736793116318762503009938158358230330763179998123479310159274083828117939333226316981729538126707100508030114576439679509947292825090042556196892320875666641723556470572067872222702015149460053441759741460434284970516465778181572801485501949885030656820450460606706754389932404090599720850825223070498877866178540649506353234660208508544437601989139268381998269181152734502528637727153301752536810097440621279129189616505651963784629097996301585432450527133000515324499465321596532301657590890395579521689538679051312897027533416927573695748611953415651813541836183959062059078742420951254879765442199141880225131320822532892525377178742206314637982314783789258129672145999717065991498713570189773047223163265367048592918010849037741793072744434585803975243308863711794826294431454959909649364156547725383782894197944726229714201578959280531505468907393505362177052949677171665686967791427981061909095719380237160214501314733694041396067811603225882176400757912883018088889562467695855917462619694045043040466286790506896663348567345148902948359508600976520686639146732406297195691850298163572414972397531761300607806910239337575528074687211955862117557355594694120408978430251801644587630800718249556100297377780066869029480149711187127597344922237456366722298949809233365573546046236827729448011699161686750349133581737037779323842349091314897643678219717586155545785018395099318809590516191826272434425539753752575484735165022317871135150305835030695228116885963889598452493175062878874181372911775731190607718028488211817324333220768919736550668069760051546386418253232862440831850278594267087308225462636537138348118499323405331579912223051040399566045759699001278980559724295105240024945171908682062586213022715496203380179120351269151612885466867476652606348548709796310024024441057776068285418675165067741910853102903721978142760837113009825415536547762470359738850953779253933954184157331174230870130230670062362131363830787182103538472018709098350168701989979921818638128639934259147691317970396082800536035891679754298141888926014409776390012523467607115300483876584427711424821602382977878087014423472539131918780621520732914166458381051136178457550268043114377903161760879281842908611000340162468995600085608181086466373189922412018001517353678097772541628128278928576433954465254416773168051626747225182773941849469144725226516056086912171961787504422504599227127630339333347879666155657939851174473487797354163883299352779777449566392983610676101016867696395113646097979004871583633101273469087274170857363150648773989386733893709889063811274991496628122147717424559697165210932027589236496941568013504883326611563544351480247682142260177925813705249378745074067638961697175801501168268083756199213342767220036565499849002535422168521008636062702342435740718227962930077718068734164239304340568723064336520615765161144870481901639506252653122612923543161592694362610591935780086378062421637013837329831475808984705277903151705507759033513323182105621209418748952312640598035900534048597950491712291558046850875877974062421663271167778654578820952528291166078907600230058476061217975554541976459451978767760748962846003820818248472879968796187960822841029891620578752677636844596950862654018903028050164689167493197080524313138355474902682834655274945135847849363969325770676305296939012416867059131483480405363812058591073061980213799237776098765141033380950513609503060133180433320283961671544952514793168387005754669319001798632211023570537530767655648885435110156947867647974060891527720115596996341453640475657236492471384882872685329693486967011027077110935631949756597689608189909443031516551760682362939653363921482962929431781093754567380611374094159325056542899305008783675892202398280562972541697211901114319372099341733630614146022209832317640171462218486990728004291466619263112509591012349287675987969440489679869885425936680517666902843276627861658881362394662516043451682278905569623467057649655861446106677387357472665318383986804114009024114818733323164524713740395779390413491482451831062826605964076263904608919530242816654932446794823550226760032126837554578162602623862937671589086911107607887556308177056688044769886283976878565423157493285310326444121491140324574369305907469062895271184687077387870955737427487289842549050842280538171910481552469788782696581768321286055578225500728393609314690611401651016222287681918331106072943806072663329302643683912852068450347957760227554419360951408423870546855910348617772037124540022179010292333937732456568300498449669015351762190759511541265271600955934900731298511429873223205605731048783338436826676198574340633171839340549567230107581888229521726549685841826826372503940324711074776861760743572141027203974518114966482010742163197023791018283179944084295550945902326212949660303649622190779570335134494310525393352330632505421974571815942199787889185246391756199082823361167411911170066619753493323627417759032925771023829755587691975903872113930890264609483786498072508393950537202029645237140399568066476223639721224131747068183337431696837253436707195039054849182376839975916078280376102234290713192779389616212848072801994256322116262920891393464865239239352190372669500527523694786261837689090637913428532888928277313515995681064991680149651797844660375001539159532177812599043835925277458606188712021682615085488578803415861344672300709138889436375976651724595940831019868057475914093112873340418225532878327731610375553311349613197441479777027588764344775303799086346147625252071229717578668062515149033135571767202666288550141929881826809814584832492164980996051130783624873931339628443607376696119509265129205259029275333842916850307341243278236732199789614899331921076727027163667299837293602638620318452263159274240752954605500540536862030463056530111539831437184736412147829716965599668990951022919481454779341919953548285196521797323133185562791713113077124741280154178735963619699997994391950003831458694043357290132622958042711978363183000058824825663677214341137422822580391181769645375599474740782367091218963164162518145967958778166823712969836597328394837714750254700947816463035946993643371126710690842430349163900911429743617841079015376762521909480530647108875375980386203493523269435570140764158324588118068428599462263991910365276805718955348162491675857484682746765890290558926874961782663863585398821279770332273597854655972085540312304622401514392526750379343566712567808976990369133091684501092022273961176710194975889373759515127579409319107139538235308695662855992485618551624629611614995891094829797429253073698512407195275855898075713771848147728020796235641903244310525225939156635571890047724735630677605548396605158049991514629955049001161027810855946813291171533982850412440138953674361333653201849670598681916257375282768063089426057674137844988215726668488464385688578590794540458384697416898964743669203939702852277531860858902877667395233518613547011916337926651653232952981914874211688296405569233169382437163287618245652201591799551192126246854881351348134806040393960965630215445012574269872265882020883764524614782212307294316555596806790416218121368263118039498458189263660282654159723191060405375277083436347839819858409823724059521220960047110961876420088195482772710243436131395063247464158216790364697664465418665311024602841012602821641612487697708026930530943719855033320068613135560573759850164110913223783722224864629433599382635005278872330057898541900331209523948572246181535178563085383621872105316002734781603083337988162246163192508763202474266275735539094309194469009718109029567154413902840207057882704660172125679885792124566090108065461677480390724073325490039153976278839723032060458956218004687137489534106126033274052812611498912762426006228380443600205153826906205043248423395597002374806460409026570790033943320062680273042148786340660241891511475637290365908619929290946338330961727114858186348261644696955102906243665503386703032792367565735084947328435377280248487816362863444126909000006542445734612068553735328973310150782972370942966045270449865604811546359851865215089400584378951252133644240591790848579378739025749186576897741277271866679230397794963756453834285213591322379071073462248240468316243789981029382277644677621805642084513519742506796214574130137537076234071196191487409399178858326771647191798420186551769749770917469790626174372233732293363071087849236002492645633044256214299415866429578742348395413859776431316882092225710749455583542362286483886507245406050675359781424207037921627707753033018613487703403486930835961018815542890416132581619326326069229118318760768742922837745214062804164963366817437599008240322498031722475805884312665012037877859148057918541334061492287875493361696301195346303135562506190835635506077864992916520051972620467711222695650453870703657758412741391285014062939173511491750840175178315977099011090922829456872317924232035164972088250375100529327133879692005184101733931655858199296529966527151485539383789925598327060362186359939832046822306755339850230111043727642253929163113440405145144224289426520087037951884138422271428005908284285175102560210212494980891336372143119606926824910022469803977701243609798712346050410195978374236111139317414002155160745137978812147148449340567522869975863498636954268957317216687549198030545064493024153773654295883745242600287951819726844536282676140728884313921695425725479022650017053603975315156266988784646337383782798219699670369391369380713436928900998820572125821073036841572015008230504807608210029670218519119652022182050741402004333035140761426401734296690316027005945761302325159101828175835344213904621693452314333473442945655576492236396722570248078898082142450706531252471153720138511256302375498895626582583050403448357931802947869760705607793546801552155977568185242202915777734767143779361830733911123048800015403689416374076912048529152486225106919475564510446223198926437510484907729131855229372167704565157340757810834424049391736734404949336348757061639993688293293655479893983069690487746171069198370644642412947703076750921174190356141919428981477166082738360625212533233034333362809914581535102988759472145655625394040967977885728147925399991551151444969825542984011055772921094383299828373348795589738342866761584411897782551739171807273193939491107812293361417744847194839290527458028557630220070111946056447227087321786394313866522889391696496362781041267203503556507275366892137646634986377683723306727806610085265625495555771574536952455113672772355709990705099158762472062015039904789069070569577994245206059456683069382936662526439125140217449995816921242945310877261444849017794691328251228949883466799032414791383327857551058619276090286681536297576235748126029987496362158954283479218837846377237461515912831866719252593081803436933383957165342114333148967987466269089183918539566553751306343707684141761383917951539769169607604837634320534412598612709914353958190659895469283066240996478654084877123855775090555351150626177123803906982101225090867946153245077921344613760367921408613662535165010746413153729610710297557842054843578408198803784271153301118292690153936254423962894563201293175170014238546075059311079471152659619287785099371515191795551464877326335800488335557946758882232558080585270462979657537768672911085003199844845035144170775044291904241769050035315382347472516698555531314372617213104407067505274594944205294513388632621530996681102666293342500843185088062101558231961786448404068664027422379409530272534451933490680577786493834233431291676992984698807304210040460334335929967580441259498948687590623915810138477885781396100041008311801647399756451577532062949876423669169398784212717710424962064137006345292324855388103358019306226760212689623211695663699695976981339606665680396340817838541421507186611109964148778637199841350786556943273159398923946374778668564445853713818215983559131206466060021319365302218756648667660418958400357347317910020756931705049981339550463766026123555847739516343979760998884324140910595073580415625907636556831614105113599489500167671410483468979178920315800178895193621602498628384017737599881628959820271078542705987565050261927313342902952333916455683227875027184293133514475357860203979587207833719710979653235741895845534460384843129714828313734546371559735491695830878498642196485689607088938294493676722460053120943445774749374196059377814467007634490344652365753271374692552663118399235967673299429624494876375688098051406551834092539679567319103217166084375248044065200014907225386022237473259685934655604280366182675642849069969982066004183513471006789989980142993754849301660035655535546762250868186356731038716052474649857512787473461713135373269063646545641815249596768483837296693265514507294815807391825510125488409021050070156094040081907951957265040303310185238077098867211255214909209532441347496868540772808374054579308729754092578411956024519703382760468365297304168800273277702571080026645647632545778389514380077651630467537322475364450293111968861087045890686409048215068263049870287424009330069091601662558767453489709955385232452532937832821294043739935776799865248155117117648988017933779855139694409954117648819809035809499106712637280425808284314488880230429015640924640909034142101822345070776190489686838853209695530940793058685419838070127382876846537227200759111027084006370294151859074301294524488547117001143175516086113075890430525373058016813060927482747947732917319041941473980020901661931758340377933701216457287679904027412683207265316331311561051547009542357626943350929615744740934154841869177480918224512118499182647928221701644603579056856310815694465551398040433943973675103679529545036778874338918066319836216441216946981568144771614721590101042834761148265446454387807340561182872621173407176038517759351500932024876920423184593880148480786040006588669027809889062301006860270889047026202617439628915860669712974559534956370328528430482998447812128720112196374855242023389148218326334857147002449616270562289127317661547170042999421981503295707907334863896632786205503127565521823244935118141707499284007271940451104089890024989212621324736443810073913387274607191272420793473518705136594806574642682626045510635744289616692411953304604037934755762464358247457026298067558346950604452060971849641783093059132436332007419253811044043586135824813811553343934174705565750613817076877982482118800762452952429144200983796771637868080851642352201545739732006936892417676088893844556220757427339144443614379489414072090380279657767308648092954308213106992083250522769128073834971799178403199540009176008069834350156695067640613567486857156725861633426957182807312608729006471177174703111670641788327924359659427370616607385921730022674953295519994465995364250574441700178193543746769247225879330242909328318842551939364825597506044738233525432962301473143915774466597400743975704794928586109512075070407368323484478499892388027726249899314371481107644320159977369216299364717714664976568685455881188390529099907408530073927308145869641091309092526692029314602159507384554469418850954944084132102254958500928495524999876322996438121010746625041374479246932441730310875778514474662748768741409900914179546290032241702546794359067474258610251833385109175115408219115796527840306234250663617241924124929649376676042601838440500780136620890977609963289383857718998988637903213743672332848160319081321838846985620722282183969011332327221597500838513682489254394175819001636235610556613125599283873022092078328799446343790230725676636661178001220960500276807693187380289947527213920169939004456172403151427096366282425205804191036851798356126035275499641730852211049613286212068363719663376081551535019152518462783837556384659525428009557668951094454870836556340033022387873095745898757220207408025873373579885377024430254663885864294313830097412906152322860226775334576174222265123517986252023564242665947596373271993161676584467737241344453992616599267958675040400454096309184433674054597361730230764771289675540758100296436117242346349249785256177222312237280323564168064485028934941796453558552291116448235655846849987286361747779743243817961625386624731616480875553194325290339653422117810659651556038339881448717450090893204087931460210373150955376480592190265213695156623274010015489024662844939574454101400844549983333349315182316824125745588030863372220691393637465972617131209443738570067680984546811137954085729335147181814481043694069312353849715491264213439166421582055722195546377841746285675898184453961668169000872780028218981322485495876345843889264599462595258015461391264068359846935468765089477685484508180259656773795107780346985185029470065652482844650449293273513690357676873395965080306531647485809521747386343827930757730771497103101255089575765586973226837537728786234415487953533635021403462301156353239057791831720768217065435738807260535467318617909817966140130790467377998156663149168517961567484605553549371447924483157245281923806525515465806071322892856291784190522094167496004969890108678675489519730417295673132090057790998179580235483416697295255924383601047132312894953426484720398411125007391348326100929174891151273224235526041666280219240142134807203147755819589687454690272571308047896297920979592236462383375822839336515904239211647895874825529985258840632045489894077691821266056525983457845764937971658353661790906835732998498750713470176395350205489794603419132812330591416831159318862660401084842293456650143921800472066255645516331917393153355503062127338186935997813875448678937598738782774927239462663250003083209329411786871583753261575796884577875644880594598833980137505845072909556895325948107880773313044848360123343340542361704772664341340479623617404720797486039486425098949725315420215180895192064302685379560486387900679748155600014542394157684238412885883816285415186550844170872291325540515146064019362337558336425794857080044524136878757987290262597271288043927091950364643528080555938013438628129986192549251745999301514494378354903039452391698152275858835480396706137844478166162651372658685515075145634642125123883572270719608613162479684640350503130997411761202038761804590448190684173900713444264313144667143474094600846723827126542101484957444470215749293490007478516409734953866431868117419556234472102023245963773628421792079404339501508553998008144890672589512185917928342131366208657066844840340970304823021331616209871934043598644313286758175172918476817897128161201067826124014100494079859021674279819855513679102804638382871850047851184160451483021626816480978179753512516510872140761257607308311403348494445665322293030612285691031152199978403139223346825340461731962128201598604579840438614048795417866208610059631929430714481927119901071324109023806834729490586981576421792322505060118498953294650267763573946194459443216399484376894183273270896526743046136673690948589349131313256051588957205988998206545937454164735378330991230038117011717482382885541983575487242044996031220118974825884305908209231031264760111394677000176847375873490574818669692158028874869572153090779129566853049837131860624087273822544665954712223245739227669531517163116698698779933463104088099179348014959618416046959771960239332784353590660651681839238686182058107153130946414699179622469245433763029687762510546241175841189172355337608048939667481711136449844787880855475797996207560599229182319962869812533135446285172089755786825465935953475420891668487351903229306837593420259693158713926778613513938450660194024064252147129930748931190548712857115088201690483190499447243754858452671922218222021385820899262953002740213010825919692710079356202812748349262123088252962921392317959153914858494976747012395624642811931295982509785419400598911130447695350630297745912759261288806374268689247881714726505462716975189413190012909412512156656282117958349325236590344825524436614729181887816099608129939815013401374917122552739434138565003981550462557596566563566159976438856014242941893393814818223180122622785614867701660027223556037490966026847549533044726379790571346742171968432855977430048814499259953409381081903456760245529036051345478533982391606195213985187737223954989870295491511889313151789343196608535759586158366981106558496850475114366007882561304544550384986000174781319225198891882438176735266165912205301471726148764404589952211081138221969942139297483028468963822441227098642410094510553355565775579664519881031746078972787747145663328106284252588106596060416795159730983826966443717327462434143081757985872912853688301886033285571532909802879881535414315579808296977961736011163148260437987406025429563384530761048552501439658408610254766975654437033144544216980326119845092018778338205819729230066928313116512093503368892645121644937295570844683445909438013751895538297337609635422941686034833793638456904061549863831269654340372543614238052285428861176359625212465710413539810484679366462077170887329098954878829403307069027857460372268530598811823486133357126968868768643472852382773366483463379570449491596686554656607654947136050895575430693255706454828556143791222999206453440554780252724787435465360321507815084532873091498752604248270473643434247223242996836259105919642932945801971428425590163326340197350383734535963625463821797466645862224646681087890102851617545379778426514464262703417204185838971836849832240367939631590760595999017475953550420828789786548345117395826191242877090430245997054300448225765714269603456117480640046720612452246369168064608177502109326682576619063075306975907964298964430713986592781530634284547799187966009925358744102623570234292765772390866490821339169985934877565869188077916080554618587863072064238390541723417723546413998701720762264521237482559407748085367527087538414034164328097506169594604261178248318575866399935284860691392869176296532723121369496916866785965045535202154916021561846484702479990355801349777914403923893780081741137787822960166093631760166533075466082230434518647555378136713526628968472547874896437106887869298919052510125719180234691685197412024437458427548480723485017362913925109041051071996247154769993977032751376359321840800948108515841085302683976727976437107494201683407638758174923688426877571437070303454220696355651833789379366357398239363396636445282359580080394508621121221632552762969220099497902812143237790092999899511414274727487798573758779935859718605166440423201578244952343530520171253938791807950875583439726696445804197502700031433977381042168914160768502061598839049550958929602891361749830937386583653394026233485721762595648111873893138852158096383272020741342342944611621002338407599939276346989821012549865590089151584614187604837125474715423365664466350207419576836558967023781309125175705244168482787325452456177961516150256831596149138800818326248236911090091238038747078161658962515139130180599854312963277146053040598031999933322105525136465470038432026565123213068122728471346970782757393984316391925587722352610792195589987171884105791731683802191167071160571615154127533423406851165919311067242399967513840774376372835709583242660840904087720418171736921140546272542028511455641499625368826314668543824684017168480704159761823590282305880365259125733245698531054109444145669191843514371377811892829903296348139624302217679288954716552503889991650789770724170558486257911984764234920212695537172243206484441887608418283703021450321464030407542215965376311533112714020301848620169124070856957871111492774915825935085088261569512464694199111869582688556378090317566839038007560645293967642795527624950331723767014607378549620769152356672713239547478719076856374692799553981489022927825607291815980316756320465614234591134129819966756874354016888712080214795681372593351739807483022916190472138137127591677876476783268849263914396563572837024694185410008689647039061314030591123628604699294425298750807186324431586598226677939883593946156685126881823402493115872249852845256687689182943834306279039134152072048268378858889715701789632979735921206257395884084917705283479052464779856481705890434352789138374388255538636932998378808644050088534260715384962533189432704423228718104941725621260175906162722921086359648092570981043899116512678456291828610390529164026345763599312226921023170925038522232581131418404924553938419435604721047966233048513629810231530242302870123181692108843207290831213345990937497736020360126590526661888123021232392251937900713683493854671297274294616201944275195878916880395577100608466224236641261545219674327744605618855789309357281642585183937042386823327207746409298937248016437588685402052587037859446354365875046978042313967763706070563982455616606152993503437627499039469423908670809743223165048021469346700919256816797780646743191312926287538306840848403408111013852029734933580309795244659195913099834659135214709494502090150279397882622875099045205609707223167735112476551120610452894022650239472612636963437047023309883042772115863176478056985351522801955135372364812739827583436351373120111173202155412037225768692610064971573672826588587137457850887889147915576352808776741018275026057900702231821071007956753599751310694282004916181408463032314667997297931433829564978776687788386479854147632453435741287681107913180562259035282053487133073947689766428690428719132303325184139524430474490068671872567995362187264208933789320719714099844480472815614408137127302489846556660115680699957739238268208837159808407630622722176569498420975217309267816635831927956066034533355224082823072697468831259223768036214448836143589202443754674827241252831541927014172504646884507366133690727079196956356446189487695968024264967937493956821546211993320575523887213353026697861475187824133511283253773577684704624412098106167079750245779893338116268826579431807044679903610225949219346743604506845542595298605225783788118100793610794103557443192136496655437601578392848736468370341146591613973875823623251826682572756534938093259653245931575013531718771970902399762082843274309725575775869504536708236880957385656683770165560662824619622218706400888873959781624381273446551728206434391898262302807397385246879243545081019713972621177415204679384970989721942525643043044336439394931023114604387422805283168522862153019062983897398921919864106725105258133849262574343407609898613685743857742164107058005078688935124184628794197117752730546938979215588479816990589346398267539685094614417790012578886898780706903400532704413748962327813044729959600522212022375571497293940960278693320343721477575596474983481823735741010737599905468590899483980302772361614071159465814084804435183727677858439863970326020211687603128946272121880533801181188694684789567649963984942127208316935217756038563946599005465772587477449884151794102015557197597399068672542569925992486056263800735703790456870407096323498211049448643554440460633505435781962032839025734740732035496888906077379258414053981741441594143581335203799799263410029819148965203138362146680632411520638592735161766304469998730874324613425789596301048570335475068641544615031789016051613421893779271242291620614434886346992292876193052418716601470920186628891994175445215538425209325327193264142384823599160525501295478364948035164130045869806935217605801557668819651564717316799299585309181327409965822294370333703156676798370564361036796933236824659096650300065079656337708964697335702384114373228881681351297897557349821763726147986138549635409843814358853055816765861819878488351708935394200340412624422379273040920789004627045656725127295665070146655684700144542791614735807096307463322503506148710210321559641705706939917528167646186030457307295115822907606993729751960349326610308896431388433556782740232942586415965358126634983910490038014110203559424625073992557635167132933345886273313828276745292552399112221945076518842212850030981342309145404862429846345257365355671091485406985237969889339241906245095566542978020759692243385096899398656463468039526079767563823675394067541816552256433044760220814476424979688530380116854556508211346374932632385221786477639447571234552369946999609384615860964325015923301403816257201533417349405547663800881988307277844808100856419332361897931812397012009044013892503121249461861844523676244398349141597283550933637476611046349495941931746459989283000763992988517844301799673428007564685687556849937637769018300736829670169819464542413391400787939078228429155658785452520601772852194696968639636375062097151688438329149946581214664976792154475846704444856030783704978044012793345383828113135348885660697931563612654425855038972220602715616886338098641425022332030761357009576537146001618635591922260456618524337457254426632611973079318941327173148338970073964518159380614520785933757845253172935545765714196109634384565321543535661386353228574139914728166039545195098618341620623471523426833413094423692239695044894835684885262687243276506403388959195263818082818268378850666391233493719690080651859767765568942407053257278396539909651652515564316040910411316651291191179309489745897430322662114561620370644041741703752827651281317560792938670898204343783479049886047541480008884684498048904049067324213163308803525637090188283417826499718784884971131462334345458573837390795140458295400002719032003679673574133283020352882596986808001775886824729616801013319615967932373736339895281413904436421330787093577198678552606540583561934364589697710825854686603996303857177104560981732594604796407596100775936599970272257974650047471624813124643592963223824264434307591738371656872435935343181854393053629618923124324385595583322363985813965103192405324718919588903091576345975163939452859668876216165935826040307130043164242938008519885850142703133380625370433735955799110730825647836433969055106173258212619492643450949145913546811807892476816391913180058522144073724193803031492798489269908819786708633918427556727743767500853323836598638468696939989665306853605753602479801962171854065681060982833955931370651107256846317658519395686386826991360969529035776040970294710218077130071785500473108419513942734957402046116453720723191166396552824175003783849900043578361619979560600134076153951119736073499805087772473683013081909601196776150352876696523747958682034525924771483151476834450550792492387617342545922330926262614683014379982763741081189829822901774981142674666401660099697233766031761285069121206214432863336454805620494790832636593149790480814285937980432598936218843872250998162586950733953467910571630442925360453261011465654853244458322620042942442577820200308230086743515988725589364013217469451249243632777455626834080549017083817640039030533343746103639414812759626370380509237390406414126885865160366532526486582719829600994415581141557098398969818840122739931918726013628760493975044958129574440432352541434225892628624357224693408871115478406456906926186146552683036043701629288277563240541107404854612415356166019457837414942937790256292436480599030602132468266648427898743525771846894637072789544735140838277930321752496888174754641707354845302528968516568560379528103055571267940554934411847109139777604123521753642773980256769072228123831555812238698173613142331790918591976533678458815500242870140853928534122652877952322065790872215078362273534043113216233714531218112868558766550915177249783386926261068475956068330719276384515986150957430947564185440128787280398021125977146319885846394226013016363196553510907394133871126803630734204091555938993270028757498360474935244326764759059264935323175761048378822630598445603754632919230698917444199377704226341551623594961431360107773669177969763316773683659078582351513015823440119845200362869095765178740467749902232787289027921129226388985723142297539083596971118537336480750251812036865821373799096342257270812271137065102184118015001776668404067803434521176623219074061323537449457178504198234792275380838390573047897744550053706543521428335989788584871275753460569731643051614233510449523361657867407163978447087792380121821102351067984228867389582656377710091554797503178483738142544810281605228076907663955951415060981909305630819861072138264651209870035766556889832692056567458317407951972175444942559234054314823674969376214033759282200727909925194140914067996824990573317960330194219315729155525538988823876215710384721608175747117814885128391194211431400957272687519826979640998064945088529581250160192365330032851334228768599119126516472000409084592741352534493832534315482701856743496922251084756623865521035428837414953708871404817245856120232724966069375498836462584319244363876857257729972893321761025843388998857603066055756218174011991787242005514810569322544466870025941909481047565921600674060476127538411736068608138835382011114811316884350896481140405681372937100221509524668597416547660817087110775526440886861107128325269111351700556951611830385950925570827523362693299052410182670893229131262567740146184142867659134712931640170071578785472098586305699084443447165916035043218282532994032361849468868225097573997919670493753644331045030434656571820713801436727978059454869301002354102953464569399981982556128662119079595341068163241867288828126947560624442244801024621152275943538153854065951501445580200557956094284249382068384694995631371113006884377586427264747974909778706498446544478099205865996386573168749870100808393171294146976520011801089181365870220739869881776383369542153515766739364528100998534670719915724715662516088816916115376674508692181891611850981005041196915483031742916858937024986381478363677814381825600988784182299155207648449335749310189233418183460823031581866001891561346344757106513380223731651105381670201117520852315356088501379254898827354985747367270001998160087979735106786973052068466996759546662259982076909202892324556507695491649546236706546460420881589066279831851932718540006115996634118430068517932476375887630686922284940374189574704717941617099321971501158589833645244612522085766520498995089866862652217255656239455325335160770650871008715323406197305033667216347874826488463640492195029490850522548099550612015035944920491640341193294027234870486524964593715203459535016497945319853958603325029637170293701165293647203483718878825533868947446693848154064661009637036288599656872788272809573812240716663810024202860632639356883941277932439694356009015186795991554209731745276900523801514468086119768765263304640397382239254998479135311686913829835165212638248444133392711406095132162738213290176522173393913943143735497945459257984515842170388768171727498861445796550989986276328507739214833122964040243796729669272295291685286591289295386573947314933916039834666250387606176313777580467723385201570191671725540746289165986533957515544892269792685849505146789854147745270745180675477173498025035961408198784875378591744435479218246587563841542657721125093358677650359357568277238367709817118656884726203870826181524902384747752926559982967452354788981516567848514770289718209712941056877385763109677101121351298888766477938705552693512488623244743368333844695495277627864466143794439683943329309810831712426578570976994507083861394675077819362397474680872862595383951070966314806820005020664058215651462784791709819000757732488698791308168193965025474192825487206779389778336848853588649794848777946946345281901247559848748913178501429870504418608658921359661649538920532359939487756639422416247839690501513648307072193657570134888395527461991787710901255032493064394766386108388951242315211186894463744195425886837912461386474591741675818291610373983752648488038251449779415242677864553014990231677035147128217290534378736787883333295347976420419694404392612923281122732853424643454287397234933886815223404881559055525931021407823772493627641079236915981000072751451672971093832278586700445260693219208722268939729826588672790166950810420914280551478952544797647224491164795508742927229733873072460246056858587403483530382995934728655118088731348627284441713548943769051266559769059105391410261606839639325893028588723695161200302314047577654655195828173903949163036848155615588695832470098935704158880176001423639230440802325276588218365057017203428664517960622295830464559730505532522613276535639040922357188205821157855811719591435310521787295825634388617983581253546339993931990196038613924957154707879094317565949099540882903798531899147951580531500035907638588270644157349401234972888768804424570013510482235999491390708829085785216093365293687741026292385385717326555035603209742609357610374827992157111925752314135663604633699394360532615834606483530824273043674517261794814533967074043035572587936917958406166380415624577719770675724964915804745739789344606619980437802907843334324511312345847189353765884236333162665971539089038726313055753857152286472280288839923333437983537296517560025643055381340600686641983678688215574665844015573295728820549780135984488386508072631601808823895630726430377770691137589873998653868688531029853116162773599022995448362811569125547193286292847159101670476014772330140123558626005075570092367863729158395281599236715853377007917025667526915162107372811672322213106319600955066026283956550121744784469907888962660899096915887563044357514367033978832343023934324884243259333408024350300388850371544736039152318621936738654572748704781927050529002819602681054508955901932013361639987411382738536851104037675856501038586381164373474236471143389829844714106983843945556572587132509912890893253440591858617338397615979071039132710081938116126280277863521161357525203551044313126197789845513232193180218962717906929408420799020554446920455233651267685823491741543056006300038451209240026008778954261693819326860860476718398868988322310695956582250359034529960752832810365226182991454245324569764131497371558941087310203601098983123682251322814536878794989857583354061183598070572680575922950014106376133274346783484800640237780583737999479751630182595936179769791283230220609714046788661817506015801018374611775917601097760145309845779888580689573101340129533147295207949870669370039973788199595958876386124571476654504604086020986218476972512026490915394354314986132849172969728671544775480562852169789563940189906393575519375978090242258454746772604529592899237903171077938561335233645361569423804158400426815836101052064215735212630103995807886651972512890746949881030122662383485522650366942430845528864573026275702789297698747475413735077204568913890481680339003957380129527853894592994990030358013414359631386478664247376241976790747593974709622648936499154269014711617985766544602189509318204570280490529842897536069610378601430605107444341843571544430603272552450563571594287252810946375590855859198748519677585997363682729298521924998311341971783412591532184854971886040152177362628579301937367608062945906086372215208967286450381653955440170451944244337482441291073865134389845855995884557098627605117666447296454314913085334932164419538369998446626004104537625912225890127412129515822193774244358461580388624842945438923127032122239036829229183994117479640459505114447756546658613665115973497020183625203588638519690274765413351344708823555685611478677790998139655422760775323331391751492143130112029803434858216952425542647943940811594631675975273218295987427527480732533263276140321524436580407553706112522392984368690276718567617875945877541497134370278993264986953746939863246140463576946426827545489296019817907928604125395422168740635961282024461757729759877219968692251367826477647850777641571555437208116343032759671465058400958697019874497046215581941370370377402658401939697422810872839051802324334629437678948152504381252251383499900301258066352876296618540810829961568927541242820775795066924516546493130286112677377473837715282904929358482937075958331298285119739040232463933629700529198169729885205512364703482186575061344127986112640811545840202399766672544284194300703065013751445126380053376824730891047662288151675452730698276082413084522689903110228296814774845327619932832210190386803764530390528934201615627550887334916928868178311901267314421142177805034734968717253373177946238072490375807099610407062532315894053240055797150724176163318743020630443636528099976403350080941472067740910975097592913523729127265813927437145008748926051611286499891238105791034823823699217080941421446912573670498872329044197559723235151954300304923975190352107417638183400840676796525100179481050460137550275516527606151190483460732057422121428081527663872043783396183755348932470674293532498789603946146781247389478278084206536809372611302445343139208456199273411126718416329072265785979606424795552040835922903075153946089148533165362362293405052737305710010291388292569049930832595692025749242310568508898095721241296466879207653081279891124011285336446930235562231586651601921244958717691316785679472828192081833346953747167224723473994381233195541271333746107508056953655156722205104279197265215470657012877164121881852046808300493201133366799771463022133490307125893440685845524993950824758870268282656621217767004926357516468316819758167450368662218508981852294451673638619011447210054545963212817371896921858946113319171116711259847143962413649024217097122714141247440467867137968635330173023967623752520720215583848331766270516444364855566377542340651634395745003056525612210446066334220024692587100029212796896652065969164254332155433117351090061720976046442405511803061418226842646217022916026123999138248975218214029375478680004423130836460170972991391907221450031927485032000814493027925910728845671882291095419842799320749980892583553463230182939985952743538843583504611530788305392425645068354240966591722825364870363889064174336072345075800998679367475915145376177479004329670147807953156228974785261641723157507361222733609738736372218566125192296385918289071185237432627706343386582189213861243933225420968070699337727750575395559104128742227962556149401909536209596952359172779991169688249780566317478063432504196461156980064874927709888703733724178437241969029707135791346284443569198397787284680537010828880145384258964822894297831025724706487860783251013454191611891740485043845070930127369302003949399195394022911254377006179148100438616695415870771008335012832112277214839302003337017795355107854516326866609217595441392967777605077077036603146978572126346505770915274750838414279336550157746717108674987148767411981918347431252944091043907935868540039144846365369972495786186535830059222153762730249325023898305239137340388052217432964587798679927221005556272017732520126367616480095630522900300006669015366347871985267385085785421764325286692161259307902942788953249369806464425320417327921797349230320856948837807166098895308708746128952722486596378860220381264170402810708900548832245124920183319241716846213574077321625802004549440250595850229447685092483696447746055812715305235117244155926090925922287482618891449825807009076862722792925246548869684573668930631468031587520248396774852108716328653185987091272842801570630815987949386443937333773273973286307346205147273589928294221254154486205496362634851112398550967061936244115128876135476817616185927251103308530601138950244839617997693141977627340693739813513893802528697322624552633767482186218814814026019022182962655020623900504678889506737221327447488154001556485759416727040234905608313878498266855223338696017179015790665781401359219090305569713869465513062340657343825388432048286564964164186507506359022509468389232188865507152857088337021386928683273808790625209696879143039620500702861407640500051235010598160682418265278350094465211403307373228859449145463387205349231726864767449050727848990894476214997758924360102603717426004076180184246714783855612845921646264981649028286977175845147162098267950729033495899328627610475631172989412202354776152903671675155550627009357979977344410345239769775815324614305080671723351103317906408203840779045801958559732908700771634293474671215444987016133545185528809147232275490164200520922061805435604390201468740008945354328322150582680420740078203387142256829082005754856211952202108870907225376110030039695644748277762150431843404859458920458695966505570608789231591601471745848903902165216801104839778531157966899535555607978895360817041425153782266582623860371632679765481722224588721727127053955399260266795899977795783069286250371137381539253849670744901513144366264333960366812749362365554969259267328732579864976732458912973863285940341611606086939982302886217704248913214749141352524121754839071127544515404943345741148499539193482952500361999877858421578664387306143546284099801681499821534716956439562112308132028306899383104040731479320722493894944320430497163601555282254218523325109632167187633259156614997542905298663335227241544344176867516041059325192569730748129990306577044230569938876178944118438523632067060165842708888891486143577381159629896267302948893637972827170556812089265869613052848525633340487759891364114294448145917544307877434468111920787051413894855143699361410390861561078278152169466546271360983750884872677190904579688209972350436669440590436013166946100514381806872607502422805095628499461422900463679331374098046191624082315718919448485539122704667006846757129220911676203681714329809629073646806188512124739759835471901963786983072256470791590966562470852063726566512595986195379854966068481004409509385691722075039883446810802196123445116406071251521540393641889664864614918186918930233034029641464750854025236106415306136383667963967597837810224370248410863941910265704938912256436618805660968620673409311650151918358896827472270675919913220445074750847482803953687952818614640736750084294562622333070036769218894137718281597554153880093911185357182914684797006694800845963214615144280351135533575140893083853766202844216773413549802406197859880422327920484018177957634055201137708965260832544915668825564169643042745243144705022822626770211509032570970780158565317489811090405941543528953656748667773078351829983980655612799317227243822446816207163621845200730841461499362707205299720221755957270256060998192661470749230375418013346774873998966203899985919092333407361770176653087797127464143264645973816285994585277349223543036121305747886209003578901377030828242652391304055083954632433632638974692394998039659011752802280662141749865339592633825105566896798708029158555068952976056336086672867037119624184653398730005684426790739952514704303888980498918874400895846470680764732622445909142912661034333112721938310762382715290380010462155994367244892765096161128674620315054007017612334833120966922275199332868175366885129781400229009271808290855475533029116385468937098969984628765922350785351588683163972907652999830169068761511181941575304741269636739401714094772817879058315337069388642500032129879854489471893362961560792736919454978748795744261094333532224050565441257598083915222563824218450349767828831749562768215061041986776638221350734238429009571644784800341284907816267145914185864036170829337845903451575258512824368534980184683765960382914076653822925579441329000367398879671163608324810184919914063789065913568361363848081758627907902079104681725628928119408764187124286002252369301021089815527682202270720096898350054844476102813363434655001078023835106133073586148797813447475828028293953441437216994258706884902091549575531015625127226847271574781698420930783173921443145748500650067652319557494724843404485351394856154665239079699535954886804298592981890224867962892214421545913392170815319215749280147589101245873038819151399733279618233266729917360695480520865399465587653334919163239441584560440663595885971763774211516169233502942800352826400921761205128635756383451863514091313590120853937690189594785049978073822435589889250625200580264512097795226325389124331737203439480169157027453000482217486666534603645669407608645400804070403772316733648617324345799380363216106274494580098398298304293887842259282292635152518979441292783242275417094773533223143052535499810679977540491672946497087886170240559246882292613101064267280586327028347321712950988403402348688276429056850858045201582417981606859822075580264503967590918683958059624994926055060250124842943952297291085827039546940902607449339602094384160474216122971050353850721176425800813518369433927380069725013024547448421374791547008188685433608141680050997442142127240284210816493034689276169294177428177531739237467707067042862131344801681230649191679963301400134306545707602721987868727727611951825974897125361643666204588529967562776422965673765228813735952463887024566048885857834327588120327966806088711954125739322441686765584606754505872992699176852224518615179285883530793936686087566294345334106429536610760508836655603987658805863755066817050129800020596595403366159768006425741102019939463037366077736922585155422140860892580632798792475806319359228064301291223221128937577819722153606646360107373981803496162337864693119531836273161719158124524490108701389112154453425983737871396620276840304534307693936594298201944997500140659943362453781178197443136132345800793969766246261307960930521904879843545417609129007761821133117633298102095311801810847571545126393908392673665907848352798982310841930770318363242520341076656377839593253425489053343787091201928693709862867940274314266650808780067238559560853872719454967379829250320556363106600165102185483195283350853731574908461786794303387584405412718442794506983795307607036692387557086496503755271971798963971776161548508823142183953991475334485333596669811700160891922868357606978831049512092112031091693487900774178704613214759414189188358883702819734541349162902555222829541341552828857327254713958641948981269285703245708458526832097725715156229071437281631189752566232968262796134226536596984422218036213999716152173117101978984412272149539624004876749373724793003494257885132570526004184337843673223814578483797673332970329704859499614892645455536754800097522166895925167923034892501141917873665365707156734278106739109693985488028136738813491037620981427638263254169462911572185264875370931777906545943815707395193758265016768158684855626837519042992653790902942125876094994838989087377633525798980078533207637333352776015302875256336581301136313320689038033777135457099965061372967374371741508494097857001628822226466319757547350394316494071983869965187941185676759741491064380539526108548041305705073959965776386925475926332195013678896603203966177908841653890504148475127523891108510659928314823375566059735713602521845802168868523768679409601803026708868217672258573636303283819646032181890696611976164889276767265229102105579854758046006519607706146806072664437301196878347295874303272250649926002508965250094380166082422093881253597182870599559212975429220155912144558006299618488411994370146653512086901643601503123591081569858383513160051814990406903759385037180377441328506263382416530794682370174326490761774280945342835313638457351479533302184138029662528965610267868172886798135326669777510344977918732600292457877549147461341877816299680756310751601683377467687863721754384576901688770299859498493512498274206162048648010696310642255520125444958234289867832112313964466547279858051290268485758473298269017734447911295505564411771401252747294970754416320107194616141046501034158833994840906854222686757499210063546697291560607856605076947302342455888856710045371957409179018569784713571027083830112642392439006815184672966198522188217407788774663036484554573160232476076317232488769348614645124340032772554433326901793343418026751552684670277489568998980610200008445572921753096716210888731502740866907329619777202546272849327931803867988840608541725666561105995964903238509455252393181612781721342107782098552099908504601126999828293021683088608249708114562948580119360478894359148482596324401185460749936461440678098448045808389247488108861023526684847041199353260975323363327581169482479389622517559942052001814615124377035508412725461788551465580516379915067435192261430034532196144462884570445329210234847135807692792596242631990287754150657578970184997076949654164700359866030320680112493507597625181857720775698616418511847385319655917577424968043245660808329507714439152854790603569779279424355682911549752444770397706250096719455228985243506216219582448423753926699887198539577477057669675049278753033479905391845017307180415610681072666376762393743782743005627659230593045735723171589024979494897155691222635987997973697188382825325301869085827225166985230220289324312304389476237860819359683795661435381244145238551063199639297202004610503233167017031253992237411760337250909658199147151495069512624237129253291715709040520149030617116060215048109991660153015290525814137242455795493308905103277724105500751525537952541923854566454281527017976735334566560445965672764072980391281459494829093305729287005333491736870988643571883496305375804208712964800788391197226646462748715441288313540682018404871035620828081373836992487457936890991685773586558343676282413370575851810389877670140476328420352803692948513920196807704396392231658343157963937202618937670956410763980043544175130039947418607811214543895094771555641696150192015821162650510838343477144183263247644185606402470152735887455799578833487919035152980963031022612725231464727480254863469460357031725426655200301901166884796476349967513154634309183731383203645677121049481254363102967833402719820644838846213845039042708844948877129285827728012217092495797703736179461089740963076763916518107353246476385547811874158743875153312608524172209692812739016811945117610955601306760925206845205821074528745229080802117327617572779416443088852579011531532674798757610524168774119718584841498661316794719017176021872087163266454849146280762947691770102878918165665479147909657651833243297469065468003230990682510091634065648711670472868565168312027225326119634495375443945567851043076034564042188904543947576697475483434862918789931334044781290442521109600383874401670984948458681082314534502817107065800194434459681696534557686484109343989217920515238798483202743849741964771417351284633873382616846385582169969703712382201084801057903892905350594654925776029465443716473068510349212909064573334393419252060912328659094993698661714479445671946715003197680583909182794992165025345346858378167645873757574205369323490049781736385916283124492284899816579251667266456786833540105353667013102034721026735332962643585692610068710138914469315441209394221758226501634429713741578928516087362755507896602538065864420418545631545647893996306460720449661597685892611134207719092671717637406841337347517808085675554183927362606377321588129610298492639744898047026394265022600864415590086978967317108156836982363593273089730976202990912684058632369793816764955729057959644421989629765836393409935273987325289994437570173001833688652356162353181327663331403395364873057511516135196493722120657896620845307405184086385429764938621282317724871484043178290582169929860312007158677677602830649514723549378135449346560422580054674555244676310824576929785820559955330722698073462345399877324695773229463303745685260438638353682886939193145715360108249411994642355220781136014494027376123789428408674789041851194158844085485021904511635485709208953400880879227006735153710024827182417651102397569496773793884433166598702229830776110190934784512484019780605697343280151946956734770905093371844682582230648906668045238516461679549270070088943634935397614543907037083531327188270578304595723204957450702503196983042037615471807084746253256729408719180081115697956672744967307105311181195822085253702258797567556442334101781420182157792465547094654918603684446073044799679504064053582812023968577747527095602178078421014775489881962011315561579786889250837757083880765278820477433871542702895480503790368942986959165396210389355104180564118480754331072476701003087328309708307408086800050655134582709524756272483529875051455999484601519801259530168376175804519184651889732212620554690147248550141171393577411436829179972932608030612850720408725536165407986281539676445889134309435028547726637767701699608969615216975582251975326753411588475711159803374217810306623172693484684096351603676964445249557976109920422160662469892200006061995774800724844880103258510841295425179538106336242030402577564069957729141563659020635711242788682848831033573172055935424993890967646707285224082489965215336875413654293102708170089318705076642509402135283238046397557958347098909342597212187338598033563141039659236904831442650238452076484674808570696295011328200646581438886861017213598864427945947726033241808789738925774271558967458694280519109112239013984121598131302706064788029333581690936278714575506844457276590148670281652989347798051601724728970702210177501307586716965372446912169119623081968861187100140837322257215494710079958590767150096423078389757173810171944899943278881962183925989960131089934007398949419101711857445290758348290196192042300798665983389972824272964649554735858993620618788594920781345924673104497538491826276343103586190282933597902484897548161672714037660849694003913650961942519575243258265951307358688351905963329102076387220417566078142562685712833927686238304449590542219543034444392446655456497504190639662953938304944279271452435182930823911447884932379692115067766269603849052265485100021438560283562569665168299288483554677340321601300170053954004382604281612845198841194457427985043889429788197976887355825472998673005366262056632657814948476402817887107040534337832816765116000366807286727588288156978335050893541424220041722379913231525537041816780102942394758385911899360364096260253123828672597219416355034767975924596818035164813518271290482828887969925882691925203176964651792014741179162500569001362976917368076592318078007075887798447965912386828237261213091335121689265765804493071715654982082763195586285356579652094074823639174459366783508167323870782114445201415662157432504552237145940331778428473770853233504176416046949058287580102681084633978928110244887210259682004108096745444449711509762823229019837188494441543440451459217793993024670043260255380043672094890812132991977608074011634499937801391754755974021717659251945092092301107496147558246727753397165675309355941124012498857067376946619295040392312847938375183922147407397536824548385698016958932353375718368370876318700283163751626348682602190141001896888787257669974447765680946132496941274065044571075430719766473045649013570453553599727829878906017865993374200129311242716326699917804821265063347776375863514754270288695626928460124394974102947264111928238741081250150882061964492231176933895759860196776880021750047379876114883302707217444128557000503497205616591364119905263517411888039216417223228471896827384010326285568500761084226967611727668723243241697276758051601322518814967160476401228847932031595584139055350004509749335583578688082684932589690367803324507729124807376681578365733414887381544793925397023121815056982853573399230821178334672513895990567127783657045584639904292943168745225918375736571068933967441822143377642466665907129245815185602474210510340050514287918733136853880450738344625908900645132429061788534041540068074014093579201492883374078740886241703269301659241792654219733641956654078518951336314006173807013581157354140059113046361182779310298705241070237310118266903411376918405450944015724399122027809561051071548203420067110781141638584826268530446478938299308724782327232750442103071375884261940270365347523846831959133724153637655284040796197355928388047707344331940183552807740712669410368466865315512458194265712242693452637442180546311358233265636467518582430937486389723117762858147275613269769438642653834923308215000346217011381840648345752891544039807533249780044929932869059162921373810931131714992947988365860341015521730613027501567243797928990856199583909294916523013306531190891280087059685658561346827197214471900582417705708463972995546520321425356688655155296788721451700532618357244850683537824575486173514459223912415578645931122876801071517495119113750339156742375928384069122205331018012710728719900603572072916598149012842765842445365321235068164201972031002251038241917142822907740602350246434562990453328994218693263706965445389091973271535574233078283914379019260400968024490500826529845948218928888392258516274727399025685143206686299842490337912357335632949114791470179366094247304834952575100571940779589944358545142572115401809715590321761477369249767522206187456753235359232837897461596699312424600030058504190270286632234167141237646476396235967456499539300471582739008377204638503183289893597283531656536900274772521153077856522538421943989770646462948079634278016258991766805238889898524786658055087559397895376530657741506895934797083265053333668804770632185309357446274008927526841320531517747034581160199520849383043511880025144557378719303778814684023408740525390838105993603606631249359226834405049484750986449196281250210923086082270852436611764509256165547746812314841485937352468185993840345175649045318515925718915566609329280079024144491057528999122246511876611758020271011933706853204621928609963444596194864608457836294356583086249593955709412364529812082001960852289743410121398631061757823006212963638864279353617593516990524890818389808815168683100017018176893009662786163809644621144916767661618551403287503468731989965633255801109968671476054996167042524240972688548375556576311990481596898459553435753063737756363747816259962262512106654793603697480637568613261071157685723963214456183027627027206561801416120103163597762082508277859892355346882445451126125012071102817280210825336667377559451119305577881948070889911828368652515428633433234411691002469997657555807495611926400614141760255969537209246744247378475585102871980750355891502934743786836789026517421684448348148912073335566655882409993656225833278272991891654180742945319778593484066415830954327946933821868018802315052196438704785649387525857152836940492075367665459098675406572714380957192647467169016650566196617006897847530335712787347824819546106042051159612870061663945694525392932132607968300245507124586022296624501755384211864633697056520381102004090163409136603743051944272538364748371779126872775294382146387526593538433678886033035564455536763152937137978049771602038991395146707764750242569374785434013764803311816352611902225762144581809905642737975036243361681765405442830718399696142780489590284376612335335588676903989593426218546561085689979793604893405447987584052470655080202010504970010956555747150122472635348053052952665645083558983594020156905124398030496277686206057550455069135937822292412601177154302204046049688811923311454687843900827782876433541423427755647957780594816213359896398556704056450498648715061377051732855502776597971180101252593525034217498135107444925051859154917228602640101914831450720998808353478168514942140958194382453643758816121318680386393824342653824566002349064271181189353700483175161196304280616633708361562424947566329365243308771584829864044686793422873098969472919883008629051700775838806628149718166947782908132929893375106955919919060637938518814623432299838951256229231480243662008150978140220566365236472441210339017667766466437689670556058519151921139455699982876432335448043795576400617554937073974316607861798503157234276634017784728192233179894949246502648987183711407155820127104162910500083004513172402589656285310291298840476279211550279553577091263760272718488346634178273967861746541590639796078716915882557805151701322246337715812429005279503836924524034050354066570390460794982891396512970677661111524072582620542296504088803801314680072469188606882949291931931455004730824085509164862905728372389943648000727196798025219556731070231998376943244275948852053868521287901670452023860420527722189227303724367940194035387842255410598722047330800406176789252086975064918443011193485312300258737441851519196547424704949665301909442183591092441551973660832140176988613315933655412317693705443132780772640325330122095194900520954026419409966000879559736888373700044284989380106788188663550123838091259713213638700661154115587113746694380887056637377293260456466501755612572058636870153146177508834746415947584752145930039577479818002938683983905191200137082470435838683895254979747548680103629509911062030659512987515310121194774908029518095512902351038067635474595041291836821009725581161314407246018159398395340359531821234737258093186857888015161779254366064283393497874109118358143825855561572260373819167941688484448858040707662308717708306400865670226379067936971029588502298874290270312808822626339888023479368299264922155921979293248070666276866965053132602137871080697594984259186037153802525701550794215488151623064719101765574759521717174591212420282231071393499794840237591095772532555518092820269570523770859016915985793867584990819878140675619108543909969328974681434326078019004245889059912159954648654628437239047765008252563519756557543856735467053172842132009657746467155294690849957438119147375584096113994091120953468082007473627101398611993484744809912040484134192277481209592790900581519983906573660257751795379275519101393598985094638575209416340710043192963947389170706570871203296133680187122235660885664759205085848411020008308979658752800773030306039163126924542923969635190613359453751931791645785731777781238797597879310663470923362260426725444710630192883211182421682144405019819645103442190212334106877227378583372995567368451849530784420895228819622473354168758929836531663058564155661880664300011949179596869955558022731112402209974441360250185545869854493734849937871250990576055129085623958911899122510728315915735017319462793672244977415052093929276922457046797478519979230810396678065829990070046337786562826575382076701778058325663416201041781055413553541620957612833975111752331909878525238830866954121407453957385588777874562236491710044382023679656799205941829934545106059322092285666398045661790259129759505655155034936941951388130424962515965262883675147081747579226691242186640653135651021469637607802047616819957542349978656013615725961501258763913678644749861694362707526618913268646654005101815373459631775368444208779009519720141586997726156646245378324054539452173140079266087774905883173607266198860841577239384795998739884962703889935391979967887701473033971946274955351183321565751613327974705111887514922638016781757618162381320322205738409042493255302977878767249018895867498918422615940281876858048703275202674421545222211241078187991737815815619187931442981221317169970102994321889661786742066544259890854015329478226329051192276200428190203633040293906373079657975391540854474429085730193560326585844572221553051423704519459201350872649990102402734062087866583589738588217785089478026124784544553011310576943769561829157577724261361456606474294548924293110400427859368071550636769074418287923165949130564054185074111384812544791547775287305656480766265491749357815373764301499955009357453642368698452163408825253106278438970091479184577046604563785138519548150110709655223648577390386160733418916589684294529477178324516181336603966914352854530089387548854931329941709444433267220015174602329977940129928304193426403968734461697571620660262556624342536690371064592167441382336494620128793046682217944165816163130902201158279166401239747713328032553518427873039331182483105141315573756316363585499896843470868352601095162222215007588838513772240652898640309394686579910753160010946015967066876675973040014400808866300517231841560966403996545888328942627134580497557654167653332037916260062558626059272049729671497310856429533985788463332878137779348145043507552710972265893061952546204340597920213047883970934050104260634732670380768148046153117657210876288583258243732447850217517712941540271421313596310332417338746608124607489081250976318081988438679823999874281822825454540168522405586998890805110106495745993965711022413503151079173186672494543973170085637545250275837045170438275940076974901404146456668811773740373498475936992128141745198153740591316059823153307593446707103624364437141646941957269755596422958611381125472307765149845815299469996718659855125122717266933689154707907635295399387342930959216593521256803834316056183587284716415827332286912253863526538625766368818515268882169297861083494773592669236918160674163563246015389652741585652828086771886004394679537412812079728030177644453988101873753146590497892085485991072356680103052037990628650020167550733305918406382935285759258284830689337159726386241193074752299308881999442154768732612165004294938884998325698534403679751466378437162616828744676042314244960235409384960204095341354372189006879454056496871736027763702864394931945640784072472279158086766760519054801420928822508313490193572977972250291378204222283699115067385117349497550132269715286746279658104842944713956935225661377294252992619357165521689217028784895545778244294465486340166776122379456412025247863826317719821919114613284989560960748918803861251309622382246016435166739530619611991435126074180199701706526776841090573588723947132839145669554001809823231486067499012171037371714298113075526929650063527836005340935450172695580873060404764885575326149765841946585374713064467333877432706618867280993990909580806229506613415161522841004677225578086347434578563971597715281546652307398977184794670218192024706644982222712972158292142237012762199419293841349754620980610454062700317191160826467600979904994902769270213770721980993401010184288136236761243346301225234567574553906134729492479412087719008697581812987241152911249689568374238631767476322153318391369568835223694664512445856843093566515977937475004741732292070288590874547747055770708048987029439615071649290547974485169447204269432583521929503720862192096010360532052184093664910470642732633580995189833589348599858800134647359979492842949798940706222167703483769961745666382640013406431197373939690101727386542225664346136951445177243642090981764334061850201912519957901504762006454817817087083284528075560415177435656571492835016171170178756627025472947001016931171820352219122558663745609557102005457093316493013285020204219620928434948659725721618715332753215176282135480186362863153015057089268485489659373438801576688469930437252244751458646973866199049974465537420901973868167952638938884101187859311113719645953108608933062176436685404126350353971478951719752843012798291044812770809955433721173701239709573391106013716010553962252004908619505993516626233136222058712093216694341584406633081694249626273871433944649587537320480804105724134218578404135829886920435725142752924541799984717690124268782512551453457041173953020065088980835641532449631033840440317588843416708963068791313408466514167136432472792046631547308400662600443447947527343169388450460798329125445743459615731582195993756722776564452579982095791545710675515062250149163003806275943294615500990909086732904509158252517342909802485391730874774629899061286782821372673734639614168898715508228637406945788407837351225757854361634250190621765849453078091400969054355784620363837511411389164602030768993838819988021366492301402129173584330865111671405080049295878454365997702932879162632566939966990481042891140236653408511173858954990179604038174172095126086468762026239910151688422516957096069331055812568870505688515841714612198013480961967222021373737436776334300572270404432486623812445411319618404924035578519594324400477066370138067143540913182668637504714869823637160002105434695069215650589606341959027939228967733331256802526382439303328372558119551724592441628771471518039700293193818333750220490857144310816986941405945745390876932797630978754266154488987620160577387883556905394020062858051091049755790035200654353582389743194749168470918241007825190764975494047795674613430586690340171949624712546434649084443947918644507289776074779446604031195432892547649640611293229727864265393636695585369495893988810643658826906530646913772559893084856841192357055923026965463383818668605517915559363373137610704241868396225416344346546594026707814655293728990534936276629218419599936931394311450465230433316990874955936942078986885051715618782166500281195972073076036948119039433459896767098125560669406584409645683200342846147017504234181863065752485410587988580938431699262896777148735483846315868268168564464293643467524447027347538405380871305770241804963790473129569029097990912457665351747084312429720243270680351962190630807443000364253402830445797042600119167604901538250794937445190383568916984034889238340952785518429647375470545994775867287430214948597576893750283128294070598675873231367706362299247423655918649335552824896236779211962835144652252701126121377236231867660186995992942513274407077384782175086336325284851898870428275246903929692741954059883808968741006871499957840928687053381382605405139556290422337827626318467368093166712247918487338268863518242715930675207346035056320784676971512291577042539043156946460354987621288906458546483545772636963228425430787487392689491984912712926143984266827643774171227947971854974460253730199058093174787606473792152699543246415682722180746087053320831387816957720293501915734103971452004028285313394412933071902454365833685608246276011152578693883559601649043635882442193373279035012911389197053684375598099745390508029082663775886662560130191870094111777155990679744765545161738215447969203974383600666657693804322260100118863536131987634705370802239238350872875070649997145081245882808668475571819719096553723869329807834321396081141486121703445797276596735308829737335138314247669750041353505665213572350862077374031553508611169592524037465323547924732391958025947518933973234591185811503448829497435319837652287654189630292283932721987433552565743733127483466276661593593336985298095475965908232097853846591396583208606374224460565148158931359912638183159436515144950798790983353473309936740347284634616864945103622261455422336538033086015380286043264213189226302320937001446376554780100384206338004838663646771473440216775054235284408911336335432966735077204438298770714286402482006356238873052564846414342905758888897375619631103033704610236815649689441333830516622073462813519380692263864179986807675702238947378813914795409944291186895064106219073423148520124912745006017416453999332463159510326389008587427608243146777746493150926933322480849078244675206567494527148785606969703784543277798784315251647186497340933066512766743128880994422911777066881753853239204707451622578202719835997451302552696455199377420791535101517058474892176821364886736811027197965078728942791709760518518536879580090445983078909453160121758748071368629633075891958379973202134270138157138834077746056742523111088774674533319512228989969272740459380856060634438287421254232089776837423720472649288804420470620781699572729350016679451251805230914394000459703377814110101046513997199969739946390476920486185299793802118401307404064244274102292650058051753259961664963879995549456232378370378900450852630183573186295457031893323417796979625479341237673737331435608956873246113602332667353222474896443320342750690867281606708483828838509959280912975562777622157535057504102447953195027418956604991641493499573081200173755747638864280617978112630315453898141095781699314778613475267888369648541620756366165300356900431778961441532342906479158156640071060126383331650613230817086489575716072346891642253511944363383112722339854925860648995914481135923326411230494756877009200685483448077675145499286206033670951972940718344903599857198981028266733563132471222069055178173656023522634621474060760510721353422715959315373666728491124349191856751370348218836766175612996730129855439093062532772506560500250547023042527693193985136720131088062732760489851684676569857055163895734012458424756638218639106470032345391187245390169884387141740425082311932862823747972656809347640018325578032249150382019355822590253450314416726553612652476906993216832906866576418347248976695224305877544826728967084321435701822734693365622367849736023920705405073208175540484844397633488865731512779327248611381328740455125287617331966602473082055432906070235585477204562385708313397468322048040782506686196137221022645225522809279046497884303815112455515610171946097782930990837574032752913042704891473360829438093605310858300853926844510610867875238944456987169673182765446352371845278412432602573921805163509608363479574763687398338757852439652991506383510522344662928107493445633177252052308107379530081768160225043999164493743826849738263486419563402183195500591604176279112641528637793122233992855422041703342211445925905113981724581686161834645083036023448004801166164861577618333620905523202003631800823736695672013234966522563291524309350761760987214477293926074533274161029180172405168225802243552535511023704141126857220307672887836326930332039256421587870819335517091006408800046711688134057220020135336881523539328564639902861305413518314679690604407510056508436056803231170298166723641095977299820103209949120535056662880439378179038141357819011692575093597098233429885465947306008086805131460266520515855716540158543376466482841225191724137320823776362039670429568358580363182825278169470705204127802509179232206229128354377313318608922525766556643971627315453198816860445486010692614458793827513561301333766284453173836259569244195756620212673773455227915520996052781747471465699007362240774015694289327061103251228605402927209489849512321872428305796689034158396921421571194806801889313113335516594581204349418873608150089160023301106570582964260668638189808402897410979060009865112780245482891985065033728589459528987737522458156352030589237203493455734753335681910492807548069722604478338833456574329593145211722194620239849790876524936014513668704193479658323075398989488882272467082309293710075652628550543047954079491244619326870869306962143529186385410144724184983270768122146248775201259560142614556234933954982335252463735850809669320509257647140347995233496394198984504412377618462302481813228053186673441283838518739983478560358420276727633767969139267402241781081384714452022715366625090818343655293182369725167166951002973685009027215600699148662221578536729125768882322970006814759243271438316327055494177995161222671741649974027404832992614467287033701923949142684680602947631455865352858217292049592010773681956605884408341761701218680364586496703598222270047780671055080629259904558178408120276742947571906901923734431281051013631513930964360807094621340051390945663521634281062671222389735686595326553229966659815538237349265365906344207282251456558119769322772976751272318874068519592144188209201450836402752107456832923026259142003205023261319929946942082689087656856589512396768151246698310486997673309804577366247271773244772216817574619623171416038003330562238680279249051803767627808347998658657132189896184118073689637520283201321094892804974069681799500417718998428302282759064083838402830006461224293205559690748677011319232900830690776304506746672290056258896531993005709733844066394063580140857202295255784180615848325077437953044955674143526823579459966855815266016946150914595246739782256500304062171692604308174089063572473346421600011230472705785373589410043289814698579110802806910402894015201836302660256065628349285045676123789003759526486560607656767455840447184144428075579028646527576483263315994075899221608515515190639870874503404884381784714329369908917114798934679058990332303172889398844740399930039105241392524188218843305763753508213462441296597493123125840202954462773169866570878671892528201715109289331304312685988394257017887562458959295743032520618711879296664920329264314627265661202024987232049602386685823501319605843907593729263739423651178182479768220707861935615175479281210366725741213200878060842672587409127707421772737436619888446790775234633148495096794345990266865845863100436554181813016536621813741372439796841879878530668011352385602441241236792687899566695346783359820626917878863472879826642084882078266541820074322970964639943504829306127993433346596647361673933629273348715066564196218166013108909483252410424977512849770219732568239598922473690805539255651200096911761297559607616293663872023993955256077505116163894215386423104396918435990475494481981833784311385903098730730879677977694511301750306603825089214809697196221456254506108935274246424928797551585586374026685500806032248829217571082279411191586895851234027571494548262157282418819984600214715688160236464604419763787282368454620988170068553063381915734709777777515155204816551157247106831823759305585410517534080857423707297274550331669538008376080238265402298373463594192633683563063979443135182064522595104295017010741762243471663834108221460158267145475575743386021913545557861422937292489306288165280620619559437553662954237133326251632120850621716156846348498666525087352096830602311767595056614339846676257451988667725091045880405366219527412779003902422087158732398761196396587112342284687895334520100982543747002705142578051371520416638356157298341960307946453932845670285341851296228399132812696297914323011121102022726952463141280700423426866737822450689056159524200279339061897082465724477092472171351463758817792131388747141068034875591441964706228891269481716071364710229427266808989764625987317062524262673623142354681930712267598732713968882002975715513036293273204174244224717675446835977588877692939098098079933082577823366608845990148398970912764604964036672314650456355016227722317070035095801790524017118024005183841368221856051970984740831990205872301581755976857494099688160414359812376418132658975173394227466948164107891713608819565519911536994051025386743369402961995048743682563629389881492456684288515237154761326808701230880138277792772358711828064465877859587415536470538645338473365298297751780640014223397729530927963960943518770865166472837581276512893822264786418499630485326842235062411060420909435819511868785336012594716534749541743402300981309785480101241476824660324522885523531714306696012867740934846035642619839462833737887194884330317367577015413916435870513400931009842581378150411504203509088006055440642449017337229182699963047443633692066319347972533656775118504581308512424328185229241400635446647978544473959058103438990306404790223542224575781658037472936659883175554256683246412429970216271587450482152871336127461768639328534173606984483305704831995134623116629280617792601783518658015336190283115849936953751888698856968758484393087240170079343483553660420883336448648138996088341590116839275048102258006730370320625188216227652864296111338835405771598472763879177477056534404453420194890810556849901583790467564935124754937593911462429218904165336771477182281021705997408941489195499490200334486482998774516192996054117895358130521351115157688695998620742451176655052875024754942384574577407489694508569978372846718627174090529960061196945890011737016640472791654724605889855994730659450478323667202145005817532729287211984381189669701776668952654939060730112245632385895477418274389529076005640368812069012585528874696795840666661671775888042781650949239456714526710126137289044528638153418162232119517113980276137099324459222871257514181799850794672429273484515854684587025314118651330968069095160378382869044212041933365932078918250845976092215008080249105799444656744347445871834761740691435007197639020348107708281490764652695888414029170827688337291049549108817645330210155408783561694543720813255964381323475666655763980471597089374298386177641503735872136714087474335332120630950967887872332730029744361733696553090485703226835894176094912157137285631190563276967674011715277285335902512285107305909916897225934344157500494902340684580978582218668259246515533939983434581055746420852179110751417857114809951091565291240121547491928534563745570676338833321515149133784200104934256763371470618592294481314302347152607770306209486017583314518532319088123826670020386885055645528401653781368817801523805590901403223710078403010805220116723943766862796274534970254745481382872576834598059821466566434591128091565757276442969846392239686731197606552502875070415948535038395523727829531824883632714053800444772290900010944202879757389741252229550424296873215628610079400672302228361348293305020724676734164663720281566064500642270077445028636798297036590991052636166243263493632770792750293380028603851364492405558554497637718686080714675649592821211371062953059561554754018890371043063476133134504497677860822756174203353581284237502581626567592584358414158836011411739413377443513186567133391005152529001775117920942442328282480046994963763312669982229851749580315808138891041907756805950929026990994386027294042611184000969846964374044855117934088103684955696900732829011510782474147582966098833290832095420940046132394480924419691967905765801552265031264201206254682744327161776285016558756361364589217884019290642290125042196811677962061749895220283054412124641803293847388712826068199890817959858175667610058545296980294415857547455428679078347257994396328517593515580901014347526778120822072892284960728294820263761920478636785505445084367427511496114755336987279368542936381991959074394177458998286342282310121876738956587253309676934530010879463324632081051014117361404587478331227013250440850272670708351354658854813576465968678764823639632583618394748037399783526902308774741101759638591410372830174405748795033617013223465003635382074654244339801612885494756693662510755305108107504467634608979048438387246254487704678040642103586098255872305074641999983559192915400031087557130723346870037790544719450673050095028831507356868906007759078903155636049939796295726284702329423349783744816914061061691984575233828790441657149307756637978337061125348129056323659560146263633337937295437466588882532169986850763326565297745898788170429921968617814578523128673821315291168675941354471237949021095849652965575859127981091116180923139339138060282055621118886503511344156317111010284482363204168775248717696462129004018031680535390470458745471935310160262817077126635202457489156133155345849067206442291988929145779057395863241313835544272331609327861873956392856638682759384295782720868231272823042629240471546216619348222353403892393659393231125735578010159508370591609374399203485233653936553047621471949635193380980470259958301590985781469120402718000884200354190659623447058529276626458042445532143330135840652938085027942872607833464873120333410966814460440073638590945175483202054462437968710846899765195908514927067721865858475644525714805176139602480423884086024181369451019655244319047991249100365268321308301912942311640388584263249056571181429020306723284964669383240623886154605834553977223639413756104476142338452518714871159028216349085416250430773234623252280086555475076148998588525292521210875323235744866261724830165041572900290600635573728422359450401063034759359839656126703557480004203517363247223448088169273003116625507630631987846261442355975648386059132087912201403397055955553124320512061273861490529065668068442588259487522499525603912811719115298098081404623319187065658656851542995676576400062891469371786809880325780514184844924807478176833286479020135033073952479875785291035098460487823864888732322025059452757959268949544407856467136186128166378572549975680622142985809998199923759097104096077318497376528284743763722671992200096463956837029585047099538740545515750920948313730073989220939229522384524133619475976391508894407785417315847554086506128393899334088721219799649459346590651309252976064445008251316748388748683359908958849283945647901068754261553509161273275853408621810502102466279927071840429160260075102863808975423131480822550467219703816023315094729407247821720095675643746294369078892380397794750288698737832297339995170092190172495200129500123910402982805695995643865509727658874865174130817046452401371906493266522440756090801834221802882340729394883271347966480489493008066820293515783873812046335693024243185979918347729368946727094915244592102207163889917473239173766226127457025863348256392450728608692971848140388562995634600111833267282354201179041708645450656671712733761869732866676406471906375300436854437571677173724362515643764137825621339490544560554387922656310371551733135419118119539309182992101315272835114286630093484187407093032459395931638950872119846960257123158748356499776224710768341347342890587147303614869789328134145258023955774939857221449077364831169161719261894159691537685874909284409868709008339570096949971034152400337236122001241115525436867903166497481965562642907462517114708157479780184263124156988462151178416437409642776268163066429061666899953435215637404435779671560536258025458363967115264259234101338762700767880976637327411252029421717110113238931663732910510082772440470672384045283709206466810060092359770109571608374646161809279713108038144284879121338518672396027124612394460487615219878591391106872001494326968531924519268660317438753610102304545601169141699932546198104147488233804190542239490150900363571458758313135786396448558818034927149719161718415657721241424752164524777886047779563306377624516049217045870866873121149990125866000099727056382335299404682749020057779613798776744834380885738869517114601811381194048431565411857479604542966505640576779734638170606822850577664425183677924549737493013943820487344458140591998374866253068921463981445179780163473308786927142210154892126792954730591666239988321389108927695716325982674163998225477913848727921175161913087317905526536616846523645396604599849374885307350559777563021170721767437463393654411220048381659143211780651561887799435776991896040236215532779113178631291277386919640498715688308399694550825501680409020076175176345068799052848422062930764365922317605271603603109166338665826081311122587750877408457521281082844504923984641187407992230055884538235124846528254812227339817759927020826598488896501675494984978087092203025118518492048775618944601579497486050478454585221469170345938357503163826383997497192142441749413177507762035234427799084958024108590632777974311138075552575590865598130482279583550988814014284898819538886615032753205463885724544884436638276842326149856151813491248185049183612648763732839953980081434843507043917137773952647666658444104999197844791556738615355846386338445084191714921434455492513746020055922030078470056732768844158759206650536038944185525099105141907159051818255368903822191204658662699686299657763435807618005702357730875002740199463762666231293499454704138760959681181485616936445612048571300837668291467522597423119526267788309122724233491536084026523374635163055840748640496833579378963351053974594430928070640250390399093513467308782246908290494808063545399363736871622585722385908868488840778681849903311905377136403243937293311581693497327713353522161806987365213309515320071445160793438062858222348444836653210697532592940673267699917427438252598526635956122054201934510097736486713463642367715829256241521169494548751790365457442031457020006977250686328158186213003271557304445211132167273027815779845895257139400019194406550667653117660384171048193408143409333741595713591966071207487491864297283849689755473741639842076965869539119474008279717919934466419480310388955916801520126886022595729690573034802135579570276934754911014886177025442081831345358800953057469753143983069304596893213365991439142843219463255564732835962503143250986318344275259614165868729850729205022402681992900388697564068688577745904373626466667906438952944550337878696938549050256131457249900764722845270490915078452367962292577559216058751055251598824725350917153140552800439908988320485792538396120428084141458395281765109637662195759331852107244836996088935319688971021421402348720979711999861255937264845712703842655836774681283921851204440970957117735063817868601937969537340310222659170541361102630552860689647045783505952150635849795199027546060147230744036196974701942609526408157086279907451997741695936964891465062664244575759611975873958300750535539999269411188970549786423567654960450629024826476482271788116006662426042172020007234936564462218633286182168515473437284431065501889170290530291747783694471686434565232145053538393180456608172472671284294088039955087867586882626111752937323853525977098824098742272775108851403442552293332939728795567680636211101130012062531382467887378784063688215195897273369984510118662536791742533325955487450087795954598593438605020713904255223647935030330606277355429510260640565373782401822384482376415878030823103698941919753202318345408296893016351903893246729552056858822835724094562133900623764218211149567107959150967855366391041466159459967991559739162901169059397835332256274182149273237047743023354023288275285910061362211115092655211127515698887621843058838030186125214408324269727881231440367660902456021047215325371737894885261974230492364495885758660442538183291874918783056657170515177509296529929902162346521983518832010149881557170330178940647891349119219646350874938302575490490510954560420515711915522529683706022378309369928044930368747767906153574434531774959466520914665224058825109325362415393693476247474126191038182016744235367571485053459685791917801353148221066961777540282351921548562318800017530702769682500947266185991298279225774204258463826238652589749088756265207813086948413810029305296928291360592376997413676927227083004055421827100858052572170080655125593339352879931780837892615521421929115389563776639376645297372946742691758350148707739614882767133037633427219819450249815421689804285302827984387702690871164409706787593718173803597396446867156068932471233910642650795012915809913297523988154161655457447221341316203162498517593409468386881573139104296166914048777966042267417071759475610693280850467779611783227813897495374763643545602292418897850435042720858217574718483699721819493329743001016309521571778947787865094305407052052597111781481639445687482448208895213855116135159732460978011962140019291121850710684651040560973721529708115343908645800955652836909516887771878118709784064579716441767270744691299243664200959354723673126432291226245992635739444366925119930667929239799967405905853694775884204660395930837777181123593612711163820284725391679301977087508033011024958240360731431277113230143262469681068973349216671562034332192780558273473275352406124786631891578875765936948570613437645969805433812904223610546777862670656393085214395284440708087869912574801103231910478634719507276628871293966306314996891880177388140714133178441526125068322540915737114157454959602101596203992327398352567624764481290837255152301966670622812623075711422458155693994701062651139142254219294282395843188201461128929624325808909269746102626254342328443569347455626875292255003569484583625147178278425883760546298915040883063186961236178269233586402934970973834091825018136692459734008136245207358859998131863535028375659362318217998941899113745296959233959909931414790559039087871405104707297387210704802773065827234166523927615984841945300592674739240858454068584807260886093083682147707392261850870319739132962574654444331625611251231832694532656335883301748374980385432497966575440422725957211303546691048133872206033621557768445556750479736418612693248854534058298071731000795360696020385156475412511359364981004750994286110282741774016353690316334323216769345971321097036265367764904334625972821799698102011690656271921778969985423580545095170445419876277691756815948375481070039255408637170920674486335447811011453499489315390359446170360386701394439523078797484364375397013694452031063771414674572222180264163773613790251861754280871520675380478623740526729137366214770786921364140471451391848188430408438350439775618919243662473148712860245230850782878328582721669746415771726621885566222157674124242061965561535184721307537172897582455139691278158483555806630103641358999415011296349140932920540685875271949282627575211865415133970787048397944881089726622456248679481619638138554927683560916246211089144479187308554157174587768741877305823728967261981776453775320715387016479725211106270357273527209133175975362332618757450014079261963122439389217126554258935988581869996058877872247517299977324896486145473140900896440384349575047095883294336762788097720262721455608843740338348296744877037411658582626880878786091661607281219283431516824315354343273536459043234490630687854140807709285782617183226498005630421803214561438936389453805798326038611359017123042505442090700894358936044115589910860989586856354204991043833407012154580961655284583180331082575321622129567086869020346459280341341511746426615674735809308682778488257072342940226704891132304881572279231758696782617164301032859295161659295437300013788924043955017233850446430787409527657956842196835794409727913741055248424386187068478699992009355295234235098381652820035826156569351389731673522148534610822357309829643398942377976005229675650696950320849381890368389079730698241689411555155219979419284694310783635239954519971798554643770383725413600109773914773827865273077367778627193730362360234115608728314327394081997081084151458678133054532435545554953950137227642886837266478274923192257218967407133215508497246141342542304504464075157675064546575742663077449946692574687493648105193994756330541849162659497972269954490428533815341191657289362175995575195044917084299900643725324070831037793582307980686632805619711866415887441283999848823902157790764832718238963322770412647970536649942268025446184305373530163169778771096793679764420345163882141378995067558043674359680948560416714944567987539517966376891922980686699437393845860465913095123187189930975955788673318229596418146816570503742355837665281825048452630127171062695243517013584407460628554889207774235310256254155107404655485185956443936229207092889654721180785930322749689253434728301185822641656179216011080395185907960874928078080112637690393142771982210839505354269881408736709374249278684935018279854932377388504372644432248073845210115717892948870035937863996582580889805445242998966401249516244702910904019955485311288968391687516033561939344128269341683158206321569918246190112533268982007130798051882797776690524230839053380036120059599326875774848903430162196518276081293342676478523870873840524089158614648953364105955463648544178945960304905071434308776146887860027747196210453307779982580707279916140049688421971950670341317430980552214890347697043793066252407031717866228362244540861775242668549698259359968269332152187930026660237560657126885904970510402211171888062568896546546550999350533186104096936280566207141616460779015460410877235541596103558724394737022314457088114499487356540024894602527361206230212532913410947604717755456510520580574418458490634511318753665965098703442998428568581056127812745989636763788632578273402833475601169571476251714684142667596535635827291065929013288620088602926688540441745703842936489397383427251139497983948997737395376202272010440998662118364326755672535396541649155355115479667397308310864968758850492569842717284982942693807490599437509683395742618611138287578270230027340217124107955457363212729492663266777798313503908758632906845774777366170542464598067426744725791805348067540394347629150648693086123720443692829771470704028324755995581491320991292408638566365121505272605763723747776035719953003838585794880194919413692811719362301565963239598387583234217182287149660833997248503035227545157411991179825433742190213278175979335336985771560078708285403197767030119549808254614265716374299634072138481632497636916232177596311217254938390522290010739277682938757845815914095037270249014436377015822732016874295300848015125436384294123854255504685761283997529736193003674079645613734284187015794720686867832244672278552263239855580679038370047979901795802664794895566186952692761896054705039375654635192205252902185966080227729526536628034568906352924764024177370604182001256241610638928442377403162437676740187666734713211471558389833845627118791413708699443177400935522648731883612669317646193368478860740638529578140449383859938931982743637876971331633341315933008402009830506398471309505031158538361911558049095664792724967407201856352838659887781984290199814952023449877944498071076954573983704611907745268745180933476539561296985258265428062808931008632214388933709980398507042378408067557289467572128583164558098686738832703236173872142319611156038882683637586596889488624676094855011251791228189525020953261401508399561419247550152253434711869145476436165369318973453321711613551734431552415061271406398787920416616384232774734193732262844679357449780667211279237372859361429154085944521155107098593374549705130011644546027372042281276735986467297003936391518138142349381721348134319058442193876964634409916906091266300837012690900478916121220574369560023670042857607293794646240187132368195069382931353723063828955767037299687376350074334801412319861244348427381882420539902518337709659822623599776055001529976011492945820822111879480751000494369734170860469918408548579079132738787662030933556031596896913173629785644690109880821479647997429962264491336142737962819046395564509129004502130018551894819569426836268173177754731185219661624697736315148012537253026495772131317173598770694144435208312809716317409841819647244281859897169473374742685231368189132686331938088323527646769104595523455013142298066617064911749925067915728570776457054288368088774050451608664321104717251032771325444482023217927873216297399868608293277716825876349583197949521382119977535001297207623602635917164783606195239478907918987666869101655882885194037489483025618186227580540337660336319530286286995666680951002899884589226737705212567554229140170320977238940149093856281096477749504026037924440343610653961139546530515263961602903311543704727074653598031182734796709945962159582015260089916113828491021273298320436616341918042729602871062602912737351285307648656036185160144243153763622980584375693687873105591893259871275492135109870614305989205014677449266673055380116412111361744640831778890956998958629622254435651355699332735600833844772492623665157905289938705100150389311221991028436778104508206756161869907653021400072387712458095364461768264184250957900173293052519156109036032289413189442747578489073723667707679674283257995279438717867528670653225911011533426166020842842223934648842968202537376396240196736315560574880538847701899102357630362465873405042804733621135114786951728248644556004194965193406839298984411516995741765419574878655650279802699841731746646446483005197670174832539922269854309069102425508887478558253215791131916238156891113813672782484060399390220789586411620213296549909623121978321748723364955604017180536216758086524914530821332238896980414502222106946795670145288630489289785438682413994254234699472205641550670394037345768529736470453406845367591537927216294758060967037512283876673855557620916884175216555689046629050010019127041670564815002969128796311158975391315436611309255496620369291580612059235053726614211557125701804596101775305771876027605942463059449352805158597681681502229494612742030237664694933761423719734223746629204805787380559500651354097614977193063191019792313322128111773378103395621241286843298191799439545930516384801161917076785005813206914786956320089563545500808917980057492627642354605381966455113014724667257634558551318766168106343421491775600466842778375418580456132646388275667522720302246537365774764860374163469282635283581624087879681811521117158526224313726906148519863994676986512811641792122455848948574849432761202256710243502205116151894215093461664112083986812436801560676317423453630183802150599786457630702588444454019389842640374174683234126924222760234765186385861125357984506642002752652328806508341057097451643623168558700883664408720968800530429862561104793546803393870477548791492473111563859207610235640367322961150893433882515311506618095724381146847295733071053827543267702228494921525101682326147900535364249926588580753318402677305609908779005775334172281662531529438247758941513467868631786454427455095153176041081980695266057270872560541283211441362288566841530539194156814677906810253860313597715928304959718528317924286242015064084422323785458713017342248283008061371621750540077510788920820778349561128686731348621562938637375320300911531178412507876599803495605945245492417850701657552044098687237959178841475238496017624164716192396657696711859696196129831324241696395888270500886865541031501741655625813032006445699860894084551397345380506096647198361919238423397410417988781314086287401291114521276213511994711436196469566162318413521301939115732315613989813935852601247084494782248340628171713990523019947463588942959449600495334808289834207232478159681127455515914555604611830105477795891645582979997152448962419995473871790607305657648453184536016862151234873986864155687039000989260101497974338112746753151905785016157993532408561979656355534155969924946662645299601182952499630297634808636485984791169530838531250919192675995362131315288176782032540525454270687691973074911135289172335548776035294466113539464168561638426544193308154707745979313135134817480158894377889115076750143990516837462150631977969812452883908921239851239859636037487500284119077913920500111967784049119181428697575395035284772949473486888665918426486176233057042509834198394926530225192146510689779440133244799866823470986387647981595082948636287041983875360293946473600631666832106787452289231711541955648762768718388473381881550992268083208795267843328071096819326784265936662958578153920824466419585201576142031334325576648595830617340503905244257554985912055780477713878451760085265988730315785520976735405003457095570276736788224941322322407973720926715704492196334269950124345930352803358045294432386195038117943585161746460628076204147328050429580351575922595995688173708082476384208311997734908738982381296877786430782406112787776594667856633900808842344062516387179155142433446261626737409984805023194461347667896783231846743568544830705217862745479496380762438583440946006763224099962712070048153091516288293197777573140466272743905657174951131435102735470113417824120785767434791051439326857300764237736743528896859007172337674002660817487485489169156612038545227506895192470734562644035862025920621304087335389274617183393281513144086398797603285360738679296342685815882564543570729988255390110519470882794449939083762267433527658491943676813082125078540413629426679820721836129103264896823860925801671236445045758836064091265304534624788408052054914299803650750277063442559669178530629461986829615071672619400697293729952297453558322686821752197323362508614102619215018852701467185061920484311162302950583143353587271649885102241430924639582166358505638768479317913654318165279752969606879525542979971230745002602260346077772882541715649092299043223972776384868944599038484126932205800014611542422532826771519411211244610127226921978204332651824512460807714639797454016408358800252380249031942705208936604372972798213988722565544905095368734057746650523850722853480858523605659690843998994602271384577583480325620315435735069096917764932395933596019994227090625773144223162357135938537807974961810434355947700979187947238766046872084022445251101737513932034269144512773773333110638680519031533902076299369853751432964745249887194615209987934329067785156269664738778227087771671801485201155588702035360943969652113080561799260613541940970645871004833696391540309145535639322728279702102187463644502812746045367155171399146327986454163102623119841966241304436975088629169916864336024980120557152316152996996401701096046036092280602983295325163897940932247557326878769320104819025754113377570394538396397404416509915816288729179293286420142439437873774933678033506790937532908069151845666928736936629390295737844737599991633418709864820560110132979609641963973669624888199945489983465861987752455583448891242304278101015514091713628793710995374443185244920452016871704391943308082369247540232954587475144854800916008207230274185654328749180244672604717380092032202228733926887548025077079540141299625091844047715117147965708656625617163905024722854678197358778820820556381215385115001734316289776266950034756161063280712548307100554901350412824218949939517412566926284884338394923041525893574655390886609871861842464796717884382952634834950325406351532023881369318148793435343973959502636369577167845087526344820970863338687272515009887255658502991249165978331833438410391271463911536460734753321786436449050145940687071602045436390140408839112890557362108499086452700241355939278922188241753834974884564031731763412314374031538819716589235180940518788160716622909547034363271093274296491988576489243859086948641891589680903311329609213873113587816569833350960696266484681477556821433668693757340530691511167077582628569587143089387277995251969184174863625875237950581493415620630838428961004632119360913770290586850123424249677109496684683692393742195222661354383158981402797040200268807357617557033388512015399203794780996367405083881985064124290391892673906277365579158561354516236696798030447919502028223258623043274527613129048036451406734110832868042302535394094346184741264596175810536343690491109013749446190263904761608417630752512795074177812729139765684574209195692583360954243113214989974053881113036297454090265581512090545077430184312424306700792089254472551682736060607531257096073721192109077551361129449228839976996325639035574162959952733728297817843093816732367824377667966794578228659200077581901574535038188051772014520191724487849410173998745695489403322500921912739261767834403414913276274856253962840729071107351150330231391202069599270844265463545734870392660031191585496708296807461802251542975334709857566270619081846616463790222980899955870702478975056813855727884019061564079114071781532514422809184583196100287859331959162871193779610611134352066469526745222115443964326525530582603363818043092363014000102483087891995868137807132912915454601117301682471294110378341099463165757253476282292517525929154157031330870674338475782565969815860342148454575029449229241596696862409201829526136000917584455530823419937816437472478733840373460979208043301599553471585075257201934746983354572573730846546477249588653355614946709406397598199050296862849916707371592971920384610035774052553742135115141903955393518397079877160384205010290341499678609408328851574608331343284885174590549315942435458834167385314174950605289369818535210909922795511445301124581848323734785978362740603835228425494297450367255961943107863734559277457573742359358879272268174088208342950320052916747231081218493975462832151027588291009161514543531747522842554253312876511466843104110102908168012089204938862862652836360300921581047705941521767522960412457819709332768539472524411712606990013850146984581943062770696193016107018422868424465937607258318621973966868136513694035159341287461348926900771582019077004459784108518792809903204348178835828212861815047454533660599182568067084545967374289029627786153197000176127374937533254569084110392517739840946235448453831492950086066610564558537782068269393360767301524253306457132361518217302437577000439807876440522426067697704026259745364368740566421754283576534880366177277019560286720684244442667749843646907356802866972316657041084182702714697089019038867000979494607594936719666925546013815269537420227369495872030254356663007842283392768352839662021396527619168322912571069199693825493574332483540406750707198518419892027124747334931905697988006933204596956630544100943995566744515800798702597663273847604808098789072794530167084101879102346159065205763177547569401426669914779072522884277586433553469194660651630611173824926877501075290916934064411921253802069022077567751564025977268469053767321777560736837909432133341944876352157338563039567369558411816425867081717146727213904047902785081892976439193606917472982144274579627913777826706796836718656337966722713288894376875936874190701379607729100769443764956770833572857925808685188749938936515107207663299115631674133889989947783416985130814546781198261293881871516920321928859123232859067529173180302489018609193051139279602714311324636519713874677736232323572201508942387196965150016323890974803997587910702970737873427532276851648545292396181587936215739855221696865872309980569404413261202454504594753791655838306592889425373894070533834544610167530950554170120276042287337716976344035526074382520374912285691199591174961396407077171088884024470832771797544101321142218952069978154244833742821135949292417956996452106533930992803593345875284117879767565663914870297202826729266690486708089071580772852072957498858584316589073014306461337399711442391872383224274608115252174113457939798595391427307268289808713303477471037674393812715880598635216927981590490759574871144450932160536512850721917410741970499033548631223096849543939736395256504294716852941116175682592837190168204998636753619326753461585006370103911825917511177689159703778886732123469478098262367413554132708599859769161677939103134840263688805486994324027895198276291623068465677897225538382306422008145298232496396323362469861119937618554458664087180407736164943962701757294598392589935936616622288165300900527724468970476342636418624785279152870849541498081922778009261200239121178023143282880661131199106995270161094741862226131524944641427000589174488682744773357019428862854546062432481468156595681556642873980676809709200439601255580256544007780946114036564732994695927904119707335459436481157953950411765708124850900338603313618803249133960129499705894159916712269600461301198622732818678333432505803313135883557604448945524228237683845695186239048287306071634793865834803158092439674828774091478092120549239068873238943551700334377959686437989129745810594479194230477431119598131084535867797784788065369938242937357763731838010003400974644551405560162245049394589474854406618519849739430323628528343448855753545381423382280057021421949124657485694469344390110660274351584251988138785460517280388954994517473497551239795344786604461085911796891950478587522993841517561974952062764894902896756783407345840560110593866539056006320991141376550669502925197326523914058905672974623605378607423314153044449458738728746061597340407579916630616295384898097394905217775787760232411511574494329458552475988666517242262270596818459154842884684427069502916053344744425584976009528536658642156890694673260946709467805309129732979835741417987438520581840494205026608577800018848337503682885609064347320710990355821861137166914456309465376731106029767485919499172810799217605302852069126305120878051145568864765466569081245725871853822507438381146846000135600082156198932205507903637649376843417922926350642087736671690926587746372091329797026183978633580342058692824924876632961525427085315578200868950484487789018550010467607148207012531259612121542722376653187663190917484980760662715589986435065710176498900143219824573872047409877379261098246147916650196107123602768202321843471091715850645379339184343158967338548530016485126803484453778700978293322945681633777390168808879864463349433112654351682725836056502991657680641249829757937360547699122463494663124013182375681121735089958837522271597974353360130726440247830961396303562304377177607782389096832545575822840629175656333466404063269840976654425399288839709579193302994426697524051145062397481479370744803704255336368312215436239558707457256387307414749735746379615772109973571084661940346421938316260039838947852449335714541297818836080409312924948613145017158698283169504011012451005537774287826915946302818660609035483467463703589077193743660870937653449071619517548275152714987527775308819571868288821081288076246550359470915998647985879431957198110701774569835211784600334372282382543337918241569886012380120517654215037844646212192073076286723562849450112456520023614427612839114911928793462507547632722658525498626910629164687832576166377134953715465675224385915810002884167647811079989451470504604369427996585543772485822999914318612978544534425352508181647947047784841066222829954346467891025323471731754935925154591990996173572568303130437810207015305560936475531530863210093210800574621380003062163659472243156305073307361195131306366343424872668755122920710047912912202983888322754691931664307808940683011681027499187743034761442405822625065049940143758941050553119640883820701068514138478260964010777431547579646313522712312511330034867235667067728221572511946886819119558283577482391120141888038774082184014498709492337838961588554560411956462676150579612884423887776304308851667357609490251574367610429824224132236748364056626285833576976244910511553382007747454585753893997559611067732168772775932203361710163545195892212469614813492477157075905344008173177867531473296044702416677137211162339170490308763093928310827156651135032885093872541941119587892124273621274760996526256507648265418270273452911559271968115167893929143976666330865540981085581425663220669096970989607836342666384056054223560783463023647935482802755995558849051349875324186192280949301691722208167041690059378381999040573941753760120010096363558658250226369045860152548142504361076035580564097349529837216651977876999626420577925674682451406022767492552571954544330298195238628257058494467148097760196050657562083555786422919637799156671948736953338311452670136575453298596179327519679953552621466123171781745865675933313846778435902377120511714379807808417529879796041868250468809112864793586567675693363835057824105565335379352350636988925190697780367415405498393276249953861429437161252585347035981156857036824993721924330365617798803091106766402396943130233821334779166432058441921308411133924285842412182520135258433929251671731420810027294246531991429006171123113387698909248818813933281205437586760686433141485206185143441664157047917343821269322051436879726956940906304589862127697584251535694450803559863645060460577466132733295757405950327275814000076376483736282901098386141882945989917575543462894063088971745554778952485121430856996836177158033678404068597130524892394754598914397041957500077327353674348379596237692051180758289093775803260873073705448174269877982275608258245019019876168266147535160074555821943716844607851023450106918324557112355244466805347116904613395341595054834496066973264477086691204987901223255494481292988709922202779876976495743226137923390299602728082690431331716454817903410771914082195811089350350295100711530505749683442177908272990281507943255236875085776632784256164942285474027367677863172674268031913913447276014460965915192687921622933635685475608935877483923419187687408161570359272985998053761444539373276093018210376011795214107886312902695664708360147518433571469059512752901466055359061980601278142922549239675032986286578681500485428274400368878069940056019161111410564363733326375894451780860263426479521270230695091495589217545868615104840159645074208967548492675236665823646073218254191959293284852504943779381976954624905848764391743863946053206529271349499724764711749209426011465379241523033083870651130744492791695419372117736286420174270448048571955184358529055229938855374701549243674074215035699973112149267361723074901853227410567804419226937833065840646337314493343020648905843993993329775854874425144012477936664100223778288321276291463278199255275808505511391024243191362252274388400644275520735108269486046832594789228964180106927467743887305994966389012889594941897686598466190389082634367347535368621641346756475133443723805641204388618728488162413126633353741505690277939082186924024073930835214731795527777550627504000362041682547626278991945947250021452816094787485177781480141267717352084732678056154732627864542831385403500302140012209815974754733070563169417746414721985749045411298281682069179489726888226587821889049035204415055430268004434467046170623750691275085675647874121632873265703585494563660900940936732668786844404654544623721461877733306662717194511826408224262058118526506930952261020395336226798600572095645473215718201945657849888742901744234330265706095716836002824450653887770428338097178795158174120727040507357023573672798408086309425897454222505908293177564962976389677729046854067549392568425031555165581879583662374446702384831980856394963503923702677359696672696557423330070580135056112275782656966113376031709431338224097091510328483854956466648067216421526937310069327772201419340277254681804468697074282950295016054654492898312136658389980775025482198737502606452823734616867621296692371300874331941405357961314245906021854638691044161498064090292759664798850103065133496044956867015153468183797897160053002249341411641592090727307584838470314859503027294949669200528990642359286969828405536174786881831708461280404252340702507396222723018086478648558882637377826159389533129022676363069296185255268928841305624907488354801183378796711315008631913532584964588064898217819655188580173943044350791977197844076611726165904152902258524714946352926943626398584593389988047052071469157274123370634837668080871686126074075157038915044337644512539553566836569915599417782525026340444328647916526210001887221414780187066550689038841223017746305574759182465563043425812558714484031862066890519546155449233109820628301983481200387260465983065057012488089715323966091922673449834097625530760326537497800278911782581117730885499412737501596342690548325685730192204503120845558075893611566250580504907941956436784512533263744173924180372279261393004265216458426959197885072546185564272003128655791051140810621526018858702864097228952968693132957046620694023630596597508795595026342691547754420927353186928794183041357449619912276436741013000565065102246145318239923580670127431224176597253959698768856436974466403640506004591357515644295504124700152091093526393386771205156165599883646778494691332225421734456221975078072650965262763606125587714559520134220867464971467142024534475974104897205775918579058708666444664776706860600878509455170773793765270528323736624466300029533633327959218726637106157478845977019453911446404108288489401905517601493245192542877529606159687243012034369423180439325940073345225303892265217469391271819591647567365046556483704624487899991558871029244755123160964863377383051875176185928920272844174254629465631224867185674704740779327882305281026037385543303892900872125008283883613730464572292754498297315575557632738024119267769629752386468862753949987560442173924827766869760475401465149717741881488607767008751778799679573283328142038390045021923508298987715900515718046134029370374790685604645861253967312112099267897400204986109919130291611207927579860086516143607790990872820277969838450133744797294276030919504518257213603875214009749151086868601931226915442476342021292210413130329085589754797080338508827788747131085090913327808764022712797211223666746758340795548458532688675849874405569573898933201041133533045241217199465982362179458944638109808128691135809191301502392876768167099330816069569530656121239885489510223643961079292312969255437838137547985911570500081380777722270154895804982015881326067035173819427608383353509795308840586214999285399867962584066111211507303826418661602918668852401885885546045022813147532962460163903546336080069134814726940652401853915273926088793086354551072752629618491835432588519606341258521556768485518372139407468416996381368204175491178700416324605768124694074366656447104042340237584323749481563026207839454957440857010070811965226629335099702290112274722751399356952296627066599438349495622502803979020148301087942140925284523785070767743785182695683223979454277299238069862874567471295450948886180975089516552432805682325054791381134849182641671006023766517542482569423328114867366131645336878506630264524314859419010706004730428219216736591297776822522744664385155485694072533070908790689456144663114599310682076163937511304794152247989230566992251429020035827196130108263534627716352506490176918787937836798872558189219645490662042755900551608817759521322820757392493923940003971394781281339662588097774879340906850349740171445594609198220896349014368165969536884294417486145672205633429941671928210117418200213790780622744438706607339123774230338627282776134091207806116279344977038203369773821094780444516993694980654991053673163676679595814448875094875732886110423085832191828847862306971535397108633960342704095268869774812355504070513681451523357441919263361307649779893127332948284263569990561795111854136850843266474816589180391037071164110632682201781116584296317178165192848463573646271556841037624505719676925858616549485257539091549677111355928220172950316083428030559792653701802627615099824291170724905081119590592174688352689248231120383590929119135086539235869646100290761352037277326074007229929523513595719503985596368511426340417856809798752817634137634643325682401871362082368221541704579902586185488211172524964719574561144248150811402670803510050671932247152394024508214113875545889759756960350632079831514342358146106472182637047572458757664763678518483051917648452069917319543897113196228331108316675665256138775714784330495876338949414724836134597853211141969670872597741854268691079048018313953597065154486744748986633256766412814314836577315290891864217632736837922910807523989693969582140462309774449346534183210867357048983286778371413166552887725823016928194257115843608329869854300555125547586634376587084655953849754237332192578982722599537048098911387322707808809221443932712157403507713928051545962817441383854229832908930929372650469045523408590590331139192500514872565088405725705464038748452740936274716820080807470691172807484068308204730134365207671021054112271936391872897912911054823763534765319275772253932354291810236551626000993804735383685236021580590856995375170590789718946878528879747355295970542731115443751368462672251435407831560751324307354378812039337582358447097207528656293937452836918571239955202494397823028022480882129419117292094799581691209981609142949198878158137018825923596986555949965860605423833431627879553727762443570791074283615204232699565912109639865348667734161428580140358379007994882935808852111706355716453190542297678401594888679209054786076713804139240119415657526608402929743539092962988963740847438520811785587582827132252438313006335031084901090334141768598705909986898007980809366686402924104405799926399470705455474967198894431798748674541192030211070354392444174975999558160961327061222573878569019364801989323776522006254841994952455923983436547793733678174524384022606301510575745815389796848506846769789074351289510952073445729971311223479383111192953831031420358910862040409230823626184891645265594636048390343253094194993114279095356006431380242426288103532370328623712429063773510843444243072666524681003238296047851411628801680972597573232297614891342000802148661391898049151805506749784868267709919889460658932041854514744629285795418940504618660289753407552064452622249045928874151018519260615275757595930627750835979712513752361158635997027321897975904135259369818901827200351139597044921666799217778573574441100548053994355486386012150990461845603611926224429692494675341786375701871732968564350117868390956775354832472744351674991982419672111843179964759475522198423725642176528806327620295837889297991238675531872451020131197812458925088146429632284536984877756027628818158546686349145147430853505090067506544148808263728504199926610018398679133952700417080506949746300877972645746546757643103959312081324356466694249304854185487821333820729840850532020976703944626748041147356606803973581791517006433688845509481150154144670639554751882889647875982579990803989005378804751366831258563862327444449673112369369308942400501952719583577453315987852050112031763054133504816061080531674450939111122809519161409218687315784678291445066270356733047904397011291140740895580068688286596743308379594291716452475430405603428004305537750810521247789830694472880323129297022972462677048676062726701325866177714150184121605492317559588010266445553531363153594982806295115343899970258315170299436159391637031017854966145241575551806518757352738507182254288452169785688144534119107950888943461566270086904891864793733559336038547248078040657949476547527302246849541216622058439061040633211492765396910415339070492521647641652032700644097448578792846656294329439067886594194191130292248682826411157275740056611743814164584504841256478567552134516396740811951615818640373437042143714607653599031959675278042891135605435347786229458488510693232363425128583998723958969170879569508210967266764646620516406378522947103747360102647326756767842375718259885802434470332525307606420663743575015814865347095187132310037017165012360793553287079819275812961995793574507515160285254885050122625660060265724946685974142703992874692050683603449042257890539394274313535543980368228440399099518319581904221879702696458612476306531388509982720072635208941629403972138694378845366562992064185771359998365635811691152749811821008338192618460123733370689342329363357876925270901686295138310035724374458262367733413169672291298653618738123392521544394093306073591979068739454577762108627072521632451843406559003665758449878295099884978736315066081692163469197049057606920441401264342951153400001215592339229913091129231334459668815053328110972889712524252786198071356404202262656242999124961768432782212081969099187970792618535319569272902644118483023784051064070314527351635330072576667236010816088903324216843519582824706990744200522098630115703439271092015322568411618872110528552141132924787162050182269974778734754390769413727354750521983142527516867786373217925453852942241210715239242271242307205947055117450965663411785128713937307801017019025749124207481794009666954498449286808737599386308707211952110800539167746522916146049286209042166145139613951957814709480319549436665138480572022566471844040422596814588402894472766174817577740283816442905974403340403257544657732582564391999780060485470705639966506642370631453620361748530875286700459169238866417444534392272434713336730511771498356928058913672215301341061521647205370971315252148018914988708018660512699680599338168169422071022246972593874630082900289755001737694273048309364948897982300353150056049853796116389892656573066717940095600643896778433902838739825166736611227762789245048029316728256087979124597507214777599752149591416999182542849860702825961113008509818529391138355651539321592677733331834152834385615008568608178371139598224747064446389058999515343390089666458964941528779242240473928164150954313531044899325656534223636674307965813573445295434665297343068857232385019151141201621727164638053749236911660559283279392780885935390888894325585839490559017929365042379222920970342989604413535627539798143883650164379128470299741552247340467370127227382123387735051884247101308160718890391240229907431650850653107386123100855524145493105031439024766986818317944616166552017324103310666177508105631267970747358524918330339643374659661263625051380670187885386740302991197658765989719879068531536365217937725036328939009955053174561433865568599488342191361477317985651573992985537005406916406019198037468923961188967147738625446795561114138037382435989675327941325769575311224705859234193737251420001929604396919768454270404951059790765008415776063548465079827632753500649292776977551640607512910980222155704866920298725930113694220937039544703519521321009430796397131352417886857059816234468134562013567696324458374075650991524107134219826488041305672897640417640700075872964151201238601292464501842769376897021293971577378455793101837332147928821519798774135312913573205736707793654298203472292384725437602729368987246179653373253833368513782875112605522382295667064576981958805969046713165089649272608954338288224546405192824968484973713047017705688984816884452153538789361377572252695459637937164408406814550812474366474012623500874522128687674672351614072602195955217976921784638948621703958802894566070252970614950571279769050835904191074688019563490693071061638537047027991478357165300712220104506878201379353233502501051725313876215273716122084397758765618563994869531067961115065492101921623774129212577316838239524320077493084618372391279460037442084363610385026839252089622802664348364067541634750891934097548420436810783254726360675789757191251860978285888610919044446392534967297462130056632792220519094633618656615920685171596274177409034453234227792018306703492092965889737377522460262227597316737156709960927703686158235004226813240208325928939517144661250317787545132341238643492681213989603330012134419174068307007168664082047788623007177394047120597129936602846631860806710850928349455853027665070407527567334823357130651389052660565099345898242345430320842454554317086952378896139536727252858353679686791147649641208039380069240199851464665446428854315041139331445269515910846920130215779091877913235378925313357245303199828683996454986352481234112769873307181602878303176660731393129978846063104246133209162038924992446772324046284229898334443722327949274584177935216964776201315810726320937932655367285105872939152337683262878667195001404378198496900437541352127622767531111484668660116870461953633663458703684125596275493415197026485479547259982375852087524434217405639299857859515651990314393543941954736802461528228330390393386548124562599888774272244585314202505426381398440726649560495196256332424008886917561953353719939998395329736234459029020935271690564773046352208886617801653711164258548668987521478479066349589480674321270694338069255602017031085021757156451661283778617361066626583396474144562178241855880904977342947109877224334198258450269264315077619803395590624757559268938831490088626401812877191724676679542216104173809291984861765005510366642774264130273971705849146329966331238110720252800752183572210920962202109459872456937488140644636514422839565297449957149474877553605131413231865345150373390699432224654554894645104206391114523853526493820822223960368748051341358947487064905990008569292043411064740460285745524068971336888033866697120052119358820967550151276116556484883559692155572624957983068141129508545640042580533365261408632085626960976933311066206232259379237291789612801218720364823010222811426590114423941728802030657221210628720682545128548089069421995662424771606457053810825359254923640816519119702682846969066706553492800425435346845250294540028750196591213741918387757186286457246662441244172407494315085303850688450461311935681116828790255444547992572110166190081283869927769246381204717101173089930943982497715908933054666594245311099070911654055478108548372429377132794463805452776344886981357130668275140674426591867775188233440450012741304052992015978526999087180180023471898198697765692001062354890196240663471371498376133420377321899678075774868607199927472740967015914123292786989127104280588318033054297337089206060744288552805198767462842704284808440687193482002661729833343192236251794227776097089493507187857633877279860917846938046049859462267735719065723182103042549761922775283659501712225723960376606127203120282773966839595288367145651910670981348690849801271086813305525882949238899215374821295736829383757098957845037231265773804106839174126378769095164392634369209534398185651570616666949710593921420272465945447892677004473786567488772441732364981342764331059417137213967200618754579292884010370174315675245497940720612050799048290213893129094989761494671119021357534092901821936041105385309438855803781812403330586887255278082420894623520885651193408509388654162371469615924049495112922559401197085550762743894436122976896850870690875982311031186413123933645429311002912936395579617989013293956405251400220110787235746912716865641001150574319699621536485472733536251135167991997862781568661719942157047975089261223792120659003986453811050207516802426841557668566722168415095518078644653744368101401180044129925096416691676122040173025391504197828601889668229572263995519528546653399436615331066559646118219988646527760510836103086512336813745376720412097590991197781838098090870457411294476955606412592144326592072974724321157408085202051778466004321685039592938001650918777503174290639865504412103151078894440033403515081430918755084316223943903620483052985403653885829844441971417200337273873130758978666046409802427598233904279848774794954826738420111512078145179406220567547604148050490411293129534752829577300334516206501562788248080130449047618658572301031536531392687468058961283390351005819169534864155922122240788967897297473042789986330937303134724579497809602479805936602816195444142627285595965226366723347804159534066072450579286104338755681796204839778846002765596122274521610554625945228470388212324264635172228921563134701895494881491084977360461901433740823118503826670334233718386910437101657869251991311653551810334654805181581300156537105911639917894932058896364608728531170086241227261814175274181716915974041583392416922503139438148595472261911851819988540887354080488598081884344105913059182755307634969636713400660689265591081739836830777648391084894818568114838372444840594563718398669032828792354871163907734013347455966263863856418400221226861963876355686856353344774346238531776475272673145256458661576654290717198848410680197150955243182074764857088050993109533776883114339074045810357774014435263779582517075672756521790738299554727700455836465778153733332277841119385792209005659185728795585630162365867675959074344481129589551253283885905952983241198537452416466101546067924749486969628742357970149886705546794478103314168367639647101431981799376983014206257419863212764111429173868175919083926439400939871603309872264684281683552842696263489732739154877088083290700205643356553470687973158409717691048519061923256284762914589093803293284479234424106312568091679707707154612562005772712033330386706370109637568202245049053288322095655280802951404671860212420861432773410113818433626318392757401147390881217091300743570038924588625389239961952669548645939530447089408601642658569020526201761187104500579127456990132621419131680031728466450207973302756270257337642887537803963963637195724377893890733940186059579357724411512692442496652954210438130689555023348496667580731072120426267703111300569135094179760377879651845295481104042737916139400238153066386518811584459747188882788825020022791009677117984746593712577425519592934109694672895521855648675589774593517875737221432198268319909906212934801956114626928971895799490786302310765283452334061669833602091970192797453143365556453608194062283940530190732218746699028710243229077614573428482533934259197179512233775792416040921926182162461349938991735798633707299344126600782302579609967268541394404449376071067407590294579904796502194514812924741437695986567563883894537188719670705189766949964872447127330624378104051624912403025731954794914359395378274114045523748911168796113130851311899597720099026915208386087027366213562345002924212359420029141491130583068295033237303350946498372985481142244237222165340348080635768510448522546570436247623388145175696616692697657811825422632713581348559640411167636333053955930933758131800799960094982310614587661488015549144672757492668376688639537606876411674562093730986949885703522809662865722179594524685004236846713958014647849964678876531260487333483955411122802917582655757846510064273302759803564512385344563350400501330703446703097728024577312262752509559962129041903298545929648714980532866566418085736582897588340059470261672620710001297544970606555438033591144829614991723069801897524149051033885519070727909319811534860526597869931992419784703832047003171679413335484549502614512612424384081893486559650450445864193744288182490649977877552718069179881375359629446041289339368633852624046225905547386074088650469633317535821824134000366064379270024218654830882894666549393494660805102012090123000333133861137641893692007423588595406490730273880761667780689088761589938427458132115208472591717346661192843026701857862417988812958842926545186319983912471993377146225492902080972649093604054065698860674004411281030552264741066628303055277851350048046323921144148820796234656685098486769954538684811775438657406105862080550153239173683827278408676505863633638573281620893274657593219093306419920696954174852163176980006291550952185078776010429130218604387278995301092468435921046026667588777859618234658104446659586246684701668775674507429240625798828817699117885192782130351865572013022034473314529805703575123015609723238361905602055543895534715052964911946976713502365837231966853885121950894137537162940549607041891585546110573226972705204553448197892205306565616099431478378458510198962843747535834443917639455066583040126178751296374313378810713237117821822142430576180523963303515896052034876806236047314065756473919189975140784117469518595750481493808626538345952630880467036459661375414718179037921058424689763331361974372530234806861749373041269814671481372133140480706309251504295804851415698839732214524032376352212075809956195341047649318606564218815576857010077170668009126993055232117468179568429713976916803615058001905812787211338821316951705514498148778007253848004005700376148297664540262867512152811155807180656724369499205532185833799011174754172550630344618592153823539556765350181324403454893191025855387989883113486054462666681878358803287633450163821863545816128370019085112530133251380628172544407343670123367672511452310932642515222536916934277423733697050196735008861330400525646843229904934885465883691972013773051773875643605316295499892713018926697311609700865894673792302319689513862187526478241172591388731688551084906117450490849079487366766534385436025494028852558671620986631223611178767159940338574576568094114246434380052386073034271847758522319676743511559738945686365009939695184862584814901430383384279078410314144489811034494435813190676068361965281904417847028061425830324806290915085823322724394911085814612149119990677927034218279051973427856856676726410137567529624722286334847769076552632517495662634293451574573555510056569359191544550588968216722063870375615224684984004671589483893021123087820225720026892560151899200271329122176346933258069090612614652246765470344446480039977674281292883055244388136470631400305907421721717997608705372814725491475588413764506501307969806035658761141151781596977731483992681138928549886305413155258184722876144458285668292553550841289849021178135519526197766164614310628848909651086283180390944169281401807989954311142906180314474476523674212975844821066145677027071246592410568436865483438127403607784353928099587918402151039923996111545806144219414173174861022533148251514203599086317898333483126926047853400488666953793387793140113729676331899564212841834937759544965474756030526534562018834417327719263960995508327572100632885070085961259374924036060742038155499406290426308351241169830774522065305974527137250446598697585074328263033106603232314573053463124008785359403349951092369708669692499713041753017498051050889359706445095058953558716384518028357595536642312839168677444733312084572085745392653437906689945666850459232728883280387055401809255591351233045426185157740079965614529202612744752186503469478711295956857330159809908016089685710724038026340518750965720445458832701355368639860934668023857671825236126822802256386350903785917706251824049691926939113755311357594875568154146927898310208497652009501396641963389725763786835326859660827149173957057583278435628438628129609946840672178520671881824326582870757918408995646748871443540509911059073293068631132900073829614998610221715243946589837327363454816939223378116919201290279838737397112384829458611471133777390463744129665495800221089224119518983502333057118422656730400089299748951513074830326631923059979061860981633999371336906702153952747608764227351672710333037623106439059397624702365841551334820642474431905826683499632872449658917276161481211677258197019429277588193783783876028443779418147687365166396432164622879937971205709900198464405351322118647056725623767029720803173143336771146024868864913188740614521999152536217831767228016754588448720442446413212541962386821330404312425038009130667585548915111376929669365376597405822321563239762800127662908684280247237604687347166641388254596871858577184851112014502723028579841223318014710436001316387137956706573525718546587941522967882283044050423898727951665010855845265756993475372762204825966618579831805649594381674307772011559583694501285498196471629777803098393382893657330677256448737161193430617048765263511068149300699866667087744928564480334595959206594578669776805842562704260907411259018829315114536007524379556645324518763755212016795990056293028714395927690667056710485958742605828839929984492999196576380321535804938905110417084966961748542298956089019792060233101201906497325496602774690364710681733480623910662429673632111197609792391542302679934859386296412307696943114113806126872234466307233261739759961325618498459578162038477463063409486481612870245183229110312103295001529831230092946523509633211191187927398181963486773608362910177037783462918447041697284572259825675182087350948446335322881520798415435348976148085643446031487181732621879850107741400005986882943169495628067791055041473404096177633954637527838448515305250562343332365277899533580197704349028189970758822672639893864229377051426040446347356959230573996518659648931224004231096451715225658100216194469366588842152589381262107283462142077621996370042478385393801734307037799319771785138585872338717997097594551584093266343821678334402914855344634527278088988018707473820289514118590189228150527725015840675624719672421986898793894043290542653466474767719753039399283962020838954636508619576879037606367345501615331042246111422668475491498877862487439540537327182259781431628622102044826981790156680308993375100625628950624656232644511005238577364500203261137486841982351970253869395517783424391198474139662795932954383663184039850962274017402209271296620915320861594150518502080384236174833796812428064323596528459691360203290169786813127092721613500413726401420428993775446599598153876290253821949883151676096810572650461846492532963744873177779250587226486541776415905123499607789137492509075874493703364668318445116288017148808582545120641752642325821134163857342797787305320036704692025501775271329239413564751705613855419730060081195377030474568540980962451468493030450017917148952014840857472594096678143164851733268395350079283709053425412099227564813724861779131666567226210519346652331498037439110002029642754062847441302284929178287497576839560605191228561720393311947786597811730542459377128455633479328250288080624311889403174266149376063111327556191428532791296418761714997076410722164283574394692256689519417403822651998343399749641935099151126161926642796595817277882478956112035757386934030847405578018580731151751400859884632783359816900940874553190356925108884615453703469176593265307072407401026770313234833990113941591553924511102697867422034025584782712888878243438046133129910249189935022643845167030961148673923662580415682946864901111525252633530401208396238750952627913131903953764047284829928330972349880307656046293169461113388104090327056820926711441427044335955474302122012255169257977933836668153775791829238668088095829912603577262298227067394893739834005965118657266474824824761505720505239469761238206459067312905154588286119436440627560469035852916910234091673432173990938881698615651710534825293568411021370554014895626774585453022345177107614324835958529705830762034966294294116800984718582139876224479033869281573173452746534501613703298859112184563188342703897519668088382749372048594431603625727321214226030965967185581884886886031946564755505914063584485446878722156623597505520818984395087241029701064295242709006980505371278543135637373224261993666044433111897376411306142077282984302566496958641077559026623795829895538904658653076136183350528289186623963747148127225421680634109088154651648093074708624760852380569363503450172035063765956562733125923365979045876203545449980457319237924545981677138851293840908149151510139811725213195919767976085751782253619772622192837749120228350752190431173879390760401615974262955909150954129688076934699185006959240885189078345013326211929223760835254377754379772169171909404579121830221233457304943247533963638424629656072435511616716033259086123631260513728590407800420552282503625947219814455038334066988215535181471018006063038032105825392747685122605462454951146298586075268415508779778844858917890355370822372762503477193151301347916156830263223200299062736444516525221640124596844129798007032944501671283890439006304138578679276390222178799618003468257789022735116948616023523778395146611379665059492405608276534446559729689213127425325554563849517343237606401837630432432168012819486825928751469512887418039827956528243886348134988239031643709330561118981815263897170614335377030269330463635092118899944811484828200720873361616161600547906661828665774753993893107187165677800027387969365869647251658806742423973522053048924179781314668584295615561230792199365816115478028130259271893553895928145335111583274206900305813619959309006210224499236223627491279396026029283527162872222544981307370384040884978868613574499788784223313203773696717249989311805202077132906264234818274420276228968946576322177710209259728388391877225786800767951276873548941417474919998045600362610079043305773605558252278475285889537929555453333124337381432494344482751366205446883946374032914658129017599462886754788546776905071302632149515637937661091543266799090988766475631123226595163678918826834961784800249998569623398633642512570456658098341118930509080586531526006223930578957525401734696646019841613386879914975219823407109542508164584272889203169985323225128899495270598940569031199100392448078311228037426616957172925532343897778445386937495371498671343310543284824047960371145672687885824084956709302525664079253401223944925952703265137878906901175518576253302704992748801405794411685379854563771327423415060348683665073100540023755069436588857841507697284381946015654955248857169122348993202247194647980134419020149663710784251068961285446057506631000335067100026719345392126657953197240663665212422884029072820719867704669125076181367472371611694513588581809982337833124350444943406082844679635971386376527576985722536887960508414100639810261828502316711634297498402486920397925925281428991567208552829789413580557588092974075833878810176419403340274267987183810375941278328156105919463619321776430442617379420255237071129441361969919523199791122244848442593113690350572777746094559179019114074328677486386338684862903060340511057474017766103352017758482009459231962010892948902667755993793860360577287753977605626026048012223306932984227009570658210669378415221315542246425206940826615849620996381991459907388043376538430413234338638025472922169140495460340249721325412321769121662437291418513004809395247087477690074986219008412831363037860157759819259966272480515154665661849275423422687522635031592007577304444232409034842307479875951088448507053439537599091687044885815410408251571160857695643182242425450253314058506830258530272361042516130277269651719015890638550253889870421846790903835428728861800114198713690414000697312828300521380245620098092836819649950217944322222639508224624851694820191510654931834919584786892567424671417822434900738843199084948557168446989615545877956949283043672957384793202377119573241485436793553148163760658094882689131341691307616582935908110220881964342537607325795796408050452789677581698512815770401477787437224199642297442808745737206737287906353607505838093494940446516508011267869817926100800647116452395311815933332439341929621391995680451391516097842459794131163282053937529221588917734583136948878646993200284910353690369135682868212019193586246907928944539833390601948584642716977809196266439114864447798114568308491618983582808786744236312103858980647905558010065076691378316522798316756714973781393954588832786636593016789579278973077842614270494919297393382825343259584538623946515246679020226210454128816272559767693819529498645473569035023147798602701062669427745053418587344132987322199207063301973461901026532506270106722714907643152833257376914248795432754503365881309175061377960016152905951396306823756317509604219509188574408661832421062422464564902208073154782507798802512666828119536859778779567744697004567658475271538785848880477710524129759809620158572052133447629000405019638842269536104449861106157371314022719655983071691435294239060986888983262745116288436433044118401182771068929304506906935910802507031643948952912701636203951188462685490519874162637496086969023270406953389428824494067920215705879709731800834841857777138049704595691593755809796407271808542705394562671957046568969455464646446283260262344226494063838630873529633020990081824407466978901663769829687778158549627551161177908775452411264103014421127052203724119082821170884871079585373367046342709696017553375772617750555511342043670620492681504103624994697231282334512210592967683856602468153453331531786321187246113789093588242917825637714300428255613331222373112415026335421781602207266055575447415430345179173257048677003270976375876949895770487422102172485188716032712059690121032930339927277083020216663453824110128190886208733113564981410331300582363985154660087274882432560096953394583784095772493391231036424784903051414165296604702765961267579362475295868587918789880847835085072649882167526280921668289966128207980502654339916529567843983802709550027714342975126581905853565845678838610037321554788467732427977004074231871914801237160130139477018965859820674709734253134150456690604093481206285224877709482415046789180617936354079136942222831022137685471791032230384130888516710911984657829343998719774077381330761892430362422375375826213134974240401740448984588537242660974600506144894110495582341416268306678757633936926268721537985145577728808975044958207301860112072062436212412338820161092541388715049118665792822289666749816361557516338403919652895650564657067268473528978475300818706821762356849559589667859424807097309565555152689546490288288712576027427822369363803766166324155777602918235481768356005260076121974597840407042571981897511058973584490508507320260652361706643221033655251249084515447402316308957786813298373732799800573102779077891179761592571922325933681300083461074455356824018757924333764306234893591118204927610937969792498032340362642692789758667529711101488585272805188904817153141072853454172463907242617646834275325193264497627251465982885544513048514946835387352195910319482034361010267554213719147584789479850411911961748482726993151706069507932383566229408226119120891619136748674802368220591550640783215257858168809895638360400692996136518849127917381288675271341709501488712223905506382647921070240112197263237420279586907142248804176819833407142590092147499246497459102086958368571713346179255339717412261694297996830815378073882019823238133977681723108611283845149326419421531422349045631684907849916765017555799995152977567498661755882281413074977886937478104581236145077045189592220224933437463974210777136752470370927040925168704826119201601086623799738363878898505777916643215455745156830254931747650832433011106870182644510356664793100209672097905718516256761143132338969231656504649413181076014556079123763547962382775375601452693107603124606141956913854824871028940741635514482443354489572770041820272410113173134482639662772134861423464507946847852622082491419568142407990431792326327748196975963006413082812686215005200783166038348733193726314364684013574213190124583414795836376156052265986080417126239745940833411219837259050226555860252606199697209128971206008329602607823995271661939052758807305993044314093866667247206823221691759326033326919539097377894046999028542149198659417599158730492754604288470680026719274275838905371978127952946944604721142106670578004781459807895943531763093005184283794891235103323833865545463298327997682038303981946898817557126921078487257178391907903430231457676676372130520761629426623219353077396687879100188758652502644593362646750064744983092543999265020622124700174072977218855289708197057725158409592885972860737853529468544856093076681943308008004534993538720188271893858422262943220042198773370352361181988846416626777695814228574332444613752652567263911558507419158267128283215756451441786303674871307359469703996513902503974096041065872188630867242919952786096298188087904579814292832801457857363346062110377039015228220616036666718130405482089893021697013692038929166673651923504717042230674153819780087680247569036165984112231900216002191114818433328885228438381611403309672029840404613383817132048627785718652315025392023301869148631902210571285819108762814321686443846755451875740707356299840172145289408727881082188563805567484788214163952460075317968691638492727532866397027948154707571612924040984885734245207014481207019633491697900868432531364597167760335567062603300843288170269238106338491931339871154512108427664093298746139335857815488439625055477625732778159180844622504628659090022727872414147971916037616805807868136960139022714560137535739718401218934485111546616181775774267790667236353288072791628374482760988194489447136818013442171408040593185622183968931040410412015959973545184217827504523706687281365498693620084134451818161125886854874334736533999507855308506970447346731646302370896040302979654164514364096927771206609103956884989757439581314515165813630797096072458372391348520035516475786466518760224695359005694505026197538704611298201720292351963461266192671118388087626402621446798487163034035494308029660356021981863275815329165895021196025520500591806012870733781245367927818057831706832037836724601652151473933821860932602842297947668043526349336090877037135059500218416471933881403781985476343482210939741645465409792055497925400138153991961067235383519435612183325602096448562043204985324618341093883344092465608908608555544230599235110138842258452763647890928564295994821252333277607780280087743837176187661387678094013784832073862283583809702073747595046790260307686653413600059494104131094937985842130489820744582638967501430304005267095524617928663478339515924451135339647779650007535178970495744026678622182356656188344730631162700787485195629887991221986945285159869483801004819079578211264990590726050687965151683940707490767870905288557845801487925342552568262264080283235572796218894250058522830344066899923951790404992706586311723412398137540414368551584333574793481197117778194504058750679882739246462509420270867702386604756890519851298460639043032297378023275478749394716902232333248436772704378086023563227753100542429850778011331261245969389983329819692922282410822147951876786645765573839259089516655075389839057693695896658117894855274037019722977673000422415253703713999628614139204251957776633020657617044078212983949314025101869385075267682079115499769234323591783548241356003909932235468543149279221377282766216050815217266204385369337439776820852371257185857884785290952486144858742609937122785044984446578578027942209141771995172972392839388433825997828335283041510208881573283596053914342284930837519966040534625175977389567817014764901921218343357772844435550944745028299775122880427135016796284094849718861081865960668810086729993458280691845076957295610720464460926461712876977840353264906279207061326126812008456161703272469140751199750645201398039782159754082899179632148276869035266013674991031221906256235979671812101925107387980183030869782745589352299993298859797041963279537784823310742463334906067100084379518771422066444213632825128106341361689537454628858746721214939173066234394377549209599189714889733238855827962748512555697366187493989285067945412716582739397296520976204883144646164288793141089153854323944776078318114357962887408245224066315012680686724369895233941876207679106326747589499569876500094316013815643848129397068617373500670008636073408216988334464886045728306668238748248812296245158791049195621106630352810539936544675953618257302102550598542392406699434598266498956583821097719775932543455600072221837832306530637984814298119302504911413258060364580909880166025163876674556914535401233544315914692649718779575582091447613699920374510582803646909280080034269003960430909913513549050991720347249747757004649154051978923059299340647748476870743952114596484704093492163294041119459359606226682540177785994435576650167599683366864457915230181884983463665301464644408905729386286917607799055462904122937851381750842477244970978644351826520448288257001939351300322376104961647842728820497115832176487180922272893408997991775378958856984437726556241186059227946444959019222937812053481648737169113339228358296480218606598958148280874459021856130256057041131867659856250961236213547353833769822965573951860101934749912014635158280978056255057950760644606148398778770788796523799813370980011411447792669460298945261182318553655601930048863096473010561028325140974357453208185850347647507684309889185434681110441627188715525249607042267428359780162863930033064131264827560495102301084950911267734717132686468809596060922852933557988547141248896697784049089060678632968279123531638784070382006114547584357181028346286200829070856877754041881542478922587808346605993246005568435740778473359452405014031261055500530100282027891801152566626834364640950533342798515241474756938965463338206553523256257192830088629699541733127291354864207559644278067683208827046054339980372729476601823642046256249786733984662716885924678901766984020817445478070962806654679024488467617679675946511167458606779317935205295555730401858124960249859940244936884418787831393314249378232039100251076631588120120778819039086822114142663558275442075554442157915201873625238863592184452841061995038449661162162163705972542303347029516663061078428493410469576055941665013182632664528874914127618119487829557117073002630640183011460364268214794717591346300066336559218076571994367704026744628267904479711805643580262840428352104194143393652444664574554528944528710090420944159149860727095787914037357787796910661263582405013372599508468962195834267280585122993918593903019022597317379022353610830159255176104760740469216847565049837758473515007652545746285226768011820194415681923511114644199914455147311028177562580790203164800385188686677002216592465222671655131839455209643066433741271414651972374544493417183164685791799255950370838250802760559943750622181941396194240711165118436786184270392184686793502557796196979127371505380405263273126989785806025650208602559507556495104069296712487395139096402516270950409042420831933100709849000706870201713602985798385007791216265663396736908820594929665142897241417977182000058600859221132865320077565998765990639720056841659750280437736790508465940831244073486137201482077264278290334644960627234567819675757545538644140321176688705265945246497978326250026340812447400173949151250470516112804017788727777406008789057312267375642025720091831840225965393247738752100218331744161172524063728144755984039114356458322433604727141911066554754307078495499022976989302424060629123020644437844332995379639197982282288020737233491935862646187001850427876953467661400755650190795091260931764785093451158416427251738783252996591542185042599348755818058719973803106514182760827157958657695962772773952344400334983922718500940123677535149448405955407804534270214417053920874084305692804365586828625484870041396082512896128226246117068064838906957380868773640900511922128983887379906065998501593692325890313109084341450976316919260877732488617654364127287655852579857547463658314198103661814986051069426689264464289118744447434094986992799989297893662577397603597402553264631665813781317728721625142453644957172557297473222043078071352694270713469244567956029744726641819087951951085782779344483730918721938950527617362108120750629216643595858725236106493745518214084716216006546515859518043007284754991193655685036366195223942772878317441132527430291909513963439904821195566866206770193784085800334925776555068442433827703396061176754447890186391263738227369012542034411674298725463044385535692713776649463086039995778218755248173072080208760585183880301238597895353745480427711318586665464754903669803293723015314080123961519923157435496737848143096004243495570914199012748208569615032960641148708602169369049027389894896077426731942221492226292681911046261004799704340336251434412822590775114464964574261926986507419487039400914102480154460870737300807151541393595163053406137894143117686521576990898902173498667168289637712636444741519171718215570143493127888898923059454622894898194506802199425655172060615548354576887655055367833185800352766660242407051988877266113988602460643526474403948359658879857295502132730561636540827567439363995689907383805304164370933142957276222801668257660108018488712216296835744484895886449307286891055891893279335065456785442979891290157452017735301678119327014848147993037943284764568532362157798072638273443748665058127470109419204716468788744559512217148180677723336140995455897124750089936993692905629656837526056458738055825369922686644311437541902398655888850866647885798297934647460152707392051324576296197649838624804717570063923653012193047217829245222542193342873929980099527505464991852889812390592099338031402818495378266008533876238603782522387503484660401697435195336653636084119035882708289695161087392453692551560678747958729816594700408955363820471943082010912236982186597969399105076518274305823001331469932888151486681015759577491807434807705939994917187369203108618371287951686901443251401864394703003167101537966276421824683674696010105738279713655552418458057981461930832277034601716061321586175765898959233355402562935917867918905400396557099301703151095047149971239473415411672706439760789948428629522502701054429370562313310094219738182025580403304025504508142251664001072554186640122934751192765959826663982406499873558510385197118110181478701951825036530168608171240316521414130724982103551928339459302924234647203619387867691947035016339064638948023872245020213891917276018417752394234301376652571211602259096605001943400869624603859639453376384827757536425484568004927226846755147565379150594548705670841027425634770788981109855106748433069496444387585677573258244545936957023459688325327387755635544003340080572622334458916767567720370821156965578035545287096322920018904179507739441068498458995307017244376643716703140911806403814024644913689964494271776824270454032075158827708620454213772287285952529314809330829449025833947152885964250365512004004600576169471476994002215591843267555075642559308687047330102971808313115616345943843073991405969993300993688845028186488498335056470178767982515233191467960394746859135609951856472463187244912489440417005267595019846686150225313579810585852528175736649913232790428137300627143477222937262652580635333469960044005205303569701609052106332374811714964092645357610945298299882937465115677741099494994679409545985991504855911565858786161280788418025397102393040491388841916349595989111774881390961629381751340035535785429390267510012248904431718245789381896767289054614561696851197158055714660863847932990392142684884845196303192753542464270539484595702040873409107294201894007824170346173901556284147665569866873636924579191775129265681267753516136450674834022812737544576503344643011509445958784211845995694769012981931506919706949116768924018910753727649327478499408587461301313688684600934997495924714833173691191921400256853845196581910613828746418207253417542306718767716461825627058294006863115560206168417686587048309893556189593323541498325805949236168321973771416105025296410654796224395621257822852630409917028898183125581616205546981626544949741250808660629748970335977052670137115457488308514384105127133806394064887954316580761682318496675838819595851261127485002485924948207942083999842250193477291450395195210741073186467011602626166495797962459336049999794798921039332205050830472503024119528324045976233737476239578900503747885623613102909185780679888729938981741443680382036459959038385256466191461836537540757969012962610901169564245415676848964459053191257540785011539448969213829552148480739986982204974724107079802535910690390956185798350721632965014099696626466520554416678307554377171967936736060399061998597517747582663752732457710355786745547374894788610857802159883370475124199155448075167476069170581287145041179634557487063029570416934449198581558776538088284662554433354481681680785071766959771127657808545240475946719362436084234340899823174537632965670894882752157649700541072859647022530478109003859709321061404003313146170498956609889454724600251534328953792675558840030342722054125489157579050971708550551055250506702961396994397339883559155241966894923587440646610271585615673509070041730579117756422175553882568291464473758530133597852564055981756598048619458880731142345129307186194437349090602905590471063900268968323706347931184076980748600483268957022804254739242987919314635844342420277476226580064713330994810628585279064177085111843577384630654756818348997916779117493907352154823887819469291374195371414897428787204543569982499196749837124036791966970114146612686821844640357766179706059072287636928931053780151628925536043664915540787134399344532664936100804386767919592632470776095497655316514270151986729225856544657176268351158720561644304142538964828088974416753741203991308383118082200376249202966826628355310397003640200067384603972088972300428275301860017303499369633551083210761997567604166557799902274606648313424657445840003891854747809949599002775695371706107623468442924378662345106565515182048534004105891992251004934479735699507469596052053965055192593520448858216675135836055635023054886161567823751573454530739194497113864767353358163678302994195674505105753724668489152890991598022521801299975149638306805682104364479272361339139578907450088201285801263330399593493908271484458853449407323517294866831708652193883655276347604112355951149550698518405519324959619104765078332344853438282210562696000403748195554900868799217031773685569372513908808156996513812059007813608022745581996957139328025578730984668443459136345892298854113388202292896751523604612729168592647192193545367581484672435700242525841403120551062057680708436634063874681093206291797877173578473804492808375813259599647057240000066015229732979479929103144487773237560475414392257202147028487065245167215829905617269158443565449926164616695084042878053546708220494385996148461704827122199025783234177749399617899823556555176318310747195397718938753684620326090939994841220279924930309098689502132909788296538596964616224679123017133140448092474350993527217098837237684655676212576000268804801333703813570418245181716461267001924718699692945924501949783689150890748966873187771890716997485171000202586351399727902376777043458539530490079444048335100976131449026968135376349689648624340537059620541534800181319769115300459907762349692508309648046623062802866885289049896460535210133914466924435482373463160590420084262702883193338823515547915431471505361012656532077280792761668366402174639548435904403911198110320514808356571151335151941669037650359536536530118241274554179191704202098807336858633031762188946495009236277333971917361590038494237206707101634536394437950472962146459677051905153827931927995691572324180146655023987273639253166883899752923278674574688329587181458552399167548399846431716770596697594089789260435687146723084151734332446405278074262659489937752737912863181747430530180232322449765189905045297688681602388255414086284302614551153904655256226743671899861461171668640469323400654550006116590849176983895980715762757360782888229852165272046228648379643224406806399743426255600857756865346948094739275771465206243552023600307807802276389296535146251022235861338233310648484971065177199387304938405202688387573884185960001913527235319944714003342333434085204680253313038685451012759099181015179859895445475607817785340731236872910412376007870360428674924291175946277033622207758304959472985281125033935531647012119379323772127157945643252087863172317941268357928400598651550398025995561580057867792657897007919024528013610128631045317409518146520773413963726981660801486195636177494524087700874363761811263645593196291375720991013431786582627758544952850669355675801675510636401416107944432900462325324548470889146923873824380891141813127817497660935571814042504508094017821222788449710285901258353370441987475011450087666199775509643926245933058934869319476387065376155824855359158432077927229573356307613922505299011886988539472358177508621910066433586193288885307559643758107220143088511171846377477110889605514403865460036860582522263500498332570217563901000589815365243946288058007032545026398703963967217328215392417971554979534268659664293365304733822649885157505475417333049670531777862904566717408844932562102416780703742907188255765890808574819473925576436641973599026585961068099801592718071478211326361265928355400249928115596150398818723742905289239668216950529438778639178554258415932998210557802556945414051300076131663682086986368059702415045328668669292224953353538587922868719408166465135753375289617009439943917408954396392171036276050096442794074398960344713342809252851284160173085592452472538252920379505670323265953452033762450310039788990036938796037279097209728058692744847644301236532845520581359661921869188351882573577756032906108458440715729242716473213444931741664895259021298126719456536575313382505789326586381783247227357021986064085218502887993490847863235111416437864702586927202729860735851109255952296849875412367932114145349315196857979175754404433863048101270180089538193226918810673991773360783577995332467054124646704724439157793693487632751513793893182796016718244294363394675322726965250716415677855091513403018528909345727472358615637948843348045603817962960915865219179931615905153876692423955784185077771382754283921641798975709305175180734854767827100935034909663042968643584376219511173051253207343117967003567818054456881751570256826458257912947955371569637730605809304579998427508384084774539889894640556250697427019726462499738256359303800946826721553349741001209430336295666435040150256911099452435303904469789484504270069902761994019015052576625620828714678731648109968036307165763407968233356957529649532828624632202592843224458886863636221176003630920243491000566942118447655374102322946736386454044509643427966688632452041652615986387132979706834405928669401599528062744190800900094799160096199912468655657031347619475081534489857867244872773850934176030032602798525387146228386440631560682885621765443522484278956468281357975207681958227610289383636509926645482944604767417125007416324297185953304416531606883171479254583303929206762416989620215248508716295410617181389684896138793358648625853205959030001117375546725194914320504641232122413415599565205208113587932307955597320455425967328471242699309660119787760604631409548244102816270452258332461374400122271414044206846197042334687990830177949838266959856815936545454864611161287371752101249707746155584611905495885025113470382587685700560127176817701870964943328959492041693329730910741062873197246663035612267561247995452437609072876488562942373900082456303979005547575501386141896033176759289540068891351432858998871433929548509723896857836316541414763217924453819433130355220399586494479867149744564760254001143193511218838350137682022683528964984595645522984089422209019712828766991470238975340742756073141315915222606382968627003718375926023716095350162556237817642684954625087276048092006569105005516050208752904538341611699627649034399559687509569963538962134343703326690920163379493981743896662169469102164968631748403109058083785708612952352252623385531280516856697711988586372935438557377015168230219411673549671068798104519374165812065925616632870471528109085011638377040823714906146274739016463192209134391307516245328487916458354378821330009817964728032882035966913175054957327851072678070581489145465519714633310406065766193219997116737135121517390986687624270945817230100470252879639765578729169408525174693237412833812363173235290154062492169135007308322482511632973037488216593509825790445408100199902383699313330005402679748894230571316474244075669538212710149823437187273532166069620925979342952067596835965370722023763841844333589773444866481825924398069296252697128870139321866621860944109422536028299891048254047253255547277694332455752369726595146191659504128886977803207891511010555543369014879251752539841987881519959947449293737270567900336635642802130383451613014570395330098475471300149286487614924926668611371388977767373970671526432048378093205907611635868403460721118387703106972604872152074034887798178986539930203838500955058046585859638452376330324305244160107779340317610964357789955886563889561239824121543859330707722875746597846563537534284952929448772625432912068349976385098014673793675956247640966366224141848135048848765035180151413254657381623893308845142168446218251157577067313889097371804566374816459218769550006639478319809426768487491355147465319976274061302048961075143360148399916085003044612991468650728678093827217952818013518314715482622794694121133132079313586853254131379106331790266651527415556830867296224158881565476930580924308358528699104474087437993875189762310466075635217364094559080526226044793800903313686655402483489754681707067800731461334071154733240649507439261479447998512335906465368790374132917627421086238087340864377589635337313529879602748632311134415741122942915664294196239973847818388950782316373367431768946350222888081375631836529189248061683880897178958830503745774007200591604166773139493578712267611721838929975597557263877199914396998861407147744626990194765754041575337397927142428773570161065639308591832219703458561192260994137764952447149098597650222256957634350377025671141113972467879362295106031786708274426675365931162554881435580367454106503320491510527274050019081826746189308288049174280192349590087873361134170954041173035213789671928615762313915551864229021479702537357388237006011870659788274618181748596998595816775500296031086006157141308141650699078203769653888511034827974437064442348046601171389150712062017333988421584618539531383378714288248274402720927654577163130520357063455166772784693586434825884356946238473799499098140807477158267985868222641491293405077977781842075012235786250929990500020382540061244225275065770311272016485661494182501433459620911587631539318786003885080826979002533186876027861266025124173981600137329840165739684991035543300238283024031550159372941822552610355058749609938823407248408622717163755250216215475035615962366655593576152751033832707883651014245230276063213824203679535239349076199992155340765684498371840347135006495946695198994519460062160921797529267597489387757759033972827309411212365537092022558521516067639068101519618919028935262696075352093815151435014382681164652197765875428963559497821657275785634018304097265560863455023352806380362069131795246191851079587782072308119604739817219888155620290783334673431527363618974469570918329554192332711685419987044650107598031712994735153824140589337508060075062934925893276199460298367310491288944252318792367095137408810062673085921931596049122483164852230975829614834560897433573406971315677984647276677203251775058859479787790638391574543771185686152073565604491979897313233087321672778745972743034871109230922440162505507903516692029561025804774965246609004281329998909492428368805027074545011319301967886880803241547513781438979982846378113762199251336094872420740765928511913311970954334350453952143168764976704186853339451485336764415988615817528334116390055949980726503606770115425564978784598313013701496123849522521876495609414327985905965302918603403727956166236720120119843905996042473670625601807642052697203158936183149171109191512774238437284412387298484907705872595022193521040924596606367924380671935531519696108406691916020943788413949362157312945085093739531450813250828774173641530206893955518878450114883421011897540285707512011945531733271604670122320744916652648563085076169933073693957768152271657611253289923460983034545440200315342947270501728817677581567308637496914861069894686867442078144226536138923736910993379889715641740654012176872726594278305253979106059109057319077138358470876830472948602583555380826953815831571160771720515960502699921241025747897545397078481524715617629628066015676001652463821407811698100608685158926066628136121716352131014562724921872887971879605819043372610840101200267095228621125079339345425172476563421242621054544255674346926978532351811227102910469427614156467370495068004404379038725666478319721688089330835232594274343038573427858621150529227499164294952409261077687869268304809932209379122658097771815645118230761853606512541059746460615078422293524182027638144026277972190980413591769290065354337289563810514428835666867883997346587462483302833814174576340406396076624360437909164050894805117313208199578265377826186813923697882662201517110716812619134534259865211222433833116953850945104775079623725862503664119272033872725519003334441047707123137997824662272365903680221366285980000092780645229229893838381489116009036450546595974399326245041013963573427346079553189615957378600005713771332556788551749265418731969555148403937948380278354039341690645637778889673928909046547559174661519752145314866303970875147958085880518209128114884795017563547480912121113175902564352182245823267740807788574805467129122566300893556771815642308034123401082465263981194956336116050664432366537800687056802490510588031088011064005492663767411360955712187085057302025008840338658352909891397044818394616874342485996675236890974172881669723399630488479436244660197521302477869764924103135856439940646119509916960886564463188873989091187700506213909090651163957019951520512547153080812955475637615949714127509422957433818239804019792293870760077585674624123815199849624497848263280992955442817040165132221455084219592980319540321742551920663429801670580733675485464582029602723352311660402696650667469322461399775147320357857520197663324406072884856978589674854225372817897117682687646288727684244885970028148765670654126657882475510768175803260370498874126593186797849598910845818442738179009244280616073118143494747086344165126699825577762840632794550971216737656448134583390235028493278130831900356059791703188221464840244582270424040187491820274808564690967154032516827430405443446789632068440191041285686976240924985779846781788977332711113401440536830599410131862375910651845815289625065499839924514129323989799281661044911360230258714239590681111999200900421268653198133355511506302382332164421173435282802150145745571158000541215653101236843137584707912692890318741193534235681954413486791213365552376467874802040763324373231821400920519826892136712914527385700738949144612742293931149595219153850372754161656987170945991200906978430640679152805670470237076949494147380520312418198535852408959879268077028064367056812246729424503474573786598028570156236250484537672685857769444123877201787186658233532849275866347214206701420374005183580448727099932207918458473969844195853386013719375053545962583154262013065047552226333749896944927843718295948896540243956293247398843545019132345795747282695912235657188668702247623800570242546298056315828609091846373196342693670343805589829118836254355076736397535953494419177895772214948530329217333197322900967577906366714501744887877634327913605016398857879506435709260013615636015019708516294818529026201986930539199355301700926951657472077243392657994141573861119560392657610680095516607806748011325933756921278029014426439086837594305857989319223478315252101650050262073283688776046372818456415635276393805372143496787161349402806783751323046011086159443052124656531284069435531006534920299948668747810792852274346542187073203793260786669975677833545426893297387759353545084526407426398818302642917154793950698961909030080192134405002725916361764238196388574963756953686517634269798680932952599554362351282987170478107586578044635923587186214569232614720288165040622301061583905819229993296961300259325775960263150195587907791401841875736461789163476663333864017255636131899023812434966268349651194305198076588316932819876786963303732197485504479221657288446733342085769472453074745058539292942102093963920901493235071131351421728152477471207845168387555027797295435190175686771198778930143026603621923892103652800302951359160764030313880387379499098679679288102262468404838365078186055074281663541543353189225089518250667857060433305885850057293620828226475457561218382908119950926878575233984005155037171175457474816363345554019114825677633690112851145051920714661934839766696122472328612045104163702051105552948588494545280841360314876848115875651838072691813908879260529821329566199037363149514494409593779563495689944501191238698217387275391468004978025960548333975117741285150838636241599043709701344240286309821553476582396725469932430620469636884323371743134030523779073095266824216820811340762458820672620655825669231857729741512000065664908634042439074641409833196816835788586319156533158457742808713470143106429016981741554743156832134268234378003072046147596836892825343466048344733927747943470577679666060463736270779068911139878856788758287952877966129054771724461929987782266995676306066451548513072215898730123120013498831870134552997606721175282067396844038360730870427830337601012969326101264308921085736596410143697351487658707916303971661428789511868633161530002089953314736165487985389650019097683030937522277245466320182876624373918434583390856094562795851122306565039668511682451772192780663210097797608489844334340897055674787147423828174009895538374320378647705484699482917798547984936657263812601017628963953485458287910536221080339751417088828672935494864625124903942503517571627574254520283628663570929553005606271968476310115885743946022039662679796455799028091404300110810048781505173944650026910702069348199963360814944351535623935079713222740349102649779732473135892812267632361860507944316757864626158844233027890191081383447649196801743141348784864536836434625049085527455286639458661184123376729189056199112024844251270228721264416612516315027957359402188592201242162396505506230524774108527810054644370410237130035043444334733935720635454609658148196383462695259839003746981794129418610577091627828703618690274534357280567016640811136440010701350954492463199957240006255993323230791607291018602736376482845536230665499529513304005771292508233995311740698471228605107690292842438071501240906991592515635245200219721473701078695672344310329889658519915683344204587093851299594159993675541659872146266795865096397937948022897855045985559876817212091643212346229780098124539833499214101313020346724509449759235097034612460282630909491081014731164289038486902680513471530851602147559511009917049326658868175357037316747398977022455170960738954128363377589551531256083985290737036668034313678943776224086307518268905275310875501246748457231534119737677497528253209110087100224500056377725735658269535317090964626575144123775408852562519180239773847836884760763597629982226763960469204452151331789483228814720653039989771550867889027304993160551279483360258847121111694668283150790398459796721367717579055031447376670358703602973306825903270445486100407726708675369989271623939998986627553473715111638501807937952112324685652310390003355970555552281613728355149142998912906970667610368913435944592505017700804748457983242428455164012700718150954785576207094515402907257883540110624084265681260085868098293069748856047482478969910629606723856700788883241931545965539998889555418940952327608762552241850294408476105048278946731803521600241047204531438350911219405555054597889606545907218652570159361120188821659328037260917039313509711660785362903591233124652217922476498035452551952505918145924015453240297733169920354959159433145989571726017561709482597554530127949998544153481501353607312036670322220993368544950522073740922439334609175064495749529827564828741374366691510791605848441619527664584115964627335840912449925558341500683566838809180459348413474634977626937848748488700509021415916630088885808623063830484186473716573453735216926635796293098384724696811773095496747847934751228896408798464849758447202345396874529826582077443180243139395613542090403310045714642772556016434035965793899326730189118692987919836677037332170254751759814657628884685544601974080471507142200207126447026842738841932508128842762519812973536554474907685202458858831509574878114928118564465593482849557603138008064829906036424698190251214794449316192962456698975454883617068417893156895384798010532980298504608030994861148909970966269346471778353336513023365299152450339750980172412748684410789628331099619563441948134350484337107792357310144605333904138456835357622865455893130782580836896435841274390430972224153687815246492528419352843936030989812901515724095959898971579484111811860018655406348007210692106999368349475017608967039213104498122742638953077651089421551841787232224993201346614958391999590982178267733720375607812888894045236679914921022160662738130565315770341573011934974609010404709240858633060362943212623991717612904134027214403187881290598204835960350695048636503441201688369328196338857028546356922296302074547136645908257303992161064995128649025021892687168062438912307331052026873461452022298183218417820662035264224047364326452891184031554183372887198388338194923491046702436521284034246841269125304279923039499193892317903138520450489569730634568917203401857636724389743173440033033085455834265914691611108643740387877596015400188097902686192171776582791887669494836350432687708357068764011366393757394096070396549641706328504684853718464366444688730256345507804297068124632343200855659532996172762746447933916805311887791826067756851707416262812759295066643825479755579864207052748906946166217375199103568078235951236697417389109242623464048239229484506939459671191824910719779462288034894142537594546102217538049715618462271674319826961350770571514291860618209314750646604136294126282112462804330930515790110659809976719836033435244960176715149411498064363911547799848274611087428475857925022768693068462324653103966743211536414362307822544396775959988407860189693691920503618893564942297823312133274323888538721486538462947509214734249793650533474338414787914865305520738815521278372042279238673529483001991417020142585962488611956869091730672142721934620940960816591105827718856827393848061600872492191422100367417549417040617985404083841926403886668458270268545496768003473534476795095686971932067200487457681936911372264194449919980230097950518973958246612794544968860117958931831202155089930994086237688674594280003788732598158909814595234213143293753573651425564605594626455974059854834855333149116774041578203089848770706066565602400141292208215193474997316393983903785703133269660275643765145336025790148044098026478911865982817919090447795839592581090882663661403443030493954150564334446948161285421997441543537439083876111424746664268681415340364404467385079504283724908034268746049688020658357483473515600869118950989820932826348124291090404718575983368807458851647391969972144220653006215213297404070757582073128609781755083495683954244735792015311832281589905862618775036211341952735438451916644108112326682778310136875464617172197839484473932013544524418001933021080945410397786102886684865537481943661577453891579256709352132220352421607594238840319328071041382780796195353545321220689493697701544725223519604779238531517940819175174333730195315866288997993701124941023136355050634972303065932291406568599435250046441606568745001399679492923872611615415846684433834891861271311014795592048446973527497286204453925476040362136528323312426182585773294956471818235146740684180957754409163827092192985400594804118888458399489424592026570504387553441941863513382018231619918318736418784271371597751468116673652637268823494278447332802220251633716534906717848638279268424269145863151780944038609573808972915576658649743447543157455027334981602980639342571627102282906786974508629012669266423548198441930288923610762143716574966103514543193755725324904534088278483564180400176483572293914936527186893429146767365400329396985249176319488801277560556633510722662218656623074418664160512661184695574893052103466085919739274779573006632499770806785523010826606983569546999346740591334189835884706975410700485462523724795589842171336130650718923379826146434438618233676311931504715874073988172199912815113737473455361234132959229985205686134900642418875190369178805877703576793144566439828176462958309662273012819283904757472403066783544548116014289423269633862264973967258488962297363085913111723394499291442360148242682548710591685466277639947075390095479803705519495801907838463355776509438745021922717715724274426899597783639804594975643583785589048223982685321082359000851750939728685308671520956307010382454311430027002145776978253760935404814012393779479839373529169112471591127490590330170899148370857943033748416991203191951811016861046903064049639897848801979553429441016204556838343891444778404291780270049381904427557627845749330588289729570221152824350755912481175684139141134768510953508102385737288542573936252544832989031192605832993274700045288685401924184231298821406075375159148514047134895834207351424808419962566305525327180927894630993492356805660420491942524763315574624486448194488870044628745714012914940716170161675937610999195129992967040433109673422328315141246409205277053098004634197955498812777195235080845877746955199381484318658272959379017630896295241790689091840985736294646963897439016434490753385002085565977504287758225851012144963383543508515604573964848140857189832538872535705776155700492767526824878658610409507100127015055688097849694363375788811547612924923832204917785758280796710427828458299190919486874261946536653300027615813925487138411349249028468409995729900865720898505120270898199918407806876679798902948829022810141897685737446113791895184068944440048550135004937528238739804500254266584709295179890368401804673782235121611921322360982703601661901443103628567577688729420081628092489802413886292705521989675208886599743119567886461032111735162685169596814968371459419891058676273102855189953741415523663514257050240197336793782906090453466425332136554791293871003140098025406684368570961463916372682622156414772785166882592915299364628742774431651816656565696390299942487720409582635252635998060727229347340254481122652617467600126040505621173300973276314086137734559914686153703412850749937096188670486273052416354570005719545491590129033175995339987929975562524485028975780100201768513520413992314715315197307355184099248188946690588024870192193962688800882928536586857373609702349859135283855841450371532557713120591779932676146601003475833562077060826354273545192409164676724550632438487049562899769401207538156540147021502239619839499661075550895460817770462573801790418633553816011537246241222892363422048926044504160166541190486778134029361918156036842906197110708468961213677578321226963636910133358766494020488867195521934276845119248662294069457235438224559148313576022153675200799765220626679602379517786196330599755543050782638468954294089852583877494564676232242486299626560038213595045223691270819045418946058467470416062552273912679346393318681446313776535831564046723205047771689940820165263192245778603485300076049240125154094068860527279676471345732791345395156554320573698154400784920221802265398021709135849854362948193832542731791282634054504306246986076348335761989233923277991144360811918581436154933691461282320298273078871865706161935142473042158109385297362070045045617773705773009977599926837368259539455698605371646212212038164871440650968176258664114950129892950951229650221878780552801988627421601449570512404902288724550428741420637404001370786532962006308532237770757353361053175391403435634449539329512433681770345582074879890242569991865239872317431533097462153445138168933147798057371701721149688728587473908873368699611810070107301367250033128416251778345518187395705741273573454516074420922602659862732808273659614801409758080737413263110291797194866373799445275351034074340328430127984177739059726403548749857225995940056819664681620696031788692237362162289744570132312382855845700910643670351281031700512901287903973876029709793474032345862859963515080540025041329325060735750210753531548679612074541679680583300683526995572757094110446855525262046031809015563947229176676903092270245628624469503881176018475450186850895022241626832493449442995393188946595680852313557845457648899323604529095435636245561635143206264807175504694257975823528603573167928343944719006827912859326458395510252557086839535881010497026520267468267545109484261201443591267231413652715514344115906300340016190087046375403709669694772553187375343492437696582213910995445136687160026353016672284373369385283346756270838686599607753651136959675596177219478135627781054955242277657339252460333243187464440801018139222936052261242354865553281051613538289833789485121260743146005379000162433091648678058091387025405407359073859427810599557249110517027685198479688446577820750483656653728334694893619972783468571753599808701964215645381992013711792140009626509499645571760321115490885922926015482633008461577795939961790301662400315612098762928224500973521059691122304076601545904260425585439778837750365999017209844808961562381311029371082174138396699623097449603320215877202373141249787878676603493422241101584100450049440705128810265208656145184755126740559423317521184153249460831190396020746513587179906894675064868352182066834941692843961300918473125491298199716993494294790146801122899721569322269398320137706683500555335782210857794409990800033039345535606470160205137992068870859941709853379228135942880230290702217874097125700687773128227442463244825770524371019027873323258079717189795610042758845550283855579292122687910780626316488085226698985911739909190891295311409753838612923180856985195304819299960854014455380487900125827646260011141192755068868889536285088319356809109886071802483844229001972631176778784991171004474513092552083779505403931597300034327383577233467229668285496408892280860016949655432980490637456574219336155341627090648469544631818509319671159232892011245739614044217837346785511870207141713765840851921851648876969734371367657585704603222694611997848977716406262513367827760949950633441947992308479594694837994122262127616922378827963595409761445187377030678411885335300386643880976449182389817522842452315468472044291465921221773115034616647832335498023890749532661821230309447355407777291773015730619916067106685222696120675077355690416254967166587229786459526421722082115805110674968258130976372360668164296910696767177014278488672043459344750295329523144906879329171159786465429450348636094899534259981931713393223262490671760951876337452438978118116190217376309766745841858902734454886008823366589677866576789913970478335089842556723658487738836668898090935482718901583863999433499812598162022228117720708720778754224263524603574502814724458414798487767194526069835907508673938106818679353491285152207542828476596817541523715767198748321050922992646571408176353618662517200449757514938389056234898942515392891659187006448464371463836695851381200298856766815243237117498937786029727415640049664037832848097775857514406326531588297241667289612534260471640733878144917756509844756778739780443684816392759834842044336563001801713862815643145882204256546599122443960751865236031877398447708199294588507989438889945921975781267737371655432581656760826552053742830769816959657973128584200179492693137949783385984122576532704893442268051299134429660151002184305715170948705151253424205983591052305136883204095585902130439028318670931397501226478324750096952270939426833994018027023407286839383621400128817390578005679042732045071477608456264709187204984104644122160563411318505298664094413115325056193690827025780011843136291801207327103571337087558802097972914066802043142187100952264928112332541384271755410238338578931884296263367359246695353401250114366613396659037927568304917875753758133809086912140319271273797443169244915972445623108413929228417999986770721821637397757733853847308834573045467314485784499367416293644067024692568302909528748964300849790147438911893841245906462085557620673994373381107214012707368106572817451178151197150201268766467601958438132151511641285739837861347507516349086574519981486857114921968530048876310682385329696389407700069961590883859345222948220474443563117065311830102539397716504607532491408008825890263754783568005029891361548591175842795931148496041495717635793883123823671415082918316837394103636048959263165908746019165205734225970986464890394596318167548454385910274789108101932581767709472051614146159887658106184601626701514103620296592786204290138022574445154609694468044468034898427032374884923902061874899565388799186025158579431348702678953191716761726290057752361384463241240219987215875001268982660234796297417420398772590898496147432285522247475301269368462153960188880792015708153650016709252860764036592746933609570967581455281026266257570222634322136741053746463413420438863383998593313577078453495192474113869045413438027992034750258281923563501017740764742640569105512250165711331078311566508013494864068765299642430714903182525522340844242888579036656830223331434346423165601250138232651235605545672932768274959744866832456627582479514983347027244171767561346893512191484250619523074687295321573172260297252439208523674911093342150706529319982334547976850138422980097952470362180025677483366447084702502207161253448739484829311297066126287163258411822328182464127474749158218998365630839585340671639975615704504234499871058268899317648673252560887156089616416132964204340940856505412410539688393632911963468722522614111422258616573201307297246170731815628607228834184183821625719130226706609338442649083367070763339360787415238640657286375140709979880283598523559230911071926295202613118750972622266669076069601692060186766112037768623708402172491457241369771446693227570150559291298459281835410335780439976776947875171927141778500736294908959410187775946806619338670354691478778721623659301370838856750443717703245960571759460265822791320407746347262713862869656479482224409264338832429394510440616085613221032764197866206325794661302268964074844182200064098441655161641017021106385980591622906608732370045863650714732776295107228267296097421142615967095300025377924682109740087847717853843070879925894245584916733202004958595671126477234790216809227876317949718322413562427434642921847024441472190118655078663572631674476188896049930549272375993209122540435240778527993845018862488989790894722488252213964036039342277469455482561279501556967569669785484709454434434433185867395241429658001723902328537397697250574378120500975471862321200502968161426842449630112413205663871319271088442827341154143557399561452346776025807558131978889737593944151265057754586878256921906408081800892957023653249212814503512963414142539620321625420213499832846132735974795701581568148125070867164399624851920832252324333964054140845636175594060802494119220370873989128104808273523233637983683058097937520018062989997411644714319113533427051588606631316697448207065546796948387073341903188658795353498359250359277182629647011989136527775398520495947248910442799443944738406429994385413165230864611677433370525902603522334318228302394771121863726467351450852005605459720733901248668137965959169009480979002652588992520602315116880875293111158037872148643318949493373374627267877899749070363450052736247649910332253290087365073711466062530933894241023081942693086553701682450985881819986102605397307405136419249110621403501454665939957155864629610225266626155981855676673755396563708783823272724351525317005400039635710373466053812259540615073536820326987579848774431619127735622807836240787494046510499564747784534893035847512524791715562430393950989397208113733244004068756735111838577390495709619926625271230399369882577177533389925548245426463774526756216839338978729096259068306925752608274412518356996949301410779694940359654130023586614122864567527207880816855512543045710548989979123473751421750065372403682812044115512766966634037131869250140168923781649975279222770631044610201228143960904584398873341916156421158552348132765887933877847670483582723994432215241389960227710518030167213798637594099828897228321566780524142477494514543620025600971970482817654017652945435738974124781033079559722537251382492916182625772801737600614690135413994114261296165188152400729225417684523467338745184920281096282015734756771280289897918031085831639739808909625497323196404009287648090704594413349724183653822519282315287865431680356749169809169097386356953214143015358529809363042075768296261148888981390186252113928118393210753536556620298367488767927307605681275906562076707372517509814280553950380295785231233010799526163615819027772491831460828483243902681759024947579894226614120785479930574459283300215907157849174294915074951975703967654207686063982415964178529463930791342764623649532022154067120914739293462618776871128847875120474826489229174173398749238225089002220830185642930949569857332496167934590833671925822065671154686833322733711964315495281773641531481812282500310937613993934241233929517532870223850218769604624780854581896535663893965665699949621503641083708647406733435913552608807790682437790757602800536035776587105615033673442489942732078678470293661869505563907047413614455953299280130489022765576647594529653332470940225063758796047471653697586031292396435166267200165180148908070306949255793521334066241596380703530850685148287435450545760394335983992813093597605372611312794837762510597757457307272787391858523317181973924956002111461708810048770772775470910617833735603770889257422608253054211278674042563269353633521623186811779976068696805879152132058050988971400687661456721369436074533225340268654106125025769598741605963781581963951998678149213466182185450447766272027000204165281391775481653820136971895226003524503832360906894436905022292072644751644819367842089311788332825492992340119622603022681432817442539677643041750253924711257843162270400782733143121556743623534743916218094420369627843796057614598834973871072475643860183918143343400420962715889663993449981841064360794562390851580935828140235546352512474949591218710253833590135465636255211030135158903330540799598442763339635946997879603856969288034283085474759650789834818172873108409881494598564953299967192123364287505257047320544526933133598772873771715842821859191522449245169091750421355814139459061106378702968340216707051169666772937259286025677724058132613444401715824542428181469419342325934707061854446357695356146782402458695330548470697544742734497488319897655091817799488204189769439773217292677186854327995886103433313360172078627823496691259748675966752470518102297473444273773195965484509820148714653704449808752871323326777534282921612793022882513660421187063914907322765189104023932506528568005926597784083714445889987754069142865455662815725513612907430073023172301523460957831602318193427306350235059752132042152995019674718528646676985135091000154701648987799123868231355421040268090416647393329967654808432656544773409250267174963896493301197064928858498937571853323045299155447001313350084738077974888599327162590882521560488357437554332183229188847829467592808150918401825635874561380135120863542336499883518141161647369942088153804791835775773451645643499394504457917449229558611052839734849205634223766464687117645549127897861678149434055163628820701715360039588284385603526824057157899044648783000000366647306937359143907629151781021251082576272874163770925066531164482725092006719312659802406950294432815420381552546729187325504977458006604337650532225723448611744935565718643129412554695096183336328371919856856390883619960184361016029588066994908424425945975077091191442445452535522754711886307429000802711394123911104529063410361272713623197039824150597531445343851796025636276917003337023343106627549000217876966127464650012099480876500957327877320052810037435094829542694375137596926513310741878420886031001797894253644638033202167167742156493362571109967215777264733686183540100000610019365935004962265816613011120739889077580718842953789676834500783167440111764386258053200314731259160804232447122719731870906424982525535496568413072719472146660549488103652164690750263701137496207604459418448183325156365501820751062098810232543652572615786134111958300651932397319635298880068677740478877474124952720532745527471923355061507752576240315878954697375086778155654482801260035454547908804104241042896857845627913002011913265033380294194460686245734887702426574932556694525696926319827432910158932759123479192047298214624724456765006758971345610689125039258786225501744323703436310047738724643246477191195628734139673339233427887741935087559631818760586708869132291041147003774691916406896303029710547441621500565116566414313858635601282181969432474469382981050006705258934812793985527935533614441670014392176251408968193189022070666920288391529556565480991673373771076023686067395947954104692069949262421746598070737163270843923014681740467290744344165011159699670703190625597017147258996201425828757872690642281371159209935128863140673699443230717031767345497379311371126789065806605834890950350405585639778850867333659939101406788327010976248241050725038843102929004170392175308198462816781031409228132852819237238921771110689540810261008065486509990209220295883523407265882521484420901195372050450428034269586511599924987016370439503417512132557579799901970374421679333939214985662059311463490943893371238787352333067842036495595772453578525746190331758854844399884738069185094280147920054975670344665538039724595755576500435740459011909716949980350266098966366925403370159648826561387607893050277876849737409552483654333305970732642158303430369813514818154360813622210828178622221682128423154657879413400031641220582399079273171329536305786817912495511980652604513188715880644326273780532152753444456445056862603023058421350106977465136074268476841157557753206850676291776092690573815782044073810190849519770074261453535560205260482622813951384605040711077268769963430720404687421376706993167321916793704657846954974039743037801705395165857979624273502144601405832885326553110908731850560865142482864529781382462462878926230219129269671849696934265311669179203538843582705555598579555585881157449080662021413094000435793646239721636197242834607297776441115476320065930081327342053169905258518958588287257182701781764518737781757874046193466257369269905309537108722508702632946843475136361465440102774789703096626456789555733857392186449544950287452953855904126663245480045967786480999186914728318256611359204242352500972460975597714108646112313395627299153592004489261482102297246659265842740701769712793735930884180570638112402540583931751993417896937673232057340063016500839376700587648370286613983317705270946498193571001437014208428879456013717414856089661705635285801957925252764411650437441233864837917232931335820146676511928490497906814718722961993577874600429556916618803601245155326697404299069110068615784853142776947282959777063082097752233414855654835467596038696066310775312405625753585213949682165111474099941432227600278488589103775115483343749183315284045352670742840541069699612081966664060403043065809744555603382365221709002931226232564203845315096427565469110526739610004165073533354310048554136290581304264700484340299747671470105378371081053979658655113008317125851878605901442830512997035659080451239354709692803989647585501386801394857889960736701252951570555179457960373017114803157480841922565239361424456246599415837938572391888019740005916924561842689271290468181940720772870516764244672295290208999109903029057127361888500029879206251246402754113799986372182788568269969821304273167275840276617532964274754761685735785878630842163302377509629679561012532759360696911490133400527941322074958105576124511126339253515202824710708833326024414617210723204565365354869294697470277498861790942474740421605044532684233516956435436675019173014091026551693632821469171366429496529942169414137669037284727642658622546208885602222899113373243327999894271386034250175205846917515208367419626658294075931726788717136296584305540580417216110411888433375486213907394012376218763707420778643534641437033444284789673398393773511450841806124278600541188197960720054095929157114535058181223646878238055485528898855829574950705240819392550742877709708199651950587388146923543559660277830763454117247890062539418396340291098388268924331475224535965419715744629088387388716671473440962153968436711137047197022916207933580797071288122968270716496072663958192750781340859313452816119603146596881285135688945255479466694734570222796198568031213761578425894257236266857962450818098626721985220649454152270900916359502308637058033069074020455559587492772309197373421185324509183113678666793051763082544771676371442835793112610589313682302516712444286841631889978309202050654956691520625397426242443033126576594533527983414717776719500163324217832742123769118634971243372185661963336519858016350156437732842657766717000230321233054589864064250960864196129380164834050851326103450797171369035015101754123771521373864119855229378896479030178679488761608331867785688097826959783908761683395553149481219870488295993842950807284153877703772181924691672392620499939281500360346545821528777929965191977575299886765453709856390153717823892887758540154613241558700048673539613704058957784864455113579148472389921939762296980024399395357581268830298640585225982072947125612718349552433018816842021356811258319082992351853404662963871389175996703162666276816439602096517166682303852979417300048728058785271549468727597395319944448626978760070810178563511396537832562876447824082357359682782266782701350005664641335075164984322714347434875664651117284095292632294176831357359377998473807670736888420832791884386032023104520514913059695832757872837869313179709936194422504409787814639066210971208556127050534828502475433125818756976100501351973930526771999660543140969733560060821822557419896363685849080591893219376854034549433254122055678784905688879361645265251675853970921570298392788823028598181708372039817515966478571410023697717426667037974707145591042504011364188363702693671421139833041725389128437171785112825272731861431977556161260107488558253485617942550757137555212170741950104193962039255831319070112231310826959646287059260640146976745564116594225282553249240197618352792809038711968771359959086735015946049779674278557748405198873835900337641029929729100337490086830470691633055433819677825703691843523998016290807337368544945262464726376231134971915967652776980673991622504724912845187599861509078703523946462312698337566259300424712099761070264459328986488558001651680430558223631730647092647422245656498192674255399796215308091932572093186564125096802960569731062694048032828723748989248578057017077338280928346379161314756761027955703005690118206037167829817601646497216123930894173468872342086000634908412594953665161951214049180772857233503769746031484839234495013968727388296973758031729504138746272667195908515151412269179221960595076731250581872297868285358931148812294988152572476947536287423785781065146050447247641206148752079847778439008294847747644002842790001835616032123116484311854926399704213059272651025891245023226764867745542590388160617272257036065988449231582554615417257117987352444025338611160190343384785019131292296351089439849347679275333017358015515619009497414820742047852234121185068576338396384852512648273335963483785723488071121424775215047965923529505346476966373696449553073416644656216815836426652013845561784011694526202573329726228518286842830858800815082502733787117282686314847802258331098208886345116613470032581983022481910969545653747362372071619148830115491236663717748635921008181762412024569476226499501492539720582410219612816300493375321310681260974131023335904996003820165971813434961735625259753767768745953766028608057064244945504353161768454429664470540543800923142312576485607598195885003290956869507645459546074446031988145508475382007323627826696833224074753018486469255651463950228131828505980101899754057315878442091170653150825928170330911601624130959993444443631702394154821462101348554882412649356304314497049388235387363215644383134781305547985272534742578556471207301096221787277396706997582313982901652670330584555463670877515444909490299507767709346901231982420043946286140994327899325569840971913550317825967265324185497351716246951794617696237751579562259414733736424333257706835757916302024221421460803762094692960363329302897153672809960163129364967801943965499879931052589536697726172878338296831876968692376335436576041491244173951505202546384935741263419536735482479823197199428798502748814152689272288756184728145350541346038499967789200817093604063918861535140988641517981664032544329978048011950232442633678414104830154542460982076360416075914269658320446423420028614231919480168862971954497424048914138339132407703795356611264484247357254784509354532356706213755682276367580782899382206861247938483300622014563363896784339940179953584382986414586526391696759566803557377884581884778089523547972085093536114140941496778168320013590550341465584277060920411052618017402331940855599047849311924071252451711614921357264392352634045970672381567197335311929068253764120903980514452131810490018961559811015721039962699341333311552787068501827795887184357108127192319024443227836700364253048414796761333019676493467865573060154149699431139203590455313546123485731038906763973860157157655679410835655843313705302588532924778857701222691315970727983746114924929438906327568794491595912567335002884571562730989142974910329594781693322613477436010635958482750630551697915104714099473848457228818628979502742939902693086894536600727001360674282595084503398629166656243564147423738294800293852093890501992950956368535444522074253369387357946049350873911448078788157080223852793877221366097610634808924795517180822371106831306578632608680539612800071174132676803904793849503909718044403734210109298948351892544295687965041255039059575931141095446071991248251218302008446330736496832461578290939091254864745941378214330993268127310763832933269578967410150496194732124204399625056346356845900378933110654304772001806281544557312154552931233058618540240557597887224106938677939260093687613858956534466589605985772724191277665205865989730555403484207065242435288127708310108192631855439603395147597985129411745184042552681099682284287482783736178441032789988764074798385470724180690498679972994142865872140300483563709031506269641940687167628169697226910789893150108437846323639308003954768979906361035929039287216302783278864247202020138152311530273115611868829311917191427830447259787747678692534569539537265436598943703995236461937277329672312348986428505530160935304673745845775592798466531876624369620855319807913444204604346014941619866012050360415521818738104123186045154007785359923561010168053606682336094314054101854153487609357305086579737004325733739068826322785630415157682993242473022640437264516208348673441048868511058843419327932531840754910576016811775723062918303418820578822674011655613336858215530012263535652258962475718976802358969340167506258627286962440718386287121191151846077911203734872297905965096583931311813190457963038176713711170333330920570554046508877061486428600800610940001661745461207781478879441176165835757389701031665179988593566269785907117597368755596021353206791198519094731230260790802917962262194689566581252111276029586202866902020719858484981781313933938255647700538346101708234030972833607726565455646416293842827735476962633468930613272674716671038831864552949652896754262966786294840591177973109841710119784845241448232641119685954504925275602225237088795062294913396491009042342464249726972929791291127505225468806976132438331415858800062187571800465636368590140144519516832443964009150327486229374439983080176453090873487231652018476006580674510757422547975692635650544761367644285334088467445877829372889807491923275061632359717899067054475884984280625454638647535417088875364707455534112754950944389220341946863442482256540777903402969735653141000293215563983775163487013422428365688868330568702889868605837621859575298815612804260536326068061967060116302225695336031288525886738676765778128254736276008310152209607368727829234148327960586368057044866265680811667366966061776957890098905292087557540329107800399296006994951523225805252991766925549117430341277983042186256365216291850850728247018280775910457069976983778583036146988830753426929887606536043172272230862043965322966620024844765876325000957147421660795625099733734922955297341837735824322134271095825514571614193150165561236201336806462853316470479579876234179814976775773471458877057440632813098537985348422467824720681597330432622793302189371009624019653139348406072709892190546830470465145911044984468813601478552934154030259435359127984575798624503200794360241773384275302077132534830700569796746454357024166932371857415498841923073424758346928403951071318342672834289920973353072685469560088887583382832886916957129551233402668748475486166459483707516600268755660805625481824819053896324580235108236545140616899792191676100760614949607554249868723216453236645693900698843459700977935009912563159834674244275308868060252172829174998527885362755703644646046706658425743608758279271442851005194725191731116378843932254822284180926988273437256250293730038288498730123070902779128411009811366288030573654411828612531031630684642497184205768779804807426701362338559301724609550783678709232456336554876481600050995408345968469633921300159414636422396893524431458153040362926198256532513300730971526532134930389735500476378995758328751431898702331591262629884016790618964990769939297334471674704220516165759200021632020452479686404717032199948138854087747461708501010355221840410685972966102312253178186878755329254839490883295451216592611485699776084677656164470657093770631176156072924031635305275573099481015519615314569250837115865828928751908790822788629925963430385049672630758661384505194201364178543451848364314152580601704840372353764853036368622611585249802034721179024456257625407351705481133363882657826112266389761562196225221032513351471564041504350731382122985776951991777560867218940965797498336213169126549771030664469777771370554964096647866271110154658825443332726574328330243904337573323578239613186913355755860390268534429632297868305523798340545027409880070799778435921617069074645917962441127960262013866180501269826425870163230407482092761052557562556375141598697262457568165258530476852418211346327274568181735302780831988631347536248156481918681361169072204594888607464816269111412689730680802195949112042884927111173731644560056130917222647113801451271312276667120894104766843968153963113442201126678506654719073790916443267046774914233963452828379519635701018566024685754676450389159390848342818892531904528684006209628985482774937232274370329169833701151677533336795990175020081223503700514209368889322579933129659102373450678212272216627043304716874205023969004247607291928008270815352939048011290936336553169222948620464943612445158118330935135750522587241706433104980340387137305363265683195296725111803278416784904733326964706002508948896659476273919652395107073929416110237234669868509212289511059002303611568289588212937023008374481903509016735317627565437064076082808995447761620775866583246979132560106646509911782502731378649023266583942517909822855858616786488630276344763621984565177121918833894270323887109819259887039912775167706117078255085639608651603491782308736945335172399359223037192922271401177113967218848492831909675641329170739113492863935812105575473990918361369848259748719302152817993546490500755905274833633438043355117959196029751607892987218556318929989163203402127938076359120735058608177045600310388900698576681193395534337029619645525282508849102572049647040601206488796210591995296237228408169475550295703608423393386496188086073107496900805150159669149499128431453028921440333725725074451697814538968115030470741411988786744054239224934467017974719547439649661380422256335589980427532184627199150105900318272404781911717146630045716145082691707148589689072891736245092581648098838768993769686982365070749625757190988437395746648027217449409191606885742579158884905650398699330541628616924847204087794456642209192837077496398755421153046579357550109272672155696019869421881170400093620134790370101669542925967476051278518752117796752565541170741451808224810322765057955543034713952283706941805181999456589677702260361824389080364659620656568118194075033452459057295100583633740066152932625124782065963975212573021441856545804046992477716834217251602565068024496323006339669919952023179069430825355566667760884273431663507398672787173931176842456728889025302633346932009661732501656663376813904493514034350138982175511767277619732497197977634086472944331641351670313019765229913687986763972205385603753074666318991807783485702684302583495949154891008404413849234226051390772097452386464982101337562791386381099306155944776822669062949985037989126994084202934033804478681843836227784693948930027860765055193135941765536706739472452163613050693697579880545743373644509255176521717343299997004937669960914666762109117698748423841624185283200137916054808451418539379640220407515347992765466718440749240542342269797150459746671495910821589429784234880086826842328460294675719518838660474632319200368507106747095701619664550711807274651809635281576653993241873154156860320801519894218437693636867550623346695386479835136380474042563924181112965016393641401058108902317533584870332500371420652796122003470604797271050531054173908277531356711943561307983778922186566352499657102003116967590022289324513760445795468687654913264083607262592876522735064695897347750596547747022743721645284986529438230158894209784244966183481053280810271324194258835609890754395367517024108557312165768821413505188737548452607994752899118669683739064547439457323061913503009779664105570605600877584237606796539144528607084443058343192357845506990480714997449917239621274136042368140394347591108398231335718948661055662333010972303270465091064989069642354488612197127468854460150416853713244856924903360571134163165690504302913271907301731471322407343398595591286577915762946519117490533174612062391639332869587581240899473871144883116496963778976252201607323687680717642743106088075533737798092316883225463907823754540686353033368331883797019600570823937001465298873289410063983874306528305098903581763577406889896041062733409126450515210322968006321685702421098720643338737388232047095326562348106587105848531516602570624599253270141827983400266008148238263894605683931262234467840220367081014367863847542462955205076592448078501570781288665213199079031397996265555972246569585547714885781691946388446500063925194785420940322152131216784036317404917392624356291630485673536557393529803214336255226484379281940094970082110440394085294472109433805215215226357487239235888831204079555523836368452045687464294963039682170480169953465100702104460385086291093432254460723158696488390621912475525036430246317681157966153836746082579619400927126286839413238919684104465006112818604027448027543662881277977727608571643508605895599565259562273271831804874148907868759265405351560297220562054171744146178546098951384758425881351885165761588096015583801917441576829315054775113233330471350300798324918745586241324327895114471365377266960978944077806881494649616329897232601863959070307342379913736222172203455171642958457458282405598813961905429636041438759630680879298847340358982377088581529205355256982222771338207274368590570359988934804636797395706810185307920358933763356769987040108644803073358625468439441129399557272407238628292412565040264528255598119243876751915074714610712504560017348541436527369565838544672594396688678486881011262089695118960256963580153551511818210664711606799378395622650440444470632991868516030525136969751857456279780548009359155349431581653801297665344311424814643066102142388582689750368523803064895165284680147930124649572036823175740670364386678577814103026218155595477381044777225577337363594221502715704845653764792839602940124759206377530203598292645629362586649954597418328882796387789203318392358860788377158548389034803376983080518309385069481322557661442680354595480446217940728571010006959780888068392521444425218934801115405973040684853206437306317288631103106649804666617725034604617847890144722974545974236066227205309534717953542002456892351431115411625287758385278485831142871981539156432197050123552325145244699384341129154199493299048096596430441174955720498420114875672973543915227310243756354507908401069255170159140456846704976435502535484116102025752668218880650829678230499173580549781384726180295328554319771560915188640265375811843099184054270175950937587408835349332656227701041411175662022629177073091352138094326441823959856861181798712035562347740630601120320196687241701185823444257328716627595909616732567955318715411784459203654592464930963812837951636678958289211858739575727698566806658885087691203523753584034900039983006780253564635471197807684633277071786687981870469768067945506841832185299336572542321508731722755600695984074963856504548611358852507873798800306658585592377854359715541259465708217965274185616208726697919134103185937139202367346653052256183780260308883276931880994819039438218487445924031012223200313118349310325292627179798930095212994452876384219739907428622615357736079629557381791010939415597705029921031910901928650938823455599487280835331603700721490306625420235295544113681121368822062502504305350276155704864909046814936059508687653035688996241348944451602541329285078388471493897334181966761209376344811835197375044358277127492932403781194119612717300131200525546258087578265647699421674944138886973940335819003485230199175032921328402097650887053547413583776791600103401097471620997781317462110586199743971434953016516012414629173632301099161680234442220441105889999610831608280480048410646175897777080211738302086440424403385971588332773660816096991951071516577798929255109453535108031249558738794164182811957783627897770570638277410037809736463632301965169487172009566657444113743365212665430707624029772250169830486653368480204398723953921481782657389760910248063787783425690695820417863332770478495979434322872034300375578840963929193584323397951585025020484723613261158856470175885676518913087783507316072289849088869478502344484035126016906965239298326855988960296421934045618155649337824412940959785985676040331177102614593240882354668307590288264599217309039373385111035198207494516226049777467242883086809624348256925558411893212281957449267462657827858180247330408230258396689812500841432470291435665726729961339329007916545281249128775499596780268456979384348548310334574819437247759246079986127885275785184098941635033653535265093564996827597736727699689681433770090404050865812618057254348552886374942391670556537156470088680235722428538618496041319618822675835484398284665403673904380362898582901033747255273622070872867402559738152158587528313100243163405166093582052414059474007214489574207170217771137706267624605928250468806599923510169065916143449464716545770737868974647992962967728359566845174532193267210953957980893549780304788857347238310447760993990062574496489485716022690302725312330284957646589781784715759201662208156419158333934650067432502774706685158461614361972068024405277943265439148210589197701735946619588168832856987581168897888713041278801107532476930357804513057362866568243105300742436727584318159841389531040934438124223747561246897490214805127435295790460570795968140153100516651297654809989040777765752126161594240333809804635087098580894280690719371191756788620350750917569912547587869382721574737275893872645944847228485080550387935153620353689967753844480490108720061412169095980180494110703989675973976183098908740732179258812255684446126341279704965071756949649921424794770719040313534235367024846664470832893034893621437899168992817484224417109728706004286136530191626519222134711262790653143280770697098912873774213880868145335250195141754696157156309767800922676037352219244114388398841715270426814864876500686680747979983122932461362117630645873416847494483101842385868179441748720127555522046254520907027699020624899900961833668864619597172150212582782649544097608751757295514697919035046384868897984497590946932610905840120466674450085726140629902974500780876253358387649639036670522499561582234373672646421677780317312736570271354521716297263786008249159377091786788451878240071497616657926116562940558541004851012146545143244778638940965121577560674937423096788566421832307619480592105642762242601311253809579277500001671596555339544889869299731093997471430782470960559951885201202174597548374342199864229595979968469055672110862090497433583023508799417199428809005455945657021062420889857510917729542039445634197274426746111591547780075794379875090986705497868207228800334492695608683047231782955402413497356902370032175561903930178285256805045518145742308051210313364655978781098478795869627065660445395267111822098316027039995006302811302782101293211533976599778122333487297240322893893799890186705586192989498465417202260905115786869275606694652799463904923824277772814785358735117631264704697371472405604104743502435670953577441857944487575115382369568522244403356954833274107680015435899622806893798080522369654830693440916926988052149077269482399080138935198918814940894950764849624717756794830822878061613357766902656866668494770558237117580104576361264459398227104828880449329902311646016117860923462531236445797517472254824009180944803465159074827299000576411731335750983022761307513141228729663632583970803278336224904699364302990477776037154934741378102905176107410377668039167798295104540749946183937569271132748690469866561955349500723737973844459955094231144887537180139439672083678008056808872108615062873529430708562552666255934840536941239192871661811842797741046665089960362134031368040091540686758839245759769366540495906917396400758147006182598041990176637300594719345814450842426591149387593858363787220309443573583423808329751162907243095014743780602243990932933178698509474786872535522839121176566035055149913725463797589396407173102218182303240397395504717172179295284760360809891317151710761103174638874651460648806792717248063036481370737640163927194894433207588138215023419195358299300734768183356520040912145606018326591973912376273899273786139472546129631973679695111390424569218265968678870162483268258094084824233081008111172733990930091891423745209836933638877013398212982464813957682453870810619636720395580389046793146531163215784655536603014973839395070724993665083979341727129017117941685255677696111518463918334319934686687537980604923894527437543140146795659625446439021976282169497181874625730585263559209987474105388039738030371854143176223129419160526126074564537805770288099221704779793907774679996482332766520283328263504107944964608328021038181424828675045675037460743560359744479919004799093467873456138762749980332837517609162193046622633759039940143882477825257266672569759975154016593953773472421926603600746990093134849316024474577645968975456092655146161700827922353981171631736374533096226235133220589664660069129264439812500334826852304633204417803319747945739841035601913371904263390777649392534145960728448891142417368292449458534188111239436144195058333519732566792436132467892966943096197006203364786672937900439143482708639925586903318944062044575462795931570453339289594826292048374916047683927369294826520528180620044106436069878528221644409287517426261339176503209753616518056367677166862310980049823650211607898844478880139750748933189845280708632460403727486839659826008709734398421482925096890883210244597692677229147985241788013509007617636761586774221225784726348357216957956964817969265734936866432316543326292290715990127939144286122858308343857570576111195545362068058389975424123688120200537026313231377778917984319495949041712165268950524431534965283628168676191977280793368883637147480384686271288366386420904108824398047716375811077450326860727841385193043831125566575948514622171780126785127807694357502181578652970184239803539381772336237381173187797971733412858121363512604343933760297887951546195000856920332788131423336388221577141850964239679205854494370986746816670297008958122679433616773984940382953717028804287139241098441011089944506773456095990843362572595596318424188822409687705530748451791833296984685176420671277303596448360585427557049774717103070906335326048003282542884741317137150618042882659472994725950255795912167368469157945193401652840363500543693718850299527848062184172807704010088659138069060762807259540911887104802162566377735383265524388662661303042111415745791920764255489369396651734968759200131247249497189105867773164935971308672924308591057466463308479435027701763891909272625992032845093663148935631203307514371880852937997362056342123859343770350859145380538705091435273409756707102681908695251236952480195382054930399538889669896088814614528974219750858852874665435284065531690798169026993769162595941186191240739066388456120681340810523185965291002661947201461363126031429471986886577872293770144755692788853338502349333187838645864210467613669706710269516711827966148949668847326919034415804496616656357882384614784893448971095905562915154572760294813875760494630457771878514558784194883701935827841873571861784665507828854471880414892461143381468140900652149892165050845450977581896571580666571180759534082225085204449848497342268550941470188182838505139545057074450344060925860432467694731346401178919786384080226683200391126386932483070235219797632929808602648992303869964808505098698320039780014932573225869747313794493304538067434001025219807620868642770150862496104337407027770094335134513380048659028840853597633611501774779001540806026375293176566978969200076214665952116137721041404147672278327334518639419891544582635706664019176702536717208527263806417795132669160790664314271874604675546231682941321550287846882915976555718671825436104686296406394505907214002632050235585701780387996687784418758140233894620303472207046583207245568517817507027481273403648758448786625168064646039756102002209931306671200198762349116690673065999414526720417259596405495478843429054482291142545070546179068854249486256794657776261903567444995120990350846417519056465474628910815878645489905103587164718411995762134263677218213391057234248873247117316727140201158920725965096569356028123312781755649015906378142163493169225909525151114945790343062465763125510546269707832402343214591083953757170260873888492093500847922091724174766645243146963613196007990025885101074108806432596413472634747620344875189781756269666471192241246921223636399575153757289539544867083276905153834691131166199454102554287049540415572740939625650602006481111251887596568503079060680094313530758301499959047328140151523277461683458861918822350406590754292841240976301664030530663280922833367759661569126645483542712107257172892740884768585372967533841181457016443720674096779662386195468130690309958224291144807481641929970177030068594670465818326149534050540364846293835264316724813347424463672195971367253329041218186086677661252905846092073294451340929152353476148025692112519908522438898799825523796641028706816451067266832007446414397549266444339251392672437966434972192703927053786259702823351104652262859870359137427744619169908858067035457428315472996899360819477871651908269941292410947029259440162480309048660969284520231824104201159821404011958068346129962288686190048415469304082329018939140420102173554714329933243269805164608717492871282392197066001786141358634454981906271015982454945882328534440518082147896303424494797523761589792700924489697648085341003263393114293878289128615852378709165169399175033955700017778882502104911297645359407947170828183283774778810529890618251085238641208458068782174243636506617239193605132323116907103994307824596063214435259448513910669142026380565408206678072193441613292481364472890771719092827242010919620440390831662492439756697519674721558551428354480692898286147589352853044683538859261610061487852788542243423725276696243126748660696030435817011967551866615413365350799063451901841191119884871027451760003939363285878621527605095819990566158830561764800272686114926412261732027774579351387648553893902897885595021627632505174771234429155578933508419816533194437794384192810937982222216625979931107120378435911965756322893451726524094410863006843659060535204173851727565255933258763524480074517587025100997849832746515730878234391705182951574650169026308660400912995581861142696170072230484263143536120761275069241101939752712009114779240730492388894113416117179806273002724395094021598203229823141610366275926072239280751281768423382682802061683816465308281608005509047903196267106401622288541892842764206187900634193986746431986522979492611290599612520814533259922241760882917595684245913141925866601926912972961809701234288192300307065809887210004600968005116160019591375253560468209038374427148676377179178550566168025680684616985438284258736563130308631397954220618175158914500454415442959790343070245928210091932521749052206143943203798037597960421701702921524110769670700528815796787486148773655173389614691098747549365399083496137107848208790691167022840678662491146487708373484316673057273436030941440663466597518685564230454425544380981735121850145106638318023728362619330972716499095792443666855452571816715778225048186109497468478620601016018716323536878796726622176582973627788083863222020133956227646308829455563815404195216240451738398953509539108861755315838092717710747970692552915753623751493232865611870158778408519847541495107030532188158420658247057620501985427351557901588353001891585643935568858517187499380229646891892468481337431377173815742889715794912886365779278665955051934958679623449929091787235756758869635936040854278015871820175458336600469792527319339535935816896234635558318842606776903430805308930372485742248235470300397205538494488056564120100568254577938462041617192314584133403149420187979826288173794432606908604321081355126250413755907072178164907868295257872083344304396224036600713726332719330791413155669601981050188072991155935872811172388008955750083887387226182596540969042583975037158052754877085099453193216960414432094490328049395790569360287357054331294124678536541527475459249208567774955847076760869389318729183357055168506027477151710669671652727447176192440876719648225316555717060425641187304321226272238483706335890774431187413047019648300209147282285783312910073308360888669486689834259901858086052368666450816862422096743478797504575134891423322474556346738856177798618883179800008479226127027973368713475564121961621695902204362394598765928074167987234364794202361632081477064556087654787339445263306512820421813700057690373985747349763247648239230894583446601281270433577396561240947184536387092230328591030444157678952971372651803599426619153155025672525260761231594029443709187729705934908371805480920609702139310120530626841934650002305011356568495247366898695378597328034964881160505735394687133840852942483968165943252070060361031057048111982230077450459102013981088568119400693153245146437233888097112496582785157905739361924021523452176767251860691123175509964134178032483586285705887040486995693672116688353002658528289418887255353626287451217760810691675001012068428554385868003870224901339899215722102762216500080600835109908216918681754692584587309001486298324010088593343100638692143902394060655832108037542619942711059105568984000263589959089238421100026007752573583142206181487781417449234246137477437935486728049812533158285520573628724885802024258356915496252683072925277787912256043858279824336191007411405941637208159603517982101814153327284672548574033692135202278728381838447144439140152394843268501362338357895415269372535858371334176330022656446215817837663830219130700995201361796191276622885557499661540565284304833127564590132701993161145031134365833911398130970325321127241115649213529341223888337049957056464348408293495357589212297787004372205003723014382885638240614145306971371918956713429645785719409084217847597560979921240990120782432619670071538320198290041675271269101661537398777484416443281249563566374555774304430338753262062718718089276484653518877139604555061328884413816073356674339565691954664067666235545210108238602893993902847068883828679951049186965314839144680326404340448594314015512496995934450823275093234826874068611906873998705755939722127828985794388217082947147684851276840433927798780199421106740981540027742755583642325694412863462792448838453650495425172201045208741475930749697742951747141036960078751887466786563410678301604852717959535253057870715268407609455840826882536899766058266471184555851614995439227681705047861059952155434645803239715341278590814066351070293486554080338421213497182607246576198438639458782693121430089934752765993157893460290792325282494783923605264492689117640268353463173235344160069877404647668983896083068228971286775022237068212268606050097509186918429953214107415905651353084923704439504847347336099175788178439819919132431808575717005792860227502206224801507691094515172363202816690039713329250491985193839512488396943713183139925524445234898102436980684887862600886179420997803426923717460149237992420719941841859237478622398673547335317769692332214996411963517526371581837579094349424080961967737315630148445217164961339564454627635066288047322867626601105329869724813222482488493386498947104875447617570048419000997207350052487248197147144589070531131132682435059224751363876935752993552864332091954367519867141990687886712562085287415525724736787449089954599375088790679345293166893293080027318943127272989847315575673906505983425442558707373951719920434993383058898896028304188128325025830784019838269165344466357175503809853309638097023619604755001342573190023733733710541661788238866829505492715175778363792697995860046873115599720340413922213358039528851790796489347982141272197570394350787571229120252400166678422463363399723292912715997316198512001481452978758159628333497479703808149217372363363574596035147733487006924799761681771738615209839444170221888228381506354277569993224350840218875523077409726599342586747497231839213899658352273695540510462296778798989479554618380054966160979853254705369692865974968674302156299437019265966441662253500107751180978267364843568417636181293049691991759624234096950213016468550712297387841981361586787323601491539723712942960146374985576938022189326823480306563977690344390527355233590116231515788639832101625747541746317570173046849205470568807399302887700504831559848569252880511940695699507041643276037959636829098321418804483639155358471894585227175343203214270481300251616993942063125203590842950031845251646844081713467233080230026011235592522743862206982094954097393501916163620547837477634323675149259554592212983958287230627151124787372672601146873041114357046973346156563652333628017058064191081976049895607122251975936426304179995130263811998778784853215138563871203361793298406284914071484764105486859317606022756276315217293926649664942316560618526422934496924927098851612366205396934384572361751547213475254351163500334473006651386788686853616808096748322272020170678023911303499520295553106341232255679979028391133891429519015092437674965370183605973975194870174340859184606830210785005545607999264145578730277327000893221754933293280874950177425037311450205635927648837512166147345033997963809358052292092856357120743391124760550458789203360828811264561144178685111661479374188771979041501986567691160930938453290825466777075886529268094808285069405906638659447438712624484109817046101190949424533154884909433914579457395441642530185877619658835389902594379106641635979035069387886413673399840674228116739914675634227675357171646957357532895042454721550824212311816028149429848426947452404086545959560986476592988792292554396558259892060405774585756127998272129587783226116957222678637521235282067601675702289680297664037137806016587881254282737489389073753446570754056836419793231118943655150993989667135235866935027249790908776093519901650853189542840406145161940908331440196304426043196500754789288466946365726692440386197721752064023668396830738264931224148298031400466890983532629749822943752935706906266023179323755827435810189510152817158890365050603939661685807262972483234310934437459019385673396460936780964247716487313290378233791508026863622214104791324633247734211296032461113385981825412164003165176893521345772484553243355950917172634704299438934112568880422009540076981228419698254385596325258964740100798457414614389306874826264294831732387799072534776683093361534801383678230392562592563094179949942801385237371589235097162184046656984405346784626488596962862153153250862758814775676407084313642100541190594724799329300787059578224335957293467362418173063916226321539364491705446370866012856587024895241216072627790183467469168361315035904124983878962385438443026028115488983712137750885087628331844139707048259727074847594287903753467368827170480554421881978266638692477477417914434514069543668415456131460894015573353615967496729163192508666319150251918530917770967515463364154563780346766235330224947979796716609424889273141504741775553147155435652325673154255919169142286793078324037283689738651661530074774170161832999551560419417713513521120444106558776314242055386822582008932288228864208437794808795489105714041321664871919414692048340015400958610601601792140560314700190900307977601024543937858680150413382979131656352647656203706733681083451577024605178296603480082132775443057920801531722363083864158884564262207445878369233730826091292303805665651073422367988765213210497975123775828139013475609914637225966176674328762302098480052483474611330919920500564930068600265952732551838380335716970028461296326339113305680711785708706590415054655905640218868702054458911403485321516736532987108725837866514954174687462376564529032951104801113613001214710917553115607288423413402866137997638908654015200072098970552466433777223692558702651037628066137912864562135631843268233654322162590410331682911539497059563207127852818920383095182139845626531561892681523648058224126592657828919227048844497118507873448373673426972159858323315866285806821458988607835175047717081240398869373820405409193389913733137448738438219163551875981485211434637302583187517946806483220637977492113699215027859084910587323946966372455879278704035206754541659901943281533198506345403144033809148625389785929482644952465871273007179183955444076357480318943825276637956988331994452725899401689005842975251394452767582131892589490694040357545540497767919870979604987438611502012974110014776465029603950949456792495900742178922675999246830142367544691594248843495996637103685132259733665791075241469369537286189763629412272264852193670796480669736973758029625040099806462213950510788142359610918581368885051403828046869438218005986276395206432591585981979909799396414918946746967321102444335661359389779005185413790956818709268087693605665606107468701378774697162156544636304562177788032116071866354339135526197172915313329810790376564262110158091412282062916032863480046918851610601485090743907286965724094585317319264687979071036880919535270449950923609581414070674196427912549810779602678558604852542365435767286373838229534051356502855371035072359106700018602074383454023017621026020101624734797344494067660080543831190368820180589547010923255838467477740148439864008091984973631597734877950543645670204591259958473415817890714105374718376928397987289887740782855174860384734302228022256919900809907471989106705585906718557168101571720151852749971659678369979283782678710966672483732424784933699364468208469984288697578533946735098982023120861425242725897063263226632422372202189405858751966906236810821590492786304326296096453208825208810958229776080377177014573194594775277347707472913468734088819007959134984838887288016529967617302311668925954215432481793008013842842689211851112676360348899048008978693087076071787236608863491160826306710731833969861055713756280332500738313707822763295701398919603709594369071821868565238966017398498907431311156735632879337517794919155853024864151866581719589005695021820551768740781332438301888878587115043215877438571967606838071595100385262589191375989788043966686054566562222190779403481129072959302338959650904982741367994369680829604532864760399070992419069120547945682801016429298932000375092067465476539824585264483108603512851789261076038631047624515501046367348666013717307613890386766563532117000025738805833353266205577813209104668696049327238769497211594803698646772033880417960868033563509378051415939270739090637691603342510065903832825665856120837297841427508748406794825426524315083389933003452382831410779983552749210703094365119206080373716249396691974640705463834927415938829249803416798263056063578876268219715809700837139860601075721242250624889847904234898527588225587291364705834243606136452228832966121560778885492223980176337683671335148106285889717788925005154831184535370667694432055336068704596201468638674424564032119555853909710132480550513480133077865750613622219299903372990074797290705757300755182991687502663323413971918186765640661044972006845317474992931674205887617484917586555957741200513980340675718093229737347709334638113754881513958291396138447661834976128819258360666611111440593592828795672096780768683609784017573828633484168872214988128128531124511278191256947162548725990303979469817990143245342821169149234986118107040413079673494957907339946671122123578767700238673115703329521075941015709024409580462083582548131878550481648969094880963125726924842763716978780667517946185375015029111144516065223158395039325793330363788055813052207806607170153110097980579765011643762747599911985804436632666641225862764371163140525735712375462491016841637397215389426053678629937722998024266365595619574309853069842776461538181975007239022517931962784257431866457721020013616683535730713359629041212536809264952006704460893855479105375734994825085277912717434045205759068964972480185751907091023429331985161427208849509338696830560903059460170066261080398048397284791606463663236185735754069558890936032988012723973280808994843171173157902008432884401210075228345700080822578438080608717663599491656502788476770616921095579000905621407068615508203844068215836887209667055861113458524318016153506382722431021707177045012339893151208467978983887389669517595107700719128013402615094485294977303712280956161471959371881786399835251362665038064923603337979611910555444137904631094287877046088956319966768602473127522933084946929261789419889372484127838865930755060489730444782545569611356699087437963442966167659134706621119587324405938749739586583370656934032793805882294021197967409980634053150724928790160088970864083626399721530618438949044041366489044755596708015309236968588426385547182045757790875221086642267143320746229961014459090069905488793959982394442123690072586111582619695043200215096111698566986236567649213599021940356268711427199235900462543217478312981464547560727121480647177254970030895804255912769085273185322302884947353206018631964755310741832955344229148603938504884262999194505595659984741666777612719154204584620395851183742105516910834054381241041213973592547834304155419620268706472443521119175765397366836496916882782259487619726443249733210082974487474748086021169817319988760988369717712120346500379767822620705392734826628245759020956446061078490452246645872330230649838030573709910226081739126268391197003641117511539363003204828353902360876661075415748539121464559753763850854623735945088208119632270830774861866864389202758128303774800931308388894450362922493874622622354522711764899895143170607028769385717327398112476497607547815019586340925137740239953698714734999019794389921188870914805330273803720683862838391333625614573803165373255335767991254699333020902678901852878079039390398942031587553724204511010218932938652406583629755305223395829709336513635854351223315835330151376973116529141805833120466223564000817409218589762746343340058477412657464257918704717476939223459531951212594882574267879314486514568083197464863095965493220249555251535456983597555842148125811629595014393254488105394376638242903555493913226899854479494858679622413670514600659850691177176337270658677170718092949420770376836956085371175452579660514770355048368388989746506004485948975020784494765467556608763990124237502289076924026621219557233830183293037195966184767614964332015525351926517974639340092130768862528581398542516353960628530849270091580823552828228453767407684778326159072784840130683364590952344780625399263304853318480359907321464493529562821130890874338785034192391463316339388151252663808610891873056941288651394039621088780044724516552022641209066341897295453117326357658430023062358348304368443568255074133199401984504901765800467805244034458978050383805872465168135957774679293236835412813553637231330108236609421992956730976145663388962593429313127390673145382011379590226155126131975309173881503254082849647558452005182642409577922086255491806521094453694950489509946107541502886102703586570717286846741327579711435694376313011178734945249727168334107838421254895083279089856448055036412617940092961621203636367056265811258332778952450447898986448409664372575241777196802807303718265660805061972546261426139440386224854822610014967437431938269080632264881683249794986969196044719609922280937068529586982326395805509467367991114613727110528272026151121062178381290627396519854147258604220173830175444580900000484248104941170128192694414289788929121965341790232101588158577823433421853669027076129527252403397912427373600530808051353308255153889304089071268000312012403390139264375421758169390687292986599750390066394921035578439556337538002061243522307587530571501363857137789698088369147886428328368273662464555219698727609234494758526373970704661889911226106701585620287367152737135705034340381722123016921644049491368514091867970177144484002481156974193222905518053880911187926621878559072177692675865267877040800137156924489062955983315595187871936088887355545312720153381651022777325873440294656411081519915381415686428725351720200075358381133447966436257463146102836354987902312459285899235615333802240472374747190430048131940266460292719521471393344140761504485373533739040450227011253842715168751345693782056633127799505053883925155710673005587421239149696413546547006997733586994471521431325887554505010419745920014687543122151545804632666008510562418777590643507506261740417720644907763501889793289646281787127886630150532684537596445476989639661486470085834484671978839093263005001327942420506735106027147647886257939261835163001198134889395611022208846315163937175462054093866919874254641141951864361415017866426894006157729241847348253294831611801700058151205457015965887692317145305887653919595343494069029735104081172969870682716098995623608167339805704597746571105928004930864577566824060282530202841581769218644759760305722411531028208629756687617523495182893893435520408879413937075331852701498854144260136589359399358065054609855024534560398695058687954016076755295075951641062758112535864183900117603817002228296025858974877236416096119112746303918787986994718462227749883779279093731117560527361842579867839959969690244865942814304198782948059125533675580408928698651379266267333237877581541323402002730603519573760772624362758961173796454560445248691210948645905486969371242259583437100577330771516748774369670467615102262233611650503437515772746034180032530992726391644793261061800434175324438014469158396426517631677278477269291130214034049572413965908063306166417001572925900593824936905075438249581072866724341432558979877022566363269686732827400523130038464826621401604041850661518049947388853980452883789222039457757535082226920389751661855412235435501735718941647025447027882397186578986910812663628020948234430273491573850504336172580314729131633390994187798018531389032137118615058543141821607058895017091573706662617671956976565338397726523499327880859975369229459804488253580790225517770855970642683949425174987905191196393298292621454365817240480516223061543853974308565325728983233834828957246677030337186120088134487030970391569543946184379618605526346934049799079637941247579678227644198653220466258333750934907597380074646933414248653203495149778746919881478603387534757641196755401136873251648405161596760643447404814639752921557058427331271255002013038308911235635013315697188176532851267629706343506858535717752940725636641852083035550742546802387170583669296513136913209907767051364629069310985762299359527575921314005586364743489057905527981216220796238783364908338963671631528585695078937011663746689928682602906794273522025601212197825416345177801630716803745814813936613576331795195383629685965511775133091907184373962908608503304876572654574481164777395052827439825364747897332242411299865158939007292960194454363885018226715491100579817078586498602425815055532365306440306413659937976519349759426171900385884552482044352524088688924398606307673218703449985450387500203381236718433313668631919015262030278310368383667235652850658657032473066646349697097229866633907753213806536999415989912626873237734065374242963214122691375353190164093863394937434728173249195266548507118137655391247438353822272019681402227094291493091845681564554115748730750946960686449198627603339718568260557378898741528120272194794079534115120439803497917257342088219251433605282405978648088280835949931185400267154670407123244683336634028616567412054398584025887218307690733147781544295645709205829366747110484480081629622362153662179797966148331530972735685938787995812438064144784355313251601414839715593955703403079230193381333253314750038943691467473052554461406298845141560357170415110063689610969967588500046632176065546776563998943114668467666899239028439072737583350211408947286649758033023776776101457179611521664694263366487719593602054597730563069273159836051846011663049301692850267113051786936304116415985996145125612576470486820410192861216939085999556992038997656372683172306192857857350840534644375462290794560506216075502991655983701218486662286497718031253740953921291695226652427684096269248571170840150851019771542686260556055659741810369009136151417569567727590217555363840543540456935530760432483440295270965135909442209958990786167096620485082150483477567505098203633736142528307115573938889567601586259216978715600610202077518903982785404435439021798705169027374522035059880057809469878229886199134747749337245251224075561649740548002142933520619293505797343665998105343322154363094841032538650336543822183123065791945394093347751921519284979271579780641145748745473769761747161312828126577632269306566353805494593258884881867069479030570793370584843177360413124398160789773104380738028668910299735331946929657175218598697762166065818419230443733283745895579940080743332295050265879318344879314477817763974321829518672601201308821137609097394322255525198767720120158679003987789572214299299988880141608264879149287533398638481824204698123151296518014907593253996227551943968507207054475315202891821894992094717678759586702915547069526811532480785300629635841379727277431913479646750694186589058827813267920487405030505177638936313335922960812713770986552072810244820583520451885883524656235275651502084895879695911937388157036117679122364077122525771203648258599014918193632894878491103549477802235222138157839516203310884064337346963412183000566753734474737391932842374840987229686229016163981456782873728823185995489876209462279265935346387022914423477040412256894226665021525190841186849834778389888734604745481050467790172912841237456865775943121339347861831914336991950246720562575335917424716607557372052344299622081974738567587239466949570333044739114902748541261552551517170930482770163068491200182021663514742656489648428934310000899376802978598416054742244783353197712218913665929710911687701571367405888182693604118963238764018902462321578869109134159413174110755370323718946253011367509181345022012142534447953212113533087839630501407235725074889619184543617201562043919423361509131198004677067863499359599068886179802611896486589520025134651791502058953695599704116700730828639188814529114874098267964211969386581181295157081533100063977925564153048981263123203162440281115901309178250840572235540032822645721218654279582846768464039299566261531488390870849511797829966405701712215197541300543317142200985413299860523822018813013910997946761918745970586826692828292978384516266488705539673383591512269005361786521740602385018206766669681626411416879617014264900747976603069641270059356704245024950955219344539572427038763874040408251221428817315192621186955702118815079019842600460319994252938179815867077320505889739161505645538184592407701134832989936543328456226152544716855625643235845268582920172531693711619499516498031753549012261449306763025097218586215141570693693265413641300959675304176824863674218904684385940757119046009703667523019582008432428979995061720618383333044623721563253908054547880479560578069884261762855878086975555964390673312526257393265810978230406268687099780541943042520035335921379799672277576921086988378308642419105915055613366161722321863890265216558250171469293465134722720113106773544519765969031029506445082539588717052750714276221977445275506659852831065229930893690510042184189683995643487173183871206513738332863841559569633832536224798528199174845400377044961735249266760275091236206008657147130468657528042351888414498547430360234889198812118688434281207709810502109893300622083185715826090552310095134091607265853243407835772058129053431296028569503130099729201646444992391199993277305594719738056782963853966842303206894809836370739983689197255560650232896369932524915887790923963789454501838766983130224972383575569310449710609717846571923300546005023647432746677716485034734518871157348807164195278051623386293934220315714599694129132843030649225223642162327234614233357755910956216770193402660654821180839742899693993019911514648650321853317724789091899086759490840740919289787405094415663694847644519113625246381133759809347092315714305864250916686727618312764173252344096569108593919827065807677091249394395081027131889447091097905860871164051748944242972608977198086437568227653847633241331738137305240757004125580019495562877006149749617439554006108731233441205848571570182871842125919088982620081860769177070203343583386741682743661886209691978159096973482117872515671695003961437509452296693705876257934331091311024729179398104759883198615145193015606098239561455744780398664953254058837411772702261043303101399860270643450248777602109698947503149105790017072333580833422976708871967319365196148610734010071902211036180285042265614548888856916610828763186278518373373218787150857803292750749025248246388477168227380629530690249182924822973368437162975122704939852287384598121900570767866420727068045673020504728082679326139637798485718326798204669407054732854572674320490049102254409836763265439819470939497599008638848660696229192249012676417417620081043474780378889678774798976329963029640874272707263166948378950526868461359551668801840634457748816795101556403976705970066242470124731475645580263190803943155446993163793370644172130066042422441930631129916373006968261229448186890375464265236838845619322728389393341383089173968791319574373797796264913568765758288327225278779524314467579649756946719406679507171409730780264087381134289793093212694175712246743141875929481531405559613498316184923952460357442484796526587928363173738437523097931750427200821545272833912483591290032355979543642469055200463164083300412832534301073513885545679095295032221173962535313973860819396801126008981762287754299166748170975122321626095966104465424025988696675537202126027677219686486283635106140565355693077769341026860279896696273953560042639945445414162094710235385814874229749739131809827091172655992290619590536279919125717799799775711307507856616126075033980427146373129420890933463223536762138401165741763883151026568394195939871301889172046977338994845674696675781733465341710265011681848745012117741458096432672847039289259744020179625481392249693365677302725095129873956958384296366791522575923325132378984248503215278938485938058341686126457128159831533771718885389985673771510853230245425260209803063338004322384522517945696506975178306920527837886337541582646366803978240299993650566300764679793880424185981345142288361052352633236065796952730567155292201414082650584626957271582122302359548903521883390808144740292803322249573918925637416496473414646924299902504283899872202618873011751138934067710506426417792832514972756234518916811096961802678877639679119640203264991313146091263321188279926143075019476934777335877091774442127355055498047253062438694943579665840709736917238838671621450489868110600476547599738841412903998679746855260720606617799670149099611324062784417421734973766855991663677602983830511010276779045567619768334625982782960733891789850839312234584461420488427767768345894343963637893138963122561673989672884923378084113035101198636145581345708344580674321617163193210004524906158629981003146682163336782182210603947071773665445640788050150222868357169521134529932161047710389606162234357993406258992639228201504631402121200120855412531723471865442683898845903674908865600530070511303825331027198543944288918891737850364181309002344475553664642982498209202923487387306404449369075650262198062791598399558149598876446294355806574575992946928655474596272335564249884724885042331494315725400591656197214611707634753058491628462811710879612380990307614454385132204964436013172927763855685326220794026249956303805745939346848571443012951196891310745909629367049222907719376020159891450171670621100838916362725216934581709686622178050868327594592058501965317245168973712601015280371393994176603096495034133293394530300884116921585683740532171456098309887553163848132917569242058507413867311877035351905351483938832236296652413310998837573351834589119071500751658620062503201546916076358990361479751052057016439869524060354265969069783974565562862847769894628400366968230549745799041610483939956049056203509315267363482804359977393404079391634097433808254002364124246422934935141760276701959576070535338750242167831606181437581043952712605202338667059447053163768506968466513795680327017771410421504702041100666353574562344917655598313638769096840910601698136254866227853216739406799963928222763292656899518191660434712827017581700846124838482950594021992759428764761410992371839823231803599073623236960475007846996514865980807126796648238774078983092825815801335657291712331141138685541173774962630775982427806703522702505881537664003808690117136328799802646813300502198954529765959709319437807168527809794847530881216424933776774652904798805587988982677573983125580673818722042245428632761035485725008528364469787067720699749942444086735199774016729769298807048144763541115697322529247440006587476679071891066969722807837408150154537141220655043000135900668985472818680809997793242254041443924276908736217876762002643809112939724985390696820844495016083082187104716257447615213085221404427653460584519510727713654108595839838163809806392361221034109273961283905073726985468557218758304935836834541189788235805307400336507419068254235428648737899210211257461838642177508292472184413439405935852407083663905839362643648573610856474326414891157847037963503527964610567959287355632983126693266834121275425942968377546527637808789138512186596037849702076916725839132218851574436472334588189844871690653469581660439755284734449806356555138540159503010470991674996541542544244054582789992949523805132698558181856141321021213166280487393300681114023195631348997212737067576623061133028789215352892877422146281495195596672812758667107032994327744691830081062736249076982872089146997913369601407347611259828653224418699697262145591555359540835669721007617157817418091813431052993383451140342363620337750516882741783637154068061074311614181720061511150629584083957945754288105612876933764214681155205718285578080574877194009927541158605301169269359047138963503143253222652236977071475337860221283598998480346244196911787045823171558787798525345231254004694111608319095056687447545279184271495544643045135368238962479080599427187754311848742370375936734016519967766518882143436327685315482337934029438629047115525012690712521785652389255941342702910348660487496331195393726931985745074541903267621927066506015036583966802496968160266498768217941342330306635263086297674635525830675967017742783238359365961901988968307653628552608700571501320955986155253765125387214673386258291054527097794927653112130841845019159404249372592545869292950725188503503877626320202225902115737962531172805444372638629408224610164150171804800809199900076527845048047107895026747720089808817365716604020258510971775777415158558958140638756140794762468576650643561854985144468417195770241209057901294370005506721763307012468146179383286895905506207978631730869561883271915517501752145852748045653012050369524353307819939866178674536625879328601515772630746873057228502958756050356805790320898762431484404251041433352815611446393346528622168530047250512618310015735863902479652973561162473642284732516379799301267536704790672775570936090182884657167137964111390601868497621042433693941065416634113209424842751684833877745596165125839627784912033192018718475343117684361719150358035824326616360869381556596666532621734180206410761308742068698457364868726290996841960661088099630919135868853864547076736282860392057745080040995434567674326157243030163520299251269863838940565072973324612747710535372540709063554025885375169324683172365458263081779780445341353233342886001942860309186394400209176853216899362770841792856967258602428543609511130013250730538572449612580963492081663601272708803102241008864725831169854946506281741605323295232403413941643594833500704948739077677680172127136042055742167675243439441080727909898033893758252760178371432130850252045400243207283613013325405803974453980187707683124235695675421909264875689277398765786341749473143387743756481758861879140563161628904640185694720738060285528480458376913889482491469988512785620450388932875926760525726233618507439380198285688198836745827877693733611015848542984868040437718045662667690761665897742549987200365628664955926347062934408512087609442905201224749956741642042916318011175684896494726808566417558631804203079928069309476005778698567437130433584105789857785187166469794118551465940348504925303920025289271405750651872689366755875789977157804836696639912200378194410494868795604962486350663855280529490289955860593375231236664598661168378389457361404383252031045786527832955195651131851125937200012983811363715842696202661023210371821628668908604913685106447337686531875004341582640932550458259623572501810595548136307671898193726616433036394559114284301481288393170096300753828744915276641214847146775460528286791844102530788707015565190039597592033776659559691208529631846513783802169768907539931727349834377513723610233742396639535683630511941291678009216366957964793538061537997884458213516255321219499939927088562797608190459169304487352131114923699047366118453784092682589590241824467940698653862939134500182866111404580393524585954623402677262568923235450216375677997582627107734596241956948436463750958577528414742923887391450318755446131101205619591969803369971000253601867781898067500276694681702910812954212112638069247029319110065629098811299408774927368313912246858855853169205359565115857709569306307697478815772044008017224748617585795386128982581719264658158748225796317430637033166846213178822973052897374157153663351704556311056080604603241965767405561368252805164944179324402069856231346372158403158357222998532251382956692675136680953637116962072604837798806698085181792427104519310867512855851904488672047918398702890589585316775022130912196179912680539881498433961585590605438889789559995945472484253457479318157835163472307165080023557343198929043298857035872237187449136354700486312357390511368602972690974598886032344295133747340107523232019391229448416888766287127689384347308289204347917479843169602597253333715206272835358127671025776386375855727487608679141444181693316956938237213885723932757946180722668129919222878507856393108835838029168766704465035239927332937711315951489226776931197615686481580798140488225069654802545051678281940535492017236828987552362521978143490159199561245103453317753213649223242322471976268315096966942072526571336964040535994719348823634134182824095658208356038558367554799129830131405431819416339624129928451984166387640641469223956415362619101921782803857069576249378357429215296514502116376413235918653205325178434697142855635755127041902891728064012662087513225821273280690301665492098034902901109732048805695029773574672436912379571241803031177872565702743109475072160521379221355128873170316765792532081438445401613601750287228841538952511059499735614315653066819757355898764488139294904781542997617565898334357580954201987838302403004533249605024719073971026984074157113240539673392081828451466044278163429814309698649681714153809066838806228979373080379324273204424790991737876901611674608254816724243590750401545822411292826127374808457284890674488457085412823869131000861823911808444981008623974733922395136219265850688709750220803481773148771974466231208411550293986753052435815146300959162455231176863530552323846820131511192794068903314843092809612900224735536251702097305312176376220841976611279211763329761234909702180110585618300761354954034524331540210722314548304385968519403199827228865707989431574819742670822140827971573630892323978104801790129622464486300081065171963239418977932526415542075170575509824410883149724803504693647551648543356567235564471778699761969622954704668945546741503892644954874461015389647064861127222250959952506784417738240694016098425438174303547309528327621494248043153790182126889531298329436575716645597506649561245629460464079296795044170499489660819978279951537305465628050807322947864835696778259275405829184719761056303973550012744404351227921279723047439667351173271677185900335608616364299995360874324573621788225620718521027387551595845464523297650828193205418636263711086149026922372765192908477410040059192428092420018719565545754498240618036828958759396767012562326511269975624611927290048782436248866514221770439670127594870454421810502835109401752513577514974126424689995965841134919981736416007429409102155385222748413788438465305134082526124366606989371784919115699301672654096705059217740961516185691266904452829169022257354971170131777395008016565734605039435762272093711963765240065122719989439710852562125721456562984438034127039470932590724523803210854603109773159535955318543845808025235961488148463797496617167918895590824810814470464242599747286075831872002264036831002951455241830375434188092719444155517485146054324810330366502742439942974743541219061109143413834944521909729009722325074971011479035260707787598199951170333309667370229098102084014405688550844062088404510814625774626326555755896475843530090312415664278113257266773977763104221166252799204446394347648516549845095590118564255918684108385586108481353746273234678878875379325088749708374648395606275045164877439669337635007448476617440270536247877512110965690879946718460246612508031219992336983288035288340242499012001133541442907236542974895090227100140630466592359680036896485673737266970871932377502554688215055420643268416040039352598283987656646388129489016142955232091386895439856087534361153125334478233840324995180595014470066077004778765525777336455838749158896762275200696314327679447857436990658171433047110052196379152674473736188862325037539319463553740289999730358412545715723332730592210200282228666139220416964680706914090747783890931668965775270087794697300689845368712167914532172170091135149948287059180971197202771252420179623864415239842113047431705255105319765314426944370902492356810950567473877539934833931416109529533765177037623161068896584333405024810959593020148734083806622435995301442037318680645488693081996976671228490317418735818830496394778624726766766630126008984621854356189903058633559980133281734180525250004136939863894190680419215966077965698511270944415927099752420341618585195539992802472299361584252080190176011455988975200424229221891734357967264054711747042613927676451754715969757219581747630808422045996489268693050686907897824793787183225199457527629177057641174264389799992430835195400124548434420361093766695693286355495575582122224169812172578726016585922168180822151672703111059320860397663241435469343637887701763417073964004742884517208942671889937748871326493221945928306469073072963213292712995727012904997104797391362217088257751546203129687292025507674733237787672278978733731661155823176509014836708020933939693735098283074721731205013472187441913219384700751991031136896220907507832480901025569627867825599358283451668595295935881639193952825352469709389631317245109497258229628948733571621621486173387683748080955370015098069449489941401340663817302874652473780350456699045463549254155982314833501148159791382516186322085402330412338059536866764447468733107698940952235264276732713964572760581712041369107233945471897542343801208488340583417692896903488373144962378178536635860882777861156395962783703335243768842921196302957057424273792078828479967345024779182596450544805949931505431711838574153186715000867242138318763058045445922194628664263055899921534245569241003519095113092636062431883024422481856731631400139028356183672692279866998323411912374357413142609110922787550162374476701650017039268601682101905594193859574663631859534786003434855496105730424244614761921321933990834081442404910228006565830631851521504230884191048043640797327672875014520615136121996566764918257089293204392516280129659314835266406216535597569929311936513432349502586480740289827447783618712561769414452402791237638533169685687953853863961463346155578492921153439073312512014282116666691922660110450272264909707454808513972035193751845622244565964971308565452271964404172266115435854046312292449278878537707832490166255682018104374831128576027221440183410094558531394699800669042457902841235434720570438612586497334151823543881437079130092040825044886192236641154213108891449779662599837995242818604977256435789430328303342376138771510865975633924389096069378402726914322469280793455267477675892287924342301553906637472343345713489648537214647677412318878367808480971581330455494503279740511802908271554453992166521795416553976042567927487951460133006337649317788484439184348027291938470403143179502937316413770520479447818232168595852094463216399830679858734451876247607245393690654496863774862506055562758220852856517924502824249171204996857248928944915849638527532710548278307195077017320364205872682480391909798007215558779812321331066803967927570957282371252538801607825181302858215506465401782508723845336468667204635474257524731756607230045168691845861454294857954718033606389315370530516209517672700327109299226273941157676755048444684847093185008769263929878390382766604415453675323008423412748238248170716133733649278655090013457438173767202281250984432739329221025825095474747344526345901710031541937263185015907134807024549451558596003580307612752432039767326261452389257312045147237592501903308718382618781159273767289387436027612292348428554899059852765023738138297409855025424229052310529047461880522832590159426335000039870777345414726867978824367265005797058319228643857268653973522735900952429971210630381051298796410131166700623357149974912643640308498704150358209163285252205776850699060137018786048480430078345796047926247313076321135766575101892165741486971336725794043811799067075150985942719546056389128646416903181560406152215817691737274320476584046920535141834434044655324437305036946126330875855054290154841936004138495497967287452797526429009594556192773322572938120151348207911236999183461436941005032739009967876701633087076302118464026995113319502261400772884871668426742575666916108166864630786649796911063209761910622715826898195721412722582523912212142628576450366061200788576115413743837310012434969768667570630782260309076689718420107505103764015422205325598016565735676108707698148972754343689424767876125492131749316803332066217786659768308933221147500185815009089002245018056695042548597838025615499750309101974121309646509235275693147175448373222147375817299271259835351403844094009641287178389635230532322756455928587702015089313440966313798625952410072257723667255272228381132286508752564536667936400522237196797966208100780880726172982449967613881548012323534748026290423729913667599643602174580863795040666184636493891158415258659620222342492478712611927148653940196673096430680094914129100235916524126710085768249302466070153079855653125071770046205870628859765617112980482993161645490522983917784303767906180141707076255419739390766620587157717021355084817707545182963763083450274862955129299600631736379226625308096425639921542833548485130877060414398334445678803066267784752743522755954305974992122866168009416306975889476380187880633779604733500426691026363375068871010161289078364526818803202791466144212718643145283121018248672094125185778267340749782933664355332861944952523163485301829577286941754627176437548598653845359620596613983244846055436024075794658051536078983186351541382538849817767676483599982904034210288021261480311383551051629263722078678775624715739624918750347034225469328844532931463437916904224176784169301165174770425110424246819647817650264920196377463174775527837194165750947290235163881657545424562025702954225068079444840671676540627361248962479963646901803666954597362961129390986599594059449170118157924045059963954067051845869666601082344420520903961557657643825291858004814574518058531710938727590660670362192475946415910503896108767161349371287837960838071917877471925840733436879378752938907043946449669554610616985876167277046824686138824650517521900858539161568527695517233757223247507666095725755676166868758741799813427411746129516716598463371446939938287119816167326384276926330360113984713273364147966617743939612659167081342248521636513001133902852874783133984269369025623193100332242933496855169929056806353338935395089809323430188756265831766831906411993227108881011022274971555737874849734004323859755214059676062314678049386637107165611198406710046637571848616555886067185207995008249705821292357368869984273263017366051938340160224898834833697549443235263688731383964227529298812646424973296826062680114199810731044311825323502315807128291360384176253416462838151728885514508144434140835780536576357744398077169323567786952935598452075682613261441537878223708591997553766621444259247312960206331130067272362776298577222420325216523441059582967560641866402675047251235424309292243317610078033755203695418687020471897628281063744883205206658437737075728332663035284879766453301024585116631611727033100477974482953108641524904740276883438111547222588877059981673832820340168087294463472882688349549402138690387111874556050616119918681860421944135730069997329144299189366044840757187252816580897659126919984065742917713934717347919217892651761202883398068447603211701862415864277948480895939813613707523667469634209586869447881988589142077822955213181759019554903267139264524282142354575257665986291918595453068218470233811757539019888950979018658620520858513193792910180930810665764086548004759468223400420991204816414874041368194355786835864924240040426527681774202626182122236383068875866412623071813497169437402724213847985558827913257039925211580617476258346024226049167338992116897038717516210703753765270797883625262432827966754197906985265889411236980848381399781107304064619699145575399209197791517922296453597463395397657992328464348643255985927799106207426230447333880380117190459529824218296193583091139624454134093194121288309661690939466520194244028123540049413585764690057453458077066061698723345735553668556065500283462019817044773033322886158791331354836723600176020787326287450322733788873828462573216106236462848016278602479056568028063953289084404023224648913597174389948564928378177893644347642287904043551073906324389646492996572712293476771311284994907131093567904080971370101314041311028673145156891609400695211810028955166318664308083577678654457723828857968115293749423994081514519393618283347396925187481569177153470383789038370298574685407510510084454298864086402676342835468655974121376128824154269945264215895161094552313323132986519959166463599977926985128342388224002617129354171066576304779398915274212114752621242379391939703070334438793646626679807431305843213570542362665322774777857288886888780383813836099543502007143095831763287720530677555650287814361586458281951721578505756046878343320153413694775333073160577660246403578180706597315270421245990606418621035267890805767612447102752626427887086190244910183306503713912894247982518770108548219063825870541541764997392322761473719322100618395751008772657586323028786448989536168696270486689307806171442235092011760132311833679659564508963937744801155309701427648609724702965678885751858306050513296231033048063660505874891651592977609601953919045960237062721399866045952150877247705435545623754067492781806825426012120569714107612275605116974386390219243534991920988637157957088020737340701723793479205569413905919400496444547865318156240531224683929326478624061444648102734890952878014749241069734647363514297686143303290193810474054399717501239535506579451360384080408661419341778429958764523618215608466137523654476046873710131181065652316771200392309004510834667508015047296408061091787232823998735100466237452555937720744744015409915376818007649571489523830154576035702974640985495922100095025113949131562081116764824662359970548558758738004211355172885547436133748749199512650789074783158339485235178210987328052753276040432233510406156447175403615046641822938956580654149583629035844079288214836450072059438646443867137218526284122724573116424475489297683364316143578461978368941483431961833804273436535013208953137581351032428077114938923289191085643386690614499762458482168790598916467101163651350140597651537271530974879619024380871289914210812795261772060572764380685525526930323569460631521673071286275910388334922926030048468066618710723631709109249637580116428679624847405024159233379272673303121493807399403862910004502287506556584830818067237425365948672421634319829223582918296379431481968307181023667957896464287034244117900282375529737322780789480427817410153054032554253543575778172366251517285397712763734553509839573543644937514005112680408737434945418554987699888063099890860754412175770151654497074570106677189758270293202393965835318486650963755097422985846692540157158016493061073652190211599848977933332788830542858200476712842483294366319251147103262907113172264734514255639421243727744266253027827994617115186746181540084820751815091903157474810223092128919513175871884688391209553659102488796686726346932789011452822540758827691286704841794297763493375809830223177341578375080960435315141838454002810520069130365705563484805469489140564599680803865860059430219797699264480790422261796087683097672538225520114582713447767177069516810407297446488032451383217185468591415179220332794545254579697504034220161385064545116802580769398875521867141269228895307004858126832967187806866843405430264862480921417762106108599369419211620467957483781187135723074773645745046033066142905562237257990904328978213917486932374663106028092747960413109111424332159491392684751574991293809992281455226180354584984085762308139052585190961645098851072330138281641574303521609133254363663433648083297946079504532395789073767256848414192525619622061843009084384148251573993852046296289399889314451768043541189098032534329606593644095218077502408152257687753215070058802507305997996388029898567053604558979313573114892270522149430918888691153613979956009351346448395213986864504839213468974580573667105776053163206800485432876091959947503089438677312954436242415976689988457930495062872507157138766980428123790813123263810642750870062295501270751580165677404889299335846202063946551151559670263737565090145582732129550716662092352790550987025921304149674047761389390891512959222644990658416742894911035159906503583173011323141156247234664375910950288807815891510302885432206110388926986306765859502185552478800563897166647133054839626676931610177512964597137796972579863538279811270264720138087813855799678039769080240859614004361067119261569919662834746608542873578511191355212678566966968014902499478690944311453334457036783509705625188833169566569323625018904093917152481796781146831807297867462846794428457311272095167253839571399958999719339123230419510210154468887317786374484246517809041362623987967131211091393174141612085930506030341149638808850375827809244467721388768492387001162603590547659323911057594470565317626405396066292720499417656284659735780672469073770393463832072002969614621777360207868274978807906759622969959777918446147225950266508018368133757678538424752401687079315881295404427734451858119014166406394760587496335407335132488936117738364619296859204508788022481042406157717569884702228391188823326344052748180696603232225354203531345688569962998745757433912852941192001913954228991168706091087930196733621355410952353260131061270617026754988400451708296316598648450156702670662899333442142235429218957420836020861384447607492291732212130305638911573136435646308816509481197174058556557677940179983594441744615736078769736124341182404508843314808930762371828963340163762952974115350732886445509284419750698484356092377942752283426916826179892194193979563249138406082349378298228986378037449601746464650068958414865850950698197731786428763567637099990511895184181279864096700609213863908994937716358077035557690664155646363040129940637812872797549413914745450452741262240658035246640163215213779379126899023125100605781924276321686890608427057189218873865834593512818056875446154944093353745840720038340165498086087197719484233798312254565207785274354760509906826896401049058110910725454136330203215450612467162524625655584764655226130900291117002716671211144894923099584856460298843792345023364805622133351316505106361288260342006622907261709500930783755332422176454426415997495809994162239401573705714395277786698797205545141197830776495420316581916745934964100692516687175467793756873018274127392265572936029871632428892953751229679565659785382766962255326473657376591910428511839978334528005355516059119873832316855656319417998519381282498061837037086690780496075760948370776318291931372239223469413405816650289355115686140575034194794706470632749200383497803164837126618533357569126261807828789804607027695301027733130670246726946391463479864286300610604620396142043984422694546266437425255201296898869869499491715990975055740639818086343450512030414360960635698437800576688289276443650752426757305790613564140183477693348782361561389001109421265768472423017974712611333867703166209979525902609131566911348444634225014999533787001032119395548657332337356021453249667004326875829626260574226417684149933215924175819317404534831022080383298998734600978361057738617328695056795039154250278864500307103481895995860241735604708523779462582179031712137919279510133172633382694617105687238007423412837968570222489246487543101707476442542520564102500169167418335250589087265511291814229569459024660069600213739658470716391897218152439051955093517261715081744505635094530006753075248595736892597150307456858308189565136178434625246384401412030575773178125521150271332094592044900886871359536132454634905335361532041089622723441988083055226060815703340306630684057031445708143004578379894030934550648451966199563826095555388369072445740522907039920436633788422846145341848762666223282330368765126713638153512390693290315341362661218830380017627278212615148511780348560613522391976509595546054293742579951605760891958791092187012399202789412776872455145708624565486398448962005884596489772608175143194450852923902165339697854980522515481108119008384937582645263779451111870091307461930352756156011009512654996933537791857776037925943154297316613508824877909927397390799327619683265220434655489262633570614310962088792501212676446298285114615389866226898332931721843257112573925830417466068710616150285518790756489932226164036443960631818174988053921404966791064044645329987227952565881626450232918281180200220757206913571489745413103471169375748911652330606304375256807711759779472467309201477161536634638165261422516457357158611791000327843224910132250320957133274947947691114289873917119549035352349609510708507693265593362856470205370112803020817059401188118112133536253913491789479398864795580721011047609591113486868538094299569679185052715327303995938704850901573260820759505286440006760802836955055502384002294192589019246262770825727539925448073076891549488564123834076315005981249866351088951484925875387673356200432080647687184443109949820779439442452637898748266444062585709064762994079774335588142335478900605557517587247048288023320323153269879963345895483746725016450029404345501636979420440645611927043994965348028357557931289302555292273097357653801860003379857893921755027671843754728416413839595327907437545676854008116514013426134811417497564719700479046026166300806928544138502331377806681902785629958826834795203919332801037872311908530608819127189139501895987041930121654662833953434772595871133346254075742405368136633095693929113036080501960378353160224737484901961634983145300397406324067090488170191610124583729469977478910675768816825520702962783098563957232220399951098863280847340430891849826628012292437273724320908864872458426788072122675553539950851884724957473561739681000343778656832937528846538949411859968350596602797958249026106095714579817234543569204011251226881367526945570133935804982948216682367456305546292604645457770388031840305829619588636693859504478617243607440208323741944616247569805143967391579871607769499056930206523389990819603691410434089166566256556684824956612775782043033026525846827452330598338351496076519179735294600061754642288621277506837039505678248020437056376661187160487070373690265548532678700566643987012320731454717760523148536646536832170594532697657014314528795865062058762785586437522454115326113488635902657193325899104431062952781508588108984830285350701754435357548599329820295913984680159019855883151830346620510787906250894769573832095995619734169331613520082912227797010390924672433764694466341779824260602870563278498407165993207780720309924220805660295450928141225209228453060387047990826132832079277676920783217495371277122732085530696372363519285874441801997531194249765257364179049837719603610376673027358412764849051846482643232257448143175029915972921334331314413641273403907948775724401859601890691357704203826673817943186634952619559559505778726438360631421696432697168147868521155824933142384624473553782713213965697736554589994997902765947847008828051465853473688411818505229671743126127698936917622706074613282848697907743457538595684106505460735278299062110866235532682978172299713344844195260031168757487488930443870838882363546787284744082482354964524479850418730134382694589639024005283099287460803348561614274264303564412008447586684293600568966390495343066177852115316265978256889458073900267247785765722449912542034676916060370336566669664842634723028820941042208587706506689296023269600888881951047359072049842719631606498349953523822120167506264477282252633435686656927200647014000264357236916073097119123810137205298767366074714929698074109082439199556394151502349342573893869760399425631593114554976118917362773248947732800510859478645197378061326597192133576670064400957216840226882087380429863907862484941758568090910183788307254301581110989013468571252406093464837070049418009274473510886395071309736568466147288326403216168435306538253373046660228498008862210824951828356595834286709225640977846260455320066701570342005330995464691871263567471349723011691510836843585694107195449770930803726607733097152921695453079919280726435970635497495931556013696290119423177799206788258921505366635307418771003985404451719770220241956251806391791027343842861959321039889486264098149698687812408998496123133237944872234416396972236773717955060832793971289272352945255002960837460355655187366709618231395738417381421376068720889706603494483315388980930137452211743073917880830534552212094283247687236180393246033183657461929393357912891302068740527255193555942165767672022338504076549134673762758754058217108470764313836698108172869146293388460250071027697038136068765202811178130439517614249161225074511123424037741667854888039663674271375773841988484018631360154561616104836789114984142009416739711104745036097916804619579058918594933873602027204829922339516738969544229544401128206457615159155697910845099441010361784803520224534520349426251635594744592922258140735508331937189846410437922069025150952333988855658264549059985198168374982125232385634823081607819696318239817579447509913514589801806109185823650566293770463131197974989867938709927452629991556832363449603751093039285354389327732392066214731589207018574067845029694134959299961592892928749958886648232371651910747723827914546784464586097831823284077695766091585881170804164918515837348089472165211361285699701790017283254554404610177130140352647177039770652880132809531685175400613286700101546955140444565926305135411606352939068599664076971571388858204330440367615399208341760945643191877630045429680005791443152459775263298135181406883603796730725860845670273297732785124691008950920835105308627087945803008070018662802877124121695417231863660299126203661627856680095487789963660798092321932901407372573002455130504771968406708976777209979429414866586305169988502014832948770413245174697897783135938818881142446308138664203086342278020352851204207263464068927946396534429960821027013958159399482596536710393669242253422512629370652185646794214822015856831995312676763616016703689450330515461024639966387171495776281915736730179990332352629727113086222474748988134111392164972639185885640273687275088016277689924166967617140718699389405956430616461314127803366585122343026559687157715558890216846151401851164027618499910751067384226761156168087869628729221618053009820161193935391147354125465495573421907888482904806978899885466437965051370254930890149124477407548863571691603374099408291905150213446733453097891633949114643499805749783554054298643529707153301222753243512537640069301176215942928709189890049908266676974766961539878813247112467690909880113983117429312011277181335043996592914609761694816131291888534123362084324285179053054814392032775070976005829562703905671815150541576138668508433631872086058255584804870880904508973058193900718427602434049413380100558252074604794830480738502535872254460811962417068465721138473760410670504192976983252307905114391637364254635551819917044215294427861549957942707327017302612032878634772187868505329423088820619635975527871532165067731883608945326248395576172736727793153834804434522568352698024158770317938876862807363483191844645693669061844885492620084757105225459566058473030327087897817696541907232528565981794511300556319981112785341696743085042414404587556269783841549906786736769492144475375665699556924022551531606869510924631889242636955960251813682444751183317413882530485349390892117822899869528048170272144373431939014445626254225259538951795149757619341419503283610489401218645732666561434825052701176561416661185079525535366783484146054839623729128135929961197550191904069753900797008248590426210106419003473825375798214848873377750386170881101597605701045877042401718958951002793842802745494420821287718530053547793178529374102761880170482276361390891506802103933700346144108303387297513675310022507204869235857162144184095397931377993089577715572919778720290897750377996616210058988993555212348387668356409941782616641116043457231690799730102888332005258325541430749605069919221275967280646104945989457770273198199271209704240274866833075829353407190935923889700493797306790414295334210087163135761209693551655208125371537385039742702505918079078291521759909285444800388550347272439544287141913243381612741640974411496787951856471936231819834530410255680912541305087037328386782836819991610555239834990163597024102336253138799959727440875440135039764771111923818183851608123921180860322873995713434170572288978664302023750799171779853842059131857831909305333471607037768322065431188514537523749343435439501197260148075317357539181693803129660566664112686815603691569640943746750114465916196154838805658123901410539328721669698810731545814933392643695027136314618212923794983229483056849657883724075686586862861672435326359082334455885467842038746184766484898475127822643851964865622350753059568449099926960589518580157888439896646751029734325127491956101531854418101636099776759650890600754905717788994626369435430704803405276270150901528215535652834335514808390588052870812664148415369507527729320324026669900736134418264714298826099407271310339884201190079951940350045138223697684624432934435329050732134687064520641703885548668901841267887493040344122284766307046727558094202246914745746225259892662853232832061278695772725744211518906070661847732580441319884502844622774505329472344799210871123234748061870896995497453739372985373323000097184793487136586613769391692032886826284199592240815758084418337101182519882384325345739382630643484405011046155572290835054155549460452865019662474709176979124658726469931950044054421898793106709605707700362784517476293250642073781001969922959874723554683087917675244212485682582840920093913975190311198992151858200477013581308020074537648194173484991981925160321397346357084436346174776140773307308463998495230930213513879653118700479219811940860198058021841410230454258610469611718473686377306935398344203409019940466189964283879898518458923883714694737252884924565682874745460565350958901813106482655095397690352206871518741221817661828287478761804398971517051645645232168486620871207535760925567846264288670999017641340675742258649038549855299434664087227896519379031829480549645893657182505196807767449575267353567980647766629434890890289691080841224000844067801053430124780326189165157745592815841882049063361808110784385287946562873668927726073859572341181439233865545994208511166659523222538633868512731573287997372366891995737922674049063782707294880655257436943986348088234481920036163148184209637062166214440983654107541710784366509008293697636256242940868783687332216788000778501488209015347460574275236856337639356070395097320794156776020637423003665039495532579517509555636042161482432548848785141415658952476166134489466296314431282809340280605279312764127002881122697634277334126464724021718434135201075360279310684380432951820334770886262631835435520698340212019387215219339452242489949974129311027196864858505788070518678048704762001524030147257571444852856436646246019228070802980797287540258303611419020395490282247394768995830212431401836343586710382399001140695543123782633665899463891811679099865029283756819057407758591314389680658621873173445421979395290954280411943489010878306368307837438195739660062313561385485549074709445738537172398746041700969136031741805420529052835624151059330465617166443522587512830327327423740832973771422448955658702591438449781840620111070732547576061058137547118923989184707408834133022800793263546670087698392451975719792300961189122706405187217347244575311564019068430736554205907276351072760848179387818205283490727129791016453143810153730390236187846566723163351276073724114598204581480852568521828738951159844522156004243264941049307411059736075141791071281932166860501372488664791935834211458498616185906755100083432531814868997251394681978259241064972497178955624968438612110598325675508662629557353700667104939367050954180162703875330072592733754794001579941482676996540839175218596865190816643942762879642756471545324790902998330147016767199825702718842703103911988733362466597760381020414921603241862438218251426190787842841662802793699730419348524696022616158930950521846446207623192872998923453417604272675065171207864816526402445264767405609515892791588994029874432789353968406704185584905097148065263324311129696715888941891487827353313810886284178414044363762964915022778714839803129196945807602084649581018769477745813526349597441610910131573755699083241586420096396487454370721290308119699948659414883067097430985107729945144301371774182854673860418624009351940386958349681677763636536822688808497866058823959030635115145849317121875521581998980662540666468132637371873565739082803813826435586220316038200672099391777402678271969395381186953085569175301138156106067553019743826308543901972297422725284668924304628675979494096919986855754889640528349985894906877405533160407038552254167866596957467815765052564530715019553401147999679018767227669256991893310494194651462882307605849290724542297925737768317659582621168626524936106942903845700287982629107434253463862420927289366368136887126290693765050943819211778117982651735735002847681464053706986576826985055416243239008468870940361434056754939894992053339234281997528021658807862864973851612424413185183692614887783919347799195855487735167724564936977094562836391396649493269087720078293610605520617879975827185959303644704829634758998476065082159126007823114379013985868057202071703981532806338022669287001052784233188064804857673435238924110185577763710967928638645636162899653104738170039322811581034821647809138460022923376572967213180445826270289433410251092278371206860411741397298115653549331061240756789137106651059448278070931947584362126919005878932902490087189437406012364608502363393155725883063077974483269595382443213083309017157658114176117004885472775820492431949036289881609069395683643923205122616775927819011503511513749670461300234464461147878074313436610165263336500998486882056560691574136996075321941945237336797463624613339654604978474470547226554373113878890472707769090857960397183811226573261859806427069657594699511503638889358855815067214580106640105933203815923145860906890914486707439655524882954391706791761316865305921695209064893578438618275969622463351107670814940927823039811129928405659604604375601171346437371337756505783350397310824103784112001449354145791057716626427518204781771165517813207160770612596211051695333951628317831827004263165422482232848574072906905776426723165520173973964483695768653150323781895309314558201568288786508475796367357753654389024445168367792359916356047450404941443072315595478530143405909207075811356219689512610493937278129400104248315825642828418778922341527890495124819251771380807707511657099086410908231629481958514080566274575952553626564484305289781760979056216258939846850770647142964451019741502028857066106900312568775497865809900376499904914121828867113303756099065831826737281594508698724364145102427409398280784369581575169011864590274224972931218069658423665875740452019561675008221518492222861930428744499402483097050972923236450962877535686026948970025632996683914443548811207523645221536688315421767423825717026174819612097691652664869175411379093818654242265781107968278907064526319200806772023981575588898898682522867160522581678261622404301545221599473511622906875607642741757168726054014023914789811586617944749076328775244302082153647308854926548330212414044287395789394954830364506628889251994575889799627603019714931518233238786077719873399796831184737952198645346668010848896882986378210934953358745762457419586254398788847176957606460595233949837580150681286282660289029280195818194021452229172684206411980712236285575570451357464454397149738126769090423861322361920881476167998631305603505821938943217110617092539118929779838116728486298780145392781397118733641586400955675985495446337177967997007499111034892776731563701750260033068093590019625547907011562291786765309402457003298568483139560593988043809973205790391324756937660832687828217195626365722583698391758730526101806647394781588175218230112850585586915103650463509633797701271492837329202474781903898290093634425136468627336102177950047056535906517594253118205828267134106970291923250555378418582633578400798754234291296448996377831038772869742461747493529941570882165874575818427165694751206834399978302235491191676150500425661975805851800811905315154744546448583136521640101796468967900262477042068621236250312357539165183374480079840247398009211149803139296259296268869222960330997899613987870825608455571905048863316685251294744544104727704258406071313686095397376284339492943818196921548140078812060279425949211103334057896467487494889197676990353120094212730495552632107310036394320553406939100858793818445956096946286316550463655660247744267808923474727807089755944092211944023967991544970309180963823399401777315324613493138607786228714676671674107198521556503793963903644245737283341705836871391957555104989447225468555922882141904486361331039677356450934835573290333195203158160540064973602169941335564539997775063543068824511442062188966854349591205815312589483274655321284840890440437403027612874894192291310587732700157284450408562707769137488685615782628653492018172866275382214914706922586497897101205541753772739629550765097295911336659935183394430787386503429379660294285884893103599979616491791257743381514257432697915524168438422734802719707030963739086464146050147985148507595469989105570206488694515465851437596490343553305835159596448064352213132661503153420589948714499066500752535105311767091876532456237614629450916774856291083718787005809996758198178314027596332707307624224224990768486523309009224122074591223804308258313691122419899440821711501437064915534441434035604335011594833774079242181088890611937607628830949773128664637581910460331069520710714020376190769756983686346810185228344100400627535145050173314974957754171967394754823932674734312252452807707832217721716501491403739765398352040866918251845036285864816720852468216060463650064500661074771331020205438691874960983952756235531024536315369079665840886016499013479203796622405758454934520625260322007022967342854124817655430154535925331814198748062237534979768267725052074819805945359351146672479903867410305857058487538213105546327587482077913756463350915280244208740219497596917431643174917459761381910851821622296935796112408942525566455752699410131755656620940245104521003912736343290531084681622255018837527523811256238639013249140830660701669436318247388661115059684014533689820320807441837324681122335065586161708174502786945769816488629362372087427507928405091664862051859331622292191354546376916798781162049910578303330671238265722602390162942729568042524802128360077351051623418534165155911876849482938877102677516859758112502284591039184480516808857569409392569304725181469326984526125398944335218436317740805753563194844481021743432540301862559632544529431529354514722010628544460275641704187074859239843194284833291619578387025672008183794343343839997765814158307777289772856838120687156694641610785748486105798828183342566193510406717740636942002831854016923566467908022612075542924990949656661683360074649139757317534999512575430762732233935797642774573736401429821926513009235361389555728404350019514176963745721906570039343076961872181895911671109817077244220038365198175016264998585275445741549696734335330867543099358775007648341036139942599729430079831222141851260043070775050639063276297485217853344728707553594194593530788417879224293638212579514983011324065972098197251401064768856282393593591834883392461153334867506710276141013079725830895234476913339099717465483351052800965863427893072738757947639640708933587852939950021227165421177891574072614436525758902181373007572073911593965927445701773636535608479055383126208085514535027708963786089389571637172003013722562274986865216759471073246616693728960229839221588497563365171465342113391303276699534001553552603611590677418379429235660643228322539076042176847358648294973833767039383235730301817916680787675535833706352385144727882630323559544245317910126398609704746197760470853804901060016201973879944406184312083101152012680672916783687918727717358334320952899769692669399957986995304239632515181136360297751363824232596677352312790873008838063873414500381246258084591516889896188201892464478680658124652194104786084292323125648871007805940299487722886529024283282050377830297095557212165503133909918622144774790725850575587706756995987527738101032315654585736353328951450000797135090564418962725373982949755113776449869540092119631734812716321800387724097054484957945568650914557057775208516986281451612563675753760788851144819560867151051646630320436035111195202002482625513079107366105212174084291499940727071956947736070382119076439977416537611590551531389265587053078153855215739125212787082264782262518346683060478097712585210929807567461705840777484842965422207526817964329501508716231527804332757316495495980880726446027525758372217093824837247318060493536241631698213384407207696967399296168365803907360130086398068767736830859133779987303469245568103632033818886816329519312548581450636256959819229086532290782529261671056762534359731026069328617435347942973688900109003174557530514566183711065236824686163481145325498903772968048602826728050056693209718328243035248921247668976951157086913331884304306032015913238852252461656601121843211478903622909169869147031993605640449186638484437455594000288785189316716270004680532690744732450810173140841873533999270691214202454058623832775414013925870135593455098552356186346793112245371581867618128655334070597421288084290233745771045146279907008388890367536468059191489160846746348340263956262365559802803706128387654454530997244729640313056486518721357904501380339896692735863706359103328917290821611306195359989840814192066643790668471772142844276450882057650332995630064613672553792039716080077610835129737095861032738655193899199437369161420520795694917626220100308222753397964590251790964875984222379422183644979505442489306822564594511818462990747709186480211393867665811898051890574785739207828777279018194674032839360252298186757264983881727035116571338638838191413515740560634016115961531924083907476868225599160823994809624858953404234275646309057134792355635644787969089393575785244542106286629752844380045512487317330374893347093820180283623059830896640160253362848636168127888903233093976783334382668774588608568552166669727062844091857934177584109058162682081217097654897661959939581253979120412015897304227510133369215101314327539675322081285546376030192968573169244351837086550794012028133305127023538427124662072585683396882329652937693349060915460660666367184856278341344451381346204744368747015489248079937781767270015212795642839269761560862707020331236798954112886953738024199038369472022013464076191801197481273235620707491475220521289918847292483587108855875638335749513427681302036682844357011031079435127448917040965969682976976180434824884444813648373107694093184280508659199470489172525331098140452539621733367322868834327743905371045534457700036596361861195695882636171285944780856901443174021827490055785402468535077898479731744418953907848208888624387211300160977980219007389914456121472036851207535449951104804575195022308364572185242143005534693712525649948529002774994474160704266640616754182697994363949452191937760613496529417809366547366083695908106909916636773011385076706249836083304132909315155406539911274832662100078146663984606278569624351831096188686556548805139012691061717040248211957176647069989760687318128474081104784040259022925987214260277914783692455658922870237878326465316081887828746604036388317431958155145664306550083697042462432671654567456664874030695577955039199405026463796782006019744070139231509904617179882277769183503362263561679731907006856914145163525194334378843154929032328918149042522735907310709873925870604403651064050677315581425892997220638921331823534686763185055884567000820285872448899538139210351603631474045366448660371404394288377035906213879907451274876514144063009205207623966197286318629840905752509475104228822053864522160001821479526209621667563668866483069818789264890709211803615072496489718921641926227999669763219626328390786861765689404348123779235961928711920628879819064815376917625797421515614046073823870971339075104374448440907482427578375248516015894969362595771198015812624121146427796182649566734975963108192786410599484340575140244759819209463881631987282011112097256786376509080694111423001972676903234861016159989949054754829536266401621067032123889800135846499578302505359028996583793928312807767514188890413683814707351867086841080462038759027122190048828498499420428649803473450836544147711843779398242072118443526430757645384447270630704580419892667271120777209188015078632834145701499984122833649949374033469766055597210204992134086865040705895347626943570634173755208867787427363301473181987692886223038570122048619764514413276962429210380725571898522181266113291314683002352821627108145851442807955444007817310170102316016208532832908263991840546236049346916816256872830500092643923025912508907410243950769089443378944147115588386243622688242014566917695432738234251349576247120226434124334004138813797250868712548967831382512485076438639634249863879622193709424203251495695657495469112548563468134573703171620029433799201076520252944590608305934633294813136552646066160990876847721584088051569453757250405920080571243426960252755537496505097105018027306691549721308699247265549711675784211566751077068666903504036829782744543436619843156654408260745458704133748989840524686677007496007610462022527707722725677481252513513163541459356230883738300659548997503681838110374179357588647132534364892724496931591011945970487719653937581985352421845142939403441633639519720473363766552307790691742502002469912306696323827964557363260531570334861274280934658690645512936074682350146173432861786734205207344679294416467099564622009279480611955139908869359313572094024971484230968221935718856927676313040715990752112955052916991968845086934542413630722060350240998081806013477072615556941154489796439762545433601920682837156585112251333586306691690040043603020092412589287077743258772096037857650268856788868158300830226282232727137863281726777428800562990449230057896807262857430280436110173553603970881490247023227062573965087236094867602832909871998224711991806009971868515103665906296867178163294861444102195846893945900812389443669722163794657998530356367084570821764568998597683865088360905832656154465712583884631343152938401245435956755481444140978909243925009959856580266336970274905713615249102325802787195692291019864962853440988259109370042931263111125766712427569437541685321375056246935250300554399915549860015365821284058651934688126321434075461990776884921953068393932632506673483040657362345335742604063658019330420079361675657437228668132968814730708459779028686339030854051700795616724843263174614613951558496811267561368496641608553955940757974279927142408544422359873717418436509057880162871389766008173334139650154521787658574773751577232334848892139042266418420763634107392235544376986169270938620768794982999589527527449443975671818372081691661680932074039762789118022893212937413821578302628795820231524281409113947161632410652510088942427117736425212741068913265551587181236060261504361797694718879918443426312762933467087080138089549534329751158786861055089416333907808839438302174615237822180954486799167768435855359073928004470513131756637553615681823722342868767748535891108726258042230017544250938965871797993947314418713033458574908328695142427259549592997650468025440771535964092568665067123932530200414457608781534062718488841879457119957596290412982121916273813589885742358833544762180040353719322009523377502553164112865932277386051793353858084590085276505860328351552048820387828359172108804276423573092798810291172483431089531816517653789688837607352019861926137662994637999258750418638103364509085730275923437229686157148645603172759152624188817698711005738109562349625524663873686803910861302251649173265784586245748626480402826599365955551657163231813816013130086589658500621628921835290553230758179008578874044576013397780806026044792206934554280517592011057441105847229841814731184067438485242344409678806916624524685027855932630932092724424827339060105984762537820278677804184126966683237478616040211324138891128530058505388118997540481936342992361113008753374337655055504025838117468799233629600048100360075214071413548400579565495985223562773263621304534571743682144844629901261897299336281295448512280856138821140957464259773226167608412544924766815564719053363152563891861794067647122200989811076443653307302564699730669827930053590356465618602390368642222805688189198760005484537034602116832915692805013647815926133060442438148397780009619776267376149837078380118675563647573785496381075336218078270964982355412702727322733168687660876663397186279487707980580683783581495674156271809104686676695903117922002666605875816909003149881663848744826437108499002251845146325227428758916032800709944883241014956884120947959662638542764762855934106594353217109432968959912796884865999061875113938878415654273373109983952396634759988018259195489467272803913601295200161077082910175190126271397459528180792729421654384029906763193315870050165511376253571754454461739540566153754907864132554847127009607876681174481210737762015414875495135584333407223638425699838305859516639604552616055837333684423612556396951744943735155086284731651997211942854799327029093011070571952825772872578449822748875116988499926881170664816455232782545946853983410633508055959756952305069427468321345186114691226444859213091921362697256491253805012049569801113953304770902292958089539583138557020673278608258872429398216801505229913448115134023617293748905669041543660792624111223437736260936099534304754506830933930581924825453983237296705440817170034218435355883945635742099285109920400030013279930289115561759511425920151220861939648312253581536949844915578136619286222104886860324313919300068076540800543611626872573996890100254339206870054436320847020180320280539540576764679032647829641790709817133619943886645789567976715632944721708950370602576767343248749039577983935488376138783385074359487746053217864343055817820773232252261123829067112098795455310438438945885152818387166271638483948102644427255456822649160675614936651084504536473840347141696602771233882695764501766983702066619293426133411117540167816864801927448260319620042099248720824630669173246401076599475775684649967875149424408878224196595109368316970581489408053964991723711604771724865442072128680782397432082894600956863535716560479342758233599074427565295909013970731915831429132739755781071917617784045867071706582617841733224521074535534423984366203540067958742901467872555894498315767645541913955138944625212077064775425356469556264713757819017019990377895496490834458980801133259410292104399116197721621295309177031297677370526266888495717688718799194909596064631403917249191026166132913550318048987842698589514310194563781193784643969757986761078536931795808854437607592437781428059004899146561837539838891407167829197485695601570726899528234392191002363122247743066816471736164055331734591494090525200200271968309694317853041906314463153756997736723208374074919598288326706570146912744865555889089767162992776712455216970405054315256323468703739739092482679750008859677129163986302929029353757608246927379998521206457653684447394617767379355084316344559192229677165585242490929225777185710675464071375017351498353266705862748621215854303570033471013055574878607695869112034047092994978538729104749008883421824743285866264927216373782041595116133220583849011094293918170413561282792904516310564547966174981468115002091519906181940841713268790149406024699942808564169360392335197977304389506562879707512000054390221343919198511540790947246403325596804367569243114600965169718088221477220160982965118983872291182841365245078564319350364156774881503644162654660184584363118888233999738783809570325876507213557245177649542188984821718491461193322018055815395492165795382330791780157517484858080758603738502823349716720729113939632495157455485537600168787775399525426714567921808183569101468110645211950328935518938013599657397916973836987432512680232321045802103070971222564738674116055180205571066834823662231310314561105884703157286196474724240754005077707535330031136217819230742969264831135387716089155121211293984713465198772944624278177240330599376618711014532408436192255969883421498811608439245267073587538449122585576066474988068308890696315034425596779702529710870285958687046723957317642056993647878212481399415014705761666916121448563170480754879977030618497358727994929908864471065834086618109799768063851527407176126477911842108718417554815641898586925233261691536743759874469969037078300418725517304488653811143605239889817728877960610631449578811135758744547239645514824768862975459771447595722653317706453901928058760558295920818158090606692257177517476248504437170723476402266152227230249938170684597598533960198890702897575353446371885072871805516540909869498030179093725565364864806856856829904577864431937322575575227519816546584367664501133063738332952929500989622634311954720954299325924502226056937380580471875688053999916921595430421289126617805499583776090780118930796493928827931683277268017661323937027364492448950633745826558610190026622770113714768945083295979021520900598771662692443789817571770664011147786793364249806186194397639423960623258233395753126283548194257834250335736022047630095817299239540736997345839217496703600001711909290401325096841178547922826166160132355840963822203457367894500345283078187357151495561551057065498634139573106752646180442336416576071201159502390519831508336690082395655120911313670116358512796826452691495489498624180947191706588224677749461670470296460580664264574887243988480217791849560492137347657794290918797338260871945799326451503709311067770526219697092388818669016746188536667783532351253810834512980836983876960695710951160669781199162075856916000728510707985465996112862833393024160986335650791324064089118123309502129314166539558870508266013866277045115085920361147242516158324300922563747255933210381849817635385971176659864776421267631534461387266470021467546019681519797571000856645541678959683871905820443856468152140153617904932875363754680206651858858932155172257693713615165656047145347642439394482404658421773393024859654300659457913820475280510186976731749493414470507897854601635773177755189998129395106024092292313048304909705394108002894569146766547472830835450901474689832306036211669751984028681084715341504528857403501330584154712947770984613897447022832722687162406878299026406489400546153446567006092930876219109853399949804399498721887264264517344928496171802311611389677265588807627812107864345739048523440493379389557383543180368253937109646843168733444977349817728847205673597079595545260773097777793065102185968386054672132178387078388968800592490858387390405870201113990873953907136929870120884862722815990433769209770546750098753143328698737934143895431775727376882875866784928787459760326479600133496630514543912595038955503223363759272924880360456315765182808892129981727572115374028136997280776252340129252729978268630675794254912923267725195532454055651408546716030787941491844923291221940166873409435199531741130128933440380612626648981713061287540723757585038982965904653994634050550629735546605427395472776006968465708102308524704369295254534636841982646442334450577303600671943259307970660663523635052899057508758679242988904973690720158464965104585252382907570286160973788197733267118632190396312310059748706129987518891837506805690358774594670598080521632403159432952967304776121206928915400204718080286972559190892239545950630228541723310329893592999039905587453534141470925061265507520943525861242302233780811191743955653446128347018292307369697598424311148456490786359723953445630988040620912581266689288890643860171578478780530759000953562971585022615720211476676597678012314252855711442790883178743056656743999569030987790268010250125483803729401602805906159710199791233712975571855907762605538987975397504490544814526722659709983877236462078509056161890617895259074459385875039532441129488922643257926042701010063312574176033949030204123737679639914868264056976828894421028049449374829955368364196711919417890962676596587666275561788873358299550201001982869369260226300337095748434490066007070238692314323426642582023214874976356294019426562866674716986494117222261190775773319440527778340730254163688478194286992479422247835195021531476348442026641137399310053150355795238295328524913493457383012582524868912982920446375649803399639847497225743048718712944239875616762896771945367640926916038935086678846034349485567760500598437812955905975675068799734872107327506023197848040694530036204268571224739252454563649065043468684236575892455674110417064494005612721058264898199029222134076227140323508569447854156460396980206026763822654228347994359971848087602238454867799924989284226619721805673690096668507001173074885111126214481380556986285544914530721859869242153230015132290757168459509108151524763198260362974339759287641280787212317566010332940881022808007574185148268266231437747610565656923634080041257786604305806868447781053096986050414319092431794257890442092239556875785922516462125827241794736835243746742940456674732188189058936242408858025489064659660413140075559018119263137821074157108028739191493095004364284246602159314856738197964037242257131635405818680664223922908969698484497903859006171515331190933291190011937895183271801767466393538855979967266935320537205414314352000385384809580438977439623920033261211483782903802138156285410979908158692944466656619460271197598075404244486686637833421012140562615121262847861383678213097714708572413127746108214622488013249418785620585917697395772250449907050548767476699169678890657951898860434055742924909638968543956012352249144621606669276779771071539225674210707680906141658290170783144421538142052281759093043676571075755826577624646122968381994140767685607497839262406315052488684885386284393057342578736188412511593976494242335145834065779293672429632944920646853380791217272346295570959082667200851932483854097304946551845898785119610969661518697761316548725667911885558908930833135285085785970067711868926805124875601103635172670992242301182581004091177492239835545882112148331253182951159337661749815039110608217349319224860007075176961930865982207846646180171594982625653640758583378897695314720685555946828519618585894328994620249829051766918752623913669820692487764762705350098184598517418151573619383660876852821764127232180070313302763595793287094800460902777780141521853350874778546032542687787432768608517218276356662413477029031534286634958268399522099433907802845638032078037717413873482038858215394740754070030132081955504349786628971223449491554068760804726457691955340048322190159223162493625548491156289175975389907516904963751689590153132448376040162703695367860944073318711223427156119466345233935262759262507776339123557485100629399466385325411298916512339686930908901505255794073360574662292450977595597368367412826400694432092257296276170768790079866849285369859305625412838487537140736719761409652607683386729173397422703676967329573824147929956195745456355759805410503295191701568579466186350238346792547513561969779141401850837557459682948483313852012797314901996946089086774698549516657325586075957259101400004048426649881946544028905752749822488629039356336049838106304604367277402242294043051378417909800023765626787596175298836700037040790235379395574022150760370484222855237543506521687056481445531494149164060121963548762745164041267017839904515824802802345328719687943637547432466569452952916124635542877448677888970261645894863168273195406359650222018109634856181654265001892679681313426470935708823503241047546563324643654391096944314975802781755996626169933093640127291454166981954249322727413174293204043692112591620629736768343780482186062138258111703446264165038135259057422735555275678739251036512986003562708430903953101215779744874832159314860210511424658566327908646890492366449893386047613320914999348351396592265844074843967134487084357586707957454536901370752156337818769942869098675258549786790707961438046331656822849799162217018013632436564324831124123452416929097077237131460324276870254016471360656109305006638983035829971717157167663739192431469191737269368251715459765230990893555311469936917545932253291390437061617984356113330081099180384208051483948366002956471794213420097399716161333671972011716492368808096350741522500058548533714258518634024704948855507540314305115474991594968401448001747960489486682547121235277363801790539192880214392444888827099757263126983746529551964697171018950274237835018797558781907350955802485825448422415862999436843887669279843954186484533158046091401297473706680290118533935241905750491005549026945758914442917161783281224722398475027307513548989862571944240153423440235124049035630955317584283890825665402773800354797606121522029408351680926325932308779596530629742875817215632491329024703106959806932845989914772066865478311477039810838987944881075552481078876117813271513701563501067371971960420250785310965151956239014055460692586515184475694712219612869245512913905176102163928259780429188091677844238866532964792852757847099710736907545674818138972677891821104428510423768998921519957162344701331653650538521761659286398821151039894077282341228112761401296538632151239564615801008589634474979075697780980896863129214290871160535392479153719010583857391657674540229797034425442570629324959542548834545212530437822228802253271537430635498853467328759520288818296917318723996161716589914527519668034156504209079712681266473080691718206802747045555469728457722050359135026627684679973648213173093672120692283950225955133358657358521894721461717603080671604498442505819979578203529998467209415660697973635376020730088392563119263567351547156008833730379645062620736317147343510955512977156091446857510533326648748845238216437581610259540137661576253442025711542549393418789454622140735997042210100300750983872279197753238598099140874424716165637923971487515817775314084694088095919702586355357991126358811254074718734736141391333605293169208002140712552861504481334448662308596029939283001592585345279856016928636968955113518618810303062048531820668577738216950936156039770573229696303315641736707163620402239331262551458992343619763396804676183058509952099975720482840899240310890960305744262261812280344721708001453169221232011357778560531218945043080290753436438521009693567567598755200104865457811054449103237982829082873826343656171197538045847098284348838288006838714258392838232799727314015184538357339332385835957603656456021766820879892865161103521306543658209690859222019948181068718011887335078186714603144691321126877443646093221649476342417573428065786987729481699415584761220240597387322325837286458918027317975725979488131453599552097606235705875623325140231713959964970035998206249392073517268042108723663477317215170297590281924596563694651037251602892286034035082917264055357114071274204816394413884553076374132825125120554919586617917375572617608370232668741361708153057274975783325937192098397137993523415818227818371384990198983159247053953041135461590704557486710700365074423318728839587293742970834273981014490062650528517316057412153521527653647671060200719758553929826253463090326061339589020210238446277440802681721974893905487829813833380452319711478991677162220596946527678323645589161122465661966600098410963720942514137046964297838572882938222088660421899914323429182598663948809675929367355154709556775710685963159512352431247142212683689918494526747286527306247057865053599272515314569494390372602350846998538207236853172456421538147536162831110773778270602465364358035240266088829773504301928467938206498388189068126565275642896766144785220596296880505703603066813929896463300095381879005288414040236287598553907938981702640440654404773397163106990827762117101379270762972077736982807785713080223470082198658228193777078601098553966123071458275124415497103105250962912021705655498223823762983444535584535847341909226621718850306739099081962613562348490287573044288720963208658326581685235325669684860777849788558102406554574306596150978022060010300817498280828277857167889934504386231903238005417847125791194357170504007764650817466986127965247861562968264925385601628991218268147055133689758719573971732712720741057577602473199036096570424598017705677886084667786491601331933890409084912272368690706034538213706960953478240907880601865380970205582993308886497266889905401581741782079664016774541172743469547220531806577713269869403238939831574317740906115368423435226190641636130966722985748694024749193490503611571997993973145850293547044103151061995750372251195279564841698443141655707411347894792545803682779487388146847065977907952809336539388254952090193376200462472191179001535991024137905936796775904412149493645620370306649455558358131085195159535148006125467034654851099841290603983810792024719738854980919044795382739214376420256722538448680718064167239995470511806450651754858252631475132097740332974061251018781116650366936339245234606126679624137282074887011930170996016384372523781292946270434514374663849314186158160456359945993482946697075629392604798412308331658775761616797191804432044600416534301309665491464702034772919173146291653721663898331245945851412937109162692562964974815196340317938160117575404062385743798826167581201215741194445579516557117390832029251698578321576023257584188916765785653547923337061492240955831302262297377669331988203945575267797694599093360033021870866715332669563370999493351216928028554933741737304454331531197954361484797975886761907284823726348754637593258299824786393452296855580965461551271377160671523183862794537332122763458963356175273433517789197921315493141168356988588283074188597166594236583568970662248779184985489558873675857564755854131170933431467502087026057967072583823228852870938987037812894242118756553308898861295269315022092702277535553672635609385102786798271998819168165198650690650741529139254833529753265237377241889650686624267364258932250497313054791307413175157975078126782359368658778837147788492105924840973601861244820006298634384809992820639336181544733344724829881344565525500185196105180715519608364890826699236287560334655693026121814182244895581695707381408541662972751987133695492821394120551702358683630718814706668405094110554605281215975822589190928728495187409632216404068042169196195237780021995931804782252552275161837007797747715753949297159860696435541081128707319552063016864197956008193542561890302498121490014190424184752813224494232615903379834737649119073421114638486165252228703755459532901028861046354380949734792335440531058114116995542646633459274084468849081965911792249353779945807853470776764591522036365121685165249526997549492515539587426901013038668762735664018963072619935198627100668160706875516993826718433346549504619540221329302101737012833057248609340911885475362265180856571811263029788331333062719933853319933265521018064728984260417554866360283543348871877571160869898442263510985423066772565590524121497862413849381827030899453809731214772201986441789254211447240519978607522121622794012878859058578502021613013392153955062650566765453080789634774104669303210796327609743368211428294594042687824327313235505415931300364199186997107872403861275714282379039875415211729215467587162372041148172459266776506547287877335368195037715169570637165928362284862958160807631735992391234760154040297139468813447420091783853123740127652468324386948380785880506188482253601512673827534154875254388517279913657025190581168828752967277114281443432581312781823095366491319497000758554162649428341706309276614518118276827504455293978296415317026258535460199780717025392315758456814717015358842972490716884322569336960599321906753390468538709146811442552605810838117632840154026725861747539085346175171610758018939704342633863086265733047263742622596744312130097087485382139562432801353414688744881902829676980486029470774262297052395760068172895364173744670080635325164409196305974436063521385700690104792820254472162811697588909890238683335193813071394228483715021725185300781004620854077070444107352312023453583203652029039194464228469513688472169524471326980826399772312415114736059196211804152607788551426761710598600235488026342143365970295846816362801810656523605497270666771136187162043318431065918834273823713245824688623666496086421938173479928554772618068053916715098954721703492809606769390948380592103370798220499100908962614607893773100029892351153331439085768655658182504959497215272652416210587050519934911046262301628541835736770655938179559862635715313616255449452207355908933294377525524685169656996312550188382822551982329488155183310352772146033024085171952955175152961842125948547795705757233635561313223881586149912023023890122201995433343555737178631371231678475472472755213696384781240788431281462068196320976623548985351383595553565323045691934275459488118898156950561779351376294119389587272600309230450478373033385220582864487138017926403791572065771877778223643960684849790497961995870125402943201463751640297604920828704780257514369198959315089501001576770189415567547819029169894523675438205551215110537882308130893355851407292018178604763876392907774782658308189381572423665681731334239771168857317007975588126099634424673154317007291464052766544965330736499719826379600279706682653402427588454697805020011755723052152791586557235820107609068610712373174923327673392853967111590906163934640230417141699822551095288105717931328907988737376573639072571840353628931551657156567260125238721875474479682193712702709553174888868972609282316776061391026541750275236462753960756922221735562790549659009808323052375624204331155796435384419313223108668177488045865661542426038546423681491967059248187494711185051064795685859219389902518828300392034375444374455034892615648088725666688141927752553392032748300443550586338384642669118414995280151944737990205712348388173063913733818566079749147936460411530321322890718082926956107093950337947323167877160632562525087225146109043635913345314684374773747344469246950788220764313864230798589411949304216537132244176318313233036864739133864800606967548058763479180047440496282956722475711997789543221229501560335658661884439173900542291830846787512948672854205979232666647169178340141900115080314904084032217593799311826558614242176697179527289019727261537797049757164380872098416188590360764628175451550699726418557135624814382997945962856753538415599105044483410620122102279896005103952880633157588508985679401354916158231104163479321789515592163360780675356558169312831816811068542060715595969838125990038168077997984655558432510998659245765081236047797960442595767496416346166437830984530937238474996154085896072091416327042773782294515889501602713756132816401275668601349901269022118666345249093143172690514786636826606308580672029872915620538975542262312187646610275955445608818975460598954063853289126283046092463708332450594271493045386265664723183167979584796374262499281272885467848827212608989294486067340551137384544048757539884053251450970908106508822780306580540850808011897870308268034607744504020689652146782167212456752287497392631330292705574183824612724433594817991599533026657282227490153326759066996413618590826147328894816186077308662379700311030427583550855451560373575221763485402457813182108907550455175182076983969316187178591953983660053086875169880369847323018211988685018416222565128576735070001570363752603448434873721373016033895987325912369097533128544649743056917885551177931714177916061817514564262182033022308291416975130044142928058387153468876720386651586706160592762397714703666058562702152901805704410647481864300598139142492920516160024944033585023423955518121515400901632898374306243411378527616138742508992996625109498616026138185258208868195535792104363982316736234662972593187438001392486679132733446194380692885015507413088933508440098983857965946206707152578573285282439561366803075069983972388228153691383768515030522439395243807367096719636480752037460231670907991728403399247284879622938333773592584008926940854923227816468856761929729847066475455046774395914807163693588948724953733884221034826105548105787385021904354523112174805184067534610257608096626029943990025700977023124019293319557428217386329508591467686639447921785565022326751162871122823049170174939193332242016735822626898803751613772883986105653205277054044006034009812514450567082881200071173271978365163128926532156705361731969613865812794809081587042466461029687800331146595640586220606430685640066329199320237132923998903705840091648599597274993796683594256346601451872842831747095973766521360980467642597911042822476064488740170325646224905128163398419567392834161128002233407296913761039081587412471509007222440831110212127541036658766508850734029538384043026025055451117762101500952355965479358827496257880048026839293503258499084328436643603747211047393827955112895272817497797557420461705354017634837688458025787363473600144884206563170963169420930642876486843416514977141831721651632909237036554448699697761498496986835151848234785743037308165647438189983528203085123768997496781291542454773337762498790303732067950407993518664438520386221540993383874477302681946799512155128932944624260248782489193796677259813291103677125981144869792820297150982098376562447479068297980917039839522536566385559500733835423051206551000090462024588051483255912534062250800368811288751822571975546881150960961645776952569089876316006180472318073507504026163031410212582929647045201752425443471818656135108094120640001434233917842980702930009017597673137706486115890920920870282448979686131374735063989613890178912184862163651934869869324119570335176726179089149471909338721666608333506316641763401339242570352569874317868828853490602997489596401397000841985678823886080399489115413456943509915265280606860814218698935341169728659645646809670076763609951396908137053703292144971154410397928580391159282933077763612461056322280700534466796407738607296592701787120101008272703938007157904109035219728581496384701363157885288201631600950735612955138920463077241224081734423003079893680395800660997255460350458584368474867347623334284711988528104668544660169912999675204046941734953973149262624123232724016729197787022569293367847018778337769288864309050930630757489658884149803437531008799129126284773604955582391647795005804408115237855606548555495575869232490146431632859137958226456096002711173462803463926552781166065974606078740342285996564489579433919714619628982940140989235667930674434089500986748715527154882048165607744983004564091490067637478887419455876164323504799700060753550197699509585386350304573787888814592225262342644554964764111997590011773309820144044798943176793563606094614250067320365949852660924262400320814971474193317381418846908560538432991094594451019230242515754693721807162314863843664321356705598505820674290383640037539268804579520399180474219774813633577063713780829476329438066218267109897676899673603344458195744247187859199428091813731214562587196393348558136848694111713470570114595540909289538338436181614369846323008658960231231610865177790836500420006535355547038263761428988435305775232694226081039775781212136895514762557256849434673921990986612579979959668834521419325738341392914528913762832132851812245753853931791872941994867437530260063768066700563905063112742426066773845616814512099749326554285052026849339135351061407798469712421145616085712253385570214853666932274945373886165283790335051565462940601236823532919090761924512329805560351807015724036421367630997460844022433667848581188278191232113376197677072554503139974551301276871323339494036254489784520189333782388494061781086186640962009165940340943314590949351186845481147151305133345535186725199630708074662876930019538583466645146530098105433606426475882415977500613786934474228862670899211990027582700715865996580768363722142558013224039876858084527480230097055530131447631522617900650665979703552796347756558755887475115102361400350861544946751141327352966836142525308106258813316733269719511343697827586468137276736119829075410134227096692846478156932776686303212161379326105741266392895363357397721543754055679938613222287285804864113074509696886855694860747184645330881856660710154176943941984355477123828491381590331629827063032706531534561426878837997458205100617357030299470375455633885917988890079346840826005752553456654584010667024622723980991081192606188220036296092075481013133748362838927461419809492159853121419672632528255548716742523399186138292780512516406981299603473474819918688324977951153994217998371798511093036535736761624061909559864242178884713661771277479990697014973202691189596584259167642890267748972876942630798463716766860637544141548773946361237987080573053442242745412460756359949156435275789086800397214650915233174613859611853871048825170701406341693008895563434036713452769651676305261622016827026024055398546380475007740339739292242002143039717596286290016454392421962750313760593094322240900759395727027168567500691447035288091706496499230043765179116487244413186103041626937533399329030229525380516492560237970409025404347578610199996489358646195986036580028740287357615692481629019114169320831598692572926757257478326072586608148456774869071797424095704552410347054774556082275178351406673984623987793394073322612559276245876613738760711030769609058180286606797245584887687595482629860948165210310104422941538116777611324555699344887686984941549773774124522524841870789176728774164054469795605668241393590708812346513616583974919905475521329946288363925840872541513432760327735128235705377515261101441461740494801446719084225742454638545919405153567691506281416355791677303156130281960003266938079537914345912302925210565525793198752667123708698924440201584987603634043371126982914242900394429391322309364579004491618969659362461529776059295005524359931894905555821895306844526880394800697821868394511690593178736379215805064258954732248687956251268678544411960972487893602359723076788145863389470070817611237880703030701792003466632466542301027358904474902253554945816014288810701233758766903074186773993555544873812943253267803318343694604541459548262556209758773060847863421612240038680049712680261238339824233098992514655863058021881542240476355236758181605056310177953254108773533736333138411546884919944211856209539959672954998708631481486811194004503723070201276159086977193983259519995491811183653235450591176623341452614545490888857532793486394723044883708693637285541624797587949530567176541975502593291489514649583265219526549260895344837085963595649591935237774491571055901705779768713280106962663927822572594666962772982805130438220316093063409576106315221085708279142203588130099596378776300135663911805903018162415104852960464935913713538322645776154806724686358067414357487510661324521583837876561954805234400189755737101222164292429435928352472190306171169083389863946942642621488243971743670857989497459049312712200848159891335127543968149422970252170350654055604981666882217433588794117814663675008898160388460116829978804673870042569625432764665740545901118297477144621554296765142337372136509479188389161690179317692007154005647340227538998814614004603984846252383572881233388978325691703481101030296480338211147672636710320537432653468026248634553354435274935470898275912580297381883919247423648783241048056801269243037289027186870753297166317182989655850769143261745518351923459787285918892515474800157093470840359851594608144502192192731524904048352704926633112571696031635497065180321205556502165896272651588349889608351671593223471001145701269459008948570876734298907477283501201822672866150190666797875701728835736911667544575924134287419825192227321927154377949563553080103359130454291994417736398636777262705822076757605828890038990278916696849620091057462077594164791547356978545836841951826489984931188877993649039627512179428959232575508534090351314187327740909516758486805576182712494351830573767526003829249094357811499999984881175850335507218592829906904270333707220774224052134399166457169367456248176507059195174201499752822259572296458989864102442978053741727373449933147773552630689569459446144368325944093315408953631879839839659043353630535014321794171540508522189168118044179715146127052613069191337059259048091128696346882532001487903693538329005581140647776324247154659064935872481944725140540567803165399847447568110868897992719214844828178482969954820101250797407259614277264082787315868701081887617329790439511975657978044735614377807821612935334773441980483511231548330742953317514702501692111034928508093742097834345535861465588281148885697456414335252993942315921946774618713578635440999123369793297867650395205930620009195457471629691375409267112327111339422381039583372980749802970312599173911101831187294629152212817696399470511050844572311097814993497108686765451291586162097185038599390864365255662815743506736130102541459872661294260701796032853943156309062054703080425317291397102564289336499399039374872682495652142949320492005736603551855672817989149148616729394858100487408760144940098207640362927393623099493906699716514519147975893165727682758388954414345411186810213173244229327903971123644690955661995104833206587772062291266033578572460753950618240959415417354927336379565555440567418129339804736912540224417476914500877906344635343578582976998139961255011177252149807254657565813735238832971554793659370583064586519967823607749433336423724248054595404149022890808667139564521077493752294377702162157779958161099265940280026303723697741293121164153658707188989068915343289518774537314333071505562425648918421179684192475860541948328768231753792856169849745597331609357320560779016649446365864439278297706670927882297062804559616696330973576592024536826086312971830880795852247182692069378312697335017912528117253763039082534330488668396289419064334764819546085835725986303825752599479223976058626995422848111830372984439519332388210869572767364407594927127075324799616046951634554579866754259787773497062965678956643411920668371218500347939617400624999799190242883055153700677958647607931795677555081775561814473535519697765861458982455660916834996403651628664235350611859816784293557952033111608497188274137502016458111660123211697496936463856444431862004689032129170119859153718701889084653413209880993785197260713474825288998398594382058105640607966104619688319048116253308294150186765261006759391098246097765991458975504095632336941775339333857513455282893638599642629244210262317427623945382256876978968450600281392123967681921917490750487736467800914776885933652789515325058622175080446317038697038579982158513564812565243358298679031193996877705257315426783352631741240608920165109280332655143673557812628707295769358167730533116925811381339126436787171488103241614526822295627922889106413999138859399781005508835617724454376887479848857079975521641100377525643519484477498959608516860326889172104162410814800391349640121151205915976958594484705368892218590276358851632717694091983196837335962554447932994063416120851214009046765997257658850783625538019518710921709773321991306715227003585266881000763300290728911867454809046390150482549054630648020354122797436296750717867901448989136686659271941786343830079402201728910863739195616950810353507705107640385796040898420744335760206672581436162913921751043974041310975667572262056241574096906667702506785730734894705765199561893292347582195615616953815490565134197452857934948089213013371588407342566383723484439378748201315630690937292433326156151944669855039755007643414577861980261704090560937572820419514949253840416481295320660268081506638085012734667582246040246193358331151243209484629272996750443457616941899511200608076512481595180456398733277768836992082121030764404890196146979473127667698795628241669702176045744055962475106361434386055326133607273510737920632916997016116247459036990943724360081653240385463469456947784436652384954992120711349460081626128325894936133244645161247327981744548497683022416118003940809640799215195100137867682350307981156366509780760043176810993499113150707942725757396935186349046258407785835313657634942218842783553174347906530943274722331828491538730474319802951448137344220478528096927692957989592201220836353028555346176892436402253678520831614963755524167809617070776121592722099929914014655937701574810406025067527983364555886107362390709622256732140166836489597952982518989788095815628225877571590075487586892525484468030966396090377888879987861831381866619385272859281321515605465265359820936605682426875004053911299109447823333146905864333398382160852583099517276730308677026198710220181967259333629761103920360868126525058800009034919260457971199200250763117605291182685458634538462483658151374045589376464036508809893942827198869799225021941861480426753918014427173045000585069303146628343600637900130025675925608448158893080264442285842095170916693019755462617505787379986108753969814942670512858219391272490747777379160557149586647692998703125239956211525967054290390515024929708339323334281714082142664503005754650512609317635946301950523743543344418358129257760446961016747205238983885497980456497877868261068313205616247163795805185000602896275066014516443085205279377620397666665272316749730671061154809172660377088267489683404826844432548240533653685952181732103625150678470205934970001387654755692210862478331329374475482083049455113878004380235496579299081390929623350956216800813953799654995827927567528103159515865925295343570846828188235024918282620702263819809693054105664893763902339003626070165313133330405491024550013825135716353075589728882125346956600007951187019210402744550775551273205134304501113930165772231892890478444307724817222890123119710500839100858706794622740967547181967859486178793235742676638428946787881871383684242285099819086059303328459323496239921517550247187465912762460260547186953254346993446126986768320706762493723433047208948528499019857258862416970111913699136564569404959942764699915696831550591010874997318302530778269450267815552002237077643543769864885916561496910782613198575791470558925510506004910022424716271381384648601470834590579884855227580212818508103158490099598008084182406755013517664897800230472283865461233719596878138369356142472050103645515787767960150082799522317302178346709111951824973219263394959497975267053101500869257017792115351532836681929296601769649276881513258946321042605593859325431949803100474603899663579429303084612459366934954318810580801283560648977054442242962992778168639228412682768943023049304740129523741205227376118435432619881265494597254484133199400027189889924969249035189554375174223431746092855844144718219653916774658205655637429717792886652771769066156474658927676662453365113265316418357634658569064103002566405063089526130051310769180187428736864123873391975273402319781290651162325694650811923048442529274746201014448343773184075826500277617500708185789628390696013701595027635769779741194062496450575773587823843903965979548458469248534937644969824216853642728561224607444935138509869408027148645772865361483682724459719660507943171654545104263309690213814136271838387011257399022189713276592778804839626991485608479122500179859618720713230638870739819620556621531952304536448702496766097654823072983124354509108717119611078023986334531656271078879702667874508387411239753267987186632323972295748763720133175172154324208811738865606760147743645053078601657917075918196484988470801407760557751833609462745319589788966108101258745359793002643056038706818654177242836483098349234631828434635420405743061011315246732815787494026976566604518665602375512729950036676107627886326751754906586891293228158743211488305599148822076818465921266854272994577204855762572526043706185724176476493565883014704923724873985970003011473052381492523629578067629071687519360497021214869435734859722451557746733731161833910617476399274928564009519619914047901129722786333916081301508821979359425168430321149685246342316127016654075462631034913440395753143381357125496246836465107483031644314545321732829101772360073360799155738242181568362916565712677923660873816374914951261569957108809593562677472577440883551615613909958036540821525617639887369181590955144896264385919265240457719319069843871981211111697632268927894898549171417717343870694734575090290830737283880059492664110846414709773400722518197115303691341728823860554609762727643932413239470239027255716013627363962775548454635803736876743152552805808420319591218089786653540691605639292351411970024048575121308138601990600524692864613511336710016786555918011311461782943555407412268455068088046140373645914171994860034134855664023690438311557796864886386398064509554192139286394809552282599189535821316737689020501046771296582227977631113368816978609322705049180819450270010270370655747703073304136313832898816585564653955876448168758617737288516649911735846922307262380520663364188432387496339378920090949312594291100674559267025810174288018678610599252664509098316735564215961439215253437242294968376009095727996827503393862945430194374141240543167672331513090078631874932149205703297174247718175476142463683086015753586563869382867067045783705529773113163374139283483007106398473100584747655931090189524951567023629340547812723715032171338801657114276535607031206520725366691223117679992284449951271078871756969307592828010557916069332453745674989973230626026549688550830751557929882904438616397403901860463356445371830536699651822906669422376185896952791119710202334340148332217682438431200732294079290575088597842268519066937089555582771832168426724828569985834471181998321469827764935708188356087864372239562275005280466456877798070083272016004173402524047764256559359883959046736100689785720632354050744388061495050225452064797551858744531711559535532028127490028315151224466676668620126644030011182400205070593193938274649418199254669878746765816046496105805659493333102397094011654833151319029568586542700746543838730081593199293198190785785159272998236163739883016456430721250799407885578051873375862356956147279808313633643695775325418270713202646026280533358023342266727643263748451882728983069458406624292125010880927386676944287011545410408476335845365391846195264581412174423180017261257203842895874476273633243130396275873468563519180458873385160469581159493121891082874871367713491696439464933791625664007310454851373826418258535749581839265401892625050116514459518118254075737080762973742611555592598578903653043499136244488036720910637978156232863388385458644973134180189355411492720125159140867998993595594846556532238791683577483859375835907381034091252609152821411843487089510644753465422110166129957050835376391053047271899637401046511323869789811258221679740596503328028058722848362310599233629704031472796351934577522418431396214049002898054430708339561006330230322334115477507394270300742592959065017039384101976934052919944193556431321470126254003601393921385706761745350368431258336353991158348345846366551125987488769192487234870633576891550381783706961239527418933611462798854500246706841010713682226056731983936190509377535444516416273718315950580878116063940464989906753690718132527172865194030972566530439126764335086296530033627564924460414878571637286036417195842401379905389311339069403131812194693102163127665542635552143998199825211810471058134398876202488309366392953665224131839879315864805456214252626411409278289219417575402828624911219602331022414607137501073557671874994167390116702349838667550904071049752821357119925402591863205721550437809461475188660767518189764240828496170067147997064966132289284333481053466949260142727619620863288919049221982823464949329063081318088722484222184046120071271864327307576791216205078173924069987862677602977038583795301553946147214787859970020480772524022593484154953063381791736047132256482660626528091054713367072086601542324199441317184578996109769830184604903481907056149016574985353511117829955740942739044023482779048467062541425725741219684446098674731227619921485867878541257053157509127552035929319711301460174521490442549263370872711429145245678080266979442410559374981224083141596795354009864099710006678150071733179339787996613261146963505086317954204286599820924173008013869191865024223964556752085161265760290953988832156210810297802518196477570322904617129526841482726542926579048187685889679011552399975314910640799260809830299364665404144982817503274123680646425075656810332515387007914441297907372202647815858970194739344784725325565496474214839438658806628453619419487648080473357136826692478103776763141389173197467543436901535725908367793601506834701261218651241230295760374859528470742784237141095682162467417210596281240218452442127493847942201304342294578583232071157332036566307993618821647444813131197507982926668483745122943763686322226334266419362067271447560423020328027402433366819335492994246684411476175232821729557951081793552279816963895462541330073704872739407354439360680852168081353153755512205565001597357912539989646323618628261308741747359280827214689787239591206871284557107069420200485433947870772286788287647503202577536914589143932679147115689440038612064653434649999960995474233673214952343627541193046567455872258916823182027934403057159233017980721205670026728996534506437842150623557417636440817631689828297208385334094753061410003850833033755145342044888210483325319659848079833243942169332118611368252053371109077441039177456325524793145116971020416310380296670060555744571754875389918673005955326182970140513260428073279231381209011619206172035085653144554730908270426651347343033562872960113757059496846978322936938268598631778564841874713677313875264301925837839916069941279274378190410192483646510540137899724493038182128278719469849913552074110289622764091926218748633097846506861568572520600191032443835713090253115648256130974520173221613919693823375153300223223860235809718142138479142800421732172849012236393174906524470668630587173052767519089861549889805850798521218063597988560000917240587263417936332818268626436285812430729179381485275933831240713337731561905986440005530957778914452110850979865370355103109081892919774635347820442339765253636687167866491389333496339527326147210792062280345391435923181522161212428655581340628689547033878463952526465667309431625305875453658349879765276098411041462571985618093133138257501783273890223406135687332784435477946923267979684584861468524873506141468867796080721827402710346278469932984152341872300244916326602553257262144565136369077211197103746100074305019358903944969533216038747283812120405873729960558866889759001021968657576455956747053859555191271878689191425908270641706361429697782179250756608325270476500515927818108523888142128348033784022698533946271471314787279628286344886673987664161068619518997973761354195657428052270874830916367236505832516857562184410968045387677279011335238863015026464199334587395294483846415905310104618055675849911644471388658082154521280444275926081387594118997464506492173840924217171258814612618830503198870929474488078067399501693386716412422928882702896391942893170408331738542143883631047752774111039158120607513374564863769719256887226127289011598403380958358918500972305731415930618859136438146028330620905799256493840903543790225753380078857037041655259790613892576507529967597298554179355930649136987209105987592947904310262011363280272846618475904843180877356272937414047043017059753363843831700028459601609544267430041917891935383566167534533261429696867417086398008814145287055987290158026582037540565553203934514261726197612220926138350888326051717150999003044152647914734543558043815206223254029085102869246144564991425215963910573970944622667949018573359001332102467596395822527655727961510693165220694391447367886460932697919921031496226097647194641677606131613990566533120493105434130763833403531672229280423613636903773091453830374751834271853123841400493700289102011525340061381102159060986407662703620521892440610348096680977856195765065545577009737745213130589152909313512248322868917998396983711163638496265838084683789319047304993293818228875520729780581881590067549502683710578964123577568800066665601006921475563565076951431092538937156645279662391975077624966316606208529693731378452289327572974366387718890084240770018704419396584164813860094674649030893901102985448548991321141202173626178756656465490586032951361237022463636974954944352620733148189326902177615136484443916263453917392141405874091537959098073303929851279478822628935785452349718062046336825927564081902772441747701089296212608506964921977777142634250465680577201892518602279914537034829440204794995776695492170927259199467124001191947073621255965458792567900288042301220221616817457573256143303531232787915060276468370731720773233434532555789451658040472613853866203096609217077466290962564810063420594900075071280272278614701599287966189189404909545236841735362399257740610561044445043611211690234879482964769181840941742528933827118160530325818180022360869967383879959918407316390411729660159016087973184766887113555633246911769373925501885706093622977930996584642160585905939791293211084485742418138233662881539940747864082644768497232404607162153755379448057748285578161406983213099430267800567329788222248340741944725007195056529403494776614593385744295856311360746889967130058842305265304908002397734175367585918292047101239374056647221027768285456515055822744266704536433807442854551921591302246037517526607055231001558303744636486041822238547897396854193038533291935857934462077884855341021915528629681979649219783291019836185411061902699661632983273634172071111682834121394931893338937072394890894883286554066275381955003794165611529674538491006023341633039763632795540819867639059642125650324682321361921228258816717376783602384330888443022862602429252376092636962741528035322156540567938877249201535614343310118719306788556898632943604175162715556691016259101623483998834085910385127806480593960677564370205086220747973764201152371303689756614741437661427706390004616860535000818274464486016037898343056522607704206455129258953262269361357195942561446182840461237191929735093430970158135411249804939734917359604951180288935733153535040255090082158581233681703122486480028077117623011231026913462868493249159107705342474200305414695336053645597368655378956761160850707077468727412216338507183467361177765576954509337366096287374132890733829146098028808741429194680539929868385590582692937436672397643510771748894930530425232888192595861855943851701986069003972646035088897690038053742601835453979571246886422725424226730595125577722767429354729568817480986030540369344914784464066330558619698319941188734908057916321354630968102552564741086503580020503365917023260974301211471754693633114723350880904136078446004006602284217620490854898373576745666524880487195683046746373332153280765304547297890304729215602894921549527685153433502691564935808557323791885504277659452052347696772080999915265191289591901668938051786500184642191974046237254325456763210576656000212571924771433005348449983764077409754762474936606520719228390392581998033420228421630666563419339321264052657329941953202549115847567213452869350683483437101691714438703387342895322251656732804789897030247015664117294488752825421891545705537047295970344005784041303652803999255751229136628987029704011095843921100776943935920188625338253120912112875506977554626246425591245366011829985335538231696554970531450002766462374380121580959094034113164213873328442759320468356332073797674067656260934293439176073357568829305752375895507156647816949214443174894899341693501237300281277637300100326326545721231512924931692213164532188910965000894730650287200588959016993219707413238858983629277902129563998199101518681032050879034710357725143239260327853917610532248334090208066194990584958714162244447266305079775113944444360460054410141950396294691318958466398235934806547828630792109736014558856377971725882578438709777349020106973216138849950678033415885569692222803773006568678880707639945105939401538353867478810702615239981200960025738471679757109267668545457686022305235233405836213779822231967491849770832075094856739551697704050577237668756033396165456249475847788035735331118554211166791474989829685252774901282708231401283817892199222954081346400747387492308138487153361960424818531170920050647462623587230114517087202824221297369031901786360868050904659136186876477880664409097459403593043509619330850920755950269912897881047203300598845497895759103354761979300680165393783050984699966831410220886756549426748905704964343047898510895974199797426762654402996228915047643040023311090850411598963853775981055421570949644501752296295850488476133059280992777759634290320866771094189416038681875451188615733684963437614208433114426622090120862759328195659437709827025349371916199820083995687623084073565373713320752652189855116176054737308273638334397762116841979873469274798868196460904620629487195847551441778427333597539782313021311420861718298061725408833698468983296736952103613140585577160280545392692651491774589908108410280394739526758109152304714920015955047792135747443982479959089711739311814698703936430755530457479170209180921136938796552955026190817175390594310731166820114719209868344567927316607044240035747857604003709520763260258695917896666816223964799423525929792100596548120186016316453401053303270693611033819167938022044007487040822963593814663848225539435365027805687447436829727926588634195802222093262715365330447451525107697954092223321964049494292148574050316192414756116545461003399426421891542323280473913702923683517941476677297766810775964580984632846117863676721724900406741715836916691974025269004306139548922145930564573341742041075966331486303786876706193453413239676317837454877321723848271658957759423768251071367885557028007200121133950587018762023575499571714507388713155958341708830159009842912204573154182529268985991559540238875237583203590652856108616271323458608269224657853445866880615528672457857800885389189611753231210413910083521757320200884724075862939386854263246196039800406122756598950025146377885528205488838080933635189145024268308864465779580331247588574661521691179568884084204466533263413014728752431167774703695682411013317387485942292469005873881539189848032978081788087680879476766557712365687003080153862562972072836211998527200974604127465973890487857693174896834991353726495147958073678051124105038047207063289209332459198576589246312219875056740408958830342484332428597658872581996414222872519544379176171444529791902299127885607667867485716011692052128279929564619003572101088571883872348225853765238591566436495320222105232779319526956262472090897414249341596886708385398693983811854353751926391171954780561138453612582583409620874907842398785837980458052102960709087563073635677632254540950640498205548823524593490261031705460060217158923364186471296667943195647292669310192118301834343971608427875589978699298217296835759320604489081543544425838234053157007591957575255423010241967901993678466527256559241136530844768114179683152318906282709719344476824291891862627654212131074124679109652590773542250095344937096359782540126211771461225827708693711960873040191016647332802795576817782906376103126234528471428606125077495894522569405689680861511362410949375040788582550087006955862765209001958506882763293448924400680777004507568230384204041077432442972232873176685703766565500222136405523728249400966941686841818518845359070910913112826706007844418376372424881682035589438525447301412188388862500020136872026396867171527580149069100049536698142062772581455085281541098523678611774524841730955812354778467612215021818513521081773894775928967967858736433056627073452511494140187090712752882475097144612894749681394534324797067329457148661875001109885221222670588923192041200348102612282009017664825698387696581468732084653985957282629397500459369826068546801545179351990738021885432276632163444211577652730447981847235055194814970845770494213309674774553399485912116449853514878888168757406387969241678454953282681742915278746103896124562380072030231848623454226595774242868742022083644098055724488864268274111593819881768231565331076711271549869537784918625225474558811386313945333254971878376390492525439040996208928469780249787258179966925478044584397782591949591928134351897858272322082535335033799815077790623378723494033219121875046399513917265839660640485592316395049745526157156350998874243370561395921122440920151127361124625268114458165768136479854627014789959861277336483688115598807740263861347533937391960316648418328577683045404164976790994852345524613370597652658381836218787788299184427220677853732537776469319919357821344434156644057196971294091998852331275984183614641830036240563132771119652781966276841706274279072201163732880841886020345390666237522316044046934949550728462010443172313775078469578090404072493889403893195797623685724036373676415135101804695288219596832684559910591567740065231184538177373473906742782965787653565286388398314739502145970470861301189541037102762154697450363907304466941500818458028525703312157241615061411832540579117017013826392245813506904760086733005466708861615429430678976117168158976823955600666752382475206701386774492200305526006202683885810483372670168357354102016604476068278587673839345172854498302668936868557704434178711736206153952979815962573427827959978451413439411395501202182114151398049206132215091305303394877132738941784970326157487625844455462058544466118793273406249200512314119655774395436325377291691328578181346826532859614570188337244530250735555445869075417598625173854497348892509250671537284960262331236621901683754186998106071661587535872004042973250394339434758472709677432206367780590801058636151448090356380495177383264015496187631375141003839629680067902378911164322064729356222780611134813957377978263354328403318762111020670044018535504881952207735606279146767650485280152909369174252314773937025853103366934579525775745983241747462011478907862425833642293308686623401183516111806680058917504620421960984426093681721588397761209388276056951109345761231812598622193500901248066189865590339120096774786978585950078959835733735416666066989615867269058822173287983876410949668048994108005662679334994172981029840956058011692420437875948329189435550977266535461861880711129603208066293804462734316115596553134225741701990407836574805649382120574528534271558705451868521917281950868400710820065639849134496517526018434343299173103992415686480377463608989592238556063415551413986675248751631610716679606695468021392216178177841169702518001209882866972738030675867727221264527243381073024754879329230594872776774522093141615882299149503420151211037193089078667878006837360572863301422364872218830145829991221285402094353908278158481889466893425006265034657816271588750426144859320242299835778838137475505019511129761022522397538724829784934583473594762418769980357754295280140186365667349685240738887378684187695405628314518362033510909696411194810820244608460413440863687889123168456284388806932956901271183144300781964968906878787519790400513369077006629619717242548577135665711816592540555811720616453546657389213333148897117604756091449203344242839815507038210289247637139931648642156026109565107574231851405672460938708636495299737773400515707879179483859884298041634005704849383373526985221815301466697172402524682625546637106559512239820429967849110050784359585933777360740713118514284781927835866820464482415327733644080492247429815035999986792473849712000105422354030185746050403494181725299122984858812056556264468157351465399234732302059872345963098072156023053731870546820177973832612074074963118117252957815933115938644482400470831421052227517639557595034552187355612445876918494437967022220513199749311644339432177541305995009449481932019307814305549461789092121262390599162286028519340963988742605144247481008603899318262996391665145852269897003444253268606951409167415226520225092615679166610734169459983405674067458141015864080334540291004858668957422166359819955210608632996855567727221369811956516857744168050901402438984458059505210193558387888510847043933675674343729765662638311837726550442813798658295232994775144621787878737119358782815955111353741578114286749266263014447365714617817185800330029742794765363312603085382006659141171500982262379820825169832108062097046898969613874160204357036479894793432408592545658592937210154630646972784741814752283574235649503652590652768601708888885334507716639447574684060975696740445123223463772150558680494697615859499894710028367884804534584218223502204933099204160448680441012279962152877497445132880373812408079267015727038648048290221738901200057907793528017171159510174672766910876128546366269264084035183067845398067922741793478208266419034076436506821369685593814013489479732110160972971245481821392680528101046807087930199781467883610723083082300558787627126326594967123747729980716715871694511829140386739362549862541265683345758202067775660473700519245710726195913226633674827948562116635150706348910031188590797079862544447830393577763772146187605647631621174638422477000972177364250746111057535982747414133699257080909404176057316963108776191975763762435187299878236547822307146688238494328552790447186884566496156599789033638022793042856135628647511231844595016140786553372219517638215260480828344262838148646199897370587392169330711492301788061416390464371051322941101283451219830529927220286137216426838104266735103086298469696418894424227452035398357376629112833338873097356961022234154443765046230121949832670948505989287430409624699004463622040656165908720092014204692550868218798514402364797485703944564076569439936873481900503724297176629660649504676814437204878596934935257997272752426806222242134108423942796133088453052268848609056560627627614086601998017218028141653589060019184286118574888266493007845577279658555234399806881760969329836312990780047547991646723835195849760412540823660523887682957750885564953483598132492327646152129405097201107304021481084726179507522103067210483024411526500224549020376971597179541340398091090435495667748885386701838123680496301723222977382596474982375921035989178885596650800248773699447453900631473938577657203596581282621552605765465316856862190854408070446790648101419048424220294410554805538804305313605318513166005431246776361151064111293429732864418923225572850343736031071263527961886273833156868048441028387923503654477130365059580536288903735434784705458235437075447784079632163550824545401074478454765271699496651609171798142701597188098872572418846247646316963143627608743330764401488183097891693530667524940439569281752414962718960111812757709881771095116480570713120939112099398378631770065904168917023895997332492992733740897691063626426673894897122345915510506143945056488036995311375344894602235018985419382820386409880386693651422122387000610077582957622470368174761723336743872580445482989958044418105005398690258280631640422664542122942411600302066218844126988774822277424965652947731693666755647964008938641040827064154454255804185639747832484613476332166726705631414206475424067146731520707453327411412494336194866682124934835546544737364087004515285848342785068043958564976492220690595106353863524655526455675086051653710290076562341364968497411802803160475105290169889645432737366568409220717451966096689699577690256132615693815527520846978658228482851156241993388840712482114293021422320149190338200516036277556670599695679300308870311331143058765586221770141455503676647918940452965980713522189538917641424887334213089620653458331249923333487207804711280772703086508752477906594262442692905835313565973901353361655932647047947743193652392777190206575993410871383251615456962674146431639068302237081673574027619258409949106826603004058011099542218642827592850816363981636691962746612921154819234925920205529626374431751726453218833238238497537099659948973472649735209128223397495387585374464862069354088413969463813251267228305647899419523301162831674312515490131821757721533336299148501700398139153607041652564483067791399919489915809747532759115001779544294845693696447473564982324223893741011722250353269975882223383899923708762946742078034135817506913830989134999230528845325761227156620978959025851558938096842350381646345797148293366381743511572521101861922257104647038020739981892913077406308565244006854698019517323243059050875492900019875597662800663880040412945458492073428446894622907118626497976619977519999651737485344443928260285286665298210251038898239514814143005030774447964165014222595285435584381585822399144562723562213987473139069746019939972057517661600154182758874441396470355743499848560835334088744042288486096691667861943116358587102339686167464681563729300678793715914597055691625926677983200800253739050837072244908032633275445438046988557532056725737194824904650840493456259760976548322181495716216776957521681283399138971249883781157891680796271498864694132214657205492155313807912778357988503424658229859087298527649354805599620319775181847752110522576762468747492217476192990390993325513902447552618331482293527245855104186728276304092745812963214962105739317319659565300323942270003379384860362203844297124822138351981601090900459309530811944781705332985359614973875785463150275863547459354802906493835226611783717333018188436650079705288175254745233231934430263344829251210890589451537815677051255628709032706402106472939825746727861897164777828410922162591415201871352467840092606833892670767635784820352829607597029236430313420492014430103838542275304098269280830343824229868648234600478206993365583798178007572403108446118710608041753570018228594186184665784505301995724408614749452121992642690126929995425693962244608717671269943157615487368228070448600330343568218384960668466983960976415047987021578515272766192286915115105223283131729955268403324166877183793835259168030200636010987272819923704671463765089081123627335854156013994912353854195076698480775911176027704261236874299571862893374973096287286346340968816372373837079070095918253193615230294261162963819034484093501059619356453539324346796123557841891419177022813639635743854916595426325150025707424642735436881286129306999286632536477422064833579896922440960513797616490240190679584704586501051992389501818062816509855051023178295660230892192799185106088309233276970097315008079337127546900540775739612989386025112569363872410064251838636780994753015455687539404290346257781869817807705010489430990483842520240937422920568624829090547836574918677333259085515156321795157332333404105764537594904028583753896863927092425388127371041873248096283047911533488879190474805320156448411471144812784200324146431733464375001259378133803185494294457958079985972360586650437674010183020204057565357646724197667745585351247550313654817368840319193511504177088307946970563676086869176214469494234167898333082597151240553638944257330954448134578775852761217606623831414158360539353350459836284115452159156716071463551319695189493345810763073671039383097258582439166697848795177602796884253895812994241102231133203845506056466300952160920167670179521558926961926382429128137507681777430651873959546202046305292876607770644952626278201117286069949662768517713823749765586236061928575530177626241733122674551860837935452593050965318030615738070388380401312277358259973303120999827165922589283049282884412982442660482598478605046484082014356818485310185812481525180443173738211286932472824360907641473410367145212823914839043937142994603239520506043013391909615284056221769974568849843882871082914058593329223821697840042161367749496394768091697903659389866490976673277515154317237909381032516947973927413086262947486220495166232016565740921600817839794472231887423717974038342101518348460183802426554721187629831992767240811532241122168646164856407285448164918158002122096054996484462203556690409315451715360854321947407355847673829021239126108941167064484154662168109189158632040572752159341650396997414160078843060098240297952468000471798793529475755456249057773578325234330592583850067994805766992393793802747747958246984671854221427826988832490972068237820124302626994237826451772898005627833541238156263318283852176487387101265301301134289285604886661549420982454875544503488792039624958009822019441553721716842397315817471746245370529344811836445242402341032359885869578451765677461932410890352443366434379966427183639123820084695991218269781649004207148267457442721551891616049588459467019854003248073297069825130489724670551839461305769628071085980071787015359419373145023238887413914775563187812543013654451898938248765754779854740904450176733239904469458448842372091887190014180813735150873334253253515898850071196161717440810974657422197077382082294288091583229520340284210748735942380597353711290567876137688648803953226478164840835734819523971940119961363132151591744058214138559274675926015452919201158903302238180813283679089247846479829221407774548516587204395646317016013703235670007213033486071954610044917129326603137178416912771815388009216592907686755906949896179550517673750419306242599956105982081512029053476129236469675577920541840047395355015676043442251325124856006231794302617562397917390612788390682084954424903193224054000730572553472741590688266037022536611794069962629473532766118596837107369601103022158156803287484680158629961623486005177605036968453482830681310227608342102883567851776065933680724255751535027396375860666586797938015907601955436957985533069076704447249344560210041851294771540934070856086563773445561726982113163719575014484390638791854911672559175133489092490386577180144408714485413722939572908448845834928514991169823135383334132015665810948190808710793710684772148766060604459763723393017993622550746365550900946869084091461978277258874165975392108488902863970945359706406918736815572304439965927750157368443992317346959060166363169121385898672018254139134204045704772224731873701767918748805353960734950558488167082388216027840735599469714167354266378390211132330280616257428574944009890263716897636722443710924254975664642602737068803116562481418649495795968181754667776389448843566013837392959706407736719174622547949677104137063305188097455711992706959444696740873825361674997141461203808386045171813426198577637584254552221556615758266432765589400848147215248858765855576882935784488169865667461352793608640782187820343215876231133904705091734942894825858529740366599959812849673002384457535669771485874238329457945368219904785161446068186131083106555464709256578306408645243622685449458394274016658354347602245920658001819557075644291107954179609547974515121185261678770272656535083043226151054349217079853431638869113095779243574274160261428911611444164206498326586235017721836991327443031425468912739634824158310506962908303705400199402471518837744004516467042088815888923789475235012906775938159344377804559295980177336121693411774710061632982146772227610569285316985627448699618764740493523599991131482495497305509384397339684240375185814387867730730844551124107355995816556698363880663033736932352846567320890985566513376790239008315077402168168005191769021582922567652449138807327967283842049139410520594894094564472840847695423467422132008483548081414888779072245401322262889423812567641595728853134829610295437655500592883151553937206378669842050583694350283618458210517099500379100859654747535156909897893384307095359425207801169431529880662690907418830697859435802270209425566599019646875976563777958170103951561753627664902191012757447836396259728717847598077425265697339964701233555223306296583458729162685264079695276183136807560105114212921755057511067331897534063270854836786384738608839118899179676163577688619821659701643956175234894533951551212691771039904038306651040249249832290853619175285026192102472993495730604169583210907987941571764536520795610963416626714519528491135559715335326086578742520920304737961568238186404655537246513082938996678232873318315645743808471308727966484368823346150749906567722760099577764049505510030688081294175285484378489282571048394629485903053472110094151831037896840369706059126217878979401945498090357651502990502524762857378136206676988609735812470934129303839846902671322229715666628396226747708920903406558855492057914209818919233203922311030872990000964661942906240096723482924951111095910579798529692802430545040046759295712923876188601437756630963507667048273984002648306746551647044835524436641171083984163515566871134457476856897157809914255858019471434552099192578733150693547910176431398679441229488162393947435089595220128229268224923707189714940143166471465998259123436649239388568915252730908430732266289492050255238017477436130220144531074379294254443594917321015401565948045092345206398535716490962120094547206876143605939261457377366352935936178121401881895112250857276751978557318071745893502412280557958923987248408310681062726518978731383270514117975043364623452849717519021706707378152620935524142722723420703321505779946328608695240844927901633389396292278925934389860034859137547313793026829176675888653359992314452718377117298873868407600150485928768057967121605430796727388582478712303205447145190250077595843311818835058365163575735263628105281636612877689523047361777137015105624760948011918687200206228511336411395082097116793516117739783660561329864194228485514839958848510989715445767695635122039189245429460347397878454830685598796899367942631884244278615789624205798213591785905082938950534482141917696547833357895818565941377296749369309846712877984124795205497972258832336716326197775866640236257592021319414474155611743260966549306108989244658005740566806423409642497627005229059124629461956687253831093014330611138765393855250120343289036459787524135033257413421142902560736980938981247483470335114501540929050132897774592319832406855237114563009944130336254949713605960681126862131287187035992116874182950020415587056995030443754506250283172380911369621212830188416322287963785669300231536119063466934676057099776141386082799924677956220507858223812758784701451568099755126862831266705882623983008059502442228599593742444930389117242704007042022993563003980639227153995332919421805597587235116995354354360397654903695302075229752216948256449678630651478506632988549283771567859020571110830070735916174302389862254459079210561593399792689946670258094231975923715352182230798825133260645921969762180754577421771861033362760135061205186242244954776439019288049748271863787065363484310052955084009487396559067431381608723809113373148784063973805374273964127950944276222186218714822380227966358207618686650149861503866761723039485787615746154572499510326011165279668953639176808933593725207307926661125898292858913301515638990404021451306391085267893532982236419699882121693036364222432714745060470268069203047915087609919473091280801765375750837007025033325884956684105655412997468054019087026203481844923293852904346488090725099653502941734329428209526380045959608880584970585315874202178303979813793158939003594385483328024240553484456176702017973882567783813896203508277385694061094526148326138019939214361916385224750634734889665721504539712035584827097970449358644512026752892997057970523620970080828560876965140834320952849883600250994961861759493290289856158104651734324130580434905360584696594302383079419821917009229286890369517513844994921747322972235631420696717414856297233810906893138581348713002892609229569457770091069912445504410013564641496622416324133777587687044346975012171123502658437973475100037921117221270619645047333062318499819558269538368521653823601260398136892501104048386160130844608036287643161512385767318648548285171573636462494207650124613690421764195970378023600804467437635775236120078234424846642378647058236145866894780071177628926219121302303227392327326976693268482934581478729994664977392464473868923618013291057995493255086847952274453415194956304283090780805334295207108444668678938029518812445834827300617434004044669243682170439622170932129607392906890023777645147691204068577955425754586926307773842529760367834658574705944248374502376025632801231936231328683738189851474530255129652363948268468662445089378071726080125476822191920718736728051044186179120107276688645549422017204180480957701900677386610919149827852955230025347320520903995720812076127960309252872265937620445631187388013207627115148217388454075897667664116071455258276594976691677349470211737376195638888178183837236836338837274140374012247139995811440669619399276725716463714501687739924029018122673949542620439217431894180995519175925433645275496866285104077694247247872624801571106168040799960598502398064416580884893008111254679460642569459681047735557615849999343770187139347219509709612856035952158355203960849941785613716816592902843465721830636130104102858592829493195495403976550880937184163627501168963343590891946828799888526231641907082741700066821547114795328921599417688794327590789869765819631938412441269228640606185862912740789155622918664537137007303682630212155432537860815132880957875959477610606970103608135256199900180887743527626149050341578922988520603632603401143018224356220603513167868145722708897323913357411776949599384027126286285458646179798826808575104058520871115104941955796535137033735305279007649945424735778450524869060784735446038499444865941848981437077903089388111647678667698215608541657299693988395369844077166281516462064125635477115143053463795635042597076398865586661125043067561363538161154869911459823904791130568248541006241334763932750135031687048858268087181766100718013951887577763030402527187708062104837768988124025206667647651298741889606972727990271042560775001584094211994942820988970802533184865275167129255413471273301045966587488242677495342254268565954375370531802189973871401706884130175801327443677771789984133810703638600317719639436608364094135197971471515204915841478245433895917486810972791601417578394481317454545038455245884407000522304691639774394703623289399736525016086903153872260638635472003155166934482001696860563132652319908578026756279219585080237475771939848053819614220350624495294335987948195388040246065337127224651876089733899662813205509294764496204161141627667387568523962381203641729594637341752820048091327291235895779821132174668030838155228531840514595118650397866343694485028201893543653790199618238026801472693908992177773529670722886955186694238564000216425779117421119653624743796151558892954385714939761777186249802453580818005839130422640761936308186174605663862762210551833293440801225640713291275556733167984115110361686260104115334441159359644744420016442881410051807365047316165477211248992963728213719436280924133714839274448576875884762547808550277009481226228703884401760293101029919080678732737796385986165984274147817892668118105947660832775346830140748826693736098047496270448864782790188329325741299470439149900675767367825613725536819936368226827467657605518254277835723686881330958669992911411668009570427435485984106799380499219311923878547560770870014323511440927035432797633835273293773538602710645971159858518791335563822643864792208331397616844316421962887980180767996000823224556503299408677126445020288832150061958460722225670955542668212393218901502501549564325228674007522588128084112109442423697408499591889447474754856340062970021344275719509675259945506088007364855804500725970481339679697712992592711113326321082139667983603653917777311912654636715667848233170725829731377775242511765230500386812372352168212431645940837493419482469431231415388251966054502612260682651006885214453880775282897234724170299858471610951060607444654739845031502615984522261446265004936175100279711057626390210551128086115725881682890052706145233912604841775938231115480909290711022855719538151146679000874561404027956115738617485329180084381343313470423513274875535628269616551647067841009616850370483134461714379155909572092047139156217921502648589669745484854314926662276391420452071089612453840853256586286889737276389273239676412284704703583918379694050179676954147023780245580520182491449871793209528136585252491037388688671904712030391423328385408688647509409326181801620413274275018477318583062254675057576472245611577167935851114409680059454366445821256041912029716836684811802894484706435807091192172182724536407831033640471245019957401771665917425281037328547239380653121404184132012900415404259770341160148070480541128962700637880763808933569893337683062799285663374824574950330239709750981784671907259947510567844138240296613601842423762742734908830746102729228006905675054797193705271898360118755751195550117760062091212043536801317772986025033658438863854181936243945840268494963199342749997618281477184493039516297194522652102762354036283976272330393094015466589315790365736308484281917958050200598870253405966229572589773170769166972103405258219154818601175933954122441597223859799094740403229499218516443660818889504026219836616211717421843495010360812486572249752679791603633791387495178463926020335400448785417441116815046246811712228601720103573206336701807424578155789444332457862443939883341839650591656522995750048735100949876602297218867143245185561619423730368235585006169521130680871528180137591565221768715985158952609086966252089180459550176598310680056261329464805933655585290590332887740962326264496086833813784405590271421442872749080325844370234265340242879528222963210739171715125338757424047810765243166257618573343391441178581690131824946826349844849695348259644785193786683598190471958650747928076912467386282018127892389601324231533366167914568161462382321693172314504403788469780199897521762337057489266554590415673694619379007107357668638549795171071454131439310158997221196069953021505433758443720137775413728378292755353652288092857782806606732253539731846772534989964391879758256123645080606144231412875783362431443778864133347969825837373664736542914922507553213823773965314143949248336612339773394170428822933420111734553318933081216068696501132990579752594230898347093855565396518263445941738286048861071259017670730357012260801846616155364863203422581074527654021769605695481021070988801602938094046713141449846936069364967383930990799049977538270092998493120519935088315927693106743226686375127964852985436899537509916848013212412978311801763158358201686530711380929434415560785766880280279913340400842664478379262953796643889953022823641717177748122133895124760840782165063878944714769481262786112340435997874933564370433167583522517859402123036275941061102680007784823482421428314184910588189670104473946707030001244359777476097907247997445641887780854887007499040104624012012049785601494661666495234851586271094268790401059967911459026967939044514162814656763352293552407408851123664498252153698370631605149054379815115167512158620802774288575884649946727664087796490155091309481068027592723372571179035460768321125378380825838072235549906638370507463663398236660148598756520413790714880975916296657023701305703994646682663224950084626392387163019321251453306179626311924240459152822338159534099722804427550547502573205208437012720920816016849474020878871319950331177640523520151966892999150293574709474660972005821733244785480863229365193723146763819890570279112217450698295282305850011524466188324994176126508899787288832358061048027583886180310918295013230283967324562468492252538406884680416070506567583930500305724312690183494735911239236546566215365256539955382279155205766919315088636890079380269366646913600803306030994761282452932982645604736091021657678934571808831121131500869502897433147720806691172336163002070105986246324549848044223899825921951348828470179895936487344463412510298386106035472040027142775921309417351580345879501493455328768758800598156778323717231402332324183875635715387419080599725157482261951874645516888414571281444929247971471866281542113248410660717707181158608059872761369863444014626708187342621540531524074285217990688696685957329159738180558594065178701998120907383712689181090740228024171925719790630532049790893067655325201319112804684918546162247695503636765723725056115617597491151549082844687900757397172937382974205302885132751437421467362839873424149087633000117718003180122881478084475851375733897472825043104281071884309751714806138942605679087740128488301886945559360580347842825951168092049515385849942438608981572737320313747191727388037941821991269732203369826369444661482811442588272784953651219432405907723372984558355173965693537921625517580593155645541966219525534506607797998577681198945808671328039308765469869721150545491237187340716569923462276172206837302309125985903053648212410276839795913994384571022526508317230469672616118173017745892368950911034120184845898587755292347495512566765661021824907095900796381669195609688528138254465363663810917419014223528986210257819422484034763278161115000728812151978919259446061630009118720893558434325368423777661235231954632829403169263085048442996744171592125904269848220188964833709298120291336553261790816994908726588852203339132824152481978276618473519724015363866104015409487758240804354808134490584022469420501309861928478595302136795199287014210063585486200651958195969188166101172490733342645253288543991536644979316977293671827642054257846551512345517571841380836755547520549282834841839943560712378552394644603827589560647954257843635622505224445358793161734926353588080017476900250212906796107626665707920947150651027460446192945352641914423636724842521144398073539149071114779228215098684920723028190801674860281643275430222356473644131728379101666845427437783861871356257618111654541531644194566182442536481758823982143133388508670739556821134706657142291850997861833356378415867579862501145847962875743787042179278997851639094225556798428299456405354816413918713405975632885696682500244403921932105978128647481880167135097992668200777548632991695220879728030481963661642936413113031518987068563084506202408326403105134727112477674265754677335887871910053657751564638103863302732648108296060671761743743256474923137735640524779914134453026657555467486538232059184054234679963015215647698483328438029780750708845563206505511098712277192519824457907221547268317333177029980419059297939119665472103629401991751103515119920427427602400605701245295415268581489756777059850705639920943957796991390181956755425175061659485502871967644374311345018177232598613013071186808710772140411138650273260577892594454007681295953631795817228987180151835254907561436643199678167706440930069304295591315014673739731855628109478254361204660852594806334301762596124550643861779605646912068633718430784985235810520518448177969249860776724127052255549187752114089088760396765893534661091069248402650466237875005389903246990835505693649027427412914062091941913521660083103074914630868835923276239748453071434852323231792879455524297569417494328601475521300736871593138195795351726077444979783294858899220188117935608711077769740164664379447810751809459221653514124502005189177682125945145913499933367872353552931316975436150105942980566865391880151841216929327424742571164997913927630085563971024299054158927708631320676172520403545508049892496155389220979461355535315602760824888600394552938111792536010014669434524205038582704480248317521093293771702911445585645466318487746423910363380460717879744602031824511782371080260084494695022799674209793868861192781730917598411677711463239741675576654059652130265011878783613829242096909234769049473070097058925248346167304399173102954625689168822085095771181929794858170632564798409155044133395175645048427060787936392964307558802062184442410809053539300886421557900027017939599196360490869057408269777364557004770875732026073202233218962291385257100745076442124161885303931938626919163158968356393909400255841239865011890245303398303852778291561292245676194592540142548325537830752163905297362547888634219467500689387097617289607558450278988623362535824351855357055873911815601388863588570519084756123314396304011917110582911641146037404245134830645488540446684715630461482177104295302325871677785381952705362069602986890456684539171828999809553840982023549820831700747484984793678920575071966800728363214101656682875729933457496804791552415716656455281524898581107945620226206647006656675351534576695705798387913177761881845482973220527020619180619807226637672327459817680975561981483637400373281977291942741887648149792778926018406334088054624635301522897078815151844127630548687712062993699431590234894798810501149887318490485800190596079620148467391403318446704923859118643215903828654011177531278148209445938374102660867769524133301793881213984654659551944131684866988003942415211343351085949305316459608471518691502066461305302888663267256793140632980691667030061468598821731015033643890321282408802233026376328122956138324280813546541203681638036839185562821346101376467108525656952680427363358211805551007437504429885775279470840891547858795758749613420607117731708019931649249321281217283260320686651921714993922984792570481010718176127300938640452410717625257431485172842794699896257249057412105071869432595845054595576571904039062533360432511803522507943708316097398374531798917767197237447033538799870875711228729906566807381844315568072339387764964204630061337518990919240962624840320020515705628774841448514949889742074507301927650031695321801645547068484820920106217345217694093539586598861662552185206468784761636131354653629984048640777228185951972130808455759707124362740235076944422815215139676386067417870466022707144333289586614555749714239225970227134279728238832248896175997344127676641678832992088650191553083022040513549609074258415648949695246386138174204795721028874300162417206054905526475783452549279307408517802973154679698544903051338071911218955147956829826703601604043547248132372751667438610597781420152700419790558955110352950655381493704993075114147585312238487719655552746402095884494035447241300874814197903112315941331630099917230523731987865531387284026788822209368807398090441826263932620842941960494146194047238113274582281583633090696709466792693709936619236771863680846844870156833631283073785045250960480003306348453598008420330035069701626006012013936214396301085030278810314459601119491660817491625304795194414086194171577473714848708501181997879733684598944166478153184885336841543295244861869962499244792401314941776030055664806784321748251453467025725713700883249950347812870725443349330544686345448960812322874149385589247893410808666017934407702874780832953678512862571053942531316279984881873159788168933158905377045616468176477685056864522198644360096053131109268265929065092484221657158900380706762979976012491857559931915695348470883171622603083411179289965439947927640423874440373787810821374528648362447952212211028634250596494066261028805153624016258867792779185422858670374431003175602508397481286649329492973202982581428700105607639272917318373219261156326642367270508490342758203363424128841946741813201939296979815082149297142448227203202728251576411916908462602116951402885985039763227875631630735243222361937276175355819437756061558737538274408436164745661368692690151501929150276830443160147720062883439796352774066323246210940796922859226556835845868781394861030815656301146357568786580641851411519887592375042108487394376278327021159693183043186641015366442446979035788613768016993324711926604336038669919708785975857229808915844154993553736399412405180933358455801482456758371732602215763466989999798486686152564609741423410665935844903080718675620645617334494267203222414905547955953705272356632030454500575589816870135008093799869979467361448910476217351683244586117179774244189256717781061127538889691690176430736936035755581348869850371221782222780303774954631020516377239437062207513284795828775628997262808912258160433922374045531081866416081752064074407420134774134738344009085385073924480979701466856502833449471630213634850868569735866135019772535517399205730770086519045007377158225503627252754913379332905281388696031886287577562070065302807653883487962697876849802872444131136542078557636566906286005084314371851136348202311966727115036936314555606466300179297853976904755190461876181513607002196736180923501992217303933262121215207423613885395121015103069408509158639882576788019659787853920501660156585992065108652407910862221983062924079720325749833555778693106234804391092918115231927202092235788901985204526952100772388153228270849468900821472868010845061866665915496325193556598611877003334095643560644842955390751884822559078015446589488764899646616741255706448023849256876380532511708936767883785524138633674702847770530341896389716643638357441193831426861238739742424675784257858330991589488070074686184081616840315423737354692735617035906461471868790900290203245780086607232841048931122340352596971961807008626621006846896113636285732140115798234985864686933957048943069883336319572847961857012402800706881666735956037327296405450643121642864032624667766537958676219457812866944666353668518208207601589654231598110975161909134488964900520561919477790367086026305880406162687905456744127648632231709666500407941154532143474797158893438751263447772532921023942282501334328051319059269837269463555344304281871134032522463747697972419238945278617918015717106185634767115733071153140480345609807410777056310556563256068740053196051492747436111927490080128316223690829427308260705791177085110301079538332690898260951460595870276061259581331185167495745228202629401155448045610852038341907381451983099785099034400875405425730766919175726357313517692441788535805981602157151675983317779437737108751756582765247078297365204607084924073541678185236199533173542868053765872590647650710072350344027079604543401526058085570865805382573505132312072511363544015170175474369674487099192691520620548599454182824180965625069736244230020788685346792961387393909040653673835463712117698156317324157691654487676909831385548603458504275009605104281416808051697143223507775547667474273326441606397509516752253342747477059696655287026490733695563832364366959627037087824694639054631556272006523914565494576837836439313581470296589637111363995361552783386068025508438080706709790735318807009367369025469638115549410319797479862306754142860452763963356931998650928934444091708765648872833301467082974732431979481439435124009749577596555761288054723394470718686468253145643217506221241649914532648703554760709698197090071906235472312608068426220000555067230370132449732889491022342320134906298540945158590752006227103417868075387462455098560383005063570790747379625843995423536635155886771996984654321392183064734325362989423125973029305104038894408262740323721773578918060604587582291407956870996395961030085769196725757350795869811905458102586331095336336695755799287906122853614691321755011411336430373599916731360185779994333196952040963684342963457818796690628608864382276701496183782760759957103559111101997842201385388204543771047493210776546911901503477391976020273008726103477971507233006777103785343725086012425934781232197138054779693882052757645077617786391308133211525807907876877715609585653305527016382177160455304521061569178852401160462840811202149376958905107483498582947109433923754073408351895453397511795694051752671816063124071006012370237969363853488172066862345177640130165650677419001537696630179037960944240516817191208620735573490823397975880437501417618421098365306103806684476706567760785024991724473088001149407916419901180481260435164737341731806273049467933175516973778782486810141807638769714156972288023092915346523568427797306595173945463531714553910952943423254013822139616119554305275835808246382768404494389412517679285904558390524514527260592885866576590329902859909895217610473689681658727095351422523054437885491714652684811780079209667184290830855062337781917890301857550309221981818686632920348661229078891151758862561407699522430983107240450511265694900406384680922904587802663865068972087758193772650297193985045104529281852299788017703838276309401474410344073582848473648153781319232572886409269186673090015798775899841085431913197123172817944054155131243603601903613838516677299916373847976426931342929735831105444901808445344778300217372835752093237342141296761744250048377693510439410635350271429036339796834835478634307137664563779732645694263664172317523691845318153963063989028034979885192372986870068146156758635483912559841124264028712637126081155670494083036641984978030446722939022110967707191320721342323308788344214699454881627161239714486662737160661128785138812023915370477059599124401616092365231367661172443296166834541982897885151310671976875679197903728500878363795265440266976817843784328709143347915095220121658575756482536350791418672349730762715515728290803680499696488242069553737547200686842079252594660550983997614734798413216569476595018283920387744417703937198850014172863756632350696943889781401037492844458536400981660424318063815837478670096698778129921873835406055173634943775944536700850109799683080744819891203717592560810245365159872309378641816433312484205567854226322056427508588688203959567527756545940921328314612920588165215124407708963647945149013287084959744507060886272179144779189063574062302283854212336380873190673858766461424886566171645977744403125107299172659778490027192181667816020361656840394505325627332566776829653041092828770649158160845706565611467435874183199687240457442173692961678279915100387620271078664386983702924548295879207887624923599869502056580018185643109611049332435813693436772822072401294794033791897595715166877252542270686507426748961431537936486302251268335146667334019059011604198185663765166857050781687980852959569098132257910310134986517285502785488900671166281082621544498657780609159293802517195684802078150745511368283513060913603390430090627812242893263963854809989145335641281040517301667211367999932592977202925873024616393714433796746635806251528175763369560643415671539697788112466521405443777369575733718086519686718688504957699468525433247172874330806325238853695099640014497998626681859580036734454452724723618806850264560151604661225389920344675105530616570458903395999210858197018826441371101988938795444090727980369563924216198061997690178338604560081367424904898265265565341250882649689511469480585785368262391790017060096167000849361456630549839598028287385432761295992931675640910602957637070010179843378141077159014954826203984111568767924525590222347001252083484296281194982334101068572289119302291609454654431082761456172022110640571812585805994343370730618209565456706794534334896373377364511102492942850989846705130510426946448601976396147225199183900584884024160074975089892961016463417090190419416744674907416200269143865755960975315125965602245891364663741418214897986816889584261749981788646905264201589957684029730790979535908478937707007726394853019323418871809377929422360995583176582032304130922031462354564029352519230471910914898090739525014096846584684899612991930097207375781554459489821753511778404729844049728023692607367291966394090033721515408266598490417802137637529397481351319507137033465450794748087646471067905016969964799091640349342251304640453784910277981203712155474062243686037543642435785308446010716561920342951986661689769729315191423577069675402056556427378122034082146761471616185047365935943685277072724046081247739712543331067392976081199437943525716710926114031419442720263460919451281297605572087432061148887713034978192860737491675949282668781536188596814703159328170467877751011271752717386047513908692975869394507925923038171887349377807150446783561534894884737994018976449905142369623148328385177858825215026153760561974301869480841594322151340545280520331996458882478076160500653633806428417367082426714144719016674362251808460601102879789396213204716038513578333044900622218857197414723196657645600626249166353303955315280319897622499182510371524006233881237844842616880732686568729420401347107751228214966705549387447151184029162668357012045024001432085056939921497374996576575456764508995786050264395786489716039125683234973078066644934842502613315947089863175711134713964814298268503451015430585983151746965957913888370200904387072047624758682969073653479515620924404984423692296555465524832359934150732878083981975760596103229786647373599072129724668884317165697493081164772115410361204716168275940686612472458850651063482717057459891963626009778234242622482094164906002290587633656840825576807269224503915961975077054089768872133496871043084880120266684762503094109787045880567849729943271548818313482933387700732378742488877090890193125992208439856252216258805147058536882637933105271410638215787374005079806658820012665685792862332249655465710855653092214490933722653654420648832429139962066201213538270281347458815118847362902476508772261812880303603981372163077504875438771457088517105301849541122946064166046283495232287583392112204774473683422802279095511431163257324540287892768376928365401194580032231015244517358276403876631934242894834970391884462010744849906115866904618853464924237715000638299291945562476426685090271657387495829168762337417640133388279063723247552849706713959263986784753775450562087525343604720205360347299277724418138936740210535836505947339944392492005408901370714532369506031214184810465685392194929473628170286478704869496110611480391720555632853373700297642736165052317754718268962625671674790075580283371876138255263343219221828627736015256920265459099240001169732524837032418951399258637541556156157792229951151460263203948318968393319960446429977193699909909532440242868308572480537943561150266367237593973233115119588017069936428785090657789427663275017556701557446915532595459378225689025196345403542000291078142633600845386737406801386462468796615835465802878752510950856425777032422759575506920583536760105228360655792611193283971982032022622129893754558968174874002127698518256939350700621206562954235458156858688483192939646858022460905549904949564322714763029431955652866819753085435010153874809170648390864962720654726934908232701205538184298985412097840170473546583107249429105856815348375431781796944884024545333819551037142881286264290730051936919564897058009966218892383776408379073078428631611580143211957641664603163726007678724023062803360682284166634346403924096810155000718042787539658104729078693847735972244066886956921972804826438993670652668521914998711988453958511359300883207908490951430920415003406972949901889210908015153838416032837036635490880303266377997320926832762527272006897559297364298048827996307053992623534501588275363324877354258617908832922355163768224095739299504217162367699442381386314361183966375274916393835316744063457327339617895974510640880332848996526711877655120302154460216301359856116080417352799927204869721056513202957776604961033492388041878615403452966325380462331333487766926217978422924313263240340483541600196247517400555896504992570704918670005327067313328973398386776557064471077315264104013244192023222103307850636753644028508265850104985346378576458743292133937015447341980152097998678854148207893964777330053518891164079711559887706715413690355479210505548242071326420251699843207066186103233458969580809529957584010464824444568662339083406994172299896735740940600649717021716541083153313019507737415227548338479052212364316710024712970980960730710667255583436409573315307132712595100796182551235747268025079872952335833928553052487472589459103472981604317438752674992939862206567495826658896043424099519717261462885660646368132162205372985726487239426615413299262507865487165274909705358338106598072224089102308397804429391452047060520097805479759218617268878059052264028426807989654965642149707541280932552314103163682127737567313530393296834006404762288254492772085267432202188624544121034755027202071986883362707480574824800609440315424493732716640778874717799663826110515809995003829518189579265381697069694498046397861700321580113796616908197016487137979869980382719367460766085144703603853751645349994411282954401921834421454723160112218824442805786810227966156000204324672433898636591316227500163664713679970655553668451769697516298156567001594384899203423636741231157698436074462515801150179669937013237541178160255721988901689635496696403663192793698132028934168730082088671919670469097116329871008978406288837905658270728176730362720736242376552614359166242571209288945380671427557058531943724150453289641433259125601083193731631292571702510515713811887447855981088754544285541114963986120106374050597304622544941010618727835292579656405442284433696173200546622068389890778906163593027988115545655246029889243379871575975454330039272243373344887899319796601406273367914850625452122084130253687485928502190496232201246734677495325405539593603153316132249088029314011420635071080851171522582681453883047858733330987420896371130048782049282834847076794379742190879684692730829448846688226617412422442369940698359455837295885705021185206078871468522911890908517199947619030611896154705828989870368168790843477928237176958538178873641424413663194923311671817653229647886460372547938981609019022727606872058216798591371988126879317542159136274806006844656453152647506230832815452413431694972062934099173337986789327998850063318526857738546694216574510978434481833070282614885672528350847000341673321516987363690524934463378587261628164640244776408327933125744816981250438124171619975766188538120390857505223986319743880288486413745523908446851141000657946781081203514717285543603663010499379004915777353345492899039432000958452812321623230273056836193798390360198442663068675782901041037279323009148233598443353656962294680572143668520791938974080774192228007740635854274898737277881740853435017293307449398040417098436095726694214767751962696720724109958110234468279606964156428427435206322012035957630470313452196150539562467282153903215266931322846772233691109037380194525184828001554391421802143434140693467081832615461297949215149441000891365541836185773620306794397568001267059187097421349681645649629280370584968145849989614065757116628895653973049691941213507523607489817502813291206998060015310344424241653130022823795945400518535577289270433042821105059647802940195873889981775751564117784055972098296613438125009416927636162334294693093666870803404176180494255606913237292619931430128081337391041256865998676878916399204658708956281159008826320269731766869533061399001657986157187635097681322513857546579641437718921233108667172169292648153157930259977844000526406014588093014287769756414953087789636421691445182936053981588753513091483345775235198718335612871747018886892068151789639561576576424815063601643366273937420511419583416725486820588739223266429615540953226760605926833726958916516468021510761405256689450335399553536819853223214315005897698424788849281108113789297740339554760268011195514596154178832565225545617351411207126354421132322726305070705405208082393397513377348607819086834864858034478680473935393562562848417566929755347526695447178855696242218047596540119410657669546390276591057523113921084340337576601145205487907862519847555054360984822997240324718968432363343912256171216934625834989843701328503353012632045716352912049666441363844021032065121159399138790355460039880384229241772436968697504547287240073478391919210704929389698364543179299942509125316010330535128065652399431623253940953533059669595968934257055902312556142678775749680197465494561747681486611615306830361663846302525769658670601891462469275948066336299543343182677701419912965991914106023030086847678837482818754169868287392359587885775018408814241501123871223757157285245893896345138210265991485270446646514305798836224955123776342213868891698507812345002986931535274320359564512179538455400870358529807150602737940713000844850976948128954771452737834523250657799289364295398538735092227962217487260006324035273889988691083788288418914439236697729975864168320033064663821804585693410958447598417339491252835331801536154038595126639999397406362157586180379829572137731599847920861946392018387569636480429962583273289486872834448374825443100658429365718066335292390609632379285556445359476116086766212013619376407569244128338180205939458469731065457452227199526392017212274569739396469672415034645223665678917754836384033667622588714079088436025620023651396601065783667094201706433269975367295952826924385724906050406814488073196911622739050099219863361894547182359181514885510763222187117269800758582593525110594009854995178644836663018341821771657073358925594499111402376865489032044336859127870105532189576789270502153673641680849078863515024328492123302626463167956775541676297581981573385782670843478394322881065379301344714132151598038626191799683991747452648004197356309537310504249147878761838675619727488754683911917754062784237582557256857585418175663720794146935249197615031312733666526562016961875986191101620143147804457844033948204319327937296013286237572831396058243696765053834920006741813498475400621240901909140809111125072124885230131340591534997312222693643991526086947780381952770451521107774489955703855208466577934362663718083889044358635323188279249053128756859206229186665983980821569528160793280608538982125981684685540001144283405571487114468505553214915960658690286970728811924376566911465956739636949018194524396389026448809593346808492126727227855483806571893697808368808514360515179109617185319489017226250905606458985867971418758042111016938088081841138205094262831172491935263675457439459467313783166734831714529015274540103478153481214673236434612536090804847160481106684486430879373208567963368292170791718752616033326977020146898377944096140655070535904806439307437001047762926805323430242921900651223122806796797670662592731564276546301312210501360796052210212481093329432410809267103423436048493315288855073007883056032984552638966546839739171911098552887070389077398717963056600137985355069792964624129334435664475273339363512710619916368806443022112722616512441520373223676469431096323888205303357783677731335203739217075335305466401825889070880995862837439197314850476127278359988169046532803221276084819422478924101034389088313891482998072759566072919745466265928036033326051992642321782806546607480437794868902942337852034855615579909410703383810489519855251092366043933319183609867092192313257391788858287695393665444039718715777582758795656709461071865271575414680496150281951071706286450618776050075597083478747674077642090856888550494302374385299489140949271642312613669606213641866075185410883810610077095270130254120847431903436254806879558183722271062669405098216794435145734685359430427930136899744415587651470109455870527401446412722490469320873036915880035942636648403701886997954700350269122048147840562992123121233361390954124650585968644400369059029070805726926944761908530059595247794161593552468673234184118042383421270632306209280306117157661787819679579047325576178457909042121830562351251403761161599815918518043986231922694852959506761367062843165856313638166167688209407409960366846665577593876873307214556996619763216715835193496604374024411199730157352722172424234215920604744454335140857316769813874838886807715798570592287101450708723441948872737730689219985794491074039590551238594587480469770734911179189201854989392878329525849065279368598093191032145845578147871419157404801125028636322722330843521268279094701229695045189606770728387917651193153493049677417815611210330913781476494695240537824684809597655270249528478911312090977830568779966027932638614670904638526726009574447032132844702718432349835928331529322568565090572039401379578592388684439511233053267863012759922603485112186801463005457442702858275299722892373230818732534833154119079609386614331999982852470982546808460974683265014900270506016273017991466150658842176863252968473886137232772429407389221214226796109491942375356181733667039921087858870985851704818871422592924464731791516331668060620879164221390476797675969282169084696470021687121756062010599969062454804859466667981751435471374365398075233750905207169542043053381996242441555185221140020267943979683995972558779478014385184722546086385128406340794307714212473632551151246620461033298950071242304050949632225096304644595108556672974547809758553277738894789935558855835690730677274921456528700887912701608882499381568916354157192071461112232268375625440704556073145097695366725436129488845031840453874110372842735315784287506624807724248559285855399766520379560353894800390011763082358765164161888529201205592339991969999199990078785586193369867031213879689851724999322925604491039913977167197386513720958212556125881810042128562996283325416875852098860241684426820290687470022879816963858498502812057121517776652181211896720748958123001930452035517648230817005736703700567519919076739054452458674959614781524697958666803427598388299162253845136841748814031063407030899748397685555063235109123151912646565002059478489363716136015611473934021562346871083730868012910768286526508911932831885188769458476669391800940355241049067553728828902082186119787456941276095797613916924742298434056488974363458657660504601526014744774795142452583825880703559721828255922818523964081600181831088286600528750918530099069075629173014383419006588469247227358188802958713684731825947837186048213499676101449626246533584159316893296670279952114859204009508842157254509557513950647001618138960327680857254687612669559191048736168526073112428853390088780496490542538993648578638424577598809772977351326272308712617491496047286338506802728521558685957569550370591705653407551733406102529933298586995418419777090153756774662751626267215971223791172106927613458194928864823692079100154128825004757461291449188217782272