4459049444103663645041446151827263277221632009363968002728811648965787951151198484395668550614410989784899919767297853709761102201179559550436256941312288499720838893859892528112353571421393477266641531883605840197230379727443107360449800384394128166048783103830984965904434846763377156466840948435925378763430867582238823817750243880666019096855078950241926951330306018017602200096121213918142172883685455776776388519811725033221699235812590139981962044648971140164655805828826913127692489593600076656148931622935704943903374371046761564727921501006397634062276942008571274324424054727234451045355202429862204710193916351566191721064040260742861152797943563635732136153237413529798493849102776999615938789132012961245265533133094598476380691887911538192405815365112851810099780934743994585112733928109118187171656056414936200502313234142960026721372875496546777101525811923596723010659214982792855347539998561972038069558728014558201191058255469366312195096441271491696412068005637856365000137286446098394195669354091591505333978587316836403348747896057681988747489172812147021811527286374259007925216530233314466295833258159951473126149581937657130455371276413726340398491266979025653780432815459489339565253266721090143324860818842708324740322422546978355446221401334709731984238825761205938088211782656854278061648878462270002270446121549456520307243471571708853465610655218349073411678758633989551517149973881233390275139537582644459357746869209226830794543817252298962558479402186265629000735055841097944995104730293193277872366476271760271644773183401199425073790866994069446855205324267874143230920327261947477009535212637060153196922017854555508120494190216635227539314870320233282702823496918761693180112236665945127567168045215623644978645139642408125029550013488876730353318558470973828930378166740775117963700808190084122038613791202908289360189288600904875144265465393320338267137127504118645291720163297023736458119631495025107214544246510265087040190692112934498812474591109804914984206400949721078537748628129618049799784667774627392265087049853722701167844307147363872677563946116232027458172809296564210505127750052898615996826572904965587262267557418908681248539935484200537292033834693727680674222653607337630014484766535593916281642385049140599065719278570108263491006911070977548476323333169519619311419417271028761094411462434376518460187390266476827064308745306153162901038675367064595370900525942143346113749456905542533696180404738349713769369814177436045196569404486853789661088831546055712653191886154121220113367973544810129308023435668689015713067558571502305659115984985466763518475626856412334832321867544806743305090732965358681868522012686027626699986521480577329530809501263933921584723770513476556417544937230498961248399647392034798192915964861985825889518711191000202799275364856334386168378489409688516143538171609315153901842711672286549456517459064364559831998227881827589224230677132016216038827900668591014172895106728431313014070839030448638158820673804105513607601656520335228295675086648018879044796730253082640158823634512426996570695004268283165539080223823570540040477306613276175297689937982997044874446773490920789782581771485963317095334427506474632800958455887596129672323961334615610555044893416473705091134596057103717207548185566065189648354075447167822741297994512487312719364170862036165955316555386568504911008202928514055701240997757149349170372224739210444434110824769787724047521453598031552535011090862367119264623437682946458657633860572508971214083278823789452749807058945077576803695964909284164969853461118799168664154173599996872218329209126092407915274263950181024955967566717518036562858976179674161928609350264811107994611578095187958884900492503203764821721330125914315454614044311704976000113605146682053558999169567278289550065724929375274191148965793749855438820868486905020816496771756299172269008798201393032619785414422649659428359488781052920461904278144086922861649744047084285702627035728914089063567276795276538231804606104010466294974491054978168629240751708428825265470867684547471447627460352989426413271635382537299046072260113854182256884147866871478605727002521756345859546223371241714415777943587163028741178292473825302197556273675450567487634017657977723350618253200049712223089886559984055881202317288411810798453352857346576708427378450439275510896630288858701438273217244706886449568354224367295616340721419063010855387724543005730812953869261247775557011312996977273550586601389844645787086674391757705476515400865443242809349425296833484035021566980171105157677250609102615861460578689104962698758769030517763711670590097256131008902054820102370329338064777877778073456577704737770686154831618416861519389763530608213707869710307568496473727887619089776648789535385032304083855853830405373327866369509018493988362412949372169705766777517915841093287225532412088655317108683882101924578829028984425236004493713916374156159057500024635174456847575090616521371383856364819403261761833496523662047684166016443629802251804270475144651263907270151476566984021645000126517244350408154853265329930052704438974014930416742375378374644198985497980922696834361298753162061510208301561154590629595802119260291122279495844816865356667594623845173012697078765201968727190574091402762469335866052824644691001241517763797383988171636095205330582259538267666583646356887420578794758584341999264999588231389168634492927027944343302225364271144694997699394838278401047575680159548218258632550490604451920035990811746619865814975311513516115297371032919400998539691952563193821024326277277120080175432841233346778396123835843961404699713147724663276559044430570939911225907364781346340784741835827959540376745880515684068242835530584521296884846305711646820373321783903582076717288442134162595663063412620201930875198614864330747088341472575552172933429862937645580727975431758942294270574239797869667101286071200728875209179966922633851468599561449979997893585758034270139096131039038727076541454882995995518722625407204969015503793393954827080630451958859410799039324806614678724919705746715728660041712270052443313888550022999094175492508742183572328320620529947487737511730187320163225287271020794456639648481407730368086298268703367231180220903939848477294164501224332455456840834771501918468590034270815400483960110212159908001438520070129415527658864854665719561678681632185951847223780251217374242305624129303036404430552380814045618130160473124567622861942357919732748895207664427713807143934818092971501377710581872696080472381579629856638687774943642799927085948834598356034529894163056864459242691436149692581998304980436350520774398358516716646045099624787854293129980652217922521494972658177599488543875577730880288553361020069823201869633622750505942054151044465551515887053114708913429624060526787265070392762663015978384447015842340489666822233721569013825309644682659342565948104016498939893262537461628122932433082975865292445291354176379623931229815434689108344752499462865988979413971892636102352298574073860712110390563174319549496894271352573603650968309363202881309435692052427414354281511800931975444650992744179608760940943031585050040215733793679664758061219714829950423793150027592309420402994889921391707819569809752792091480382512693375322202287467766905943195464702334555783529295986570890446926159605183546565164711801855447162123742106753260732812008543369672046256932368432623924789025082287913616853696868251630542141360162523209568154080243207512659775927258204020538553983734900877469294015528571437725099589577323243745397145298960579428386018442826356161790596643686425037981164809426596555110579221735423630011054614360881939851035677041143349710246234328314517075789894228199124747280011463161749638050960972356174186322749814887793799887023741259992266158636305684673476850985975191817671311880347795371379966586767434565754898578106243240899566200766342721678599113537627683204281925197365114126489242000331860952472108620133781716017150336322670890763876145326928733766409767756832119834476078942229979946621205527401948555449672579563135356808558643599044001268125538174754510484834748159376298752669045506545039403328366986861128132692347850701133069668244467271430775450430654950927842398115268236881835991396498173302214740674253446045185724642983204689746272516111739211776974295763738355617229302233401008538105488314875608548771112222185096544476964525379256478601910429174611217769297122860730932984992354485251271993270254347545035260619245363462880915350004617134206120767003292384919920481105626249315026455683175177116336898513454956602160588095707340039881127622382599548457028762865854066738067317372127929706082668074748644376014226919999697964761236090538149562263162122918495519119262187143360787000292131792614631859573900089789819022101462826012979370478356348241561707090692999837875711455289335406206375575558246727862380314955585113760226151723519858999385844465732864489552904880779617292648121408856811102591569531351525347588373964175435691545670723357106943230757391850014582664990701395729705544620722170437836907147710691255617799007051834434249010080105677456457162246799214115224234701447082798923502524946468882352596205475378728970464011909144494114662209072870917429519434973495962182189467468100061015403852348566875822568389485696147423767513291773930868717376991733000861291369763740621358058121532519748985952236208433248151315577551459945179809742176082214771527672667284174049356054375852905772939767275689525230668243444021325291019587440963020944299701834453564513267264667652181052245781047598824651017773982198322991005754647012114991390510342642742218773584706106335496431795060292170428809510153603346526123153360313203155160530965627230645972013333659275338425987711885473684028494311944887486267346884252754503035139618356072717495820096556950463434270978159899471480136721778011549636451340288436449122290002266120866900039873528530850860096719705305408496758602688764874556436976517457132992160937425970613210972627431630947941793290352683771943786859944749818147273441818913281977871345237151979213395186515603491526059764951883213732483053493545150137523701132406654069409763279382144415538879445851892768195034348780343121166651840017837440884753797119326092176278061706884360649461494003211848655825404940904940080590812907872355806300300895804953045235023259840470410590181587982416018344338376427587696854543884496231664592134993752338892171511234300760983483758091970197359473803989988336601411609628453301691080088811472623884756602932002211319201458621000485145349649971002023168031141190704248213200301614921825949158139663485805936097599672176192015071420900494003853820048668969467609700749150535818922888685532392262247263327919711090868421651988213949372064935135122074130328149444471777171785297404918940865819267335152221751501003998984566582226832165241401511801609156815147721038562702854044214130811325007201067238524928450873954086587318414248000493349336621129888519360885685735169002665887766527554642111784201111488966733495151615836005425647895781465704320482975576129684473942098669091140337894506475823218427284293308431121672320912234186804224664417620798030022356764455978335786549518422534760447982470313881446408340593070115803051182471626266101150468579050466575823095622332448494241257394951544843416649984834268484123528772167508173161544970819231694561888548455772937425417440609066245009945522815558009854824831555066960413795251061047439912078574171222692117223428161052359117634767026247970312138234579581245721424149946978191915372320555027279784778366285387824056112714542520998835453091873289900172627879979853309718996225215233506384281267508479368990412045405034463689340197024924975280821324860139164183996488886404586629016139146564864413391042491163075688593159636187427522872988285754603928992501343106383572401986347740639890034345083341582681316090053943946481989323572840972681686081485034132174522717815073132841989593906223776947738236650944032091392014482086850783359343857156295507045244939908343378653369099659353988371372106543309746755611656055892030351905345220895457522228717021056146671203292748490723604406502126894924344628478551811361012235914316851213161916008144346679161593278309715917527441876533459509837777759341003858945699934995989656432367567842646215209708397263906242998683958689210180020756057671961739135993814833935910625492689763776266548031325827890439798674042768323227359932721765735602106373215638373377540727300871082719041604432879634607348425633805819989433611684145889731295676157056009461539044533406636294809515215162315310873124897516997958470096228860848250649491080876723723446322416232397337446534106579823566708431671405140703113761754000781525792832447427739115281692770832302595830582355267896955133216557717291259585012891497010332988759489515564075254494195238527393241203759156782222642175927757082202587503272495659967469235043264422272699848314301047061575891244561721606547077182989036525750106379440005802621819713475051061708753754244507688660908503610881756031465916784651751502973051137740996588167622797958156452675359358007823685865651466012289715750551343602298754890502730712287243378739958833323474657728946770107971877761093431906678573140250048236903012466557224171496411526440131442789444167574723475537272295430618653169827209647100938167701772638945928658613423417333003170443348830605476819261994294612666090874944492173199299628180357066154548098205515545407316451158873227127958509164614346982107984217030735586593954498197307195627330413061621927377286926736398032083380542745583211814587117010229557512896445766957306018819932898549738473049734474186968952131996979826121195642060756551765965562454177287741958923688865352809154661390064260053421308834125040507646742179284527657541954468419283858175094556212977063409351270566374984439061358064415341578525262661004910056963304949096959476742843344350046376870770465413087372607142156794471559506148547374545359575254691847807411365093457982940565935119800551688288523222526672175687667712880708561994157715022590367138327497353443958639132491428231074714559993298051974114366280398870235124454369467989315034173961984407942389325023965569987373472912617955888390796253141989236438790495084823993528933131055708688637235618007369153466572153911884507179970706612059616931223401862689586556228524496189212552739907856511243096545154175331615505391943167477131656164798869319958043350108911087703173969891896791136147039248918335631621700380493118911836637461034296467405555876667851414260373893530280836314970766807224361740094022115847244311991714150225334737958533267798887969374407940414119073399179958754792232926078480497737744640526995128421128067117980765139282881304256468375097886852475494683823258895723332020706953593952334659549122465778848443892198321897742765902579364208688807740829604970471629655075934724598581552940997059025532035408968826971266265071073527730381277059656873500018216669342381408214189877228239150717642980031953371368180913829990765953067153490627445536929818985480887602952014769312014906805353432102397508084926228729409934388598838599307899522494334238676536319268108998940190624048915678200136057946741850923338120797618631346131805991083316239218989743987501781271489721445376164149538398476604742615869397003428472202159719183455931971672024872103318399218653257455513725213523865694525481817552114496918361657117579118399054266715417243409120978899629535062633274908349261259038001064570843161652586402538431342458915990316471629360623467691846738337369916089016088325085270943776503404103014712655163780785162813153664975347602229608786292484899156543088759071942810430788168173738037812720924206359328245052425339021303406926551594429924277700712852292895541700242135553334315601930119774845879183748072403074167279156631128146411318569966372090915689702516258380146042770980082541521772498227342956224223321686748826166099723029642174417676240133840459432835799917458215840963248294237520090091746668252248673593927689689798872539364688556815208976845814601955891350206897418205999471941147636861981570312142732780874089752348437694736940124492470978844089923792166850872312569657532940843112438013100432698653307601696017250061482525794650990760930531257263412665244600700776860813049776127384818379459426113105509477089828219147082935646067517555264256077991690993468065726572009424122821091180427334816564775617130312421530682325806453930402215347589743802044625271574625846370039013394509961589646119693231345246686136032281256968827151385819587191804123359945828543671262110930010523958852435299567783904098199252548434677297144912212721541567711654022841566957289462616872544700212497544149968914176863028499410769514938835726144720032982834800861255149611326809812100484875851086601572705396277597646023519718378536707336964624498090352323261014794438125598937837972115431643112566478028821605303614167321743909646459242403943205721464638938893538463713018439911057511414293657504875286020911127989020550915765152770483484697495307452444010536803941299769508149884139631795376671801887738643632155119288816484564642426390653868470308299937394769002632608084932963892786515091092256426225728025404673334844043279911544126038579046370864269696588642155858716610357344860720488252468043915587512357734816855770926831123771432768442824519087080764886154307673428611072070888965343068499166509370487795874760204501451367028965004883360837868319464601313219710108535528305136083553694915987907861313254778487832291692281082878900335712660344564633962061358149183764920055411984370587712527546812315411963161599657429682436028369901008314563438271149493096932923123964411865783807847256850142455852394580059349124840535549795380510969964909921306360915994422584670577067969190836838327860128585543240046056030723555342354202866181195791305387633277403833119828938518648286050377128501822805708650424243949086798649832022502468400934329237817772756968228475215318741665456134319916839786207849713980436049481482165043664458420729862477425573790295662017950932919166909457826955412623319402694510201156849535087349780621991452573698382336944689557620729874122492330674269727683345428305828177301479895778537861303244736544375512402089832529760185558212650202442751735997973981537369634654909274348848645943197923886252742660104999853357766469847563738004025524409735512158032899263073576028468442093219023212239536984596343197497719611942266120819268802221961742604809125747829745536858054138409980803487260135798384180503453342333671498402081810329389725160403760819650958040182021094500540827908874960874883095295655600792483271678656135544064539190279518946103979692147644007917044996880490898758072847247049743243831881960846654838653367332767040239326400066459215651385661466599421062179724756211450926163712665862089952437058203395012383649226434430783489319649240589853886530083051490332306321370265654317315720970013243876014041617048780362350451876164866270441146924950296241429045522150294409092598628242394309951177296746646896658473712253149366086650314904670428790025339265873539571071539671451453987914401854712929182049285430839520971167638831749953972425508561668774438321495391798941491348414382725658707337416300450685426855037693473217058698743802454130644413761192998767631022267771846287563672962748412614941619893421187555841016867039523695574817925780264466053866718077534025728396312869564850421329083585067997539825772267209432441890306196950833401737467401755835875594289372623797433284369943431990419457719198842160506501945044196131803712606813974624818323732456536918188870267630012954328573237829747634751514526721254011434127191864330482945517732143386708518604138287481933617921250830782552066984733937298080216209278433740349812105935744866486414267642676568888472046523172713130994262828607554859502819091415415931123093759234285576586637189672895194579403832389038701519487766286634675968107111981133182859577240708295106917016220648833891515595425936637349062136929309550010662166729553460773475416362363430646218174520597935576102349782746378296648607491048669903872057794624288058898903869759147443123695013928708609985961975620033402903396276146035531729291294545836176894408112775847767897351834451131582303670155932621357440996100358599956072566838974718818438464323219926273856653035917760616049470472090386052465957633694309257394693631236572078741101542577216676039263811118092203468616347904507523815937846167404366900690051804296789473180931378968038043224643322279698782829626529333666020463691550439622694247170546159296555610754726985409227371986905561032108670279829842579777478034137458226244136110378245092995419255077702125736874609218408049965572243555038715186107957852858306630986599361989599294080265196869868417454543403433941977487173050901746201642996280477126933349339414134399598116154976569993837778291621570492008405052042435212032204462401602452068273416038241571918258329674971708159853688845047863605662050231047033492276870567837493709822927730170308086142825574944827129892910050868572765322817309021011302318394251538060352183095296427768598913176982918226536165708475324116424022324147800416096944476988621033275690371422021725173861624738155724762804117389906283456829745218784974395124125854199882856387256653193605118603112001386925741306715086698468880180218910494525207815475322100219231133272734365046593126346468392415743017443057607029664301141492976378013318189881847278492531838465377709527515799427277520604450997768621372842895622374435880989655518645830119681819362840938804465329812924892084910205399289635168159442832140642763203131195712537572765970044211541865085656800657833431435957012209717272963928712065218804615835816534830133004211742623094588169713207210510042126489888346152134554285337342654202181015631854310738362106371702010222886972403477314525152332544676955652892240981433959282547914609264454779867911306335580381752778214691678379510143702730915182004474542489430455825008099618919457811069002148621121031092993839521637637952715837941151340734786859623318680164968074218382761446408749608614001918330269445589220105166938339530364391236894817837444037870724860209433013594288022425213385772702745156415943746999510949426797972497148642017717679664616386074223037801113985652619080619217630043834946345810172070141172836941224728353844862070094201595289312784620914491608617147297815857026588589039190961675495186761574123972975885881048698116893040452850047536024129088800589883928213218961673095094985933921224145567363421830430938432725947451917744096279223317150432926662763538947675608039744787980647923387171949509312287766564528220658366561412343672358905367290365292958000244602837738275094020650846656670141435208035534047002187752320434587008901465969769078754986030488298089235721698606571970573521451269182755825795442540608961106222240526108688123487558344464197322474095953876115970715161671313551060555942654242323839096137493599655149414939162455355079828188043658500093900255791399371189093359209209600725304544471590499735765696657630261716163213262246712381047710837009615047373697368506701482566276138743480749476336007155402029743527865940898521232947597790664026713307386249462667316186152665336676415039076342074783408764298866407901918543850239570446966752392193284149425548506540237812152361790204157601562116239021236573742773288959115327051053187734009386605501412054759855263946457485155605747952427413939324979618223794379164316167460493891852785155592409840567313452741937205721271522417463195540715919730312449691833689999453525126190121375334528886886731194706316439566100553432020694813284926569426136291535737807289617000666618222841004688479298169960936697520705915384221141967954957527379350942580902027223919404267994930024273364576309690640167867350363890127675205175239345032767894183295063593111635660273449229647967463722133307963980335258212919765147361791497886919444376578444058895975024802494448975532387883763260762143492837724387625404781007083308647931603041804445823024732172936729880294485820313726199416610382361491930412554826446487148187424663856808163556290948752671323889165855662927557541317685817195112697254456201966008876358077688858683138759946657434170978736622491804780775340194601699462125474554023191635744104364211534071536039348411986406933365418825979672507458657297981227768650258115476121086816505637304279394106643365574255805378119537476986551987544960441088990954601299945044898384439537427412872002097501990738271135877629917218417178378352270483070842733555307124051987114163461545828274704426922011822249695740232150630172865076159484343928941267230347624132848797132524329455178103966479764644357510943898415335622370256710146807992281032665238466491162187877667896999266880637386493711498255044634660248302030689050100036530904470404335539597593613627380381828868301855714464736108836974156943873059520077550170053751266960258653516524279296202677704490515371723385703733464632412851813451624962543917353717968244335780843349503994620002708622056534618943803203776776956818124787249044435755022600306988890278093908341826429699720428308336236636461553296266249292123956680254991056486113837766978274933068458563201923206083780608102418364110440643973671959020831182918430485549846114310312405614816759807452337058589521862423815491471116459164023075152304786335473595240257669067683823301935583833367483159156815108438631289673910758073099771291044917136094495461379678655785899380194804243790927895650228717745865245760149132811387309281966542077543558561753981622641747401719463829686861150312577651391563410892761447662694942617857003355334610755521890285456232932368801363349991080109654387571818798825169059267278244682340531300193700616642470295753098041171290661633297544673148547351479508665738068712179494348074221181048511428200418467802719132350464316559389331178958139153389325867413441384491297101026454397873524869007456686496508244673461724201112857525164825749107543725256367653305922404988999653026641388043483976117605405360773338567372610018639490940477544888735473644646410450554501366844618266520085736772828288425000572498140159622390573402244754711961875880753082040480615090562768845434509808112250221830887164949592953944755970002285274080585535730124590097198416944453411064538650100119929761466901253369823788708710712699746437663909892160931813884144128762528819898004108299577091414390642424303204615434392192243772736089429840212755295405639907281880722717738914534185649640378557530811695596050469034909946891555537796246841998992392296876031694364089674774664893122700413572008507464941317707119390431798099949696191233013825865809988888773742352585896278864445343221109474719968457185961416950373593441912819765473070111716844204558749931907454751873055639160525499392483228603891196660676638277117465788558948057723891464382104840319264168974647937074512823217258275682579044837645006389600336253722979983477132732461421564180462650658096819083329462619127173349305214995804136183455368186510551082472062476185530067975536582780038234582291754850558002760938041875324554629015160060237230135322955310773685101108231965079511807439416885395516349536044905186829771469009650284238842333851434412568568433552086870104589733174431288131587785472493942815133676805618777455093342636818431708488940827573172406779361205385223128100967274525192138358896319721542539366819338551397276917880034398234916840606835563164953957397210711395465049696912407793532254225364910524484086336016360685008545036088537045679370916974585439933541404109776604606203751305299553793214181841211841227458988943213544953138269454676421229014435890395609535470838480602613057636665236189736820668739990305069736350968842524691464364494001974609606580742101257793133634731102162721796017142911335798172392508871051652367569792262170309560447543618945701671897115146192147992263067537795885596110720034824050357110980468028649622726119514659371479416219183155328039991357395432473105013438960864863999738281439849451794691788264664538356509584529608178346162638182928588536989950767601218581490682441394092988964725956715954022377406906104990473969630136648976626316926426573879833957521419071702305048795183167452214466363444774288068676982638959496032386854283199956654828713753366604380718138023789271042428755315843925748541920947052394160701296689163928110105910240767737956525431833645666257372359022718470024107572139764592827720001859952373120444320789062845846021917254567612044122029303897490692317874635839342555486875524583725502975568493759208885347806278729926473323799619508033823440213115863105574446396200692947078490076396844388028759729013721660678308993332234110182094476543610540340683907328437747184849110165209377768500444128937411332459989817693543688000994635779014002094753017475286375738316217727026492894531169706379201833505207956236690707787314335519869390186819478559227068401053939978087668516461393090940156450447246013975511651051056161716851686387684136391597602219490086144773541054694744504736776774399877121227796170521005772350890877590623302010172283751096076064814886126428436764040249957553045423145887731317821946931697091643958547310451234428011181891965361116857902126568370589779875401523118908111778615764731729369422843633555623494070444617543595789042407060310717862323088338916911162968000072868001409342143835052258159167353254304239553937542767673590225641071505450844608874631091114788886037583577948725299408519988876570239587381164793633495483270828951919658875244607056595822915701893868746270731437196778079640730017981519682736455123030095078189878039998261816439843842350168155958957774966510594889114131956552347125611372332810732246431196331144616853186378341576210329062277649224632370104362093026932259913846200537558095294696290515516991521585331140679049778720371061123372905020087092079951988195207645836438447256454450559468088752236889723459105540505552351226550148021466477921982547772895451565377414151854043207974164619766393145551746141461159665036012642966422696200347562439933544819105857016747882538771765020401312997709484162315292469961002144344115153579700230576572773988422934440897778801869416783182934228672652430320406357036344637060927193446478429165968503067873966685030677520546033993300098384953557525378332046336666676404909364026554398692226992669210611647050715255015248837104125296361176147772384819692413836456092119824601839320280532815561161382265726819851970034316962089217444017609694892995327913122053898200061930319609132834247452832662669752894854778051476121405671837812002488965860918630871348422204514762559046137901089213066386738104460364088878987808115743426337884920429206195886708283635369157549692523233721402330693120136891850102436708859082152564678268353364607278163072387534002928763000460287094301639493893086963363310339138579643682061370066303734778692550424792999127134864138616476721774153442465188665079930587150327742097343861728235139288903946711021755132304138751770561965547749925439660183958025082279733408490943910929324137745062936386126121522615547060844340644282995617769031586293377702877205495956733736995514951732910740380886569843532094589752054028167146792786130349897763068471387002682950573517597374681438667467636822989240090827295438304041815498687511621614343987717222403052811573736807341630311143394699980138511102936199131355694064952076827047241850774800479875271578151856680766844324371359886034950036704880464807334570469163558662232710767257981448594400766522755027003729528672421962048691976579289662514371623710924894982639558524775213475857850339737901967719197718056631426450333033229901820592407071213859892206628619791751092809920316305625297059929104204485487428159711231046948969380838477129034916130245849736774768605327221722446470965939517083843376109281536173279773734442737175886714967575893871144699862589067639125982572950075534420679686450373871128414422975327495454090037414537479911119652491037447450291744492494605670810913768413432507057206666224216317784525869129825555122844276807675137613536518074696881309990668171943396958865225903143033109926110540145021654154469872192195706851976488644059596483792001582278366014888393243991271572730058895596985714149539666723997092981431139611126079945528917627916159272233446054059601403175977583510843298894399250490718306064316391710609049965914086917523055694876836840747338847449191596066543137811995639514358278337934599903685885448409835762595399858849108696131072966432791320215199100979692790986530700933964583594592551820829582653646943391741200456549621689955210804144329440596150023282277798789204737781741356468797914684562592966634818944691460161639086335531195686571040197103276285818462681150808012021832169897388225484509590491603787994983712635174534593533793072861269631994411875224687057354541777730820371558081459254990455522206298326471389434359858993456677206139787815858284270160505263983697575256731660087004154670979339086612285452550360786144241274183844063518864891969683018135653038544805682171268127538352928322176566134441568481135070362195303069782126383222446953980209740147015238976399544139528558532546258872679319263686639484238592227005263294121499153102536485607418035364877926942253416055626467271717294997691916367973445082809980600109978070707405859368549447518529427324495145720766510464225178020853203718291367919066598105017093424705625751552459018929421231673053626192258593504497449572730046408128453213664104859706089194834757592923380891276257865874268733483685013003131756432910436200558917419829232307050252396017072964716608621852657683922533340537908578431517882651944107531695396253197258937292396806560629168783102827721441680361027089905884204487259404563600702401401090510958784635182452422762813912063069938401910165317684866267464870763504795812343111698225061449426886256838072494653486982127170758383067875114579928526849657622461878655177525527389964929692938025981498251704432439922881085997586725651821274527410609717306064737392475592945796857738478184558387624174479958634308155063529367029537085971844375291798140086899843651158232770399478283391080965221346269546576413331671879965488522149193850402736903180177626589703623009159332032441568221989859122523438472675910066899987963985148481328596187284973872668056670419642492110839326714980786443594559708919003035616104183838187643513415425829390001529913732506868200752235275286438420703953649460446760297715459291372677932978922599528300946876003260063251153302364104298885495822828253468709046557087965515097380105552423337083781478029538376387942285528337605853656510347986680919461204065651916668603402060161008238735390492168939379586692803736600140280596499337295854035418079193111271911844573158662103910939251379560655012328295506908091016254100266777010949400191900112838258375952764858708818918039213138976572848223003985777670501915812479654476887285852510570762244491466804593221707058116283407857993674023445526331142861111907696964377712374908122409510710470176514295423923746086948029077185846265818111595194889791798517091628209121280809288267437299099161982995113103132059893522521447635835447767170475365617970014878361906672490448084556343345722668869527766811719174808143625982868711498189251168549363735323510482632440365572337374647270631670933188224872016843217035098266350778591088390975206009619445171148008206145132663363325279896901812643257860136463895323202993175349674351464011391923353553961406463808945456585688914379766916553834738273832491292639606207852246619537920169298561522152847062623687370387316173326631815622895263990039760387720383465938127643043046923051823862109702524299694099691997180566786657819338308707777877585642211977668592433213081768427081212400166926279500909086938637868108115717435395486384977840536447268840684123661200697472435170806780748150427657627465618236217995970886938703466102774507239928525514118088425046213674407300253704225123966461192560901731756037560073479016136482572746822536282399637649262810177442025378907136199953880071088822134662562286805891279277376169472949195424014593711748476092930234244886287747019193040650954977401880518383095904218373478876516705756684993494825763001988549229795464854203796362672871626658538174550980350987154431604260023830386384410418134677838354366649778317858800723180964790136791779600396277259568654034147727805865895522247294060573988761552038628170405225721778177953108312284191242774247415322027438279597917132319743585017220063991840632445676550909410242249638722796930598254345296310635598461640343403228763282823987447383458583923256122551833222976604049807290525248493687909197857262242961024548398756456466142878093290492847786562207944568756555884934129997654874569915890456035538940840605082439431010066760223117201262760014067169275842875186907133300312818534451046334853554267607649820783139334077463718145806670553531944988385132403328809476532995080578307920161503484331995184692740681373499550998322522030500784742870120175175018370584635603187475497405023534371339802373682429078719322676113256236563932184081963805173784010733390784992401698988505974475459788766266506676475325923461906875751488038796443085578914014602178326129008643941509391892263581313936946800105365205385601060191595189770881327947485056153172322931918097139924773378094312654858049958761764132469369891067552357252129395818065001981197842088713036965457354854953072857065836149736371107583989396572388862586569207318177475404062290087335992912654471218758265494592236826017383730952828754203653986669270009382477660436956222621287105205244482258291997520882911731262886225540370569321400691774990188811366393450382523593670170198079116846181220472822190107126034055639248471418701911931754357762225250197239109300404679115891114649769492313353403861782261483847814763095330770157235462500895677153553086063179892338699788255060316715421838727051821799624120262833386560342148330419371894820013451108143367191142170360742753108319223559379493711747722007428269281537564514885060843053896622540704561013402908093398687349503684130331681882781011989614675943357491559747016227416477835439775414570554366988739377161705682224782747274872656683309570048360739013831219574142483430444271345356739850808212560814958475510045729614695417763854240188649754326287656108985360795803678644076795560281079505685165532397705485931060268129787294848188869307801017144966834664159967754695486587392798372839254241026495934692322691429613538062165814407866109368511472736632848339870657378205066114387940234078055121958779376997326021144652458970165032970569302915020585831628745348645602633924437486069132016541405075239622075814411334535280330937551424621113655798242870803907753895257478734213138315406896561850386124098429733665105885442627756478878710794051672260815077843480377149228624892018199607382630768483405378857059968928667830907855195723508314211104970764764550070643994835257468865932319864861935225609234981767350582568955148761332255643720555514860656270147270496060433498049435501128142969009615759098893846396509323619610581057057847121860411353715677725931736421143320361507988456229822996639753185122372061916548420720493379697109447654845490242325364702661481326191576116140483919499666804947656804426030188480439306086480245926379982001949992932530189203896434332632737727020373491322601355788052335008710748188310580715294199423033805989707538586658287696639932323812782445304069987657310204446727906250880297286051783814358931731366345465193899977358784588652898432978497877774500489938703983726924873661439890938822602091374076464820964954947820091291338736472964951456841624733853996870428614119365059112596872172859802674096022537549808496603899870147547250403267247096757047024039893518569995610429194909601115004466322311883925845345206428938475117348537920414048679312115053574309262955906411378300511127584915931137628369406236288401159651144368021868808431160000125081195621434620401255361362484083102775819371421547173210569967288565147085127381009421577474203069674372895634734687845592913329287624814477841319094553854187106868359797581623623088464882603289115195844016378787624012373601613133717118756634496807135405577990262073959522061742556006663452589786082944141325571181847292441419018312837979436654739468712953965797971668511277750607588773169738536693555783458529277054370344107867223791037989806511049174594281003372485183174725930848208736836164313931348821315400230103787403934338562444686126159260648399782216072217675298914931995834703025622954611240132525625209679072544830201436440602275895763761925419439673227297524004670947139680624682904734586996454458262131203762962436885484020575492715845112318651330878281238888059633255486351585563492515403209262697146871030587936198638068085245969656859818602211085991890315812877552543304635743233412553045223979224664028502935287432837469767790156559419612231984278925901770786342383245579667195997487655633367506921488355164653402268731168818511659595002577818144918024916777833882493640432246748541043610404893032306440674248103207569619099393533277235769679999756717716646900228052528586586461133805579260393108351200859405629900467494423833679790876726288289226076428802279148136708437355388095638428745660583264007843381180744697471047195511922707045163238708445659479931123494199715149929864430377370483833353225739631618051099826865258584806389353514420630512109724583964602638990432595556777749298595965229118162312967644318338298794227239145387684348880724543412945668583022880225104176531983277734592905183205716134888086303187646936444765347060459257998306060753498975410216251186975716422498848736287208934053741322064304198962680310204619093135331862371177336478499861760174717903131359183821670666743861233023446572590973041118892178202504958616865963368479258576496657142913690296623460396153793469274575935964626063003718198434361719303809272879279550360114640821752042969256174020166187642625801005301327944447464172947200790900431664368812659077361092061051105361708599855763499608805911032669749699685161511471352943157314298268126743994041286471897628048874697361651065283831020783688465934670846942471854966035393240744201285970127203709413953378342872991599602333713765050397132419619868828062333700215254977219170067949846080451472098595316234240935910618764811111961503127551654256228194585797994144567213388814436256714293093407863585824715169895466896295536322670263635251140787376996550182350476840376490569297997542560796743428465104260280979624980050635978824345761880877840338434498096878313989177155940973817267166754685984891607291298679305112897256844224394014134091932544823559233756196607121521724089462818841117837407110362445943999171966178961601422469703397686604800428215486628974855285053724104256188626289176662281796069580005723596125143709028197804762762335794306911291294114995361548871440871573603823344734370434211456544701171564898372709842374520185555673829209146316301639181190756323605636540182822995804024199721082556200229502701391803212185394649260392343523653733165483923388314344679931397771097635037376107642009903142820939793396124734509709700015207300379609311795245116187288719549587548579759273885403222003058016771529594421800350672982398299966029978410591637694993222041038640637589639702462961383588691555529277231111468654782141910066619646469580727582061375577583244219856804986635941079626384719230116707295859453650523261733766878458177663608974037354538814592347154921381289782427981762122456171664703921890042831018230575193359730022212227511612446593002438411414736968710881125775185429270412986582454442665133652295222373662220566911277791066286718945302534690292319188294923594499030283742872013922851244604043057085450738949231416641001416811510156220014947199853964015796957973596598992701797184595065660457817476276546626434884391867912794441078623395949428867054755025469577449789383225012717183795231288933901839151753034853132656775678968142067243547023336691279746533448654478722524868427655629382637492930712064550303168631569832672975957154619759066930096079347534129945306282289972981689613376899783314042271179477635597934524502934338665782629383943637199549832276042620993931326699319373257585199452551854986646687524940708227263418594992667225077462532365181433393783059771379026370616125379618096392279407409047008711259111020750987837678573383255480302504670668452219177406832470501851219385231453370121814051002298310358972018355478559054265484226251159360196743508404920578001637852888808583843784187134035208993272163911305674183806310830630058264666896464873253895978941047874331020767154570959446241455243777889955671028014959684739363731419405972075987383252735662035287228725033622350686859425629258070953566928164233829761334269177273529112039552844711944371389106468370684549823205309847076987523461539983966397837821529128881127381279676205088761923846734857685703670390909785978262835320088659926956046924512449633265263129021726321023485729782018635058950122765968216789768969732338134247523019941620596393276500314738481893897950900549866526568932881971250045136190177829485389668765890905419138156839887315382158748738389203118701680322950265130914753773185965124266461488002093579857165662284600247495296505853838555111340700835574103753349722587099223294387835356722166039287096029349887561106778984688617326029064942609719386284743505247950856241501482320949413873397192178702863001233338280577906715033814000400624968887844535217810101612652715211199974338959631751813088360891901909332137190266457766693682873963807010829956591378938296573870150961944939589716610449097475490487671175124106767701710558007156814031544054631311593658458263955369513929483525775030985802298734686078026478956459547028347121599107919657552107152965790503652573364220986296002298878929294441878201309928629859746639558903181011242134097083967620575376794895020233743442748500557195764144756770154599773523688398964389764442457817885147405345131579556090246037716221061696110277223823847550221954050210922959781163458103136321737869952157126232678599913545729515410636448062330289171436008050592665219126450488496549159055115372803815561509459014929934445983163555111362317218611504059557974220841978209031992053568524211744728925746759849055311264695879242034619384269274715932302889803017589417943861332825166354235647495347041427551744360995429993633268962015871045482582024013387703590701399494932280493905233914373354583422826144284574008400847282630082274889318866377127102920194192429918850646374086807009019439782774669633360769450150162015093361727691027104149255261573082418581351563273797713249497705047905141297525894675999949629224915529649301891258858842714646138681656586775991787662833308012880046694271861049705999320231429523183510797991871470413437579521939391460150247395436879536488682611758864888628171768711360238490675452931894611787659796829678735280574654025194960840422499263891949404807426922006059398224514718658149882584885491420253714186941865844092470029162297578086681877352862010112029349006815584772417794995906218243244936495962103982372872594418833237976572793191438625975317291624312969149468602574171612431594925222137184054202619780024283686208522331736167439418411949307937889113287903756797549633664367145057486186461131985958214651465071710329075298387883704270316923094137044663502280661189121713113636330897257486542751663744156419153133858606260436502887392944850274560420047191741030769054549576922965079788953067033039494441044340847826712128831135185529733177252045616829702926544007971398114418980673544746391791598637459991799857101575205384434207053042111196817064684113657187992296518727409105573085350069859078620492233144701100645741626534496446770195575686740215388031481136714824471949613735273077226339910402840944905379896204927560552502886870261898888509002758814064352030166256134085985261042459884198105830554053552178272527516025836419574970225433361513364066550192149646669213549601048444100220435499066088333203308252673795749389295993737057498214581861345374204893277972722644003289323951381761198886168423833152194480529796815694210153447853062511573443024694016031485161478720887221533092494108256863010993971693757156406917742339630729027187562278919610385528592565567385042369161022161623572738395024628865871084200463720994833445818704282480811957230239613067558328857095177263096020092398043986761460088804114816915154969358034181299070591983574180686521325843962969019117465984942605748322628815816737584173577837311144316298780464222730088761503717259888757703125499497274434706522410386066488028968795149610273424563179817729526396910872899142608915907679621361952940120144304206796563526763858153176180621151731487830506891706014632795900183232915965554725427890160761770193495992557029562351368434512532972571726539596721958792254418705963136899748410506486602153934420844423397249390948619825219752746288618442372476247230851727901539491235572710434267243326116270119332889160114531366608210937958882170187298752899459371365060959166275905871050905943070586671588206706383499490084382440007266187767495835784883212456566393901688327901589967389535182811212380212913171067806759378560681929941243550657347913950707775967852076331497131923218299976562358566109348051254676496393040285032752686592627184734374779707311586755305677386859397864735576625290830307045621661348822479131661655785599062228462254492305472647115665671804640966406637284458260837394475849936676230959404320314043591185089646360366306739870284644852360235971918649213201229794170416440937138093024345478447865906651644468277570004551306182683348403949776534634090230849117441391686664327781190114208120864994163729152921040162583495471971487769785977182198456706253441599365334831649869704485000444503530164558613609570018629673123587594949701072039141004961274622481885856964177192392789916379517706382988306125354533534162124904533722662385811375728144467857210693859197679717289004540326058127403422280162991801366399005817668900129245435526652392292884540330453378911564139379609887231375311658540697110048018996629856498563418487198203004894467453102968309158977897207787134970290486327332130810630309122520540699221055378360323464377639794753685791229165107543971745714190459039261178788432830014586005150053989107075829113114663273788794192113811493404726283500879658167479760819250722341601688653460218184175100273518678847703059171990417938055417384169930245253352394197903555283709793718344679919328028474902272252624458815716649551499889017332505940722303067922162041052786036530513843150942258563668837540194255530855959185031398281936045461014000596514117357185378982539631141101862273019727365153406360575795871009410382018534975611679149727828879808110073561023190114086879656547468465812914333355863541516161907754335537961306982247398015106971314968664805493728557368888476617103979450909381137863652500161872160116106145359046411761788965182104724439965879421698866663271491864317314802854014800567884033220661493883168579959016795299621688828116423371276287967487349517490211963391428156942691436397137168265604746561256525679308021748674234609366592244811742555739596029580526176390872057202785745348396359066696774070800089653287027762669338016514504602578907719495762796507269629180448239900950536706466192155163108032932028082663209928234741161975168471279545865867681155262469976713841795372858627732369505592274569738266552414198325385845163619593410075317726669207782308770639970988519292969889668898766739626725576505791689656445312995858520088639218487443087629918494356455228250009843252924916866291937469385395280606908409085604798535574003632602293143041512091845392703167437767071376537736911550831257990777574612375158840906090115815982740211449054939039638640231730004025270286679572546310434617628131758877444392647288332794566379455333087517882510443623179717752296604356035286330793000981657987647082796215858928339337503292956764933655141944777711461890096762265621146231719480537727726303629282406130201250314086769499762680930543574699720229805845821090183137584953936058949424916015123447105601094600594437838540153598219879079439588932726670796145977854852706765558830508577282889575051231807363257307265983262219715848038775190920656144571893764359252139659642607322880969246771706010075949210043231238262840010712719214235230563796513707818989161182515039195564115596277066082191342956865312833383010827425645889075662294478817128200043617195193669999337128831651766027737357613603547259142218484087860505277638982618623854792201988038665429228599452748128448646440306959872632687952874628482037068753741915173979157619557860577453727918436724749411367144201947229011864537912953099804224428151052248692483679988979491844769875199958296564563350299484960847356252172738284520540598984079814539747020858200255215114521402956931634619549675207718270321617210474846701768398060998020192823961446026192031938928831840132428673275995198381284067152265418285503192612450589096811038679507068478640886944854435648406457264002976054659134587051902647463874171776242255604410610884521919326504238453024465427515967169002752186921223670223974571387298464772364597964986284731860689436803140699395893512995171130173764189149088667919118725848866233651566464221022944716301297911276433079402615800382922141933160804112053324904933135450643969040451667999380884208743818104108153319019058046466241622443953878110121127921677392564709005482304326538231308138484965875313644086649563603527366852340971346745319376637990626202546534778443985912576375338069223987455399698289547274818615537936771201271090054772153014578372949160398497493970295597054982176193222061811108228787592091219828150367548668581460119418539522338374029995854990912953817869002949342241827316317513995672582877812036228050691453842410669956638842574370349594879110187182845630888326350309897708727435710373362294829850839519492135716744180309782778851813762986557221639770658926711993279477022745918986951844525714042989792076578467062157609171675874854051718565272587258265433011496802074920457606431268801103253943240633688359992119999010345649064028396221120442332344378942959351191823946080314658086881176012231324718326458914712401519121344577048881536428800140202114258716410399452195076090011333768640391321377596194793805948224189118351588248958328708203125644556392440375260003874704027681046676820967484594872352765424528296888975724273661896162614067896584382964382648738445716213902651199485824198961816387908209574794633225734531712341032962829399762094668021192437541737020059936246702514734077731815617623617342913164637145919191662425897621812139603417008918084337816679761074945386087989797220012770656754258787496184163996098265331907422301040658175564163990523723466696700866683130656946008370717486066143811135290995595423405244840564846069588677126769110634029175550166124982794471483456869876432458060569739276415751447324068213110276159187728304448181698419830868573581264094449358417269152248196445662071415351193820845069978523180387538064283576550166054917326364018925343701367374089581214840342134679049275903311369580975009223780695513114455681540648149171450519171482837496650614539447592553560619992642307479922866516871127299289453693430322518270857970709628574943286319570497483270251223180574803534592531389707833966275332823176635889027007881277805449721049712301203913702829610254127332203433554956326519581607120853174427883378011673621882695680008441239677478645918197357826926871994952609573064974610302095682772268438486892280752792992550738965819757336565640810119365448245826792426183747839840787221155738417669278653336311389112237811652418446211554285424336560351416658593124289607249682349374426191941254672542367236560498941550754970347502838652219369253309384872806667850715947883708139077554845501286258853531811625632398772223441177052316597660223452330662907125820061711588500956289256547359832948129277137123851887431177151356168195909621007295938056762807514323914886097716200105782972724167459947647318038059628826198515260154919650454369232024634585012127628583539066999191664123724947700559912919508428695017489984754710611903964807676277926915381762823924320701478196988689118384577970402473620530129087008837394091132389652705818727528312141651765993969139711593345186391556632131538452424583928536276322996209463219451800203056674206505126162483339510630935602033783305912260693555528522083396675005597823883238791653952392069569129801189513392467853083289145167057176128457703599898227131758453270982828609958948760574759595822920113073968862648696161011504797808115402298452321038149309789460271812041897139233157088056002039111316405218141556365171771975986128778399114369095512689887476098976805827263163725993981729339226816498114531903403891073907939510160081545645095475572973666628734743998462961409067264521184968432821668864015911637190309705559841008894295896050879800881346321421200730329925912993982126859991022106139031532822121333018908101421135038291573895929230131942194207710540697086679502625710939450132296266064632693855437530476599719445042405765051505358306955937871475626293809969495335931535212360933652933839879312906069581827920286570863851783073680648731423542290276661830148516571444596940279297863057061822580724184788806826512918625817175148656034915597159451213705422047802416908468273128340611163467158409090946774096920092218565370221231226893303906005227183621743866988677917307008521339601786062661529220061861624758718997594861024047053230302878650549209786898293908321362640415570400479158987377100346501553100141198104903630451495146201511536756566057321476515120850902165731397093836973535158134234441024264064357045409014837251705817333830276080521522916741822413157531668266329471663247430671086840906722455392469894547614713497487060306936183162627388850199848645785379097314676314290200294059628165165806274915435555575080043860477057685186729285842341455742789485254762435363947182328902180029555932276812106924257057265368323827044626847539065760497023856148942415009763769345494197573197982224734611988922561071739048837060433904003995141359522437221037080470981270895020073217949042850808996024103616714046831746021111911623134405186691274359052274365538842393801560698134139457893347231470761818987801224260949384008145221413212093125642636675175090523764095395617271445013630130283560969509060798933545808921040306393353250330233688178960165105845171507640664023830736743363947565625399456869143216891227622379931461406182007328018141903240133380430149450293094919019333357795849954809928237729620664000789363259649632465248111277777745681007971835172706527745412297755956644837355625287052504823698194869243088551079884034427887606183018317262379267771223002772481793534251499425292425825002341410763298347289819152635135479510597917751580561587840364911863923714490659715874659695187264666938488454425013479338956683040734682537979570818751647315619793161315112169251036291932404474780921432759775978598791931478857849093368246734694563667804790474484811745329788244501292761719257639803446325149699729995166082855746180712237196178078684293479043752734057877494302161680038042418692007885524064281359453267508367577355918415933078014330180927785521112964457855756190209202070623735031486271747456576507714887151764813430614360018769441829645711202546617043145912866949914486516870531246651143439034925474035613776990565780024028421068461033300090056624737130972179926139479578583246719432430748640254101158007422004947281256020146566672572315525920649875487502158826084316969561536413962712938820529060657503756308704975279051103009175835201931711109736631742153161644274368439650523187361587993068485911765720783192828087776083821413690162241550833642410128411653012039354419503977119221062138539742778120170477289111318631495470647560677725544465507461610157221978045817362718269906077093715913717399026307224125722531812413795524527167980392875038210461840302855571369399676189001058232372657214350380348066067272096223489200746884829626322059359982231252337915407470013318244242475691824516156994995227152586833392575936542231621254970138712151309992557780953079566580451677807707053731727134081749784941622402108581754477876940828313576816137985151598286871963794142834547236841091929517603082597780134958542742934996666965215993016512376640844333999695117617029670817572666090499369980752554422413160336036086022910096241783934341484188796399681780315583986321560079858587456535666115504246402409394143999552119831382817457798737142541507819702831122868538301126381441223193387599876639570783411565787097435185162735783851193359928738481090516899468744864299182066814914975654691465952371390597178679076532091148733971100160888745643306606711595982092119207072646987647329478977186497428135490098863595533420148798530343983093879239792035040829682717116415803827797000505598466738449091672055734435585145991565310310578783257700269874374521162104152920355026153031578931048268673876811424139543691494698425383770362514938983243392761613142410557708291189414743920191515867812592422630672056459468529105897057290453511726461318270181761576396342704986523765682700987034773308588976639916474755743457825255104001674675223798363718500035646047114681113583329791542555110814536094115564806876021286707889242941462918409086789818488177191395532833774682251132971898508738291574841309634757055234094968797944338569422907702226635031910604037994836136807130794207399469963752146850541254224754594430327793017793747863296761220663706576887656030817146713835902382940538204807999604386770360599794847777168967828366933960020009484152979865558384088475577577425931138015671410818665213961713317431332909040022898420816988319062206496490503793645627315157064384933573623902376849571196902330723081344745072667524644334568640049183657155422184658081548312417336692417050279734543798539871504174426121259222686056819806967485927540765688956562254134830588070834801470266922148562945003811904485632659342656413618219601791140603978803079720181913873042166127514405713795804005393698904527379819391660241641170439220782420302241417432696704858881850192222456507351510281776555640750973229989714875894961626190266264586474446823313800972682608235793331886568800280277536707630109443631287078096114968538392312357610749546455076573327267498724496570425071678335668484134006446093146653710643110059572972627237541116487542963079926214586209964185723588785182085706155786772180663012980498706276982560138357423725923973843470179325439274016399991298673921049081525453955694584713671974188086149794080559018580947145554452076046454510521379463178733178385089635196148286222640413721569178042661276104727091032405662670484740878599962671784025691959997472569418305572650163622728617465621662503060336342704086858605177334585981924559730249925895312145694193385841824858741231872086656075304898971456330564641849505112643032939084628774148223283895060373577576048826240173401881387324781539134926551668918196225067445699603106861928729648261868512181052462048131014978805081843052267403718531732220010519793108325176447200473796807868848159091608243973021391071767641567476636451859151291399575230497234898443629534763893750374423146636481843707284674049087430854518166251631460927322230084069510337062136372374007330338845796839536859487624134968002986456149193788637300723210010209955669679948801631613035037168163629687582372546717111624341157520589238575830401223395820946708856780538121162394633216311991777356410222349688042473005195372107749772917875770917328948475696460448639326803905738532370949595639493326917307971734971965914578517950542282070143540647238786538323488616913028473547270159703645994855457859797042769884755020629105640435305110386275741353325235700844485996925652137262605139609794132622225791014741901514485355868121354933034408608850398933410233368862165615476351490284626649086962188640297823962090553127026613931795725508904214360672485157440620102753553074411478717332176138259525870288629876758481699212138090578696469347012951120052366175233192749783495681703808145753376686860749188747927317221797125794471455473258941672494674387856304440987312107274414971319005635180179800121848390788920820494002110001123218148227019002151562874975097419334256968879185341528016525377200726422219228852914826478915646719351682614490691173711613277949885953115654624831112384601406385880202867230713835163523764402990021207030002385901254631071261363483286387525016131604701838064313732371123625249409970163960401775012125598022073061077374314592193416965777074381488226758217437879475952750298346279844676419207145640916036870598483940692512337891893597174234082377436698921611800150867391799037770440333404684700797526605609386421465715274744713565135796624367413994521996378625248818571918669059411600248011535426274376142148089140274175239781409946560784683507524932566444685589136214783033796290546190559007021653121425804434489198244155957022435587078511960989704229714526760329126978175174054577449891578600513210128745150608342232489350312633756620235396130363512547588842127880813443057194555709567442664443434889294004459930997632998433786274193694039923022785985829107724244503917910312591189662672454879320721422454713822798956292789612685837172544837016912632800762031525233588071782383647837914218470993252059127466820514205727564564989195017854447598928591258714103122633429864524326276302173684996269601698051493111751979338738354315574489528930015212146919854296744282135029030652876478453872557075299892706861049796531929275982501591771457562441195297215713064123300446193447557086808389786108538672292537392001682420399009863621941105834135303545685686672944139259733257787132700269827021534459433768446250431567440153206752796062916532685731576692923598877474666320698171329088380640428266732375434252494303132296348165749086620156395825248468002929503412174290829312936773583876737178396815898730923601960347911738568249829703705066252287089152018842825795065671397526224230432216509088695153382044677190234466116024983509848152620339463809421124622973957762024168104485437650012310605482795101011460914779780012083621801312423660661049027128337690870902154511688782684307230999986987202654712691860300023023022720440706288447634664766078471643797777396130903360737444292467737404243857947383357092521867631371705081786414859669811007761899079677755307892758640840627716614582357998678853728712875546217675801601469255628509786241963720311471628553016867845470666939061118371236648235910567524228225346174307962895396342105637459984601032838017546281591055800799159363546457102730980096677756672618973518328602791800468133801162959210053913283363410234624830026958063364783019461594956430543148945371749051097146642386340654558086161176276991656895529584030949555762490190256845397256750844709376616735751345885610396371751799451024509734323894924552637817752865326399722012504960134915691987519148121332692088101603172260021936858982151360271431758985087181866765970116134278453342851679856422020031755283028453648705781333636640726244557393758539108231605260332967412151527380290014274700834020762088141879909900438908091594571870694771661562615406315565023100160548714961233783415071673993000064845342566844196694851150551658143677923508027796182207353529333601494855667337045276011364207677717192669492297825427663094751523243519459778560002769178553706130591547415261272558466221602216276420162699816071928541711033750303310689571178360225306409885916257216163281128251781432410012637469186505627443521765917018372028036687249093355532033734572784688256971971217860063437894172631466064252384170176520300827181327033459797115123885926908726859653009978799212591193794567252128529426206237597706075522358670423365096729478158855418643501553999508171018833729261136587643932883700802796168194308956711004393673664943550379800605377488918375642146592539410581028877668496061275834088030088191078734674371498981490293202111328102660007147046295214644866099819176176891695214846201798498389396004793863494879500679528367206907386762002499459427379206936626365031332582527469297127720383029532776034386032052764546685098951239832360973289465920689188083116190327425843780382341269168589198231973558826965299325241190019832030485278964484427951161162155458407034921470812617833950165711662365758996987259932338345916072319885685274009093336170672380611590168696096906330958015353314573589448158759482487289814156503961806712697546884512504019660956146828097741320782043544401407122704614488621700014369719950673854315754616797799225106192259544976441813583362295705424640604191746938396623852323875340400810094787516279564897284829869951951339181808865255073566443348533676695776663188696042687021875242801479035354214928196998176690880028031676198590300009916576664677470648358117258268259816472940687752588409135961787668316600679444603443456052120997729389457392752107443148460550233272117946122332087302248394327644966661374518826566781611054829316982019470253919697769964356288976178125151542402188175500238125743556171225566784591052176988562928535757303971431646954553419702565041771179323487173539970841198603781998831189997350248332542413781871764882882517641575739070349527694082361522286444917924068011881289515667896530032735241143221350302868658212316699114338751996927113079800132792714147022112804526923813926296468883585896187639232524816546283071339829538202225587979623352650893886830660893351148011356612602080663730719154269161206978238437404877858863390307438135958802553930625512841971624437923814169462435086270368530973776168574421774282900946899897275991759292379807198193873862690189364394522512322142520816076195121660123375607922175156864583096153275502063866173699386734134850177637944330948307236919423808816589373816901731565166009489271830868259849013179785496334351544521347231243550539178702248392845080814038394447455336550390585193174678417962618241897926985494812370122919180904183875574013505832855046954055464842399801161644929434130535182567707687803967460304818871380546217985775162808949321109348402134833410926217102145265200041354738089071702513737264884998024598406314594846219946424813726176926658017591113117750242614222824580381141253675351485646169351800949053289647282330995611547738822738166021740083173634799572355528435047222221638992372229555017951466298510684574711044990402207444073825983431813017517568798533041333932375457769510377156000315458842079625301253380005706847393177385347887013442452032616445763501035824635970215429790434010370484066529026058691570514016153201618361364079849096058469074405666402638036020920625462379819376026280193705898850407645626564266995904284864650790454017674001790290719205770740895297065475645674756687254238318947643290855423808566291724556440115535620263553310049211776310431985458575821262276198365907040239784632125251579298024625329342221795907533780610413975408342675744245098467439580978529363630215649259196849797885748674937059523548457041021810384141645441303658593208410592530955119764894269019440381340693699111187567984995940979013173432454562219918318902099900317661906353685676418218418419440216307042301868510442394135180101842546887974835979118532140250444699388086479067088841165181125695623432089086794688795303416086549992190109788147026666918616371260480500579493106762463235962189238298346295605281528851457675699528362991552181333129275043502455291591757965099402430034395641160320595291801852195108537091118251301820001286496916869669780615745838948067707308984941820991576159054861632462251756949038295811816302476612948013717621441033124855092753958859121993137331653138648914309194107206620464530843717509940859360190863909362447728579464459386396472863809044826773720175114754491788069974456034406523134519959138034932378081432094407869855878671065303101245454995681666153911128658068193738227795862477878991866663582856779549135373160060146812160456034089992530846953968659876911525033923177162857154019906598751354656064771966772174074734610746111818396492170388895279730705326518348987105233012640513694136788522411231755067321373732145824686927041117723455593967182764133725430641313669218605323690104476029084126582514375917377387735438436859517869206897625364147691535121172858888478231868282051105727834020909856670767695890010582265777867843501587246835837995122799585369620779403186670360982161110647619686537945613650648964076141802760424118779044019906313027117384426848715720231122763166877616159743525198111333509826504275881866218737548671022014665092681767389162917785988289656165423500348264556234723642517233776136170906451085468723974797075689397397032230786568866336144713742482186419588244130774488960234583702343392116630707156042166615995129569771444415231845162824313836883760905357971065681974305799478754845381079175744931362941988764249787995812487880027211400386701689379950199987990621762790460638576562582470260322408788735898746392550708834967117086859448213843108288062468170988574418240634945763660816734832789131065028513099456448121504773796803415267576512267079120608988668909536293844170878790851759516317360989374881968748833909851592238226264643730604488888773823146979695050433494843721509991206903862478411860345618878768999599976124975161196758546323212171169782189796915681535178490717924802111190781259303911861832535015327436414639670072158232495007530284935498466463679593843443106235628178014751028088363608929642115032834300413311158519311286508001395825867199214066098126876686725207884604635041741553141809482012801371734248412678093174123324615742925440391669568886208541003587889424464621577466087941152401299232689141209055754459664805024058226131362277843388255736248744576289426753447876601275809774131760712388632410080208899867271348429658412663672793682569296431273149080257624903262529459192310734633769421812249592447366608671045321264456780630875611372139344976003558126290277839076280224612222578480100137911818537559921153410259370383175266110966969074325340377316624150872969555463995439567398961486463750616262552095052881788826462848900526782082597776944826473767658600389597747524129501159425181952081930715477980841956908527622920024105642431425621211073846038141551126470522184206413897400315471683320382500021672951792824371449872801161274331536706099426570558748955172516660341940982539695479364972233800845039028382351808745233456847931435448376502793667190546221924068502339090369636345409122214611572716625752625350900813144616764935508173345981072163477839515908568376711319416622060854715206162090762893744317624609081612328638605885269691463834842903136090860359875845982375759059463063150285173758357584050955992208623642269535460118624610110441203677993957494416378740761806936304193589229670208183269440033774183532455323453371697632636003421874110752008335504377641242594781103279570313874311175290550928148566423555842373481911066059974721473828312640098190296992880262310693524789889608728318607624965934387765744614587328198861257750289965540911460102012908023809938825479460517527829029822213106098536473534296089991874005326025879427770100808898985496938531119062749860941821629268861724936843027013108280343260156338722417729430840669703030146779652904676629604760741144259837803093551123184561635750176159849159405517926372436011039644629644594055748386630331544408971836295701385124798721986337224418048618746358837610809442164615420281165801684445536470687158790729835325494939592149218923703776660202851245204419440332612080656687862997417969803836107306462130817006758444425718428269806119290901687432874445288104194706626727985628815350989700210681354926624297088624712693714782818211883302001973445714096464756587675005316414769231740497862520387888419161547571645685371633662441293219463120385944482655021266496727764186224819258423025252891473250669291772708550852478667715130207137204574339415652529200824944657388835268200776028959931325891539313940870948541446340473063116158453430525480534268316612934640595839991430583919841402705270229713612866814116190241511149161143404790372893412437599703619823274743881061312666325305676669987451830937178345988418985641640385569563270115703555353917081010666523951062543999434725433645612374669866020410353726370735397524991978580532567940687661290953352540398451618303461138358453798042082927088829176399125061430245543835544437354083906512756771235519174627452851251912187865989541569921667853988170499275874729975868935721029837986804481863751248141614716700498089427604089114028299660230280188031802200222624553410544572681595675806938191656098142509868027685276879799964563488749726538397915502572468825273147010673413105665913150942579884585542993204770372688682930928386841130561949086245013317309248822045092286184719221652493417200404014232941423355521760112832872384707002245581033100211405793021492102426975188409521771240552692913155852361211174241366421791082307893120241368782929562731849070859262297323201594551734818826911838067700020280736819301294885069865646658787851432462591979576562127792570356499646995093051607910689846972511585275885180340032000095682944103720208727752865066175644938349711732615491687284801365858792663847019658716545925061647526783168979835616361953460635387065472279253724460555892965493109757974899172518663153449999200275973453470632598914359258279306994249687741901893229254182012712136104979069259582407916127399513123611528543401652443055895746069420583338688854009414094578285127186519388164674515015473391804623274203120587949540097327517089317837150109903858968691352151192876691711602097883753899105224412081152323522310786165076609140358474706068200389096604264278214151522138069197097667083501432848901124030040750426235686729004905027530635610762385944526537027530383347918984223818271934636499428852553452974266183276640389331117472817005521130468122161194216963244054507711767579896906438034359754204986052710700301944747273158679178773055125166360744562988746753530935548164790774231529304070333437082898368436969011051469593836544823650504190092208454304688242725190151560670990835275634568741251376432490490473091565922896021158701051091148558605107397099215086291401515461232742582281203811441592653290323508856085216598743992168497520880776484906665540839146995748737804452943519164157161761246029700245440892808213920107221833814939483562743664067078701984376760618965240517013821601790227803965862386447149521692772794484871358597231056009168445615163651787646370475176093837409915370559214841998516115409149141688733755140340291812452477482550324700325359378560705043891047189660692137175021002507996000719775844057864376577738427127109086660076853290957721573286006915671789464794899662729048659341918187023403982859021036891836927836548888277462465568157331934718362151079825062518334167361732669884981874470632475992729802069947446633071034282871154035342247981644942056584872988491925240948003508713472959148997199714709610970852199484309108918890360232229304523462902822713502539662885826279626816109370731094061259832469332923634561645744240375359505538731194551715390815952588449093966086431512141123618977811810117715359510725947219106898970081762208159232736567578268065064231461277291574221078895701317731977105935092514612502072103986174885478087239790040247467755473851409207030900914039775551108494635565369469460964842498508457910476013959905092476625486322024162863169159758996569107840042469646962987852752418439113118464329026215901286438271282504450893895517018136870607826087522511800452263086764734517125877139229365581999566949491113601414346383842031088683622834204346881519803016215083455639159693372424315626348857292766781641088221652225860746466742421686794516682905491466013698930199768129898088638875486856640750626449328237190988426101876842805549482316026114067678855549720375323654267988385053848492475403945301828516455960245194432983277817090852597193118638171479707588298374534343665538356593473222151989443877244707633282630052368467411799514984757176330446773510361540492891276084728862539891827071121310548146628415668548630448550792846661223164630585359393258237412178201518081130765605920854605912733985793816882453955030400991274663142424112467752266216216433800214567979215981207938560204694615171868880388409292158189548900527714692621471301617435389280233014473636784914175828457476400701248511299691009691437275826806920882901961162131375003695276978057257454561774912522881419006902637472839917418660949180091791955693986888629496580499509678864333632320183132881821871849625059412754873186464657745929891406348613100419066522206799779819554316736877884446677356323205250692265853631086743488120540066135352937200408083332144299296809345538359399298631845364293984928472317247277030125652081470962810041866583287399864162310307588682779327756496472999120251919778955888664313951240162188370257152641508939335450567885613749554728979773706341308087658023978450257124405139270188854756054809924747298702739748533909615005098562391162435419262663634145754511840067200751778045309824309860044151872947125029660553993979984499686871693196163128427715713163021719879288995217059830412828130301399227117638344238379652475506735657468122067490337393540191774230076999196935978708152162249762770469488072579450265482616693860917855763020065082631802561958949635212514510129483574730926711784306557919021070327701803484553093658450453650693463544992357667032977923289258504969359594360163351143462498259745781641087193529644091330165030609873982691044018427551567171242129517787882283135981148855089292153921610848261850974750268288404896958943869045142518644473313702498392689694208569324871213583833663932891212169102590711060343719002282413630640890871078012384394613854227291371369566368606045407783205034272318365992763467017786016610137378205894071317018897498169172919839329826968770559209115033234218150133830607763783795308621153968081465435101470850380243368655463609242863901096124148484350807177192378679788491806754290370097707044812791530711387806844843623328809188232203442123707191553886777685508739174386766476621010697355816799707145712469022224293939511290260985566712725047467860821951978076523204576080737514506791889796449779227825908750100889968938572450472164664530541639635429287522570886252716761834797330368021388466082363930023502236273185214050669905299202652886513822453859926816446467623912663056291687679261915652425726083499119287045072173639982454063403315243047645862235123369876216557082396151737951573919997529174973112837901797854146135888805293605888689769544968582171051581842331299175020427386603708857941184214222834987625385656542246465996319502091763391966511745481070611672971058387573225309847945916173371576314172595025909704206823261319050577727229720791121713130372277225007720702772894075499427645478978750831118308805345397061509307182266377217098633172878039960689916553385094858175452366363332333999327826312139675912548982115504446229951174132634898786998559993625611738242506995764464219208571132215140390990576912343274121335567171101200358950284611034277823541761992027823842303517944727182268458650333617858209094576385501446302346718403333343700338899044774919581322655080350393183187554055903145311910946976394603359754255560191382487174704264590575901557677716054761242668028076676722590261867344468725637544101784933060157981338201764418839007500807822610754675741193087988738829512773859326891010319118982864716094480312091192234145934110692291739771970189412827420842811141215282389498349622375459641855986405644684428481628273237323811562026595937786849676090822104260463122616494089056755737048574511923295834342247923497201169520713132626150475267517247454316487701073689736253915649484825574254451820793419710374223705252787233415485826707745167538064343166507156639300174790444351795001662477031071099468403948017528794031745943042998849133035787666069244838143432226230533012778485409893717151473107151463740688129108589295433853668714088147069980838858302687944825323148944842835711651920714107630954849224517199365567539049712718292125577387213869523428409671490702260999621008060303143110260231567657529730536567882194210244300166829892845502390619031165505612295184479929169220133240800461691209656649666588502937917964133254229883840409359553255051464790112090485525451316731246383862883093131793239470044268907283571981295474897734849276076895153341571018498172657674281961587821078280120947202970499696845537735663676670391698747617291755529185552110149319183954674759212131786008023954963258716191123446624225127423810235007627840185747279781523914938539301186194679496374537838322185116324944301251989332125058276888410804245470569402714310147825667657182729885736017549564346903678497679558132743597553997688955895552517331515975621020889684163719961704866453026129208166683954951022508154556168189905564860355567728543998615424314971367403959622486885647180522029166906291263412190764473436748654255984011462671747285639203178604192503649916091819483304622582992252527519229310358789141309699824177938861792837706711951810803310004890970153934506691783873105206785883809202653223402799119749318906287117483815155335256220162062781402250532057681116839856062331482607751966725847521517123456594755530636309993646807529864513099543616256145510191853739291600554816441166717727812196115275231713368584155938619838459077500782028877392885657531486484135113325213043221896550798436850371713345649961151816886720415453634068532439654736424007149784047454207551416999542052766734149984415160212801865060347910434433975492523714890407531233386820117666819280679720574697026708720596288106174156103672475055828987506316024440160428766261854742492034747281297349216842938402652965340178208033955540833684959146780707627521827481475843239244822893665318501249497971394229601980256898648772712519649061021120245825699577848000964971074286201893362319094905901498506924645734061302302803393533393985440023520660990180520874103402057059302368368487539626037488683489320657593441104066770419288627669635384729849345023164093866523596035407491326938245755131794043746296046178872796372886055460745465079796573853580778374921905442059928686961320497234727827471677669428125257207920402194942009875728630156886589530849333544421004867973561210273257291646099299686473739861888104933198707627695233506592681501994214084857516130491050329489679100519094756460400616658606564485446446912558609661236196853391845580172338298165299908594823018667675818738554183074934326627594261753627583991398882224997746163348611469768808797919318182899124096132009980859550591300689602101724934933919874924165123194305577970463865742244650163583013561268315792266490956073431732189315256826052692798305649822041073698370975245425265830712016124483311409924576192775756958670128550690693050660937413118076098943913072378444438289590498007992293590837672125043903053963653873232226093206801101507993368656970292801222802922183973209175863893173306686889107595825842429719027367926615635385977551804775778404107869322861468214494871348289700486329516652573912409534462433472114075641898290430494830183421732239704993713866805399307759823156137526908284875405346121104429032894585313891442986598709242155445993424814959157817788603828472961304896282107989657428711668954195674293414212178821702878764183740260612033241133314591468986361388449642077190521081238027753992736601919728781989102914680089253924025998866964975276745743669051463963740446944461135619086982128424809844448885098560568256469211792776121019519475431257993825005272995006058906459685375768268796086586282172828897325901728607215874503710093882515005288048870367817189289577839339968773650697478187116063756690687564839908646465276883258928097743136126081637155743079972771456879591290353179644051959127372060929148184401476872077990738934026941850300547135443232215009511216391422476290844168389990841062602845093623707113952841836033303588088440710431826011104708138496304149111164347048169649453202932357368485929624541405441871165401138076568531095145780877084634747555212176275789358345154617092847479686213892738662187649458643480359081360533390619484320194533678576712776116178116548568012389147819086797314136781647449677681462371041783206885949793660439676914119287618296791760037180157848250188940770359426520249354039965974878846881833596511556950856454831726314508957609754350445180574647389839634395261706741250307871610593457896422592266392332010271231676365907157473112346657775808066692292017755166491066834324220890019221007613263469043485807986998920121893129566561819399088788580693872194140707888728737605464433710920435415194077850511168511882985929570080598273325431382471779262229338387114547090129477544571703736664385830639752609454812992265921360953017093263209680889006699836831233033369699668646656216190783907301648517573338994626336314715546610471129552352714348980451906577614836792027309743642697788345117591260573204289543812581426047706923080411839793174423576270950643041182276155572015472099194259564773000616173475922222141667624091301463180528021344568734597907147284603755658782149912472162886605075341906875189081229446734395902446647225833832065919583922413767421143637010217708766058300676418533996608739410386092923991532496896556330381320029312611775014793349083012254266198469646157627052061372698015735571446061824630936073332144617265319025118571575273517832203920451454075832080607068741062364419555953546854815521496693839270236832187762244806055625909937060654962649874254850422023017713888275549426852337380582883565943861315358043277005064353719203699821467261698409915441812743102085231958027968869414695869270489912108910707593544904491418567468779570651300765255605756603459326384349480566082652138808143085714148197243952117421211126424006421330065451672425646768401911563797803449517769224900741942008478158593545221254644629814014962787647092524749214686667069565734598208550935957425092809755338788618464568163805405685560103972843789146952342983452919029427601980904590734023478769672514375473463923907309656523490751189736072464854595561113563538746629227574050509155276623986761423456213629670685113876165841984230851213181140761148764349538961056188597711787892679113067953059777637308587267535446852548954821685426274000753208984139035427686129756156232663451975978410279991867483107473728816413254282171368117428275547439070406834152398109852679234977885925618024353273169436459847635137799601037365771624269244017521300261475201778831267292693456596623760291368252489109479714473045422452598414752773611593031345997243492343729097459519813947547361611845217226072923814119974600761855477200907190582903900361448533181901092811860060450587632586805005205486572689724873646895586086607256814172044522887576135744405220911338533096375033746210661184176219163472000503878500666784202823840187398459847697664242762055339448288023908778434868134440983927856659059927770266070515513816691367272265942068666728279660230367094310814111087659587444567604314745837358456221270924481141683057641386132855072075513638806112976014637913411629271535425037225936400291633705622886328932665158809828981361834113855649905521302294193220413925200874765318559788207630671073594681068600456335265928996194453912128088134768384986786495841233455354267744573961640289864998333978394169526913177105182582316603543050912504812622130498630290644959940191582744068018971000065560554674733908414225013114220877932499862253095427039351873861555894880006406959652697775162327816294305045641616876654260493274893333938403665252928344493711201544938888145670963708257629740804308186090568665945760523498589929747447404370865341493843602694579313164591678112362647017377824766173533791512849013824552235701328772052103488399771237450931073941146367706545523746482475682977091728499053605080628976534832541714554469830438401308952435699861217663647790631761667900460446578244619389452539796486533588135060421469315668647286940298112718761818849316180909603633545717694875650692200201261624979550219607273232453583610772260116248208935358504953314391618720344175068694555940382711973745780107704573029524652833021396974995766123526478944128530660367856333945398946840353116183219995628922552357031067478096317317870772928264977184822621363094882859152079476294676949076486964150175373221940318002019658245760777205637722863664965931756232200031594377553920417000176809030033293630496888830630658338241245675938987666459513588311245370937431239095641692940782806444437171294293867927121290480124568385415835211014736955904026483311862455977179552248839231889111207543131859804038812835924845076820134229200613505788371765362954068491411583843421259436973168674514666815109541777610308625492944310992412467534306337290749934365465617953617148782502576579906552113808270084962113360017918573785176093092498709146248030897276883492892041822836550354444171750009389694776060625761206713989999927996364971933519749311600509502201938435539991965807068029079309403347900890086576373186084015065490180270279936574982691092609248257385303396054452711921182006932760200530235680962154373574177344474437451029126331768116533278616169915017020653730642205622594100001503315381765720050513873384384545876415691274279331628956395849337089558775193126298193832317341149105972592805524343627968703828838336595785238762135821692984868601261839362148451944114302899659885969996110956150561002281156145642531143249864821921150266970445798813238115697780905022629774243135558470949728819321584551986309855703708770652594752108307047923503983761727976452772613317010460758125307105840018379611322368444367897517192294022083125362206633423184993113525824136772993667909227727049401984397065354621312344117821761969308115641113245580991674851948878799364475800358458525001295083963999346936062807669279309908304694538221928119986914954845685144607530723645533225710105773298659402574939493826397318886105070921189672512805435266155776274367585442604994448975680158886222971416786276720527186102080612900051739357030082891412621782073088152198991909299331604772980289105314104204224267428896194112132674094525057474226016625147350617027589184822344956529133879831644302210703938433096909387271435876008179562306715405344161215892402320276517198639263670701281531764881433142015031399479698741927306559874076579719756715590683424079057564122104079651100279521038034791203413811876097125087180084453674926317405105817415133232788145548179919520111853476700078883447264256218220415753333330219563299615246179210885128462484340769631166883704783396232481825992865072650930419758472611804393679287443447598473310672752292550578323668327274605772948268423481313680422159610187482209051400532901953269120248987107013263227517612039952976864575387703035787548841746044720288727597801489134929193807270399272921712850874366286677404434451643825100197624353010760214659724106617736508934336302433899771282854537287181514145389778655774960413141959100615254121996564960002326521531693119621821577974075208960014273695568741808696093624410422940200856731811770380743184237521552548211302470518683902436188344508320450708859717017361989814264106252332117089891627726707134555180313525334324587359929633188607648001635077525251144117426387051951125632385900115536389927733829031504832333445008736639402794798848332576810421294967808087556441374531113255384881661470136870907460682918457935092240353941032789847138084787397521557941045323218931830219048890055840045578909793986018922712817302407964755734033734527898070810050756222706209672034814622604719895527707338396509980442613085065517398131061621520564836245742204043967164226488445928652127357762168974307045899492257460206973299087517212801841176923943640060078720551732926034726020394491408270225409602305778381410950090828950591561792370118359345454437232381437607845866692627162616340578722593377863532895502863508565448697935621074364824101461327961731525197395821213724870002799972125634374957078340838838117115327991338824521366449233154965408297431313766903558571896383923752595627093684049807086614907282531103813272687567265837338067311421813231499155872466299105837980171494544569156303922933426125242382846292208848240534887509023262447177498282007151639480392729063780420358568283447386325607604982035061827755190829462032792191404900192877487469416610890109250650760047895542584146235246271237313318197741999414147662399523254596306170270222736503732794110579210828956088251901285564076033054146932540466667886342849453768173877131277833512256431487753571969672700584946161805053729087273131301360854471552157439437155578609845921378524730583427243790651546139276129502551904628907963127741678281142407697060851658971745802731955105865671757923720894485669854364951428694396768758196752638174660712582021698563382968232140506688947149308265594890723937998656541265106022571961033326125981646762382995152359452885497096160837066365881116161340980690316499206843431552168393492461493042063757091156472302641897037341658023833948596827092281085729895707080385234927626854053536516097895933467959712497993356908617396980336031002242032367068839579267291804904229433669476259216133962052553075929296233968990604900216561868461390914211100161561682239315261491482914024041197366680522058297345637139543763599158100315145989453266121597847862673615239828773199811961746422790051685677444854845031106759928034293760405981475978189764757560980356307806943540458334800556655680321001605959905838328373049607639740901407497981713651965926690674765815655353434890996489158126602193659185538018018766672595155464729748292194005882549808323860343217147367877355610591423819844175990637414250811961013495380807396469101636617804906355994974603350370533105995396921510917388713751805226715244947009190838710196276898470005499200110203075084711391239239888718820850158766138377501435313294177152278045769506357400942361879594812727293154889530634860948908389652381707185049002588683473212278416686395999800168927265697825676344983573564570472109768541018642140498845293230550437381482257561501385815249294338076215540297358597088602521065863594049179814763471231484680277627132059941318755988037505523386090205290431217705608368911250860990420464685365926753645770766856808944312948541216571058135710490295626921875907655750673144284313876578666256922508565880309730128876642378070320177765706680792670245482299322440117787355335693617166385318562573242078512171443259997439386543978276137355599825714567596151548376980625175157639085844560614542231303810436299108782238209764987017409452072992861084915981480192932987295494671780281870019039232521350899266445473551653556580733978958984529166422597853402585873678567929936579728503853012699966813515519167149990386797967964646908559476180180229998795481946546392340968987019909878427511276915140136035836736724666328545136741764477951635217773305250873548625062868032563330770396374628480997284087233676643773400873712712540958782040704181421518880152317312280595566074127378266372613344673732299897309046863591752196654928247136867872468818994103879371196810506383539411200620008935054736796434797738859921022816321805474018597270166058251443086166614126976793700416232376784391962474072651032073696834502042138386884049252459829513974278482210908303228474457308705122961293283114547394830570441053350479708010564203697644789895220268239040007528997652131010532669483498598250149905118220374541599838688413527418039951989443592585343194547298091087186131480739273692147866775874692205454528455814138815483071430761307760605187690571120437581657898575535154813971184137895951730697141756148435644058748333417586301576181034698194978712163911652709427521080800398179385787943124077829938018158966994563357660177850843755660457056503939706713599584959415561277937221291863213171666518174291984717846023355673839481298728927408193895131708081929159932825575494774387467266369375378651118757225664400226862700238004215081804370710733419780814624045654745273254238689658630002416072456074309833691656510510861469714312752735005160822974950006077419784058668185267455851862560211190695452360897633128305661683702761317544633396719559116274655832073828291531203158160797263856053