7463918181495151603889063547906259398414015175920413625653163203202794962859474574082251290620748553207711278681998128188640047123094535033961965025518954033522663549182233291752776041088620445825585733395254959828630355749184725012063880919022371973132421688306361364022698308416453463901309080538538344187378612685543147467246114620451462123570413845032987096150117825084828106003063123777779535626567535327155162799542660368471508172945657743101422301657402127245198424221067988833504229304331423363250710025207111592467764653359102749490105605240479816816677693937326012701558108266033475708880522225714395908259150559002151233007181596046863040794662897501199777083507889385933351564874668398858349075992475319624963127011056016401687933105468509016778534574270868247397117836585825899807872304687204468177300516609687206120953289949417300152694285806921789382809778169483426355769164083278100935761869925770735132220800947540417702957118134697296727178112115593138945745976977512149911120008505863562883750952678462681423794366020636298954528265737465851688635168095415065429653405269015246353929454369043546529885182629620446708691186319730411417061632586502236123198444369698174083492123461059001206865530090400961812880457435396968485685100646804612646017126608260865870074572202034339857218575092990031070098257992813708371362103907819431555389204055370884513235195312212474765610333963865157352452089110439497920340928181378010021925850498540709220523887230035314235600745025989339974087088859501554464654482921492643941261572787570728491682835231023250448980606881181104670161775075169829487818095794274612182720794451062049594542044838785134060829899464239727721354909372674106137267795156613662794717150664531967384088831452227942578313703738778127345149735629873456504172420716329661174254480442246032199464872294905491859079793400824945523190567596102262559643299110808117893227731433711547245991640378642555092473725313426393315943354639289896607967430894493982152145176535606272716450791936228667283175611462011162798834022636764638967419407795672719701602048721999464880189252273473186682142635206020245830930986361947181872748145412775141305087392361900148154364677081720360287239330478128323728336174057515018186394855930552017603419253235540681952494684057107917323133613876150656612892593348080760338740185270770516637058468118035641867856550162587084184258423638380105233697250158673892850422525264296141056856344446981267766151097409300999119887450604772811913451087513059833438058823486696693982872054177797287329606890689805953373271466312948859126434834147668078165755585935993030797874669833130108211788590506102616348365175258928147786273043258968989132323686044247954445369176165728334793305428253544539424136815046361358973923825158078918569957541383068467706578449649774553604833717536087974844879661076749719138141230822075630709175607159154888429843723907504661296210821612213609706589519475949779235711200818291849675321850188806788289256590130299715481903842081360225807002461045946976486931158489861511803401381270578866364853166906988739748132957881570755189566682693419272364359652643954886499298750455426330176584415187758754350168083280843401416974220444195579013131184766299112575649196161383612261467699455939431919526611787688325259097291225552807389590231449339498259443172385438480924231353906574621987595378911526561627058234305708978195084257107416326658571981969186313059808595980007082073743546709193378806041512397360185260030934717745327819797766059532122442504715473723512966845653964088683828907798868779018571162343746187486227180970662082292859479349526098704400029938213606632255997941006698804402886071130969070182834439551264695863300314214821222621862096908478551173854271519321170557519063580295900665743729590676182278936031557729981832645345128949398446061387319885660271203265908234293527269774155873765583976816890669714980926718666477791967356207019320404675833432876526751846633285596341812796481034717459050162185074801951813410984334517131675704689170870945236167437312212467292000677576401442975131001715569203004246083568569129835038749385130351462218313338535028061672726726907863000373211261701298380516938125207438509352687772126715402541975810944550511442534407922812380662905468256386899768172765906814122600362872390776233399669651653051376264897242840821962754142593772700721564392190238132777764404351122795570688140739170217124675350655840334862743826696359604566989938015600135822918585358154248259353055007706488644308528526606000280076853515131963086411989848558930679519164676395358297131020283546427160269669741652668649157020115621208250610503706314720266513429752881823809607883832877816467870074182747874106732003792682382326187332542455497869213901733399429407876627253797369448858671368996607641889009002545752396359299667336456559942112978902133585338206443859579593194954847338333410791053188285620395792511147766333942893413596325464159875187168519429546573537068738213357742949829353095679325202341404362872998961391549096016560986269364512752152706493767302788218556426701404097214543134517930017342879442331801500739245045795100855984536320606182462733340335423533301572845593966405535762337838342123998577880234139945367243039526645270698552380811471823230053186233274321432518271219355266557035193090601406984510006658118459105502783132401626630673465887280841439204346740805235217696462917133632097238140861902380674505128345893054212102317005404846296903188633149769792926093692236662818493572027953579170515310895401992287141067142119584017411016057931964201974342662087356551848993121373432525689560867714559535478366765983556117943623060024755477790871636556458648122509226868175669795391827237491658459645060520320930514439808758266457013548595167369570597353499137541556891921891339951283216877984192124273267086937074257943870277377121653725057854310530332076380439436650118933320189411349091591796717281302430981296585269538619916211360890137467087429320831080619183563482982963410474058751471635589109357729062026116457651802008639627251924709433332969434371267177091706769884237655881811190995087936620710979015942747482147720497635491632826218572421499663668521526540969019176467367512776788202464349213456329119796746633934611978520683886960386608766814737055717690583054774943085491196173769871893565292299395877624724851290621818333007272107606788453515835027696232316406259321000175617919385218142448293082624351172102341453052079049391930216748058379280078102179724464672939228053612220365939913237434410868424781691091297704088889201330924309290989799969233307612240272057971094391693741048613501128879098317667936532310908128490571687871118936860319674177728480156631900898041263965706716201071629700839962100825291568523939118712609118859970208309856031230729720448951646809946788016537499594909928699371814449356859290365057804674589907523342305309306262087538084937485044801200550569132091431543898735469208463791469330751773643232251205713912031295339584307195411100670181466738042112008634572798372715096737052425137796798023252950766286447414932800990027723043119679746276651155124196355665549088014760430554550517404554002821658983327579003106610344926262764778517941217177372447701330722881931479090149325097756051943745169556933598402936168322701217522934021153833510606562656799631805329339552448579066851978319554566000846961838310907684456904524423393688360471804610377759161548783636495529429303857279777036113533102204500682388756314868561976725371933187907162990460482964664206291129227266156994144524247091914023882659741815664451633996650336817597094311387304439267867032962347359812499190565201909550782448303606059973958192594276065981864782192940447955459217588899423410754829560456971696698430097191280965285619715899427516446967537092398132846869185860760532659992002359409706351746926703057620306587002812335051611237696128592471069438096357264586485282641562194305332245670949458201151267069473846211393817591832847547178261010362489153526690469992948792661590835328763512958194132650725931398043163845126527729199629924357908619991442597779782403251550530973749958817046726471148378195898387870652603028330815657485570483667473875666861451692228051837824694952099613712461229553216624070014798819119261335312562011017507621617218408284745606858852115480055941145260201581916662356847152761900954487272376182011954919413386436419308490051515881605248597663414913727742591398265762938769134235919582291672661152518826777737872161646532988412780571997347527277565657549709916105482415841317328861275111280450136039711517688375964593085592611834317924253307074635811824661817912788856000123173393521739111735523704223513036077373268793444736352183555132109875419028289357223366909346369324706592762901366649297439961675778837472949588985392740841041119959988872264968039334800378146946446265259879626619241155179500368711567079673944460446213369645325832039785550310964247555209134806531253562777860554929671728981694378163220456361929836158091443824925976336524272453715298901386110185281579588380489465435504809324695039660006680737357653673465331392005643636792101554996779936514598687394495289564646931726237545235202033116818312981651937967967342298037272334280265362316148492182745729367544559697791350715659148850267086085223983845215121822494929879224129250467654904858636432337780954766292546380642029018803602923111782398681511786995652123774629154779711430549081614995648224846006439735533276066237065108622750966020594425885308972154474172867150397940519702234647456805695480302215014082060857848393294747601226766243051350857647677538745312760234081039409941766123451029105011652364433741752835385860850714148037957160125111502759310823800623248303213816829269337689171391025649698736908702033880042494690582374951705556413616668070735464403737231632233686676279101943120642868970872918704747248926154470072297894600993979708039698271345141523694399009948256245879385910902511252089798150747038951283810109991213538982028797305657624165844765219409870770856868687202162661143683660506321867179820874306990284411249869077353801895034837738737864990669710263734488063313700831223188346596753520405408553563331801517581298115864112376668565723565575127498053992488226019025022900408073503508278827524714166532888586115092572969346320290583512504316455281381257750498490593301310115526053076551863985615041159437817877657685338379432812660149091834217577447973734253316897816951442445054348066281636641626035972220913166846553803035250982137011791671284594070533585225490873015445338954653774987190145046754863522640088259922247441267481768015792216701002919156769810893214550680206390184146282352936231143853365426324550345883427286578397802153753390671656022792099517749973149008188800153524692595968462861053542031014316937775021441818935770631614451963779439360135517476969883323013779823427226619379858884611897947047363596496061552004930022178819355725347665070405188376748637776188713878356227073488647232850445331914531819503762844532389025538574265461561017268510233897911548261978960397425527023924346622740957027703494297273805863438387834397223176502040381770528764579332096209053605144292071910089158663449321714163956973048762805754461170445065776632337805333909595021694334055217781933716249842757929705948878762249093496467812226658109947488317756991103544146766169895370292297743542035198777720008584216041969598310170838009499897862253586098180501711473742259784868046211511572593729613279488653199282886346447817876506453441696714656191000050172785868818449985305263024748875971748933048324111352963655334333837169170966428298964289300635927320547747305221170347597180382242966874439168192067080483054510189712008934438745534444954964133035088346432298943882113512779970188248865039663310094292947910916238245410039758244961121797425198126010706076155527477818313158279659632990068168298696665571081091237913430470206471208924477132207703134349901349693235880974773073811857561911618827196161539711116248728539894363843102694901628224794384502092630611367207805082074854321027321294247271273834847517035286804725419554653363294232259921561642890084749311305456161013265589834119415009736890163015137611121174549017589303490212490083231670141608297327039653795110059852605643684126554470364324750499024504847560160967689624699036468625282544983986987950646745267201003987673976048518281915355519287670881540162033404649591584733686573208569109550498302420504756634395639060454118189492834004742766528032977412268551527301229008139704065338002447623732841877595737940022582717061761069375966822757368143013376040298066747935311968279376040815981218623226486206720080949929196443286559756964697554195649922249774996778267881095590282886817569564103371851632470763436225910391929090466267832529283803784559349064076277447309242108628379410385351941879708904292646308237534705711989859177060786773943814841760607362879533851443522406754300554714667282395993129737179394409570196747131547762508794970445387550284467777965649770348087482226582022583233294409410637741088685907804667114587271283902362013393150460573428523585465560567830233567998936726732919186621728461833138244766865180210664627213418612319731655659725620093842109819701952142125229985546038744147703090168098096226766371948861798997273048263675572743491209664958955759164124751343514442907105722615654833106943093930259336438707783684521171797154255637630934157323988981864488520981054579398862530380180584866797379176094413987347577583481689653140336472002686219289420117468549777407994633728143794719000400500615957845166567206109087254257069601486859537585900887024617255342714492330470231975318609778543832355398486624541927495060650066053554438175406313559787710671763799246202033997388939718328611136270459400283915121188101681723357877328996807603561402643252620345908293556778321353464215886927834211099681214253888981944744683814179814515839389868759572581340119377047568993677094682810357790738022804806710734781218591910713258073404216962928953920819746411835643979755559137719654832994349207559452225681437064298374118498610621392785450950494862804428682478916112413033036909523917088593093849462573467207155056129143737047655466009300247064389956843680108096880901093828267571191931652028441275461684302893199754045863458758560586909966855085948257155235006513557951776273076628356945486149566861153009484117001465123088659321429450258499584622637468678332943170169337075699407004881081947977275757906555979021973981758279004638238384601481344097675747978241451704796150143131934157264939442240050618576346332008015548199643064871138790047140464335850315588160646092597282640298680364271720562065660441415026661261605409590061951663047473954125412097987769405017177386394208223793512570761626825217596342390887848039980695216381597609576673593006083051993412303783047593607810971324516076572859024226202004597068623005256740819852593338222948719369750157573175272501079489428317242562161167441567443088654356643428123798446141034555798312647148082810331667239965107645002028589678477659611507152834522736702803347600966983178650462958260831781708433274838494294775663086451654315263717886037890265045785930111278959980368777854507199274032680580929005655850626224280184890123414968659776336009238663756513037807169319345163993796519620302088543881352464780873544448242956060811562051615242804695226744368916296294013396541408597374541304207155845084330531032794679415365783421718371402184906345237667931570020784772864301419860627478157147370527709619696188892198215619047135855631479258128436699578168355088677973514294864692618942950516672890395581288180709377420463697747699032140504234902100744281941200157769946035620749876749937702901732664103103762312845416701230923341859478866722124546155053162174085994243269628479122870596405185357430618499377321867416801914731058815779744314276233817552111725290320979963738657375979948569979849283371390327255746251251208776911871226315609260735549350842961349784642435746505175297172266115099238696244867890736308682521018222127169682509062981389652014129399916159832810220472527379257567671799506896094627506027973002750432128526850249940960565654693621212302208071515217215155196573859707675408507096440703767387680909173389237114678309345220938196059128675925793587892550026346182744313599520769018136874684897700131284684049752138686343593693632695248102453423801348889731907323627636157894687028389076499078541540440283786013678160940121006347139577935733026370749283697848438988996241703386906570265551789215888882150177851115796786351482931670886401366551488706909475947822057065699214515905191248432317505275846636337486022655254816472537622619290447438163182084190895289614319516933359146858365628643518003759522590819243273074906026598759282401086154629397105143087660196200721649507450763975156508058126142930589203957691947935942383910480851986033034614846654624983835743377072196112364366979075147361086458626978585003552210565015107505502957586255181631967767929466791771831287617263091642684575382146871613285621702682524009786929477385305926777260296916149309209359910712138287784503745084786260132751669681191731326443491409470922169498526069925916733916980343411476415958519905425701430574164048784927974076609267435866283841042126545767010063912441106359764835118043015723028755514903660875418390142948051155095319842442367054769184100492452452455206038675197229256146713200692753673070161884171985176948595105726264989966038079243461398345494240395826684406316108330530464456405643320320964519747266558776910937969697275401390620196102635869486400015459351943451125040840224746348270340058876502140194009138064284801449713746871708120773630914274558546541525664589088995400312939294154163156237617142969918525600795472170604585336229524326890724970999593809079111578230148485482364596132943949852030213382124531384493305032115099193255756345983978047464609405904151993424680772052742830381848538268876362433164787712262092333172726791499519647765953728472028387376394774685686364799194647054372287446241797189212887214884537540305674651063867735753088301115252146489304162166314640313262891110073496175671362966623816428833608922703266128987850019137126629364470521848513708711135349778266323113692773746883231610164532260572338287025932178078156441956792381576021470072050041951779557284869605933102939791156511046752853896993804588634568460633220989183907385624446788385419040497960569186728264334338878800794399358812580790037748377818725077975109383083747455594881877679537342431258389726114287723202591180335608254744593287948911719582708734219799578990690782933076125404162474126640179062525012257988926423305880537641127330575067766883496794864612368948055100176437693231670856580762998518101412344901003059567193381035861776635196819273967924514883123862965066862018681974890990623931770747050493667343116585230150213879122619687445388385986087449110219678067966850567998913150769677891880033610464077469383245256875639595186021694305855669457226267792021529881637756815637793114010050692257145232318651299016913973282609916212925958446365944864336110748748718194587872246466979064356902930725283385628734199172951607795171232084837468750502036698742471937765064942592776158110616022260149360145144778319404644181522093887580666457399081469615152743307694697639765775761022037755707465483687501722170472752381198181504749881977962942584441608625039538333973707454391819790642949403384456215172213193823554067462483368219112053517096654263595600185094690479219898210448051681059807338567421215327264606074970540044853275189056873594147145324684492244338890152389685953763306194658083230608359942487751132002928739125054954957681039145994460493314391234282688855654179039963280475614076483092699215630255094023379711054054507020581607663693646359635849501644503623589107510578427522264792352256398218456891070267561950591242360401373618064138608774224199456671648835611735600524928829468914592028635560364173408168253776128361293400170805196300476847799367109266544556909303414995473357890772911294322920872131641229153295405895544241153913722379455968329072116441138240279741222386404856076034082351959371809952981011469303547242856187318460303244781915690869170585816988059198467142936730089965350064967534623460923605742639241758425959701341077038032603731407032928444598994220399386278741575745871719836534068079315914774721471375909522466561111210449252080430669538866728790557183418630335473324665215659764451859568203553412062094222317077155104992941537601920262778772349883323341492776497851914741463365189844825445066096894461051253063933479333830279790117051227741318946611063265050492849961451698705664413264785241553839983882735853128789092129517213205563141050693895362617239136763211835436244565105145343307236420863403053965206549678888780067814927889072393205884204319470729725563110046239466953204598112673531853135219373627266983118249803697961950012878984826974918894833420998113420790449835347365757598560385391924067623342980419753347204458872544702834760430037378464235855572255069154629511478598825484118236586270107243534855627565143553420677626142372541251759056211142872523133944899762540910991669323859705348250716094215900931272396577546841219654786910987991334448830747610220350026132363199420922806107367959471381306599228423595801814988107700466804136655879896500276731354127292434120580497558761801140620478106108505870047475216651569620907378135245049872058878080310534788188725997420610400115194145542603663250427104166355633615720509268222609240599208853865270208919845690827202938142268183516878093015067242208745552433162690691262882521247303745355358513102958492715742596448946141427794425333567421235513832494931764684481963803934603479019711029591901833073956873999154160888671250441429969260984246533800442921007465943384275989930249069613785956537959391074395292920342158578289606353761382638775996072314449736712411223182884092067784264794845833155553352221710062794239085412789231886103202782803542309230859703266269148571184380266299580550663442047666912738939174088451041986320943998523794552275053992088289480301104306203248096041832106293717174682710030058820785106415784105815339487285049099050268570528474489327866577929521167719961837757386623436364488166759578232470773064166493325116614626599917883515034203442363865955218520484965523398142611926878366038829436781551552269206062657495597660107565512967566206442436776308470396390656332361053663621876964690110272459992275635374510533811775553034109560832506728651513716609148459176097427783107251798945274939806484702886513469502836464995458802111891050400827828227066977660953816914236083728016818009353150793956585434760258253316261961590889037446005588200882913194945231004601292025901596393089612803183926498870387577949288610857114392151452464263651551796244918874796732970400878876595053039651951553535999124477500414844130309404548466679622456111219388583888310994706919723559667309635514259155651746042672540250363921181224152604528363013767059897531180460878242059609325918958324815382100884194024790436204991514561892485719215582986731601015731778154678041604711745538058874671635202953829322419738451538018919665053348887769577203293172550463888363783742207582002665752171126523308478724938843429939710452419133760302122090803200098234976804921663349372277118846486510762722390593247495664193699572137824315148768778102933225539200737349373594396536875810645382020833283452849174859611040690612561624601797000198696535276771643230755733570655411882953242135609067499166046634123540425554494097308912242460166661110878624345244699677700859432578537003277711330329187403870857848327505486339295932221796301615451547434797700602594581064834070850388809673500574784909538446539306374361448686601123237190726935959874916292120038296388042932756086865352448220128683163543518862502044696052931247844767639263751186393176686565200290684290482089961765627006354875857752855433216777664935688887117765548652479506801609553755682612967670688146906321725599001921314369195297872786959688385240549491747467719190518723760914844831193178772721838235644277964908504247162867240871612408964817537319577276588123720188356132938479835960042192582274543950878514888138255149456833056599761007472995002782071370173688273789312037363072228153831021378519998451439731860704696803048848977491779248329943292701719142254436527260128521711008547725505209620568940680384936012577134129384704288130139510435022168328434372920129552674326680914284562198344288792233848348831489604175461410613021864548579222237242529311843305921174422405971970877132472258453539634970521686190502850636056157598109251540739599496429759516234354747470104773526373328470915099469321870089988844077520553728250031799523808164498196480553242278609137789881682817788399568888194139389567858140825117278120633472206925232989609857021143902542303681023308496833931584127703658209239729218114902363038454460312254829318065726487695008067535386135541914160854077205672960298083906084648089976934856585744483885089360768434474684211202400515860809482019093009074782658975094415324017168376578977512666762735263240820296217165842245724910626285642028644099127144920518309535007658242026733091494253715212231802363884747110217370388483989953916118628728253355932456347254899000175887517882168564941202717432661133994612325300910130391614975666057012502286945416664802336097699629035386275580074299452067794951487221846459850423776601772511514373779775318201806924258441602048672963367680225700368191349740758953271499041231952341203469410974998449718666822371185919117732208250277494476970365177764390909259230957584480716984137434977618109654670037845391245865944199971508614083058742602690173815142370261732558922792045833064372722537376875069085505131763259763605415367314532490079250546597142327137543717244773028627990058966235719828627715709054110942744534302043567697783758423662841031922679985263863539652574600775870877092650368100967508870574075081436457613470196779051507801912578724958926679301539476973042131146707235771337724066109731610702664644315891626703531147871362729490511450431436298234447250446907789649183450088951008605441298870437312476555456480046960035594496593485303665374871488536770624730373701931166034576937704816113702466193353214163752037059330727144231707752197235388548157303737216740259218539664279669928406512774689253728638230518014502261836088185858476153801494852129233550364375454466670935545414779979794799949978824522000019998364306494227869794627433458672560588489520234376720307432950255278452050857050561200917344836808940194659061737456849322023123762985723447096248201620446609757683060554140117280623245979892548792960023657501101355118214073887564718709938218764480297111948492194072106627554461455070179046522825223569512574659695118277229810238517201260806374750261100569688821748306298434595385913376495341231797958903082841107402881092503816864630411107371938425915785385615462293540523157088045197700793689857311131028374833253141213834507510800085347028198884872262472743591977885961518290772096634712961213139104799811039648180813096365650017418863931077471604953456169354717555174574528502261578558842923207485310714407416570894193432726435695725485677235402890650727237801675869336445031533042479461902915453070707479299611408775976752333423517857332462538601134610385524690108213838130352809670365993441289008324630764611454746653623446092369990165428375718382832703753889125052995641914543475966018494249016615405615776755278441364670929297088489913324668074273035680501102888628010149677948566448173044949776878817703609974825990428084156711980689705716578681341757867384806417517190535141394829945794951134208946184582757111906826153047667941918275227751444839263825197569797901002856782485123939946609755802249537911534866901200495577615284755423239109313626674820870834453139327078541349075926758366638585818423238827150075748339428769551051861835969442260840286172746703040647184428157553734992165789927494210561736232015309124143135660404350478105922294813553843979791202895709797744731517431745538111646451549338810549058521458113083678013080370111880753227266494001337621249579502699031473618902008850269237820726592483199206839480043005547758692568034270228220604575514817287966694981944807056448478059241494464011432658464841622663856342183153852756136034644304226316497709997328860796055905529699764136043455215644909684426817285892387637516428188699335927637865978868046115604475298756994922954135977126980168675381826638876247326929701046949885560288221669884230514205701521708696703145761212891847365953405883557285831259482060949521906944778869885106713938125284533953496371778908787096875592268871330875918901580390980207933046204905194568783144854806168881259355598798076077279118456956181109912396942050844052385756181551435292374310385814290936428528522227174887872357545732505263649523328166000320410533533010362353796216844244284344569698302282343904707308579028859470577544511082564111753725274138224622923717953527912731270256416524127877723455566307638456770392476608630258067697955980534605972300860779022842775874320960101366570557432150022728541289609781092448024771805410749583988782165891341005694526966080223031751713781149556090630637145438755483190577708419472955066160965773964409919546670916750625562306479753659239686771714411070424492343723911798713316942698509103775281539305565813782346446532837156002100153803024349679419937498136827154388304092747437780405553393808057214561323515571158391374640305726245778858772932346678026860167175862673831731191745490057105321917110667286381095570765158166144111256587843249589300963761058087343168053866165634886052877562655687256687458886316464247381415318675096639297952750111443943249131031022143897049332740541988373972083292609273174120585319602791680941132097108193063236645043377456944421271458699914396018100309200033570362764570485087415017063930912883058536128355818373427725973800980439853078952365797664028984787384078066780601609312709994815445462412869981979156296703010460656982725354033557849065318328866524859222484315209743512927088205752847848729519519111258416527268226635269934352416558386453327517046633148268339841878537875823398077168608207550877007593672369295091130912268276085028424750851834934290429420742686710800240376383916214230477644159023176153917828556228410185032556381912685245315077160767942186250093967643220848943861147440412041703393102539422527391221838833152449692831146901963350165915439686117147538441503859723390215286071627055112654129324031556594124903533572625424937234455590718311940101864624297418633609856298878295502902438130365296977894815022627349135722910135614908657957762117709488588048244678365926429545604182239584867402499719315737448967239072067287666135041883086424731291359588099864371431107650361701047459447319256586434089939352816143719475879172555506005843989815834412755417320115611065928841067212406493807287213983030587558206340331110992956878384730235458345597290501201921313652093275989225576640767476566525511400653688316606059171438675639745005466584700338833937776899876856099474335664655289298429889169744145347834640950527343422742144771655041571553561116361755472465162542220190368984662592322183506227230506811309263000373546615026553945534610459418540181435599121540397422142788048213530884006230335277692814401302387131872829235229895051746891019712618923472663529136513441979966400322164963305761374195051659890795290251024324547078605288205572515401067789222775489445633480800642382687804284886119498437348480910376861512221620285508498039036740448795244158327025090940331322545876200766708817686565245532647727163496868242238950229646433494851804626184560712909860546711970173684667087626285502172558003826924898923048007607402566627004406187323945859796773881834159229836577396234635207585055322650646076543655082954944301084658886465654598087716864527227946173950929574945435183065261084252678126934624418023123679531593192802641523395632820141009791715676001430427462891399659080431799043048719936386327689290104783718226896543168822062120877561982916650568264644874055157111091076503501276897381473862071793664008719425687970590069673385515400084780372960424781702704630488861255041772030153436749446735428726765448993807803115318795798082893203172128594008165724211410062167024379297137558920186819865582041921103380211646267045081464532143091853253884550774811528210034929757866252573152980791468967886096049133112003275198042363709912316142971631560341730196536821767436403575185738903934446571541821317880965224124694385951128487126430346456141671383827411046593901605530455413319066581570787751104166277392565841841258333660320864725821321106003105464368477603936574561241677988141359326511876384805190324126969668769348708751831872980654399355024137685613960721335102563928233112929826996706062768891934853883683570063485336220569840065864824446804079671797614173964943189085944318088596432648002431733405103535006635897912391328013965897424920291970276651411329442732158205587094193912966435434977023525324429844380802188557733021833452021725375309320570724387196747466222375626976729840602096737018608428912950140240641102947857551400626215345772291560863516582090375391793179812370072533966841544497050460571357540150338345847217048564975783741614413743433494036472954323328618765354101503882928571386515488338176668722700473002938121637337115002363039792053236033954757957252628602355750147910534429953884887448225322290956760446696881762763105808663946708230149099609046816709110490837025834466778727891439113427809323165591039368889619152435577044217163621082876743546459906723526145217504581570463963342421361326599012752914620724624157918177259596204568332941555141631159789856356358164782033855342925751227569247660230202741750004755213385425002041261618386546147993476014573382190551884571474309454772879860708898218910578212823312353373169864584940036088431857753247804430437316288651690182715913747045964241527406113820325426570935183806615696557522654956152414745964487206117791748070319013313682215540061525256749808691224462674700284175043547897662480484938678157299031786877486672310391416980802083509433012677624939101296647954432009678532542835796639867516247801445194931321848158118952966355353741668150059843860859642056394890736812025710074336122997691989761065391551059917586345592168898947152764028009769076461276648409956337135791899566632983976987295968300486132159871203631737017915049412248904279576215395194062212162379667693651196937925861985303167683719877303757521782018918394040423647956552295658700148112734668129330894389263977959395259285713857774791445368034080453525887173153947266726282990414490716447232840219518062254469743770391803003506582291442381572448907741268349998873951185958370041158297133295170173149723547948242296235293207604136975788969922042676832375782019628624900543328040465697888794231733578483330673941849708983503465838003336887146592723975571668001012770835223851658510325076976005115899327717196390555145991718743935457211483347820518537863035506902530738091209822384840504240237241563663026286355363364267797611011040012955886079459495458612116131635710471312646921615064715851405986137702973740493538210187561622182376090109525724295257341885901685513156807015155816306755498806702052824215371177470562403698526310324950471060212444756293377129658028332003858206017966102888508369177695693611571686344385932268436264144046735799049890385301470525540898845183566674531400722675173648937015792947122329404000109629949606910495315498465000072167221318691990954791807024085799143027577454159788349478293114197666828600897550001839633852510632734188657996461730632685330672287847888415239555880658602915670537852271133150805725393930632070006446912506376848382108044457171770584778618057355760379968055645750672653976015919145723538088757281147129364306796201228262978407950960157085542080289190823826055500679922547168548750508472340219539536877618477147973602555510140436365393043873732638657710263654940295525743317372582639219287491231683157129959001218202923402080902138241806079925934529131181317341241451503133957450296721987664941972144735693839010597389917562970428047977959305223461991597049327735346691903217659436490655161894135453157427325790955548115845312181551084923059740192249662146810995089225929336541472711169420604332545407867483015658229915850223362586414010277249426410632102240017808012950433039610445918346652176461282130451859466720068003949247492502689343679604446128955381229787080010002239639119052488192531851115912222704161714541776403814701897969762517984125286866479958082100714808324099911152504549989301839130185110286674091868250798590583814061012952864648402316351494658196634554028624299556431710565026585517009113587659727222066142763186498292695399608791111410597454327800766231418948964734181292771158917089877675764254076354376424913285704809131088345094687193737588144968334416663052354897213702114989041544640651096769646281365588321670760417440778415482214301933587850820032458579922087502741304926369451619927549988862130034277150187713335139796984013184170690592985664855447524464275935051921066066961985190034930837754776551090062105433312176897159202213667922787150570706688812840789005172412183311021782186372252799398465764173117544367306572265352408509759941341017656321991719019834647007627914399198030154164138004700545480469629572677236041785039595551039051600904350709918870645654762361477629303758188917253868551385589866899211823585094121888686427618353446666233392623617314624912823251776073157089595406499058846976081806969350833598261959619090077317588502398458607292352893888844711051150159860172908086875380689098895131827580212481294506353050171073908195838639111952817452357380208466508184821291507470102499117820212199893875523164081979279788694047141094912054856506775453170519537324263030181249926720529608098108583703312075125440285769990839859809369242430549870341915330598312447956800420273833803003709692821520982740418986812786691315766329341877954677753209471330439774209738823574402430462323161374183756506074151976815464150925218065630518013183398430971687646062429849152876238025598578263910956662261171215267734015662473931031029847487826387725800052769610940430990149448718903523478773082134612383526151732612260121573687983015689844601319346068249071310820351410527842777782737313561505853459693327171705065446379254154659347919911087350881986493060182801378412838105672266353785268885216644398772767361198375183930906322771625344653960775337093167048574912389419542877774091712240686134118771436060561682186547919855830871690968470409380544858667979175020813835032802766947617683569468338310305169775334656765977691436774223482938969602461161461589185544961674351274331932075434476236052946675288569057529655226005944743748378215672147687051419582179398669101546789583005160400690007154749837465500479851018871535094072709876571303790361452107222080424909757653729229814248579683181203058355650073318041723530749735174657903095028794614591423774455025820242947518728070401968935669698767480637976500424533397921109654090417997403965048547032578950384432897132930793652908662345298118459013733685487029684197111660662474127857925748375400870596218468312736199052465727217505386628343467145862322803962315245414301641302899961807915659637148112888148235331396730782616160793055458770539174577942323287143985514627948768862016463189635866016381078919695456450074175465476224727779655510996876419771851656578154586656531537472843587963955951461875828107605806997871930879726770060450124678267352903788568744380977733550034945005583102760629973304401627753675780457643399571401007614060611899119110229435066123866874077420224655740618112589301369930868737968981769880800054656467855488764871038116530167053058273568918489190542129776395158376475386332655455593922765814868057471410162626624961699524503001586476862251699429332900966804176591299422593597274242125559132546112965601010140889565258087831941683055348739205932911800643373809916664604109853758073282860437331051468472064172432093775979564379427773801301955318628722402761061864655299724883356393366818996566542204184539630006980338119409145317511292836524945909079780142628515883140916519597588478421626509043573606931662388868851368960759937037550654096538165138490115176418463426101583272492533717705471055471739401514501101570406689325605051783983718963869860756849323771626993697415227379639031982656132162591909348543573355658228604555049790897213420150014508419490705913592493617540889575751920719764741033796874809945748795041426322187944755562909072396959371933165538300551223259447719524598511252041164182890023008823968048668414333227508415926888930452670251855341161339067530610735532730375746607359209123735063007851148292033979170229752076585736258339233887307730862839548601434206045537862571296314176401559365684890003096238709361141142051963891318674115189397843191091620604818962008678522656855033452861193440270655726218562096043316570908879801262701221239948645099320062708365281291185563808247081633471250412990508473416812783660003084735717901829435454627429906854263909494624102568400274408051951746075329343292379315313293975387363410857512307586305953429371075945783513734048385358272789047474846902333441938127981141783061309777459113153151000407468605629433134124312207195646337366033080556333018049916731857265324901038314622323702081505999045232578612313275777607165142456304298902823082419146012595329102808838485717767786877023223678823466497194416886642851709134714357341972052743341306417892379316063271428464495715247944828995670076160413973068873737346411586733108618547872787928415598502101672209084598764200948912697923965249547725874047229242385419760986820333022968082980872970160886861027794511517938775166629613079860059829144563938046471838217072414435727408951505533608469930559159590795381397767262375950921216279848144133712755478565578908478101188006621113605492092749254839593602542184605610561978749322867709321264839472515198663714555557345335966995557312808218680785995134248638445238137123537689443600059988502223884389992420806925746737052282206117100194314157548307141478988949752398610293227706802060720263494386774258150111422013598710168628246603733856414055600811505517097281722780724978955855057206072034253000567088273249785239138530849727186191812848473804666197166016004510984488477372703520705967917609053930832597835572305076400686424289445148786733583575232861040112427239076992139502914838617945803106855832808348995026693500789152084867273322820187955229899609023279623055666195159187830079106231799876888045880168186212418908244907555896560895796179110767990303488624616815619497551129671590540604603124090412433178272431341480242612764675177342793811061634646222243756834896518224046243603682673384476358223681507520550688968550566411007565929202978902767652570397808189087654554016461932623764645570710831110204024681442092111828126559705933009173650677905056492907455923371614649585489304363126636617776545142420713735630146691243131687428962134282176608863952188179506633535150929506861630196485805491866465423840297643401671232526029747136757052754101716121993914166888935326338009811758392254299448613314733618655118712647142686438007563372208703131944188856732632446334414314534808763511362827548390268318978687837305725950078059428444052113954302698367894704591468947048480382102465981536090952999628902572357072365381472126260076219237821188138558467493456590939153187381216523337639846055180959804701557404776405734564268460358277025404372816389807741507214642947190366646122580941180874250321026927873018629665939770999751699716777764488574434929723629272561756098967411942536073572684789587921273071903433321311294323340996723431502661120155228530981650492849623317420197269426423182174028590397849024720441605429735306628704498248437975216869038276211761852457530757445984294338686255352713189008299422016128325295029387557297865155251086642349951924332187311590334855823689252398476958313223584628689556459348707736039994502447603090875004721298568597443013218405409926174605729214372694885493313135574957560366848334369978171620806652088558805138434439194923271736851986150367450291075778688413073843557310896079644973157259166420062383960049333251277544575086500398939885287928573421826118315022022965417007203634696927952266827552074346523448804438795967229738284200747050477630937321364918332107773157798993925911541838271224407032676515861192468184495996829964457305456757557564531378101446842258274019803287398717389206343981967933395574247173659102387970228439696678356316239960182120341319033449992413316504491388481679029115427421708270588462007730238346891469285891251551500838120071820525535658303370308475839322928856415777140830726093734178045101927563557887843368462003177146767132623884373851655538212844515743078683108098928051318921465732066916975247739609764648964507652701237859243669025925901422052170604884813903484096804933284220224437972722540012011304201594896237674352742981432696602989469532296108580520738796575605223892255138551833785951773460369621426583462307047895217768055543533964940889060535684799150738570065724949009199544902007769226580480141280165169661544982404628461736852530286838943462244160508081134975914802886496038285321114988821004710002471656620905699877088543122743361252463519338384450865507596613134545504654609694230321174751420433158950632033003632092039044956490806548408193886972533855516869772791600565153761973817394216811602128810113964315684515222427882207812174215401644678996009524205928901370913427266010377067378790016294897661595273012014890741899619305106918790558430122956521566133069620266711202733753117022553873066049081154885007062710448055358324970523280525211747526417517118727847840351095109097145384536525532759780208289537164496634258798411032860342830157796373493373495958912149336214882610090074832661207720896630021094896755641804784431879838654662747671925471035918931057316198420921076570798370529944442001197170735546379574092476260901454066446831705239116269430224059543177329858026292021992967624015628415771129707754840964168065331336381652040178780527161279604600231860927219468325322528195635366400492798306093330689713542154352395769685798814641181122775709144451772746115628929334747617240892684406008654033516122443129308691616024443834602065251807339762350466865976470354968785414032132084031372818850784246892132964261682699549816504046300601505553494609902341419240371113884912930002676173144487429252737912888904317022313321312578742444898996263482849084085605671686018806950924198216985757563257855773015318010138253831365522513402064646881526108881090544823998981978534956506224362533131722975680085081953695706882030947183706295345905434253065259514723015168873998164239296517933138441248344201579188134778468577163846514982198234958225269929008814452191360812750544347393970782690995418462400524241980634140096767957353063965121028546180749911965201391794211633438367173262819972104374805209516255390507686480989412807852465983124668132134931598229447898068918919281614540597151634086588701529486648071872443934840666251145325935901036884523809198977807079631107010299442714229449232560542597941491073456488653044222991097722471821794346230437635453860019162956880717749808164075665388416010228792947198584199726194028886565020213547587654808564606435247804988348112472486072563886290993162235038701885485912497788735694418019976362102697328591725246425137618078298666473882515304960922797210417284215810943014152315147220914834485862410761935425507640348842881912252666795044268382375210768302911767278352217026420492854791973697561858614695962311364600696886319331352866731469099624175697526058755443974612689070141940518949195730122739079219081354695102475387679518389975253602530599008162578726176119320366709841692844523316910597677360402399143992809627253151163313179699688898036268715526145349211021604849527349091116808499762539878627858363635886995038885152148068021536150858843883723363543056935797033872574877977461429339637287894582663080262478048034699504040860900794934931904374182396140557106362061638698095279024709798436552381311498064514676117400756223996139857031767130240303453053992167007651507864041210379871567999306323821120961992661838386774348659348287418582786119638496249941880424085577838625635178204575349000166100917905582780927945084627448800776672551303031435973913673104026585309449014383837351819557436050702432041535670122377830997643734498575117376129162990554564555152858838611154299101561823496475806967870179918945380827160408369317369298156927094464684736971164351551896609042693692403478628608650154532295293776753464535712752442212159830489495237797905802001037401860466183238154455808398859390100364795954353448277259177788598467449750013486782706524051485102788154703281758442049456807051177381371913042986435485715994549964777606862952725192623604316404424287167895981772649476342451764203673809787606532698864409844314315232403894175881205469892219982276762367412203047238231631346359560336128418646514016032641776368284293605071577419253456492070717698887901503455587518198492810047679323923112314707546934812608295138073953731472394870658513648396449556002984575542495427867233354119100103105063358948587525557860400015744692299411667903139869777079720079169384938576047949194661222079273121353714193893568839954832629121259848330489973351958891100382432620254828293630024897114627678952319079358814092475598458574795648446641214041087653587367379661780997701929713069878402526076283551194696723589261122035118798536451380156903168867020517594359123846176642491461485432301028493055251499310724578934186708217419904579552954281720908169038697198745301503916413658672579511349122183457983183262448641730064944135062256081204175695057651713693346823793819794514039456123235848196961624375880275961656547306210805634095728807135301912676096100669425798369027326298536742096938020812586367165350410144721166102986438631623926492867188581173641506310016735650220740873203518094235821332189959557325103687498923775016141418240877620335670457802068623310376212887476404953993988086747066603326097430669701556486621328677423282993816330100113788168021562471872402738388475738224025730484756272469503731729134457217894607025321992986744935402873022207214918946847977494296398669737746577454528256323751476357805745358270077368711204685562394855753756580963560108456075507655034226180242498236683392106632542527024477167630192149528633313339657877108045685313060405926177020906254221444573647310536907262600061995580912231172381085922603342781726517890738802546217878795867664422391585296532419357237363093920156550900829601573190883844215003179293938704754666734401560422981590192940666148792153932654189534077719269483817288752032602953110210142086606613743936134781984794354580836820083365559129710089244542327363058643273966133952386907677398431100467805907251358556850550705237537276363827853289771077088874253143540461270182618989391689003001960877279909818670085729706286353840268994604351412219027287410880780722238626697957428729943680269081491610079493039414481919718736535683754533351211866769792230591655261830160238857959845723817012517129711062082885389111090924121570718782306101093889042607375917207872169252070649138690258340864996326822681477580079067340200701738791464326637262504105925043090014823823719637310871955612070327470778535644503984083296213452044040908860531017296465530800118189108542767330590340535251390644892887019516010099951601043095446508917483030056944306903233211391445299069586690545947142041688223385766492373880664537498594710156928427626309451142923846986285216220139029626871751767628037097609438679044093250613842214762164192571736931691563038880517258219032866931813153437547118020142051427244177148869192672818808683979749924296787280913303080555859787972686766809178328257725817055170884776811594336651724299211257205051651173748761228978869948919491473499919897580438893771309016766508553923100651323376331122864000177485096902348197306020683102809141158434520966952711445460266171531558913909634877849002423841034611486576853210711103479581340546762136648539714188623954472229677662691993685329045393393278517231792778054747869104407990447190472272996138152297528177646231025192690207805893726896912217089116445806456239153349487258077390131646129270935701857663739223021273669294154758641383184417475981865725091202443459996053742544353966506603918119499139344512257482789348068725084465976926997793812888423233853403388374862451014467465879543508386273779627322682139875379616265435041959088963454457556846671726207282926920010001689393010594951789720029762046353702100745610304203569881244833647106117714866095522524667139060808834813215892568098108988971394936873136110583533923017764298189213321755311458245441851412356446070951192766421672372159110997543664829994867892480649652904138154741207281361822856937937176272725248096951660099214647863028332222776925859891514828225949134563092909954575815049514377990500163648186817259631301721671018961975173905744312745946231462098550681698072361711121888201089346459669960051892053151516115297762414240719866638476934758380719814759092777983997818972245859847626511031474260784731075109855893825320574531708016770407173310823706308130177933133647280450448957107275193211360593036851074587537477458813956370993017440609564158748147254346615647339211661168046834959422359337936680688541278019850514012332899554931213750940212296728474442154250998429910771472317909457673930694555002781053898964942105079455373652857670003576127345847058328252842785632719886494227272027656064669295903771018035722556032995985547788211194733854470571795796550752456334179984604138597842376585377319168767898137168874209157467999962252799424181150494854395807920113143770227465116624809509760803251397255985740434117130266415367529136270633109461408414770550892383174881626839147504914726490136017904641937603850913732273701173230462891024123487666025312236756502381407986028165138423437903478429699917067429718699349829652126891586966281026755295051265170400780385312320174844098351738815971269822048324145766729663220767253681105199922484318659114103159995279396971138036271149318901384330582945717399212133493534015009656755715725645276466051903317210666045733240400433953874603044848950280328958279439023673268653682452369282652585760442659619649635711662367150308221253119980868456275890426672832908945214465630054189748234880677813736130838126028285309877068659137503452336600975537391468639468077329455235218661609377326617306269606366602015387510608102373983847271081132678168766263670858675016025378441611130295584526400626673072551921677509547586229281871819982851687620944429534155418442853009210246530326721185815677291285079511233363508582497550607681962946993950734493553039577960677823409896863735627478413152766570013728547769738592710512526242760963993796474243344390040932959098008365902435651655633429726645940179094414881219209965737479835375941731275119903660331132842772374258534675170593886041014900767393791701338138108718306230618572517940319403663833560050678818317091767602621638277489216809615984673747752030467687671560608463895606428841761249715954935377114638540261572816894712009154592823227877326225622339608994062330890765423225021163458490826893057567038500714221898339039656096693698628978565400439999498133171040916143882395537913660377267983458086291868327520752808352085184018091111253524939753912696671755110027368452171905870955361554885657501560332226004047329973029517522805780731826259161798332151517132640780457775233674284071141078513980219656903614432919833487742762305119171654171926649647520196517304984536433089206952412930877318118240049099806262447225382125019782758593936663763293514817729183977512670702140715077859429543714185094215865720864704018567944870512206086370441027170801789354935639458810782018120526328097449112243175049576282263677487469487986726429474414980911850368513841170427289259348682582189324297555333736528787651644102625596844879665761339463223602942533947787001884847969054302567296187033155610875879178578665602624355562037750298999946587812683802947749058317850576773578940186465798879322419714135473434760936100142001523140786077091726505171197798373670444651548401629804089647287310354534505526706979566120366427769282666763843670324329965489330706194468944729260424821833657000633067517233849011135536448510021564111957795196559166037954353397029782966439409113616565811724163796644850776706561894369913331644788694447249561025438114423917500289456201194857162966280791040347190792707492986654147117764226865961263172466422899379584280455046049281351464449421997366798447117659711408992161543597424278275340912497420211021142226712787404477429569544496281988340653071649844238056699433108619183257705302853930748481107511390889852752381160048182902382109094565925724828855514169506729045118639830370347016398133480855821420970338540682615186307270955935861726628248643486037666003601652243255264127166794924082679462369922626424262937090850609482594291728960239614451984957254682665613129855036155701511504469470634102363285854246255367785646751782488837723979307187924809977688008333975556701951474105210483102212111189894828978363283567601884830070702357128122352624033872485073519272535819428498715900704599074598225366740205859962094465098850365562810402709323014911522482594436941071920696710865198857880810886776377272894497072113932036467714584698061949398999608905236231431319260176442974456061076763700864880356121144770670209793467468670779849207094466778385406113802522408835649949720785454909565070108686514231645616259586984010109481826695083778912175646907057887668166911897591246635430275421660500336747741556565713284492572582766827310531215270023594377282149858782359020454772162785807235843537991287098640137023625199877496200713828594139301722711257051148062272047897726203053739174812675223706910524996076771003955469040928983079903824123760650403763184102921148447393044790694242479562282369869752757341542418638409193569814375106359732495238800977935211100568777671289029651811716926482386907928693613372501972083827724995008839459924776192924034170256289629600542814744772097161659079596259686628268797430165405050840840668967970236654327485835650194043386660742916862767340183696047271056066860251361642874570868855521203835621972003642478922957671027529681821059704138840322567492357222944872398443511265953849624747404006139842985450273365520512028946334195481477590539200766297929533817641220550793744702771438277620513456982536312707388942835114202458746165160043468244126080267853202197030626820216824458607426703510980977641848707655092864977868571353921091546608242909930053860227811711038696261297594597470070284619674815846788791552447819041048461664346936286067025910660616644369076530107082824997620837511388119646679598603908424323414082506309202782782818813294154161434695305670807645745751138123505298122416173668175107033735726782612943484322564790918587892532225115856062215676470578107776585666411950509306032010772621052114323618294455212482149173411910458529222036667051729553690408540589296868502912543266568506016777876547083467121796886492838548668968323590411312849239201567253809932081002369454906816853851736782262437777237038489544588879709502179804247229998702353708401136966956682569777648294768412014438614373385006557421206625511362546892647368015153932999603321072982650320879843333237977531812175562893006304001641366911204026127873115043216128491402845910572861321845446499611455813376648136744146468687703646645458470835438983867850968176547104957751528864959851943964186872226375923384534280786382833082473548642000235547367224415940447618318023646168208143238094880020742382642783134420702616483539646357527830277555278609726276529119117853953827087038367754121998248454464187911733652935253212262938498060722820643861925113399388989261228640347884890467555607182474444009002133212536038018372595489555774499520360269370670129722534622565657016405085761890106484604661794318594895782520628414533473031188719023199879303878261035961980227204008629393015746050562169072462807437338204948629777973008315048172267361595376764851399368473190834388563536023346461099017354822189703387820748578003820125665845089099710667723837997247856657673186991948657673389854000464248754602526114977387744406736230410532554538469078937421447436806753928772612756773183688726884019406184866723646608442866493171427452996809882411835402676462868081163014306328100812741988197086304076157846732544170679660197699433581952739747665145399130959267045381982603332180992447047340513490904201576786630381004529192667107917729968607722042452864202788575753527531282647440792294295610037452611245864088632162218249778366360596335383277217999750399526472059199845151939691012330820359225421387778451875061302421863633811378735822342431721338530872530318260370865463665925777804343126237864312686225692208496216455798163357117636721090728208286587072657845783385372371146049954560933011032833368844937805649708332091153558625499826986113320340893016440822477619505275628132898240664501938121607824251846042930643183671367637504190417552615032141650438764431580825396933750629549933265094342693395401752345774905475067333246758982202242502926922339290584753370386371702529447930854775500103709446162858506587430846973837311582268191215205541024048945209226330031645897704306645800572336559019804515979055128433007941693104328644337497541516653719118255767616656921391090045126243622153135345107070741891224005174478021032095645613279796107929862810946270717559336549586395862813365601761387201876999034710247753077260638196651027628637965492692600719876173568407820695170474478050057241029601670944274273566241676918493554073332494906802844402698112012590201117721877300804994336261798910288094374441681963363914797003008108473405686747536646924977589640687548358674660100428263104896179034073205504167759816368034871443715304910515248688623919577907868521908746065430767488158169194354803600204263450979278790328750868076200427300749520623467739286961135043594788774720584081547435535218608486471848162223547294295827517805150977784656287785577659035149919064221397750588381637026830637421941591878009151753629259757835361121742981859090166839551810063710802031790072578978550905509230989118317873738643991333342335045429475770961026533123929964459747051051796053307405568845815838680290357645729479573500124159135344191789473607602773806036839362533965776815549610515251734830095312513451264045518519894235168285884958058398539455195607199193943270943620462170959664923284484334410479398825459464995821568722998122294396422151408721361403031286806459470493617642583715298831572965998875041180527231955226974128351394955765032557101026757439813049497929795047331102576973763562711283233003130358749974756685521743738818185896041853626985897369087755502607913147982222055411032485687186637341207538693882081124419695095433527432126348263193889709168241144433921911160242269894921801299956291244551542173650572963555028544859443889370199246790425625554693004593082201076636366558991214528589627530672252741408189850599145797992966665789081711705466157912230459788051056879203141244040778729618112215431862009689117233524625955772390147276207676803159818786492393871161390969824710697906525695898822069016903785849435327054432298866512768226170070994897743482205270054352477497203101775205938399208273570001753907057808168921032822472280831216338140772443917131304533259784581712583213140098203144834582769319047266349107946826863124064539918236478188399809903816423129568335467316165524931478618686999576034737851258841117011449516513822309845429658393514233941860641861425228452780335052880560812097284048138595222791638641336683499179078964558530873427440056817827880385345635656693467769146596312005090834161199868918188912555060878952116504831267780808341949631862078401841816754601143297761139590456762311780456713680011162064300547820855371305906066792291008023746924494609632501213368726746150110963818164388765044352121321389035366458767753032644815170455651767628673720892456992501735383365573093325681157213077652927603514651209512072512661042262322687571577175173834829019128062985160609222570237724116894524903881640195218530903331447033245778057957953960473755534127118872151929745448683845133831742665584554561427613045260299150247720016044309347482636393730909394406681965298872104460408894727357885064864979756878152039559941415144459123489472536999809853709245741504970856055739893192771129088897320797032756386799060742229042491614011528629949024212331109594847866547081120073662855933245404066971365618527050730244631170210588685410905507917759299233798099273504677759129737452519204529519235628845131772360778595323008142022588029472505171966934767385139278713469139167113412022575279982764076851117016194147763453226762746770155770005685788765160645642576817107738798434243293153373803774209070823796801848115736633431776750815708431697179868023693028639200035793181802605771401301943898189239607113767941698314059158050406149305870549713616141280756643855357585740204446969821460139827067717739902263468435247690135909281105077788267762364173056920956202835369142490997839036918312696035012402658036789641718193183325375152794345400556391222275720153474649466854169391784840867439687880740959167275906716475474604344147982497817752973221419276571392678143489007267174590371929061354934606500810920856695175870253308692493333809652399209436564279295588251281123606171345124820217898175522025947940668081678606003014101577391096054176695893107179423856491185503761854970208447936041881280491773246184818174860551531458352216244847317356861607335494270043491777500158034323535418928774805846350659412292321835133903769156691494561610964253904136560925033009797748860249848887509377234548918438018252210313450883289447927178424813339205349176683715124737758910072904262432666504551133855494027424194786972882563195449222122390596078408294828460514444843638551937318858492210213843839545532434854350040908538152327017106466108107225540420429408124618800851225050260963945280430040852218594915808052390577470163137345456133888398618642465549371969803908828757422031885234791512488211730492984989099572637410529510539767578258544441675332620368069860507376873341769402020706410635780883893925918716167393379829974358261628302885565208914841263551386059883571480908742644398621451538380429843932551990923681118457835391219175721834468532728922891949065811267522903030470339145012355050348053403868905135285434330309706676731970716129949688866070448922857187882037553446175064841695733144505772333641716952849078107315915864902792826883168069959113227053816407257624729228955197038907863206826005480254810498939217448924148771686299807258235132547924686627887014360271945303365934418138382372391000260878638201605009143816592690455658614730976648758634301284762665245382260539524991177346424460294015968412412830828532824073534105716621445522283512828938200268816323308733554294882203328579073829859410742605380349370909914951321404326100975192443665612556362080212831675226820269745604822283158384043286176779058685195379470595736926772824761748432017697310358404014313043675397066319707287960396559947420961701452542422915529481459842993477521760151568943108043141792215777310781804746819730526729136821929535126620854924480647222813683518476270635976622365203953546570010736285306050240383179052877931865919643494949238641357619827121915063692431949606803539729684410237434712451099014421605027195960184720099890477499200119800616045348310994845601911854748020107135986124042636058115932794724386036117804447199222066497841101050868969920556035564589467011945982588996089127934834742967415274829256050868845582937801995929845171534888609797080941449712217643395569432813308062517789283239520979494400362218318325765768067074811439486445039996523047339197964047100001068468812476553310430091200431392479726141512817175545427850517767374989204929627042212845328574584397423902995243955503864849697455576138039580597426710673620964757952238853813570196967672953195384553191090740815365469052213483734794647779191973917908377400166173095391516866746127579767843625045191956155555357610088633761690752108649375860585311719716560423834400778542867586020333986580332748254046073483957163830110250154714802421194218136368337362588913862581565878952201330254697834261274096007669548796571645882917074665866921665301360859887341597369459889809676812776986849170494289387634606822206738923496124041507373785194512755801906031348700370631571997001508326204005225468696633995061553565905345606646039487343968371226372040760159595274233796424539031789422039171845350580347720639241114211640774141236320352682369408075242312561522101573677242299170445660728476267673134176169903454259521291019506799139131996176150955679548039773953581056518345771150365116558831859786641691825362893340221330409576706962558292325280787631654228231706670310513888667919907030177413842147865528760555824411542112083891174210142913464550805004693696704965663639353361566161376530374090357963107493228445164428371593692033051584291385184490293195147278891510262279844121812563422032000318108490248201163040607537329838969606658533069886402088204464624477177778812020013306557781810674998545121356510497130416898422473666782158175832490867242629494982238299646800343857207435065456040437350520985563887926479212000177969845891838603343070850269824577606119206253889695150559062607829782611768741956224886452229418509909089998413029787606715840027395928227661092505009481565709030489804018612896166235481466890991964686202495451220026898039468436132464685696944438520250766981043193570220016413676644174180213662040458750505870733404548861814770926011678142422169207768140452338769279006738705428118994243687055385449154466480413354108919516242678797168363291806322289008176436729527951607338054591273018636699980886801727953015502522742239117943339909741586113556408424332984609799179759562994956581866616000977102529377231451235010913941848764713697856908485920854456384089098651895291566704812759991002563351369372539343246142143939976391927294665594261581346406595414602531405093738952065980911960038741812485855935805527963267302640437928948845827024934865857851750657784698682617738989000276374817535646139580385690419373692765251073718341649646038727196811800423056515230356807386664689012897304268587073318155609596890319234517180273753956510725314138946764501332911839185394509820395299593910325717697480972076472546542308537753170183973740430683017797459566781726817639189467447830091865297826192642442042832934793680097169272843113082054036958898936851215613895984550969934702081490712908613253332807253627128360611770800618775556141914509433294725494035815719913910220175486515135647052649175708203616310046036857247643429883993049515380099684118385223503804547662155300583226447052924450581904095212203017007678134503814783352167510700608702587730707908499410488775841718391379831811360774813223876581080549226272067959822543399009776014478854769406579087185999982848355376319778044684013038918533397336689850906495616587056083143557546722582273337447159566872655784966286929535528122334036598714282924582024181340902187495184936902191751127433617772809678750891927365826135462686047218985555413812780981330900508788725821237169443359061504510942162268937552853032036078695714725759734781411065264623973396412581295174163748414385870065474847405246606557228426573280672587902215133658547719670020589018365927054099597230524748443204427841915728497016009316064183140055453199199667565871573585886942177705617909256640810761833141706801393642351160280005045322669626086435535325262174758035632319165109778999685394699496325477499144675424698309129516298447930681026932777101518560473205439164446532087111020164197379797909306386479251508906483213028118708651395225593561769824383467663126985726802158659889946814755290462315656631413008798720409326058981927360518004616936408562655728605698038366693740211360649575373668097696839744961314224418387477108104925250693567171443025195446220812290291006905123596823310558938729823017844846228756677824619611887673354433382275514731985497028710679975637954466025254445605275288895696847242221506512178067524832416329007267854949800076402157472480236675500362474917940948340795657147261652893404029438988109873170083057253779598410457594365579660108355187512252856369071413962445791783665069509232469152875932280068270509171945822084395563692265479188967927759811066393823933171695676316004283588554617567065847519337059753219621992143463334256724046697968062147015992677864806340384356945007117799915378085895931165334993236477588502537182383796448165681302148930777859410111523741976762855842840623828756569648275255973695699050602528553131799913894249229732373749901956849215963074068476544476821838411084676890305168339131252522055012583934519167083870109491159504438266559224206803708395808656278783134311460423201905563270603722727603183428774903264203613790167520856563321496723521201834984591639770722345961749166524490260459710842281730975167912307301915838442544129957455074111589423053631820466402433180790422904342245090238978695541601939806768999332039195105611163575394993223711581828041007914375769458815336112256898261899034938626726660239513568036907872317904821891583571739496606370326251204972853976453140758671740265867896262615595324145140118267749807198538860208870805639362849965215263483788709791122061265985537754806608167028537632586725085833710453497954390001351194817759516963210493979668027188618087790915160234706407305119583322186270103251260785038897758092558029470178803571898975757324254754145037295711877243985520947838689926624943346102966125398505913248556714419626842227245295949748480407166554586900872862361986101215289547189384926000503979867203256183657886318480184954222254037552320073434296535174552459911511110097279898283095810767556503308443639630972881026714312852329496045961439346718041500400420676850453741593335019156320655558193766413985123670260888023426777168366405054311974849375737633229682293512531499321863279372198296006071374181320636923802212926805133226762595443384733455855439033296117655063655481179403659444446648862982803829497066044610623770106287949938263786298573132399953086257795095315227951253461712777595515581590478020097633530483428799828610169347142995693907278354055025652724585676198146473044132025130501891443758140715836288942450038496556396714411385474271800179807514844173340095857504831697590496448206007413450774817597961900639234385877193690999180251944603703718115484498909045953566386296822877037876608052149276846293420812634311195820819767324129671332186565997021667713393244267399174959423108898291603304117578428933011021940378795723712843153220875008432741098796857136638318277263493619678944808916275054742846193274408247589628534214922697470950887735353926590549662853117815654111999446908734703919171466512419840063888627944894378685567036748649412555735552880837980878163499765181097431324486395489925215087335490269966453265679262449388696333826284643565438346371298522186257086135256520409996305625842949984596467137784297904194804935456849180339746760669993147054208317838104050140048078476985767378542694442437369938904222271389219067851715202571820302198635450158701400373062148517612180307189925726493485552813757473424746531493821643550117315738092646976021262487287943107874101760289551839684417794934859009709705974912211329456019249052732777251075852876890706314498782371313832498495539384999911246492933445167688974341043852288531219879172582823433960247205158089542575637725287873599863982464522403001781578736275195670610186722394923927570099287517164463195377813181725658217507000759621419142959707203712632797516154271540589939087566872627535076234157411983438054155556345603623911425553087443057936046439075183103292704224596786656587864060202293035787792661336014771569955949245799674876426304365738714202220507001001083177007977824362026917526478418059717526942504510650874799352254695045408019100005560391925864415108930004753595533698604082404695693444781153135849455106133287526774634038667098342659072099580075999858750779104673239925680128691691880022714463714016354088129713307838462999205592310911636053297042255612525287652166712689065708300811567868573346438012174773750308757170055079850409579916200624957252934706387907584471754704948029919254310287583602926098398254437719942160106743453222984960880156141708126660509384701281916925075511838179904215847911445399920218255768134000412165186592410179895115096732192517033391518640788893585798894840759997461066521976502832337843207096794357692517651057759105799943124508497341998598238679901297502467896033478941161625364101181572472203521711018769499362623702749879496957286598585844440542177288448232415019719191787252576828096250746956009329020276254159239536635628432296591967891709852555726868990993301031791751474244121824221238043902602517699672788743862549992066551661681090398090202205727646613662597376968232953136693288295238884580888502524695497101243753037033928448745426702958728778136840973631526857120174523416350611964430124463105161851259248939100459884924108212373418518595420539490372179104689132613235076780207950537750294596819612241839144749662995676191494698395955641120479128985297784453934535382581674663271910543982056926607330538454171287477907062168291389067092426194126416483835180688333142820235836717234186662964773707072226255832961025851289372448175903091831056390046271644725158282398929064846000513680543384026480918025851790257751018061708650898931013137302331291084614490011836242866888403163222793358013149923479967412531850287230981302973564124002976545095126006490565399415769632277305227886892697434136835482519397539365273161627042487636013103804440532707669310387213852759766360420545510333878490299579092030334936011198003734626267888782841473083460463195671592713902476641129501628220661919124653333491933624193930461562142516024711882891271612059157058292288531545556309242215610458606924555786686315863038903896973546855448289354642363451809099794404412399337794717047675380926910314362504627021839290516900882284331845479099878285522957106741093805438272860906094005086804861994339188838171860215336253166483386591418260837615611258139543682160066560612284201274227343632642232578683738698653885579738738864080792090579197364134010255347343764872147591151185630962879147594264831617503137904254936020530007636100142836755276386784236219894634525418988706973183361639757560250560196924212412652631709716047598490200762233225210441533184848750921689181912069674192362798830465770536986761899965255382712844697815098868898417697616274344237197053219109376179551763791651127797099805777421362185724113428601133208528568183498389083342381524429446732312502439014730678617838268973908970869577174436615923135295667099648609805893408615303673659990211905126225823893690948660486211329714114699033990940162978113293052381707657888457009464267515365317913072790701768272496302947807244850356344154086571895769976117678951329801713942069169369244768148535335137259638492371203175010555076940404132185324096650066048236027015622392746451360600004468716700093856220167855709628703435948277664111659064065814979929607980686288407657484877801858568962021734367040425122742239029515828198841005471115512638095106786528213259647698150161579811951299410436113154244185497029890768686992021122323302748359411178329546315399243847347604396381879054365036268081618172056301846581709387949606345472176594935509200785850943531128696611578783125181781363546940659323542208438726474889429095473018915597304468504256043604344220696234050789305002971483037567197161989667855292583743450039909080098855582303279516453493795395695637088621692769967360522621419090935846036639960107545515863280319644870412232712770227128610857189866939422175581667787484500544135201717799848148973207452461971663835274545888008356556986288038905082984428187459799956473152367171720604829046703369626354381476420640675586718126135868971691816873018636532413334085026739407322326265632627382790207737346991626281515139925215949909159128185696718781028318859524404197168894108513030085191814291944632442736861745927712137630610506928107495714042671096878215897259151006207928109161870358375434175061839852351086263853195389789161889233409157946909548453215810883719662964169746148839046828493571447536701185572571441660874239487965619815923167938401755845640351751117720703852662056813431778977190687613414225974652408373141158859914658978229103949590049931985890609236400446717403236585406077063299365681999538645920720397905973499267078181598361394429175843835522886547903885587725691128928783312617437338809022351582388090572817063163451917465772246984767044634143373177794888552861343239082111258152270165442765354192958297054214861159652222443630443429558959392479386575474690934164104313266233596260041199845754336311844576185494371618518164462393894746620910936876222632836957996294628685507465263690316897957380979659096724327559805286295409744158371631308356909094739000504219732472301105118962527714392664496382811615968810967448016769043992360037452301593410323831391913917644546513389064643637183163582727158533723599722653949182115292010266598884309467330226555386949069737504925056994112352847640418402993346509276922666093355915140693116388754229283746062573417368540957477129245130890048154212877915950245221616341883312460355912075864881712576436835632631947329818122299669699960906125246976186212413243572356041805630241074732047737650589802165652038736947012445441134386876976459377909562232442856219600959713301668798469495886748638688928607305429397807810436702832542714768832112481915669073915948852887594037275694485071072776958881091910946577891742564487757405171225711848158093499860194837241924183444719113810185206037845245667397775698952392016812474170009357902897827877748683753544212602811226021646004026416326179304127799981045135631867401600593674299006823885428842131432916808265425626843692977757527298732623512138963401793083031393737636038405160052956946689242322322755117855579143148578354799392344923916647725776098027158657880227715357853042598916419752591763392526098310777193052234491940448519028631413864766811723504150513135575762378442717003286910144273961148576479771115589742772918614532198018829802800536042668935374576241332371557351777958417280216945442897301666583060764242208722154148910999565234218168594996690392387425431113774910230186906911831852677818469193376554263105445265194317369959059295427850907174811099102093914994404313676415810211652696448408548564643755854474428107641898242767039742287774487872010009152574458210402828624092884658263158269115982706409327120961283047260174838117897180959651999734248536895898642334795455516479845010775392308343790307495347516733535689175440272457373187959125799861466737556167580078303282402090692529775040180475120489284892121130519772582157087481082867817223943353276552667945195366736315772749063706413186283584381772100054494530935431023047616543707145070081955604128539147339520360080354131107078201681334958663154003716234233695134278510973014063201583390206570070417382946654900358223673042747603511170635754153579407055558063499543482944604443167696961273012213703907032843465619753981669777328016435173284297255326194249203345285749669527075514798111774628587417500627130607481124733156654790987717713762253106112887461242916248139751445163175660014436582927073424745909458927250031892655286163230819074151621816424944352252730528390301160437330762630912536707137792102169117020276056693423493755824169368079831673603249747812070139036349954146133592200943231370513342761550404283766841326210922489399083093191342458777439993749066202166452790759447279557001721503403176437359118416672124811443661940666327481541786483586104099906934154118194440718289462118101145076190092252536119670997961175990621492107899258889618607834659354121837154620440409090868243555658472784613165516704139194875392665387454780979262855312865362538834351525831582718328457573893675102823243579381138513976452754420812537718460151115117177109812701456759000979216910391916707689297911795049568307801881660817032484530367125349599889224935613698128315443084087208117641058055660572672957040140993290817513795343307751292009000961377619943047712343823605478916759266166468319046661858934550846129088145321252492426699416105189029008428396379512298468661895648694864649794742577880369157326734290775785913337187024653237694830118170792737884302524535618647560806186468683336570563174768052200143029621086028084701646906950661219940987223739382550908240087829726348527315805521509148009696929076713620661433228111594884793097751971010788948335222135546177251794344888530175501587991418303118534211848602386241832338354711238971689917641197555796154339252004527253238649641035562060509205490537259610640054150681761377983887673258684193834822269047083093264022470182438914874491675614174593215387942144871979895434968372177168508982162380180175236983336631846943234134721186596351619511284842787317212943010857127988899201672851189732597874822516903481754952034472612979509628066192087963534220083463586633840533530503210881904175783757265781798682985773402935711746462253398547928446519718186060285135651303945464209826870924016204246412867299902437127314289236865762464979531219144002732025559705788030744429770330175753899877162684062830972914201442878873168624508955621539746394461078270793338397632915304153918907157811431986133952597404939025642116958222023723602482656404744288844554540628477162572367694003192676345807302772471763398674419125473345708084420242954040511467114248017746913105183288079308539056886367005471671115134571146829388030894173272827145143482409103506453602787124225436438924928553834535587927705807810969462295469111495981833695379789988614159328085176409405868486217364147027399377485713297626315285877824324456927054835460174277876994312841523179228420226306757853929049462223298099968502823074394582635299498550452927176935214459632982129844056503487890831441031860057481325661423412546145512551775092659183059812624111788408078566843902879875510489934286642895494555853991163089499336256522363136883165066931858183370358279611442027877913024125331566648748095745571440210210717355576872907212176079256950223267168581048748325999815970291624570560393904353572253501169033784702995716533839577443414446448462993968372028297928844336452429704495767942798019380070630029685282936579303318285984952070628211864788058695830108933818575531618228995770772320384414228325389106540094305046444766761515018754346402569182219496500619424554032727930493333421675554271645848019159749850763454619021237741022160902254977882544915852570802445304070718006375721981621047313040874159737822945835666564606507230561634294546374482217766258522161677026319568167216257732302006633818906099282933080946113457460039603669491003761315733908504988289407297439569443402281938253703137073472775399613218024719604598865111029854760764167784943737481972452987511402468525269020572371445838827962966741071889519063416962829707647145841204478931456667423712852792448178132137268448580177818968807334452279901386781157824183896499796529026709574628329442781515835586886377656548404088787421648250692914507477582036404457711076792535595502477668524951951284548506562603969360711808247827653617721354383517533294701371895914781966446533990808154182767077880527181876833338062493593419779341246923038059513830361017615985671999550394522775587783605581541316812529189891416112746485815270385712791146918607089980157294300721855859886952362077861790423937870454421725270625057048894176916855234380365588261852287972479666342493050003947456780899024015957035353997562165723798563632770244881616345004984448825627570837004762419994214773679920142163493495241753542782149414887179365959999102299453830289801843348106034787630300095305453673826015460165181334506876001802895012292681888922907561437943151652138813337421813897356005013629217553358251919567485681601804026604045687275834749742446609816598987147875395965644899731762159946692862742610572792533054590254126059366063945349549110957956752880509085868123334273324190702340820581617626864134278089093695498116899121435052334647738954775986447140102246676795993627522682675024899580485137616598052051364284756541431095536995793407799072370556801408394998017814553491835254979779585910365854726111844248054385479896771861871857849042588148443138802383058500616164982088923813816887729979106501983577329678063862536533975579519050653220353632342077915640108868689031948088032537612707001740718891162128125234215437180795202065326480599909125224029167749158215523568818326363614914704131528716108823452969955589413295597507940482623229953322666627796271619249961657609023322140598904640133640032592010405725230971887625226875671061199008693309337960765595740048655226915568075425079826912315291236693662144440403896297698715661690680049151248681239542350670643576839381514920531698161017739653391683758046552917079401027159917557448315626648753786881699279106185276271477783033970276636271119600769849618525384883272322671657770391893281587656522419034956561513411045409181344042981279446200393723870978115791350313476333882272545227779224769135905061341102476670239719311137456283009646081207727404467283871998659278056983095078239327799844357500945439089305740369243301590386380226961750996447531494280537321570359298844562762178896331975631162785402196554333366989772532169621117234838770421417095824261879392964756029457915921713194347336838218973927849355110754004905155817964559853887391951613001343877171059594452357424992807632497858377918400054220041502215009456199469261940815587885517908191891349309697614912881612342841731538765018432151943431481294637649670136843169599636824450819452851749907678879010785630590230569666419838617220547438100571077401917263090107332119299991203862355221850533733005435895076706578594402814080212136280042808645884166086101068536105667165534178869433991246900623307411290312058134542665654183176693771747263689610345948901945416407564749240534760490307210746010524408799600163348335078306010109750449344424538041587058356553401767637338116322724358055127307989116746229703589895753149562446556607300006407418797081711678556718330502182792794582693306345998522321836434876173350913408638197484244733373714471092270074730654829724825519307611089185722236166849629975230903654005638856977023109325514815920348359904175889478879317030006405475457538823305515425132455041031403369037233696162180087592355047439328478367723473933999874423960736717841517537390711233935320769110494280773508743458766850226444350585613118444045490555070422843779702875026231616662786057244268428923687106488687755839062909898093358216553661910237337007609508541987366786807982439171829319302621798516170043539325568972321061450099716395016575588707027138503479719144259017291170558902837990256778890209039584567132049420356613216564334706396958359302728697687626264875170029381912213890618091471164301601461191641150554793382073295026094400938912208786507487381268922714811543990187210138924700861997152552399776725723003794441381897617318226378707749086283515794913130733618367187970688770132080290070773458256213532297221781422175198629658239186811650724196824432188389611293396402719017305058295004154718458013990218365263069526562742657110999689949562667008307613458572841846199479714147010885635179192949074114685286112677843451950458782248943189730395016079895230644897185628414099102766980290541010777778277656902384757428173851096470160261379796529432098017046441346917974090674501350567617200466974355030160040319890847467468560516736141321526573362609134794496982970340781770471992531973556043621169065509514601425097136845355791837774449010305869797955233769666922111691320130984574812497626668357921661868990918867356582741358089739643699552626293010058594647192369001041276513007689081373033150552652123296868134776975554886331891957606870422323918907065039159179702504145304694587721831941169855398444457914578442018953216236982252847540037071068578116939022144057473724824831577725221291385971432062540714324671092129946691034506360158353466945984538579358664544015865303521161631298263476831734798038380302954623639505525099843706748701079223096974025379706870312437957777717183558156739700773148799859735438087380161343232957801690826211680754740950348941304120179741027435209299067321479506075647020710653949186060255030444883848516960490497918506772148202354571922658137601979422786650290035539711323436354578469317913606277192778572506774693836106106627739016270091373034912395475598436290082675195846784317758662982489117475756038556229196336746189060855829126100250953839167732368258883430069638165917620711261426233314133716836928888751571899896914383008162100339367249054401663651210578317858209881606801417022552511975949322555787701408493664634749215420602095163505438948717509495787548438994350767075390025291542944415759481383194362199957088804824685776538407301550347919849571317125958452014679983351284575078422033366016623504388244167275923011652731395317429542538958530821436650344618435173713178046804799047982005313367161291491931954783415050224724164781943718459204824720329496025068467648857315767151226582073810936020540508905869790483811131605843807124738103893671093285629397286859359541214996918723250399518998564943286028856066496578082253410475564571512273214918620099701524070196735282439802047878548774295145727862919086005971296017245840958258593534943088815068674672004363803422031871286528798937664402862751893226180321272157875035193886004531303441696315215723891012729636927409624400261320194224199649011418008312701569805447987805428766534343660171309646431898169334028288703503647298039582630870563445503328627952247730680970169668884848221435826428534671061351489852311729214079521017871613119351587289035178891716656364744109998843120571360045738970644788395265120831258478671473927098897616640664254166431266003527531879293528987707702205836146061686545530520514891560522637605485281187157626036019217167916447622869118879082275774167384498405252367772378110361791632088019958843712341768806011240970304031426411758849429338428397284559536338732544167300139654784961774370262462447133165139953001024391452475306802067138067638002457022883382477532958260909903494798971669027184448245165221025388767532816208765948468329106870325809640688256169864280812908807579340847078407743931128818342986529231277814998965502159155529333546008965391663354152475983402413274028111807414227551311015501610923935576168710636847047804965114741876573901756764844407172298624785856473860984517445559059072151058973951552947621123979432531844364307042339326460552772953698345859380462951629192334082003322805838972953374398914765727327832733960093660216009471246316735225934129723390581310342129490449112082554451411040564200145835468939357619642588468898548822729137311561106736345452995568508747636786886317341828562671952497042614116598112796967527136100596959936354801363834954705228985215252990627206381333968315790381517123322848313365929280306878830487518839678662052900040426171451488149889015892482256380017526711235632587732715124888529807291474986155753470580334372358647811638470572078301727765389751481109504630788145677422871165787687540941304954606089602503472448501847661865928088760938478897068357751914670455671860657089152008654618299212783978001053917980820448111812323118845136124081875564407726141461911377246532188167959758231053897161942838938034660889898155560265566736480507207313927712463858681945246342267916652071119740182416337509865127629684703843919575627736340683532636555062650512912636731805737550350583380392451349962203986447583660520882501832088014826719278990638319173920800688827792316851009379033273439178191946016691876330219427548974496019414350383751193193609164262018928865350505439847621519952621663362344748175404106458268069852405266648251654580392816134805010495276666769012379156734145172920296504857406599555734591565497072476952854597460260547700792565362294347611239828741375432006222192570837981467777820885936676366885088042842102094974199470533589534543048548424299142230647045567573628105689715099157005847399108761510650459118394361200005761205833003521917987855888258759609672879061725771271611851939004972677195145519707705467853020009434430397945203555368216868274164037133136856097577115349105013224395123215147852560516139942079141918538147621341037503612211582947097405002880642059015052697046606767673391146312444034420197381883245239762790574916956898502374221403345070094083239667768132186107193354520094658502609490093656439513980125410702165522643895320050676687421410609367381120992178977283428263727835611882710753873279484107213397184527689814082635903091787077492808391245244971386916741186143688740771699214577801726738748526532306273404790405506316001491110159468248960097812498914304925263750932429283508339779715270267233119607419367768013177288237519022361225954824415096255206745682809935579463723654756044852572919559233060151183445531957006521475505681384075693142758966267271600433864390629712452533278076210667851645751832272207664868314711278090588674057684409871042822069143592885453137209800163883344964362536147034718508192806631554248878785792314752627482124725578028408294225555967208121537719349345933011854872755503375478430874561991765750285271242502812849274735203621953561024882264693667769576163939773213401284532549525897866962203048260052565254119999174758271935562322857070876188545141730793253832425747745384058528213304394882403364431000153738851460219806150698467628261864839792352885168369003979525252987026620276707055443535138543438839489578616117975242194943018561938997282263815477416002286464822253774414512276006651516907954946325766108519694031131504459025612777918504510899271443664549574877061317358180475619950697410857625453091572424169189282840005045674811870764328097143181183078442007387035796809255438419339008431731127342513704539212263982369245094620771270624704175880725043830506917510485497894628847026210131277342218500812777774115951805735828108819398963209413780147205786542659843779151095325788316426726275499460137961911793639562979281235677195349092042221068147302521538484877640529828797875098609143659989843276139719918502473839693531966366596226767018068108147023300878580414651654913422970009792807828708067087474346174519420836229592484636089616748336242114831652805154017681498664425230410728796009737578614999514048261154991534076027108063924306930044474987868761446031855262752377116992838427609219195052484285996924640232051534576891094154222919467426780437973512084098721814791958239837915036481565053993565248340687508171662288633100422525345755550803397542287379044275192469693433030922053278110244898521808475823961562746733915258246865504494264491229553018139901949208885145210304796232420404896291414480420476463662463461242890418501278423474026636882438625314424621170362762898973339573217351778471963481720318938436479929218864693170368248601451137211984105164404797534761874723142393770539246791005662979394748884960815328149860944210561399897528172252960865911873676443653954382458771318689097550273818656722441922236986338113486202136320033228927353984355300690638949160663138235946631075040014311142589126098100096053893549790951499773778561914402975115068226087000795552493073738996267328971507086417221101671492740825283884249628153541063787317912025938254467405883510947868253305434856019163707575074184613197739513474856732376476461505605777880174626735954131282804742138969822437570557998535791612140369971853901259004334347030517780150360455789345914401310154433404097813770303822009994512077150701061992509595709251644182544811267266853304364781422566483941199460558387409062881063958658554206033927269798693234878975801684011553776399733346532155665796384889211955204044313570245027112828472063930890526303207983324810727310198806510731263188427001031331504970013782526832799689021597047766495736075018224596957362092519462380763784161505086960127013075010247450042395142026572662466157210224855383306781310558636483403789073966430987522519418708512539362837922328581532631621415359749207185638121816287914012932923426154221319078753308325980171507536892684111215459718238490483072371180501331809144465555866889046479963826494236242805388145979469911455676262813577312328844690553518977459894332590527775429178123419646536240020598188390727363020520670979899519191575984820677879671011109245773915332752463901554744671029243199041312702357074102016998834128992133663485891577942973790207633089611833201588642419715332290602194633810590220775332026342573563676689060778762696185367938065761326258398946169711312325943800710549482727854565160874653184941526356777438110588347403104158319518724066940411525671048128223819013398853001334163528685720822792691468382296187758216816746275748100375696719419690263266194024660728969422627343377976469199865491356835320334916024809910413271640471450136694982554952989919666575992766677292253995698223686720653031594252620209711687314861277323926798290223697482425681078241602002605042730194548648043477265435489048345479125541522339489609409863487342628744684752828959133647355568851775310201220067932816978759910463289109341162292606393988485120100699816074447435154031608327487184949834465560566052715935091839967122274008125337828207031092606635577705455419583613075597584635453738419318905523186247583729495713616923437389123450851180326254739505752607395783797676074571028213792118462751175553218135518551444774283402742019251215936152324899225535444920018608340851081010117076495195352859314888129406856351211877597724222583112603116966613615306489132404556139421531572985288042428553936149379300068623500686089367188382806444231817784821184516961039579955622110707398239174338579458235267547426977938272852902768343035644312946893950718246437138183160176728854159978084085739229301002963192981086183862964830960506519138038279452713715987610444804443753407339395335170865764001697088920399231950238364511700933624568605010893133096059797845906277568344531476132534113082512715680761679103142037701847449641002386185391854866928115262650458504087024130082997725956352934801273670386542714353927800119360996998556650609629601798031420658538325087807061377507062105570766808639251550129594922045821333529313975409984656783967237985583183209461187788410607372792451892814768114656623645067003863870939360541992829961124572435186798826650131000858266931922149254220058655571248392561169642893838259155203859317157162628535535787246079605532526646562019820652144001903226559844253409496512122883869818859933792065433163493900880071089684798157969759380636858754620308416726293776204753167227920531207218077398560504867069042889459867186392765005414311496750523688178042485327543126075676061807035640441124183480809451797511822044539294301923625894677509344296135835835121373749239028636177061483669986023619431393015069124324621519614184814687758384827377558926155643384031277845951855401711279113502940702769721658784391591978063552852299521468507285285158512405972169996989204284744248346955176773092200813397804141963969988662468527934642158918431972928370614799396161514333446681194199868611379265555818256973702292463913804097513162064832008984840816431405597234734410594052830318229937974297728226627664637081380052799613733224557151394215742708412875712238565267928468811972364443802114192550947280307987165339448613355051565893620542816720206550917367039070319407626592712636533387654676182138830594646116188689697449160137837524410680891979474013558214422223938554751381875950706648926544851918706367444826935192929812298807200705593706358312314353121870358051455924658832110476553874589300168470610345391752704432685287303564933596739268927691323963461839187742865102322165640118128684816906373947097471199030383346342619540612391121618136693575033930379141154784547006682084405336651948778272950892972312845361072613770168005096137568161034834380936968391693191487747266525889064002024138641494960464887930478303168668338461390516253694693243514201230359832415906053422851987395639372266220235858159603108787947293379851539836694446424438304996399336825790504132013465719735702449826645261682293144732862576870183453348472634228547815253369298711482783388040139923520119553544045965620869851068312349308305624727784521849463051248611867690001123702778460636409085791484493721832903839318480454322942506856667464971940879118825027679306145550122266685427738412127927833747271450374134755956306847560840775981751998779072469450723068514541895901517222626509962205709174999745366344603505093121871967932486338756863718210201972033649316567756080308733109150920590182799887475135022164847395470063408952908956892851950832095312196929094790933408349527691083203304193912057917553732182635762737636644088436767468410683612630486904656877463861524220198349230256477820744801499879984395231674707570603415429800931397010919728360078094083188222330190323473484609331677234329879865738865603132500788454051849884036864790610276804938395080125771504383537115607476960968978768588518084820374561208174594126117727898228496670323387352805239791672952564442827763026525798157771045110672379457065915994712350671669630038167342378975711825905834620610587431924585465365954560547896618690963843446041284543988739327706125508722122543240438856096908131827630423326490431446139599383167988074222019504974675400295659483973233724676636677516226750298485885615937720676904313234770426180966770612708192692401258678455182282370849178454918314492856751982861255367848625418297204180612301733356316322674634952461268757469097793282389169570436495680790122732951706149543023734905759101350585363562289878745846522103970339251444738877618900598474391169746915815190854489429540704024932752172701950942244769803720210732503209977306636629412200029774272220692222375566865413801770398134469446367031456239876622842711768396454179086211113838620436200216979144067437491442940851436382917327550927601063209393844952541087874625464052114147669977575667384935322849060722794152154001552472037843967033428276695816007115521233149818952379721393864362172180195953499747708340044823959636990861687638861949711989004527118140925235702205077142306160783002268984707993723376411602363091815725933109305594151113118541683208000988036630621462451297255499682728546610622436447042576283441544022964066836833533746609469796629300674329872783719100817840309150773107393940346294217853527034994610564171241429081155027138940735723593639010236914034407694991690809064351734377781910523414689186912678107001693369266122819018438936577079969271965814307690009196609792622123181324282336344084958979446154120060293459567943307166807841443827746703442115206713390263023857096457867083849730580571088232333373005302134872191774815545148001303372387901454500901588869324415713003622010626912749356219316080631430842043401241378004212911812822473741323544570389698456447613377152025625622069931457906915293921860209660363136489555750464819117839221359606521137522677894467914096830969235747674373027277751630350970727047002744402679893271408253776661234165939269084382882286416619633492609218040192019639522202385023077067425435636817685003129526491457184850411152663489225204557669688143856707989366378716129256088519048089117616240364664664538921193950557807515894593276774082311431365437498532268869909756813170665133927159065867980970969616996533892409774662240247654099900798633788578442846139928993171514337469848814667615268012140936239134724070664346381590280569673223637471650790959829052915330408008092513488841010773444959156235193303700186048132169581896351970460578666576807693567112110805446013275449202956958188389755281300452484564394335636713696709227459802966860714287422456558982846947346244557359285774657355802984502539237469718444812926895592192575178154715675921735047242521349138703038499589477478353344082283882758405851049400226867063032558933238984981418627052104405472400303856805972636227109947389524226476169169109170297379640036697113936246978073634874082741957945071313888071317836296304338955208972303127096544496595289806411737257819810338526530425142985575080820135203846115250294051721644916971958727717897889895397630693296254383543487994992344404519874224446120589568348325244754601175454600125401264893669677175464795716577525589514763101247140884335797567845711876348724646335419300903589948147659934258985162385438426350408929650869356037865290168933990751786033024924264933210477460029409799235705713488382786415653195456006986461185239806036719561518143341802335326755519697141885769153031712175931874827800059837915332883096678672859342542323617991643915881390229502222453376049446503445010223527709068766640769559886913071255314357707437324418642773064814946680575629537061570450900729548219711439013052700400151261439713073692378847615902971371325668664408581634621915572302357059754307645561212150338701940371372649164824853522216994171764330914303978758701250392788503546019536056645350497881599383855784519522917244987396859113425260044930692941714797829879138825601748487432474924758716078047564437326445476257738170720479540580095382983236613025727544372128687375474751879697215393706543670356627637570175248403594230172808598054835867677603409224238491791038170464726088237244295375489076428554671958921458433125305376429565484742502150764914472150148792682452327660299820071030072208110975451272423714201591242191848367559126475277871765037270461383259661895186261525237245334004795453170544797548853377939146710024521017355015440897432594113964644540081349762821031443057280763932111847971533737364717681352188379728958275211931261705920450307767685838058882192171946227154529478329551332254403266830628331644627729292334893941425402368107052580261341529943218434942018898631824273011303218724911161693294523040675992567943353307205007550220197340394659688443220106709493393758066415895298982611663630385834079253371273852131173424234347415996597186056111716801657850089993001034643570202292322801920008680137662460538891424729568691385564453382136737390379351103162958057341919790822420677730357245340688827636010115006530051161536208219695243402251693918320386696861113758410675054491023306962572218145606264763352553594264828483152147238150245031346444459588628122485258143885840484368318633765841808577229191351450996993381425107049735032591839502128229105362156066151539530786312779671698757477905517453886307101949518729898695654354421368062960934499635320624152833806501732182656701451915058276914796731555596621139395699847700973474635889278974740232027614413314219924136955002980700616327677206972458947873541787799088769562962079253303222387558149131182398904053262337480812285511440048648084065718900112405521962389039924443275676972888916937999858800729616644190127547050923506209966614179560826181461528227307896884892611491793691951169413494412993833809732211877062452539883096089960041604314173180480073262023672073933673703691947894350407847171327270950621634133376965316705047452861514007872270958275284085241572898976918155877968869338825061206841241069578052474303031661450442561717901612963437474117699347227266750790433622125673388969327855665256400346700209734909280974579699082362151207884024836018897684361053904199485339483677637923950356562171693115967316851446878073140465595595420121972234422883583331271762917188539514575243724644447994601748526319213549997214569233167551582529779293095210353541142215635024445054405122920895291617088297396016108088669187765936816589980490124460760199395998214608173720595614058927280035122582110340813431510333361707761973068763582239501955309347942925058407311941171956932483983923138881232598477810558019660123650508983053650861255698783318620621596894696788661152575165653988391511446257620179448238645401251737833466844540581425372541728470804926138147512462305258946666381428276866429084509879224630729265081558781888830915133601281037622167403998992189898889412737086340216715193132711340674791566266043012887830521526773412885984890516728725513489317077887132216186480297927914987094786581440150678871231327778031591014648428792076263155411207743058195485358253303147342556888400862477536450263099331397220526750633367383714535585503724036363694038280769482261893955334064649821596188244852424363995596299265645658540287809197916378447910639322146319103801503391558344454941751146070973433819994318755568578507833138913174671571418737345474044468020465222165667839694895102480211854864331553784367649288960677963053664094345629891420696878660822769472299386865268593473156627401280271556618726631150335366896271545890762280561624541043413485833995217267107207885353694532193763276702021302911151624809972290229901122687495846028079224736125079784478901625893970257645006787129059467117742453752862194101279323797731913682980255886754339297881789250101656947505255776384087406396714675813277033505089805818368319924788078603011026632752282379586709127309568322962598887783059480618876650386653936592184039575336471103756952214355014452039412825108127670331362457124359117021572914907109305934299362334597735692653771626564206539945061365581482681698752307519073141721576070022717181496431477230479672579424632520939573159256811433972196641286349420391277390641773341433377410375934353528511473984796071923802814500679561658215609634759536674470246344866458765932425519285389060418071042369145928162871338739966064296791869480570650678163747833661655661642740893983102974181299098114077826080273947646002009383616316206834973497648005000915646554412775314923597499529377916291355486808507096342063440358517674243413125806643515967787341701220752605711669431906559032408249161871880294252940874195811056938615762906570573399258797029377364653366765674431059224320091466642475124310121052977339168294225846275534267463263082586495825585519578302687420222445423134285264599296033657007611999162646898425585542453803501451873982742494178471344594200871161281383202127736606386160540770038807460163825419351245984014387375515719012567998092103096823817747480337746782637587801069925857618787867918748701631904891144095874697738649965734288113722241462097117084883824128194728785634973018229069899143357699005572697324499246572214120927777370336876902360608473295606943349312292053215279738276902553342665260539153067597506466224009279211491078597643992576467476410189683951073124995887197740844189203186258896786439358450167027497448574426719844450234870875159434743139096207353657716365158872443236305879087600134150165291204876215146049596913306528496540013038899607077954553702969316313661144393402240904612169195189610590311841305724239642050530190336299789202991841243443246023068624804478540513438824623340215222324946658965613951300397096610764161128474920704910040293266371583103343416771398190804752404368596356799273136424522383557564090928638893482059745286176270250182015504921249484963987550427796121821748767346772630742153521253348732560166465182450902229947242796147253436877384981968329838571409583325729189225693535788431160653902668393365947044380364822297414787422069610367874241803372528185584045973453904974227048985504535627702958708779522643004525188038810249477465611045237159785578721419051113276166946207664517449124742835200236860756322357593083316546260508955011294533199973893941881300647816244522632984474019570990668467983793670181933781446784075332815977794023057910375092547351076871483048383293325038217218943476196032020809156094604343924749714679395266308493046876019728842206304739620789109199604364769452487184635696590014077089761475324413558571511699258160943054740482826460872743055172477556887673291627011662456443649131288785856189386524850206392397369232373506343627964877129774833173811781207845495820666837868935390133586957000915851223691970653607251588680160406510393921102081833474019475678218310226694238873707491586064708056779484378728567413967973567871809414142753644900205389426761497698307075625775305098702721741419696140716405292229678416780322566730839192140212683865818337920298753045882936444556135236654625773517458878485643552366395618364598181867295115759841458026397619284162541382401507427787699940381116421526659959300783410162967450454587766406535108301069055481611233957600301254986821613498787976091766255622457382258338884455885919196782064637042542374369091910485772311857545181405568862697075309233184822978119136877131119040997974276198007914632827776372464932334713821172365216399295267302021656455476089544368925921332720280144930835029398853084599388137539728912034039374979950836385753148354007103895204919145841171603690010950262537359849907852811799506759125860874898221765275805874261500081843508571996491045599120694844693194980024182129274001719162435214000289833129422601871886417852983208141690958648064887794204657415912540186090704107572790342380668493089999994891227217790019115312782533216309421517272382099439847315045639701342504318561237396454605888831039634278799892613849934783055919774413379309761303164222421521104008613843781335589068470585048864921765201798071080121427112384719609830861703781276411507894457260821807495831697239805029284535668500589787692022541777213665349366124359411594277077376749032082555410416642289761964916294281115431173930511412091010169405741182790716191334276026337554777945543039650411375899586769901692125192007579459008555283489891453117336882514290351521746263339177056286006098545502668405450296783750540664495892604188578740496913345995389216889221360180440371511505846801872087257859620243456218693751113524605763208147651993338899943659006593404328918179761752624081058688483572311888911647841144504108523245893457449038458689024364681970073663573706684836204643134491957012063899333708566850038934306765022455696193696938871823963056536573830958517715232061104929933780051046724813722294372932286725459661392473078979693012839532764222155449698818935687542680722698273583429628670784039137320985047566507069612346930227851491446620142726367273521094646904718604023003575552349113845326669048670710468615463210092083386511286962499890506256851214716921895463196876739090715581451280917588589097758549900800264837991922361539204804494190039241619259640007652143221543243149494726388656449962833160465989706210281442507718144517565788771386774749199033628662876119764938826368222443629842516230567996799256185491570586601153944361977218338751993453587933980451995311643422435813370980093810181026243967183760786927627843479513812306592663240123992314195400959471587379954492693321681368318743189544112168033454009298993927737605165932487307660311914953011339010387110440224364873994314508231687050567721101327762447739464986414527911354695792384608462647776356081557346467016147075621120333071446011623824563115096240196920708305329500987853084222620442808353501860937748439839012973324182031650010869452061643203491403866535734436542665347376181102812156047155238858848451902492553284340807165728699339374254521949826572506511307156763512828951214742310844297075445437118835939904542062526994690349162859886568152576755109163905277428327589837008369718655913895456938659366595121069480385722773912506942530878994397902303943522919520435088614091561790570109614083817185040254724105122204414959062882139747299434612141784299356537284726794853823643030995201147076582569729179687668665119511082490077897268278912741215985774505487625685568589567995076870550662964742192665982186024165363568897096882980521005340577523909939032070041817737120462587085337980661791920085368150520687374158904862494556748525690963975193542168801592573680033280746649410849202468724770173014140546018753112058287388888562612451629087282842322069672515783988863287212494182599166583660270550820096307266105861566588276869625436368087256649251402513948246121469961058518046820165048661032598490702001484651604116879288851491240145356469328172177325182487011641082030696103285987507270596445239533367359265839588978234666009141667421963066297021894756263346974241069159857108741132894365181212707042886059983494541161888759992947615001187027137970757573142242802845575756492894658723215338573532445401363685084110780924634379050615233962436599105406115108094391563260754550541652930050525835360583073020825243509978574099831029569853361495115805107205458392182225798074708842374620937710708379642000374181121910337559405067662470446419469840988749879803578055852393156592346978705459085041378823260070030175320473781963260946118389952972310189228760980020541815167288991539575511594175249113285273296642009581516030941665828302475987974167431290192395949265896873848523305779634010188252639864897741363990525983476018434824164500756222765763335301521520502112185612552992106815025787551105997974634061344246992936726414739565408916609622554178072028035461505847077084853737029776761695955878138539210985962472691018473909788273914965074863184754768074809377079732455057004981120356264280378362777484620420188506520634630471306666085841715293311212396155915078740415613430688189532947180785883210024544260640329235314832640569105458864502034760861658008388455302102289875032342508462130564135335513645253662395446871920078466109044432281265488576630767385069182883255629553005383349573247025573719896721042468704389063099376249255463972595996344501770714580063547050881939364279180675801073489873990053774329300210373292995492780594337307180654906589778371956354703887363208393719608480148155200913758744476395932685981720485972048287585912988925445192765530932465363021330990214696654806037200001781958166134227289351666769195243329043251616672453045347301889393260785187156058795582432706574710352022936964014589639211672115854159735448770581291929431694662447629394109735474003588382149608090971483530288701008942155544582160410349241513566726058821164620893042035361896134165751008502639676951320033842176508110576419003518897040739147229509553918120802734649583633189833544288283355100935579872974849215989543598601535609286837867067007951147570882450458287766795620739117979783142804665822838467209199820196112556707148770233638052318690146073881544790295497221676186904389211065577954029863559568294951027308428047761033390173039990502635249918131310124260289753709717685797345139122682111201174623872307506435949808465598706254772623949218267883844899529485730076477911189563375032016325085107705631248456752012763624881151633517662957046202002615740441613815605858617934794708935654714031743851959953748782302637676899335275549526856050745265824910183973366232379820921716209570236293947142519992316428444403560721192923214083533709644525537399933519707004293054249555758217635659910346323526313183471467143128551094091507812013468811539351937231483447522782959014811240936081893000422042308992189938608417642446450825856741361921931633351082995858068533650710021416189085247297097924885126064745365981718219437671345857820984564209336439639552992655631006436173660144196706529127972864660943220205335600616374562797546564354582268494841046323508132291550097634873310064181009871029811657194498888889637128566733261454916906404263186241317817065811523264481744103723489450867597023779944372310207488085213641835637696040925237311395119514112447318233494606272313437724755749392097662129961141096298109533426717056766218849532547542491691159156343089169086646283131567759041528335579325924648673034682768333874656834298683580963659196877873757223048552183078040213361150621622805265587757785860201190735034451707522826359476459561130703731912794291800414699513053221584521973893191433686626708224915813373313745341581265352484152447972983667064640142661327011372156029432781352598318958317574760618406564607265795278572198427119098192142025489796775246496631918078919184531910540464183734188696916501368550006764337099913098337689896063550320374678089471268411038516517095243845975014682748226985283754325795314533267307685850822194667224403485182500949621259164573464137486787540033818957633879658293479067475017073092059168312731153880751466080756886122148141404741651874399818983371049530021275980297371630300603252250160015575247465835473928355821968499927833860717754455655969481464026353198729747524226120077203186766190257249149686348657134256850796024574658708919270640561899969456773480040823056389582495539717502425313541479413812744471395349471871860395485962827936136074518318635832837856491505766373078895287695923786396487092562959945819221045215847468123099731059259992164989868004424396097618003639961402973521349206172307496784240943843349957326583953970380378736925475997193473334605135285858336792263138068841389163407079768493924328801689582921432675181249194684583818186219940106360908854653243422999994510757357193742134473087565827155641835801384698280329642592444442738394727188988186980221679692269887325481116569076469356153445190004756290620391887918279762233266618834703781270117018118705321895319541462098254651119821830325554299420913831593112769328250269805407926908921560668102384501116351106609004519366073084235160591498126382466939918327204276328972974865715706821630826204094532329162319568510179215204978860308864467015469390320076529898215694683529426261519333398753969839359434368731046387153466129873539855613065564276516992279984458086349092980281791549347632644649737387431221738503947384952122379231153808960448585376542342321302682517292892492770433946004164540059061533304767185516469765003869159437690504383863958444802560920530422215064519615312773197107591777320268875250211567134674502743637616315619819324862859637992672173400489702856187333390251419871193999133559151130638952275267185140240193257030412178568906950801333479476284772675051764995203509221150613189811017579754574427338744861413004449808306431703456284430973677362812983295197747738039422080217148354333501596995034643210497373883965053224497619151239180990402214621184895637333188007043641675843362091245596381834483108386888728577040696187625411662158593338085718449783568927247516128692820067069091331191717986178661214620869899730390503433299628958984405306602080721475870726053841473022029157012434401806291994430662396181211753763530448340079172888896314435648231309580099442223288359773733115226499133221441098334058187634965649250285980955690261273696526844423489950966033505857608521843198603447410266274016356305504365416893856054655565667962809141303254404707707772153801894405924653625676618506218563776382430264715060104494180426949098054176391110275873765348057522620927324801138109679150696751015733831498004741086306241022462763963852100692336975383829298737459604431585053447002628809269626961973799148975672508990975996064257118137012699506241889541307459796301393248404678583729265433996282266328263272800143545502680798004668441950534623555655839658052536094737627295022546744430512746626929542121028307366806097931600559682658705891204663112396175756941090901469820247953381398659103786918839954164695351453826976264868185967309394908779506960195616460359634776152468632348392632749615639985337838845678783887490764134807135143311305926201076681774053842723546530124878636124972425360009960204020206692114945191896296854062957584783100889716972777330212269866387209475808746352906506658279173235216318238750355805112312709637671884291803292662091922696613222274846125348013835065983342028629479303004745200039948101377437327108154630078635223046625556835941346645795474747383175995705860674044548498064790879817151692005385519412734586292298466667585158433489652029666068060945317181330510454754764036679565284720710155519201808126188603028704247142517760601279705072687238979032387163708445944620006017891520799147432886056432563128449887624050565077661430884320223524170530096886489005206184399207957314537536226550225820043200466336223431439194046780288150300720664219409731059550529984353563142660475616943812195764571964532313173634395091508505533787214854311765396712475182225580711697047171518515628990237287004511069433775272886199752143548961124947977303430344546634560328876829566069167430597499332198755562534602960036298591047096672794762662495868575776234541233752968268770840486348103987151235532663105991887648937758263110881830761819331150969188374372702980691395858735351057570447813381330273792246904448569752834705799136416565960387380503702625895167950001942951558437860865977587405640416098744980608120910718691573979720000305575601307515800037382948056711534408768786679647128218076383295371947823225011418401083156337309719810212348291682208861937410834486924881059545586370665917992369565503444339367864053730649870311071715712949677859493640199359957909939566787919621399256588396244034199193857061846002116355224502498566249837020451104387665513969279051915684771011229742012903170783547665952534650170537344821745441136638225627083165377013347959714857522688256107891686847679254272903070910344776019179828304768962955143701808167014754140224491359247904273503634092671532401218239003637557277162196370208189030707779846294413330660074627692290584485575552176494759059592013612609427702094654362224481623359056366102232517840328032979740615246916101035086580410959960599103099714139409609966534012737697854678268909317021035557693395012962522364522072592817921766009225275295094739984620753514736447276597422639088765490730934104901849625668033049860774934629408824996403963210742582405760528045722707572946685248683657804455709218176995598180876367494568291487194293083607541171351104792019994800426435859227652101438955887794168416829985603506654643114240370934476543273701337527054894193422119599854831301063503719149466796982447408739715702141500994873764614227962191810734677158123248058586505262683683453281009214973115960840011239377636638017816392121580526713756358375036832309102292165375494580115785734593566292425730305619321653632130919885756295716829443149290580650806681030404277258234939916623049811130860376857132136839859591875024247761196160295359588630312757302657955633106766036901304842089505365884772083743974284888625443156966319940627279822393501306609624304178936537626618955683538027702613701736203270144489201657288086253928164295751015022195533424008655927935169457464084129061332080570941175632270750821991313387827483745859545487950025345954134165119053520003448810214910359690601563537941770732955303729263200691058404974079605694005500352309157389230485873788680019311033832600567863296624422517695241241727368271987239164837368632925757912902024799901565291569369993425335885770604411788186863741949021183468334229268013426970952838292290324249254718368180865516498205978788030742498657439376286412971300553024911657540723868634522960517117627576430727741019822556806839382329289851740723467191458952753233614826361828832798071943787563836867276100870767753192691005728074690437310505679679564783376263839879429720570639240350978943948406372934733636311806539499666270325313485199655687927847454470467516499803392173212651268037824570000908782939738871573048143515131042547804707446506143867544705776727373251659730782670859490345655299601995976588973843315359776638335734785831109362079273738057916773330705548207469863245691015944307825754635029848705011289380856133501772328076276903417027973158114701366202177126446336577920244864733049362602537827277263618833800107738702408070454763091994807746339406488252426136226961162011481064832973540450590981252220155470962313600460949585735925482362221648616618934084106637677874814248162448611337245729968039561430497166975426697498719281094927536254557212369989798694574503355743834568172626105583018915548190437537901400245420374294067032439499962824635969530812799111774656331335455587548588848667442508477568135291421082292430046524483632226478089391503894987664853532772208603196663747812994098832036759634121633137017128091422686721120567225814110308313941195450328587802581810751267920808714744031937975487974389093273367254096014462110860450500025226138637151396350994252104193392256032270455108787513598700391018367844158504023027555428947864704929610713145192355975176993207252450265113639937977412861155836463987341589806925914497184517702822552007971764071316900343151919169886454568290151510480000761919489858553053636514639405522774663469171845130089710403342924255758119797615135997402076988987311966555618469560958069174830863213846853346843239262565404081513850915395517688215594950396325045249000182103204798427030012464439295946078317536876065769292587155759214556998121102404914031852324354949488179727471537792003066963352092945703195379892955440060867467746769895423690457418603395368588806977853740510520764416636011492922701563709270005786511658728855485158059521190145579528273367864783064426040004805489964576889444264625671266950481658649486166690210173862566130404347173202542283445054360647887813209509185167643586060964068284054088922596598840239121118994817060409642794531681154919522663534804499730793703483150630041666732241436616804661798373833079755782868879329809970601281043433409337710555230610657091839012112944991154948474868389281666075226744154939096500910518354219084860581152681744499149861951510565768756194642419631111105508739014706449711113427924742812807818172964345537634110531426000421958844689303581234946939041911581118880652977870157240826154813514238013944345892265003484956922480396175347734521116402647859374241308489769754647705277558385109296726648876701509818428536065726617336259339728925246422007975300477991857206029191018612711037331231255475563564865899842157745846562908743701339006152471456715245995426302587995238088805723816558222348599236907218863817292905457844181096201524807896002628183422107873975660601985275901648286304290016872444382267953763076080893454091291041395835080915906047260272369848450101981214659601129863999784658476707771156159503806992169797318478945974327160723502531567909362191651595017374571764302713073434270924606396969018885245202818433983267503937982811379343015229422144200931153911308863156865151564527896778384353894891135872246662070300952887580109137178569377465954232822786487611252733799921185750447757333337085845130343586635363982147176632285627934853872114992160557490218743280758879888860118754454541021650260896708241093232527417822226617605122732888313540446232537370174296912497419188542192985507451050790911910402014244462452156831635225116560006212496583168644785122761530833737642836411366497247985985326419251967752307242246230222659899813945561783551768561358220087257316733242879566457662198925782724626274999388092566921549984602768422667206424837036292219055701592926033106803841486718410049290449646064143434041221254237567436702343803096652534517553548285646173594965957599466410680319415157393323001319797798471979893033524927031417091799325493100612516711682680467307000422909582506080468987658424003733193818900017986104887327200767478990772836175966048843612430791121030620799049424597377282123212830158345192683157845033612124221478223304602479089128762739152010572817114597193386429950694284004308705443509025925301689216670084211333051662557041846054223123503381860006098311280888763399204881252655623655444624857590096394473233529994198059380551103675453526692369409067424193151786946366440066069355407200335692045091134560301437351775368452069478578593390372429396213962651159123438870923137207417881292463643072993988053348781530493084012855679334425838398806983261472123584060148142122129455421188188780513161120460912406236511484707210106088573292938733816272184760774754057033362176956301358679734278793601941384942157489317865271262889484084606995164390953813045795196540461420367506897837287626365786054769798908495527517865801907838438405929515922603792405381487603400557523391699674757648595551497626660074684445913391805771782458453227538260504473719282807866571672969643116989859055743669886999819413199319585080485962815899721274771170698307858612400716573464421352664343740231306799077928886579071957861417295905688296529840428216544396000414750460567475142141255389898281917617480716502888371694152088530178160434536245475001204487835250237972163899683762897068498181367841378149891829255789229809092691132526111919490942951033597356372391138380368854094069054543123824700420222591713713639963247773190195235955178006706826720508609231613755392382871445868798373766699874760881279868888353204357515910751102567276251112695727277405841858089058231449469270232112210223841491731950947882714863293913740930672379584703121687769962809946710355614164285115038924933068193624885786355680355796027504965793467506307025503742186190434170985042648423975294725179832389182930826070054862818271606103995381244996414929979687135801919827094035709207592734766641873329151643829353471388219956406514349967189134151385636972650450338534013307734691432663884191892307688931221274492847348897856419304918687832690880069831785354222651393009041300945145968888772137256381298599701295703593514546230937487733404607097179167734752020066992971797636301139575623006458013570777965240319171971211558021153947034634541200248719658486484206438078152891263624272866609788609268650187161397292665646353625676141365661309022129947868196232142647257484234000089897045843841549645061170711733011401712175102439417284362427001854409383619625883001828969931675428587754934357019116316992849709019815248259807830137251144321864494759746477345308420550050506899912824903688276596749985546995218902026276041383136147170449163235140295904197944608166921423490173318264769596318774692100817608900533027188300763646650007250311625012448366571833487385167462972141067724472073852835218447374231401007076025904387844500458693967281545282754907989361267403172332728483729314437800990271380816703501314641143053531894877187243275082024292196632065905327848510135931641602279897071080551021517809034227901066172551784171700306384023155694279740200856512171513931923393568776923550954813877788391887171584797321930038037320765456091738872739656372411742656911082992237788514738938959439618794154141457649122216024737984232317675946286446462145576787248031225462117625937667516605181146206195504981199825456974488094159438682124311558994689326921176904495167367716622279506217826753206482599561993754367386587446407006053517373524747220855250071373541743766359971017853654549012733986161584880096815580858034102360122265238240262340072545076232105873147678435738403893490735253804022643477246049734897765919002375526305157944279773314335788039147190588972417819095597498662778305553026075540764710188470519338584834960989671015081694997579455033047775748643007189851000498353013471967069111668090597895663038937069174784220053099836718918319467300272191004172594571090182847030704979746791589364519391151998067848690373663911952017924721464351385094254192791069211513968561043695211409605586607559273363899711624811615103001199617025636415100574854719847094867115574782991050385047907807538130924449087827555602517546012600115443271329916176224100660280381362567718875288044943523136691251874216481462977707219180506927671276492421546827325148885028267641854709102584670120397675481246986344863948818523861800762525794294642136140393295011703052400985448070624768746343067950089108419988116551432425506577205135362247836051732706390719119856317361133750916319436530210410867548000402426419372778626461368491976744468145324674382978888800301720116951608988846179870605787073214249335527392493884824668647647045111479865441417730512826490647017464386901404142615928589866626263594429649142608122973796254874429059034753395554126505422721354610347065683648465970726127434400678522592452288613067930617861175922162983114209965138140113054635738045552345949433471216215698971082986248928204989118804441970139901475157352363887591402392752568505565284552151343588048397360886264502310357039064367478368684928777011012938383029555177986718887236019256378770110457444881904143801908845715175689644579589939044608851219598964979551549286457712125435675122205568308534738791877064235847497954026718543587155560464397879302568228272859167022643738624768972554855445086708505554078196558716728317518674430769814074013716262920845262816742931719083533355804355446155504634548031841150287631430497296543962305567309147986443225974529424494343748267227208063148810969532395114753401584429673809837564879202123062706885787199252486241101772064726452817426397408763603665540527949315439002688301461540991452390143542806603016710012466408996860250614635000114988370101128553304521303976751143064917649136139322056996105679749729289997475740664499514667624718373058300856302813861544838307042309025378561105820356251342362419455012498480507763058321644414023445068228868715192367006638582821417723132605325350352147609258431038627634464810225508562270208389033297352114270000725055157578272826923323566693962930060290921367516690142470110633221693180774607016285451234804995828631644036705758204525736450225897764245436049493348796749091730134334400230148520608787592636089394241001909803681634204872412363406956472842113251437739871238879324007571302303990126337653714329984458728600817861267086661482755518036810621088189566880610501190689716947817991012328994156285227054978068685065916871636440194395334217279183919702378105232906029086485826517386552346461196591217992582329336471404100012846223094844859698079577767697615172134874509025006118578285966150668487037160657162736420892091467684181163149156251457437292500811014355024151743462834523533711024490756697363789342887533692502829414805015865076462964865332205102304632434790117728978370525811912638484040433378012262866205746059055745570918673924895672946396918574892386866547939758078911264292524581221072215081386657079702379777263276523929969986093257483192006167105477424659945664841909955489713094793364944045154150335639906205177284048223029962290697421906483528560431503777171239046524356749228090261002490129219596572169154147345391860981593645982345592399765076970935740339799785543394898222610685084770695966401285173769148995478749194917644890754848114894697484218314623511395170283722328144816798742037718156705353100222309522618163913596961948378715821541730250923259821602282937360937830920354009205659863775463179377468604371911232188343820827121696995246690973271414589053290922288759900658112062964241794021736617980427641207643962047344390553226395714945906167128514316271021078741435923093276883349603383362234039018636478864202638815684504291869860032913571729657614016827307503973105333136474906811336335758281556465540105697025173679741533920956098911537423458345440673119460572145353637398251368468297600258799790369863600318379623935624009677654893178180764403168771300230616415719397258438290886814081571033526596408176155135557032588426126726537414530948831556648474678030901903936878226134641606023812372206559345122599357235791578694226570191136561112558246762946275544907017786649351137859678750184135053362975142752476871641012189880071294378483282434958473472726093694225698254833895861108802825263080058980707726586004438318382667296759843285778126825045937796074903365902421780922448264360971936161236428394192569293067338339669273424672414980693019719287169714870476815250761176193815542630740618113863076956474944847262900027904866692715553164707076941800422723731328249316342203660139417786957265757171182892202520741449845253028182057772696085041655369034196848052052532273882098011940314466043331668596183042837542213676951695057514497304913161030246686148305274761654465414761142306353507513558645428708367214389240500012422622272281344004068757289610994516501611268714311840859959457255087590427078335936451411316095299196482304432455988940338263686694670015099800743921254299126691665864314781639508236318564522194504921107389768621339034133208382237344738506038632982844647046720506053211422374617027430045881122540308358871828455616577655574308045417551856007668378851950296573219211170559735119687880580892282551840387346394661263011125018340722928414317748179939144861076656409650557511456977476746701993114858998700753184933407372876117323474618637162627660927705819925971885381767436734759698554823744398045099104659118304923755080542116979920081785828551168965830956653697454857186846276154170850648611340815242484700918148935267676652436835149561010620193837853283730703511948994018214509095533769330742273842917160380596998197899565537154086988006922847039183741053259072624041162680484275288105319554637828176704812808627509457663266113398733827187277861250053349491617495212382713516590390036131780971307871986816711157162194609633149001622696898036877574862980231530063654022177411406513657075544615119045641144817397530594519949710677525667573630780319500419249791253803132242637726285236935770883343297247614849929558698395360752067914621051074919275496363261680407121261868702566830492726648281809380138628409104672801214454863721267059639024099759875589029285634583670131407826659206760652765327632104022619815015151009831140854940381816481828026813127326767124150051691192154795966360372751880807565267587415316083037931585409473677294374067458924706479117504733410667774094087208873663845632633188867609565274328026123845323823136803503653262477475368117748512672129486665865889588277154988643657595580044058876486811229471432247082486468043495519628034277093467674522910044124311412825686268424107467175653766217993629491318846727258941192011090175039047791607275009631316153669467970195587890035272474101251477946101989577659458508191788363873557162955411706667532630409657842823080322811394223016784222882237344342318627729449358545543724338753247117758161702773885744623090157178048806739059193272048928839165632357344618719717100852881920930602446397827350810581124842672579257189318410972862185693565132913370354689869603916009825624873938538307391802175865068062380992986741527600054295466707063108707145846370005351416785922279068426484096984030337233691621842345377462089355804440687166152430903508509655272162090879206263013055535233857199565075970082982103359561778521164127851168412635495445179699630995631920192720762960261397070297161004056879988113541715626994916804974961738216635017007565725914233482711157192619456616414480402635762404593069976436106903294267542880689975664991002401378402646462576485695534309346065884679328555220808746778463534607990492242930577467358289086648212521237384912764178604921717350953453802868128387977218447035005856655494572237963507921251432271746046654291821928975833969065595013341337586375580820909323122713021639535892905061022822962222421722232207299235497945606931146133161001880075879212567344841869400166020047481600206159898147185052920427133375606676747079580282345494992378499864627328484629226072265115602299303048519781033366960034965033644517047465057323433814470447010285788155878179853643538305380947996621885916574902739763509633443184342302495570411003968956314660330439083532776746731927404419207616334631582487640117443038125576586614295121195603495679062957505346212897751402444468581148952515926120684014782671219248320073710933812511489532092709794856232512630144563057804683674746711830090834132660606326920900819478717532568513447342430710552781013961836850721637323021527692965569242665918827276506987159646506439964923325576421179360563047611657864897569526192600383911939940365786212222874340282859815987919585561424790285457241238668374524789746422706870161102968921235245525244850451453709147252783395344409028293906288522891798745022797529218189146813541717913859801204776544736528219179651251665571203949961358748887585861820183713083047477012120222684404670583190610839659330976587681518943104687521726001258677194651684248906882619810230452965178729205409880167564019317689647220481088548391767787215519218090965745604745236475902953360444725164180021672082401374145640208108758903752686453397819716545751386365550220897749677965156518063315234323089537360399464133006252194205199551183339120753323783535462085822515308360243229239734996001763142494892247943950894423466518702469328523855109442105260427713180756053361014892856353724236331215252327032354496115113154744767974888746026479177105165026747010013579032512452591620781210831819810430328489137612992206029894770093872327958451986681298290435548292916993924909266337113414362295585832755909452750188151135916969823524034897668348948352545197044707634667028243350682609070190792863915281567123967805115910815304197261825390688973538166699767717111106235691448260146943040525104710630624391028391266370827320131587149206740203171297980328155742322200739942807715839171272053363546222799637838198973688744584863704357524641303888711653943022803945829686725995268913001627249667551846424500125280442333304806168513366238063638569393572280031146380103231135628420769378101174830256815289864046898378265073009638520828268792644289083028037339094912807804849105936377262618937855234173774566348894096118471217499494574042362156113084835595127296764020961257583774430323280347673515081889914772294864131115556935894382078771002275978977540334356793425223990300162191413136273968203158367214345271708842926559261363648524743624732020426338010387658263403221606276406441987775318106448168916972986574665730998011434045724992268601282741404566730696907594347079334452683034773901488161956333737805929102705334900727906687999305476205145644349126476152423661151883852988509357895928407919560879978781886759188422742166148935238815136573325923579874254999705786161318082134362393322692080989221918361966556817151761447417506266657406750604459677463987950357731821464186625075004159227977353379189553380462512451819623336933606859404270933876521267342122551964585175090708046060225935125326299138285534302768699090929754516964417118253808708401220281548240046950242200866168489307501002212095817178590787941687401672392959852492968085637909868740223199813324786853143210814931929923216548777042460846949290801007773792404867034041931438285941066837342001489947360713635997445757316496853822658258074038869136956289455979715209550940141720373117273745281623671597708915333612205873403312505423121642142770239761625835248152225815951928170142696833100489314511903917524623421009010770014405999420493734719905157906871954633070049590902947257411297400480002288589122022238375326182662969146795208573706704055029274060221187263156855718136238895231359867188399761200954886346644047760867847078353990743087041699179689691951689057725028026668101579560071431550505682876135778212588975199363691492748179886582131296416741039568781632321189066144923347757905194544981273835934544850038533336946218466374854376709321107614226183518290382414806521695956391788652557500758138660271646761596346155943044688634873315051276435884331022792546242644561473147230248699034104369801202920649879808392413676944515533005574466748199161107456092779583097171715908707847580000486868152669175933757560917108974753577583249538266906579777115517964744893929098021199151043049554389290471220901429894815231551471230234661337512373281968505790020308179552307417794212184734674046310257306504570430303130052146822188249006808053207943389366572869460590785198554935312190747810802477634582548894322634040665614207585028115305897466830134950903078557782331485683226268273473040623524736187497766811511505400449504369073577910245580082509368895156804903270465094930281769215972856227712761692642761329684415167526102748911061064776724223948654355527551356207742935829028433136627252679685152733548455280996659223147619541782107850636199529926927858031602444936599348446209537727479586195062488486484920968616655263888857362981301242125789672173976647950546780592582162036001621205691147975345855345100796088856388492703637878731085913509382581203694842558972993445727193349612862507327282161977328985265962407170390563147529304198195460967811936708766860518568736934920231392251787264423645578894108880945074200684166212061562789362515581124459230035127129882110869595198582828920511042357382103259081784756877349796699823564197602990387176403292728365906586819681758792800209549518518488421925487936134961850361420551597178344964402150707111111547647508179190247920444574307550250278635091370751377803813296462379590712351932516293512221216918770613825253815131327291333284472870180842034743598611951467043467886626051657111231782186378094856691298880161710439008118893690908103947260840507688752175525574246883067524255601367270926360035990036944485877487953635138124559166287553758418019144059441423133813343014449842726780960375899020058947529505039852925119830985749740722246351932218588371882424665061656750942545966196664674595325173031628184507195768298426523588900347128138930585634007526051344448287184932792566552172152468992233746220451017321927101204187313496371426482708729839390002705415786688665538960107436316692893935935953276177478019807284115274295014910771263090196301305966449082312252306974103661760046406321479146151176133085921560185714474432716165276167658276639062419995419987503403440412888255835185585506302112746799287658200072634664702767029105337801859825312011289960367587851650208870227313429879667793555541413649572678103271744707893600243833692210577136518074253748845660158969062940336554912768720621366474251353538350709255165507902981377640017864492686040682754310992136885175255869321768990445459277885185736291875616512014588914752107526468400304748658349659002396380965152687889295720410090854818501771776603720464000906749142639805916296800508013948274629981208837553503470307981702605915599900961271625939413558150745486197874178071115085452096421797079880003400596723894428353419430737638611952562521459331872480997290331858720214883312831667938644936625440880675484196196584510508456504069197254007320155721223308530240483469444661871102488947200491592832758413979764913632319752827231402723933945081775349317136115052172647570437358696018563661659511630416227769315621110805183681462023191086881498299290090185788780582178921399980464089962315864825833694035082001329118722791499316835469663551267279096879821006267269595098809421602931484310681651808942551152330826141869873416269538035818014150856484307505086514601919869918319817998880486274132019112266432716482415523858320833551838080109313674196461039883090928981412476190437981592819370354836876649778984522374308019883204516468894729453681302734010944106060185038910451462864930694828417709079650759091302709088391083936855307723015975864023185177966344932012379681334943706017426412813936175638810031525523049198659385960838627306796415832217209483350820564914451916008389176625354169421778465524943879549751187091462901969098967197589536014142949573967305934877238043536366696396499040466050033438889910983088701774665714766474782570371880316636403839337838438975604532638022825446237081690639825646051313442629803964531334529488979856716583781716444177595275321888311864886429395776951164821177045128623550140824567957316460061511501572035298727475981457318867066132117513811907513897408909258854503292756725674844317907095188612419588517995747544756485526310647305774163070300999493287687854499528254719634364075776059110825408692520929221146119329797364956837074240999421619829735354042614947003962118992513048326079400722964875418671737922442819788073538398066182477052589168088829498222925999652166733578454226011219374119206085070726848510231536538544018194439989978198069018730338124058728070825470918950386133066673176762891898798113330490980048194586784619103969780770936316781445173612918250702934055714578812141073444799143073602694581523489831372027277020666915317307600121909859731989409572592390094600033322749359957082305394052884275845571127836418826590113853714420061011758598145198712067299504758883642910334560586952011732644427562944157775440533201563400188804604646417113683705027143129622032762541597629759375562447664230785741700700589740622080287806650189974437210003004234937577225192568741022356427595269789508882741571123361190720847236094179596772364271503228398961557551914820603680661348826797754762918681619434974567425707772733557712312828825297299028588653048421107610860174976308176393679348263706193601592826718853868580555453795583533614823772483924172485014394703855888262799351190412060118625293297352474186245912500074954450996662167246778884507210456029185595122388311016877613669002750154122835562685269018235862963773853683008662437693352669011251134524573671238502943368365503689949511831509535568299641269584050730864112281392612022158064346162140241443584944832711896273843879706362919027306855742783257030737426624853281333885784497958811115994089843979188049321653418962153103497511472131918613995192961729764492536407163072640214218849577333546010325155008939164602217108898725233477955012880637600019195888399020877014699807566765755446803035651928411026284404597935097621849752310521674694718579289487747232345562896741146198035427198089952140846781902303523996926616040068914852942048906653756454382582565483245798136219686590224414927782890835246499214217832843143216184171127154798285481552242980778591881194867200972296605967892305607234044930437706104996831780459888292023920586295923050429759084803910162657013397862720272955809225292071408065704926894958458248832037456645241768176646956976231774432373837716402801390056433260717818566720024413282263030561349284949950957573848267209137429686947860251134005003365337739969052989181009952412094680801627157555207547922863880858192354435579365621534047262419958327498837012391989117204681947601544028307580432734171637359901329721193553536235085405854445828368826250190006155704617890602201190260485354489709557099188034682431572113040492617599023285494216477117043716993838660389104486483244291721081120641196201909353091908328755347439551448806839695204070586745140255865336841924721952884254487303823565193775322495811789008743355316935714147511246197094386200142150761443287574083217055270963479912578638681538731109753750632735304765822201545638760576823813293945753723582546488833175496438065678437075875355548453937523893124912384043439166575862418423212215161377837091902665658247418087477617386050171123716660214721749096704512602359001751787019868480572697023559561578914598544241854588981476035899773416582931530409577049533764115266496620386999685911297585636026251053542692208489350841406242950163930175725732995082229666989374066494050438082929656899990305584212577877967524688537588515323501645107215155100382397209878580407458620982601521443033148686358838140004155744091354204532351846582291880857758933972521078859698531251718105713542900528864331653216974923007822255336841721132486780082224580912304933987064222715545087101849833429402182623028099478188371254901315283880352965550360902358076424427227091256833211499723031888647846174078039333176237872374956821286354032845562585544493179269670501721013463227047980917799053833235636391116492299139185850015967227996520460312384791235262665685120160201276115044216298150327931112293469900090980091782368015374277091991275151427017888588684730775494852086029432164720620116435946473986068696407087546706127102805778955373326904958324789098871617763476041420317404485384318311072523731399871173792767858086983783855321572834921374053444290528280886730562967888486643990542688398176536320155875290889238566221836272677168585444217687607284779045064951964729142217480453549593598541621034814367583022660776936041680155608982591803994401576818138923857680069923885837385484649092281144445902134092178083243183755949921767758595236723402097852081841433586897526163820752537152221370475890718886479352876812558675699659530836861236169897545133042547253283275406673880491508237327249721654867052287262660288419376658280677503393743314901812180402175904945701824346982526666506727574025772335159010687461432084898832470825795849855804789085506359603212712956049366063221668875539537002895489949587685766738957749162725104810657243529496866688140537508786567026944071907958048856512500113705900401020488078628466451967398251086988843268354763778585033028805704988305268941977322918229815649105669463441397825928272351075370155294071491432215750528837409483627920477336676440816427979169385497704348722725196560491724775416370765754234683734873868220453298080184055586386043970790046649250385693169306805839514099094368165134250879151095630182225934453962571679381547744084463880510723311635747559020562384790948371387085110514131990279154521913143525729878074477944868422414884107636724502858120700717844457582289121884343411341979517750896701798497542402079356474973676143680405931879925463326567094418537762918086248884822688164351153909279686782463150553781713792039671382770704620517575107661342378281350425377595554391866449636240136300215749016457536558383710966087331909264346391667864068594192471732358129113024180121843171512760173576159587295826475473556668798282340439620004397360262361075057143823294698144095299255603087266038034754473132629333275857710485629797832779893953462402731508698030886721953299729881851085341541932149827638155507375094657036216570606176578421009753326505667596050904512469490575530107955011290803438689240320104651328225557777250567941495124294139684623130631779329156110886801654986758378015624694730076838890753626169866017030737253720135590404428190386932027900816299390593688127784233989753636361558676944215493953553527114122868345348714093880142988564026580017568207277478429847572688737045590368673426504614456252536900405674821126956266130857546019946906785113559831735533553487143905753254340794527529928962185215235841906909600713137885771845343509062183735347020721752430791584768161546675806215967023668157132173913385834548007742645148660957586093790356184581174689196844246536044346426057545392815674021071681097042070201655787291452187888783196301139349677260148300618741859188856886171908687065581825103837288286831714747037186446777977767315679302627517301482047688679676991170885215267854848332512697588083854579389869196474842142142828626134417990061628319218520211849880101744771771241488831276505782768233308270735259451777231327669041825845255540261509843677821309070085764971219008501899592032307141793201662064565894206451307904031424156207160274829095199991186259699032863920520027099822574818482029965554677393992042826062372293755440565660239101471714983459625827275105377143666321490112045521631177386869810703902198109086244730529767359533396766856663060001534628740011560680347502577280341138797953898725545456559714557891376429864768613506486988371114333282775880377198582631361239027219887681247768075096586775657915711253286927631825479947555266016123663871290234059211210770675375828046299253156792451020658542141909743595465367762159157722518242916749757409472689381580194446944151157873689361775634079469926061603948309234883293691041391144496997778797365631234804499796837804210939286382505414172900343934003061830197403806761706173671880926215601171820928953453512324331129869503443781986168634295450872430155215122655715384687339941878937860402211364523980482488716003170834066172127936452547198803998791199763962070077995032847597148175447431358908069256799762588689753873355746744378131855184922298112648873625778738490944564647335933202461120818127987053265573483092085592262150050270253227825930025823570804687392856857635220418113505866778986727146639023523082382779211893831143972663544847097568071363738847918055301452561931967937870163642725974115298811580223360163477931421029404179237673806194916748917789785399525831300664543098895116173161320014374603057012010118354372454897475126727779463684083917375864958241673329196256992160794927161959523689894758067501224606938396514334018027161498649492973897984159578451548162627898687451797022529910816106098925236845601577078945818745042520846135427256361998030784262638329040310959115727376532936176946548985876899442783033888203352192597363871723307127159103150625852942309926114700155139622981315457984947349898467125056926864055634774442620552070756971302072087110231667770448360262905585823446032976437021776834004521396207801536066822537672431557260662626442633812652297278354089888873160413974178619255062577126016861656366339597899982768080011721769682440539596116041210847568614253353036194553963005951005826749102084586315086101134147702446597292438993384680138174074149437614758919678540406967429065426235947545827983516141114880099449300620043345274079559247057963418006119233323981206246026449963011096404881207967925759581537336797032368296592610778199870576376116474535351106178559574950836557435340058255149271514475295667192542336478374387795504597214381271707040702965577344247556221394615559270871997698952696534202221422910127451132883537192654817328583138171276502912147065756177943504618504625818769372616720764243511731449223261059594638060340899470919316884680214502800921927668829483374093120815122331833874641327570029450918622381082001501803868114642295993342223398160767594151415127575231967778980830176347337779084833407702731842113978392239088184171979911046779872824585245797053681836118437468711903808211565162363911189263314794968418161847927571842152103398612164681325581275706502323404399679307266348645595417481068545279662392548669614942329277490866085772216976711853154882731202978279609272854664915447755160661436787364261681750930067330365761880266024179546727279659151992960069406869540203355507486505567203320116355841918891002062661924252570181683079513061901802827243316822720369721191980978780752616775792780558903743242265973799223208725216154402763528701585992883702164233588761637074690643963303360397632895236570610020843212905933799083612801022919374790053770848078107695094804372325391889378967617247028053735230560594124101865976376558380290334410940540386609395219512722777970091964807502059041843409355568314767321978253918192711236314191313843608892141949498565767228928159391735852398005222778163071830120143911955305424388145847418212644554071033655439234789751375215588769302131290696205828852945482173575049963202345442151501991826523941958237870025337171378569193285074816564166268345307407015041848009870580576356618627739514707493308348132345515936376934728805666957342242718056992847682590509749625186045694551001907960433397424492260801372365628826911234580716334998111059733639260828567611455030733548015073097947027100755822928124904211331065165226895905260358884196282764278315308409799019152531462874188767744197442761665554252993267887981732142138223774371052624674209510391765392617838825376787571346192983037068825193163529269759020790855811215782217607986718582550336273928058895675379850524667926590528148753355481183144820617195704724016501214975085662008575951601086458814698693504872640258567995845042682912078756845759078463917663583502670663311899549500168123163982475626708347796155903284950576398273325020939463341187730448779942147607040019232120260725579412798216680479303662974267241670056668246260746529968149111556361957708525578588360621016231059621714567023221223590445864226835190619224863658999184364071554222090550456793045882078511348859963558959471510764968965118996334913607531735152872039238011846682382783716463617088321398230396137987631605323443751757061369840129517138430303526546583081465942788620885079154671555313490280446656080965017824419802634028552857766350398903645665701167124792559697660965718762025229925486685003492690554608981003634223241283839465483144321292060702402611559205361615748071459186182723329183061660861224030000008394121629254449798927910198793574477351604771008989856811156590750617905604892168787415789285589942544380269786846231411806235707501752598145719167440671391337167001063277583563897757782248382718188625168278551755373772872521499049825741034521106246397982831173876791425295577457048662794395956708471977648240254570591908264849390496277679406111833401018011178220787831000535071326471618123629687020434362746369513097442097290807868811508916444408551165961430455247641899203758440116450385936224166542389186138818852162526316069666161974914873314856295448416031055322834641238834904716796724779598665048104227487833615386643347582934312411407884293276880165397060704027144141083050332324624351766517917819310815778878563045525897329317394762445790259560529362539827997242851484569821120179635677386603878824699717986342458862757722020834256155743733936033194357378532434040219446781544369619484268884574273338892813347878545942455834350791659314305569109612043037803006213496751893242331257957006285888173826411314463995182085194357184838078737878729176791786138165063061226943364417518776258132588588650599276134488629767267032708967249588300910079158610273027997264482694583550145850512693294777974527962092186513383784602437056231718150962321298575987518063563080375806112439386991130872581253978219576288317311532780151806432974770535019785144241748646652159869516921290631587344041914232432794538415025668750341728554855136305552339367253923249617814086440616349464503890086362072839491399869160420475425705618811607943522786931957582895871803637316614667952377362252195183975968642958723590788498186323033040378429770318642426010521119591661415492112406299525729462868262218659106999506028826542548082988968351879170060147495617143184008431465266272340122864252928827615434264699101302196309223741716988342103518823699252778436310253356327354871001940431342349419814390293525159947515715156172134767771849262935689880561852168690099033182519125275014820860184126595304169001565565044326729725583549548530341239182049398098472947824651710987232000732720524707255230881001164287757577006410868188177992580844633557762741030717778627415692481343527123104134804054558066100788547122770693092560484739109771810839551659974422921421604531858799325736884653632433373222776681299768270534506019546731422353664427426234000568458449299232155441480616661091744730487108271011932382344339765179378147898688083039201363116334592652743708547248806694824967279172564550768964808870174771989554940223605577499496257375731096132920135314569792942352845555516320746572684855307375524723572781979000158669035079649091612617379655703063693642643320360725442220071963949445538075449340543172751827426589772620499234668085440758656171775221683137213131195982190112453478168649380897864389276522003513168312080447351807218138646246228994947618461173096976001866657954432374321528309331098017235125949208806600038472613143934253734482710348500273073436761909832803906446157511377102723711095351251301335479002065682685163210744380446699257752577278672988648601320450623203557472757663367971166902729767166855237201393671464331791150655524371516971057157241094226129217695115987421925756590560153643081426726678415530747547695888303220869845144050973797924585549106906371191108375142751756386691354938879200425209909450028919400559870902129997230691995958951394491756320881380273746643924344571488902516647595734157823730511133390689563399827866632485725973193868901989986934470204164961948037105966791029812946584917071184406629994349722385824525552053194548262617106647846313097517760856772583803030510112352563061613524878689344860739679593583904425859362490684518384524029155680510841574194591696652662316882879346902555715433527301643897161371476909992320429047197897755490340683124739427696498705593286492243137544385350349550744982856520510180062735931942266260554463614906474148794368962640532249532994776758585722865576408384797626756656833055000871795811524269295862039801987265455628077630130299001744558597187967511206817583701126835792326585073013745551156412998193466007133121275956386354269777622687937175750737603488322958788729709911548148532347647982429660449316734510690570606665967061637171171981031491754069130419131206328010675103143287914852129830278863572839937890092164120199952049035000940469235413675655934176793137155773081633978067802643543170249363005424972354989449029074315449357198854096068052967207397069792053258270069385340143592355789787329041925891420999329405525085722858303534516113283166787415024036781897318972497495150460184426049768491578887587850919629342449359550968044780927446836911956231642091302949209974499993415549987115542504056716316426947369215123481902815353135451538530443546551557254774866020998877833342831887253078673142073316982629686612029704995885652993279092468576138225321771414456262650809703707323058499980257748875988267691510271201418609033134582609813433731677671629985593843116355302993568437343109172564882440836854149803962745382400790186661470395961243747285270984775730230869673661768300619952472457951902322745824427098351298633062039622356277677130920025812969104616775539129146638591108903232918464048476786549660857516345041593818751365587656787862622553914436058757394623271899880924420406812270464373594213924062618442396928962016178506561180123299552372334628354939085920470685783572410117231750702951587015964413705836385472546355740002584837658345592184783238301296067416848274579972891155421723826293755492717836395195822308360205827005097184810646660491517154482497472906461801183024548288505124814838818219199944277811886688830997058195091263059755420212496509265858586133257562686665400037168622464146725240109583621703734449225764874564761579499221620671895354063834866314029468014279575260806978564295115976414206577604976128515811034065561901039471313051090544881823107597506358276597997008923647553309342758584281572425675455979592877140257247297945589320428698909947502133583318909215145068812694244260395064747614596357517327144062683043696300606755100309308619796072609334914116607564612409279539224416425574209299614357979137055066428737957921866714826413359178119068882104846422548890050631814358487391076357231001855637630866090243782667972443244450987485901437531960435111387937487682221902093059377706610875404512415932275820583513152444469254753823817827911866744606903704999130198485261235494412452576900538375522211408275503992776263985956102392385431975204732838670640566976794197053588429345559244240794228438609602850128098975495262687754410282820358552319464981846197320406831800376008794480833868875292724993979780191094886747811977158779527190477240187667118959664283608596199592585834382064441833811000344106109495942166494433064560798724045046509003669257928359995509413098219578869655382500208811657428376930100412575526691181002258551276470635216326439451848081458525247716274323252761022036407435192543107318358214883539052109955897358757393337243841849207410294048335057348541682899513632801179559969235112581408824167628097879620282054125508053675176269761317544307784074248041501779482794787419010358855022576974623263219227737104351451950574090652790581146534983636568661185530476238907024158883913751071316688026220221931864271818522658891279193413065351009806547892991106363244520111290168378019649449097165370106913069702016581442069365552059188614834905450673317404023156635871522689962851306900326905358840507074821027411893305662376832829253826299840650282600085799450946632399507428602011944646483834218938244243434898167777019805008745404708166059092228922332394588056475326733623913678539035774947558015776854425377463521201651655046390956888005076714461186738627973808495796506382329404299990621443386018251041107245053585864119017722267202633758258809173653871161666059352423236349821282002357341710846412131221134811543224723298493003128608091804319475113217890109714968890159711116816885232278380371388484432269211183984347352603624911790777890807301789325881494079448799748499215327143220051295704169264844166238205873925627324931039007698567717380615572290102902776017550914545385669668001845880461946217146024384048999575056495198233150667388800296830191169226328997709098307778217660155935691599740880771419276002946618503089835307409451290501255839132402233508505108563110351840552325262704586914395090928175726341839683831838193794351272363008156982375430768164180373876732211301708534936569679348317591335453549627557154809807786816755184490552316323799146517529059667509407628043369368592389786883847956564479726792599024630798660680096476377539531218178933941495257162907660009525645623662623101749756461461970240643080582099174268298033645280015534635383262794859721796899700416589660988896477464415958884857777589446052725620100820185267968062296953231984463513824081904123514806393844714125539708076643471365885038145807831872695152143196079297546204821734425436407382258416990860053735253473118968147651023337814362011698335062834348411336192847664030020135053166281443015378763204007778841223037673688650822693897144710735445197148538771094053476640328685417317481231055807867586958315345015518952613270617694822022740813028000380007021194829028863893457250408095799051931007650731219495251207089123414802537720884311147903699890624323257740885732772577268717428710941121968488941133443564818489749952853063637608542312912964597971610173995473065162922011712757722118909798599262031228586843608233179060165763545097453586707713476976772962394224477226718281520449933509509391892813427039992558323917937277942985648468396611723875284784734508605968663507720235174623393105454309015359607081214299079540178200488242410034033972937669879421976870335633885759057800450641032750193839416619899471731595998908272930293503368276144723361207873239292145244281064766814686472485854229338551992883349325216719731594434967779407974737963289544994149981688651447883467887019253322722768046678535212360894391171205226528293552974814901614235865968667501859304139960991656424159076656079808351118260393218687079537140724809249201913415580622871733581217021962166780340493901432390343280491059910880010026584242722878218411577337935716160419407858242483567776781144770617101925696758320044766804748875759376558402475910449078687858526609132847449914406281976549880276044197197777210619394219609960533044123591730071775405968105252913708282932177056017368858987756577567140974645470844490417589493071336091602846909502541918218141669075679190331210578896089380724610598256251484879605862245219750329976122066859113192358983827367189201768844340757274629008995028561155337245254467630224713473991841358838668569840282415673260753918172454088269441066382445496534894417694023803610154747610644025656918392262991754741888840193045152032896513395910641338986912387648256111886522920012909668616790354083234839281636830962242422178633691706723796525178395967702134636953119383502136007884180916528530676466081567012298216786187786712842347960360854290527771918402516880087281609136573608669700780565608442638065943063821292286419984904124111988729628400176181831403760956991120705491526182737504093410858488396358750150809133589265519769537188749020269854126556371626984375752409452730041168060142723293233741931418201878795329993284582668372757848236961454896801516702122552872802138638847406442425535897562339575724942896112194673901053332528742301559224004505134470777131695110790340894598243520284770803902105168705856773540455191245422375350758362852326355505467852665156122931570201773371828586519932643114793172047934423926565711781265790618627219762664345401277090964832021062825510691323664014044384158770735419532052648770358647151425286251776945309149757140493345959124230186731872649885406687128102936531368878715427920876770379192309214938782169552182620368053824392103167898699845223429672872864776763296261139473921523328125610969011012513806171686104667166743333886904060763712775839250131117066293190678082684144364576003548457465812702377541807814409977292383977511974347461142569750629610016866931394903381740034973380678026949600763562442062057958200325462174247585972398652785793150370116519513131699129952563536469871955302063927682233726513601361211213522597510935020299157212067024825813974731487359367282504975355252459156414799234337778562505119392955673130468009914238115040010334683364289025774235045693469005216326278115665727758817811760616920262397694986650064849223186402012783394617531582754420425060655842177145282048068057748333351958569216210002890016704110242304393921617153873933208024944046762847873561623232063065356384544044107776204522688979808064857151291577113309760220236720432433877901712205122041525014963572543291300437400971227462772764874213091634937217245562024865407361817016487477262225122222459088646747138725936445236541790693884160872139348895841647620503936501641540979735214830944109093188935185854718981174113709593014802188963994091736274379474496833732827508476523376089965465263347776268008082087180487375505302804361575093722603277282259968743165688023111810908153214716243262351837719498183676529505569979598403935434800039531276072201087669065298567280992376842379918199109529521712735468770956607633333612172074042403825829829534109406510181376208516679822495906009614606568571379178504331734397904272883332665168160304823831522857504606317406314855561032648411892475371850098162982167599473700390368614677956569879990587582062442395364951958838855414827933042415418283467050766064128019333479103485645523647979293846221047917759046507561677603953609665394567266076128295262669520774325621121865360251873516923367729500441964170565780817980243546961818172061248470185189406680744774529799807608209369953901076874971093233770928320292524960188369267290967673940935417303469367634286067042037899811290878259993835476801219661203282875175761928163892055155508727987660108990529687590831997817450873848869600773537438884023406652590307297180562085182128670210408851822356159977396775605928205236160123588723906108216381980573315719653885508178960385392547283075855669435404080468793331105541983098285935986227029639602042084338435354339295053666141855507750105518143829444088422820375361296780717184513843325815904198986008587405544171396275184913683762229917751661965945988873873543983194467081427170001438184220466794867724916470078850211493595968238363777251073927603591969909585778203086492831213216061205047024810789662928152170371840821572559720301725174843704716871551512315620956497433127035040555565588798698335889657495844019263653764289228949249209509856183387495310543153973504427738636589046348391256162461871536549651038482155510794943933393559242073609837075981130809591103344827082627776088175042768784574438553828419229190418291174876942907022384420856046552931776846187400697125360314666992990479433758342718380270352251985330565890340631439003499419706849252193587870541899844517976834890950993403642719966146364251056266045766924621444138330776289508185649579944919179774430942195280178902507905263792241963667018424036187801749947913308480655354662447279825577685381378061241046338475253736828856599631574051392761516785781906265675142629024743022386538059179015479661543165684746471216744288712134020024572697024567177982538194176083536467115658331596231003762607214675656492352837933292219071826942339692577639116994008317034759068652389000081014690445656361752266521517256075564234474083059628195763028868369109620694018719084541973507941097833764628571145320765279877575143933818365724302285044118632501924930701078929344923548777931298948612195446830638406902042574499542789968068135677690742887151502690924157161132571646007750464862731955347914795193566393060387393708631917147949908242290270744667745823399954769256973546309011702292495068826463417301976414893714914745028605170370641776441053783145368366701518021269876116910507624765316627789074910364095026013600260982669794042361091477932416740227930246029450497634440317545001833995405240677408336257464466644620862164972871271460088512911185152553233147663510258731662420495741267032721429481853819887314048677139190258448365198937363188512568221166321858471035610854025702450990714585318829334905957017430146759083281224425143430639793482235143256363383181315191616615840984627926018639162112753655723387192836843726320674172554543141137902409531165363184755756467998709693276875197542887389892636473824691363106796889278076105195633874003098535672181368102561504739538987881988924557168897281434307263897872711357733524233567821913352886641689935202529520095856932092747866398542415536972707393616214031592390670153897401675799389282197197280324347531819551581678415120491910187116168627658803336272293618073032281656919580515609196888559596986057389080307759447654446010383126449962275187300948464316960517755034997792401158128747846774099736681378552665395545835063004850664553109678261087373456358184403156521564858730713555678264693227427005404410398239934323862857404110087820943342868859146672529585322998183752346723335466477888472575583914035415222300757587552339419815421878709910159612134181969396989556635497885766377362229488128460900494503951803103305027882156763507935578451501627393301995538264932011716884557242928832515039608611958627612465285485139602216691932475384611376500220416397460701110422598869412431086363836028314940481046162851709986398960465570834398609868050065157803433589347110744290028572538316774647305840195212994081853227369820993475741601684152045060160632540424680616066076340895011543705111163400530093629401539967608066944126920279242724546391288611262748892427694202218679815612187437674535611762597857011689808975321487956064914117851119772011124875541236826981611609972454494440802135910783111756512426762033717222107694227718571281531198834884157689587945471454266113512803919939700237638758905034921947087508851028857127206241714996138944759984899624144614051884240675474006539198757792704486243354516393096030972952891578052080033720500030541829543451905968044586360793811201431023141707112558446675328897158768417504923250923303347198623718234619048786059089384191426265551357865571588940150048955123030710949085541542962672511059208979148040970120754325394443853501184137213101949333556357936408690339861899466563575652934265417388891186692160257000108004391798387659073486636366493446908749262833707278918211109865363018826894556533617660477307133654693407870337486371895900119967536119673432338350525702069590123579698826783441897138824073249465668783460022572828044715556812010742414209909701796521374896164422082741867669577261273138210805497274625116018878581928043466944851540344930436579896192831288693953140199245492795395054479051204489976019794845737098039062930020543804934471335894455814737287165397194757033377726153607196769288956726894075738900682479862491444100657019795536168969960786913438440659130224247252785573295574820084195286564056877369273596438604534619169972417992151080426675371805108402903524181462183675615116440737537425361553557652921910820474255786119584276232704927418204084038681433401601164090622650639834596709506490203503811207792849039391281224020167643545765791072679571885331407704241163423957511735851484938680799780742923320902464758714954339181308246672294346334400956419515988920941694245387018241929187461400972821752938002011342025253726760855274593038656870434024250005217977091424163220283087885685145773598633441455968271731382394615641421340836846872245428819007133166695205441677230431603985209629477023472843933883351392212492437043529472538821438232901642519565580946734258536070513180122680066089297656077070272553778858679204983607832760633508014851900788463345199277203888953747547790552024947708458909243350376848283721098904978370343076074266051101283109038540198022028692652807574214885064068716160990953514127714044068001032764165521369084651533983567229729392155628982056302380500619966805433297524785968224977427027634896400140920902077469354941535135981419311264901836309559538610898560661820285451526973850786829393634096789593775313433542537906522267792853140126103424315263282156223114122775042959152757270528711902017267562522263378870965542694417769877170515697859393860450945678065753449542620147845521061748532391850058130482080417589026436359192559261894701278803275803705055873599924498518697887882258281529323773738000487831940475900152034436157065753791978807789540426381087021913443883636101256604748623017223502257467372091682607156770631692046435154780822957224333297972880719117769019323863144409804885833333428978705033811774370234363113829234640891825839142416496760960772749110937372663613544562196427415081122208698630192125159331328228253079466286325830774225200997873030551907745455645998221353983056632319658117713473536529739098339575948468846433972652653376953964539808283576277697291931419079322053565760326480725872044226690207033113808098246912717675688339251164271215935640301787593546403671737542072146892035885504272010503490585578458184190824173592743981887302403552497320130604395430408064603803288886736037515086760618295459208470144076391633882738166170202208347462352241346373116064474917411325302941851273347826125239700646637288296976997982379526013357286293332343645686543036991202662973827221509986095147410350423422394812134453972209238282525067503242379843707487150011794650730908579349211928627202834038693331386494249281057993492859517033192441306706936234969820377914569734012167469257585045859557212186867113100096283493944748173111722717279393417264383133468687883796358746001893658607126255524997651449484442036699427419223197050145155564930264057120040441160146784620739938280248357007795716930184260281996536877191451204400907458254729433533283642218723495739390640635296008132259277199894574533402245062892571016598319174641572684026813551392160632430841712223126176680209426175634916615853811111587409449486858344138828167345485965157194609601649365804141232239658900292840186683153286059258115364027063622751697680072987316426354515055865767323397254537354199479767691741481102484765867295176339113469203940090542341285109826998042587289770881329807124401551541687140740252427869406939811111794424162522151611797423418382003949722844232191987996474944267122406172146485089776666418414678772791860335396598537099734372151194295317693432804050841113830933681242658114839003515340821029744351321828355467444257506748395275415777250383680923933081283867942227210142203005039791821218472615482447874177817447422109651533570259015419547567941401899597760161320418164073818170603435521377968308677695372089122065904147594538578429531789310699655546086508217354932325162844412309788044318344789070639004368271984398551008914454576432590835255791490331261303407345250813648193481753493407187424334709342663006777862166019258461202528882040432204325287699090865676405938026014572123035322769719641729056453229738445235598174656244395871383928855724739700811864388461137593124511764801244037480190224598519359328100856943958653266020881162665356893650198488542111333945717573052450937432776976583163907488336317820675764575441510674648936896242376833713927910152463083768372550273884459249938102909173529937283055558254537920703376229286271230669582029246144954740879888870955557555724166550241925413159451279885864681407162310633914057743375786035794806849328570772646041463393457730312064360655980618801011592707920043665482740255263985093938990616089352803347761677925710057032873607192792967717336805058545358386201958101048862869187382110223314685307650272365523000558717222610222612445897541213681906097701215716310136092823763949958391438496056835512028540866063872016084750066368100133981125953856056797744093144764174699985941551174882530048980643376653244706129134828397386794730713991101936614963055874133734272568452887825383098535029660689332473449533616266312365848335190879942937771887829721611783668170883276702220401531981821364255903289951437903030419403177703163071367717661430200872117387465401773788482714218397076907890226491506254632885147026913209535413763665555513313804194682723280790001055892483751255327565256622981529326429698780789132463080709398264298070902749010725164355276495895379713910613744936248139689431404112572127965907006521730330608328330502341204351445925764846938747031425027236710841710218553712900088863997829476909505717858034339370957953831157934003841764731437608050084556483735760105650816902532220211005328914799357117533644342062837387406442854854721547610562289740388124102400054425620025791615013163299886171058469100818293949685966210724717297989186656446777091919097568439680636465461137931107414599602365480972249761624336971427655574124676614987850851514733808070023899677190631919190701653043600457932770081762967098892337763675681743467910828719836216797330504406909694605483928263899420931794112846499818211235261048461043258759032142642655706708590792180066139458999457737166839342340215844735579943511179714483243963600135313952684638697241397739865814625515892359068708642055969400833249349407943142749942340237394532656508391631579026351731857626321754726444588861088646668989263840267269037366921008882126963099708377168667328876081234472607079531515801307967889702351222983479481721918091388945515985119068525755704935415784067324554439831600571177606872645102057063003073172470600398238831149227134160160647576251464154399426069180555283301234531738087822391042143548883808106844980325406563024031809275302856858633123800122166722913167053051402918780265894464295696763471052364916887856498491944091014321699359057676942853370135814556539367529058270476655162725507161268757057309950074211921448137739913891566906416751174564877069781406669864435770494261837627447576744877783877700134775052895153937525339664372142278943636256108546754256265782345676468901482558807253773212978057696781340092195469050316023089570055703285829522121589097167432328139446331302760087494539149843232620382945576452785399947799571276984399002138435802640466979457244962689846198603018570807799692995817044174578543207080393690400393261194390096783305868801773158316006837902197181675134734848221684626671876519004694714000487581778726806428788432076865244650050490095494001669381157480150873303380203633988470369429244806778680875524832030528477440973393172652732872927427467194745916378134238079482747325064478924468799416965844848041270619887724804954206375261431641772835638768419396151627093632741356903769768685886373654340034523921250226334963063578273363380791411582266836325341461923873828209573691314485283795815140731046410593237035904462162994385984597965519824303893693451466071853595754909535346339514475017161773361085226762515248655194644238810610763455085648413856068614128024147425381609129428726052935107226530541712829234039858192080807350589548220636201659060337333284820771217632567367718970802106902134888581949249422446437413480622007441623571208455223335591878893645898258573257282282329126268456136653504407846495967140408705913586655088610855189945699397482451657772422312940544427429988601126018682135062857323927022757870201166277358973248056039335961243309041921944138700253283683744935770847847410132737343788981635488755481048269730178555075280380453831944100232178911906951170534941737066647719731444230428816213859529269773285088471866670110721628651095887101771931912820993147728388085253410468265898390585410164465698720083639456066216997787113206617489296062494153934537472416889606300094536497545255323492887957769563793751967770238245974973187396712202009315216759642649328278366905666564727872313784532513612122527034332798286519432087613652486021151653547980357181109574826271972513499356555205143070336051112328332598990619089639887586777304263996366610346224249904374115840031846363276632298929691273260047077021690637566025145371521809461370476097467896475139793400753822064246139164857899318175775522962990675267094618632840340827524240143966517612421887636622986067701742309348381649150952097261299209535963982579518833378891706158725820915424422440783613074660592696497792871984697984321330053613671288381095749963953897827969921797402231981801610243351797021578623834794506964380653685846385849584161998598463539527996104289983411829586752076364662693986334407094415320765357635714711660167934629118477070494957595156092823055719834867098321626907403423967639054013234870791896495990163115690703110552563089073505586524170047539319757437779402224883273948933113836222532852915039226160387702759201910335530544020913357301065509860959151854658404651049526859517123081045510690637878573169865345770846172939957755195860898210302712626587137095676564806343157036723605365124838957399718891164649011696490318120659612852144036054295278903389012918368205392782274643663537159564236511908664978807084123526753639985593101777856540667917325692080661918351551447447157827516357202465979786993908120090078467165467305981201998460388394365298707614328893738770921458725623566675118716146042564094184333278851331600794892236460252032633605505310114688774364660450869642567738122525155298226873454250508053539677225980503929952819685205991388819353021799041175005183736588685047264339959022739080236069423763000850678250087397096839735973756731134028747671714527411426420847531932496692806658783975312102264258869745592789439178350385659728255354555665920485716660471523777013872877886576015074950378816255150683732901950725897632887888386595667272277359001404113951261078244868411592627500753678548006880307876357927123982505434237468375631725941737046158645487205592498158308343670992134432779478994071901032029883766202325817988642040589656872191866290959705089894751024683642558363609463370997773442659290496455590176484871333130550332775336214286867467015000561953222010086517569039627700788634504096689822857575950623875566124002311401035902657134304602142872943779113649978928414166785910511847698486530200970722964385238918931733357099909589809823123550759378156970465046046814911831204016603929041856532790139880938594129276015568773300104261580364175185401659506442768180588029985489181952733226424432582924467224591258316792079650374017416821156735707795592666730085394412691489287921353730419010025862287598718704398316625154537493499423705554192923084294931135944590894879075766753992449708630962672661258847454948018254182991356176442367636860639349272478339970502237558428160685888129492989623641447191418641382436427741173555212155121933023232111332745658676521556078487839379307765158214412591223413837907914857581351076731899994070987607644528874992131170534050708412746283840590585524082510949578281757182469573204292547264412328902740557345368498268126611505611400852092806960212151341097233102246658900111507197760857458504725077227988580323490949848711804055399313425314175855963322369183503609033391030822350504457407690880826619848456252079632368891025811501410537972964034305005939406596816940408716975982850287975330360684936635590158561022436631706801506251162131020056042549085203698126844999890869801236217874585468697373348219508205951026802581249927618678859280045403184593317413134385267567681483604930770590504764959169719764521881711245807718682358679146931557783472312069720033593665617723934133844215265683761692626615298753143457356248820701946304296222589452320042767904108460097824523467570391725559529540386068089443089252329337390794165946090068167592049054436870285862693823535560004807729211688999080882566644784632548232118465260991144241524163646901800153458723462589677028791201998488938243013194966375100289660583590795663550667554472802023021151235226821975617538678610431376834351886476474573711358256387158910129943827482905230593701988457369886519172217012970303561502901150603625624773205208162577493993022647240245593794502924781217617941613648025190303527801810449664649627890986160894208074567854679344147527680173898962825173147935890438818658156430792681343234781809484078383888520601468250973238874084168534123864388756976822391342953473174238790077614288733672789152406813536680168351785154915773739233397866468372981408713716150392130692290646547814777094508522760690935968031948001310795853136979063445510584885787380455621516964959621185318127237351707218542335442581102507207047270045720351314629731108432419165110208246101266052521593057052976920802000919861714233759250990234683607854517527146564804035703564110643466894498246769120469500114623002310144078434975732913889059905132859163525238352888449629828273959814839330688564020810112394862442037842035234785314334566512339430805521907230871672658090469699491404918982023179894130987566151654577778483861095261373586179411015997552962920904394085692240647041713026151102954646710204890487181758471795346162115866709252537407498125625146489909880323240275269540704617892885270578708647886740755789432158366593452616329937257218909648129834305732326754460522579923392849118284368088004365787342721757589873973762425725589729262089283234420154964695280599069856728921753210268703809236227184380484718340432710733774371698432622060013301724057419804438398040251825640373570791130061130044003209140550277354550100864485955915578256177406142203115963349881662456574366589899818114783764161137051154329683352856056659432121409616472836796447021552464112505223564523061762345915547281711427424591897183863469648870088095664892326513031490744169927746369565535123054431292280245330649679900915641617797607077179683673252001409324573731899842845311849035999554294368967433401036817255461476464016289815873978116946150982412057915172977601540958341198493469176953705636208140114925140289861934371210081460748814245058075282928460641981976378230238216224636946849536910737390132189373571092178906057362457941137613606960189074803425775026134929166769784369191509279038829702536480259658067907957491137582956708138273811271639807039677148629268571406016804972321845538382925968990341166959466335544105871086648851978556065729270429661512815053841567211791500532736359833957967642583300719902714668272235837919907222155595834001799987641443912538017270132907014522790342954032373750689635670172761174014095437610628534094327105217984731689009795969576723400199014986382876082329808596539498621587201529462408869106225928154134683173019423211865297264934544388241533356913444448963098398674929708291441414759759537402926669497839430205616040935709178880800345308242564157745158452141751566920097916650241906307590272428687787457919258686473362890401715176610334248704017647077166227466513194277089384423520166280922487364519807835061655857050522231817884651562280001168819315022017108533991431790986081051938060042417197728654056381436517914169931996182805915366159488748891907419805392092528604726746997727774451775493799201019664066996818724630989181991036044686814406088050454824684983590824535353047257547418696394447353703111327966996602000004242841881116199463201435242344836378838285210539107871120296969741142598612580169927175753609899659339767662969446008391786264850563673250229025819373524133514057512826754608521744025970329209851653320438605063743591146810554023222465575468498245393528532418086784066714158250884668374266576781610372527363182342576720207119375042376434931915968263913509264926936801380925985884125911628543741873396346644074283150577051935549686939672013624787077853619508521715295457493717885472223897458422649410545212833055463419043290855535557944702648172752902639068686666034442124572389077951911303482794661721959239981397742011324929241887641513291771709804548936586214387548152717324270389761637861867891797775490046524852109545951108063060597546334218583727195853784982838599805053918047730613788486226223327650770116141295449064482679050009915970062814761831529762130966039233742496196878159332700124597814265621460346051634611348147935267690542275115296683860170067468404014054730967208108561355862698812839445592158246708914009863671591194801165011076712934594372041137658424111875996386439622882852557925964266715359754599896717040651144999118306129419557806014464516184395504856613073474756690270218562686583914189933495425711028121573137861507345335954375923290047325819331254922151672037093841679631860223503692234127235670484519100196454144377579335416625456762364480633434655642164127613701647826499856381374894220810266243588648161486399957631180012608705067595476775372758179156645923479135402340126951070652451131887042716955632055912508010722255916519703411619307168368298004627955093727881796772105516283190722440729554941473547525991971285452587864611202183037956023304429522033074283724211868314985599621449343442621293206282146164980158120914005425340739634614721097677889498869697143744345208616302668478726426306543233168844628655984472724994059515709793270177011867228063362978421846524339178209938415752557183018637960123352243215013933794774283904216674974360078753736661339905431590937461913148721489103687275441858238776186685000783705115515899247924212512730461151683283112942300654228253032438055276986658842849477963732417960520941929427487806173766544846914398504099863167301322521225392711941839534593679366188049279687952742239697907601514026383708732028262164184395244103549966988299591051366300703091949809096666545774884130170102486226918475024717596839545553352240361769369959704007863888297991205536456905381499088822936512727833027834618131968101902166293025885106784756586920122060329434544003917091202371174312387671125206012794555433821271838520061146250595419668988135408842061424334160841160732156343083171992624650470203703634370641663875123343978790574162791719756577961827801864790131795370848706967836848963186500165199379289526504902695137393718434967629661692511720492838432340707796661159309152054702813928357523780038661967926955836299056401935648791325444001879963943203467340981425728281258128734249393488976201315014269196019098733380751777406941299063455674944675282018904973246441146031063581990034667891198521879700963373556152778364840101602548629205830453560034788426244165549394044625114682935813068575687708614529608984697491140272268376804848237179100317127137209209563126567774772221785717156979387936895223984524294018770753935206561471292608501480889502768682682301648785850170627122220327960323068162010155280289019901655265815304616545509329082769237190893138429444038648191351677215825218087487475157855705078220269010439840216017719584306246784610029629251844632494547680341023998604545547984020461042867771410900379176061429650704861417591951182255061814533003354629306441670728059878316248404388092294651821764618599585132789564823275787627840990840298306598449477665034982459596473198987408680335998739833965675815994655815528863315001695347457360774082632153779696273559146749364330401611290243355059231518708873677864666056249324355982791825502285683059529372796509544220928524556574407272613489465225098149698590987185281444924732340306331914387078350660280958496227150286853043649238996521441131690781499441254608990183118500750624622297151013256148587071646395757045756330183649131661207822880932274020662484028948943853930480002569568351822110042261569952611056803607282961832842005509767699680889974630766959155610872946292329479632903805424523964009455296890174573138944424846634304603673176200465832564921428090005483631364285100749618173004851127597811323888871965327047309157468221254610838008404332496252695113285494609051356775659865045305540440639412229480777873569332781764113128591455621692178578972156984421986135729700015565554869414561605562403508480460187062983023541482565225329701135543567239846349529342780849425029871073821749205371234502582239311098940786664061527612101687084209200730008295072495333067334816454689338360562283423983168387896449616223680053892184617373208383385128592736386373384256418894713178624557258323769037586477835300598738683328805127820377665817690812050609313750926472395941768393610650136988458595407898541112279737677281388958628415532740788871913131197243397082201031452218089813686759209230848490889351488370325147059465373171964561014986760571160648892834533492372522432959745977016701997100334800840468745202618422208066465243286223139088970616095535487928942947804095556307054888068371827357834783415567306121479266733097625188000022244987242425171934246317434335072702254088119966673310398933974444914191089041777425627603652153122148055328559510714195721611736471830897483890915688239998136458048180038451545700361862502557017288743252902339569305825732648701990297685437139381764704956992867050202040730600131172608153350920465199630210213278034421812995254917446499439490102068229951058339810962428839416395460169365498086081279094568917115445857584379315666570893912198440014738434321463147098921872287317702905467486671356440621455564932351784710254547584774547324175725459236502520802024345897800003660297374649557647009284451441549385420770707717643071280211880855629385780329918752900728860865794294796368232104347871618145904828758121357101386565935903795197619344322086396046660446272365451893791273270413627826922369621847374712666161634405712890838544065042893746676168050682176159210557215347573169446323397837040641462507595790540308809208812557638615734771521627910883028647783167782955157072781135151281439860525055559230938793162048562105757377777199271651799981460974875217389086609774907345714176358278382220610624621114138373782247489360029091062896597422943061180841718090457790970620068761866296500130455449669193440475941422743775200720764197950452851478143382248723787588458714157784203369263736998814186979688622667414495560031533793930221720377273790889724480022601457918881237313091434211098928850031290640374191335084738893185598637804276175248514034703073928126811063613269128356936554287118795408733720887437536754420163567725727147058910899529029943927577350382886636415456929090965715380319810657995893568952692823516153338365187287016904882573489649899585358177255951286861318217064358794361926144868313889816191835135893812123458650844391241948762380107352343276565761360974117254605058168163319901034952179937502294984102820228763224339349225145485146403589227963815237448952625310254000355409111569507398011061362426018729301412371437709531249368699693887266357117852055955982475020583337655002960795778164497648456288991046337218149465561508122408935126865830182370947849378513594066322631459847449765997931213575224579750828950404066832003623253923382087445479331190714938481408750491047597039294864067498937115635873392379387147439979764745082854537564498962668854739416920901504768917509294617650784039645197545614677781650880444819673410416048380273042089977747582028960397917752369651728515975192902363840526983973800318603663832604949609510195627240460191817466272925124279297502276879611925780566034302092901338952174779125329985520054428021771565069675485326351791186909412666304001736706971089664452185327979247646747798770225799086709257548391978869846064589002371903524937466829069760320227663006045319867606595277375200236917021414862840106742587890868173191467488509101243973063718879497614804196457510901042954912743356386829023843580958191938691251094988433847857824906458949793880693734440154134179957152477874730789397082530196716559152465444278933234828180106681897215354282219567067356738112927835813702572125567011270760017643095932196210127558729797955203286282233167358157880294570806132756918327476007555800178673116625046803134188440239914483450015750002354845462813182156264209347871071788004220009005604653991987971193657726632475286847941261896981789903966365802037772882587498105223186789450111815883513174065507939040679053148841300223443003325500595330848036913615465648809247726151061466665395080088338920943252711366428412422652904124204305376383465346534390108918860038805684374258532400909523502126459112332232309713171428693054382381624200510852496220392005231990884786580189838446983870841547239231305542296373869529496306418255182105637742342304505992172821571408829117527784780019875724845869322051669159278895583824630861073482555420419871205411507107086889191521704927559445002229637802267764081332429776829003631466682906795771819469752881866243799567339816694067242592682155984484179136858499867603219404295740369086839242107639697943850821022160267791623152374258468861851633926853002668437659259226283115481325253304133654792389998170361483673345947439773148517469807561008168424683051071768633898114738533696289462338895885605337033790720173950959580523238713793589343865329005228217670079909597492667340832204984893462385523157695099627811891359653298537807928522115892796660874390851432729610438994429805845182821786050001070686104360981167673872614527702603544381682868978294928741300194915302356655869988560572793557342893860519046958248858481882875429021033430216059617064657532890924889193936564614997505796758581994641849384806230768673901513343530260772369717076483875491954320969231788382444697076761886243262901317693187707401260202698257874114985586780044107297964956035534959860063445645802073841718886046540375293522153712080597833472043460623619665443160604903125240766279083569292860998871546795019357910248237380387845259330861254254548580971350248511047677497003598525878610635228301955950669589697607671218287666512206701795827138212893800982307379974510982331339591569906018972551530307779089633255150974013680235712390248886960386950002481884085687041950322798244048489906456628478269574325952350723859756133413179624997144382268816152307476658900269230851369552681879335612591449474539015380179011802852930226745315868760181914875025050441970938996795100557337528912032846533779633739591872353123558268927794632576236183750498047566172163410739037435671741227895960551462045278546009843273273941007436219141688310992275838668272864063901086752911134661181648266348557659624330516865771910008300764592015438934455433114618947212020877266598529743344070346994218890762528643647715425124854523319081803663700947541344586265279725173068468872232893863633853231637173589327434584202680116398770730108179053898115790880496696091223088531681059763423839294073347428661789771939013747987205949937272752266223501966201805393341608399553268281594086330646028885800347034466523639787731776747467818179839067349971633866240632458163472463128054523750080181790103783372639622747029659985480894218849669310668913460912412185051058021826242699010077544266890253098195754275443522282602300677436425026755170745215731045853894335761313467550809253378291251554333963143127160896150961434915032476304349298293097870287974703839231549908377169958207639647898948684391745351643562731156707532568904965652116338595604755396258376922968329520728259790964466854863339965904066093765987185335168913029435220785191832887199320041696040627236530079598779325697789788224164279083744925631357681710269865758650918705337170520001599183935649479563372920201706346875402609287630723032427333254644385567653395001602309227315822067327124004099682018001902714830876365827938704986722782994374389660831766686438551700633283101700833412670184883461189252021064637077404435277342504080590998131486947351643180941375584480955758882931660494904665906439939495949744751419513961589840833844274119970661580421147311547142789754859375927157390740874642208951614566070106043438087254472558839507176346606006521960826723643228227249146059695590017800129033542093686416929649144828115095510175216466812433316605990116882039087880230715142611044358107511332979177759234442086525040671117640981352725499708430998539426298066772838935834810854501587687963023092605176794983209158434591391491346701282662907803334776426456131763052429390083743137001090328692895958812300918758825423187947537072294072784289396588271316006981767235277367165707897776106415347220993213156694988535461480599260321127821257370844757071788818725132394041801869493202940819020752707259751684874972314012329929122403980178746019712403387406050727214384627841413516766470959080497992053789094110644904023485943873094429805976639687326492562452738280909308583659519767198575026936648736658821859408441362325813160996919058890180475794252162587147716761517803456373377769321450084772352748956156016810304119536125169277556610812896297176952362624536775118759698246239728660571694479818950536341320910390653894031870586509419597719623680578879904023295647825368258341430028176314414646547565316319502158444184181302112650530671173230722332282631035872993391437898306702707052862538370390496050779606810682347525097938759181474786139248762607276865964326579941339482289536809454420715613277029841098384277485238885312924458240634283517463452198974857358377688441276053198237847151939395554255555813902738791975393810570332745524186167450482815693718441540766591315795210912841587298909799591353474174412240258927157103993430548793926334464984290051447564785249799369427056137350306385478749740418300476691071056849346569666784771442368270360495287933909227870597356756906369893601856254227627219525645651688049297397422901905522688699186508438008472973222223798345112928222518996914825070847014209565095539439907111337004489816811870944656474108431820456342878190396801206087950908242176774067387059131102734035892328252884765508940351441329227792134796031612681751294942682270125648707731489318356633348337869089017953085463087927833781828187104699955207315435051060992109180790324704806105664107871932110028263482305181902040255606053176345565902303634186599375214166973416041808214679026609549146963697166545701024991469649961857016983384887857903865182077873493055761351583211086214304736369114548779526683083348227506308000068541749736650005358798194557794500733246583783361349372523035075810686999896093791174688359614626963998418370347541750956356546784159367951087467903933124429054558245868532182308797111932907623867807988961776297011801331880932056877698230277654015211052637648244221986236754959089204153002268597864772734509407066750995444873593797881808351353922523204247666661673395248974799985217798486881670610868547639814589753200822673717055643206911646709891184049555770196901115012706730916779027146030280035859125993826222841024756188380117499815547077431174181352951306635540467382505370276315613135711273374180994068918842272861484610756374876976622171758371530187528689931450201792387627724709412984387960792820769452428884266675980426313182376207126145125080863865783964257234177480056699223500182553035298388039677914829626700948038299321622067467247589119270067619368940463318925769567449519917721548099968067284131084421859483563054628013448500122786675653770483578583187198992509021194795098062648778154533440288004030336984901968520108679756084757980147653333385692852898933859507863048439104890142217082828198647312520141310339013752461129543188847571518638789455373808181369928684857664330272556999543721319634343123689247296013631223497486395225673104328623248429483773432444018080385758608182775286461008485200138824268139323937362235482998407181641364471521898511937299596473463350207298970907061046822066026120388337099311664665545974091537613373953074423336033865498094415431843568267136572712412222000942597589996687744223121213939294628542828651737437655442845572341507910043873080833292475975025670888816369628527152435193982572536517452877998644785022434770477579277841943817461550058283637825414583739176610011693104164516202580706642853103233659818027885839847749358222020938761365281974718077234451720185387648962235071976071012284646674387146163521074011471445532266462602931886961124415775448186618692411489017492406450734543318947251102966408564863728603114386039088395685641719487527591189070790201846215788477311261351588544632265218352334519476278839953597322043734277285673687969999787553409230213765649470001420238081902169977034153632971599133745909054115905283624727000624260247480114010193230045999637379170963403430603187296967586528295720340383262129520764627193051620763325656164125064732384182724873186077986786293334395971717912369227587196511065984944521293394983495577647464149908546727862814530883397832430400628735842008630789718309438817819428581688739611023745128045698927875396705798771490978043299312488832380601164671502566963881026170603128186625828993018319269693467988142060965475404075636126350917865975902681402474110775563491620524160112658271986298108359953817270041164591190031887305732320688339839465247769643881340228250753188994957557099283305251896620873881071622312907048920149596583402919817650938523806626132598653470641144833466811035464075970101772229320032708033547525683138668761897749375836468411683206879313915964702140613005890911401215652863042787863688390943595452812074032507295125500143972371638394141679161584078626777051583894588113830580712839524389071229006764550079318766665908415072410839557614648683098008623116055392077959398432228795449295875530769929578390065183202254368464310509615366378013277551027289766138191516253867527700241023038482726544768643512466667921965848608291954285381378667379628717459480548156700194077222251932658368475055698212083006408084160171505407267997066650546440857381143534957430188058025115564927370487180089852127825411558505706822065355152354645794591902563762966554795631950044909674416713492705310718130798158127895963165921841001052611888938192211427202702475071495430502688987693813961002914060305352148299715566166938013824517837103896885387291593061984577492578569658704210242391649844634119571635049464331151854359427667913939808440051461605941706036166662057943341179563810138088957047890373433852194083411884638051939985317881780393834130931864405986900841570661661992163025726954838578202471272453023713966808435659335409529974573247256770608424120263672452547565685770233836323951454648257183517735525836082529664537839185283974885590199826827627527000792936993002229744178914218471696730926080075211985074056798287267114692321558369379378464482113481433256598377021390511788958790242234447039722568985299653646455997403258432780782074348941334025396263696251459970729890174493810602265073937088830960235598263165524451312168556461320604155937907917034780059425745421105123100438398450627520342433286825113906314234837297609252755585575526444157103985336594219949690287815312561357943418604228537580357441251657243073983153486411823309575241917508490807130938855906155379065075265263721459697422202352613345660463251256093628647320077689820405121969776156563833915005001744127414835558414831960607852021401694607872317965708874317634318255641536698565539295102847851365668283376554258683689701112921858233860891266515929860051587729733371442885900663365624051066834957671982419363600081839848425911031386451171821421712081004438736410367996465970482182685266057305411726098967196821706743587636173369901675607049073854214336164055924327719893408582281201098611098227654585975995022028207624581213704387340351662176605459921889247292465698730174553462638068370513271794911181016235589469554822948550422579082950888779854474448910348311506080703884107109255946681745425852286113214735511560071040594787254401557568641273515251393612314939403415339918033722293925476028568356406242438603375144020585122009688789666138815886149264639063311853452677796706806659490535544511535271817450831401315746004873521895040440908118158326840963168356402252991663817735453838012258061774925754339176081699198583897287689763560209051293605196771569621444532099216742125230022316683786151761547963037458087949346239424177340585541959519660730232883758860498066257874653260612348440118488450241816975868827084177758408647335347268772545185294164776894333596992367665641418541732759105879449191298605516970137691846763311112529684111992111136604840773186137983617919410885279935578152065887785059480823751215618354559519503261949182287822558095470587493304282831002459895238230373236174688791113274078028692967843691257608538165495692766573926344599083446781321209709438242942503258157481682801900006421040574533174058903308103270262604720293089431045666568405587334387921606999738658652685326036375401515191430642772335449359878483961506147536852844385383485528520921331601313250100813871440636946126138398172601257170857963322404673708647980645461178266254393338131480394737608838888553146252471231748728164278669719984943271086663997844801111473045240502496336657999681429259946679252187788415447928624881967888249130189319985465041755904343253833163742346315285401096158377937579896644724764516782457523531746085088710271442475664487407417866110524862574661271941352438455655508844486259316319939967450243609119010080430951230355936857696736014431516783305895999750974747078869283931985073806623401839592273140922314924189914074701785656313546070746146917949252232728798963076803792903376786661793825245732260356682459326011120793600938829906452513521547971427748209082284420973820914107933246203093377542008428644107992589525631387564532220130019346296161188380803347650848696820845952567957865439457737486176020856751970028526422600813875160227134455174190842682811335157560215634966951703142536977109841171795525512476281317118775188713441175368470096058299988601542886717894342643872188211579776304472395179297566232402257446595476447054583705291384869392460863942948510926367965302039081022607090161541631714923437243319662408175274348100868726990140132417122081805417099210370301952520600885909326813899479588440979829958680782164643877353372477695038086384317768243143256756700078094299108800991458996156801997022526938142192585599765978707777638072265739351238321388529000921327662653753219964370869451998188243036173877667305041067218518627845641808596005619670126161448546490553488891539406171294983882230596966253677870757893874268195689350929865772564676629514092104550812002734479181116346612515697861946210360581163422048397527175620233679190307862537801831513947897193767359498459977736984351061159861577145227824990808688016595365235594231699269798772700910493357824413828140689157741379188311258807825010926507206479876364357881469691026050386506986382206071203742910211055776613315498336653007964124207436049677572424560922555694378506646593299023103681263796569788448656763026983471155241341066934987548727587516987979336769148462470778059348755767909552390234382267421789494978988877074142561799708709898380935172472992971990056307697076400417080158357267639795369169512632679763968363171251845201443309870632208438762987532220015129654034102919360751835878237498360677789003575826104757722171185293819509166789553305153038777494520005654833050256767239638668679288994129093662953275736572438391932196250710091724115082976920255513174173232119995648931243742060549507524683475715170388686182427079987126752961812686081967901606287636650811441715602825523482925606174000789334362929851612048732518208201136967035362837997793565401743705858445793432284808090354614426555028749955507215266494984036301367374820385798062515630087906411585703603107573234145915204278927365783401272524631437017620523905088755073719659581156331011062030898437730224655651902937194490509743648964509086805264271543866982376233836837689832643414821712036697564906429306826941699298679615913470703228194350208936876871281215727083641522043845072904061324382834676192007052085520551164455165440524290235038526023250516804240964860206661018321889102538352790959218228853910946211863253741451037209226052048366953226825989293496693772730258567243429446469297713199949781649318365005164148996449122573708702160325101165501342298139644964233365032098725104925621698800828595945666120431563215454807604753593243754210225563891289986143316552313589657028426334721797047845981973554229603401240763049473178423870328229363103750639197356264217689167753013813266954180795413249638944575370460259354298354044394424178512273745733608165721993190061471227858955764078873042958322944702379258874996203742052059149804841357151601985835350590760062709887718526312050739471879718043212560659963012529072869704230967476639371832529027226284469858212690627827729278707899062839007437408163035118730455324678794708413387308534343491652326956646984942955256900314279370811109122323871979242433227290839904528709292237602879283333539826694306620903065278890930836011777199387721140144380401094895534669130326972784572939953621499099359300596768506038396341470534245180795072305996119408666988753762844460121636707117824424795869495691471551260724505118624263628255888457009163318659703772597061510876876038251337312114108283285066291662663451640697650833219605559548444344156739112772468881244766432067363610217724484147875164422165399036852557320637714534161450497710481652643687785504211721836682779089471351490411685152224256809724578922340631793094930504128343760113589645252808371496019791494189455951208454581975715558735884240363063112529833680682069954986869488058912910139646066490530021192493140316669793473043038873250854959174226633231740410201033847326405491031827946104879279960734255804439465420926481237459458880466661949559541517742003301021788762062271540655972291093639887348679467397927441967188826408502299174515805537270093585719485521262779057863963005231694862068994447947207493887292446848837992001602523058082712590592839993986527592091199672533352077785949094932262315633578277392471803389558559214115668813816482043089031767759582920160023563856062746592756546759530940905774724081301734029162336657089572450215218068313101364719662628119640854655493098968474333179105975404988516780316172117426238604382419162024203220256453991456373289138217992818439783619173689927019850279591740968353363562172154267369405008452436158689359284128142774191472190362051339651490678034020117489209519211038032723193786588207611090716160822432647320764323383172493566048161338081904810956989322168517272766676407894428447905144772407033825514784636140588022088173611948635667881424615646015651978008948898626347638714656965947802403404372183893352839516438614793474689340452386439393768065330332371918496507584830963549041110794514351162058305395461436359195923435632626844350870175106375448553913953686547263615791285334666275681606607881556135538147523509024804564820237371410108489411488961565876822499894173224358386017384430789740182811580930773581415229183124424320199296455184580406585045902065069740636419582480804286880841435167141091795321936728662593007554311741924627559913680243087146053411937409053587087922688889744008502272077796800642581742490813077031213233387676741242430500343020689094291358605758068841207192677835174004151901892529847617000556972645534486530267230546457443348668087157899083724828501681976517740722559325160323803833659282103903923025045852493976981282227773234864899460594373776884947634512638847378436744136657772669500673482646395566120279568345835248231783196228191638615009438606913155018795884588292836249026324824724065355840208455706784195032728832936242749837353826837167225706567346572200459609601982061359897425499999665145762726789966931782191511680320324549447741580160576305360924394325286721783442841897867385332861549433006383838499187297923339127750034483668211304641059656740377308856341276916972799168633294560520786157928819107335834541906225213103934605876056677539220534386431637744499858309477231771330749786687671666412479745134731482542916819350571194246633517505138920053897025551727356505414868682068941404506633066910796307060461979560273828252556793560527702832436530688114550192621000323248004398067810074802280881992781707069472702935370102080963826916417592945818588866558424482156935538017841648881852402168768911804144109021071956678258751805114676729469693668455050635836437751177250316389702333597697901456453178071202937407352053148921857112508861413158728581399166946170238601772993886944477300150907810489298100224415096230743730682797500976031648939422004649617422361354894467198949828787362097115190194695816725748668647700013038796209574213282711638532660189235125219508955638852858184824361148402266606982334241880705259917825508318603940944649332625018265982652969854369570780253172786782848155914740246953105379670403670299288013794995765386795275956551832023142826004819992121689509217803679353826753744192493849224668564049095625996177267008121927708460147126647157179282354610533072179140614330783640225019619827402214202853409335256493175764612032341843310492776209015038811715787140362826225938883977505830813174097617960990038734222341833037495953745780820369924827150583118853125298881203504680118282166131494393563368208293648224787337460570845252949702672429598707571104939382060172930415961749578717642372963468104373981932353354421064490603320945838182316160712119147630033771304289225203238208881508412356726376718387088662721365138341390796200446897372817653599553741706529001890537023192661678306502392904764040239970703281029965848977691806141760476414792532926187220138241170094447893495627367532012033469355171616677910860529149264738818231582474751689364503374668692619575972583180356986415874772237267938153829496780848185322902354698390245390518522562300930377426519743954459473279723186473612204696225639385938896590422278779640283362638458338845650152406892481536046545294055362769440257737051349060130683840629275438002237262303259284004832567966201035015368232156662362051466358280282248496999577087879146843911377540507370361986651031347840908617536492681259945784948823706097371743393134165925721834851002483152101789790216872399285330179858418218303782685502891295245492147878886692393275796506966496020066472234949485668719603278069455841593947148814838435669758111503297284117352750820288051262426139804580907786658397089034691813309772385933078152110918970994583638221871255252747592657876349970089168569855005433614238329354520932529040678217812082859840516142845617174705164020216503476078821886570320870380157007521194709391225680745018801704624863863004672931839008184629570019530958173712431560246668533799000675323812147274296854571316297044345893429269919453515536816488150692420119291332160147056194539403419401345444582649820888206328197333537962304546425229602193232634471121602930244668807351772416331301414659050926471415678712575343797676568180182045694484748936006366583367101267319156852530085279919237718188750734242154993319830187702691250176966547196417730376973240802837235687270572206337677050327013552315955805346230606130076733763513855891863778212097055253951684949119981857177660293497403190956957995716364991295497080191134058602459416242014562930872373986204758051673249727600273937776027207058465909795679898772850414043001422200636181447070947844465766377682378443401536456694565323797872640488973253862925098821519219076516227518677730400092021760498923215168350834185319910586307838515288290922965698862156159061150173417387141849406105105327300183096697062499064281514447973259312478352087063449187576956593749374388177973696667791695421611062852909173331297312749103105751971522681923544874752850094533231472572693689665315880403618992559953062948218755104133211410012021459108572323025332435090512911982856732210797131125708801021060631214856355668350407410106521019391595388959825828046202232735365856385387453792619801526020902910601669867383816883083443746179281188512061510067337926186786917884940643142910748563387680692538829840649635730794143154036168986075448246613295876204652281949041925155653488637037425996835350350408451710012374023643239460432957395868582505347531845255171748368633285509015874033045692903613556807599502992961196813559019291048305018936873418202431372167489225529707135883793305732929277517491619668733292069045738280352416901489919912812900073725586871390918379142023135246346604475473016420438652323945742431526113112945303217579959070966012117717992523759527658939693766591526711233210242487286163245266878469955802346030580731269463390522649076179745975775890245802518892252880610054105021983932971282217042111139229485385272579201725843049129883761971179257595031845446289984480273198275362210959070287943509166670504619067518414820882146238442421780835602083997977296504582188384906874387258867124081369016162733495500419169025794881936905984639487262378669836166279335133998637192910282995713442644669872578654405006543431181555200263432961741172480970522937884605155701698932896717681555020934023572961710158585729199156604050888201196761743450462391076128624482859666860842380295416733920850875026057886948793384058470096363762713451737782482407740495857169673939123787737866362425893182742441006568190371945128645280165094172682295970857656870006353674696489460850765390780348737351270165561593308604732886830145624930528415438821073636015101590904848015074082894580447513994231318975149495719221737493585097058416933407009225068915432615849466253554676163958350740024746082485368977708995605159404986195460177441841799069497097353670066519871030285484697771234459659314854149589966977403184599980627016165387727284831316782237647360273007580163650704765495149718925137870640854855762251628941450755549104124954213841042766662905178294313299170676148106403703267407864750238614449305505824564304148184526166511214006129307900578861028078120159690876125362068843784631083119729427301021226882903519482272682121331585932836608459996161126781244749840003155900909313134623635909153816414347627378248984972274452712744428190021097368344830032832951548987695246741815700822764767239666719469732224923276028248263248321095397820363645915783667418837366603047534713133381189276358089129210938130634788208042062563010181139997323827437590645202069119798775237970562998378694743667242154090590045772891954950689928642610493357026844519619042558545282972803175526568246474676953597705417377421199317666354036430919886525971142101194336179153935564531077507568096748241487082655539011723465026984526237714675346455254639170471074582473356825137732942206429017117707578251088885063464224513796956892056046654980225201691802791996762932359329323435515166568096358198196223171749897869230860551344194264760171336788990408841081328692609706668557617761414026430004446116376593516333187946016687649883927342274210689477425069838507474277946437602921001806908687196854197245019504327995224484838736076033621879576311452282641258461715766923596363939696808625124178025630341734131131890825716800810192491673603120759933919805630441181504448078341786238163051437891584701507544121683385448252371223779946782373287677897974855170705819863661756629387680113716124030241141373136657884493300241084307833495927408397458856725911559811057090112282674402988169843455191404019359566571997021815730652264604991089518171217986919565063788478817456835304189145678643724976696698103225658537113066525219516025587142051759520190390597594233734306336295153166460373086519387532673382850482603744536806190178789136296915153605716197317635375683037459075522823727464930882099316576763979721043717309650240099817983312505593856474707829810988262825347361797486848651589620123343385324559829954990723435769370974958245163978428930448013808944118055192573376187811203999703841469508922213447227607846065503946355995380867315160581766632393676574138564755226908177011662127665608559626613076745979437545010409583598228372880120794505206651365578241197193793109368969674275496622748315044258702583270873671431903150465838401595666683289663777026632084914275581587460181660790876263867227792287721970645330047536828870488839180151562992100671728342622827241130100298602396131397401726796964240198642214256754063889755628483553360351098539696062128134753483022754915788036146025693785610147738815991318618989406253949122762378666374780415427803527926384274899643735548865195956152075746765910505674293331702606451426225120814881505808663686070634813561291846936500052008850564499662334374185018932841404195627407346390730081643352683893861101349299463755400977746555112768442312331816589333015786339867521349831335281135831153769273088342832589443996657211420938472322686858261742587802741494839543419043341001307667439278549826849204028630897909702075574433523207968137883809715566898099142525850368328611962442698092571878669099524737668304837894856458129805705791764392032100484399879368376918519394488566995754837074351596596783100413550658791226051156222332445966562836828224878976553904541931568757306841530773786823505756862492815060454978322930055963331302800650420824684271012035395048388962903577635521264106591740848155749857285270353334315355227599628750092172892745821711654405265835486438173682197111445683611294365252626997564623812177071213068360566478041437164914395803561831904072137103233568687375820354479505144618060565495843077069424568849164927875199866846823908377608306338211228023354234150824627520339678657659810945466382310677808948610349645427106602390033326525602620785236295578452886008100229733895789559367486767962153364455651139683342213924104144574332747522076125834182377046514052053562126093900474992480391100281942165379357693039520495867493531316510911468993354234384263986658573089307758758869179389476536516801262965426860455857049034185213077672480657136383677889125318140141151605151725039124884426838714261509218328875682390011375511957251649133904931808165725967070154814579010243599612585425994911346501372234755441850735368303009121034693907067570003622982192509656671570461697454155544606690046220155228904406383661718697629563535438511954168172674761842419093096615240167772661151330070508342388849055010098520069024410564866621468933496257231563527435415757571558386947098283898808276270203067905236620190239621781669943200553428241025338281291695065197008507323782810903184897651230111193031041350838804755853564637216177113571602039239429161929310153158242293404405640038987722351603092873298675092515591139121924795436647169841639859660137722157810906784558414269301180339630496995985280452164983505997647301594068356077072049005650395953534999223593475926368514149298386196981884379080837468282304539687506457918411143545226852717073115730622743957320935538421680736630963471645506070126798133062142672876653021340869912088680466939249558363840263362038334432497528121700528740854526346232308844918759312386337375429468771433376279260571354329909893133331666090643090893160961287626368224562139684802336363433601301344345505918268459457423188974119527798689450371101927213803429520746704973222552644906517732661297555243996315212547169712031995717806935249683043783597471640097251236768702312868417288969419686959879544256384999097559498944264711887499381407527360614712186118892133342671012646210072147385521538160943215853719185672860515006544815413858309915718862478095608468975669323544900670993679414525993237459593560131414399768026795486739100973675291442314364438974509609397349513300031151164428895985868505278165119851875201492763296045464611087452261576026858060562868495447902362686293665443122167928416101156848483410059059453409684372812699422669577727251525338853491483186367837938607946183384896582303454299861375961100715208721698037920020244828812214825665849019743871087070670501038020407884341565835870399863566678122186347125431433775005752298385246447068574679411281142857475326766616479388628866079461467379873685843818989244195999298406532177897430178975216911589330777452712358567126438159146868816273446609726280009800564533471635741642181836544158367140241774934746596496502647793083848424863032477150662414624537521501890002815480399124965864930777846868832768692505252690253819445283264940411373807900236687358184867279679000642971003862162077533030828580353431283029472592403894642584612473113286433432643840223904866818563282164727850107419686834446199451216899425908735604760816801115892544171908927955105306373290392679594465147788392322216851719020428352520793755004911971962711508145020731737099660224572124109735830586470724942950938771833636388392541457803949550120600331566730329359943636756586570731415828951016637070951664970564972726477739837178793711830817998594901161622914128376693042173949585981679375254929211539991445055644861921333971546086573663991642743802423533838465987827989974052790692636739578234891232578472148948847659026218680856916018951166019032859351720725710797913126593239868760260895963416497944209810428807895147132689573433577306765543787549549094213282787418278949488377956528934147856257996060541173061579740895848989946306470118970792863103904587194486825132447955685420704810280920212029839437543876566865891618071923692471863317333862147341676079167589038457746824525763025382395366007141560716266790244258006863338607380183004028305338766612555288080027177150665303188762457571668282554724235364676992507590949586136821777960353339395865506129466465594081698926175216582479618139465283892723237667475816576000698788731739282720726695341207264199566330792711697975691888763302427200131057098980460215440181568452395605026795392531099027031779032860177485904077973637192191886485848351547173658155940917708025118497145739383926377862885600837782101728967284043783501343087873271883700042831654739781270721506633038936298438140252769464922402425666022145302540033602966547272334668232214630722330756747137542828877802731446916452009071319394842470304121464687640193884067454997434930203197217532059977396496504664799453034798990644086478382776951527233419652327655213297488387401676293667583753113024861819565523614909870896646974207082546119494580922971098802884553876495183201955542409317838973250276236771961305263743046944107255432112229358825234344047541747444582335299883136087006465874691369420643021443504355868384567810595534906388186779605107145750204659960178220533250305232592545645496814643560476444765205185870953029789717978737103181026893914148164496257501073897174828484597422864699165792636915584309136144517671975471608118619867090281508770531039292669983542990464228179375308530912275618013378310878955089119728597789605158104147999517161634015614361274118122681227438384701706457536804707536848100780611685673024375943808010495011437908708075815104354574569694997448711944700952174773962628692411698918606236200364637070701279124877069468401229193303448776312132791368189353374750855461642663972283597474441025765935150776526432313696777788309021244311999431876508808973433440178773717467155071589027167401190936145211049218863661625156577189621910251122691766341452625448711437025231814634605785354957353657179639843446080876156414276679114751170225548089482301868169766493742549353369952829098941758194049707269341152033690703207506891667944976331559876172400556488827412350267406100013892643882058020071945298509696642713057813570329782068962450461717211424230537231624750619293871586662348703998279763649981697810356340051239416390469372899620916710663273641534251486825250181466374170718263151016265973269211452445617736163811681810598732434955172418024199877222838230168845250042707988622826601456950598467000609721445959081796561822029778695930449522370749859024793578897657466904678066918020399403552197909378515566926638907527752319788195196419997741967937237891115128529468984529654181675649079628320044216640181476607260052326485097079834426964938850635312316655327634472015834439733654380480182022649061377524669743551526482161246808903732430953579097539888225850257820326030359190598191517159648268034148817084184324854957161869962269691099196726647438127467287350319873358638195123292781437742334381213737878802057512976407388496690821730347511764696138927718993386792371945229310643057977470938980398423097171225340012349056814270926327609607160293644981487167484777773386311448168424757299643789311526152996757010062306166336842874680753108044473806252655896841646492091991153306728489806579104920580528823417752949361046239369656585803965916325009527534125293968175978605744193007676814138790773646630715697215955162478406286211746705878932642651651534339333615525666650844154692217354667445544144084111995743338947646009381273217272775091252235102545934513866920443568461776260395732656600422797607554882366209559033602102568748573868411859891822189122278593919748155366888491968340698190928896627687324869890122235034660060122053885903258615796554447918459198191395200954672693141197777761472725199807242411832669554471923584332396429254590049666609599906627441884069234924314061998497748923989354531059686031256240273390252774880425647778075925205489104485208537527153958630355819501770189503921654746636682144548262396354839719875101299516394155093067060458336277930234924202736842177636813736087005493728440486432719681163394001959446028763841191797280757161818190106997020684904465769709816318597959029256341864441272005985803547727067716826704570666940919135711198489160324139467811521528753382328211103640767535633708212688955660840287145400105142900610946959812995009041701342601315725068263531450534451377140457228242003677650714042054077947497378886806042966569530407587948562179855249557493337141146946909772530706966306690051036619028207105587315109631742713494301790460318139931049461826007558774854790732615306190829536452387554538621801978760512379307357394471921606578859905298711589074529581833338366322033462049218447065230456131653741549792565576212484968235527643014533411575873639279781670164259255126302880960022316061696949643044985622400841372953608546894572910863346908383351207931258914214190065668097129565491391449490701347498798377319262701779746961897128185372566355995217784882873195646322558575710480577989743120742524922787301162197349080844599618742366642392501680147039274265988928484359880000693162914551408972567241966101728990002454524396442069348974585444853590232099418163673409068757675647722169731905242605461413825879381411435435982696202491394846688787977390414832496488453396046486874491574626897767093561963487018637187662285123176297547945874671070706713318552131935246205917793710891979006934968792399863034155473126411250064018404533148955231608136242994685053053338979893164987552010728513590693316354887434378264832590788646771803336845380353874747128119617212969221410450009394283496466121688465809638475985367904105005592434058785353492742706181616081225025713498337220451286008825379274162175750842173600005347391012672068451330434656845448507354594784939019681812365446316799645650889328133924811648821341531571200428549242015788457250635620536003710071941923995150249852817292246955478051143905252745674683333137498020438792622878567915743704882266132435866027769509969977084577483124197078225984460280967465153473127280673732241391618638598565665358631012650787614615645529297792859042936987841536315725974496752152619590751814858694456263808518172267255412182226225091608890137029132338234238323964783943367965345283036715018966339413847728626544540345941665444374506433970087628473410984518292553706878352562143360910945109147244216883651234592014883046659633792457470328574301926897694342214020358581424650790474835127166314120691834683679364303752563743124204601239667056443248956948515550613898913454374063151658415801618844795392411725362752276836048868905880155111786213994619517634466620970710540158721094455921149383152075826114688228639314412932631863030295377826301468292023049832001311480261216819201927666413882959005426230006412457747176731950203754405563977288772432311025917940529288807188091674432811896615743201658392029051452805546401238013790473976627516868074601030519825054588367206401595259303325117976000152399659989969594124292938482736560174546141098012232432974075290496483292816156385223772857980949342265991875046086042295137167874502662883428126387797157544391531267915019809208568715533929826539644162066567143564836780527197599557284784386729260134041595442823031511310686038319680617048055918585623807713245318931315312122034694908096076760416037636560777928375803461588831491097192793930665512338777958093553770786110556411898058508923471788896029822808907350459537381734652689376018166878964884813719684679770805536443299459046348815622901062340519595175631612900894014814162200633517147019395664450494136337053419390961497903976959030942019344850135052923924489906884692165460084161177508599501539266656424050109729326563059901559258974732124766738835370486940874089674441665631140747339141541683448436629314828359310155546811598794741204255625251196684637403477799178823717214406936682007006323848288549285392895390270538929002901765980000592481888138173181379903487037869723162661802375768489739907759667788533413696484842678295392033870229328224304654957247357499107635629470813575484247147552178295412447206811200026092813436278224781809563149767009258045575423102307911317077790080776175122340075269860842506924501665311651599682360711404578097966211887573200288528923681691761752372785190982146396904346034591847234545184519211964161723639311214807899335177553052647561853906651160353014040759356398435814594559759436468284838329394286357455622688069668713840510742763441266928096924645450007991045053406875660855383032245261668804784418131103080667094660469352114989759290116883352377282942043600301374076604245332826257752254678169236569300985225766502694419797071321031068184417766711003867711974778898906798778347796772284121587411159029179028068650649815754262823745262125599246603963781761467221227737914774974295342230099825595072725075991461815515143570523435520408368248471135765732819748575173656887035696474269379484289044223534639804206893291572745147459479618031637392112677190130567718984414963037633092975873992756728289696072525573066472836383104469293923486052403302123592626526559909513734547570992836501063257222584939789547096243428056111445655219332100989109724389549547166208530068226603795071989699067571848914367538545753539717075000709695409911069944260050265763455112290464928323336769600745549538063100356328871802172700988013629384523214250153125171504887715115485342208426914634009928464826109152195749226857352164978351364068249889247978347996474329385573755063436691006039946150304451636018715445344662562529663593777290559640108465991616723471109304723849580783304423613349919482019350158549701974791405991972739589535253076674325484986099469182187575754398833905136161034764787505841333067182271405471668671004821618824758057649848856532118768708091613691831240491035328989075118765192501185566692902879310497029109125221350131282713220928266042628924447448259254067198008472842956374289834726925257163978828464155984027254661364902697571058221305965750391621115794541955901617147260352737735754511678036117619327378741488204395577184578228960892236462032924745670093628590088841747989607651034109095430188766260068756036191278354300744460455662438566718231781449385561229341311621147241871936621178812258854225121734383681942287349648941318581388332919961595532958711478443475803207583402202976814662728087043676868860364339346454322348589396924968701047579565768995305406630268259684906260540390561608236244462013608615469853409318478304447121621784803352580025901269371553222006161964912818160833729953240354341050953932173131429706197845936071652805446504260116061986368288280368675723567393360913736259094058199163229694561317445948097966072238620532224239061059911619103161699012086903964380770845670173219525990739023637575441377306166541720461533173957180686380982571418696729011016625682832030791628256813395068610750663546132430181600640198975483190385732360721887787397314139378635350116638344509684437981770727959238707589509690697409469554125144857965833241941153876431966055118110428343497754214966877422415318678362174429693199876086140227733700056436363280178412493133286026472286938706696171414122697871915207960033280380140403647131204563430587544283117863580646555831738900985599660533676557192460247733769468077967780084869516345036644193182873845979364996349856668309673827379678831519925678978099259966559294805611705051175725796978576542571690730399630448935645625995393571926350887482270081988090297742392017124016382080439697206183924214066794889729731832375679087880840189560373720541594479651542904845141284836651130619324588314666339916666437480372932478070562354531964492927023515198341056186857928407164460385237385722399608782272676564165618389669563431714012802666990555579187476989513923011798858013912364263731534401128488749901872339157738851875231000056983079468884519705571698278411414386679020227555533886982007272874896555743520914560395631216544068399190407466689906087407546324230540218505135980883097151205760945112541442402325609413054989665799972502629329974969539306290361281385548514034394014934524919286791273197895931250359777574923682053316278053419421706003227108127064221673275402598972545432859417612314052256054646310355335814808989486141642817762208957735039222138042303204997386996507584821926457508118109368270183465110479122811525709114908334473763816829550708101637429355813152474063257451309230283207575024723685882279247200021889279716656348590774377152353351059966292283369780486073377150184290905871152672456389680350346698660337520205813361711396468023446602862104060536213988823853223627928061660113576814019157959573979739000665931941736838550392757791072628803436860945879791890680178123856389801498283915053723794816758265912609235298097357861285389479627142127205660812780805094472221532688047590657142187421335990161440690202336661207036230733740222836753382463137661105524700982375901816174914454273082639847731079005199755623066931437911614736216496142347395926865100227209851668101676410458705610899851190357943733376326600529970294749271638662658120753716724864465346107478963794185225081777600671417831663105594466737120611186674752195546822263053622094631253258553287127007253603330906489846696398657440207409415508340460608681463677882955391363722438147049076348571629219262169763699462543634843091471007638025761359574481065686752925023943031019358834447867603625791283889855442296090840732414474057380349968789934126504006344772349401146178431498213363545070348549054512391905885890890971979672505102021655744022006054213086043183750795203312603168656326502339874182733309103359834835766286294644311396466956184087960015667356910441898456047050587930015738764363122581897186118890559028094793619843878337807854235525307962841800038746020059399322329743192330339921904804369992620745388857793939383658627705913858099285923283674255820135960782952580040331994414733398074925107965527584057677860554191551965509522860082064126762270036617101493012775887355921312737936966893037083019361652026541935517157894173734111103205023298254541824139556766755371229061381063882404725313444173236913331289632514346402949633506986143326538369782938801344936100256573070268430627932559069617515239406924204805181792348804407366639437113450290891144647954489247746361339898279498423949542737793484086068830280626889961150244713141966318922780512384746415187901688025698236989135884901789253935126552416665313035749524538303480724388695334517046620090066776317939835128291693791135427899598307108300539829172445302202588433908662668701098840727080035055287324265952137717279539956610024206787195251604873989180851933063395085326112562796537940478434398788632256251303023084243419087746364257973258196505888756185654507527342690468513696278121551758224654183027472758718069162944099951200879673954424318357139953218962567523207733735369213776943040035410212747762078508199251512042773857696354333851192214740811498361034508614859390832406817329286422369424883658286138860681181179063464565741807977523458906832497775119810534834877917434022187031984488793335796528023175683605519997014744500830290668174071420517504030376351832576560300723610124294501865535754711129518555130977207792941838414632560434295829426413880716183815060174433607844366918314682580136689246860610891841349381347495300642585943669571603843427737151587439374001889230640252518165888953402857787122769365944601235312363577339941394960473154664513439183082508329021453284335133701122121730868653089244981757575847780317753675300631067068104269792295836925149803025695589149753731144727308249658971930178070614265864702920224035606091938640248107245194960882211685067242582048088703531042701788853071660366465487613508367893365355699155712072342450147017377896911446761696847236598295058264217469661361627509360546597622979879596216345839605403978124456745124300298529137729988981394935427149455882380476518992436168126228072193954908632858394968960813383394529329680229594581733578261574278704966193070577822593665768959969903906116162372029020266123843742070523629249014860841676858677085981166633307077682456694672517243723518558224718205683739170868736174979807611992013163510330276674776230488046722114256284096506307250551460705652553434791741033478754887668346905386340068855324438370752621195815053184855110750707844756978617126148498233063911730120309299959737430432753234718624516154091192360448445170707601671790232946718286452002386252259493550410238429064729965513995796368666693143717803380805418419236885766287360750776655278323789947502317964655396864174017353123904148656449705956592685591882465393656797947582000168332381031477226296743422253952949361887359172298623315933178966436189790678282231652337909951823604649958048471632843537868765643258963427582907080826333248465364474523672732524247416821981401610172303658169024020320351005818801578250601261664602083884409152772559744565498947787709848706820558862375393843223115905314657080794088279877257673522112933855346625946373649126458252373940645738321932294490877690942903377389579443397885103662777336024160791628748981658970719509597210806653065858174222608366483496029022127812782099840880785329482577801334429847946340124722155011453766018573311812478330943883437166519861344859335467392337950182543208954394034432590087755882290835197390486245452781023027271449964608088286092794623996344423407682274544584140491192590114510271009371944804933938312036607571312302351926294717219913774655148146101657555938248388463148668937691168193856485477600332657663921067267856642785074001085855990628453995622336620109807468290255617255288190734912931007172381350906618138138289236414845297665188452355537064294706361404039176019798153368394882214077007501874355628739218543177356123374472988493871866993191968375772637751410000669216154466173330725263045854842300176028842736416521716925416447619688332386077277289880108583955760707661316389884543563987795202185233657349058005831817570181894323219514854533945323135763261593124815000742709908861855993377332613750430632365252753442882928910802307602077181537221110549418368889895085255631131377959422862820822310767996953794330452458044674758244283735249260859847599262299538295986763068016777567983024442859754928934354181874744813547718558461933077759011254368828499342099394324850789989774786591731490643942035701973699046926519169676318164937566242357501011281624698872044937906312242886245724060343112885486932868661102503383143959266817344246674939019672007295018482745272671016412178015217342401851060059210576031397948730673446160771691049403406816842987406665157272236191354850165459293523944427644218734540429434441230733909409425449681371938774569019732514660924785249599690798601121076740424255393321917923449935255603908581307107525967399738503243972474973032856465028264338122210070692271265632883612388491299891169038349234663668505550869798512326050621060383784599790635472358526628071990815029861730606734896670669390756909152913258807325085239042539802943200823094909481441422517556333224564109649787380390458864863884067148432387007217766215273080914447154998769653562687297394318603238078329740346064857739017300599234964549522099738717630927083520671632791163515806290661281096034681646258852092943419241365139143513115032178648782259512629662829087267277381995649588390066505586643845125867086387014979761782845701966814227464885139909408122057914134347313364488232007485712247098286460840610426540604237482953046529306768339117286941749902953406195222674725996410538373697031260024905434506960200086724185414475038941152692777232086272169176231600903180737945647792271776770157604610061047727757790452182614501637846901981057537316668452619583014438020057214698881201588922010448492147126718856050677589265293404638483114551091851282224184785599109244534634386520323999266782245003691707341812229303480500933537528853469358921415445222668549760344035444068777355701046504979948877305931458618451549669769011243434908993300205348917693605531983293196748285168605037245115117675227434211072962640547636010879104400941169931453913791641654934986540410359478990933483096365420745984106479276636562352542011403395651936718893341581808119227976527888366376155200324879426334750444022722273448925692293094344189079692766803124649858269409714934019306377054985382195242355026255193412512452746370274843630161742866590779194655613088226480600013751810070641273625501246594892094842688207593063677955986589075076037935376025984543666532213872231692289737634482064832981212090486203456469765158504006978868939291224001303086887638954253989854463688967020047935883158315598108031480868837814519742352597742150679380213176507166836577384155315951891181779780542438900911509057026115281918980551749569654234466295721992549847534080908530720062694127058783607770286220634729382225501200164746377238018331839408160069873595487857804420510700136242607592720226256618484626654695445257687688757128899392532043110474031583394242611984421537647139257047247276738183022425669114196867249260127499246701639094365198117941928424497564965605056361292758985385504370095451537228774802346632331562674477466642106346826910708189556576089869499489641929664147162997054596584013065681044695526331481692637872833545218342963857137707515646534412801434723587215255917805012027406275218050249212126835180870093708050338242575480554627463546314971241863372394123710156818891196587636804071912225118238630552090492445600209575520503099963649885819220570062133358692543086199877417379341827387758901458277582750270488521911070942997149142265253564870385882716200353606752670667676950195275193701618789654097177091841686154463370688210557434291221659566379112884763447393540673581373199780550491740792372065416780150595739696925452634665930118949717801522343656791904063718145999153400716608867164760951535659456620405993606727954719449720735518342687996040032635056116901161973232788526584658450953730351390068901533530675951773156734273258412243056797716742201853544770663545541927647811273526996126358767056022790096177977700890781718920329449998310034588165204160938843615858546947851397102710819642806788784130418767092087101968265229207329442349562983829846666297466316677844441678342668403931244290529008943106501040440773681411220822283403593683792523679313896212405944466518044921485339948305553480420454574621682476221222866754864456438508009994046413768426400452931092412684493309031396507946022019480138303154974202903017157874975847706290658167170346908661136677895274824276108559305633032041713737612851651496143167289760194428225390105123755299212942546873994728645048949910462435190898795863953235562058277962656293261367837588016387112152372187520806974263550339139616742942304318662602310076222612755616661004044259708731814891762869753518843780960968474484724612816043627566459725360843103866193389029630976844105313098615786477568407619584654558849415409808872279529257052905842704659148530903850199313374310261477682137520331194059536969575964873341715633221546684697219473013357788490925872609340942070440250701576599936932407223475286738782800127569632812712888703062800185549588341781867258941733160092267775155173376891630413033925112199742134705433269688857782882057993042311135430398344860914205689706958760416818041655135054384418209023224065146013407137928658814100267864457619584652956427197641601671601339718305475659609436542083853015869989660321421938223938565096062347590917845235522983872924612492811231828360963330948649502710921659190229684580342062478652979271054271178471205270459083001258691957559648850088200010535996167507819928799477355360198009764547240433573595312579854069493754163995844994746809392167944451287706744561997117163904438915867838954338429244359490774946251260540588051080434781693273865064387461300956145744889684088270999480253421792097623404343029962139282123023186480577956966945528787398757885334275387198719543764303786601637193061485782478342197241061272624633320641625924771636095913740306089825099202569271074739326733154167061011628331681886768551845451828004638949216608802183004172921466616472987711341594249992992048783849283010757374343725356330635288507780505291930210745325426466891412510486690130766509344860025831725269387275832457953666679335317980708689537086351957007686206049503473021289668783210444134849565101129311830736639980525657237997822777887926186451195140921720685475261601079269128683125873630076167058320659275008011928678032383585629721605387176222260480703604853439129388271539987447571324752855943156425760847735976858967661136682414823172840240173585212424285319834912387439388829572662064575625688887144795155461307350894637130750036386396540705604085392995074675513218201664183309658556607662810184959985417239646885624938279105289412298837902340343697698071092646367043352115945252164818871663746462552379025660480949096792245153618825323467449043801089681123426497539674278069404181260766364367475372046825226360809027936363572646721206101279941345700863012549286415504427474699156791806029851086064858034639026910722578441626936220675599213048821118307175032042771293371915405337265648442958557977197838545127831765488293407033056805695857614703118040582267880428904218894313227127456659901996031049184559517258052633465024638553659382021428458791324410189778236033757466285527592868733602580338652232062427848310028822583396276324358777224094945410871750240666088902190477172526873413553582479685926018773140862471863157501278128498501462713520643857233545592226669190861032680556452160490304197558846904494308437040213052567870354196446010721638299728492693877781633284151587137812224428918325048935317347516085786357998971329334887202944939929224465139081305842538449550228942294778438103511536291909768171907678124635277881463329964525192150326081765771546923381319727196594577741746145189266206560949770425594677012316249460731685776411791908265222229169865314090751997016006530777294001521972219775803349767315130534185746741736989199970272852361631836183496814094503974411682199545749727487881549436809598642976223390437790301950910056130601085462929494262853524823590903755892537791901803106467691409952496120789684659709416165268789608388435651793921029041929469328296898622000180974339638077710228221045049727454362868632453245567239024564767201153479512661706296837923968816965056496163101881541017647376738152294185839634991701676583438620358316981816177568825798850755244495981352150107032084673677976296741756095033027594966807495981418277234196917420570968637051178782992621039788593077829545833510287012078871484326411641370964623229463666324436232386944251423567552673588098664456838081904441594517880641345430812651397458821153043331028589013100822578062753359403848963111017125649096124225423433942979035256723523140248813266549534063469576833597071482967106207916937084088772027436236085787603716862961789621400638763454078519954249207847994910385483815715914450464244166333308677828918002877628253122949976949212442929026644990402405559846947475239685638790506695829202466564017365339092264449790047765074535558181264956333937349878156298389791143496716699271867378021625910371670245526785354087884350185380709029826100328901508357451362248503908741626416888207484178843709447781021709463268457871877848313222293128580618426736205659951306877303496621801552224292704949147882538959065230859468678301983667515961844931206921959175798489412189618422410879239340794416521182009481696030823742976508902898163026407188908736111114771901670080261013652905995124208281764798047440655414887500920050604974981093421043631925480748150218333339850873048173217937779905527336842241356760935162222956081819375889676957334129618495680622457853601885777990623158379009292531935997700799299178231163598996046474217433537264773683022475551085917242771968861161312758661778998836686640465708236454348112997958082510604740418658896571910417394977442598651810154804214868562370228214401544169751714791357352808068890731011009255425475574982915496038629608423748939371834253426008430940730409796381405505652130383734161275981868298557807761568448138261804753768676135949325498123288516347948094200630728859746926816720801094535108469232401391310311778040795427625604945509175074773286255421047425286745497763198281152561454042241321230347327441573221255976524158510661511973938494502768453508286724451218406452082134834436292974298284775328547516294110434427461784634465674481028082762350941512084883741870750284524853061407035291968147866181582601743940758031039988663879917245487938918916684756750922186773737983133524230299796431871970916154833061588221406310349342159863857994913667767354605996033533912881881024591928274015342191883218593698597487584205607391378798951327668048158292937487667407768972811348214159574454363275823100105109920152850561076396400794786675776005848063430299561683171490279568321489411428028615678575924824132639461262315215228827517519069951050401212551775088667631916662105729509217061805168674721959986223792988566037843788446491947747146608224417676107739678929140802191862303232182711968768532018201135339798302612661069355239796817227219226016701090418288398637000926057957871395551249796467448446865471222616950200271911334186767321258310438015371988847924498621869716045812566006701143574088694872823036210980077493496563636066885506482589233990767220364630433338654884892711610324256041293048216802958549306335385422798500448736962528566634790209630356298981215071437177721474283687728031179418903741021857056798043630931795377905070399935317565437455203882899681246564604890930155036495198519707674421591736241068240562208439067799496707544869018326608685155256774979987956149811400862337053737838240428949909621727150085825199107111364619020593397762623534044072921881074655357523741453972070632639358990000791020054164836303263144873091649857362521392397124596247436013666029566187973808288557624252356079636049396198506835168316713923417568833794691105659175212654824957390593544620501157258426982457435038180096702066781840419374320518264977743093953057564544130586174117393782495704228219906892772567663461499224093591748034622271953730785824364314831021230920546482886345906464716814433729161818906047656875395875872062743608930824671980869980023443679570296062508806625360847650208615851549693784365482681327307497748759252675940277904570240729847265855078166296633688897169856034198373942420878769571508927158944102840969509227129522460602458334913520400355298725881539587038250838367920710341219610026625055793171242003969883501950980571836662265892888357789126133889691724716045290324268666061889342586826701138624929058676042216260609417675839381792509215669816422453224089128033535942565253789146918825563640747676852450572698623581759399022123742391559852325436658419262746751148308950609618967694019332756346620971381264235049247694486906944824578090056537221894549139667693186979742338173983929828144369359502574158314236281644433780874879856946342964477175392850802371140986602102770653847316347403933148676321154399575805673035306080469977244892946527046539411800511140051124625990357428366822196962068461587488792883113087694725164168190898889160422338630101976355295303243144970086830083384011239236303371771730698464957356850212403590349523202980884295855002254563204611578957078436437399360013463894326317879320185131046710249398071922020345968918950959025816179977475171017217319170463932067935034899759352518323296882067183579728235394028156465330131260966099188921911288230844369666182449353640320898287105534272570228582268288203810549683921606924641870587728547097736509920297660187827371921648770693165723967152304082739768096969942443358718001134642874749807599865457923235876095863136857186681192739462141949984627907130303594633723746494202431090700948797259708596983269847888701927485103719578567930899030100046259348348828451624999583774598069654170694644569645093155155619482625513848994399964408456623052979022767930474478663659382318997062953415090864714393653918966369466026707560771267308590962895935480056289056647657287091501021051426174128410956882125285264928704654457965939049915112757235500526468686885191324050041623405100139296059957145718165659871270397353747571839324632396539085494907269844955580411661574048348849305583823792157230310671613885709167350243014668409246697629689806491657500480572254359927458627386200662028949778219960327516768785274540895199548324862670375086622771937992641367507693580410904855938900036043171595183669583060714078065116284877976780077297835425172719868458062963436726682416537665466003634702353423389601196254910259164731528764453224108353038872715170014020281799979483623144422626909680777547680136474406419994266321075460301661649166019878678776886627731662574144618112869930838555404199642055964807393013917215305171765046128323079068152931545191112357163390083592122416081940977167049668346201716681911732134983339402629273872206206409345710148610484720187170484121564125733005669056415774209918230987424581068681528992127088663735978834616957687129320067612103921022360450084056617853317701814491938991192630220469558266338514740631345283745838063695890117926292999033838620976571840165702764490350898453357928968002007654383882002574986958600781069341961591739290933697264253460954867933607112273881669730866383086142277846354624452780007040940216796870393123338492218793197044515095481778373855014053556743585888762476698489438434749688271726775888734087166975288983448535197200601983928838257419562998840827207420024665685177095988743160045929982402260051311738320534858724428570420878619918761605031015680290267820147114196048128099184560568773187473571623557507924553290593921098626824574593974277056352227506202372613176065602112816689461827831898233939039958229982828220382062375205188211430817563730027958063699311693769171839143727576988362739826417297629180894244029149880350336666937758294421262638164201727371999058547547077969718359178179984933154642060102232216352316014890507203561073951659625414423290396304312864248913767942610009943085916005960711162590047912112795020336745388995629244562056636193089877199615809238819900314700013367009243771376758476315625692883340032464198134034645852427017842175947271887622366587268895868777478228617963390874459220030113636118201658824570554148092267468513513677742339173597181785487734176564613215787001897511412238040883167463555895343291112790877694890596586508187988894539963154061539542286954248621335254351407583286919016777859021388894871325159479134176360834406725093510286607057277809825555107994947518866728753257723746149948070727336269232646820900135578597642347151793991367692411593830873362147740334038186711825097731930310417107717486611645599498721681219195899585555993142997874617942244525970784612168099983454911112369983359228052173985222664838919724968642118085230411766645815606242338517380934214725412544050194499843779100446311027870758699914900272979804855485644093204962191721395465780752637090639722276523755382825150209539204908753954853533495380741617215373728773459180383687534709945672404920968551210958765591062415397147018320410567757165783534777372706686021838682618720503548365178133761309265103886926845072749801387140431898015617306583114589465548846093191087030624792346698671606792400807706387525632607332741583860095323845409268957802397963301912820870620419829522664609898896754045274325194933331063862955313754699991550687793175493608936285027326685477386943458147462517286326891133487796614009665483319971026250133824305923082078858957231838993970383474741611908714514110068449682365890341538374624220731388684703467300835145568480483754873543473634156281196057068861505333791093067358723173715600870905504495418768335402215648078055822109637919108891834324232468637687534234979331684886940191282936912599642929322077755903157805836169097119353962089199956596710948577736081085175268618426892527806476651838392519358078720027557104262286734554413591306246387628576919402230612525604848883959212769592178499974616671148674754788069390909384586111933990669364470138578980784480372519393930700072780233813024457244868097254109344721370109462646889259958672480831009181636549909050039293894922877413574847978763772540831887535622502920727370459767829950998964820579670123089118554018866704745929986233660813477804676145169367874361862517451389018857750911782919641442996326192030306134398472272496195784951654596817362174910959867494961675801673818589850114791962121763356011732755841375252027974062977863825749874519867230317782785288319017348965207328883707260802635360882431442323919099161525535647517063932010484722446322058570329229661521223715641361384006603131480708265086302836007752086753098369618030895178907913488080806535329602797057750150588718422132958263622303287423185895597484574853145934864840947514646655703843297217089639952199133622554890120717762397928800177275260501329333307744921639856665015008155995826130504749779785384937687092385034163029580143273836624925923583067221571978732016374446583691165584671434188177621047678249992458457794249220951194000510422247864619614606453108448068537024852384390692770778062275422725128554952847987093171943572725350050425762370918914260052376872704398013194838292181641090181225008777239686912236937182043980738587887368262698711145165047356686146070594945338220246829960349110001797047655212601722155237542624022342672316720866633673367215202936484260501758616313335472259765056561092777900373569963322678259985755142428848662209491230924785023699817661367497969914577591294995948728574376417751608595821212673460479976343508935287262713366867956361506143484671424875282875379035018979980584154914615031790567670403743039201715326928237018503078598727654852638727542262616112421901332453169767511282460449391056335149437916509291669887822790269918446967164302098884025665684349086891442066463538120985698010471738197523813600643977969892248723142431597807138125610516843177578325983563744688294783461313539398280737221032633548070127062760830488918543582309918465199261597317513520705585846153674185556156975153520232115005503326584298978865843695194482837421206598543620644070196799828502171668213562499681302829795292100944103858419658866965660266902587324571758134860711814325353940595229334000853138874432548062296954520636539338150910308147117756404443928511754154457520852039915881677079628908636786061280397494531615096464543089233384443489104669961846104550039957559304670363031776268372550956663319202712494798874037105459679010468621232965743816467720493193985236876501836541376906189723622190796603211319635396116982640940723549823432343458676932458738411671034485963087587126636379132726288879087793589649429222521631691970780729068416369363767461620421480160664713961655756260772321847881783455310035275262646877623731793766582973854093075109500484150952467886099232087320098470100484832253529238505920674366230176594653359214036959390105415670548122699599742489644515707209696608685764104115329369925964510687319666357849193336945090483204140765882694941836273757697657472769128976877733909091736342560913764002500788020776926425012256921614635126455310629547791643980803132215472410671515041043953462006712926349618207308165544759732956894457740785627854251609390925911619645226000508910039658415240274417029727178824903977077739469919597472591096097387891838441001973557227652541768882134788047258884962243049631236193625434597688677968639926181795909806659287225623102822226794107077068944239575272324210009163430082002220682365810144876062063864380193661475486315027585511661693926819551825738669282525495738739231457217673760667868666699484938573595131864303621273674715652480515841183336988636810446055295573787523652250533884957228606871696243729757860041166939405252505524348959936169161728210403794688566942901590001047506498556237997582324338836929202710778163592627749050575719273983212237501420022634982622982025894665369108990282980865141100769746396874710394386725035073447572481540931859730287621960295934546946834606619363420383723459579404839665853746414410320235335504788717205371291138850782854304688174064494302954763054425365220947447048371147028070872500352931370725809503491417104606780745454627928199365912906286355432406387619164153278807572556290347335997188967462044468609192807486288550457214715720766114917714340109464575260870087295930241322545852581947992475296536929916434139038093202869036304929669222343572703661953525558844712193317097231436387779809663827473233051489653556458189595876872439096482131751455053034493626107914600873690745086856070421121928504158237618562549212409799547801090302532726891206446519937996096174997756283535703654040273301865441310363980156190834405800437663245671261375750461407278712406433426566441102321128622635950082067334598251450936956988390253830991299976159572170041951219929140237946072846912910536568662007098448471954969628848425872871087007811924730818875670585010053988744823476147261370524098557188794064754251730719969242459257477140959500912768134741024929624455541112444641590872653538078579225633767909521230406066735980978691478495522931336182576596210909090650268939453638210294245694161112371289949214649531794437863206058169655660741853458815420786426379548556118468521751174738729623175553036125791931211172937769851065387365083750143340587626645570873733992005036014843549027483253699735785616353358032159441037712321320799765773790543857393515373577585507645325180304228521487147381580944424033193811863476533211622286580495249483373115218723102057853164708485453331497357182332337196540277971708299939458879478414362855346866614062324867400056103560828116074545328021936750148700559377063480655366514494129969860179128039133031470319899328605599808928400581061176690501890500582046027054908211724430422638182881079724289470838163585877530239478856711726269936010307431430851253300166369588973602450575701153527045648487340062566384834517267275746744162946724063351087464710162479475552396583141062356665548858854707685051933805605498206819452458345847045721797085599998479851833311520149217767475361261890271383068293233027527711889655065948152323930830059809468334748500836466011691783152656066263288019384809703865237644596744335638047429096198115027292849619630903850669865364824624198641642635874300217623127514847525723339291814846464215550853770104063321565670614789299732021875793229435233662923212227330942800844543071175414176261943521991941673057637680967548873130930606137572360754863387720093277156099305118896067777857734340634416302378396610448190264249944830175935964846440671853512071639364188079292889208491943058283661184124297042703471662901233879606411908958483115116896544436993814807793739404768325615418123207023506336316952084110101254329520928967318887000573676324691782034070932235387863446089197280144536917977771466713534065200461662458086409851180307786467937057085495553383746157409373455498235670391790241500357271351912209172712807542076996881347347935389089854949202395277217544658285003668468078462216310938784436740106252533421658130892128571065478044998021120480689699514263745022600327623390588898316367700121876248685048226254710947509480664403706293186466282072565420030295774791074097755378524077041923440163575985869295716314994700726602756570817903236426770040640420202509911661665015920526691132876049707533349000496200673474334972352668979551292442489568534637683654151022024042942254715227309341319476012005096681414238000886938386118540190049877895509039309227020445536456762454498647594053064865565436422738983369760944529236535032294612708489839101588502983707050373971401950050610480895685622777261731438139361984419752941259265433508104180709459174010696270118473547187201226465399377686603385035873523831325341356927764800715827637839973435107214188908670212118078922050422386363588580228335105871287553449764115978621479077692541110164614788478821655918417704332524707439651716674801606703349387063369364174201546397464169854401966863782906696515029263462312958481065665862546559449644751549402265526860852037112117961024546939819954310626600366206547747175547089230381008316185012114136069467595775665119869481112938670379153454395005151127215161718641296860136226252431418985889508077309071043474821203105652561679927411550181554330937156788249909221533907838447051735219007604944614179111943122528858922187642349806356534026101120106111003717355283238597706471369766314052494375994784621332591702656896339347434346015116584991200116507369580837268335061293510918682787914773754839312031948172064213897308336909814961437755495371228701275356387444724222664035107389370974696391080388959878816893313613863341259079570601807707418253852306954725013706817816530031817391626250493101777100221924553681032490550232460341019036874870636710048376772364968078726677023024197231619770887579087818292021489344966090272513181621324294257601294832084461919499264657066482082773187857294726783899346635861691214358628011607682831645194959564647798180901735164521379371740490475228207347386567023897957013040963352508191798223270974804558711319497561619032271297313514725932645244563648745254972527484014145296243182422968282600858655537178285894028915802576472664749068573132792842019617190643553746750568742864267206624749113645843678696451395616809563572071742384555341714039658699039407351720052046166299103552856534947190603264281959735371428316992059084741037324843628761971477371606774117685471883246403347339197908540816994344015203193635100306122336265998125136592492042950717507243778912364256357212993520639192042838098983414055173885056983595210384194299127411509240638635378227174178018862077092791123738239085664884860959699852159738957422552050366376447847049308981230839141918518478500740605236692350724124319100739721171510069533738961676358508177757095592972506974452637743087529403334493151457140057984462162682390152991990274830585934419691159346921016218992131470416494888649598130542899946330565365056316707020675924315082077263768885050272215388444588563955468304687896260176276521933704232420278271886447571485456546322325385601988324922113024771370472114316840827587937866824726500263121753717221053819281416180268098149336244734958297745277271896020266656868395064639486911591327880087204456343448537215094045819973361270127035250623762890933576210713087310460091585882577231712877580650712175993481273344001699306706126867422805274444720936699628305238861846100615522144203021274442260065879078876046497979522343696786870596948421847012841140242738957779206913447320690200317718354236902640008841925442467067238577144541540516367174521455120935219322387330957313941366031402328235128754242555641653954037792636475003964374455771206040051868403497345854753391760706330247768590644584485998509222719308794744870312821640524147242534041092905858405960676616714370391079751522729215933810191034654381563628572759495211378850024115657175938953013514864233474963650008158812372660020440351035953851885945288690560276199848200737477855394447287931082818917751496163005302907559871531713128819416526797189983329215519848995189530318770261360551261375286050511245795158999890642905574364518136065853644192059550213853981825647021675685508132093089507141365646142090998669954406110516734531987036233436743143602897284026000496861516506817615462290489395070187639158702802196557787932758249656975618789474762897275701284583328869474106137473403273285406336362026214372669378282076464619488360384365866673445798779632491511460071596252747458004066826150716605721286150447121652904817850697691825021639623654221102676289415729863273065919584378802062688387155807893963499284352650533235318281812739960232428601401734415079033574987224357190561222087853477897734142959279003586678316564100128068699164390162358472639448657990751846596714324188399136166061369896683516733474435971809751364641358916473264252917492165996171097826515550598947301443886039278070844345159458363702861165715642564260238556083108473707971629481740558655917490209457307959413512565126199234604183052717282805477288499571728356085155325911790302439153977415314725301746500150954939936414346512509316240956993320458843556240791027762497972642255874425009203285661918748478889400998093091054804220395390419181341407828241800078195989098882719718755891272821732850875916317816070725673625248127692465913145123648481243453251128316462699650526036005903616937486353768263423404362566243544681644665642590478564832414233378110087279435587571128003808843828396809654903247818872003663970006343411496979493533544791973608051583872955614809788987109076616182499833613686287019554187207310016618114069656873242753277352728891850554313466854534174726311767570376597710918751063343545221348791823211370415698876368298539090236612750024339804692670897992175804554121342244425314098968728619001734509097560497826340777202946929348048046164362546028308260817159969807070780287252790828227443169220337138338985951465725544113640172611881651170387344400276710978557100557636115264435093108991110330882667747964748339939411102962914647513738050865852717710365130305189613990041768603397823121862274757967327314710989906971151138195999004554649070508736498979093220101025582411427294843118180329511676166456694686404909057504747380998327632083914236334484415225592910013946537883598289689441076767100398626919634610103020242197740097282458105150117643232944533381008587961524241871000201914238052369082164049560767147321924944719788877042262704617760870800768901961000296601069513397917597550146658589742724408271673495900242885384886099768116625067206122733394225063426844753035736875496674321567926955789742764662874941603936976754431874686881557029569121976596332274956853664897192653570037490078574560021747609619839372666103608408498500192073269450157072577843599829633838670349429755699037780900905661111575666831490681717634886655029171295731932450534879757324484395717829632204427702270426243026397118371717364506262403212922012612975389688114920454431020007067659843432888656715322532441013810543338591529773089427263276870499939042654701331998660158002107812164536062585923376910136992572157953067386479696418870087975218978309013010540073764197294600037619086746893084137835585826313329219558236844059402623554460791135746080010455572611795531214679500696081798409475340125219941642767019820697847254823692551329567987409990120445705615593278775907615873168065843841614104142063055129760818389660153731109068803499975734241551935618879217089999771268895832362554972456096548332003003157310576565887310398106884559173885759076145952677822343996069957210622630619691716536075525082667751617502926939969372742070536271702341687724064188112515732560300688535224459369357428216118431596922634471603673935156002651741057148784879488449515033749657807653076434572145816937330679676582371403710180718270391385525474660257490568910734541902365580553904725788878049283880777069857577570898941274246054999993819159151134738803590666212708957851119163435734352013892914563748564673104538230607397410855343432140181402678251874513012665757514051668305384248866207040732054117365035459304349091995654680745457829374656090531060879794757470253549144146517650938556309618797748780287456130306820835484285233246176357465207250431080372845316873355715827679928440886924480354175519958879233334406562158519555307831028987353329380045315892534973478822236669685097550696202153716239175200387904349571588141807763641637630142694205980571659340513557484141557116805797269390366829587118316019729810078745807505728793453787725686562184589774329808784502131016419545076237919948595302171463260157791962307309130489303186901443878891846456645618858225522572798840974901121357972822846725203918136543344894625466032333658780116692009033201609150006395360382530282049167333388379439128951795941427024883664486096653348121210016290219675228179779944770709110604266272237310633635727247559109805522231461120568687401767118512827375499832599414412343959531580278470613554819758314685070683213950932837045897584914374597030574683695954938719710330424262903218397970851575835657649465737029846721010072576886993557640171091856502059130775903804324574017225667573737321456211754852867320937109294568631046590612044363381984927357463104260502449779979455519598005196451908364697748324106879489470918359398549117983595522981880301940147396661666836334677292970912592262682912890582722664849205789658829900982614797804006446022272389557663884489722759388599299667914728296879291236453711667738876650693032981045280282417004923508177734277801983542887173231196888814675880533830649329626246197493111975923867564209794780728549951456496671548477514527919417985740760931423881017144524128647754430468437257359076276303714945392447167281578800095164021405041459923013670730979016728313139039713426592558183910043953077764692545529259688733370773996820277493392223869777906122260241690091741380842406048413501688206114631379071836517440632378186242256396593677736197137505266671125108225766201705902287143759433640104992558239193912905457634919504719991711076701175225956960249055935432491291224040433577362052673162463073516924140314697012658371452344595458347922373713933190724720471010906194879143462948659000841975824246123371936886451929377509619357926971586370109714943764387313051560431007650740301235007248630084165368518986975350078832598824344948504799544683195614722047070608061863636746218408208877523698479542442978478149292139716307270255906268176324570458412623678024347949905433062883464814288301828027262644209852262951744719099326413066501446469710108509259663600483538596308710901732678056780465584169690822456300126377326989330454101324713031643789245040401769417407540431034172865044373581578529063971299865436184341036442867415387618732457695610762970108595136774587567539983575224578525611230255128752324417244345951355169352955537951205869502369668474455568692273061420115282261993387015445002111734319798868230303214295617943936970425371131013346704482600762662163800803127895710291431808070550841855882004039202989393951545584917009969528588334519082590741510330323938639525855959803500261940001832202680808905907893512654137824850663755758905758712327480828131852859652103758046255105979955614957602992226932238125055201931230546586138267579445804291614911984095420671556070358519437606750567933981173655380206842316228664780406790949219544873102344549439236325415971764801280080493269613719575877532599790339987797083884922635537909586545038885975015470536822864073151682424231389079745819379682870898958897749806494591039834179580559189613827883272051140915943293876873695130410110582411225621889267359356559131369006955023929466340630761961301151737084715535862098337122303905005515677385024491236342908399857027258802467957237269024489917326857381767550531655194777384802871955516140458042091421884218747671538486096848201070407624350031923493042380020797704694756793095315577575624671212881154341475098387966183380605535728360360460086761790373189413547930838766489659446568577736881694625436132463352295972541728947042758663153487150261348156306739116711895508050907096339378945524907219599955299185378480380589617008197031502025931201518656025352647658556718768908238935336394280531589288334802192423538229542092732388305425224801099247619022875887599842988013118397013666997384175046138527125174424712254343941752553939655578885076030482555837704567156661272524901410029107860916192541184468798235940765791091598933917066434345909966361346017059383921376476283976787866614950654485289429484363936888365569987195994261044755365692984738774565364561804685199586554895579528717594872169146060709852708628541321133735705377940566019708333772660234827518096263191187222116501570028156009043525727951292203751597353203472795200294461168730199135730073686477525679956368794063943141915624923665399034092287038706513224770449412005871982212434039944888040831198812317246106521407371781407363127222319566396613276432112524965116604671634208720981260831011040615772172417663661028567937649712252345262263258295246618193660628512250208623979910284113123856178659769919618691169238066384437324219968375189187646201775072844237794668292158298478457543958548462586571878532223298929073521682041534746791195523589710827687051888217413307148893894067503998837185956557402136950044552316813972123417290206321813890946350936102181602161660618023056907461180617518993885913415374071419439608831053093214810862829500650700043807377198596586109835031472287413049113940627368896436191867057452981057974692664908327678659584303459583151984477857319986580106924523942811016435797319429981020165364185907077609609905704588775793587427800441776130209069631295829153640711446493358894774878618112370442372417870894084917094464850236172765669186434570850075884765451045253619280139860699161225318021293307341099768085418557969472264947307117441865691705894667799904975015555628911710667584206174256326246219069073825194900891287437654073707285667278626759914401932296128711694552640016307588027781944115103646906899072734774079024085800834189680595427211882905173919946565999230943314753168975527422854433713740800495373475701014609726851882352836330627500068150944357827410184592203900837915378129557321858844138042419787349552145197902509751643326446856349901703267594522630464755689667841612683644803677954783609663028299097991088165552551104251041323017953589480465386726398602330657270672500238361832990779189962219068108801006471639951122535333281226348806108806902123063954363241574725542395143411921130394844179970478379126090811690519450435238844078481474597663985761906125872730022142986299168424900651477641759760086612712717312718060643803326016055149068064931956061503357158442476614525740350429517310390296231212882846526430003103167857605258102709938987783670949408838739422114431229193205602044468190637984569435567456671964588999088181521442646043750023066802350253279652778684632143787426790628544945496152712488274793685481428589104848686567084174500110177312714514330394636141444466399113269385199341674187393032334220549639947013462208020768188531674939579699564978378955662114536638679152404184771919452941427331606012433780280962539615039956684766160373050111468110547750693043907385052049774097551594197842065850706410362277667164195361839812060155124321273306804884908974820261751858456061638905163662868896185156073004798080229578343841859847630588289162081765710240726645397467304371937937334019537349900709650050490278318823477336157098575068825455670066794784455275662932022442540089355672117587513270441014146815876767155133919908154592102634084114911770135350170930004460629804268878278030197488802024309346769151002943964356721016114238932131241751974143095683335750140001307849097325119535597605712328283013132925877294115241470284718651871062175112688459285128944690177332210196219650451182206052820297251381774071336288216487087826742578222362525776364343377752628681511860586318888821671172582295411478504850991520986577447326345839879608575242306971498217094894785124422362658920992218948040431061335282904852816903270833875650385724154789911052562805269270660778640521133966384531766359236709609343830469105227251057290507649015142884082158097293676074569818847638045068142667826161661592749871961677723483579997001725708597409550165599784926536641695247928693091523663699456635982935519720460082736453690947376178861274491596983443534586780784834441485477604507860457344906885610328286020227133856493919715503316484752515009907821183999728217093384263157231384258968569958243848793649294088776041173763666442067064254019311344151618611480362849194125765174117197116399356530565249220268804680189872793762628065946076495572285468515803288673461807491950342119943591245362923273854933671757633089895447316334977067040782311274933879640995215025863525903123299720244771649523196788669891996503524915406985835750002183491898224687313340812833126048565349136839180754754255183991130283997070983849108268763878440147878740108818444849798487200974384113440049846464806769796843321407452588040820537497425379442709650276120013626922744202608824649454628408824060384503594200588413456158828925364742596052704786006118959040043367915783294222237479370437457855574708354854435180764295222760709020510569620705828346821476064167114156002605912281835189980927224329149804669545519094230580264482546470145560392180827986263390836658971971531979746369580621556729967894166215978404192530755682643964300482014902123493716524152848018201732586153290067015576472199183934330380635778921347885685252678889601555654235525058632380427472754308596482578373534354825283932006298122949472711958302337138971475380873489477438557813385578324305283454070955729544794061136187513684451156893764408791376961423649333869116744012264303458482023528804731965095273315930323955491268876895509252418607788868114774697974803834718863161748481003443994087935224365897109079039260349305629431832303204763489636417878075027124254135875280637626382152206006817985886786511879240058655482788317756946304869684202616936379596204455960677221409857374806837024280300561786616840004207997920910722358818627887087144292010660439740574104281413729129238566651505694433853319616511709051614754108896126650300761923539613974673931431847557726748577796560583014959049801138893542223610347903072553155644344659528679550871017062925227867691500045731030309293163678053839099757339716181487181776073316577074605558630622482865873373636897362063655912781532471951503728899325596782049194872696228877927920220243692411130771507249308031242216736925653719352613316681275677891679435485235928377727913518246199212620059088427925515175123648035744084286979982596145560223575583616121775426318917681718009175588291470075491344593640290612203775573805856075574279078261861374243500469065685622671035372322911396716868614866955878195016576006264213354993157121492711787450322184897082670845307499054997174561713983341414171527596824326490735363559425297014754231937730642905664369678757031151828347848692649506253508515244231595342685728762404379031979800548574467926078156230555963610572853054188951673976888058362136357512646833277664541874805719316420593095145423056398208720509006942773498915585600238361713722628468096234123456639552578377474345820715326920722082728166626591812928612669517922608845479470931511084663647346437933089030567730097961282678769280940363425201679293832830712898055634310343077345085380937634213421058463376499249503788407361267397694548660335671522059119301115073157087615618479951634474740962367092553054865593771142222340547183031956698224273551745357767468005852417605834817745221698081941119250956126913373407905966781489780619038903226217162694281422919104609191347215504091243402628094475226290478660710555365188754804889963634264845066240431069504870451012033146678705322436337356564475064561753307890961884786960719836603603015619527236487877898697786670983354033403396397398973100623922184326835722239562798009639239040116890255808886462468639286951730227960106713618998636765137331334880530026989674598043352540944354442007996074593212915198672718732590331309023837814430697457212392366660391406826223018436324511761990294546430754130664603456196599195587084141606525794547364245584435160617145013014966716057721651478336425957359893984780656871958537047597586915219382528625939349561694671027434930240500523659994683537439200875244469074807296200268066329954186150995054629072704349815201772076469049015679128457363985405386476145271364461972433319360798744930715598297943560018233373086468119908755651106020201985526925617516048512083036729644813885459070277291384181631885032743699921297736188806074897170699094181495212209263215971580754363978860175045271671367522117660205778514520758152598954308079060448677483525259588934282791628484825823096150537430535668118442212642660720658492107079955140637098480012527724325243851855127594516285584240912304582656791075260805591486159543071615214598195189199663221571304042638037945752719719684470425249709163623057154931829673835035004938943088894369815979181770242973449127731024826485171941090873681801590328481165143574619816261723605557133966169198045264880139118928777851566012826076444266383533843206802724521668495198065988371473529550443426047235476122821502529681777152704783974224625002148645251486138310000753753783121037632250394094008468401383732837867267059812484634798021551228030529367748041671931576852841702014369811709498933497334041896683913502870466160614793557411818204827963424106099531520365725061092645059938584082557695276239712545412894421580016813006724143970635962318056396679460113871462553534599667138837265070269179025105565978491165337967196425447970942575128832094193105353988218508464461001733231317792570705630720234466791897172359632533055766848914482104838604084604131357520754929659516566001929226084189774294711560821546896228981615388502904877004019581141378669154853069053600395734152160815248465434151275347595311001293703808778256761952723418849434701669875882130771890888814725202913194623589900431190573736697073539026434757942845943476836440216079058084257752370973372199570965499887707551271311403307935159224470103652319209940578297653771427456543687704634682167387668135789142373306470775950081513914712990222316939877946103419935543299767263471402920408804263929334243816722577262778336393176256093493432868865384007565507541714237613677929048336434575073964633527667800565739165978316196292907826569918253785402862051517444134004626138943809148421981184610979725124010531829891465104897896042971128672111645649196947794091157469097774152539746659679985840905839449884542948345251528155378191079923686370254182497737428661566075741177913705850135607285922917823177713795758715222342753742080432705917027889113055680292432468876370261012355991626177143934805740965164378691959389759436476896330009956866378088822026100882164726872318261755593406798176204152467172301235757764166612712712249510480138593293130381961796197181145994106150303999245364978393206687109513746380952034829289229653774584858643186842047629178981576509343757972073526016345292358796535383673943155440490124609057334775148427956016519546487885232280819703624923351586522794010022206014417117008397648577536004071234880928938722173792488798500827053362300454488357223253166794352385525910865841452773917522620651515142736564406984681543166764151303320945099150470117954223656251525152120907194915568499818444121215386659270596189835171218103548965837274436501318697839400946281870366841030000964866054412623363063842754500045103696849409936062180481567436111579418265443066301791384685650163197076418091973077769842351535278556778465304856029388769573809116115971072820434022365668876804421412356079522482912329975375301077218701270543450049139483553772808971205439604216635608154689165386610365438355583654141576226675687725563618268518260779042789967754623831917317880849071555393029590301803803493735440400273536765308676852014302213347105037738822769957903278148415084089217877491112531219684365668178108522101051742367438890203179780337669907661430816817812072307989193478377576453725985890646474985210788701872451999873771121430919703717521370180030650513859350064403218835876789419625178903408181987282543306683477376458800224994670358923606401950551792246644120226074304608773395836442011310612600065626663794939833890901915518988377253961615690439843273569271194282224939293455402157833466881809368334815508884406221238188511320330905415644405687734581539259273847887425732981977775857092961900983851265786367533856303455529854303842868480566851607061322899642831964069185644992210510891194250358206273872381257724326392052074487414181552118657825387548863173028614968244972246400050268358761111310980385246044166731606036867011308987693560160236057471443183223295743240204215070235893064136408273450908501937910884811315104981605902031903622169390124823269270621926001259264785911867991241683954961077472419706894754832217884614288412544196699036200445373238358335337455992159074317996992968897800117677354495038913325838058667747725740824792167783445860582407172471784673303461544593511774424593912468212230016159057186779126139190644620517472738631495298238631927888552090618708475297252219632199074181111764468392572769655072035799019493296143933751219319713778165040763683198457446938790505753681896859163486178687098617176218683964305193870815563533562991793666345701000457895416591096301658516250729611951856870013285881489812256166910212950173839727370526474458732963814323163767006422526129831539601006423332046638450375179629953049933542906257592574663330847888411028788334909066811941993942641087456061049371148760831209723664564579862897143561975105182120338333946368442459104183956599886436920932359853491274057028472766781642536321093203592486289438430960999733383517567725272636051862943142588958339320120167910577409507202435025286050030812599009732197443139809702322801603036353078838285953546567628376958234768930308110504885603093659780402102366511534706708783964069636333519052274053656254956178123952630005247303206917790829758087443956867471468789655677974789827817605243486661321996268542861256921095235921806735205967913939829769257497921218422650312387583870489834915194730328796695996438652797597830744857518734563276132202592418383759402971740293953832608069810918296308997979677658587161861723221430225023663589610519086347680720092516961433169244599006223026908461530987963134442161293317511301803488675829031931660664169522215919981167039198152109720397101225588010575496568277824716933347888493561564142766190460224686374217017362238731003007704948390423717091565581985113890138888562394199497201857377473188201946463491004617870379393098939579439113129195495901926687933196915991632128015775243119256605629164816829112315286072304756857940990182101481381803345917907361258027136708018344655511453844356914083689784009303628722353043512431860764059064888396404302498724809054958823661115089476643273362393638184016280467783453417695306755280744608455952549413480977585573428825579840886563226746180781945301674047309705926799540438969544370416341067579960759894550187182670578890196792683597849368070300195613219926110875277230549919081213397547524890423647421325561849565344402818939176986085863500207213778272811752634136647336117985640796703160096634912221006066152390899643513144737791482349949629987454056176294723409633530503829558646380197967566003543597608778890728212038305830952595078784330033112287807043789869280799355467601794231751642589487636538879076499994553115173090121683504533857505598240686013768884672576473362858825035779653786590273154315670495765299445921284280806333380049642972790404230776291810378946707091017225705368313888675899915829331407280102448930607624698851975886063580044587399914074625892620521841667116421754154367162661480035870672931136058077432420640996019838329948894119305387382855738294674778257983133425164932538715055972318136711188557403831923663006868096565469557928704710506070338753437590641294285728827082719446238362174180476529225858329991764899822559145160891591796695391374557871573980462267910146169130438788083207904120036597887775857585016974886010131145793243670512667773218504210773121182637409775544114249649988004859992134074631891281631177863665601976485024946303513621329016296413496653925496988961349933046635721514329036493136265996738185942937671036272050164231597261108420969102646428142865996100044514551940498635983112263159138413123822733293978256627923156959110838632375647928458219385312546034547392397570678654280854630955703483681731663961215003222594217029300535800271789889682345941229953954981441766749045582281115151577358334469927288505241676482639890684567750330194576213852644551400843713270721864034222618857992289829714555888016151468082595700553876920284197449254010174509427345276274545723785611850028490644654222629801753273130000777224193392816763220453644004148373087373200747580365046092247680835013865017384172590454982528204290583689090948049162332266608159331531370774329455720276187773372219700279426911475508982838173127825243546474151609895175269213508945936661091849678089234237509783603655790617739533334436857942738324422359809451524001620266313115872674497681974179092612802532500372107378786411168515286862176150028724589193516095025035786985572171268903271710197453497485765868377205509766286646788702650026527674840292359774966187423794547806554528270675881939370504618981010421139674214531521163645792105623887730710862720804838365821136435842665089935033058915256338627543753077153410921797014287808441739775374095590263460806128664479973336799018074478755037003125517362788246883534030120883731190642574307131562002478653761130019058649493184243269999841914227735705448543748988318586404275698104880416728069722049351688416614438192397389856950734449117676196326301906618245972419030338987495431691576182135640113608417014796890750101004049483894105824098903238598338220372626796738792696757901636731023678274340329455469458112325554794867552901871301528063949770933963137477785589619941863845967215068239748915197438288550934453145579884983869947343527833764694414613430413505717259003707126592736504090318807244700384877048279351765723830045092885483196263548986245276256959316581946041845161086598755099520662519373242087171175202423978912419325932057281593782999128870778114461575518127585816742393070027616268334145196840998476896821625469975871443846861742734137627481960190959342919817820614998846743343647204501919177465542629612341341465360920533796252465118413480315815852692684526712491330504664725955314462701886579305446898139657498266607354521271877212809660858017484807347705695605946172795830863553973039445860481460828942971671424998338856022756847361991166772045819746052722883582935262618130609691273024899137736765237075573878920813691860989421014760129371551951028618882035163301841970764429508488071799126926670833321638449694553341043055751809083041975626799759447447250982620802132642819514621995933729794169967399577658240376951714702409802364927234766602586830011621037199649788706076164011457688059788633144024842723358576744977258326657616187513980471677680266602560686653758073814478421538111369993465397189051627239992300246818231291339733124225498489731908105694702773320168610932163730339027708049500940084108901221803132008822809068451986258006156129167938361757181833198293732223141863544748642200899546151241269137217230585451223132689227830545692895610721587786673765933799087339000642211311646522082879247623121976364751611362076195738459884309150355274868270597325415466797557038802846415001120849738630348732852357566567591973448289211636726256295414039873137705405055272336708459986825659692241912547388016850038161586818262171908063901167364725955964361565778655474762701595090568781270351205651055138444386580012996653415260505393966362746325976836137437567492986517264962822086328678693319561750701820361595894798478752026514906533373248827565954419473090551918040037229422959479572048920720778500047276414653073695945741184817886104741389657876828404338864617155700693946913722868001614125230898189412420236732738090377046598092361337582991296704550731749319118684346569479358591018241880250867944586687393359908131337574585026376432127460799633379776998029735830512810401001454023244082775424293420710921085765574823415344445517383481280561203061076537462885859824487134670297956566567135012871163622003110066110127809546272696068676754926916082710473691701366795488482963251457784598780879133648817532838688756496386338505914116731761432282345596333555182354654121403116232768761020894700023454386699371993965067288376780018216209045845070073472388404309361237798590233351203420615452908391237353989639365912178816311747414738691874950854432559167125512881935075334455842448810134324830126653018622259547554075388088607824814367330653028662402879740910407506682138925956543448927902405552625400674314496823635720554155186653560893545061118551331637882677842961436847378460743052103221408783666500400315233139476572786585261431291270704500965045086581887971971916488177756327251950290204419406476645152851166133213585930806870060313988782404666913454261027330786928836107080712384142541503548657927325821214830489915136300828432381780242869706537116793859017900243095463325273644736971931634496005415834947379036225050839778666435067822150832367957461803314864364312569129939350300255901295547312513893430486059928984328735103900610288631556345242172522177947480686527442282020331673938880090116623485496561931153289468469390983968731892767619042280993078184736308160958253844791479696066435858041432511412770325476176741949347157130457350669535719965002209778176979276815938017689459667320495887536545497008871360326288978114170792622525691610735438852824269620426907549311511087958463562485368000035384912655442578772857890172838011121522595206862418347775660942663987207885513001711941278404988259075748795694092287666230820197973875800913713101622145928614153165236972024542032276983282850879308139582847803415259353701708109313070395862029021509032839226682876414696349784003660078013566110077950994211988244021862345450353053462203143099202819819738748316749883030375731687540025958120317835172111834383399628100227415245760231390939635162710127076153790073528510153084969673206029293669082288556666276037550504169513364520391995434536850891325553363087446691168627419517243003687952860449453942638913730080168511635796752487197907470481960501659978754546834236656066930141358527768099475550827138828904363102657434310176277647998122284425746447243140537072951035595508718027049578218057838729615346779521213713871894388361857886881321195856696115822758589861647583467868366629375368317386046733236414818351111886706039154352186209790031001944580926452065254809033752937422801251556774382893668792418215826467927351187772666631600849746120855161105894854612274964406400540081961685790846368094729087989951302334028546956147321760183881753178252595628589481881474695917440108912902422432772260211779211762938383215884979893332092949493432129743235873892307859986332463945883038463689456242361148334393154145901225963015300996677848777374253296776626757801270379928973579311844132933936189261708859339599785788496075589635548964198225063754433288468942459664803964171087511800474776680450471937074307859097066971408732059094121625669133250308860265665920533483876856553149319550968981908014992460480787557174252532836881743269253824481111797528165342473700535270345596870703224298708806447120208507206071936401059470280059042784105998266739201779132246452369866003025331501263539817431326237969951619732101387816171559345931141345416139331204414714732523474293152896293230206030772011637332986684973281902302892306292670223487174215903379048571809226482962053236040300810114511445265710425722337087899207137939310553337127577412868392736338440574413328670833412727963985510967778686686542102524552294318179604381574178909412921735306451144952832015529059054568182696517441457636026214898828059484612930017720630622291364738548735501071786907550307641079729563844501903671990960656149161168184667985499413616758653716868664520009371676417587978624878086848606915187565668933897790990792574607384850309464631621156398436287858497418514898448047361325522328594781761388207362290539640124023736702864512167248041197881290901104373815203471195836570340326157418262033094850300556089517772522910284375362057047048677424334189248915092163399182079685489249922448192538957585088694101892460865506745871609249262133415980038209202311319297025275629286380283677254644853020337080289722309216792965762489597799526208344022366167105910186523404927571862229014770646762956425651448068732394889804898883182978818644830399112829140590951164452767221604254833355223313730503425744837907217702745958596664287583496283268003830418793116891410789726452722958167240285271997604866937049379690051198609192933766940296296311850156518978203985946377552096636480253758278073963171868985486233240067605761544314304776925135383299917694427282751080678396037237412134911168932104655270274799589491624060938594183573502778111752563535673689592446978383051455728933269936530017718199870614489931174870089238166564108728042992925109076021420432523170008074904074144738871780150346371175267403190876016825011689015945936275268157108178900668445031346687813486946232397733355461305655885406839614444278903553820873876138952979684341648653221457472375439739893204338947055918946514658723579499098995333669840799451441992968903479176139343269229258874155285476749632703369675233670866899589423545569257245816273219410063558332120547311502603731001819101910241789735049979240768906934787251657441756882602042734766284408074119375580397845236650554223093509567466208208668438542198175934369711454102892043629159541559871852841620036160133526345693820533515481767617291080024694968123055013278800815100635991130505794729370350078885208824089505298713479924547405041883526532721656193341200588476828472725768109067359359923562591065603621479543183400116063392600145716651524816675637545888765260049698418876884501162930061682029513921534799229236351845174449740240946603896166826994815851687278363932454636293224943652477650757936597019146091969693706035592555628017152784881227683750677019306120196628907583043677825065618339171353292103246809520510015206262524132908768214455311420816229050155629329303987847464636436817642549133347893720516023897663330734122928227096571413584874199628752800540818464883818965368678051547461710069310412657666033980865492730635221631786752910358617315757685537281835572833639697495680390782300060874691127262406577734917649615871795118666577506721882903185287336327073457366357365096933905933025367477319653697444413288262971686530476484733306614928614869258616191021124404315113481806436171358959957221147224447172996623081560651774263713998912189740429842801015288201848298939347065528639930614476971019020540463927478927260285842427212767825036918055546427563972187555790380098456899560699373002949845363486748523051250694885293927263898349120770324152915383025463432542245841828871175242102082230694694225066761444989958181877094372683496590269089924987767166251787932850469869913311102623175499455041503571655731119512254020926912105014353108925196333276282197099500220311843464445298465362231456838315295499576727789489940268390194136858635563871810947405227350774097433648445379435524927040257847815217854125533255074061289024541793315855022290531440269321827081903280584518758530359894855778338481848030195201301669275276188434697033345306690452126231048645633148857685868726386736189213152098681106683587848851734652753103874216746559913679389300700370741255344805372574605980600386330866963998169219858731019352993185600080556730442419059244857223373327000088607132476579519081377017624280535132831753279751754926954931657962711694970032653738809121944236860145215239885379477784527377361032466614995254101180743957435899258280734849000288716978332043365502408860122466684629857307814440947919715449733604175734991089001104999181277586219022766987947075648269475494448191970422035660584844099122911814527895520512744682853966346008904800781077952085761416309741036966297108077129374991416123673502651046808379775298689459031190052262057512804806942635769056438298213138373960532204776000650119194305897808589329311319143278369256555670247702171264881530906376317841108891189733394252810373094747658989265110594185151579101822885654403096244156122565053157097926723338104319433520669201607947568524518558871340918444914964131451673797434775020081844187012985914196885491141069716796522741215370202929743300514555268114642718325998494117820829633141119175828580994079948921447156039945260621395386070227591363719170607573493184069406442506785918079427325810974571784371158110795101580570772177602768485147119179762645483610632477290905883487951962855199538402120012367039639922731112301132860543014430264870743092381607818424817681793347444935830706225485944639028153036145370264322956239161623415215092317888286492536792914993443520860150464519942980729887110943015178197609598926185620696323852570584899846179037210129058465803099761162070994194981789702960706757938963624350284480060351246259415384610585559729866076339244108763425667593898613605220853857500397606923193548772283922512496111078499873347222852506409092083435052871371455397204109938981814635114910226385952388715292480170386073410199102229506234619219972951381978944361812498577482091752392430783652203718646567956914425745335149109737437578189279570901114179770874453697966009951743687384800516826806115122642441470535390890747483033748394829347642645736785492449398462690797951478930267201725432257736139531060688713736745861507164787804307950592891951965007958013669055081912077768273893222078393183302093337142194622723216013727008043616887748559723179485837837365214324840072704066432191851957809477252909824858367707406860124303223048415156335970700805571062936484058474578955547883628847660610620221309540930033914472904288665733389112501575989434332291619582604661059184801837672987347558382814537707909208103808662247520905314611973981680834541081028375224311240853627500537953113888304021310938652131145637824721532159629943380222380889216095889442398523728090771812987904390512621445680896764442948154633251382825953344446501388923100862084132230747459112751028986820410112252932001419530772021169370750697542262466294673398935208138176972161843325404621097056714487826880126663812751211968175576300506838169220430312838440339881724203544882872500041421079628465377016887857324765083807380299393416011298457791487523578116023802293921128269695999780792430908292752709892166930740899564275031431344928731872183021809977187073248606384588268376770310150346878486620754171033067184112563132226667000470276558680235289943158604818924785297074277206756845070011482673423703283358528269044387630440829544556825524396564843038170999816960259264294263253926289223510319364063273456741928633714371487300415734536033207434289055395226098122448629643925662748087579256566265473425567183809696127563366530593290695649071130216726198525884272582589774448499951785816869122262786052707829829365702732070774374407941011261373610024842472929439911330079879617572923454912581864467181843232568952208337154034843389957351526791356124493356142570304481285721627114663717961418920067719918577871498178051561380961273490211246570402415237340052586053005658788049335756263631562512992422563683550770526863520821887482861379429111213025280248306945235447525837953303856989091505889017615992267128664647080882747932207475205436442619081671286652899264915525796688162764003535890714287254625810330449433207987536439078656003601159285955564288045854897969137243150646861785336602003731070983991931908372955434139619545701882956548263873709927803444153774120192579387407976789051498032862987184858862344653227038224782090501381399654872329132738910358834183773952385336308333739700030885234121766160662714376807600756355539828012851421249057583921200198655064684838833607608776847265294532008175971650538071058754173475893434626687400553815212642596930810198325059706038884623299253105872033713892114542356313802447833708517652830116899716683563055898043768289496384478339308542579112852125569847942238662803225275511891377222160930419549318249512951213086016784928864958760389480953842715964062132176156492261207742877972202620683971395125057144331488038731412594866828879687985976058014144666341840990720318368348502683586396136767376181810709614597162458360204315345955708586508654761931457244377236273181607602892857904427340424630913931021450062304565209053582538748092145706936459500143618466153072571382496406059268203610648679595895640266760396279203107192844733913030928887952460202098201234725250991636794844685110265589005983451337452076966779054109455838743171343357643570597751542751335349212413697688906372343411087315662450907395477279374106792403004623716942354074018680162792600590082255908574253661006286911001120705330332433826877833909590856564128383340113677858933073790838076287228310273881261443404023998028372367990594107990855907785659797470577217678289311075613883636181450777325790394463945167915069983495480408600561514547171792365747493103747151790535177565985838235319478345112450969855662311640891596387542490432443823292331798370230731834598890859203980403604538066246981639035140104445716294639951624868625046951840822089496060268238344522636374839647558037572553416156491180223675611231955934398473868966273412473712898072234857768396078783983925517928906777209039969215426142753953695423565023220957199781323663377574833733455196379810513534827667664650181525841281589332196332512646921219151462665010660803320302572974253413240800434697477500018851667205249337477849705331689807531826503648113909809050160842401626641318918804436789358295422314558979676309717467918512768316314540019822311417570569861766455990172704923700291214310666007134288850548303029764822593972577457859163447900450421115425638986604612644969808473698182895215169922739564616165058125085874514297296986219207664733192612615357298653652576099297510439455336579671100285484523330289179853851457476328470133201765387162527070926182937737226577790147921280757380581226401717649906157163548688154460755532872717170753112456377414262276256065323639661823701912768748014497561070912340728102461807092854848097594045396274966332730352966325620181883999853868703474722656100891732244342566497589449133106952875837836943636003635929034366313497296340986386648936740087927924569777596887795027061256542497824248465531425796578638060675554538495823146344110041686592205447256079064687928478437577714382100764880520418983402227017418961889791127008749742006633099517527177221817681363691670852835191761554155140439312308542022613168258915201008498361454226480683242342695181436111161434282598869683815266862716652726016057146108173430765732225459656130764652793158279706206540552269540124284684830792058778672962887315766194499456606455353859960352583631124458622706336775594982558001504294156038219251402739960756167078422807461703825154525170976449773844035785732133375108878981580512014649619159159559874741239880997722598143676149435366884882594775377199048556979265706402506807647998637939042897529896040090895541474488018361904743975070191762089557775567755078894190962648270527700798237551768797401817126826496225575007423490159788640744423143218553297603202472281708035470802339918532955159808635987046412929108316371495045040175167760957586435317788732094431488896550697955045377315102536176853477960353652729815866521413174870266313961962189518926676987410436374642423895971562041551663150928588701893545654464837414380109357255914652952365606553299182399839700742077634053859308706415010473907092923862378693057530752956569195827806492958334158834774522873318360326119546725714253496775614831319763315213335279119681680976022894036682541245212559819954150386057994086401848075190681854400004995141764643097632723932555432816456901086116798423043344263259719137861883239823351070168807776938747289961133294700392887064289349626950353586926517702054800968088044801398176753284961549504451080020130458452595620675569240422560362779364230723301921601375418816174842699839460365200636967006267660031525187312350242763411244930707689333978905826034810339033922847892987468727081217122018048857014495705480380224496991984500815903511400508943395877001507195432245924428524704015481076910220915875950876165742658303248199786642172413465471965985619099767234639367125083847235944548047071725881842077936572532894092469601453568371969280530354437804624381455213031883778988602330328601794480130279684038340943409437884453444509584562299379506153365639771928049301890774797512976732520658408081384716598073271044632320224490545775054249496664041991143229127896186070997804609805484693095307667612959951638206650549164815589662832362191507320650933378187630067416241340536076372837183894650892772267957555366281347774734333816189706849035484624088601825484644421468736647250468709483580265757601161277447272139943949143407053736452586572988800054273794500389290713109733822981988653309576917830454581498142449312705082332750910629687473822140252597237534093517557646258427468643335990413228082135649432619944542344098926743453227793239773539880869947374883797131481264743007623152892492140320414288310719720755800633512850504048049919012882501662087088381287664315489544105032755435448233720271387570337662920898088093979410209398678883520911542904337900715737048554989015305111486540673539403085681680239866627614619097281607647085873927086666204823020509314283069778574227855480605285498634996920092011032189441713576648479613407435350800043003108155579277451860423475500669012519027511053795032990232423639536085813152318400004375232022319216934672364602179329208426445239140921532099110696606737900205858320962960446809945225776031888482160413577466187870163724326295725920277512241267243694205963403889312215532078439404708510273423388282096718452415648356166975275807766311849736371844279350909019768089445882283695600066339810309148440854806251088479252313646097928213318462332468136842870312776329795965932459316629677425868941615991770347685492857272079805214321842578160815074392838394256995289525797164458435701426535120147399865253558836396928028210149431729046871633286062917508979674117019099360156097638901794736657126440657244371817933713727542292093292143435936812107610668818242555840244575475626042163459740728766969821739551792536200644572040409560205838509085684694316636143852013991818634937505919339449208919066269157336453896837203273100094193615277731527779803248784616082652046273159145960372483672018788676681137560057598401745445499595559162374832349906364223819865263596685024107244163403358242846656643685031315105612435394635738754519492913888778668694030995950187947440041229338586558843382617918763761224946797393027824147166093326099485211657757769694392139731304765414495821000936734986548893380287792686456372999289905754999653639562444019156784263826571230857188137748788084519658125570406808981308868917639822078976091692891206745330424635442551347027514992660522856805705695794404091757872380679832120580052638372450450384492067228645919108809400815714863377587577345994743402172875361134144955645470294918771441027006410914654051091512057196251808456730370403234892780548275428402588235696686091824037162812003123283133744467728380290040684368725286765582190164684825805770527521463070311035761719256295059427768143257502461073764521474498385111702737313028970741233183900468148630765089142592985886892720972387281420178658668005378272685526378305746891372800650089787428991560287176773983223585586785698335399980109912286574670896765718853602991815213380109604039597311410674418175783623921129558129382233576135524472905508994217686715470581273400088085999066509130441622012939466636793486309748132781892185842136708842751839893664089535265752671705763089795886042834080400219488897403683808524858467115286132660623426239868574673255887390655487769445561861780890560897202520038248561138450687839596948270626743176940717120168657953825355522593540527722393263690575987214807059780072981660574567213099605281301342752588221350238621069743530705098862082695304097383031668247990109284391202143468470296481290533314616182738132037532823161022110852630956244984902355738947113386896975023163401418957576053276276593729795238928068174450320871623221271686934591999446574669390601519925883516271054645673860734382260021345487753885727940650475524850776439991102752087084887416229873716759026167482294464494717081820207492348354633433391728246807887913193166469408658208877865572152803565629110399565863036395324493872863716035404483639648505998775904824279701954511954362265943821027846030686494010930597478137825745683301021461607252570464990953827248898442580736580372508258630287913459829423600362953636906528388646629427509099410225757158956639502902139638543521096699067663096659268512116434258175307816524794436361356763938523996952821547894606329691275225329323170369661390755754438974678283936374736355795936501302778494106423052559105281471889333340617172342873345038654900447379521703256000869942625357333400028174627887529333472653253034050144374941959079286758327174292484484587977746136732918565997270017028663407502224971294608335770926622510190267693664851897057769813643601535449690411834786277670180780296493677182944226706345142785201045132189144332700301583414477016312623973754542757261931554562832562065030674543024970132685854326804033555198255603467782725045321942066510459621652248601356409489572962099393447487359157285518978156845045367451644010956869952943903078039248528255424002087718975843589362804493864586987618029128692555063110960547496801935665023501431174605857221584794131203906442497072925556719122397553855932845741311194608437273826965825693972990796987125690165321887008146605830244948332943153212133112947236775096306225085959352625000157062546752044029304967502841711821546143375217617156960726611190272878121754159245508425948507065997639667149930550831592188279992534255567471488468681803085192614343990927426855901574994608480128929100983322865467612797067093375401142333671272095724590578801287515190374287964321353001939483900447792400680513058651097509074172151047335425546451368353886225957230085204702284799494174695971332250393650152921184222086176395104838758308368561543025053281679672769991922300561750637792081274716061287008106672976469448851019469827497952325379083825058342691313421671004707716451361044881422097107392260085816524732789917087724100521763422091847896607235964619554537286980909392917171584364200951742825281947354047656942279239172315760936716498488003263406039425417580142601493544489006694819213310857045419086907952448390205756835831145027625910969584928923993679810449183487527447243366708922552530333208497911342377130164344123055096624004893957952232233643682574162782311336211218441942922674986215726612791515043742548809387304852516476561470695896089871973057680973626379268048493899245510831444476815530996500106737388673922122322417530506034739532026429984829344526358240791996935328829123973961761062641273108440030841568539070531962282309347083644361404112205110091357242389898867217060460028575329505806589057616481580307970916509995862760318543093204295692922310664463988163478235216106435370878032487020541061597032505399922906256585518595676573477567142920733112437476628832110954253049648000780662233473625855740476748039273937540181150493248265608555134379531152663191828473062127499382013272748345488118992937106968783729261228660430766928147700979556428836001132008693464178536014959331596735045996114199554442712530508845980287129278448543611362701232384209981402711075698081126447140821802760405636855385825167608722964730440659995971355233227057343378725484016933505437353817941883749064322109166282963889722070665722708418724316142896390496610312890078245531075274972371751308163891670621531315219286934547332658292609465559253068602460696912553064517816975185527437556940481566051181139240411025928961542632279575830445142527926970705134834794632006009146730007440636347747067327081895394220480278159513595409733998652693523190293307355557382359679195006548169409467528431677492935487178751874397292131395238503529320585799213858222129668711000994087012105389414509326773114628775007466875456502077137642793543229675485920711574223877837615995172895773781304846536173402965361287625774864460160399765095534114609781837438596828314667282754905608755879050919637629140261155577377604087773872339569376437852690850145569869308329400768368613945204399559663695855937937766619599553363495683457900120817115699884956471845826316013523115505897033968267874504405231222255246370382618883385533816667323174421420770862347885468839159146921691594716423792562152379072670773827516141692988574074844275319927844848757518591442506068025850909618757811112442989430186238501666297036228919384274500130552417015158147290144670946007321226116261493529861407538165463839165256083486144840256762356267913198682245296771715030901807434570715233894087064911543922792942727705456903086506447191604419748394713576435184999392397509379921317522613652619818464535653158175819886652867732841095233346399584735437473736626559136435429829830525061800917408724126431241237302176027824433808773352128551684134586813709635641829431803989047246958639302854743434845283275556420623012982368837109774634647397714712545336491843585447983349639690294309615631804297790271280892944415552042084618782678452378402510027367526291583427246354391481477168974727248880100087604194952756055146822707891825688668675945701697607857588582601968570841564850072956685303552476139852717038395122074244320617493009379394919268201284611716558143254117033882849767074501092381771312105598323696325302654914427187488420373837393321572918837174110078026398594389376979538662454803602696891393767925645210814010980686112367367247806276172922544748589371194351022183999525569587364939210025091126178183150262164311675586215067307425730660300348718939921211756805042573990582381599237191174280473797963461062641985053724861879074928986180743942662395758123235748511200093650862646688396650009229594785701899776284992431553146782095240349388120026601667282202503076720252634774873344059090336593318116412631200357363314478110984423257298250342624025497703268677465704401052167604122847442594972760436644735946593189227950064880586676672174660673654479829593549742387114226467055972213115413014661527594688110399316574795994822186629696549355340271685972709935717735214665722263655228732955346314198021494716949512153893140683512261900348794474613128939469990745741956749123110627154603969519640947574615547950581898862473715706178054953197755778891589060197338579914541887070051420018083998508589413615750023973901517428027755017338714833207665347650280958667979376205043463879760415999145150328991376212700020228962236859977206791849534184743798711985490011098742546057398271563978705206968953992712962047036820028086781247598574643471534935428942865744444974534833585982422313803009775697656650916712945144083810750212617384926829599864277156108479310878306274952802587018189452036202778508358217534931863063338765665766410180626726705464158272610721579678488536126443128215786751704946905082408054520629412986814249284391331327804665423689601592494349831011824170936565302059169476692501928630638894846702587330673814156655652169012969841897907932292903694280865836358596510532300561115986434314531826430257241036506868418383941925086531868645426077721994727469236570472349094735975662803889416042569158747008092625357827883251302732266616018594767831405812814579142525930490063080153472397135389357032194962561402903647096007591569690642270653942049824519880744810024024615070796112943497373702286042109599095897537682520725810718436304508213064232128886259264475128394316203287672507479279610404914732666070147813840985547804339578570022850794943409249592053408206655041152448622610153955335575897721161195158622119617938480972347019317879735548101702005167157004992311789153782184926883061707470733615128586662726779205878366538461686343013034891330360334359498928977785947045453402116487008542161031356159178479889198173908829072182290654466322299286876018597613766792147953360046796341977497099407086507934691600042395731113788208747495370444919819324568025973877233961664707422614215447582753957683655560543064149737170256947342825875219116470567432963348273778840899239241919365410042996575341938794375299500787377506823395888529549232863306708329834763368274849905597949406693034140283390430846014845918927056792496472450361663293608522020764946849484895369854899181591974220672408136961643681849277780123435236869497319097508569533314133640801436338115929094171149326772390031902956008611051520261518324513279455405451046076757913766407755005251581295283974496823527632049692062126501477363041614281036655180183411538851566417262746483188493540241744282202929292889011420788976774562418292714186915697431585416903061979884651922782246486728337589382313380655655228950503966020242652624237084365874196583441790187165508015948180889158592557970299940012463515761708310090222148780368669228863373530284397245559001620847197749654748705698156723712244607551149484153281182712899094158515969351914920756201784300643205357692061830681286339636118848048106860872612899866627694233161521717797017332255957917030717960258920638280217959121739952784765536913485293002210522862567097559125598204331257503189410722572399969331193979081136528891089193911711453299785992536433540086029118932745532410815842791826215213669628689501512697594977948252758395552216598353746865122887527378165527316077465466569670667635683493240141463262822936423082485695222526020222048775861153084289164837614827134667560090472212459994703834083427598353960421570655753599551863901296462312593784109798945418521793092998045594854369237025589087759640923379142770562647444366797796524783965994047511899636375026155563411319198127323202324024624396862370984834081714247478302060965713432248900701913698688434874073416157045258616908683905404668178005859239328917734607287810665506473007423735611824455508108185947538907390862392023116850655202307571687926021483789150231847837709800960008833569155426657184140623088109850524480331374489469289980382165477739573029968061910849196889821643798020149037397945413861354673873146041908810458036962797785008823678885460812091662360445082589962258959187508356781787593662639829617571784040637175681768680245640702674681061265304513902826967465409683044017597653225986005044210609885548236262056492919130817120124517058599901958890862871581677603147909035599057145980001349167437538379997683731164919734384189727165000459385618486450242564824465985413654378611815346947370797747883733192700414214974254349036780411314368909914158363733122385659202338977918546207422367709902220121514951516921641396775159638902452985487681508215314320844918928863439089494697602121602313449599575962656773368957664389229058886979646830651336853240542926465905571000095688264738162935201330843476356023869370858776863685307740092858669469064301628285499004197586358975638348009820287230241583689685878861726078776727535942364558209863253365724982951638284356559538933235922619491329761255659636649375909349653406042857395130477418976303745381742430704555092429991084061964995342173622208705236236455457224784756132109091787071534103063082999565400193567412275486885623655072555828030705141608471412840091219260631194583303228695692361812543843740499475089929270456744665409261935907462204030514129090721474212700261823913125623330729323451633944530883524525483595747707145367586646591959261843176046565202875236132117998081014080758636950759839220501174528650625328265309977410198627377383733660804135207018963828080831245350231152109247810474019735428539769208243891240349103221985264038218726010600437397948331319228354360486393718228662717341547622609227337509626567178311220163952083094751083396801232410000756109845896817328878715684476254853695114892034677651258883852867726845359740265373159453896130516493288790497597641916751494421450063872283563037649630789983401826267899500501050357760105581427149436029672663068761704841280136473608118054466478430348836267428696009773284285759601837888530623088580693025439648951751142815324675970333969581963912956377635585798129361545370236273936932408463615710237097302896185708370174525642137254433110388129562607146424382838351359294134435439929806445375144427380953660700388477832702516988098533603309082750139055612729941873638480526318309125199402976681671222160718712469694795949835603777662524630982529110294846283023330103056338921896783214122583446754579831321756035450325133070228660720920190247652706500965824202086195502245551090930349433590503818798112435052375669464506316397061390871394638150435255903000892387598641255131915354779345946019744427768314385166668249397621319038739891729673535728936627085988082910358863160330184169825752402017418165415406005904992540367189344504764852771718240358575511721434953135693676257875560744361651744942138665411104226532233800562848427467997983673691059611774851498249105693776787199401819289446120113780844087907683458866341830569627449922856342968054047537736129244992725210144313167128179370634262380012496662270617883074560447151661009515544927614065946271768412696945153667420535612841037959239049474228552653770727730534307190636569343144642912518650276664417840219603033291958770564379334296616448070522164306477681016275543289806584728926618051485723078219480298721084896234890823121693355601097137237795756600278362183030435804524784702480340773765222691856776066264932891566386711115075182835463320619526150487337452035891595126217543877475978909028593926138867840666711173446974861616489443463000760846790508480144853673690405460247083223777893825922061044031598656428144185446241560688751966790667319206554462086499477751828460821947536816734506299944357287070649823377926801374564024532836901750578992522001736080091684744062220228822858898269377813847063931446372433562657497524818344267457199478723971410884859437020836862067396737658830001641468249041704543955935829214576735052344219988973234858702596972718470917381435397529428012076445719524441907210011809822212116622921235591333719309583711754879717978367225222142807116495457620142293102394871302791375817320398030083492695190564418355615769305880478008437998964415432627337658338349624420707740717035277600274814909735757142244494860728215929003132096226573406160403667937319197844717881760668431717895795188394612690534389780094647226487194556279224358225306683878979888955695658346113058084705321457596327848013956619427337403413604818844904967544705160347374202623460168388944858272530625969417673523410533901410727319576819837822190407441019126409111406263327253860017499776072972395610604216488183556541039712947398483027940562057439654605028143654307062051949335354875672679944301102450422079140820151077496975576455085586413633503090620153398509696974222172282790329627620082401281577949198503855510106411985086650695976073750065599676188918023318869096062239545383805875853559467561876164297877919125635824805421832171669844278920421691928449527726532559117743725096690572266804412662204930996612540358135694127699479113344094556987652077910447985239698076852590087221944305766763361369928178481341024871626008742191546000660721879207270454041521359225074256147495955362964824952563598717845670546533168005394236096629103448104805758557246827997435103716497488991486025810884744505254701569035785804804613538115649616702945784080273422355714311405215291273450261872440432398101204786538872156533898596839709370122211544779014032839602919516136353340915044607231001236152407524533884913869797943894628078339375566916402474263709590596399470581815407810586268464244005360393902965189162448975518464340050099088547107007227115458858906948824269551602593990979065397477850786303762002760526144187986274746006045047614022197097102193107748240689013408253312276796955779279500165091093349864753650234601711999314662218605140188478647736531025103923944728851801483504705299288088803968020439131137211078203591238767696559914200582713627162766272726299101793267089262952323341367437767512455372212190764701465798793036315549654555210251631523579824136102139253991797317519106186123858695350241277105860133103073331362970990160342068981170107459751401205000774194103250964223554020439057033123021728341146108406820566859059146142173739692598439489438853644247393766299888836097775983575341847836944569485652764505647635691405593172141373787814302288984626345758390140494996676988991532826020759830450507702151006490566527026851259235264927090715175421776247601942350160165344734437586849379479512584366460609598119790763363583857466788198560543251215274892693633059828726068151119328793753864259713791227609650875267172072476876128312786526298881033567463503181030959936921512331877771750872640948847016487809684381271001411061174843198676185210078163347460684614076016642831335079672022298625271724322878420242105139179578921314405119132199236300173691513778261965382155621032068283446188407505973541648427874264935847723625783500924648868260014374982637669831618261041056827442011007213309171486500848962782784646886374697854022792537366128378967774035836808863119436603647313991409536706171495260285322391637118317807156975580427188724774196157546099901023906834304176452616131421293110270697925287920208814627717384956384577540330827587414747732047809969845235709519855226342825399743863385414842815210860058538475553753980699659518127104892323374758638222458648771181235822078186284412757969484117075051345992705887494360702049490286050206037661248100769792187764716623362458882160685575460325874311459537192124751387603223866735971610673359177371779695684842894143401531783631690080637867117372359222368553183584522669115766477757352429707503776037935514703173744392171002517933699110107658997665133843941315073718671671353286739081310638348890911319119542665546714897246354781088972779560970623617155355847815190335448118985769301446127792280675300754463007202204490501687046673378524823858303946708029424216469060623591791497558815546557245308290364258706445869940375999018494034646809226786892846249351476757791454723347456508568414127207419238281191746505388353869687704946281442140869139241966506546160829270929345808118556586988321464790805275168671297805384634874065929762843352916607579071986358193069180633328729800511725234941695299429978712612226764192864007181469236117187781160158297065434721331724415549087098035839615945062866175515491878456037851648548900460029778568447971507623500307504280310137746071074640406915906998107774073341876564457811765460016034737836004579160698274985111585751939430250570301540637131702303970494015221252201328810835582948070741321442732251231960131846120190981960316311956483675896860091161604090063745346941800484837820461081148213876141399863798666496996589659083452899649161687224409505685185543873520986171352476672242175930050660032587050142844433702903818809931436068612707737741741278091181163454423126267476997869834360849993419526128711247794517196572854006082936781485948787301856541728002272631815436286414433439874188101603967907970534840855415756219974926153364304566421695425583548605229408707546511801569617102918112193444395695975753543978112008479866141205778000366282437766964396423539932411057624765343586183945978338169367565139712025777126271780194735768250373376870444761982868606337273014115237388963275627298584997701006974203758940737300323622413666135359626058072670646192094248833127509391211743375208191931976194952525926211563145411375068909504820538553049033863447542707617906072670067023692247492650766873203692681168437959368548259731154495336196569930877972895793064543616744900795719975929792322337526080254712716772158178977170569602548671235416386795650764055576517899388117991810744978959280843752361162120781871757821562969014496689441186344496212654957076087555180220669718268663664236046926854271881663430864885970159521065790836804790332365850973159034000997257330686933795000178599097889448779857059472526258015081697171943922950381219316791396015379649304714503927606629738785589706521442428218801288870514259842833618122431592733481002860022093831600927251498715564013953280564965816971868345167771951820115432910439747555340567231412403864183621723591305474229091217232191354339889536609728944710793491131836753604268704075707017478881666016253894973333572348668795594709273954565459785729993246752499312905744970037645782703300579515571124912542441439411028893016650907806776920832303591264828853476772644123892557912291366733625217596086598040590775528392178665786294175254807334666513181986350387421139748244631870011623974455329110480437788554016822766448477500504134826133144131145161264409334017833428732495608866256839303974346676381460006960557152873447894499838663891438041002161181230878549008407557387252996143362531309146954030260602514100047505564201504982317859270540860819055502345347425095347343436031275559200643866198066117817767412810398034426080645474799564268886536116013815816467073336528812186223582289958147485568770467720716965609262999954329077319042460125364111065006297645300604478318745817859635689510375214752901982268340968762338957676047880433917310271998520156857545927968381396865791978618024888295158377183535954752973886210920435767026357331086517789772547495861446844206660844885835397496254730905195520631164543906512989397488575163368333414123198312688832843386973817307786186891075985784756900065233764131519278905849523167252221026022599593851530294199904248135930888962199285519104267129957155886039162253603796168851201995624201341913637251920455838888247288593237557898312924434174007726393199529077979706732932536436069049703358551556125412258568750650542403989425910822729100808513627089093339672430778579899642956120230893976814774525053952789467130256945536588321875685734073800712938703203566322102994141146510821021955871005577494816890284845985662752382685035647664239634059052755317212545274683703418623017472458432395090544750927270907249927642636189321062243749776588566649944316652728434783826624590477441808588042782871000113807644368338044499082290089060211782264757052613769849419187834140713017197771140186484897618076518426897794044907118951742097672027934112746048232478408823279331721329761654391914652417897690183448079856036098814016652340503637536486788772545813558846667213570432092049911991885734379772049631759303767399111459274070268162767554925431278860901399957371984054808954059784401236596282571139565324280921937056292423670739289960596994681622271218401505590897375511722102760274207032078198144654146270135841570212965130714435037025573915428162741583679957464756301125294384006293411228166582499875730816266959797237698936614634124508869115397864706436250935015255757185476631759856609520733513208568418222382611732658667370409683342477195195579695602919558976729129131911318591515429873808280576923530350073075438756211748606691686451172038121662885603007547296887787036749750809441216975093381669946068244046812568397697454376556553867836684498341321367941889632978213307194698680737006338880743507211194265374891815371638716085259028859437733036436687618409911792061788724057087686673403088697046829954508732986614865011568793826361581000345832899978517376370460502980099863452387594300613696542871602540949076731143802800969257542140938623286230385026544951024531622608234726759957262613658085016697604183292328151701046400017103545006765539460769937796332200999405642291562988295143923879994035018940041395182920801681571731641746027293911073027784467682155605601857982597530145653744755402727332095712799876491632004999067105506952832833434927260928533219653450059464994185817101390307626799014205086450793346030680939627635552740144451073461912330553282657333168989180765515295668777309497159449632257918847874773327642220647825696701554358831734155223752241092502120995962978929370855969657242764399913264719707977970387321524935096339094761473405638841855038286937791690486422501150843520650956364935274629726392985876798161285295392132686679096347559936913462762739509771437463866596112020774456737860010055362031665163838463800316166058781520026189925906765399648574502906506420948983407440560519400205457900415479176375391514407818672616266871396631196080301656938223676709936130791333926272287408769154871561881691601976001238072597492434140764874325821356033467016395082219787627090882361723425542977517203075142508219665001146864022820088126814921715569503171130318964019309738929873445334951252422394954051787516525558114585469082893531736926243632441957091534748647218576953845541845787716238739722771201832076299992265905534359634318065524782144421176551714464048000491134328526799596001229648811599585998355426235789643413073842247812760860082072521905124577690481419716729026017680852771749427666436134307968037981784426626584552142803101003863352381480219952282820617667427933979406369794634084238272790449421377876562725313077431738239876998707001913850122943263402130220387730287656512365083152162477596280026709901918167728175511153931386553014395739172114326431048873112123513693610943849336621881812827816313868139440891340829981455144297633571607149151782098696528845320911787881263906363361435346016861929199469592410835210314985706784777044939927849761474318388921122231311095822313889662889874226941884041415497185140732759513516604424858432215267977846020934446727804171709444452102977173216840324090254559877187813362462443285656624650114733499701128713830450448051374538448267874680887541545463852596750923639369147954600926656261752623119612616298319573189851753925965239406724591747638074737374214439153468484435561557287755032524229300277859690315978750447068868376175702660659343907153343655117518739479881411618510084713038786092979684459965671544673981463099578105510376646197349046964128850215529062044128193891417968716338409450038355183443452025748705223878188336818835298724201053665342019968718462634593043088780983184807588627938053168683483939960913494303871442289681141401175424683881331058686411305624538939258270670966162652796281137430327105451601810666588988304304318693942080915099877371409658104504650546663427824939597762611514774475709910442549553961803467860178148783042970257289393113767801050581160526094740429833291841085687649201838225978870891980720011416300229561838697017920769789294200184754955693535920224650761696158398134451861853743154676827677126105625408370628626769216190396333924230200325488994392383288680206718408863593916172061660845593041860079547098778766575938406076087680700967032950788331921463679222449123982570714318108589169639153079936581368589398629448627790105718108251883914106287860147013491334040641014921476362528113360807987292701565522935716122982170799721625237135490569766777583973422377612223634155748126862028688496826952149354037234588619433427850241515640541945840302711845751177980621029045110260523655455789819579754398520865224342133214721235019310677917132026394481622785508907507985252338436063100097755926331895207384348190996631393373140792571811489811723022140567100771841039139159486533205526616635746294733031574450570271322604826416954911038946394821309682022669647535878883850365546784893176603294891873830083906314229806786684990480138915177842868667113075461444623271003996013047816542547593239574754910277194992245717241086467087392077436667248798339659627300771293375916791326433910700392727720718694125979186257617258824690828939333698930855455784014470096467382938607168662780934324821482800402475736546012353916461953861403203890058731900943528991924098700864703371170092655604289988251254961943347875554549471636948547280275843075579128942292984869910529023319137131058298880508334379407947402718974315297757985399424449982926530847953376140607602114810292979128921350800616508323659737451839813735891533963838674628203477806152704982246604944269198676920192185436453000217174085330750406500584474836955234187237005251851013898585743801683141220697710210638215430163955820259354493342972531721037240811044333653101165616277357163824332110788615101032610594024288926086680432285079562314528805618060651845055269206930508077521047418838810529108885909577766514181907965682901594560719955398951229668463417535521854796339082732864552904928868879712072519937127646337425130374357016041134360421310295465555040003864504653888334573784670806754280505489820406591369512205257756064889230665323326813736148725632492971221270839528013326555334396003192222351842432493420660178945890028274295374229814831101255970937965590904833076124546360261949262187152411932189429960115523028239419141987619979507474298758920259546431407005024899963504395216086571718951859643731223353682761398950608718294382005523354907008603989401378696533365556331911316600647926682140865867191525064966695568717619855783304744339700287649616191583623453492396729995806106289265561882917129782162702920795356993900262335306993571376915287440830233706670325620817191580863611701500767131418557605381909846625485718145759271643653909726433403336334216352039523337725957421278124339231085453443382559786916811976383760383518764825103884072288121433624482431824165684609501699800530190876842283353218934910902334512012139352596445802797524865061746235252280019551205410103657431945208316238295903816554977437849817437845943589707676546648231855597050741885848036480874325985796821296661890480236374232289649217615134700750943521494550801114883995396002610109115781839844267719416152320802372964524988629101526473270172332944159706552084425941235550857451152161834616172601445392966328043552944827691224145266374116118918769985909530284704967298882290952409656903987152750700120534198749563781628514192556374101769298140834711825230487053446106364977866313832014902025456665591158803983663850412272341960846124348732333299164848426395395105225340854251851625268180132549820902604857771423014568049342016765561229176600086798548704263530088794665316040918050755879341520694888729947576100899537791243257655013672952006338617005713487567726580885609555250521861215657125244567271568603397247186809960757523242671072451995590833097498197766688508413987219327833862618173025068493891720744566502875522100639468438459853520218252177255126953391007164054119539275450468180706589654834509924016060092687501986186724610533267480604051592813383435449373618760504784225912942891485207090880706369217427101274871121596353609291561909789262740917224047461085309168626838392928081574503107649663409080037663212920974236097675957055180151513560593615833707475520160906778358982858731567891141397119701078255268005125668010181134268602330006769866277076450463683941629418066141458447863729595114604082389432444069708926371555957508712229958836584949919521619048404933578140961098586926693166040938340888519517348942056343133975203288859018162843194881960175513687811620127105840678081531658896099777666419374630309707284356727981305271961800662151706131567342088445836329308819090658685114824031296219528065331084068839347486705473744220458725346688616152252454641054190674528770118034017647132499153835546162579725477430398251732513414030757590243810527685206576090246241314574289108689508428416231970397553289803613781086326797515080878376030087560674962017559557937896709309527746114892129148418949486174648527332536798294970628013158116644110367135192021153174437433274699075296647936030589374832040084542186979871534945951636203025308650370972427499657019639486304620220430812655023137764824472905766976875320263733809615099381249755632876690998784050251525815000839875979638640545253402458910137272052993581617117136857896168711382922325289577635944361168277158986519296193670965614176975969035723788272923995537656199648008527456296187805727225988760968488872034888216897228560556241649735424770678449639879906417113261920349655389333204666459936046594707838606226042445329168331087756049231677632684280159280788505855724929190337981340874746082251001182339763450974092663238174331021458036251767394042497259692098804794187348736477258086590676726594568651169253563113564110788964608334517813601187095570540061287075882085932212979748142065752953287818995038313774642776031482905530266437105820775532117820364200601546944158407969632673552158707283138903070926301580319114142494500232148172178531431419760552305627022451383757042765443265526279771088866649448748673196608855657971032044969617472375944591941643439247066313143507442247551214860923351147727075423706418326056355651418254838688298823829572949596480450915282517937916140189544292802536723027263949083786831628381963392747359685852725963532083751962344573914455925398095921174601156383376981086610558028960258386327868422478240333262004197955965165929094813444404756208926736169792398335852251844816353109296495424553394197961954999235217750002396290987849526389396150244142008658005350757094296885770716461048116213944752688233597036041886229766877681934241981307462587010622996913545177254907416623262718826853181938814385120268489313852628738037876613790434515673759939890767422416174852123025526330685555106015206507380298339553147331754831919233163197749562915970750099000902407870093759843487187525573722335419880746385379018361181846554770378815899026845648076259217970703767197354009348669240625039438728647267565794619399863649970384551590649844543388123161253939971267246487740306002296688094790951260076218552767589211457482503859588229489593776466713949717206402255590353719252957666656363172780711636118512461947303703177621805814885258783853181252789047660855056609626804300570965663268977545091557299499590677222001746656932985070364770344650943711660947229676850029844191666503285205664605136352439285612296501973511761000911794177422451314294891343306994533031465464838263634098509052264318477896358559664700530734010646524267837650184564977406765893379130592955848185245991293921601300709089902623406475600176124422043471594005710322942061746650546046343376070453707788379970782276196860017337262597323604277863236734264373881148778430632202930243196204540443950642605012725150861228542597521447544258374318676047546898510169739919524746563302952718407168211570128834355500405726842020739056773794501428147606579374333796703750760802735580688495064443848371525109768729275938477958475686647672712615388980286735549437412553845811682389199154521412685427987880593787682461879073279529747901373463131337287069712639959180278942639026774011498859950989879336022666311043021132497932467318943933263601584344032609621864963195672396532858176011809732773957231647875838291935534829489016729717168232851952032175921449796390083025931426789104549828113811000990711600737940116632327018434489229910632471102858458439685160193393686725808458089558638981052855852863878355724395924144411343920519922121736201687158844955685017913186068041366232980339049701759103554442379413665410872728211258292535841032888686873462133585861570753465295295538233235778081450760043463265400066671418509920134027722240519114003197710114557849408346074269413157026679013383412405441206911791496200630896058606895293426317672685018689615048391782029931969023230397096413805520587882489027598609312171592130376546263074602925503518915629631050708692286034935703761501009716289609220005835963668468329531176561639456487598506936807083160769207048159802123014338736139053053326277168919314164984271370603193402630182830712566935970428195377525571939783565363838824627590591603774818555841072498381390938485537650409314118745335754935878994595295487751141976636303065170070775818649476224188938934052102992442293819088165725130069965557788457121038600194446214281539352196288443967781924895896939005726303722264055755541926900438484980958074412957987620154018949552229206447842794107211557054005811088162308368499720534437161274720934620091480712458621851481234481150455959968708344543402083920441195329114335217465007513239047638143832800833258470283526782947228991332510924427244218729728247021442384333516109239135594804290090870549973924945787312030651914753554546217159686197700017652668333873309317393745394533454696970995087218296418490543401169732672857259605370487212506504159341418862165271660624967111517263096521782071820530232346523181182857082188908854150030661117714403666463291531330727242701738866871815393476648512408861286994772843269670510519332774142066613716580535705618688418046834443830559613042113943241183787125598318212027331441175689872976492353688668019366418931920500091499159016188276145096729321144217087935092163650997425550829892090274739261898466979095459919169344068164181258139950664936695639299225160981760841657504535266644800669248683344775792374238530305795677029202504445643637382999147786317248249443385117100244209918468672124377961771370876640239697784738440137090993089035705471068181263109452581417993115068787728760749515356350773065567336163597946843815519994210580356026357890453786687910039689209669513298580499779419678350432094015283365384339728157814320239285099865072615996470955125526609076570263625336366653841072616051084423060176423300723261061216176921668251320672038466411016252498322501378353005008804473380085038988954570680032944074101475821691170822489551824798280831381108525702265343615637396217633293117261992862580710716119373831613688557973738284429024515377821647020747846932427601782419080210827049850399572428590937485811796765807780547201604027419572925569047929335999820955769729011738899071286241466617851927509571024741582179205172186819350848914098769377647220927481174750690047309234424494032203279769396626661925252856827975678291400302126042494191409722431054341640428359536822140224662228696333445707705961059312141543088382569998328844290060479013401398556295400772249932326122430455032844541286567002708419957702786344242218534060647213089837092057922642324634595651840695872264025527502061628481594849664522397504884788698992887159521716482841085655359502226259069408414311573773529748683386728917117114469275100097120066984407701941388162744710825184837400006994318576592670679879290282961503143136657632497866918364677961938997369483865905516424146684907044220075430351730025306518456784597214158649495438751441961418403784155769108251924801294154792634471108811204916651083679765852069004701977014911880339162567135574579123055143835202589266826570216132846126631299011600443591617304108797015853200813510625480783559660066775637426061354727915785562892837510829088588887581004328959701181991544096471930780059878303512433499470771442615511928440874370290546486517488580169842786048844775836599627913027630832987067997674666476486554183704041008574294466335732538482428161181585928503187832460578143561853713794835325181363468605454287306892934666266607805502883878836084010147908107268660987841894700595853214808312386058962347716804177915581304435838801097657816620692215605887284032593196681838196288336717210484600564063615442391008600671276607762094456033106062186897234945192660271649036306372328183473536581534587935857548050634282018108585419300652225032780831403525741504563731441020876921223584328161671213469933268118191378236375383276437162838983499445956247768076809780523575485121070637266703973638623008837489740345536219657145484475984372325107355515083189173919142419522989132409955832748093408054959410649667290922097354506977899855203071232281986630936266048828447264487707632881178218385755118702749607380628639816088771811627927469879705960811818517686645266750278881063456225005814419198852906769248010392225214835472053500739159385493759388069008200794674819292704600887366109417827809074213732855106147846228196817988023060345934514715723638687559879223335843830409180909525894340544075171505817501856496352598179595287118108548457757593208495352831578716982026652385708465473692019167119049519433678748411533318352857389753503828273856908539504802539076262877414323789760693225058458810690593090319230291160626510565997792485478295669632333852366201166272634403617701202554312304637369997254080805770869624727593541202601381126794729947282693570653042560710492474266027366178008179885647336156981562213282580369889786037054939937450814434932482574611219421044458458709403825124670484208782142675428291647099650560341406327742377289646116883915235226586554310269143706204428401557298642786966363164187587246802051874577535325588162659236861555808127036995423500031404943090165891424320783953384183242756271854375707824910015682882988198363701703497675234123520425663707997488120184673203098894407427398288555114566335890066506644404636725589470451026279136867775470882159042257572129044270824812004729848804574148468746980751182185704273545219219125384477817484963480036942086401336156976515063761632202097601294420282517316348865098833112832090478710759889687075269468294004266469273749205423468953629656500850185978788569970703814882605424820947201828096064887165358989670968662131083292044675657853467204273257321568855685317400715684437088740715080902368737615247481094470865408264678071541296942482290332928274438586242396775797299498325541543989373655806506830180163097111646640733556686191327451618418321082636331376169260620878913447113451610192931807113332686353668846299306393270549045658227087936339365667932589850863189179748939184692276964977911954112120797560339621201071209377751846979006674609819879994690449051748158766625571929075644312727510624754784240568565572213431171288963359067291439037408890942538262285647373205492178413154057780730926023842002112460299440060122575773362198189268388412617780424597641625875592335613097616431317339451318082657246535817251690943134252600840943336013019187445792444235410415517783442393326094807432924945146535942091804596508126034163696258762737171514481166329504746999230372489331929841137105206816999134551612375304859393387141255904641584667437004406496925613798910597822923656869552940490249296727740577414429875871867892840508904470930749197281615559052326716648573227955947977068259432768068507259886126883387490470423013334946302220017310066769464843292902451750563458380618598900269644710714205938231144157487131588291873669024562941128331133916042027813104002979826105906792394141832942278997168087207063306450490470607841880586981461663512978338191005055432945988481008924562259417110981477442228256147540601759592345472299908294110728071211232606220965920441356324202501604027116907990304159571137026391684909895536456168927537941447318932018483328390031359504374240017285857333652275843589894013893908205385196931650843875697705059244635405253977173601455105546757508055576459400935991672842385329646282552770088039857680184689505906601609327975233200781605242229539249563213055546472142428089499505049174767030689537030060708134172234519309694621144584034256313417921595462484001287838124269663147360627691791160877716968694172327663140111114332335737646093068267475744496791125273248118859180334117722417551031888461926706263048359221029762019238167712779757694886317009718816870308237436873725994339062387348583540426566656765909435860864117452349999118863879211308092058150319281388674360757301538364277204149630302386404499612463575597237514805674493302038806736110878354520415913343112977764067517262113047592461959564875727812268520810079473865304698139605609192827029344300653325940077980739754832614035923009465651813875765481505926567706355979126238976939337840329878426655828503040809048264474724190256093642828931962164413817379280340348293574494249409654224839487833026744575650655677858393755843616376780455105520949197913157694024511025177032016267935161442741081815943880953053934054063813535045202669756155016341571814494017302653999219294038586367489426811380162291526289239198383598207013257097235552023953154705961236714846504245534144423483083793517898982761552031812665150242960747887266661959812720807121006007105285484367265103389255270135193146765044679079803107947859270649267423278111989257820284517877384705438075797583663083243954285300887675513136196320022379373252911087291614235395928853386917957654638699235518802181536536479254716279496837719142873563395485117360771721009045494748044803387368879778761119692711810312560670703230922963779558438539909913944623861684363548343156176787946072478870665151020358983362690526396218520650142546126690083302813519416423631946474338998489722035934948545884871529964542747637208561536377166513089743188656224338010294102830643419696376994028330877937788079857803307394525092925009299534099629402050015134014752659373647482732310682135667508348134828230064488204480189079362040400303806408105986543456654968648520453513727525261390183919817538500675582785838140578799556239374440878441498219885335696730412825128712468208776716924094123565313086489296131407178557773491150243114154041005007650626430359441018263394161985880974859063234943982479242133463852484869566540077782952457680685548582441866635324951665806138797921853656023728180633019540208125966783023935695920271531370741157021728120518889712740504987093394899999871651258128730179854558653056328151734597166450858412233769985234333627987633034827184906553462970656030882738592864747190771158147406030373009681671202456439877813297817589636216023798151612916944851573719470195456127359873665951428777322174352768338784941892244113820071574317239391741525154292164329386973543336255910101457313271312917587176434229627687602115091267310555696972167024198445998971596951250560785207630676898270452169996726183306606986026601967837321942008903758583543446647415668726832273362852727631993678367870358708841600874020099208160327792957001124959485596400289540164240234671078746209735873562992942583756829152805589841387914764016550742004699574874380324041540630102997872042496261204270414537257408150986212509750918409428359160026663166834003043049715201467606489351619167024409205484779856309617064196723362121767991392305925864861845789251795756174962987960641104135563046147337984624640012387328743001137855011348626348472659109905864404198193328245177318857436129847880308958350261030370152663308375333917351150061605746767899970994510243792994381432048813850180352206958929446440284443714319911181735049490026781607148370212287900880809487953182600077085755656093703465927616778278121510024892622999370046981693201556043235820262693874560083949144204844268147181647440764292711885046736134681887073570564519367993578878361509105705988579107154509274684339656437452223383559709353624258609669991067990777036522194105824041229774126332457265612813841213255312660146670703755156831014472199737195316723325449965046071632151245449558269555310533679235371464615449506587929132864528680114306468348076485744257110558418997144284001179315694734595088374578743466358950973547640097246169063017669162841900494030176795017462567278578525301809539330920504564552810010023046462400159952155324890866810812696005808812490813604566174852705420526882836480473149951956458275579260494022997212415199272026140364161307978405455999940092418050952783539128812532661162309551368752364643902962696421603598250976079100843994548951722103640815657151536250636278660557466954905206369054954927498397446923063546451364300039497149881781133388754229480623990822334505183897426410355425567049466740207723610656620333030891019603259294486781759124890572906781432850728559753001012169822336675835336243401012094609026316481851416046792226534425165154129234979182570693446474877470264958217933808060079357721075368423889894760872089595142857821695882573667628585562279140235207859644294729856732575427438540130972622747296255708024946127662708760092350653801986299851516787166609119490895976974928638613064103852833543335288790701506254714861601927054542901714157136391274833349506451477250824659817604013519014124448411398145497609558886350971087179004861160005182975375806964297788626890147129485543129531725755769302849499547159154746220380494322939855790025239643142980235563966805979685754512761158284220259168365568865037103224432917621627377281738110779235694698716907529129584604685292119758710888590451583327913578691549938415420409548138289113616596768880967189050250924670683524550025171199184279910838190006004370668765452005536336691022594528855631577812426923348082761477805257586431488641154869208888321957133891457237662850444159713471663928570570808439152024007523237190211598806662124801755611996570749058355181242048432856868729173821117126991524634773421021924307234791354733801422186950497122804251733391304312893975778090501948925775478762889549441285090909256861859480831103327087230062592389084769896284443288037234238065339702481165426106704381586097746618432173617784462043591287653563266761368949339388600977335094547124325365745189616265220007057677981002690834199395771826018856057037069854230336015756335371874976127813302540848971023895527203614290247414146388180625683318340190311516266081399428609622486591160182287145385658012537150237329889615437134444247418652543527622590076427941568651474226685537157130732346941457599632541394302513022966462278381814233458577559961862395469085211301152429201508074451087867260778500522488864843853586942921414012797214778642299995781008585774954588137380121209123561579117600953886925684311499641682716575259255163341570577065637964403216953946205606715409131345992647585491883898917069487595581042886425497306810973934585418849732666594377786124820003433034184234137786005485164054804842409945136503088654676863666922775187347268028978479902582542819035224797668735030153899124216881578207459565414052512530196792330101404783453394201147787520741210453788972754238976394029828607750816383243546483767863252585382305451778818045163025786276318826933569896461571053447368499395463889088007007898788578911836738390833209559188598517397473613854775787305495271480984291923130454133731114530471612523179327264010130585889325678395453094449124826852143592800314311263416254927526186096098904410442228189426021191713732177888025353948265997190257155865662415507016996607371017432947605869738543505059730344074278411835329301903250120453365923540093503449067723866537565324928684817708581501728636797974583684169142360467625633922046176172801707721439310962589140009606993115536751253058424346400516646582509829236295665468216024416465076213859020396684239130663739543209659518570115229767626141441265487487542430409595086123713306344444874368923527275583064674508747788471068426736218527928073475345269894991569422653728958499861057391828016887006669828811865440538676101787877056761220945936361335004031504062733619946254124916565494136867574465718043449067971188064695409467194411376054432981650179507824230193849969083201744011779632130679863368553803947957815342980987078766651410793684767907335607850451830187331034355950811321846122858548411720423801950254819338507255404825721786425529633213321414145120388866720945896591985942999484820923289217543630381891906251082774225037441364911227819196429310831774655604812884545885667937792951358906469175725271277987276416079673683163202853311506551704760170011413894509155296340383082345879485670790663340610280255695577051606059457428403222453325274635202509138330334228402155344029694913616674713554858706051550656336865596412127139813545609393336696173333414019411283109192027796184088041402364130573091282698748777388012254114066153563074558629112374958430430354231262474035064626194816128540821580704358711437913239939904345326574156634913411647792466605453705506093172451396715975666295549335440629406161304719574680793830680974550059298080809460083805852356564255008486186715788981154083207989595170295800003982311975475053340531696705013309276381509273771605026226310119904280697525401164726278834062600883655861059025997785179356630822671074065303970420307401954232732954398320067345660649873867762803674773003465802210204230824187977260215386289606691720939744434821900054518786706219541433775311876145926612786730300211411992065251289567153557513315398422572698586638782203476432412904295047495252174017493845306263145562064593843991122204373016835870684776539718728044523548996134405193882682768174743632764682464393782688815224629672057916534461209214530376722996361802555903441764646626709840882777390751677823308875429221284868575343309258363220220336268103110691855582084384606718702920121304863133132174962432697958485527262929026457484146087430521969542753589244129653235186869162202834212768176682461109718550903542119562711639556775813765567382291232697306115664738599617652929245759740361200620482316662962177925788074528473862272432739651667568446484351022834874516575373410971728471041533720236518478919618950583979503159779438311318034001667072180320710356689727341640863645704472964401811638570958022445020355459291659589851758679879505718138918851478749840590946039572951044285052418668975633060490336657372246955345951594560034220874717630637473300254407814070928247077098980276819644121251418554825648195707392378161335303298982659839302116625386719030778520967982934627374674070528032292459931751804800404547675063579216099706891291332730368392183530818477435533820181640736819592496178627541194979638957634834655602156359636009691753330981830656321055317100533022597160295347902530877808892371116940999309699226433170370197839463485746287741415254679477348279397640267736808312966965348038660671642982944637102413015631998045677501822014058164949697347029466881543937418367295863774932343927235325322693454685922966362154674757849709705492129081204271942109900439313246427870042654021034597867871829489447325826253004936959293048394045151619094431239411040543625546998884296697235764651170477302268875752650068001329283198096814008730043848070130521231932417583735210588570116373562117596136690999829359330350538358401691216827363173396281242996666004500670389607879976407293016302779332720062202450583519308770192443610460012835848723315866218856488298760510766285834127343636348409472170675003075684213964583028410498555154943010013853799983762478365116654053135532966655995182359525628847470413375546068690620585494448037270353591449922534460128425523879528371784747449402831533836005366658476923099943717719936562312520669028437742340850670402746341278467746109064295180831697998994307299063133620240413227436633492909727389105418759729824262438024973413656461244436908097123878210294139827525168759525062900761368949769423256589099216622610035663895778546472973428717409118892475180003191557582813954969639049009954920483123998286871184411341677290104261492186085704918974035137411809024683757431351478122159161881339010758100790650071459159219422029954727753095738925343595776953780583845739293415376024225214277217717189946838941347086000032779073405760909339870923354590294767453671219369758111221052836735904892136105705317636238426238984855772715463671281954738214325113186426484350445052117340171020215064856100216815170218760753377497252664453778217127279464052734385048730868054212610355562312529191327466614461664148665072663852962845671997101592930111030533807893806089672055057539317584250228348658612809634973789117730115868744455709414448919304651935346668616144970475384107375748545594308019518634008618708370195962791889462735475682390356992435842916503511578022017283495439439757270270910689026512648573363458609901322365591059886381212299460247120240408865321830436363350006247263437864546851231515139248542635166364317422502476328171647601651732136271924468931492318753718558647143527255641054816864835948726882926509270206742055438826483086299210297846084419390555737227496059326372183890745630095725646164424978031794178631945150231812596309612785663697970087234390525107131192848130385587714787168720874506339573472113613891426432223050487919915617072495849999177343483854824860394600029580167707043860871724516736705570039305869582595200388787323010455934586345990527161285134772962868914190643340383493532053791108857425234067730017025982071690741614826464155243207728929987215837011851286131434718195549663057229554104855376613650253350576063893119886083289661754054766891342264666133693398306669759755901456450150858584150617740194769659382472485447331193338941276167597459249090391476881599513111380858797345637915331483469270520533186725011038102794743783791944983951518418073550650237168541320209659403320256014588634077960505193428072227640756035798253071293006465388125877489959940368282885567589465088232387630050340447392112135798476594192198490261236412602680684756104099929589479334353086133766008258678121328605949932096710723826352470589425991688268821315733700858285797179903092940797455667624587313362806704488447738647834876254714601722451776024767781698511583336324799256556034749642859530053907493479960468481718242403545045422815773298870903886029526254234543832966524782603509430752881736744407118322117027656927432111927814256188004344097045887094168736320609584046263054575723946711162557321704686568105585902715256543880325632413846000899099953935477271513497958362004519954969083983186489061536581063963031532438432599020532701848904547870779244201254009240063129511747568909630176729446687552968517466823317686405240672890678474857707635368907977460770217111372896624893296336733972548398139522020920280453507353316412208362083979856922724479441786164648165391906591304633857739815925776310741591394186157164088250887601772487284981039082378538632636450353888897852197795120444270700874233198141401277764824719587804798309496731722583585961626765937299324569753439108785576340898981724791113190166360150619756500082682129217207425813619392720153063172346268447324281322323091640151454757463867355138005238234277587487058059345173627089339401040955800349386095830152304073682852948262191036116664587462301084291779470417617005483069170821245097225905819687214259852204366333157499895946749394873736413956156203132344948773061747641346243091834207621118767582318843168164360412188200281949088603443388209219644841580952014998525855469341163935707820440042398605072255538660352587714586856659478523451245781072735397424317439883777942040588395345053183998753583651799681189619074318296568248317643032349707573498092219699226083209883365935666113951394906643225609273963101018233760096692840110432601674641819885469456175446420454697718588260623341748488297147016307632776780086479018528981000111466648274850808030099461969871704730114688330640054398073933716843785678678854958083410620409652222224880595254679866382992167872349277826302206486223694955385391037582381422758059234841962444702025186278697307725216464604300958960392162798785329175276348055416994770770713742220446034021461128349279411165476279285231939134287451478687786818562490957245007299999105491256409858390462257124045656076254411233540065495721533791946899376032320894350952346142095146358051534630405995922695462512178877915865644198828239773601659944230713121772265521551285603752986016844357940310528003225183986646481745527345355369451047706151468152067429937114441951180778363925548574349635244875313224233019304584228747282354393663977581165958287603555176632808962977883430390390627636373732947321065186345488451495874349575122880932997154314870598551936532786004426510232079103162640592767207764732893262698833724210564173927755938022344609259410950723310470960397536732759986480740388000884319953063950405152563890267851041883052689050343528560116681473482652684738767930261747806692659328456293786695028955488506475612738630592474631939770988339488484445167610300116493475542173530200517969367807288325020906529555975736844356331823313347511369534859768392087381830971554780300235632835728683203071859252279071473078726120422293025351770009670312012336761158917609112697519362206042913016653183914723861747113740194249944536156388439917156419932599772336344822174096520423372553038515943217194281510960446712032732783151987148189725063590151641444757672675809537969910508133750366163184921539556648667934089837834895166163950586726086362523684181638823929525348862278026885090006567060945865184059528377105837899955236692327512114687318912013893202715142184053204421470845813128873861750474028554936389171141269038880045197140987849600855944122344832478907992381304274161369145390054968970234117791732488700241208529937297003966587149278576649700530182818909679092891307229327156839115833774457814294638128021770066183744252253034070939197980362337074991582751336455309633588751259466655899442594034901979890389719834914814821687325119357165842576494120247838103007978574078668838821826619068564067599450792598387410628105538761258863786332069527592725700268591977846441630423554557029992492789395083656085347037398384384780508986876632580258082727486220640710323234012596620922281375763916395346161889463256596962348258678183554698572938053128884638684183190326072811979049841283400414554259996692172545916947271750912820333918062340985468299145092447259219156453734411877856361558219320171291812951327007125492516092756423410983309055542003164025351920155240665818685207384207326694945739963403363184614682375190088195648914994570676568173966414434622212132348095550427461733138767819097467368147053056857994739499036877374859319828777214242938623365338696235164968058832615763957485064555986019407160628257608501987624880417056062906463753417453549258170470159836136458018152402763351892613239929412027363466454275783861426461270955523533965397268521442621256714309012919514840197506270903619010852844583739491393811956632806073287973724490480011721408739642053118579845254020245453450969018191050567438346143053368282238461218213176490297604499120430949877522762352722505998723489748762776914442578719079775184589902272539507183318485552035489491264592945159328728770262370618898251837865310921574958403159095072740002630696645605101820740203314791650439770321266179029211205015367720518591899625943143625456526058750205285064083676124284843551583006060398913273990358849865001094339289537490916471754940966603558811656240843400544192200792968586968755397800494778007840065493912483990976194987329658388567826878608029328635301726588668885744157920121438249721789968921334553964565018013508567705471052230051959351576735651056900574559178178066306776676058450006636805396294335454530454368207166731899196887743266928430509919148952953436435826437771610976327347096427678183933004521794833430105241262075317664271538838413584450537106267668593605380004754723174695345507079607295855909495659074899850802191062976190107038553064151486320365434194129841593359875218619204446902054242908163667708152288455568963534488414432766824723134634387239073467368682267142246128097840374341226882067464435515145761412333827226279946686703607566001901370050658227018753546738132231778058356519003833332876490550765403436914503586747824488641970111165881648511080440295432898266151232769374384670053862007373098326436083661836607175668801246506159112132991334338902414798010560294704747602129552361290008033952043743725798659916141540258223029308764443189383387880773646229510094035445068512265009056108283149497798065897643486034262916597911431324767976017663644677728040457730604629004098441217309143042512444063616348155949797242422682900506831643322640018345787020031404351745141345920640787192008661775135776227400509812089455311650585679986489141786514553709198441988626718777668117866088909847013690145720876885966547371008423438438658038129130358645108260269343212521275622426596063934963030620631914419948035834234238926508430595562436492474704756665200100138609578540476358918957018137886990572410209597311032649242256607341774107137884425072273284014912358677653158094326664357715986508135331213813949255820306111397846568477425782409083031660668697655421118916250492073974301986847882314058944267831162730112311170581202379148546682039824255344368608190292057945908927493707925635505388287120449013553493675293574070811385385178841151107350578567675267014077920089902860618328985616511628896087720881749050925685622094205881653987139902878675261001690762944634954556842850557757239742025982542584250865643871941874727207517085326599342317339454416663108645455204476670103648932435989634994076777310716773485837684799526558810324979106093210817052875625241830434521118965960302948427350838036366769071014526485364823783976831796585630501453380715582475629290579856310429954939143447434484758334201229421576377697893749400458688981215884840755683200025445854661734087365424484505277681467722171029701469584562317273974646125095919340723969011477172525725619827900879328266279442474429084373018305190470495061471953796912568707742153460834245882380620054803136446378098510777671326540864048045479393004677601548944459227014637609443290929913116734966070169552588030654876901415268068584998916354569231255657351005035441747298440349967011260633994501244993668721307535816242373324549767894822861864281345308443715602648776044022200755229081817674855939097677982472629166772807191666871215361647742251465325050922945093855243045219113871000138454478561472449706621226585104705445508426416323223918781225642311334971770422537044789823115136281164713028003638698906024443215921438432532495572430452238588637139930531173513009843645638384006101734749422974534491929536174424303868935298059390342914282644168851311579250786288667954848603720237956931318134185289560855386743186589639235128924696931254701750311904687228466758389895050713613656092202519289437939721614510893522712466707756567543099854175979038444131462190188718534562317987239977903905975543537681722767479419406481862690110896195130778986211430884988893700278104973914163763385856716035303802996267892425058225355965478867947078912805295422999875878038266791839304304769755841946591981188613151007050115287069126063075732943932466082959693450939631641771525847251709469280044631034746891934406567623255925925237800457348073416831369199191414276273139085288711034378155874096942838076042067102379187038787700034264417892269578683923266304065395438034277341192615107721669766806751929195286846487602142586340990014190440579761194839654508425325404843895761925192098636083999621531896002447659362128853804573974563576557694077927149340961390832560875676586395121305950442108896275610696104946139533991442200241270931542070361109693208515247130741648309420996497694347828030759878634264164974152863193534294074332586261191513764680863668552615222355124649875366284927029128100058114838128214663548713148073717071663881608999972014426168279630410739159149825232331020133233741826878864900890036132197031763178234149594547454409635836276545449946601285989506881839134260334167762427890834555682939940136133821547165291540015110335797944563717911272415067693021285735624831253332310481735984652277467683002995570475335655539277278430025999198397545576157500828487094994588756288926941902263274611963895071926747314028963108716243027538329970067904010639691078760138670747418104819174274102794470446147661229266659245969824783579877764850012698881753485265752921830800103929538250746390666119613064731781239245303040912999979361846671796499016399745737754715231154881532759212209635673597257388220315357858247475234679523866615323582173645935994737254445752301736300848781456854872559896758685306317050449301658209263999941754624965340580422190145090862068525171500605353758625744730751359138473798324118831532835736432289936345764399490128172344968215703449199140477957551230076174485582841462181921622270812909500648664393392185160856595843270434570091507596640594476855875857458848188078128271086898791851721803723516396310938394583598371729380349159634720283144466763016138002062933124970783443185663968527369308990004275077308389203470381267387295251860937300123856436878324513798006452029120135170541011350678736743185598526636947793385734440179495661349711552602838888780734244040269458288444253985323285449462879140317064454141762718769086948249088217807889617002998786326175258571670398018785037294382052587417271908328827418228294605284834450120848839169705035952469489682062527829597079786436187344306229835221828355817074393063220322507722086979946376570340522751714376127282085718162682032750877603942713743965803097359267002707831912588897308666480945201476965915601302565940122859810455099765735580899354615266894268921713202277600892287153433512654080449556660246356949928155974377696283524483585096494343556109100703263692818063899645204904593071766021831941011020874805497015521378137638544760515154093634679280279036125192009732853855139533277697828053393636804895023472204512620475861315596532200571893241602903886040580331873612515579741112658008633146729949166872122126478452942583825931508758120772939139313373754417128115703096452280568526998046673012452460758738829777535791045134209302359353583377853004033899420941517963516822539900526999197345698068754797195903456997373133987908655654862933837699316313765417434216811259892796992409062661647852273001558658415889867351033329303711939687249553039480238085972054166941310203801880688957254489759645741103670600879545145879000261229507380233856500802656351778302035682062558777394469561584947002361468962865735470490305570264148586056176670669317447687397178210454980875608421698034622298615801750976235136180970527581429790053237628491680780087664766449516040488456386012805608443253232892315478247214892101267345808719171132569684567576784630597789033556365504586696176086764595391436562131945917996405001629382596482877613319656486035900184946128194729843963886932811004611818020337823077644312452509443966421005154654916935881552431332512640104620977331333273051135085424740174272516699563340053456208688692112788114653019820518312781884967876398705643621555724445245201956371716281098736637414830861963429379702035705311636795994611003487007118882443332461266400979276006242484286086582936157553204586059786270846515218571316408802716438664940002639140716915681182131814287831753383447258303209576598507794644684754638404723102662482079640006809404402340548151292801647594773947575735696496448869272689576274643429489109946447066235780387414680116662686357126144381340098114455704656972014266440531775630390490417444384031158938039386270417911922079927778174729715869137436863894752605486703826517455436358201383043770113958457882862965075294256940528268385615579345075548895448921352372975197954504230279303622545486924135107776878002581120056048567210952732625972287149000447669764336270346511625949096139860031177212933222110471415553894454008872969874335124646935262475194489119432047249798276891945306519131493088970933174897894431568513889210837832246544821269889830630463110805179352967062052015621045490531005589927220375450815378348598588574618603348228785341983704505333944724177705030523969562003836413693620585760664716766571837078302332084835111886488889503021500001807592350979465364799421236088610974001584732939307381927215953002289501236294061205356412177309798589257344586133403520509123845264279997455712375812094327284125737093366024785306816807823986591178846372372917663158683883970381762187810584231266200138926511114055793478998007614203472076770785114522570112988425342518842732799702049265243566455516239473967790287647417775215002614110598023456414290299919226383235186772739840154394198350023319163459188410765048633805067665332153091536782305079350020762667327563066682027486643676418875769564417154996160998014667048844017971512075620142213092912519319178541091221805771494008815229028521273686523084783601940802446572401408171980196256988434834365553070143366734744681730787778084932739615827019010122016705315743649539194598694503541259336029489725978571759594450116885388578115206946836483512475492242797909940219220682219131403369932184237871120095297878922496795944904041714841056311267517563718368776620054286268467705460936732558834951945275182203151917995946502988893966753430596708983068481179793034220095364955025289485962548001057870183040451144843636972802827306450860649331587777308820453600111445289124844886122296144821559346350513711592570871239596919200653682514578197946406133279274740596372052370228952437936166075559602368572272357439860044408948155113916595024395370772654977069477225991635667112957883183242717140988099050921389035093695475743020761143196131600842574535814431528092036583093707500671087763743127654823358539621905273404831341770395826994395744110924570268809642036897554382040451097264581555996535765018052612694393712577434724219136159895142527108386784672278937908974385173266807827907546676625249743245345696943889043003736233347412879554778434799424719804146795232326364409250169871669440188486753194328607334388211436922598337707665834664535151946698836382110843542801043652085686562026095209338911836783691450342585806463809396109314380063358913983673919791530101939902263966166151451961849419006579247534195639803189709187400401387471675272386700331075216279605852939382205673860005598748529960430992495895354596307567513759334999031301460883277772128882204280621270957652895950125760923774483837814944180481722673518907416831358136022425887163853811414484890845721193566019208437788467736364848243044825583296604257261090458626814863582294717098610059070630148347718376999241821718885656383300991949945771514444937894255874030213125560184277841072374896009139515421185195857788133954311606062663423257786904403005192803408631171859324958356817847683938207930485919760628147011131815750137239400933317015952373894550356195500734391820493401496790387749955141324731306948993727202159208375487392592228303438149719414320672958940896788130811870240772504915445089349141854004408275041297347890039452155525060947560732734397511513508461546840251597794899716191697175316408909995202954399283585830862534492800585154738204799928453385330119245753360670466006581970168295444513841678651720214947449184455952800722894356327087887078651419744279892749775799072570129750714399249946988038652527628075203782548829816072768783636690562097803812118990094726871559851993777844363682968934647843079810613852311807617239253480645269395424664527918675414891292504683003601045525109040021878636387829685057848091095330818169225883814579800738621028392736274049229101198362007293073461632699475677399037042212583713539020549622140698796560798838362631240882223448924569649616172800892450336498857942439923055534784330824626473328329221796257088440941007065686005148868220147458360433657743128586623611723918498469837055661333933761848590154745514669936907784725450379220894549254673876340421663221027135628645542590757108276117406928628440948881380997571866484165784957198378681881890193216002424621316796235300019505032493716178863195456654563745671841089643551559748849310224643406545079685656648280255218849258087679978702482799795478044194498413158454440598241363582838280986861719387384032574960025452020621495636080223124250656284080047812191977182775338807834266282136764127327960089843965531275411997005365312987819851338877998525471183032810613344392752284650945932664310719311468593957387917182130331238375056995268747137418034675169543957800346060840717787895864381045994501329241956400008246541352048723666491191706033863558355153610722642888020345357070829070635670148695378797586779212096016546201886957093666478806155543777970326580901382020000445981287137345430414616739458485595261849148131634147447982910390382319491583936939091313857088549350393961179725875089900646850395066194295526538224367905951041250412180285330957692813214800624723170504414071316013715761592875519292136341559958806953939243996787303282576544740692541345226904990179408694006902266609913274298076776974620048659693530649442265509009249202420275362014745292075931150440842117182159645069160422271280030953048273081864120009594884752023105264833183368949751463986169219527748350737212407813600654559893956629396744095474875222653775067510990097039579591604375293224954777641116880000854406985079319843345501799850021752371999814656819644048434342936340418986465009670258076170081397483191476549145471245453766047627180314415912054760761629747714592595902020340206307637903038842737188043791407361996007290573646050701146067944454978426661130434695549290801691762123158932872467415199745975395297110616796282024374017442255888910577419338636529022410173370324797979099294991955346708387731045753777185988214018859685830494477417511049960459101083763387190299624677130896126485409087118412819630049183814494207440171133401283666300406079628595888507259848050570239182490201022006041551712400682585478837180877480549176275801302146181278581498561140528217750743411864165920266148167882732344740059855260926472270308991283497677985511080842301175951622828406956374843493061009417120381688482653356486764506136161374078345872481779004402667295670822924807525636497340734684015423152391372292977740980509395933960669993660561425691491467091544857946627126595572818088600816277387594949363790632506340832318419234597932042110935755084592026318952670047474149981853431213815441158760501864782514970813360631265591246107493907102698270877803313120821216914870112318126813810230798120635305579582325810822375671464718458833390889309418238718784242621768531222595911716914740640798760740899358763037077785084641365539838100825949838210385750260993178752574171663143549334104871250242461396309212514290714161794721154932855580205978545433647252346041263223966866370302356725719499418222444479972989358718551251720712679677336098073288121475721602120518370943063666679061303763376638500330436917371097347517392096760303879237797646117959183286091535970614616749758512886080101308217969141920460078485917185343155470007095106987663294361565728078675271448791427536105615117534039935569055469596802661897805726858936567516289034160116488426544834047090760084918643036954347899831881978298301159909421848035372511497408077905823682824254049629997793365814080283538998073846495346932947268679214535597713436300552172095188305496190158178271738239294749063770073378447500584036332720228575676834923351993902318799164669876924945002620036424623923026892501724274089024502190448060604322761765990247086709877026020914354091804113148839418547136959985923488242559306178271221660772881370665560343843873783966678984345522796381846047012989011331673775016352193695594180299594184581274297128615875817124891865873146636909155667869827427608133680637835537514118395740314587285945754187220643102012291654428339820003276988802312549150604474178072291266110855636391194845471114662128572054027137050171496548506784363295130787318002289967273684583826134812176998728968154219962899037612879835861558910889081829043574060299061076494270322188600241252578845153004099116254177598646568978638936841326063485935089488451056469103852350487549056467824378484602271702724630388261383830575754214416763680436131710356010991701326846101296425160958953830501284310908917217545478340671862601474391580532700639621281128500544709725453607376456870145555890419168861048562894813779881355050866198277244511100377208622914283795592351205579665065633621367372585322100682263371382876237094653594058258291520587738511072267151679729329915944853668611221496347718684381535085198972893669403593518568231106576008730021363772401361146853932579891020046552514105453092670754276348339050882157918605929917138417182249443754262061130236185385871913488928582352022503721443687461694856164325952804478938522813079005689457014998383953199943367597112547032632246065079705264140830431811443162284450089423276474620919308279666779185191104284209263967373085621769970991268726926375335067512877775432882528763254911085359864421936436577955536176633825399594516629619380971622225367645757666957260719570898745101095635576973669129909313116365413079174472813383111895820560085194710658862193493799170297224054393083228138799806695736243546303645980928365644596414368047611516739209070966076095495905614762856750587789713179731237025738796869641143068586960003400249123539059969270489284009625014321023408404191855360519088155275717055631107775475521261941564975244756977930760847157713370112997680575416369222787410618590138821315471099284312135214192383990978735659846637905757393482700922467180905238378274166624581255005562548129787439311639486733332337406512871713877028663856543164306908836891063047259831985141984138532812715760725942597001232800609898704493294279356614388335702100306727779119733096975387547989867840018009216857243780262036413941386401145981843275617964711794390214522373319770972111100986463313527124278172127107057015736231495916521973932388529544904186778240374161456313879406739518420596999533790384582799560132303043811324546134569992601203464115398862285713852859424289585423494118076164190098641400705157592498440629735666962347449490670283375984692622683802316252970591579533503725686830891628741714890942306581391448095892142249702509181496784414390195711020906159328019255087547908431120662046694959424791548678875202976285102764198083006577523237975996767401572583275425484684008615991105415450638456667458889918294787363779454798745658037391071079385597689892487598746471103317044413461247272997953726283915043499874796907861846720257637190654486860822474853598090705478565461401067073486100573106079911248213824629337285596106218200024927042901284565703640837124684089818819860931789208949169403246233827718206474713382324282176189533815472838536629256361494891394944232612945966273871997748439542824380688001308379771431521710860058520308731066763487099031395751993312393147236505404538608177192303866697298441352016998927541986713541533690293597535770077370630469050033780025519562759542907497507382666918934167918776383938194865802335386144804566827594039241951420318465027970293396798640478925857942780113855283710904442864982554471161936948289681751274197824956933172033238534360392339579760951564328730017910977452740089533343944693242184996416124489552808418384030120493547748818639913643750425976911871102447571615470162383127376871728640693153586657269765506769927214855226022098319569030985081545195020779079307115113804462272784505773922993164096000434574023501162163576633590167341695222455781645614053438110815292753841269627022421059749220682813364258777554300183821920804756974497764915314218205962527014704301627996169413311170253050897554203785650151931571053450055155050828181466574526610775503580927367706463425497855756013634338552380749615103817971388839211915229323029454933072276460991411238890077164143897338448848859147443981802775657005790731829705802647094776259056047236445628225440400955559511933629178677016822807521131186443486868979437675478030507572418188312567469013526149069431623552725202890885698155346508482233165544746950028184065382295428757459421662413611095594029917827372885356005021031462388017730732244731414601990439151477516823538765062651242553315446245889351202290774510625395597939957875131476269200062850555141928593900266500524917679349588210684947197680462418901219436880681437662191793910434869465642855372296311622894398405512819697325181801197884431457231103381776116928644697840136716952651699063165513474340742640592081164759968906056427352013256625572610673672136477644116067538074065071120849063195684771716408062992180822439451554837882560320958069131504904939747487856415381121618076371935043421427475323761486088741192445481974401632095506894197367748002076266594868817305383537687645356055445734598597717186848976626323294955950134284336040384329620752916728325672394130862679805762312282734551801970366932144352465748606420476153130557880401957088209864805254561185078511473757555120027547007020620530084999225934087211560680056831328771369580733884110009766779740234313306590674127561334621988170141170241068626271045544179437285702049568318497116202736224615683836858922305137108972740051266652589693864047015751829025435245959521099071587881507464022456077168287838474470628193725841315742758790470504140826765315300378566479729635400655787284733868383849413862642755320364518773832926258538283601423798781149970455793904532722554640319548360760179124332185899934375381152232537179211852910886887089902514925394462107626549354002162325643001406183850546901874206949349683519704405822776711204161909985439868911186795051879382117556495313958623466962590925028679960451908452599948886807149229649151493296368384618129644871002332890115541342897257332159557629703660033933775666771318803172112294955027932223211062679736400103090418939294086376651631790404117588946957565925179515150133607795272467364627772598209280866223919429223613606869639839783640646365171693633866020153035414908539591620601146229555505991201510842479050097548645390282411914360119296832889952208477051429694662125426413897415428438471988944241330251680296759590507294453512394122264651307408158181581640982132511601851331202675497290618621163740653661631853132699686699391651958304265350774132740442878731508524801172756935190360872448254965021305832304243811233077094329853578540708002769397343525113822993726403123197178781708818090170693580603048349072123719296433658598118892160450926060175595845092513985799152528937756328164085319847776085371095689823920575869897282338787721034181116383055316948000099129788606110712773225782017104206695950219192489473885955981346869985091039342045327846816284257580519255519058737913889867030488244257004571899827008577412532474277838676202506141462325991514302366176728142485449550284379603511790312990543438804780774064742883486227337842254053486660258016194487008073189061636802640643307227208688627600357980510194500014359440825088037279247871620072120871410788132384545069168075466098271254626907035339879466673723226234025230095558508266491892606788886260802753346502590350643563315971770265728478208543741495231255010134198642760064367295366882696595823985474809457296419241845077129340213227231000441797524355527015798158433088472059436579988527607777906164487085049558153685784096144574074133709614704575448369241157626939830985167113477388761048539175563311308852698562053203185017180086239228332662697636496791880151325746564317716095072236607090262864095002726593005495742300069002921234992479938238200630548548441643369802395353563044612550500872608967160591691058698031592854708888627051055756416903025610184948709444232247362686253792058517740523854140802853031156727765548166856030542764747282803701390644374529684117792897005130747833829085238115682657242638870072220861807611417896733192421143065795714215127186974794972471730453454859038833131555712727057229308392009394152240482460338123780260773078841383081608287160791687465222794919310458379856853165020189396964005905925604234489874550669266580658499106291342675467370946687818502579667404512598266874768978636707215671022079071981353047975294552801624194020268022221300273228753956306905908195167454831661443994643613499630195258235747384409385383592915602748674002427423771456993938183591565464185730088103905101938060599971443544234108748190072727898190311315060364434484601751418225172748703889901886702662967105835828735529173238505929500481495641401586378613834430573165022809231119392320917146306980813246083063682367064820681193170303841508397853367545977552927799392311318259590058497543262684097740262674025881030386897591083066840551304701120484253152206963294355013382161745249747845847963512546756518567343904272570840595532061319369901540388990624134258253680633446936617101312663234871358835767566250496279669437600297078113372378705502730755477984319563245069437078288849473853441273946817162321627533221748367140392928978498224172751425481674872873990233793255063467195910552545904092708199758242801860711666308598160789966951908862766386593491555168763114448700880672309282914110986771403545384714127016479645743439427260089847223391515854440957993808324033593939806742767434188421769179108152750080944375661863480842850835808688337367183282986215043639776794591305045679284561425708591214863997326584981122284286358194400553166227826063791650317028548356667524495114317281144708666233060576884640513390503561488757494355332362730452839420771515942386986888802493930416714225819405418520605421899922158639494593580757824361507017495540934721399290323726412197951758885276545551997462193238141295116268480556961199092296733599485431648842392487463167017065678226088076740101441740826672480880290323404262197603950879024713190019011425464419748789464655763814167853179630636301112014554150964170601395058593431362765438029915424051693691687947781794877357160100656877901965409488757304221988045994283242276009493522467232029781171079229136014265771195815425643223309719699411702504804296739028347948087110754950948963957746517238899757642066424303023283589445461937035182248388659563716499580276194982168284490190983987741110841638615825003681609637686128055596502857325579142274438097906054372238483249088600458554962303363587705677438754337628338652711052945621234037679316199940264328628991364293036825108039456124721843264918652800963160265060803177188713569123826074399692173682782523862814069826170102852332526811070940740476920050367367143618843768616360420296297370274527588913850658923483354653972548510039931847814760686386560331312607243397442037129621241069428729473439341179771051307583046165297783406239714963264042044394383548326143924710524290526139447876022029391022227194495034615494085363674399992039256258776981701456169584994748177856090080185991317894647627816028918228206267793235200789002845896413818470488814352655455734728955180323891933732067015963693244329626564172874938402124063155722853883022639684110703726226927134636626741147334046969340895731538816390070951040802553694332747888625754375789110447802781963562069472937977987189392871126917100220328325833052585424370443575707783359466369888408057625168842992359401513092121104547572487335277590012127887233254638371277290381621013648497837283779354968027870980092304304301681926112908000558999239041384062760201879002255889860352542570252863923949562327063487068768299354896303652817839926253717622423845868272124399890362006826155096058767938914564156118136609416634449128058202818879107758642251144915773806295963892299057606862200661884596961992045900202843252379178191304360848422559682142811547985958381780504739281381390908042585867516756224001455060841626255334728096331971210584940929851373840004032096696227255970051818930785177669316253990515076178102351850015246468063366562351464847838408042696784358620131153386223281156404089590736916530176847920576459000258764628377108470469151178593720993325465194570148366086731626356706116866097911789055345820529039893694610727949194907111663305682460743051959957454882943580552755051952306935998978648148368702585614641349351894468880242387536218256163386300987107334288286778849096388675553436173850091928419250519889715821172967246921800843878953351673838637811078539751745978788253931596296506839531810969288031705136000554630030729700615450362162603868623634430482976894123531767390134155893262694639512493476450269471542716165045199647207066516313511381325034198031174643870983686463032400473532009252652599202798185858927161632986426642029804813318908695139258715057578693807015524145824780151842252944996766239999638156697691795509023138229979878997175552007320883305478304303044470045375404283335607975960317667962025375863952103610086167836219397991912304495639274736250829878102851751027623890162034171161838554889636061184777043265601539979963145866741686104886605075844300929784549062408256977040388373770494962563845186977954557167139428054320194740310884648690458306203223597510632518281739230190185237431488251648832817498836631351122140050251337260074311540488294759461299702359537532130522789741024217921014810268348407507074890418435648718839618185009690613259699284617546227910283921095504432610363127794160650273539875442358870380236935211967641366629922210208805359307407900223921101722088158093893216499399879471100124476560513206053456169831025069712121811322838548858316919852406998790281259685085421136263169065801921037188982741649580212273808197494235916172378176383475615261686214570675056508681362955076405451644294326529927830948269863429679601230131565500955281892359814029058676817053088142521447975258521253229172987253176578822090271584753714317821446595237490915578048528454393637313410863297872504747825202884799828809086552431393804030599253301570656592645375324830977122746271118343140966457916898735400041087801567233536812255006271653848641479454656094185625959900454744015492938979595355649112554324999886641888920927662733991933658730537721580797048154538541878345423037726685217926961619477917652612361995784918389061794862012687593368070388238817082333621118708773859469114637348124798912205647092865688982491878095178836719131755679709257814540253741169885168624478267462604042774778558747227925761139916127699200633925256859554509810733129530560007013258441256748396653264872308237480574041393174353864539242670778315743917893501173850881724009040715306443845144091001594697249945227939509480620049744338265724542092636809094903319484864603118031533477384326980944656759300731232451954849308389878790139122675415082894377918654414604692059811310751142428523784257814852542835657166000468663157922065556686831706107292873923397307383834477043090562780599717904538327376628572778110144174504605268103507705642191268543291193068454713180294768602498277071297424057501526196481360044744787802819551828104996367889369328043938681392996610421747896014249277923848778385895100375056676720973355714484922396844790284409450174081880600191833747119197286949979986458200230405129073386679574017536245401971678906441034595275504383187072392530282559453203454553733495407210936669980705442134895847291151096562627736626966350623746801608722261621853328617131694341407012821111956964539261726315122515001748707744041312036895403474391767026117836996744297323838088666908571670227870597758882855091191345534248624835244898025642499853841995019238664548281997011053204229632971539272540149930565067551858546889881304770024930536923661293524121059247772354244453580508827070172751686948991451820179955057907495387605326254539711111465373149120992986006224145149511253399543356582562609143449381409895297838189613115038243642236447383535861601576444233063220264966960165525690086082899019404979218040542083908007568673433198779687514817177449381664548391471268079222014236468514522948695782974314468889520556454647369882204135173401080635427075347682129444645224743489396855673026003581595914487439409972307426616111038253048237603885291052605533534891036930611737677731638688653430235377408027262798173566453991241758788836720078943965449551552540504783824623801356607715600726406313797212258455996880143464222665375498571381008318479956140761945010158435815001776267884433452075716076467268485301493525384526926261409991340908712420755770684528717931838901820351475238156794623755214159517301088972476737608061936879633958156866094601009362502961054141044015694725742348024324921851725921338498628967518597144836842499786525117090564874598524913345796502492978818975363392541348776956813480110049411769963596883280104977595830422422864407705249044118589702854328678458267386952548928811558527880083921480009914390817238013163257424902032644097895817655630777285007695038077057091776953597933639847223779028973513586033104421569423228305068473961788329540525690012317063765587119071450914359182032703036418759403166250145873922905223556016766092597239783540159565414457650638232394174081947020877043110605261059089330612348577865005158273398642350961754339540600681925296634161953457686291983708356115281950254329435332222502137107365390345962405681297747393465635319356610619821967046983975459603785230978772955242643931051242132594795524107999509131735810904806584633866589986930001689973023265643953427768133280692925250805913247148109751548821104595069580457686244970041517304920609069802483884760704948166672771776953376886189279654852991649941659885772312151446416986337821052667553702689574841084558176604092896876994445007637912782322013924632808611004964230000780517112415684773948962041275430534009954069779829805297192876017409067869242165144641962479041277041723079862667915234118368132734367936487202923849936367914090143679253129478276481380802058847750908199058482013414859492058952527208476886054837329256679418196297697774646169776558336611316482071097498046796509827646990426764494499171109490335941435932557193774689225884575019574271322876699570516149668562269242190347056738040867689030528845779462424227820740994682575638615821940506750080491871489979921517368342103773890333834745396372151878059847203577525425939863099173512109321650307107045182533504993462152259454716741026422876595293087755794001559328145166990417204619494992085787237381246919660010004619653068477370645382875967135661191577861904800699518653027742214263763976739828080613745777633514413237813186771454628892105569534707022420316922934706946033813044548827005383480428067129543487429754084302786414078318422655342979024497907110686943500707801831934396563490787624864827780507929614604937224142966295385488070830995564347609895092843863335834070904376478446088985679480384547453244779584991743393962205605974235372536221678043718595611541698519292544530980079015141418405003031743323697274610282402804186429866507425270787904058812386804098808754666846557270537908160780447929142281645524325570683651251965926097928514654132337453468176253471169184261516663008384829791923120037724101461821428767840826319639633407905688677849958042684341884826239006299014812252153609497378559476276021939051990557024641539607786889354165678234212975566038723123239188742908303328718804131987196948263537835649604252828466941092487030080605535780398445616156107273011052392022315049468721377913826947681276254404668715218420843788674692078487624841654693302177953536110538756393760705924625484923481281355994520888671158886896829112313671929890877848776534313519143611124821787232453647726891698133642611440959350648078444507746550357301489124034256917034536995536159362139825409382092429055375907679959936109410253259355553539652860319501961177796552113010169642470459780555036105673564865195254153671599732188192881977392386208406752574148337305594401751238603704120003341464433991865411985227683932918111602947714225511480529521708347611714336397830832798471435510788074039146401757881214947013945700036265243752107346848384240295262836503104653169370200175888512010870247860918517099450540771617882590151496347231447619506548674549370776251505631275152721443855115701238345260567500267780409797866576114515651946879885603602428511459383836801863310511648577172592023758706726984061072184149327152655624318907260962093086011104517039867562542976305365832161922595755068611087254397939692721410637265243453393772429607619844760408837994344935531181321960425978793881090521706500850500080977931535484068506902186866983599428541784600462111648422005506431483074216995349448514630436237192716349792725849502435483201499467487683445605618197853955562595698861459112841088687830805375705432666749134356962525917826348835577913382473966875438552351714814307925674087928504700202567971138393342662855188737670357247840225354211569480852477105443267451765322232703252962026809658314180720193025801081450465960035581708449213305976749852010475110870123854466324611825469739961711544063702343135262484139794227657395632201813165108721227833910410037680704817193865460788622595205431016027973951364296753713439590291234591199089246431734757173355232951222156351670025358146709294907047470200313242878850241909229248550282801925646007063631629086619917882536978107655469941970437278799418041795388464958712773696041697799026513826952629033590641311754537104658097359303830068748093583215503489436064255566805304461258770658732495358205140483009218092227314738388342470419487727312283834925853531911059857523635774446074771247503520047373037165192993840287473812064952081388509362338612401481880766265890911653447965848274623025104273784971954334099868597910045965629206908148349660184977657805697603333334281107651517313139213104595995495979799948392557769653516574915286568648213254420811561920474826513592606735669690615932777812124443482477051923400391802354880887424368433292997752317720446464533912000465205716778740317970812104283070646108978864984540769938603591171117684541976928992051503543156831155627007277163917257334643170548830807830555558371772662048993848732059265804678762718653655642385557637821083295861560304525708948622194874788038812138339903955973622396475213181664014995565170196025346486056590187516667489485301254001263764462259460273123430270674503479005785597223612309761129197671053808571222375119915676745294213285210377871135554003804887892904068646035239388634834251532186888158217088260123486867464550541355274921087467402689207224290111175889573247648841057337653803815433686351243790366779756533672719661653232269324475232730416204427099200690143627461336322681825247939902423292555178361949378290057965535807596999819833606780552504409768136088574843634413003468522899483093639547311774552894179357233750779456890904882665642476256618927845923679562658078192567061130472267941695121682882186004018907000703091937733097800024107192094284052256497359589952257262507132875087718453954302881189724205159906305165810182913828360723665985712437787294560775622910809261901235441677150177902927939530373981354769296105100101712834872712212740856366314956413263916128104620846406078589656361909725833949557563052165712221786840780842539868963561005247759154832210275821930852266375683013988911134987107716479904710391387200934138847267710876205190814449218017004283041642598121995039503490124217753009435018868694257401806281024271320994859443305574871559889962792752006930828219905620802632021727385523869218479825669370997064502890664530948213256714200726562608475580870646031007813800096106438483557957690732029162063144858391685707563117930641245441903868941870940949046218180526681371483172878723091538786557145542818050022671833226130216356561196352973706931286946828209598081049664664380084100818602079174237115397837306910868757247050279198921969239500404837949988898194520109113911948208667681442346574417848904404797878349671358225704791811017394620261842893810089010844076481698278168269872687413581691953402855579314133236440138884253538374321916043363572609468996474097317201138014952303898130094588947020784199860163938171385609222047153837288714131202148969176710750629069344780886039674234985892328114332837050593627297852766456960972579287473539196657334228050449448848668366551550730823384122355656225704834189681528704814898555723396969472566541739850415773088714367720186227367145619316477399440810433643572668813757058587371543952288890766632296213064026170600131535260670861421173912785136374643765531014755251906078771669428247139361411919634276639147663381222454658930495942907830656726196761274980081397987574545582781382233275332501027971479706408437111216795960756320292979315213227785463078307706931446960886208572565475820347411101060974839952112040425119396323735683104277333863441535044087861795695095304055712203106921260288644987420407477203762220392313768896845856248065828375576636461792014739207245324463663225052615143580717731526940192434117700755316258961268093387512776372181372716157943651809151453561677919600656958185664757321914106669715014570930159203365116701920791867530372823160375075073483356966736911943249571594798862557333299653316847302743875758762658196149903828240292781186879214289345166979046410336699271998120786559200512422720655187136527545729377481793521925027764944976339331188261092427582213069133371170506232952843624702222301168398353850077482513294477996117759844402413278885911120377035957795939581287309396610537373280938201291944112428435698578109718547940266129760218378513760854312513907208477832805093575954569652341138475419500545360607198318324135742574050501915034083963828267598311296103746105661377338463412563578469308850106709108781293664325236291165963946839726468566798488726136713424057024316430329156165564191805115755082626412265555421456139075051992337800029328445082171874487741704161247295342036527293880054324284400677406659323877853765006245727260898364957156032073744291328128573513505266101438435351171800027004254331887959922724634150566631125929581924298426650785013930976731677019577587354048488309457684572907736987476593674643008047246581921514687224160348856753201245260435513400145458446637330273012339899289432587692872882258228613019469353105921106470365682516428026586962923562437382051391867988870451027979053345384437501151210946528701131905246094092217965991618691678646695772028079467387379361598708232026535357083773487161223338869588993012168774668066386879323295725054049467730878910989635327861754471038045974895276744669991160202604228883370110587364179470341562656259243825331812190153907688999050705912838150885143797156114956780239875369954362353380623498950685472821381423351296522218711579879217483071208203947117028518348769612845301884428900088686993794597494366115720188614731115941587760333594944851672290862159377305875597852528958367679373931613278389528888645208941731999142579945967814351747255177946270168225950845358903485199679835953933496411233091050031300017014351565815968336344156984879736560364506674376191324912101759565219115567111444041267621228568129823390667006087189249494813389018788473550200879606147975105567479372433872108248112520916776533753000986868847224672364250176948342622882150007020765437055335982843452980297382606347912546354057365496596883176812493435438588118523769288100374650051052040788963972501968957564983539808169342128991245413132615221789804795878665464241624373534377273068162418244468154203591669118096248115297253074261887440036801322691271497142973858869242286343670042267297566444467212543273120311953576831887751397286684840106989363021248207595349145082988995790330625384344792300355565930674334547911849804961949269318257759744434739200216608698121606599797850430933162703304604147018893713084576921807958112589332722860933629509830590623534241362949550374710323127777433622282265217876355973813708821142049461193923688646595059382070287664756599877908898776928418457322054881569029437943193496704828808013621445540940631519216130451296105410499393110649800575597340309577519032182514203004787020644801488201318813929408633832966174704915748048365831886033390697841322885887205687360345532401950715068318869678373393860238081345426512948630985653573367876408329195430447078736230208708975670410742150033976777145943304609810329302615400509183577333889536153092584498411421034932306406252388744481587160704228716735101518407341838247375667992654445595236128774417121344755632839002429933101615576218473385726484092736112534842779947842215082666144360463895848670622214286078316301047654832665375358047132815755739078680801227946083127874228354177355447068806126641335504359863194596648736000083413192732804925269498705148016763297488331729101262269947977258460283852455279589514449465655450837475481008086217457496550947770652587688349840555220908801493993218296013209258130642766328248737321327913684660827710852713272061908491657076608920283995933446245725738839896345014391963954023467626576285551713220282967016195391046897167444467323816675497667438000312106298232354878983212095414161659067537101535426443606924302834688783213854258095084605012412498604669807436267663237227393857453623419397535131230580560809908060031801400477788360074179766929527444991705057901583593969970690676782528135541455874143238252629258287597569399562555258331438919101167005283940880382492386105495752020645162176603553645165948090890086947064422991484014993640043422727116514696860949666453453523837307123942363197412830327578936205376268883916616908215578590493654403675568839471953098762729404504984201069166289053111040063542722056380155407346478897094476717939110302893679357014228038310796358444834413990050932660111130511392584173878330908132661139155016501898378751551870868089704131777139936327494746676366425846954282106696619929844226373035511461371491222249544256217035135288041728378527978137388837505221110510597704542620926736309819813828070036403930306893894350370797379566170736553315604177356987889048699971468105234896914110654710044804234529699154873891707799783516237191396623934102264698279977634527446652047492416726751337067967108719013688418076668472476058753404681432573837535011882138923058814948892787461543946569418772305716228358558537223466820270994030377289628115667434085431736453706992164577102511467394767726214597862554127274995604208744831655953626786601730922228444186788627500758947543889130028945884414337167114843836816305413177794344124708388032723701980961970079788531159497125637744684495363270307055807573761842477627252310741959681817165029656835571055656729921484544954891556850642720072810911474540503870455952142193048271813695848074025266044937461824759110399457653513054706153270673029483536201965161632242033724019283318807025415736934922457603200848179434720028626842280661960047584734635393533337128163585847808042245928594608315861561967123514935596198798434290854469942497746863443608771871850595437023453801775926910665479675974005912159790856584766197682251493922646368955774657664573217398616554203912344100767863218483453074151663607638497791531946608469335256343709204733844136011208692568813494564126742123954024069587953646514482564762916414342946010482264157669502036258656320379194581748144640431651751987391437173697173935661704205606472237726755515093303539837294420071022541579329269840941042064720522701704576553741742981474097162923344626618737440328606878184296760843200533824175632417167975304721069724437520310870955399921292556613998176518969835386232089663333682748708951369887048929710255062027105490579698781031080137389265011880552332710725811003277498322701168236260282411880384397226198316816800668638118798335246855026137039654111962457707257739246939882043897491202380415226207098360975625305807324587747240200416330291243285090529365789889790244509098597336234018395545198608360496826827393997033391456310185180829127592098240658495674938266307952330666330279732331633451947926024386817208561916553251840648416068439679070465163264273557921129523907387998963369146442968207920915436477484359211560419611371057382344682454172797224258139428806704002735458648212149216290911232186154926155624568440050822456182119093391169037028804268833101809019936723970320598710054786836901099716899806912135797249022802679748907595002818494523617513625069304715091773039370809259655965080139931809962599103076141595080156030906020865602668049192917451063816959303636514084511844026230485681254046772499205778303150887264812965468339943752463819444891338056714115816288453723794239917583496455658666995875309634808042951541631035166119095494773643934594044930222166300826889095480215085464063163711807727462578870494029063027213251188554823494898666547089504681106725145071283214227842048360882482507802399594141036606842501448609720393608586146273525878662934586648759770542403308351116927755209680289322927165460319461925744471445461551592802457899035309536367823008308853146400583103650292595884337579488033943850987534716852072446286427124639145112060362682610336795178926714233354477433398596342360959965965387624247114339628093005939411118154353572901839493457916683104222517252952358748658133054501764745249581143656985699855108773694799957851395824974695022962240317589880202198105613322736002907042844435298293322242888488226913929761943327295165831642520146343277884703358468956227083147257456230987137130200639443378137405430768984100869769033562606608736400216673991632549535176108688738359839531002011248977217679292513579779965948144374761101787216735921235757118464430851887621661102198260459454133467719568063762786131562036829970673358686042149684457544516711857916784828242946253476083122346586958509714504227240093738391835871378803448765093198612996866419805403208365464222474191786576360513016163654379281371560994893566435697005869447122224974738227430968588152791646471468837538316743102648163566427527522758656818980375357730053533200862060065616160014695087721937866913127353512196132282799966825284119770371895226848151367636361216441949563146668655773999309020965771143622768549167297427444378888901891459129504516611681020224975149052565521574865764324279856476583216758086126272660752660817795457589151697611363964899172290894281409662440595668815035365990657998695440892056628095496070211120808771957472087303961376217338304914475281098261856785296014709663571261152283537250402647345725286682931216011301603833254589316032259532524144871016843769171862760549028944710724252867550812694949719893938870713619927189199771236842586079327139751146021908862292480445022945945909984609416391744265896183173662995575641221088805773948407915335698557805816583953650311901015869801853919670145736434098596990551397478253123336412121642351562897837185184186557188259896731105258004109263851100253030728272846693976983365371958390279059319089406603496810455644732346144464993703512176297994913081416172962292723113631228047213947607776844554275599366207355869485935896015309405198179175264106626856720265430849117470020250101964803663903093789466920677874589747289181877758870665017096778158362891255967956855098038296710581353934708484650724713045221224040234582272715804869074549451214366095091785646842336739347378336818105737222604344962727928025362783070382825769271196697493462495746034311890592611523519132889033818850018105117802594682634172972254481663308047776632677236597359465278182669620540769683710135411760869961750363230072868232260485410535076784563621239091116048521418780809432055944442077154110675481182444102893171826641209182544080902101766845270738501153749880364940863715912978673539152974893255032828114031231377552101824537878205479510565461928537376080521607899492020972498641952032254016605957091360137356212782080485176144432762812973431703168988730706172643531143574030738575740002792645610006510465153925346097940855378677089999300461697386601718269765384514711848606545162132436429152835375862555816768453311307196500548457122201405558799647303978522264975050909202982440358492542984243859011926959570048297525182937127876008332511864806023959357985435038048714189779423435855825904500873348192646719299784960955229507829508113988347852739619643726911847631797059664362285436054676543894552846771607102174721549693105086352117362877170868694893275941164182096798251550814138133975311224950073685713698743592194380331854728941314906286443815576352592063172205508266318058909296364155849483975593002936716904454528803264269420428554686414942806027300846042650149317928162087114675980267964934872706083731606161855545344541025812535904618826040676387943813378646404268484358370262911333590137998891890470447100427935677792244282064842075281643311757369326929892579048087207285015644621418061970410053708388449238673325275517226451353979573884178505618650107996096132475787719961619491773647918628106095293981683299279183116863157908303209041707321749877110059801880853529761862685170859339856903541639149341389101413391578075796937631579998798379351673328979281863872853144447978558058157902264484985830170109306774603952038362444780026122082663415796590510692198252388916577340870131062795172550929472789516606055443587677173760301038873671120146812950787548429342198515752224974471253920878715503335912734114910251039177391007473323302147585160704804399662573733619817696070627649930928462139106584166518638030607064485177759045189947024805023873963399802782366939534855846104452790212270253211491520405951674262720896657409883180332061722267878145124262387275886105811294315970125782807599508210659846048253698271383931964728015327378769017175461365456234152775560681734359150972426712466369736442209723850564232085460168175430193407679114281069064416880520456254754560647258880017931882256219361039994070694916472455225503523136089884863529682496508457328433933103241085553284157733892352351604233176489893226678233299631655787668057850715962069061265654807968914412097620626893056596417966400062081965897693660127587078776565619788101312670088835546219370006314435592971898556960457923382022388373024313389003424979588989517804457903967718469833403809589834549927620540479839259076573381680006563097832879963768390609718028128831672207277156418498886295780712979923719363347337182917934856251235092161352287385508096626891674563405691122625342122113406088764770030223025548534101083288038542989602145230460501051040311605744686168187347897010961502143650234654894462246923040413501420058768316304967857397726401680868478533746393826222346743380373083547223011865875415082943489741650571109512721099030818646978350077927061633338393571621074901442888770470396649241478563535448462744315473960414176216188541220418363548321121325487660811129102414387213321815724067824840256210337137575102641062618089197802734960698273369600271682383697344914670460247360101034877544897298183192187351685282360499605273785387794050132027292037532230317672268502692716776518596273893298019339960737478813386479126479475125324688415357254988672112788433428196307331214316297531478834789343718557409887752606027472899104707311576978102652164137841693703504040055936493553324296788411910870075375450325143920150964164095908766346531115652269908019035887181166059759372625735357730915189836208825194126893887566368345030820525147452035757004997851595087028780463172606373859995534848464490867569648180948679975525301280322449386302679267604418982005245066352889568750756893922221828198039934190183553645953655710512912344287609072620604993054383698642275232904784317047472989473872732680723002713668574194609928018131462774163101344032369601321497551673291023049097288558373385948189319180680368742673196749675248918656267553457557639760810236646842287628217260872665831055225816292940392318645391464169044860213217503380759474843855761975666258677945235505023469021195703993758602649681865422829385072475333583190260080019278347670976209775917534801787178234247291802327013444185405606321523367623567604757496001746102568582776553333346068428349449720442158281513471699328532626123951050078425351018244100072837013172440765229219791173455131242443543910668913895723000342799077841299104840242046843485386357250169961213048322505819538556476322750719209293895107637540669201618385016238117833698751750093402165377614671367517502151818754552337998960161423345030603241429218634553937810023946619523115078852881983030831281665155686457522327982804666143810454596798186838102079829842886983494105966147097160193190676265410856224240011176987583437352524468161886946769356468134048760542465131884361085420383275599699685603334283368662790946988853396477292774571524052168758030310054584715638100447618495055536874698189520376433949583293956667693715979308527745796447206469510597672014028207502822078415116579435503978460195051911409647037395681699849171095338787704245028349007670043466479499280607410646498555676644129841437479304597019867559956523257506012287251421967274132304671941237107956252932911742531715783216146782445688223071665376483693796191941232696734490514950069253788442817777931843004039789861700189569049291094891608726118726245884976080210826664728484503183779969106397845138514925588154068112663821263164783442834442745393297984600184243161149288174007861096291027222833176163310759747536038710894302726905704640158193671215469352000651228918153655022477133521562151445901321029326983395357495103906882981374706999287659674681302675126395630904750248630741071504269127750411323461974593877767781778650557897307364649167270289422789841267743375546360422264476352138835794188493256809460554218543261095979798032081176755428130835701414220172571596337949078026966006696719186809194488496614073744956268264318740253432617450623882980955928368808701403380486961215283957446214832899640815956321678632795102949752485978640442384777082952373649855003987987603856527335628228957726326182407588259767245045601272333016122339915747169005286255483770309810801732143524567818411800211521412499365932677531905768292600903523865097610236362831183930346726618151674255337556042853248236727724410166237971565825633525204202354900224181891671632867106993285647935752672919114128119884918025438572735875690372246338814416226253782013350175042531074465246985230968926629031756542811185583910965289351727358496416911194408454259398217409634946032419909744878790782080317056371304836930074951182005138468471466626478399230218795519678179958858270274011332845113558631695081527704912206916900562133575704452375231937235303870001712745057308018967297497732961829691440001520599633654578957717146826543854353923291610148645086388946161599634815379670173458699376113423811756520898387912142602793201380832085272201618868646865005359700956989158991398139288154860979413162014387224582908530394068182488864917039505934581468984986414146263843723602814855530529059320243924329345631352748816054520263105603124033951884908210430651268190568087404806239689928260556474670624023993017430230091947507895112126384172682357627604688956590609169831403369959375097150926680445693785370165823879596246439764788672143663810509677777387688606378336883913525737401131290837345095253207068190890613003774002976255394751332492855956885226216721737131205282633283635116434287461624822987106727357573700796313037884048648534126774827695500930264316486973028893885135861209914414379563483427722599147192881419737671551723813727901078163268152300503243274019066319271577094490414170539338402999058405585456212869473864056121242296189638230786422772057090739887736990317180930450774954662794931299536094084411311223204458649165732333687033313671746528089433206124698497348103462468409320941516659331784459797332305123776313317778073584397613603841120027483014568500612508310029338017541360690164651239221674070151327677121183583019867345198845569218970571036220698613765920974289812757545453771730395126272495797645221040331496785557315755422032508266134377325012449806405631008073221963472090500225304859805323592085542365797473285204917399619065229004037028238320702873790695122998393341650958501382690092178923131290506400186887677365793411574415402458403290642288084982956721393524770121408971337455633102406377749510076912585603119893157135211322486774465493578348524981270160963622252474639373996278949158641301437880935446926895470908601831210334199461847395043707062349556158397524122012264975965062740514427578404794157282065304002990581667421153909941853541335811959493050639120447605636163287546794705214264325085148970480900902577325287497567912329193069229271448239657285320171777216324944161490294338914296594173498335375522722268245134219436237442168459824982838899838121930940468339868184700000872337365298101623206781070651035144753934844037028114183065201744659059875971701324677656449286063393355275454002912016205470769225591290184099409209237311416929026652571631116442044853271735350927113700670925334067408356632891733320928711953236788079967369570062225108084052895441564066209841422857832417210235105153282874293771986501070601969691079832801916971921447036936722221020443073132574764218732873595475243082541207691434789879093230863664053004917150208564211581061829750711498247035387268649985387126622166943031982674254405079463413850511564583787526978007645994887632827660388811123472560805746298470055248281509497332639377103165476010492733991243626748155136305046498118645626592652574263715888502855840809156316038221459228434473940608586466035727948412685678241870731900300305068265909021983109229255149294691107946427599629699194874252776988206821157147969445187354825753422720091962884963415212020115346218097673677643406938964505146304502581757170822253370286388799916693777421903497239955656607859328339304719528535475847632693101343288241522489569464562308151683934718166466651806169362678874217785007879268738116762603841940428125227271846585797542983424793631050021319862010122659843706368552812002081943398800313199698315841350363027516206142350981764101478372357376770528101242269713993872392485880971677765000437585400513950338439319418469464299619030124625547610892380641914540364800401300817295872622203022140384881575693096433753756225738900107571995887336335973515423131821221586411755546949527700135880436619613907635192001422290097304495365517460383639292111072445892674618403804332499550942232817718041725091449805383165852102879811088447508760163247582382136403297853608311199090411208253875928171557748459574332817346773801973038140082719579615551514228460047755105488046469030598925040714353230530830040801510124107283858380788747218454051818744856445035645287178392838160381070679061605784775035721995022191834043589676163253094112930333357842044947251979616172819846730447284928816524919559410120332318665000171567044797810277530938910026767763870257784071087573986166426673814166658644287956425275737609769310192848838123315857047536094623065140848936223101820053399970773419291411320132378524865953502688693351434719076830757803129845711015423862467559946611643815833440364273735713807895419375981317359651405785969475566128617072047051966080414490609050437093919792691131378014022935334098217143428806289812672815996853877490021978904400315912585565036642588533145426375055253431259959947754884118207858948552214612752435024551174295940935432177425555621091276751968853432335939273431547261836725980308886720167794574072971371997427390476957716191443595958739600005912970715505833397514374873174442072918571710467236428501695600159370904466838559522902253674957125081480919959844483320721443449748601408792787456312056290592180728155481337973884287189346997284703794521284705148823092092711226975122992606467826463717634925840257747872650789948080573429634322910640509109376375520077081076132933526771098141144286557797421509818795311673122780611354379703093072047467385674231247827271205656994613850208662774061796816593532274549151228943873627634370681101152946774770067984332638176579639432032907900366596889883530087872889539850432408141726450181552119565030659373475272549623938277351066466019737627581791004709282822871343629778550546669523476566883536815967039176687994481876405817772385257333194580200892303413418559722161330083607781234879566159485364023963889401024660952072477308401273956063867300231848561082323263671862381759671817323708842798472789446712242422445498592950632209483829706826334212488865012300670198314046557741523025983441177216495944065045758929005093908387648602215608972424370979347017680627947145144960242814850037682887508714883267796742585008716084096299486259829640800193827088552717816809049736706819210138263458365524569799016667732982645130658189550759376672453612053254511870809212201347804148354093700914282520354531428448990953377528504501877922308480310568930281393865627994201122742607714622725647967536310214612880248881140451665505566550305004201426571229861263309308038411405070584536251822157152261576917749334005461584061173229721668367407560035026864502580719168230151696983344447617370776529045524942842372179483283224026414999730272026859432703396996363121757101252875616333628285941685734993296775629748292522205248130133549381963447018386162727348343856957115204728184128192304739675576344374546360306340081136086107663244591253179727870547764681062009559461204384193958868752762533408589746774421700544493530325863277795812776890088856734451685650485572797984592358865386580053246701072292099572904524763381270412578870994944005195968700839630670443795953698951581905626545769480538362468125238977348255772276610481645726962399254174683192208288500487590333040721874039710656933370530568103722979128143052833637763412936968871155411204308346941559924403031679791259762115478178779253864140236295520500685715078631424215511977352720746355691724003572759973333768793133718143456753700951634310972485665294598860669756918540237843852154829857569636901735337610771582110190514359284056958326198788005988582190833588859882514414705496933006290502355592030982038417250750726751431760131470258933661765237201883087303239304003741834328471612537978749008146680298666410356237786678277571339692597438068775296951967720454538085941122448487380834338454949756797375030203383618239720339677425512237443990507682722611730221721101734905754517105814407776347049435067931483638913843709162520197071655017827618299217258202635522905680087627247977078958041681779910741782842233605708981542846709984703378641271501519798141246926822339950367511065513882889120574345533840781681163225673885974828580906942712986853582020607597906104680708889746568336137217494087334441156987308857713369800613654128918935522184674909883644888271339548958418495746416287446729803906948845309641749672279397284638410761904912193694780363819806744616267538904987588187858322508478543747161016090591178931638978973898040003339565400635513871632140722270813228597793645191729414278550146196916016185305572834210829088469253144730716852305768795528540595931657556643289189838613492105521018787758835191125246255676783965065912764590867872833995901199638010109781524358976361653377279471219480851206963014369927076589701039361302817737541313368768802783740420795615655214623068666648840290135058908787303880246832094036646960371793071708173627365607644413340772441076868398853373188027261407694013504166701886902591689874100416160372344943942268528896293917387633100389116718037561948070393443347186045243761512898800312179915995874476638186499915873923315007289699840148349533624771584785140202356637548848535430044323110329222489864543854661825264158143307594311228227395009712941744499185574249444693123041817248222127847126564042383406582892226385562799197803309678247330165237954195592450380773120918165986156128478962714949633562665565548841629755176494489138077187170185607606006550142885424584661896539810495791844943104917967845971618781616449323547265939809104879504968296948623273645387189150989258365160184563355555647147788541844618822976021381124789656126029866368260686602384534849908533269425489714641352498997446511266535312129026276629868276221872417032086815205965080431034812138544222597903020563372872250977957678328411552793828112414998461923818151148603474014417945702894345006339154092642367930405819597198624565722084173804277869382554817008389390696669067896087425126125335863043245467315053231090648614463838750363684331201141860593170085758334757255639365703287629810432738539300288491150536680292016640780156630916104644287416817190088582647977665598793606917337415357690348456327338981684380123434509472494104188404459757668576485388650105489773389873811229887403235819910192366169922913438739177715997080692249960117937603081659973412698242625859537861357788054153312151146840360931469077029842587318699424566623072349013849600217010626711919613047684098688303816927482302534863986189393333042383810178917044777619512642901964732595738970350989317972173367831112809126475101492819038031300641280528988573661645954849088116233805644909341754721333618904059323120303330390019719962330039204119337572221804006413973031381775485128490948161072200760050160525218643867983882165033717449534479430483105459711257768398363993133464023733920653208134372393407175577873343182278847961893165872489737605245758498241260590479025107330426756363406518989120913126780460344867985696112119946586367211422063383846138516500650332685268082880776478703057516750802205348244029984810610605545710772016437458884431330112554724633477053792101523087951743689992076017054472165550858108886501340519078634436605128636619340357216862590439382992936921317569493683169007822714320331003488944416030218347950718863007073493254411987320456319970668383512214587650505906922142275804425710055588830104053086875846213428443831315073121311739844323427741557586447095200056433629870986225400079672078701334892094823981748310603231030899527277708213683950191637150863718436554328114557658881766549552005281826206220840185796078077649945041034900863967510575790617888868795877655608888311567914106250688797000898741613323386520889672408855538694198001972914541176936710140176008672841534456116393505993287307031856387986212328117972743956280194335039016295188283467759964121154035961252590625594166908293731549094146492978303352729355421062551549760796267921853386794286102543681972506861034409504121392378534666163916102695062382192817499412549796944123242948678997785743650936217854335335799837700626684279088788381225180802220646625726337303836001998963121367781765700080178112269131795900159609966601854132835458926500194050339210965543533119109179386771323497728273549346521572812853870441748991751399198343941790592793719713819918460582357690172149865052252730771699234890888568129764964797093844741156219184652322539562679707423644571889228446820118944963227254988602345738264234378104848485831347854580866893843565476403936850810850067355185052954339704002406506099004909384897114854748812828119740805057932449767109499372576910210015722070336639884376525264784342139198490157741703668520094808931074236467205184893845754648782557534698336849483139708243167861968757626987429252714383517432224006812912633299078066051892181457231032545816466777381772114339449040085745963531053955077602790086389588293305257745094109428431211381064223946507636584366243691059606558400041361460659349059926781394192928050332142036815070292696252316196995394632239142211261701673228043646985852027371344623168902572732838414898426063516698766870077596092819770172339222979697087885268038319444843716329858082474074197894593327188973195891505228815570202058783811210891970254428891228694084899550262718531658926752663541468189186396811488156023372531696030160748093766194082519755849574959297489616776611715038806372420418022103902292976742371955352030556902517342600491181724296611536182218111472476665636665175931175398592835588805725473211220355267360362209781098444250990428912057664657798879284511174147279308295912477268719646733570155554462186370400330610347739944178949941168985252974293102641271927034740832700439089092433261504076037373918150057319999718304848065566988066839862487702525860018206162458415684297971651697492556177849516059671770871173207469476894971461658664257397055461671947440628608397004446011384991049409718238208403344040626134923063560706457454695681539676934666901506224534764469414444334310246369970151917683823150125757680626047048072670055623007571782879952500143254144740137264460920246507041435246014319136831999834565806470992466305159456871922021247399017906629080215873322550631941150210209661214923336029192511850413743409940032053171564895640149311256879199429770257031300220524999064938122846403204402235989570744807124681565023159369757313628656368654283829232108205361225424001396822635617998288465720223516889935698149455725651005388307051644843485112095750272944497684430533881633994652308399319456948348905080536063304144978827846634112998936813746668846424469512994280731698669712679610350106247566141499506965052536011745044425624523392424116057687207926886400765404698134200035828947131715044752261201362140011942227492301533665293973552198490780502178673489498500925805101588518220991792263052317794657703132792591089502114616909004603765244448748591949835090506442481664426918349018339228529589191316721136799320556423306640860531947337036369319348142958590696310426332170180290717005690354755621355477564243812155772480865825716825873204810060620829265693805741456747963573644558996786967007810682229734305783619129532787622028088839182207415265823932265275803796388353167648470438274250876150079148035832632064711498242007371254170649949516236855367892099885338339585402590986398515985639429529850041729967784790020614225869601756229643827011575027285641373619942637593402150405076418527290299451393286935847634340810029891465306589769415265020334665425604428252781380890850891146280640291452633307011283349580115782867677244207537007607771989759003125582203117229025394693058515169782120693104256228159537977842044400477739194769476960983593195149679512473514462093112142667465465579229199241536463271284488711390454081466349688391171709120913601525108834268831807769925808705952449685916798950346388978953724954878514639290445399352101745580219245849223323319363358122858934627340550858192183489770288987413242417128150975538255695995415949749767038132955070702712515302608568615986144680484973324954406860015696584516654549619736686210433819149115643162757858138627238298707945079836514295679499258604931170312178254114465084311438537052978575930408265396840742892020035514446666753585933484289853449920442300649493537558874181746729596946761164492630881694106001036143447317409839147766888980558441500140736250453270069091107846744585342521439554142398280148708084556553321579969864252872936462675258208906780737834545303794964431037116356193700277981218195285094154844130648066900868193015708205395482628600478556684996584334242834519879613943273261011116888156860032343008834016416609137225216642856955736722102984801953285235713520689632622354869149035887345816760476113950590311768810637605024669645456226469842061527270995531325518563351168007934897838449899299444734491422995689005260233638416046705929360186553247341670757407280127398176397738585783235287899021755684628613609579038729870302221816568441638179886162698848411803455476040356852252456880279761804914553862688605136830882519760974683072051228112029920919359175088413971406972242942042611300299526907804187411840127977833413595918844301747943963134610840128377805202481025439729369617978927918797872916810893141889840665632211802071159537554537484993290196838086689142383354013417152359355593872481307528907805962824568358518240283470223939178959682290921824096150248579077051008615329642776765362297203592160843084366255303176228842171666827535848031043818710099911870777948359641868813231320307371831097520372253136623488425168874119248112815991365471160804113325414853474745329089970438493524291349437576243797527046307069579471728477641112728794123999211666494846980661115693802592039600408767243030104519470278567218397716075511719308349709376677820146439306205891718996904918432181932638686414476231091548735375425113945674678791419763214482060625106947949332510677817117056376488809776665300347474173651305214385423614874572313411931245178082835492203308703087223281396501757202272624223005367784015525423171771205984719673932594197476103295695696286412652566749094708741038463368901193939176553242869551322306946937599597428735803501784606597901490100962425674072851039384138837101318214083287452217606194950346154192837987221608712261343720836880044397228648337474397627758846870982654739845651884209989094499778032970475088369611388376889897876658148856650691408622306012628513256836914638199177635618989494733493713470720826392516570448589116099061754104027134721162587154910442983908777585564515959896341215367319133051220207258253717655723641239928156592119794869483130483846398873308179614539503135564752475367860981833739965364836070600553472599171693353235449738799129325731305840526751655100951764057017566831961865954671024218867627586314699499711129816273435231585184234542320551225002607595774435788052254848047515762063791373743331666271726454082152514785085236554356180300503435510902076368676820288361265575925563610572274804517947881137071184674768162994785503218799330248328891252580409311848517593075803842320569053604191918678262290535757765000901164050009215356239273980414688168032103690371216844038996331890022151578860363910214705114654284586500622290577154100481926335642028345983613342386437958555442713814277757882755576477305852657546944868306216380245387950517355895612689080702794542684729117212968849838457486650591834944220504789492908138044475595105207556934190266058064803776962408595343582806412265687394172431715088821085797794959496011253144703838444565038744112163234846161883269638494168971947990132948359147950999849150247118971341914856327765604858279511663595772276892968061325856364628311342012626245542783065616637475080513825555541798795978021030005501285827295403127175998745850675556412054257972559332439602967974245286911426757125137009788019846484668413082874319955417289530978499971922155009371745963605322911164787838056956912104197093466031202784825538052744642400692538066345390349781994226738122645499361893703817747243964065001878370433200629395946074697371279031058451957765760677577619622937720884834122457246887140060211380069598530883106924492303653974374928020338965379264404054137270397119294785309847343412815624217554568659038956760681029284548361705337062303711785337142441413253829419572718310676645620096064499909076236157886916615795719939470201208582030246986853131857814901974236719952522241397005891403173405940177281639241443066254310460033842704667456331286760028503259316969804450039376963601474227116911554911756971550633070405226883944166506987018405374576328164165323811086653187393297512498077866943654632467024217150817115879856217285313207940971219483213556248795944979204332754149468398735489339142807704890273488565246612570796111374903196093258994640359542052647776224683143882197021772164915867636253973371624594365273796774557538569721440292379184671944629288139738268852382864923584598028390820925733592970320110162354057067983827562917925641949490789084074979710149633789607231187827819675008566472520982696051998643135332346153194724060473435934185986846933892784611767511004702689450630544414257264669683752964689877376643695605380930632548361684823564316711624228926787463306790049342208682584163932600610857350568288073623549162145723731810445518158304240589071067179886355669012499789406918441328521032572123673857547939902172250693267602214460850316009287449836379540719091144816295422639986592400211925381639714633238428476055180123067475606112933309166033574441755780340108505200429728516850028281753690500245165929061354114453140480708539574881087474226045402654731215371514224849606292612791250214587421894411107380553119816748648775876240711682560105907924812479627910336877959089861715589556685502448722057785233266463533307343738993001262984471559850648843022116535646446403613841800361819510568665478202820325157357279145632513566746605229282452109217957698515135634387248077384676733396010530062136977101612743125545900300089417181859691633785197823147761973846609855488887873209658931766634937017579989548254378523362973952802072295074839084178795431833392657115023445482965490914771274877930310364214770514208224990815266982957966039978030104564927226364187112214405449998645556980693028748922957133857161856105909909732732388305139280851408716693605872246619026428492668897370060820029910729745620585746544240118328074735601161391078584103829185734456561590319557443794346215337489814464860211462550095518534414434921491711210039713333946031055836951528709854110753453043665690637479294734963496026670063590395488599590363343133944323741351513688046086733381340763826994472606127135559410962193489980115091756635191464637703807415800572830797008005239727951434280456348924107463001556683885464675689114357859305368222820016829846613395205338050257431718266912744971796302585992881491974485536519402973585652775205958663065486848715054640394820171139693485651352664616877729118784573728607442364737713874895759686531940235114943565643157290555807368403724519085337033592739139063774629871729972504052137943435042890051719790388134666260435931618468265684456783989098146222244343975579460899529948649613969291698188242945816731327539980760205480977393681583598581996383029620724775474874565099937623724370269787728878456204769140548578358746177221917323610028042847619486617140052930204858804645273439530152800603164357612445078919660162630436034187912359520858408706300926992323493836270657624649523704735660137334031493526285772041343465270436509446534089181589915943044467270827030831320246980776135074419990453020040517153110569082092351292253123403309410522847875489882322822399823257560233264925697174723317940741037670195353502181243544428554157420092696874967884172937390937265802462613030037773227185074382146824518708021826420572716065989119498260216986918849353671060732738727499499794241239329116688855485300023362880458864240340465236071676389509022496684494621166466625389621770813100786702285219957593794150030880971887351032157509118051951932722863934622380243699458048400672332165725916203620987632181757676129268332345580187645431596919626095781096565360246540408915593469026665768788330000806663494322311755719069740595667576004833974566671681107863238412189508695055399123519572509734781721127376348772432603286789764379233394864912600120583684937442467650880481704371177386575641009630387877431086087510512283323223301598650151996462285147986929908361148820891771314371987574077425255348422921539787012591298842299783645348514048541117888653654607553466002415248236774158848782317562155335418041417713069269620267109526339044314108764178444082452865732121100686369596974579220537787181132334592025811010815651335699122478117974688405790244364610363664963678754668468774212624185974464169200396193860103665293491843195899358405585788168513653087889269899555405739788973239098116555572361958338515692516134505011623063969594687073183700590117484245339912289323124683986883003257994633087213224714489574589681215267820613910235997530416011546487994165951512632334715494949702974110905174937357272070168312655761096298647018325627212850970900082803381269976183683866150074646792515264200750045282655835347970074752255970013572788248965795626001052363395202434103226836422537865517596280800076812879944217368865395410818539469683425709899424568601827389552941913830161820831141543707554783775017147790222523212173815801699721131058754772373797860666232071470142759861080898545502986317269620592512411753798434611500390194839218803486256142886050987871276574253995269313504570215396201527443704403908279632742509352878770773938593703818913907889614741921608203634419985822690679277337212392218971226884931162432557370017682440697066807417159035469545712448918747978426300718553550761782757381320329555527764338891078080223294284325786381997764861773460280672242033688465972048823066528293996601184600827606129253725592399577062316418963525284137634815088598746201627257118861393285856894881181597971800488591847827406968741076300553516944831424795927967182954352169427278467990617502335498423123863545209970844710361608684453982197927964767071918660231969793087615514980576140657552090964748543096637128966144216712733608623690884095140059403527239470640333072951708370403113683769022816356603869846150193284341771311876743272739784543604018602825666281118250287691123173285563149813374955650864281269565782237385754923709410412488099717983230702636550455216359672517244283651922978286512136895849137006941937550832865623586568564878579069654074588775892902719000657656043857641057617494904967840286382063337429407562551539163514034473405522519672887108883595737256837766155629413025378168035061423136736959679682247484136237824206920030149036096130507399229937332121347613167708054941467665980786350996040900620131990708208760327383138381312583468743092469514338128103182312236890819392322228075364072020984737215934129181975947739192470716510884717948735549320061796293657950508274279232597840430862788892216361341228293019737612118429002220567755180540350116293903642970480971227679571469472844165619429115900145884061498414393578344892178200944130971606559842512696364630327326260281500306719680859132788461764505886714237536452237112301371359408195941826772860914060861098326562792329974089030661427698346197483385660378290575773832080269757745539453742092035030101653126041886155137005306320696244612304098301521044671583291119735919533969076758288279387568765306365231706163081228856214035685855592231219496915072183849796181199483474349463766649795188329395142692276530289768047221376418208309340938461637849709944382857541648029493751867455167962889096601464187720232868344851665476146079939706384966083001445314521353378855685072656505209554968746784898834165567893431818619541560221378310912531923966090825080515856797859675278847626649967838937308276612409446091638666914767639323434173961294088820524197330291988566227864967113807826649983300041729167900856660539278740781727397369810061290210368802273429921232061324972852677686333531720176495740026807938373564853060001620498104362347996838545045913680171873964536762007451454653944775066613106072380272829448287124177887614571867778636198653238698496459232474216129536744236147742848151428059086478527294161600039505924410737522229132484129902826805187851143215401511919774277511801307391682942645028128037206021217810659020667417745894877576221855983885730161383145331719901483861653518760853194385206569879643381647651922727785746329662294246992370735042441266682393586321719137082819510298453984469349241716057684276393282454931641326850031883527941290267723499261923345635714314171543415269291701601659272948585899261544182779882818025529596842131042141399828718015543979802012961457785199302093420927396309271600567690086564408060380727245183116316654949792836250323690440454395975010743399276310158991978577760599946235690942767487722530134803437161303604646153775434447752261207998623267917325635014542195334804920744981956848858633330977655357670359375484869800880921190724963302732973183510802172591583118125518317576716515473512419311204435861902652995775903898782035808830994773309963191311091963214168492968352216702769386882392177772794621812072561961427321955121707505721264332771957146575977479402859937079243563604922109880152828911485761175859007138950653444248851624818036133532195440408319654760098080192994243323064540597541057733033056865447133829952138720666815199893248762239645175049261470248973779411439415980427415443829905657870615862015016996073669165251170799213501505093705251493508172774606451096158513042874060500202460681513683815417242155751055657898679313084505551126453336809975968668196873796342742248038035007875237103897590138158059431482574189214172305491227923761015569948276568584296369506546992686724662402195097616500192934260303097472162416998942518190547024940519348674894945578609291512693513571025870342242300924966397595963252572321592897973760598518749608338114287407626853926780100372489447279917384360775234512444813050379623824278543549018297601335271782307719710313444228423939369459053587410748468923181987637216257745824944166880592795570301606138471819340749321133390518478343937874848027704976201004534408747309712243588021142027547114212680509042170289723685081623652329802982863522487951716473190419135107376551281448542730537280693396245996364532109774121325519390486034995904721424062476673932503627432315701607525988461275251082560429959080867581893277534160671254946623825575342254439603314781171022154317111766084974591549910063184735993799709244570481373006916535307821029283981452268115876893003183207581883667599670470280297133127160220956071126946657406985848142442405548540935805265838987866299816011623330406987949457601535529987584493489557574497395062123203496189691088616896164500263509461672198835366673304708471154769433894577269917242977315845370960358234172195388993725851524409517445694754051068777333874219443469596429999173873337393089413802576386590824341586249307648043875072562797879932754271522896857775346388810911751687157100988776955016733864381567414190583643008131172412117467359848512530887411607094432926464030872245958604781085510913952676953862246454771456758339040812145842799560111059004842374728638506128044908374999134037999587507974636256514314270114066589275659683544962108303993658148775498959558333231278264896667111632773165367395248762484094484028332251360821114720860378231387007099845960174045462025559442734980473822756771485969827823147196392811740280009449899679709581771959995327404046540927180220922483954223259178465777827899262193156840002231857804751152705706760520291625921749224553741651269080109783112028829208952650727699471923366099725165707194692956414343779190092423826260875362998300502378322039786988338625197277352519949648667335769787561488825212602167370067224018665974631759977257336061214834715186285013061421845399465276815798949238394457759139851612123757673633900640856562627057916459718949325704608986116288612324765032039258766829368544643295717059366262739605026211296518268359693543056452414845808032021444771504524333689353602029486099595204905892926427736630692669350249668845935436079176441819993103935332822041240356780512535773268729531239052452352289366510822939805918690224337895246809650767479336909225421795686788611406508430122053511686411105834690174492237641260897955346853124002704487823044991126358578267000731870245270525473302784998119259316610061536730595013212927369891771034933787208866381024276249310569562857243466270463919325487741304952988205376156709160871158410634594757374159849492422967681689598335414822527029335519037301537160628715838765543731077889021057491662147945404484435111632194318730665707000338251122337749507204555008981654545668462122047783645373304020556182549637781348546693564902524484132845670236477185220471089928998435093118514897986879358133880782108050330916941771267031289431611206257936102764443313627869292567389405005830113238531459728223126369000558004644415909378060454892047649319919104505532184535642202941145279448179135726531243752608611876421918976048987074869727731140725526168823462574968117805493257470517826638253061790287637435404002805439356045232415200868673483235988991134398973781546592664937000647268371095805541012352241385683096223959102639762692468691969645556938499272549141352760599736287935991788631497953838268306477677468662279978019528289112829657778103053089740489784521806319575262758407753599810506731061035553049209364318227003785727200424984094400017939561596800040616178530102691390848501743485329321157268038485521914063989209243739194546645157271977402144971748469260196892982967258233303579985450916323493767201133156185304388527203178447996248140136192897497410084024957957745923437845803018941615819770590298404606460051138388043113259506919924799706150788933652476743021893654566958765859959085478247894428974878331932729547070086586420926845730564063572109423391697892864541480031910748450582769564044681171553897578623547186813727313258230592232021308778820037797985612088458879869400107177757530719746444233988338045462067129336725851311320321570404219694302913391656287523757375741808945989052317150668393220555031685562437058939148614545217214255388290884645702706057187067475154393552542698495842376847663457128993128216768081805105753567652992720589626234062770547762215737192248109376753046443286182787927273064123144746672035785793933528570596760112467710272991927031020381507056597657775754126757711111308105819251851856436121605164522320489688359375107410827886857413467656853790251812234439096974014398987323591893593749825459498802955727003082311828884934148448700886949242329415757642566777057476900063105624172134739327208532962902467374404944752471818108135351066872033102894957981861246333548597913904255659899555539317874234624653932084910087368949353561174990072971070074694366309747969708987262739638915673460667746679246508147752867774522479754662307836543314741010385163638601696747938264229972469449248543227590428302613030434767085067412484392160010504851137921422030529215825084219226999504328409658983067848798762054447917219049251440778356975250533983467022015224304369653715770189214734150446635352550090567782165995722548133482829201378131444800556497511683212342341265372816702028242932149581479254259141415481107718471853630335278311857250963537082961269740400858423373613638807879964505444096454855066100310745417548629871927999960528584512958775462258790352527244507624329352227561149048212216870800980107832858202369113907194817220517550205236217313075482220483413831802444552890491482211303162455648731455397029166979940767047132107138933140830144744042325377143559266013596768871172842510554318011005538040191554346362703849017893044019840562630401556157286411314720272509849549343523849837378720358746384844237485997434852100339793609504594737091770204887245527313046997938484492714436483777197625221710107840917669135934904653663884104444102395530909446189859806166504031451973187185442244867434102937195755426591741660154789458404250260851045123139531921906055337016717728340475346419751812251497410770999315790467381762090425855958527395330503597672640323223774195124976356261368264218490750460368061791700717953316785877370076824780857308096657108832383397939275583492693835930606373406292345294119605700456147137923352329426135371848840071880779390167780100179394237570787281597446532311464941564004989402212997373743098358422382360627806802766365025407124783821337289913064102018235490711308658472819400519644464144667406450377877283611305594067178594934573445057974608697893295904205300520761120726595416677967970953943220861212880179618514286637086417654528147678963762955874409109267063051782795970393337111274765476439257132836311467469835010451619986627734559053453905914015934362569933807109618726599860898888351837636621321267402083622873167199018747511034408548833402750923097392557118954384576583491506124283950683992312083692332377756840035862097138099493982747040740459592049261289807306287905613074485105716831676062222960064503920314132914465530013487222145135319506303558760940683486369515372435006648493833643481877160174319967784728101845417870366192831987295966339448266521860265861740346355140496019318642766548376212897563504537238351295670458573400855327067081422859916465103935299236496606304874515908945830839247514886579127364264528072469196665230995218016432210515228588998924811642791488507763556266922062400090390888350074117089355721872611779110978794988592708853014888796475296913441780333897733164447516781136907868742061467306289870010216391429047535123338215223981626170239174878679841567875324715674054640550831834507610941919277845812092054361532913250230565977399547245226707598580141717367164154144376132393602601522275141316213663875052297838753162360235779207353631957911079956814148667953498226892435697978836440860851307899215015517551886159195177107809860767236161036041129646934232804553039671129760569166969935009407702949782952712100252033419326281491149460289261762929655615187778366066687051958641473117627181596006844935088707944306789290497944772441837693292945194468773268995590220506146666801938898907107112156359283612659662504349581072287207317322231203636952094099425764985878446116432662322091466286296817847978273538252495469071093557876452684914167051279720492273548427049768399339133794720952104745205175117480807047503130748562128872202425007942988190520078822085769985289781917519258782420730963984465803377925994280994880799976729623210755504708946032591028940596583792855931877461938889963300956858454234274636616117169515515095828753844572433099270711045693607425414657239088076732948133755989009018755073136461763164038865887555779345636552574290683096397822573628257136078788204716804799597276445995360898554601722195770242050723972062848123679224080999530358304678017033953505920970357303620980425445391197992136882414615845475273483320163623111112136993607041758720215419849590982257822662700352212683698742414313101452195012334036476439879178938659003080020371072983640463232089894861602847109354795053884188650757761640530505314423269734813119572308511098847477576060398990618318511984528476013757696930904547841001164057100435631219918312117599162502296764344814799331812244213581906708863856810847325296290942509263263340753604924762020193330732933388006427321924920051361918613164924339269588702887900643894198548684401754134027496321639544620057631164413592696947839328030241412264851164349819201320331641938110088255860606481408542446197666351071808242942132253829998094098023117627297942762996399242149466161227185060765589189512592234645574988058022402182839567984643071573509284182172383349673455415018137104336977347351465939831544919146258568102747840988863665439455156201111579827516148062139506617218602317841955615274812477145688894673936299039056768717918618147127733475943917700000656546136142393221832629425709808338886011815392720783954064387457924882329280391044631681747465502842936657674309107178917396521661155586202579189888294941931138243633376855367037424082369906599899082688569517474499679505054181034376547656128678307328950806995948559218861055003313575354722983150767451143755982730682556419184596561952192058257973926645668159653410593173158453660511849662496822907129362381315396486498530218647186724541616164700896757030810537948278946816173539834720862109543211215450068108503054524214472817015736204799202765416805028892683413779290923263983940735659850109920780225355492422941771901387461277172813461206403601959574237508486933647951700858448826068991514435290441428033119310172691143621211687458727957343291660429519507570553638472459623997488343303152351858047586926260089468700614837416435042213276381540186560412944149435091527102627610336403192165638355681410228288658324521055210685846739141634683179780429438697907877403529143913933488923404597386884062228062147857525721448902444556760304648258401200263737115904919142927468823853958540262834832795459749862761701754182609751931955284636385297790061301753627087587464256614797017058746393731609821261848609500912266740286041082883454910047621341176021437209446729253959721881344543936478189497727290178719841823825962255666659127089942094430328831300885602704986605241790789764138502545791449328462133354541658608861357097704025519843930701357508110423457652598391247588104667328808837229380758217758514979145014374323821667255474643598122751371994094048175068214790790934273038430961242187258410668381692791229121141280356967926501157773575271995266996339459209870496922241860562418278868091490021549717421004052261249982712083662364960116980079305300949275921333018717763745041697097456302656913468021326105634881386926325008721433837193877649821545449489177640121811316185358826584247231176581386723902584977086698842692048826688142332860154915620344840099738318721384629281020852500235984267460279134046666937829182823562427478559086864213348177033051164953975888995460874084515070292777416617137599483363131385682427582442276319419672088221890955560896770072932374384671790849342734806686631856584883899344548484622955444321304337151319197362191698786092248190040663857513093379981934777027752833937903536663104757903683621440983854618354172474140911129990331352030959003551395608767068478347767331030864767419248613020985996700078694617756148905680047515476763979899030358810789146063959499279199307840997294334737811278095735600871215935505671324738412572353307083644094338783628726188549183223681181840058312433656523094213465319618286216011469038311037586380702535789511647312512342528517409991289753586535784098264760876217867751070281664158788605438291828269069610414187058213173972894074679215584810947989361339626988452918851895362268529663695805187282673284728793684341331453712332906950509659098363061177668349073531633061397054547490353152094493504398308896235285815117396134423624275630268402593077894038837486912385104754635748298039966798402569694604198679150241143582385401565395409312097845686365544933701390346602459319795551107186974101040823306714012764368225615496249003851025827458536337118183579993242807416105608447798730454679119151675197217077063632086121242139835168223837312825722250282786654967192619122418991013608849050262499628437877619770152664993381240099463147147020758280203869304437219705716964754100044038852201142417026510901625745783242337523142868769191707239432479209237641076309443455460058897453895619338877409825433065217589893818005407892380340644835418298534067323457717951743723182477963948078628596703411471832088416207371149659980726988707172199920112473875990677841847505328907260934599300905117211523439279481696024920183813583565470819455979155212673912135005341773878087929299154335910898882357452368648866132851539903740871308196968427563014624347860944726536097368517103827276599968134977873279020281565774290302737208106530834759396098519890859424633704058497570752221236609319188408916119399295927375473839543331350755134044962152991316192158208130742404758891138630408388834947623902672381520115471963230019725448338970346089130358243364663783906899821970086177152490252601855845966306803960725525130989099728363634306185791872247813637356579893983087633433457047731815520805539717284025108133965804942492529966189226624638407217187894302426347976599836062187280386947061238056230011543727834793729407660599977245396756386927932620722359132888106311052529877804536774104106913828490301947926981238297548755976572160441376383027296945694209133297610303946517046185814220489694080920796929746934533553121620188620177156151315082215147166509640055727915313455198045560240084494989114023598068628681859948612141714179806017112220500030001734692310900097382180090681506002238123749275595921947592033357625650160839056548769513906006556430785278502488685292092129884841456553121058429962623940444341653481864083969375542202691260875433157661427138147986127640647598989115509743581886654849747409803225886520946779239111498339721965394560338363889520616182902762580224647312803999758210479426068767788047525072286375715977950111337447752893362893223744766616816326657002478034455593641217372798051252832763998256777070035975770208144027245061643426482370917905076170485511920021386106454982459914783415986008949078082017706713551155163074120470592146056359273602126668814932494969667674911157462647722306896917631274127772155862151503987476006530061702621289047959288550913360477467177892027687246717801291207456896713247706704904679432960137243760546405079286864200996621742963746694313804703357019870579772594081008466075273762215322307078658503041965005279052454919932716408269373490349724018145859162596352993164659839088762032845941658117377825015740946841611110572272133297014989834365893632150196665496235806564425955802764133684785154383142255555704514992321892081041662398036465134128532276715547790103548372114702423696731767727725951635053287307068544997128403624411155177616139233852544434947367168367054852407163887924335994484654830051291534374444888553694326093441611714452672006512069673386009263985876560959941684031698837621501746912631619723121508670967448416292018132747041417779774934054964569402905080343063621254845649533616928581623619040843261378499373071568438090821381903349319805133676695832331685058645751462504455185324652605283492298104204101295847942892168595349977172806331273302269454595639786851263556625467076217389636685634407174492317205635231698381236186495427407066036643655205434976254974050684531958158648495431846301640377324763127907885139218988130858344218630196105007661294643569879917092281074775241712695501671800913082828147562737667032466530787855423166816432177797248795877010096276405770317321892667398996120410649186204080934042225027098490789480107942583294131888655035235352529940181791365780722290578252407159471040907129915179627680897960394586282772110006106705582844666924935607271448988025887870389188580621065674084737341139725698599620617739912858062763421967965766606835229877081486289631273046519523455893447580350590897430115861923111947211936991198652170775270771234920812999489149083503347114572951674011716781590557062969221471962746012921382568762863202347367267163959087873614745228936518966665762714902713040515650661910701632194492341625809694275791909902400532314142268172252283845351572207373817775514534701329427399195959889288990323982830912029354974830295392247868149594037815272641405457039938728687723882359234892198442663734372205082708862557571518166273970630018907962651186044793323590829250628622786044036358352055158605471852577270429788390299992422081835346804078984835582720147672120552072432999644179203482455991865811161568868595500475624170117708528891993116692124813450521445914424637650382245082626879615440010151451106829278262664805898272221416868297612591166066553331076589269891052530590367484873287848714562779517832878917059674866854368215358377434259145323601685128728846552639490820725774274894342475487784305515209888345404181481225280165349644141510209605022632665979707649946472146574685291069272867587327384457236323311805592183770814293936421193120367666925667103166438585432381743892901575352360214672710549074071493826960658175351279842381839722524024482328948542845403716465355899844701353760871908979948123552297930365241175413614921608674779527402943569918222068434836972080053165080713479226029208951231567229695242627230048747689640519968685941125344191201604245245236047217352215450609021134100666877222848230737853412254688241277257525204929083141235955872784160665795212296973450614717704993610578385471038906543510402004124611967529751810379982576114417806388235578102841594028566599884431592275349205179668192111208429040407608933491722081953043909577275402346140214595329631881836984448787586358805672195055269189179871503561147668193198994992128264505187974263271698273838960117166001569408659574789269578127477965377796046845522472496470681117333375426926461772002481431992759778698812596224826574323131947500241537230222837401404905834452064728559837630411363206351090819094750105153973375913849113143798060314704474938302168891001629038637116434015593809368674225800558950352188708362365366365997536445515660777070863519036470415445403301189276642060560881532141719862646067188712416190524048569974925350636964738316763350864825278736184597339272866304573418818835025813284655570196380461525080847804597844665087795413617919541619207672469625831993308150731027214356665373987952211365134490852422581219522932557636908006224521622900933113164723008342465851352944619119155527686110425372627502747401827219014921747585601453254456145703595331882950300127150614908623032397225610540266691735966077693816344074245695895367995289193915519543715868789635627593697710952805438964932758426556324143353000346052282029996211862457202754920456889163557626738086718378100411642386581462226135807705143840170943683590893159114893054258140565878558199389425509848927036717414303665050863084389274322634963766604766455379373050008104084677886485324777517164718555861068420901391350326504144852925248501640062113653146324437724255816020492390842147380580567584005555856079540962054516725429259354025699234277870863191765660923314249342224551512958892505853292221630720512626415505197662220752238527573718206395214037037879740875661990773565833055958179172908646040870200394977869458133487474124375833874218666082638725264634054651698313373946572195116406671770389085586223978852983413618423718863653083471153362000857381768566515414959941821077695183724890998800787950039278237626466506309433127609993573680644145826210751775996800587106178094535063604985378610834478223284447620850196189861147807687898006955235180100444000939105799633842306525284203209547792498562861370980582934774170873277864851472256862978194920846228698396071384834638110443617104378980596646115709317161235875001174867588924971296018185106734564039751211170902218233068929010422921887414400995416164325627713188984842018908707991528129412768909955079573378257760964042114395962297043943189295614194559691606480075611328492837206649285620498522911816090419860181739975006128955087048614507656507326405728168546661268055713081610695412515993169803686989794491885107828566322523440023547153593808443854355224804181104197985113850016703712782856568966364981519163432919903731199549125575314264038512783276273084846541729544942501767555958003479847583969601611231835845797562378949213839673055971616448972699577517211607827226934719665550155221191846523211704510330004922237734298392804367375196688678016641984160626469422774841010814027243802968030951797544073181170056357169476068756280168638688368208335533313842371533761377978475800911960080897167654305412487606352504281219987583761928920160616623072488587464574003862953032595306659285132706576119200528167780831986470060930771475605507217024575218555100461213304703543394918904949996149150353655651710131897559529996351955079737583562389389987913241434103593503972821508914275589027189691938818084230385265999342314645241549653393932815220630248894749958806957513884062858136748841265199132616445185978421548620940796339374836140275300150005270113417322364723046530173416288804015835577327645411513620560883672461780112073510468576987663900720096555735298449473138966723790599127342371252183256203903922225986623663665668843888487016554592005302346988305231682593543576187054791396712169177471439328222138091543098048574385628558439261294842811351176231819093809419023318995138958323874861342621930906609933561121041073841715701410835612160357593413074977110626160337355502847830974717469611373174039896943066360109488368187616131647311715771948529125072403315429693944558989197995787370327761630824430469286778021490046171395422545307770756102939312417455784428664950021387596987898932592423016943069547194853039428932296567533873694820557912321796471798201952022607439973946043339912198238808697329215620469461786044221374333398489440426121870607020515237339924113340274798362911368573494448039942812185224502169284452976718965998843521637491438425691724015391410844379174650377409853126365873305682553924384532471530959050154077542132578660949556074505561488331717013489299749319108473799306693995361932395085616774072791774929158890061130438638489960087343895660509349908526659594596833236984743136321563705221939220292425442339941639002281774163797633474600789457174601464566705426203162361272918404673923044315677570643928135230550461712098837766928558472313860666143645173089985894406349506107294212674997310590627917570262443385421782772188043680293883013750293825759111800938647003209965835007340689107565496214522961851909401140487194392684263733177333223715515486079000246380454953407497531426551695658446047575754269223867826259045357105165825778092576442942004872339345412996397560353564044900544392536917459507796021349281296839817326781797827999181109059697053841623149479151431306477422986908672674951320380395588021407375284847522201296760294774576987346273250142987856217223718556267421855017175337358430198204817907814358516270909154511389775869087569693104390175674182416821495002042628907569608719973760317560400544554375544655994625717248398517106007509662040580266669603481370936998045308194112811754249747545010929028282005508707032356249146997721281441185119290194646389764759711734502934063029399488156417482046761304959885370625274744989209214288513972834825084695698507638643598291152418699315621328933965420533175674950616372329826005996683777849230389214437117453111863571980964856502816689630836179887582791873687464180271502757741533344574541926998712115249657765052070179039740865727962484034705399562616887174210367195852979099337095429102591054140055739756867122364454486674804187163644505978636350932937574450114076548258585327252240119615227813248777353688441669962043148071374035235092692614231620121644193944692673269132156682947240189272878958697077957422090904586887441152518931408121293025235032038238983203208001465357580577676001569207104289411074610350709080711985639446573713932524831124008919233815889530695688801002953780623398027983158931197650291652154807197176349929344002654719625631263811599004518719984948324016731245106033891798315364754344004179031152472702994409067448206260682132084077558790220871109129781677811455784845349674575528573912130754182094794332004623203727203670308894547217180703317028459757435657603872224824985628797307804366477185895589429322193680644096146283206099882270663369161664577353344971920186003765341845550415834893048152611198420054685516194514244540958373556319381751575857296583320230632335631117553140556891228323835184170477919360533270966546727499144280293800629940238841047319238385500161674733543453245041900083580852881845691555907994517022881716047537623009047810346704720037310822873416343945539199490508553969615667973616724665923682116283978662366967955394989245005817896897082246113098839029433145654163305417846226916031659998258308825000762113948488911191750402221955014534974894312935937763277223426900802305559419571210346635248281932622611485351031541142576232573510942135582088723758647720035710822209863904723854633895351349386641407404290411081110696340195473123956094990469541839870288688877882951151622578346533866610738398668473437134064979167590249482424997348187881848239902322902578222640206011851930175617789148408009095977564525493033271208423348686535326608561233220379882474285404196809295489820471207869509589300137312311422840768138581473099303351407267897717644397326180696926462784446736268247505693050965965668056484340157437190862479962940569859524178625095555208870244712307747096362862874751323982779951497519549437092443970306269362257692270529960201732772013877455834964096649382426292990246080717619374595546027973058846931072578203125194501060032583318077685225233937666455016491927166708651693977227512551242627466782842679595120584714083244863563932263864460092704841570162794551801997383872888230869932997236693194190472205455228598336166798183598646119006274751122824901570622775095917826257304569534659440543031220382255124419099489994824273561963839256391568268878465848786548162098608053168622800739145291024037653153570470509601964948992241123305419672006553505115442298717171295842308386103909184744220395089934206447703617560401100811880347941212231381498486117449125393397113483559297091029227927208468357893766206102565873139925041635094784533613849941361292645724299976016541113242583586936286244157178146113792233833991907599040624466368614610413731600640334597820305637596970287139742508301080213585786521364228277325929438310469434397095263230194138839326190996083946313374841818001067723775911802828752309979983515026496852516114685174090462444357746859113077678554359809512495919058173125429540414775217119302148101624313998259100145286920222533020109684846807501671891298817630010809730316501942090293022268033935440845590413053730207821220992469646593091584177904579834257508976641159751120476462201485937066561815835746990531747281394633567571063621889938818477090220293237511614362217726075192887791801185337857179702202026858431677567973147195013199510619996069377888177822720926314980064028164009871127719059873814657841092221127456457559676376592795442851867848036907624131884966527448577404829598792026539590212907981259892906484014636878308868853722235383561193148890517256626651020684858498847362492982078764657849308349633727115811995460892013444868357647542744139015550204028840124127360932799060492030407033447993576564421561242888798559961416733856269396523808553826457471291167327671951110357372329781327375319971576539692777443175984697500712416204986106775567068639554205069335867628293879441790581097814827917839269600243042726451312691914781094166101936940118148572594548466606620414406528864138685678251317255800145550239323112285673511095217637323558301556793383139104391974137492389138679793793003432283883110732164977328577723791791627831047342648989604296621825117300508903907029592340874958202052874334200705597624374636372727758473360599108984523594995900986015023623597925020318960381271279994850514833907368615069734116770789733315904869350468286474907235326752229213433954507449447951994102717871716773369980409441372250251193880812880970106872093467966824264163343800743482621955519494531173900213592268305760742292619237006495829593127510254338580118151439319685349497779347895927543940364751630536564382669049264560738773829866145969026040911240981464161222388479601921780951859128963109263518201946047593616023709621373658753997086060573436306365003315506993332785828883806789533681743391480283714527347156193182148398011851249743127210369339691943056223801749039590967507995120106308159578115037838839965207696727458608164731750291191463285323736549045763694996207335119700953539192789952876478038654373895512224720191435686139022465449797010019244507119759034994967540223825853668423373900121444399426123331316347079814248540118460090660537591940171099887125832008339784485775771107786620055863176488939048947675157989523039886588799234152485091226597126411328940828614491863463053137116175253957789956715494991267511619526461664208149692136830666398496682512528126698765396912991133442746750435667397920189278463503592161967265456751254478047699304244828081795879561694840405883129993069135945602963599886768597738423708248086187600615284945948666055544830396825688270037995896727129565523571219428967451111921092176270909609410476468355318881456148969553341424332352641395633290768898985310391104280847686056221430694363889457490312684639561158889539988039820981932577382849510897267257418237139704425057923848924290177008293719572655286582708058262451035030820555379079258054015538372543157026220029250482528977574758522774070441014697005582995268484564546107785856282148692966631962380783931496772870648244185182819048649850888133676587721328619648884417796465126725876027634988319318231951080655798547568877064719826814475305025880472480181545850835003410486630744899534715031121957515752586848316598151621156278719573428576564717816018840217593418714278675253021948636426081068240082177317305758104351591461020761332873037177560101250989503344508891610489457597291165466290308954890628789403173858240714739249984273933947094601501203310202096412155320325829564707886219589726765440877793401105815583817685748770380933464267401265605186007224018623527569732397041422420033746391735282381027872061137764989921612605965069040330488745888469982717828708250881079163110406791734100601624841024644721923950707708934985471091780543250011539421366421677876689024327906566977887943683666682415327081261111844199389704139538868749492138482728684507844546875490566543516370053009194640735914333490148961087279447532738684897213837860926428953134338415507756689641110694893230967477914451203528432419036932121057672519006766256531049414680531028271919612904188118589836289679825589791118110724078609434194862009306340473903681455659454084637449554845753691660732172800567735458040308798281055864976898508988110513395789668738521885400010488805786181798694847100520776303853271923497410581164601646750055314111175815466574285567404322347364855437561824588707957785876569964193265089589603778577765075397134086847025249593628350750544760241796766220033686454383499990702510271123027063986159128435736776388419473355364862556618587613043298057351055102786090432249171178801418562951214209232223055114204910959642761547790117614130566162729833939724043931737771318300679260544021735555289713680086866975836870945090272378409912260668519177688363053160543148416101660072803970493292853461412107291360571424247437376355685422924517741388583881501712943150013905642978172716070709520664345494190779441938501975613091742709192600845680667322520760319270504974061058618095258068055853515891698673904876064693951723252205984150467408689621921858869346059514456678072375855632449210283150394928186692239266976833933133952206563016867376072773696940151049194373099893870857697236526241296085100029753699876655195494463302844751347306080042470656079972864028122168630729953912384201051404909072153327265603622116163555166359429258789954860729470263597039892009480368452382097332445972865592680661626851974125975678543313085819808027971082072151123069676867381944962458521884284448601967525328630532886219192944872445966317405986751444350756880478304004073774877914601714312039991560910253503107592705900678522692758408919973266204942877490599249856992271673578545710231240915363964575195114780654660428318337000353742625677267376502682833516002608575074867912965671092957350037803203137464375766369704145375168757153031861659506255453477020392173812981831248031537017076459240911049161213362695376860637560457384183881017121206394436678919096453557185134631251601926276661976217236575225403198815534397352759879126118762442692832124755440534727705742327486570493888136636765991061891216606851164135826272949313384728343457516523200361517055712075205333485687613439934842119368081229898360469937925827731671091076691433402179550234383697084795725746895955214044113178521311418086018133717971769069295117470689476562414733922855667007011336825342454328425957450829348048212047225421149443498310206442584605679941428760175047400707650509153590799659375489168760008191163382266412689075402718659176753412772511886712463758907846789107412574900091701515671561688196341822643602881799162102357551633621997386584262792313115282120266960767690104957097400842053098517719171717271173952598086324212362635279298543538762547113442338599562325285173350228923768619705605466290379897837191289255753841832894673507499070093727300457121579166134472894455049693995133641532115931887073704501443602455228024215646928357971931808001689627673563699068557378344436398598875990754956695827100207311863985559503751682219429418405079390641947372556400619307217493102950680646107110902397368269940952164774876744597235918182492688431305287224143286493882355064162557671905397000569427645771271918729313287565230418981871819999157802642039957650557122520742031565303617044395419763236063618816284898253083316688224719688358399326709802147078570073062405481343816878582420155510594323991689613117741054003353692529118277676295331862041137378183579316988381661001604063426241934740465641136234763068299146031050197177302405273195848050160394409804174865956592656391272454869829154800512386598288090064611050465787686086433267198175856028440737474492405155281477103708768787760292848038775238499417822840942139898767502043870224401373891156986103246383089160841942543870174193034953553410495035845268678855326139444302184184312807723155613567381793329292389232728952391070330685219336285179847156005990876397443531766299732303643516891816834306648824549680102880007817541391694202520146317404378933985543635826698726319434653815930231346170059594813226009049639282814990973622105143925602363823955279285769077113614287239884928630444181234159240698911077921083633364195613309465502578851113882066929445935001209362272960230755824608962219789521883822857775742230445064215155375147111554695631410417330059856494889659673023328919938622265710103734077455665046558854405728902096493455714541930176177119288605293911610961121512786962959328561750993894617428300789399156029532245216500190660806035486660823653381845445369752629287198726975767322867112628533743252851031209216383043570777114568347817694547758686715029437774515342671483978217418613769859627675865465042356086182878159283752876352244159437860483132957822196143858184125864076140338267064488871804156134248568429845103100836843461045168554833194420343675466369638525529349058676452836711916452882428826636129792972719682155523759288017123730365929054497396977135803245854817485616247441150569250287983372802239277024417638530885129068546604624309744681583371751117373489157780139170919124496846073819025701197736240582520827938702467548951260629307707486578645507353533353163987913623939272901458485386123279685411541784700813178713016860086372673100702107462637051205515912605306426523705575392636389559269199851840748848769805537946501713642042950022489629779248134411741540535499041666404560008205260601427959367962424137814264107707783327359411061011609868398792509209345599667098082060750884370525655896706055767818904490438223048377158136301154423094977146520810343322636004891193090604045839075310856116552288117685785775917500955552772499819395661660017667915518374754662282817469842788528478350553625482064681871074360493315388386433445185565589363552562938194387648239255544487162230872593092453318619277905508681831397445294698207642538836175973669603715641085447601391752409026100761885640401908334715692104022814966385188079864802026548008503126322560667924420753993990622704448554113943355221498400258443547013063690023776666156248668617722974105184111967093347960152422465944587814384277349432467075918677301171253599185114356030361440062931852731370396415430658581891545692842083748034153176373130817224084381669181510810633045141706886092223377954361189337896283002246062857740584754976417891997190236224352220666159249932891310967988511808503552253050982904969821724019787722096038682164167000917441690985781200860320050125972213113135705090559057869877342429486508015451797299168999747759479492849182994136708510241070712979841472913889327014358670986874933466563121766309841163793088756945811011405235290817980313708063903523491146805180900320780570029016467205279219490638972703264129552294427548762351023614289803343020398671552495669533857504982825534125988059294446946312906783403824972192840037059473125408184700351861654612699767468241842235960786404456615576551050045380551168541499944969225872072088870937968484784088951672268325652238947357163571424430332162847852619443167014825282000235993277196236612146655886271746995239449966668572527138574706813309667832782418472414958351504112533661472926185843985037568690044830215267496517703369858485268600725634764366199962310941812434926022943697811260309577578499706966473846278156882236161785684375393171671330558703702945617250963660555460424905974246473351007682499464133991047759603431057121697467392071890255147974765616390902008772918778873703005399177342902535621173946469385382532914529759579660613722379662101730052517492157417626458444612387771646924168976640804045640073746780810893068184375704751709239371684758952700886954612981598391095547735742372817952617681110481641681280058782131624634708960268624017211294249276582312381924999457326430106762787372321871460326038577144596384383726756703361140682840495110269076908898625757193167601744104831845423730315896140549757802016948015889139357748566708558321234549179641972391205640568859589369927068091602419975338410898410735770338814078513747220587338228324451672082079078901006800721218541250318814394634267207828812725678208648882654728775973340140658387008463583797022033258480674281438664025168842885524547895501370100475631640090052080235917543054689000911286452642381397816344480841985580357256069106022751976302175911429998848598501063940897265843085713598869764241686603037976340002491750112575923047718111883012285887732916638598369434880194595675236006463922325960670262112123220011299529953809195049445749550383192835949419483690214403110601682130249556178149158388525928598747118258819813548522141420387347587094489069186635937293854634695980800540817715352129959504715924690191272082657445819629144969846999032114385896802442938093393036169805290382281749145731236756248501830879849717880510704752063936847306317094441882961579690258833655573061240069146435750764889756947714841805617410955115493022284672600495396835476488351888488248594379683533067036504813086495042119165857253148722138168830640735798998970948360018149388750591375094617986794360645765489537727812537312475955296754899769735029651973918745281581362007178137530774201829461110449982749537674655589684026261256857424637107282358299636480990412790934203559345733877155205290953806944458104160595159631745435443946808248488083994036321995326215074857599918967849862706650729918593177021536998185346244911327123403949281923590850732041935030437202948931979043850091281643450110457722533860319499729800046542611497931449947469179659557899594456225207771423508512597264577767916510174954225215358187815818119859656498957589166435255783947339772085726649735391859520147235851520428724997318162114415683709356099517072413993893859414460980910700079352251206398086189737928408968985683030804219417781894760852508898774056461406045767283972585859398451688747896620422267345244995711588485391225366908353856537088690454328633352491119837208801356545717610771088118851935224960223200528277279632376879774265702333649983638079295330582391001625017255154266565644252454243073600411216210601510833619561041592016062333502654288422231998733196416656602372766933528483617766097266388325440832195274742176754478854237192460324022358508172374236277706896226265225784039699267870342116460481676698131844081362617337243116125541890292337906085837708566833953834475397556227160963005663710692029985181818105974728266001198693599346662242307505676524498394297039383496327818596665549119508078008008874245068008108346547968017473953018848190353979324611047873575273401069382974826886314544615808676538131876033762571042826805025613037043660822541536221616373892649609177258270730215041283955803085512919605945747204786168448864602868408483303572805015435821078744595613524304981697588655131463443186678302054663148654891910185108233317133681928796149983183002089135643908578807007337486682561389580077125875582015900028783481502089842412178704829565409325242989714654929189313046183044657556167049511770140385014042150585433863887201959347474061223103650189824659477346305187698770270598699590231784825682393958306152528572825456460979981963322539610641987063944131910497909010036489736673224971915778791203899101206394242554616384495730055243574475225771972838606984829484351645703888498252871004561839249166023235534853113634958272780831803171421731267499104206011621299070758048751302720984971593920588292126766535049234180467113553583844195900920778465113782707585417209624829893795931070440401857785905161305289098314847097523576797581576343329405884371238669016175767063999259527392641354690185097028120651484905664603263496756113297259171847999343504585510583351870797482984153784862489238924581592615246479334888549350724742020617890139307218238757711064045737607342197506081386558664528594782986457334821469772556026304602240515676850675936900062851649389217063130129948200733911343006545487046257531973525013944690020691276603852409257857775496729192605752574424455461081973646077973890153290679439888663984530303091504721180766869543690937780733869598432493903598496048117933023390957363222186778954084617710583221654119205905594231614752161864707581194426519858997163823391632700023786915759624100372829630470339661294940788802352375383249658299473586265307744297191331319316168715377759317336677551688738224384400966234993351640219698722808863078767450534931002427114388117839772725153132988411352952223013791292538782661750874845927450966860526117994121234298349248949799425163533628454974425956195923664913532260567142118165399322431931516608903377795790372637152760959929036132439451565625475764269265608408832752227480549650496104364025175974401854401241850143827893274935648494795518781368695679248936717480361266565896700097501053756621986215987181416865669418090017709027689674293089195837095343121825717437108893561232248735894903300263357905503430395597650608536065919210307122691728438932668267512163270775943807327947246305253320407895029744405338878870574580870154070480074357423582118508616463848243907066981015555993816132035424739869158551106423805440182829107755159381758579747335620680194564526498039249840080534671886704924102050042441736913177971039771160625046884596210801760037763661595402231051597579612788022903701319955644008438306307454708652416095695041075088369006928766523374960324784476098155077504076611336407305153357213727681589167581092428885240203467811318049407127909833813140256704643836401131870706723333252276596353232469574816912265087418647613813565563325807763055709301912844625966503075486997973942121718917021597382702331581483828203572969219626371713435052046755763892620576635910928465736412930012876577009924483021379069141496066007325409300708045178887497558461185570595259003589360944460747279071980477935848352473742646528321920957754030961548566837454500382699031699148498773257221172733501042081739678466750321028037684582860055119145403089157340079278773553967536474723559504804899288668496061419783695327789277612129019468451578499241621482335529466673795925377188092430093576565691181817197549503725857340346734119001050289944117254053876994062785183547847953796704996256949560759736439965751444448408098781845938320684115864434932477019049548999111014055561829277176912500613660822295692833724769878785977940743254142645650265990597455297757561470037173715894596645382130471826523925662170596513962964728245373594926110229055448279387079281342654094999174726635856663735958125118271642032831829022901576519334415994711269072414551916691384924134464777819601257306453034452309845838182278259784616551971362294477044087544163767014368833618778373775162817613205798331772465970535440210704457729446473173475678277064160825667228289914674073210840030143399328452171205193757583711941755040086602670782984827432050312474118170588348880952218707275449429910909153688825764609701052795706137275792096879329938123155085107920211150635057262460014223021153926618572069254691978895329269922684172576973138658826390947099661884701305488200457497875911644084626176699246461206494835208578170846813535849171174234143169092080441739916181810337322477159896128434364343208401019913443579399632748664864466449997820585514408059900070119523456189364587795389782016823856992022646170955855991501873836347265812527517179356829005418899992349094668468523650114663267019249138743627975148835202800734030197087788525604740243605731617765553844123463698993655299889435380730868367162650227797208374729420685691311558066463548460383622683385969803786777157441349190727729558315477228703653289885494206758887138876015561020096660184530549992233170998318992713986763471235965493693341190488826962801748095503222542834779781863721684235755691023875185061026926756421284427310711395363172158140925848959952174138096210363207196509392960178837955705761503876546487018948546117936833306281559805626367666587436824585950478250277451066461711192630677941861598072620423594507011573670037377327007585696117135651662469740880523937155463608603664195544990471472714316524000653764283281315010424808007131012162526008731710153718918730470930099589916078060954014541434887684612330935725416141762172640056593163993802074325723053078402727334793745134425159272858515080616867106689146904996149870118702755370069101533281569647184345299528830766646248629906248582435708172847447948279579744241403965196793469644349417549543378939928054770497539125518741659775348319403943318672630375797359416476341357919915702699273046502651939737108993023692690028340898050701007465572260947144131721082205572348642536734611200709699016945711333299355936093759317873872440514281869526647896595780546943472931463598583492190560234746080507965352038417916659456244935248403995278516925268188728740763762734269112520950881679723423274600522797480916861728660208853912744886417387875840707800966499832739773663443195951759198009405449521755213816807165253287301359279488586630962120376879159639153672995190516280767848144465983650996503849492362577516342417873612242329847053174403713524108136317727399738265737579782517988564078694737799621951066001880406305000032144006120935979136800844527746530503288976886096501886262577150464115972784951862581628583781319876092978635892733243154799134032244173886178575292638210806563812803754584035006975129721865637442108712105702725758986861406916757110222978538326191442701243250215777100375716058330633966746380368715708796181191247084682151552112205747926563942270813962371641526152271924971631957159335597374540373501212469565318929280961676837177170429006936993889129481457813887876938531224138940605056658557251947489982695458346196625321890337917343015468825870509123157353807792344869707797193394883826761826579940129242144216993776198605122874410600619010544176690938922042460127596773507693391093657211069988779165681072721601579317639169316903098252856865495352807092852158976113180193438101376168457679043264574520241395114581848107342144868724442131678770362212118832166893112613877518477570297989130167251356083205865252194461786153801896841534906078203576881097387658371141076185920757818362406192484732991114026096449607900576986509698994909881557221616181390810481933527223471408731676511797319050217899866145219553505385625262148262914608095856327142705553403384367710449650899897206457068336836334750886300956830081275491202043977036615032954423722935302096213005345053700074910607409011844131292979723849812138645673998110495441545367459752327161204251312222501642364756834094115429215977390810906163297406299794887819354921317404007252252900489498838329301382572845369963984530995017168717725705415593569442133705866422641715551089092357805895478945004145257006522381667639318799006709797259576230466145584206904856202168854211795314883814649217933482252874593084561428847834835142398285944676049674177014903951684676410235432167045504752302152432989619966355209241281529124177717375790188914027503850636706623488390037107149971872216862779007808931812110116493295853352200835809362035026139951542738776768000807442396438382629095488782568471283930781782391638307222671071081681611027028812945871588582408489444688999668926957355193844211441525413628190690960782882332991128829102918046454459819533224176997835402634272917142124327372471545390115472078353746497670893974434191601505661592935291749836753669885444613886373707528485826768165420154937431014085772771696334822130998869085350612418351683559111692123209623187498023259436829453602507705594642936362942006611871001597524964849858616431009867575858567847972892052665312764402503940227990837899917350346944824971165563349991449590220116073484837873276273023256426366631937397969618381439304218527664275808047278287280776655016626342639609581751057547116094691914335786809932653400152253802018024312031315700556985634922174258288599028623276783423568771322553408345595157301928325887754825678513874435825249442570250855252655119116749459497374275414227175355314384751178551560985111041851521489476711376836783565662585923810928510459540156121523948233360586665435279373692319985133559147768203221172126465598885326318838158493832327818217077627151981822606721769153044672838277424966886299756088707519120575243272160656045684074085121857251052795404811077660928417567032532213427065572080969662680656221218262103721217199100190561123021645617267761574075028994602087759014155656301114334195686274196814514187861463830889241183624438687295239986336659712570562542277674278404703654916099529548973956046833992315982519967330501805039288570677806450629606446583343256264301055344192123603853384088442062332747133283401102168914345809829657048492964683803791907264863841292202255348183295836099779265769238164237290631423501221144023654597920146708806414513456093284897664003904259415546955288796973292996965701665993587231506759330895591670582717076816563223953915650044791602440508893418922834729191912686295684869774628695451079391608982346433811993314494152522517801209785219625843201444991175429794059933955457054866388226661315926392949481523640788677332333077373358588544959835784756480156499621688108577454408461572096491117488482818606452223825108673136073167126005687433887069079626366159413482367100558384141109558340837364709839305539445007923912349393615543170672971951770369886174113975751435662120804622056092118902872263239162305779653738774803874069871766996410437608509156391834887617477771379020133484985832567813979665668461351868260765816393689734504905949586644410921713012946855499472813723269715318508503087009382059261377284906493265179412841047545157862543603674945027156423569774339265906227071473538064935279436326558280264487030448690797624355359856003799981998776495122671086545706118833057864606911286188577478725228868988387805264643886729013551152267546202477073183713987641710103601999352258422131568359118085316478159825745863532768490831915315242836631028107336025894864426653752819052016437341129558197517876700915639199176993956409928414967485958835427732281764817759082394032948023673732132389836530376426802023777818237855969787552132413378877691273721525389913831911520624357508110968797450122951087852051001199766190985869552055549067594276130236178823181679795647828060847307816641701411008348886777938974683373904895219904181989436957264134128227370681742930099798343339866808456736213735121863385901515299908922639490917328934463126036491629552640770243500973179095205093248832943974579655817892336323482640499790300042369018968634739216612824743285733095160863953087908609562990145884307770193266821251828605635574617657335891489319828862233412357313533108611125330167416516229533469732092006056319257874600752427403179767359509977183963528899031273291363473747759759835765125435220565983509690404359527006461735730292768209557068204641981463280209927378240728385932516368146075738167013158540514659568374170141213275510882558132465396656394655907515045433015487433750832805957084952390687700028964921243566629286819977796176940486335748270372310402190087788762406077721991136657520958565698371991554816904713931288272123759878577033316412606762131104718747398834611525420505062552478198021336614996925771256056427635617721287477733462294905808073285735916195514906999642453401016744937774239970420341137788081308089653960134237330289069185703358641263130610087280165155188983244900315938964851915054519223936477684193595270193821534101172547417417577332272552236492378285722203049076646071122842393343642465570811417771980900901166778326674133413684801328801302211506696590642050860062225032229682265118358857375738885539645761310197202061171894766527167131311475620396290946812401487937064342890138121028371457935825912513599149832592729731990216874290647962779309809274173423435116708708277087204466005282719953007267368401345797390665712012939556940520249071416014481715099934409652981361443821961062639175263111270716575179050008813034423161223431191992968247444019701627847192591469522541485746300696985221921259105541107817247343107710872219572081378102368150293715861808986257309332043666411447170758476772440328947238084874268981232897894826116763628502262318740705912972221488982051445926788655875240766862565695965621195463364591494851362360250744197263521887347353772162103047587846566862932167442020777656812689523286280764830076909251595293859176327636795712635568833262498190773896923304797288194130031177459406152454319977670825064286973337536801464591132246678734152622917570501221287887192369082539392543720192681330972838417786635570537453008101435291770988122985874957096052297683928322549416853225536083719192814730665682266800955316386951452373168646892675222815760091230949615794984956471567082371502606455185684999119148875236470177595897318325272832919471467828550118327630815434012463386877206161384178056828805351229575827443536072042882451364417430361110267923296497699708403543391796061049147362971485746191852396994197842812196096525508808812729857564384133259411504439548082957288866924834031917131920179412267367204989115689259505409841664413105453801833627485047209681194621241578632692444386760319765507065737834786632507959413281897220360425991766902020291481094006711565316847416312620403109444951955080376529362947701889796536710117929352774697373577800700073505084058267156020147499071134645529225192250918850947904875143647849934650313746362876414655212084270107151095705489564304325963974129648790154732365271351217435407663040389899137003136118253956522835459141954748846594690462016671970369856384761431277191154905311233474009726209947831332277012856587481429210920790008475970038095778308961548913670810687321917265070788514101228511408504958551337620021914103773197257340783800214738075702824016402710740524531909998095902945288349895837538248488259344885728002206088815840734595286076047434923742992038796601278457761028761742948393672431932534626524758159200893304660382721374976457605356816606372914489474476417474430924631246476323492232867579086732090723909440661002522335370808623689655894971450738442632786530459739495454426513214761655384603374693492036226348556323707977247793868160682214403411021523701309909951555619454370791511906479840267068196606074845086443038041841219820388632186991827560603589211896920963872672813923707326973370228294547365349956963460442721149184642822926061219285548440977828103635479965910164989157589785763343454457300895670565625097972215722718940052081078565120562191374079045236903702944132836448220742576102655487834749915999165815545973241664352102645231675689639033359390128555166921120908494178889491497911753953068835618935010914643957298562716954803634928359989309240611269146502807768238330300848316266472852170611099271715610506351247927857615110008010014814060648903416918368286925708250591915155990972952650337097794523162283838248426578360469858138027981922662001063215387543550355539926431775519066156505287714479020511093565242114785493155040164122863735433519392043344930836738434576558179592275379783091005713072229698927913374122647263161060062367726887399965039449767758092489557798649398091507025526654092501516238155665771377392031071063037759484401749607132554861251297155177001658339560414617816873666021609226007498992799312720189250645494441724059233365712785087615643759620795315562688441888982589322885572710438601850168501093838379636100023307881291525855707611781513798007281212128286294298178870749209856026154592335540488279894467032764557084469574046624046777841730658375109451840082880445582792586742333502291670583222375996947543128582611042932043937581733274851742437874353373904922516491162834334729015607989849394041560436971491019294492530036646786838078797143770020017110309150098311601100322623808940998160129968227804729191202607300599240422639679730387577745971357400923568058117586470629563698010586305780651766547358454735406147706457445360628218834524787916931028840237898660475427291570559271190592606223604822173073328936970147746317173305407304956445339655045040571037401728399774622226222784529539862172648083713981212215869832768660565695415960332534062575762892917162491702370483297070107428849139603407355581954537817710544838028869397210705293555198684495271243644461026426962982836540440703171528581435599969480818089658969744157940887027425246195753731666443139379409696337889191276255331961142342078523334006621307378495358222941301676689847940050395843737570797073401751903499078317712927468202444300494584786653613469056384271065954669423413052140625257632054010053109081788593533691924538216383641400724039702524417520124142720678621579687998641120648434120739660776292873961914043519749675801829881218397183264505252016421424698350120359091296546750656809942410274085779995645739053884337387050283808616140709085836724119889145360964415480678361445171617096213579205177930643618077199449841470379239135535092241529501475702423341592505651566759422404456335202200688662843949612081645310587417338542245559388577727008176780712971351085173190972095774552530178242929998194619168231526029998684286957447297636706216684695675382178281268369924304098099137429976463690015954033349743823538786481457492019523169302083894036375205088134085560531670319607034959658133090172856686173970415476175187729730042186540776488934662678383939874675041515186933789839367999809131036357636967569432697363506999282577518019114944671921618595415047564644217018566106135067752299483378441231424090987868419635075415732501410045500364081380005645307651233237291491974165673878521189212881189388711646570672634224519403475325123307846260151313345236162825290716886297965500820878970396021518800242207264244701161525614132225826611239240773313119957958152326683195703377310623619569302468752399975746457753515600054752792802199888872425480355548087395633442083118944230938660814355179260278387496813957189528067398152032924904752667946850926810581046661961567065573938823649515549916027927335427805855029768925454163789051813370660945929827601483540402753039963129861611016852647812521759935070259579118158075714345269113317668649852298243031561020235684348207738819485956524490605811497133999781069997112185479305807001599659266322168552502322074594949296628360812385642579229898572125857557716671139244239580683715407935891832898780276149157041128375548387175271640747805525459554675435835042142074983296250251157829155613390737269324971613356684742802419540002836827888250494712615431331928637409597483870073645200900477508361511597973433154362862208831336703729284013061022738345591414578012506466908233174941596031645309271439489497451116271148247550624946258422954243672458803277607687180517719374421746972391088166217694130643028150561357062449084629563423247999293047304551006241501310342140148730910803913112460434123378391266977255005766224197022003336731605159103341636867134918076572547792697625860651994580073399477824944958359105593766539131642976977016102191976570351662801429852301288629376545689744405969695091536965313660038305045983008576466240976880185199124961784959363521512977161909989637527490418645156207119174320256012195247538566559211742037554780284870255503783651562996015963092800021795426136515991036300496436016622804164658507689788473121087267102482281662723205765970041740064861495234975532027849130130535047520307914340365003273074930596320492225454010312219842479063090753170857747430179074158428325967413291879788631271247771451697447608192144293746963645351427354497700708408865571643000153404768815139223277132960416057722133437813335028415612625879816005648489224338236435909095485319294862649599326005975182755644997968519299883075572349937867069845954085778997909685743477134858058748525120030895064186359826116194969875524646276314465723929804940372571574475008965047929722180512447607504442383374401753658563448332527997959078433480844327373565296097281581335052285885650139152132601292947430626197377731852167672073312612485449500819878313302559956744293588735983550201950845050110728314882227425718937197787253635880745640836614195048288810036223881872114768784382145672905378857389351671535934218762854837039614864224793326052422113340875051565731827913521823359035454284189589517032135947116400656542892568149065797557947450464763733021739377979017196177791100027957035456206356714015486973881325536094247148147594961725043287652915071456125192425031384597058421292866858091070503108464559299997957746677682715519489643945291552333409249887898134455097199228126609459921989685084748640146901249465004534711837337465972957360228410005382266603043487378247687851071501902019860984106676364817903366649086303737217536089594236198835257895257412637457379345086406220341005362838134433694047588043024042307471946920013973927297910830424376437326996467596062607108920684334036328567602291759299728554276179996474313810620030727702107758472928879216062815595008498305010330348357775420355835668440972848182772356382677613350698910838765474029158546765037151760321798435041814801186448185980198948797194939829278972069665570487544409505492943078308361553614802006988805566032901312670808721623362427640750681798543024947904262380384246152589691681998840542413518529246688309607536641476153535143575282624526801694633408101796012214134104594849447475816121219359161854634827013071803136721983914636797889261925453811925696761736512948503901682058338113800272303951879076120791261464786006585694840756802053891658389597734419484334378517754754899443159069892246899727998432265898510273300982376935512925644238917353549091654147966519695425746223848703812918501661040201179253406927195710184072041446540301051897501773973085441149869541127144890560831617239380334752515697276748158870443854960104969301126050539510789657242971824551567902772389194329428939365459377083428865050956794431940704265681467508446770349443153126848705018466984817558910629460970738074571519201056418725732460003988949201222499058393933019992236665682363776615424457973320433237367903070430198871653493012767843546014328314940601281457257481948100802063144799076612607252288082152457320197182458302769602057288166061835440270309942287842860478833692415488118685861269921413918488544424214363971335429008793934837920647627323360303104452687958225261217747620156327726087712830286258020490885205367140479409316479756978064106418114332306483134466193754201334112587351312834276145810245667494935332820179403635503226246886657916115995692603809672836538270774070993150843147595386569730026336566656453371599991061131252548505636609776133468073391057350544797398576285773184704671406050770651287544307523501901869822102698305987635373910381593917073039170269210209457807024266566465587581114068649939976909289341741774234124836330111471497994652675274558591163445096104581511416965287145408142924422755737510290658323812894448986106902542230737281489843882617461775067151250973201969548341003904484011552808951188179333539799152832746839595397627798047677760756389050263965905092355374864685154729061695778697052932571633795715874578878609609046451891658008842107160873199181162680371588878910716421546948028212186880554623113924068286761107648378849504540573274053886955099684258888777069832618934308954430441033806889896490023148316629100777868458482764211815090337854371754305851316254120419374194581196805604226167948811716477027996036537233903689928020233156873495681078864836919343925446060268048878607876475379326519394428376220003195627440032308009244007822302402694332062025690621991206929139391761961526926026483859985979428148693492713936700301873877439653284138677648486122283622490758795525075699604193903565406090645140906628564927266390065744255079977575062145062026447611902777580947865236406280298418030154422462541127407546593030319594456780940712750054051556621660479629987522666107843979950196151605554437513646484940326146377287814999318103078893211851517274455602596404478432372017687443246042808445544486595312097084079710217733492988751113376410029339332587673505715144309279831915374999567932458029955509062685254098508587234267365522308509498544254785439968242832843214403144455044421322153695852055383479776076152983357563199942159725266974270705665031517421308429065482801534253272197130063510079905512519423539564849754360989659492519558383196811532972633907477976280315150294972438449366052809447969138663745618901838545728564902341947996225828407797064638781956108767259227413250135623289536850591010961434579086274489425931470819997847045942194524472548111537894753159099134170710425734822679927219956029709432030464081479321827834584999485674328102971714026889375642414478447907089535219887838176181495512601734498365876663320641865303266903481200739555042075052852496240273477454356788079447395858365975417019230732088019444054346503749259787853255943072934359938249429778588282715626325178300587401198542546935687048927316238028467097913888985902600890648283181875024583697898644140565576757081438529415596271150821531431823959618622459546764141927434976144402772256818629435515146842088079803579517663929983982384945919382849176744137708244637424197731265029922734861041840121553727265401869389289489805339622521048005843464546929819480412522596730507635499471256933324868214954489209372665579443164112166541110683952840332241339467624786037835848083257116990836508067637056419647552420355535067667195463373561275479105095795951891868978071028569323291770351344878102756685652081282942980724491317682047690825205388258839893342241204216755638215501777005100568051354755411976831075532436204449659458357217282111951501277585360381550033585267891503459504160747476780053329405821726908054997684900743359675156535554581852094554148357179179532284011087207082268961018551057313875563438655329522918732903146609838178111727844503629895962938342999121982276169912667097520961555168953140741281995531035516178170712774446751545011846348146245116749273112611036640132960748650284117004972849766803888244035381097486135905458159559177920189009779013340367028763207702401332305713965384992985046095683445918234392475481317402773802101219058718243868157141375315758247955722576644893846453883184309614888696634337853285389277157979971562864498712149755588931178864555368561838856912838941925330051917527523698553717650452690423390291981053464833746813902028418437829495010723924431862416316568494995449202768054618612793279177404333682219484144524470687430418464650802618312963067250747978581048516893255978084732326343671040943025509393514132034036040108506958017964996488348479690885947894929624995570348468222650010871851822411377804607596578739674572833432999563246788426458319120547521404704200940790250027817836291171075174668662898113753396627660284222409196517666970700812436898263155088738911400932551070155472917635604820033008438704848101588715582018094854087917361491808399422270935463960904577668491199321196843453452664688394535003403069079326180380840867136406671493618988943687496664469276314184887454338852143628066971702725973903418783020714627811590737432639907972030270296956827219100934036282452034861800888718213942209323364413783954470740269530791294902906259740779275022501075148522723233608722086009010055262894679498834725167289008346035189984019293840889396690364532926307039269796569870114422006195218424942067361126033147759889557109295500004338282902733765229909664074294090760484914354577047721364786065892054101124052279762905415809471836552589958441069445069333802032135566505812319727438131058934610985307300251417184857461785239709454173276718099604873960043699695597207334605659121643042717236583839521487194007265111002520189422876747079420020525716525333545698030757645645888293706081488198806551755034248144001387024679939610211759666980302878889167059716486352822758084612101881894072809204520087437529027179971547720541924861427968419200314951550327727154442446503683272688799429988264802188483139067988092932152339292814651965822767468094292605460435942659586795847435982753801261933389993212498552880087201044072324343176095535977332123294840656726702887257800267064946069628682256814815523058861362304606614657195907076461532248562109935018795914229929573052658571316633085889720594985607449098054301611230120107863692092857966975267365355458260021026591648334458483749108861403643317269168912872964235912233138665116096913597763785713236534615758288533013383096668800069530727768951294531297519128689169610379417272641810098252202648956287966460022732330220519221288992934725632443252083223281983942860793684960830626676416782893527037630810669954567619216203257623188063661282101115107253519203913019903147168469112348615296208055690063202514443935183415158565218020320833492863820976703438247806818345092016416915122878490792904422438789563676756612531180396530867198481590179024345099515855179138407788322570534935109994661382271870478836160048914065084344802280046702388449754611910649735106558227654516689121732323838293431454354545372788352877147849376469569611942726096148876957057434983294418435051088947522259921599640860317049763273323961233776083039903363700093857946704166506391183505890075509070008846370880345052477867495949035564094655890689279637985895353623972571702630010537677423354399157137118374496799622695415600252345295672593186042949016720331672207671038111070399244506746242554143377443644068499686065933828134537961181878940614002888490730619778999054050466660257629261266794937446175101051196960285340188042854367123779074045963250511492856751999480260183208458050442626952651530370271030771084238412246077409826303572090656278303870108547360737281139930836517038857373702547319755602574063604547670314828144483131543509208700890423548418217819821024014473361116296998920719585872472779739067390653196111144286663953312796809846408781968021361497494345591689768349493784700816784551705900027145308886435719056799624545375896318840725174288262450105621604588370704937073298505151643339971069630482599367903124874392077537741821705978918092436568036519887340497624403347964913142371611813712678708985355204616149260702428930302625447536645516277241919341302151200423338524198090810759357598274468060827235911489256228383444901219057764562277126700987418597802602278016355814022412348518249764666201284296949542646822863214668920115653314015013937148635604969945597411130047875675873626896887627063161938986698172448260614689553723593764782228919313250238960442347707020606996744389068721303959159308107035150145884345329281713334942928913060791136042588414673832139498690487555769546053500291486115655936586114515293740337629541201805994613495181149567074588439715764223805846239400274469627557891835973951130983397834110123416010583711889962233352367049557907088979986512900475692501048770604806996992810853190008811350465922981155627400535938592057217151677812555103277638468458400335701149560605158360800756622657233390143613337862289007348045828297272766987002527303257201984757615279410745567939167066854361691754238083283801716071480332626805634230033493707072023875618088097897326955424719117801550524558254909180447064100566657343265294764600942379251915939967517238550863664639092295088019681459260657901789599191587288508070839521659891284099630925736627860712075498399523826485231308561854681130239706916923339934945311861790776054201223791656044035734838742818646254136210585372433316202250274706571538835691004453929570204743097101115308674775583349211054649484229713480972373019398777252815544594887158882894725583542933745259497708571300373198181716787768847439100327277511069633119436859498573709415083303587286936771868523326808540211101038011724144537285264287975400371400335506603052721607762500181514308385738922067955823793735360519440235037962352814594993511486196501927531342116682102506261671385285977553628714617096529994056049201993322417306372829910930147341812257663652255639674876503353943993722096769393396166163048223493467534530562890736582276159134457185959651342127106120437283813727698511302513317439314002041776063787262035143374088079362449074122321284894556292919312094653685094294732835983248694435879163274625992945901152522779091729422474017722638152526733617461921787234710485708223305234763378961761031251122946074145051171139282262437435183734179291270966168407443815299042523212946764893337435292895477162728484614922926920983211854238252526351374787635292568046799612094298657060808649517268086760248204144293125183037778459311645890487323980528208752547810019536542203002460479691040981488987717105632934938449367798619097379241447566914047052913310590694277984689461367536711650154349329229764031626168171415717750896709165541669482298869095978047197523863528326418513642058375013170368637519367714408855754352339293913743599385903937499571318479953535563016597252516291832938292786879624022382656952131024049048159654834106023385187399349913994125111876564586511003818388411919391005771657803202955814273297827169139284817247315529194400287269845448738279377026455611657670015696040415237047675357101090655252300460586201851323425346087406516161227375415292115698476621364416913399908527094054610047546691058207435467197100857627213795174574042500015418293854989299497300300862194067808171209859656049476908639597038782766716984681034865957373012427472318451495129665815375665751685839011039311960403865038655732378714731813439409721292747894215130401489321000829690005792233312141261349970054628174261927209100800178698422337004142383430244535968975415880557808579770510072373352239997097600665634336344070778380237911520573524338756403478723314269531909495529346782703036110737194421584235844900222064219409757261932041806402999418231723776044613951713900535173655555484691209202191529963594489024213219225830360523994375862436169060892902440957465570277156101520609630765267884924166150872103437606575376239196848535442203611661108774856148497491108208827783968898242360649859923850896317026665533531699531772422347666214416832777412889837788837643418177384560481614364063109812705298042511753576942219931900422342890100475180780178198330379810625423477849977328018514481756195656167204038853423450170174653262054354259079813830963395261697035663203644367857812995193859198245213897703518623338907861960866901324947140317133956617403261235652615807829204566856598049445390148784591326462674868252263457158765425624933037672545350484597531473802764264937776447161803199394336762681831987753436154662153859271657093672893346208609382203258090379459964492529677820570650759975154928188906896810558863136584678524748763443441559602552985663011212313727971873644730674795153305970640495921309757112553636291041421367754114515101880938158175387708830801641388099250936601747910367461841283582274520487817964559202908917731633116997454031326032637783403964273049399742415461092387505343636518443237773223596793508133276236446682706433177738893023587799295480371852076925420580011034326852429224210778576585869231338492693374871406033873262396414857253686720500885864097371598915195431538170021417834992818347301149078239993299785530144695265260746047483864129001944552309331269687722671801128529718044436441515629819043466203909534018475124150959021590923644371158378885342838104527532126747844193047233353358095918408404529228161646715300660463760293670050350224853319654187991368328901146188347527276705890297549656487072165709445773581446105938434119080095942453372727766160689472618174388623772679330484203686499867014300497715386726799891360075319314344231735171229823870390757800828691364099627593208654030873344595857893196344867421774065840937392316813780451964987932145867756071988273151935364292727117826652201366336514096939700330600986089118754048424084431647860947654518550655129156255720869667071267441767259170013390515708074468496066839145337866687179621210950234188500511788822744969326425025494483753403955634683000055943275603994943298347113605658629027430433368183686638797346780245788699382623348408973290133253356024971438703999423924921291684578968773784189451277471680867894793123071985859316022846410209629186447261459478529485565136567852529018552307340513470643449481264181819579197648003262007422559538589996121370978780766466060173032320119859255397888582587904946796104938564612645259659194982367236648316409070487263443845934538874359954378006049395965461283061512508034602301611400273025422755197646169990752156574653639987517995851754253894155131889012613287605597044616037320054816360066509558085585805573397638585525192058169970228323533588808685436163041351394004254622989020305959246161058757115023805192369481873470320584196553263229981021027680911058775729117530403792143245007650803909183645574086715920870056297391099208078930156478548659927013356506630679776927169830829915421633379605374496089958492914407835730842650221921491075189368958736207373827942917098316920171311118408826737333702002413653172444157166958912153651848258709937208889374234817877093133190478491647172878941929322057819409440641610719869044564001800082252157737939418438954358417148902253643412289721738764498003539120205602391246270501686729699983642717962357413362215716544839513664594097037712681261639416874649453063595897588625117261981916753176789040133643976330776670034637442768848007871147061362054673977673100386336873158026738664528657914392996917507036920586961016842307959329460833479102055052959886735841496421546031721282110210213844856708200258667655362828200441162920278772955085425918419624943837576729132522829120418688807686836431781308241322706935656559368411690536285763511067334749108046907269541647630317769681212638181553868441451281951615387724805979382742439731770184626160947938434563931301503572156118143393879733662115530753777190414422419633831505873438183429452618810394125622515862951241440433894941188020656416446617680502079468841111986290216418731791789029157700811133894362546655419717219761031439209628341646377960763248637819267022666100417322373945745139992582214397532789531066731454723669841251481291620489808152516735009274326000507732691249194632423570379929605703852063357285539783379254630678568463067949360907881362164669256353994091795138557675895493115889226918886914268098875473502413178893034179703689647726918083142540608409149005975238247569667739362333105145778829405063948457882362371087287223379938259731921184191053104187894033780371833169856492126702243581050086739172400305838291800365860994478040436999340238623022940722166508135603168749062496859378552225637191101084230571578845409819101261083911697742913533401473016165626439705743383237029007256728115845586002480474150544715233388251932271294995399658808790063791945626319403915010807087361795883123234731035964094116741409110479014902137379817965161831961851119402456131065829096295863630015196503290234770305726105970816574181933159229356639284525548259335182163396226392974873844776569921852559239272129378317510668678176891425089152425277663251870823536921872344459358052559223241450812124738611967691892385638466294451080208842189224960862129295961344739679501286058669416191699326870229303622465627839010530322242507834699509887926524999690614125979512252317529142741823223855781777206221367679397465712263137194353151671668711322827914520651353616742224624519135124993850176658212048987030402922917767960075090777892113000654506744118117922429174619376388548828402318705251495416094574901630811013766358246607604737122599886444532609908309013528823359106567743281833567635130805846628431892466787035824741821607759156403309372399396733564333379670414299631031513663566479763906937652838952433061306660658601146437829329188028155961315853758341557831256844640345967918715978857933537487917250780524762345334297100423439267616158491807398004482767088668438868190366641006618855888002916485033912866101294337601933778197185282025886065820938606476053198885068086157906450185233581460818072393728413738545983765678383026214243019585149002239466536124252009215117059972962682874372983363943087898561208226794166770826608904646370335379896791849817430124059841308302394088701924087423687948535891465866653013893760132394808340497298547864001595372478514968385319951894429093069118507406720611689773800841021354757168816214466113358196011533491096297017688963255776906530590804740060640084446915927348244566514216195114246038050418036289262617540116698743019319551005428529398018044611508369652067911210095516434221552214276824819939733658806124153597071916121503447586008002086472037972135566460236003008818516314881531771532523880354867847044828423412821226396287291589169417513990535929530067757887538796571775557779764767839403295113915094922100470196514664150989702403175645723058221796127920787919511065773350005927038973242750946407655497100325803869163724655941783610917470999738949468325065234103515875542030894706159509438093025938262809947079872495438643320147597184500222062693597932770312666319247426270470603364788939680453222481942950831606462988853405366186423563400999434386930585467790584483407363612192324597528210786712091284265230850229561431930927926625446114452006272156533324630016894975625924179421544657575326650158774021448919975746208133165856323246065466195363965380413248748105113879108701528024131553440401789059621186846259467674226313373318508376184863540092615389373976206145213906895374842311187071631520970104624968717630368487757037661693401351769677467098533340025094374901681368124138904462884968040297867585173697182653575584966125505744249892276451563699123598479671110029577882681335634787154941749206559478330019986671227391435987951852453789514073234746736461251835726913777361016489249787170854957553622265195617103053189728681046089923614096015271636877151689797422931535470292473541433093514442381730646085793303710428998682235334288521007432297275121517001866843443980611861511382400542596674802268114853867080273590574057919837395014952608100581734071236011581129896874482977411804537997190776807852457158931413959485765745759257323282276638640227056977423314067545125303231177481155787002896269637262843382810693608981947070742639650476408909263725884243134244531549240041133494326707483160761240426720172784989064783552329403952517105827014765645402086006190707139398310703431677822720680412984877354548714737666396496674453042558326596765600306219140344366339644601673143729202694715663942987313885974398264592373510787913633918972605215148756084773686824901033251670103995810066595017960751439808297404678785053188560704942408960200276141164588353539863224814179939656355633229522311382706707209918532935455043701952242868685852096535391033744585828910952637510913026735482939438644207268998391543756835149278959129885607477718521169263110794149277215191454685353551816478408734621153493676081815043511527498255816792851128655244403031350272643129232714647886905568220728361170673789394145657279715433773987094987609988014986886740088712977885226862426881221063085635170021816858565257360996022023238957611732877049893297882154292753502515115362584512709643480928990033901897010333214840219630956908393983573394968285993902509400074552147184135610732100113485314366561258645077553761740762756825776638790584960472447233353857441678106974144623933697992902028383147533759729791972174899807221504203119787461294570236447787803477611422998263889967592963299255360976351622361039354552942039567930313082922569679312549905950174951988341006802951765952716816318463991820275656666582438478841140628790090761925249236255505325332025997787703152961210448080592756362353618044912123201128276804170826607059325024261310992658966412481925501574193711069604671513131358499892834845284882487182786755266158186352262046872141164607290043416281370994560855434299109663212615928518112427012480542857712014428644836052800603614085021471776806411959463701889160701407100308799867101367312510099183207601718027104144099318908600083926392242135847760459280323838095078515363458046468554157340618274713959925588764832078058089572303980153278642711851268389790988715912974572788189279162129023671972419830665522413701781555048131424188256837818843600997167801993164861631964422352085464257806128690901806904984679795182749462699346471869252737462844999178568723328944798793877401719028240349006837833384470623101150717834468885252957772958493942114225655753274118946197193454567624897326722751775245483374933766711530542734796142862923330753594836976316737939325051014154451848695172008875220855808959284715140604394339752628331594660673737107288303647244946406605786691310613699122903489672434568346266009301852381858733389930489997937714860801484836420292364857287026569323199346281822750628479752306791177035282087486839608967918922172081020023282958985742776684784994122773121454066237200186880516264496883168538546028533291653445030585750957576905180084068332986964668054001172528279108987362489491987461578377549820346729364636375091949304254793091957341427117417794862107726442155863346049422845171756485312112141610586863264562120303718964389356116604477638582399425995408246442418088899563571372230949084609614347518742877823154042121160482403914975896721935955832031370863948397608430072032706865044621090256191800858568656936361467291685524047060530986157930881398856136069530665383193183299247319873609469508347031441402937430320954136134499333519334400558238965521725692348776711536829996156434284627559249218123533297549625824792621201202798772433473664864898990774647187682281242103993257233929254109750827785440748124181039325752607974849264323550575798010975065050177669664460344600783570012814439142668813306638915662924323660820005918051865310063103433315942501618966941524273753978541096346066401382282968190042659087615926280374807923672949908105282481348529170002889052291399462029323430596002159047439366700232352039183947141436321973552534985508885424079215683750202086579785109984594133316099856628171811027750055097884030661388112177634254556019032897570448977395192068719279199337246182809679177194639124181567758418387846926366866225709799683459614421233444516982297960292218702966534267819942679203814695383558652712881077577711217792354245593654631441135688675124851157240866538486382087843167260847025187688185987469283390175463857964965246753820142023102861941329356448242990892399069990421072361751250649466703049959369563267059016811052814693264899875808636366395507374570556040991002827715386649179938264765021862785039153718491944874673222783415866762621742468492161602413954815813283617543024041692819282193255526262489612924100985164827823498552730011486265305054229380353366590417395228495374484097835083804624649573638311088596102414957235662350790461127779377968346368296611712337814257452915746251658636818638614578840054088255110766445014197011443635677860331851750396199994607448723073303237207872012469661181972101414100233232385717855978770276787280625768755653547555757153324445614408027117932015061271937351293337029033028950086876267380327817331805177345911491050520458973312128932301418056953420630446902455509047633062766529349320069065439044215877314780290238336378294300383586986657253642612529709412497911423969218821118797200155404807603610069572597444528432434227575944671330472804779074982796172691109032407882832233621672730265115179955244562211310913708491701391983500732595377168819740850428242031209004970213447531563442829081599465483490026113871005516429782663445430830529549156770511590528946278306050810329736746295063302392314987179012071274591126031352321760648609694655560655610136711168354383591781651635374013484656266692139531366772819561221286239041622140623714538958520734430511057328430436618996377410891853201742662306694472145451193479951398010847202374914159806395157632607935680621339141072023340524669494407220273162195452095426301291986624477075540848180563443666164924700888480369966948181892011364469883249868980995243289924609215376056890902746898024434062081142907332215925959135953326473315950326327477856731442014008008785426083944094322747467132018813471793489933372409005406481627086690658055910473726472238158823736435569820239412047715732574525036233341016102316072075820584831478249057026615366618473286414941951171137814168341269998340637023803209433336753581903217681681724691665936889961494604368561272132716541888925596863991521983206985692476807411514866236260672163274234016025615439743614689930114471512619487738780531854304902793238721616856013991849858291156083902520535364410577061895496675029203222399677540327761285890052400715890326122311672989914762431998383801460190849708638584390495457394546816985394057266291105570127873022972120747350759086445954124022767716353096996714372108330505504033669270303427240100861289149142034954136793325059229087452679004873728547843317028933962541881715932690432978040500856509706343546923060869166199132129172640113691725320333187907461021093090954621473062214186925092267172624169300989888869849925715792123865774386854660539805184868642442728673782801357121072659479677368669565589477824418243953866142047236336009895547853554920147789889354425545513324959750995982024662027015340988946411733363411062854330774544061633004821135282381211693533288413650082836308565649076889383296517045876532989429674599382379433836763256683376469560711976437217913535880447654713427050062404691355974270648138361507714033463622437680075937126707663943166393034123568833442470035129620232288902488315159976579963081427852726044012648480761100012055198347556114986193736938768909662447423956315133410828303058356420890829867144347286059703753242850378859926081574044456623445598621656203915057553171343012289185753060789544281342142558317826827687808720077422061519164316460863844263875497626073722518741850237905800190692923232170494105796083583572435629750482068110375742909364518686103142357383340160226662512478480746189061462284544977841234632009075288785059302165553705157931748527643329666989333188779328066893565239555923374207260797744672085021055657591022205786431038863859880835092302130448521943303737703459559392682507089273809848464166420840768260282312078678375590942539767427897128904670799123940599572413667969069648227120071706944749839698780239498500661375214414513142824552861421234856611520360551887493339331359575392826801905194133638268455746751093976609772393348789564854022528557035804355155803950302301331083155519374710301511924951027132889166715410958635155975916818000119967269124175348624110183173150134784677602111056725087160902373910233727727506698723525973780774658515322618543013912819709956987640030290146395248607561709908989370581669999883748029980959500913702760931350474303192888286242519858894011529661928643585231336730741742930320319969865796997926968235434214699020516314097887272740798257830809397759863946992229293976315901341197595851601832501211999401891033589489038895175186559181933740349039666403779226228280899722262723460365600008017986546765401173444547825708884045557543867732542951482705334442750301763937802668910090678102265984747498923674271646997176943507442503775796835908091458945858165650840050254107450110470858185289826462191403019231007882282247370762270301054138884890071489940189604769682638087966465759226807715356400440337373195584285160423519245707473700283247445741151707623083471721891166258399963445618639407063787202718769032322849007940390701372122187813513158476874170815536116280733074966876751332879285440962084262864950501362629091705673182644661859532604234032101382485818640979893348930254154998549122666738912869131080550604034130628216759565321715365491058768120551924731273930908188717491197678048579850637204027689807140910466021483648036964803630180868762695080217927675030298984375631114307575251259023186251864993912833115746546257652644545354297619972658587169062613283751311188032915448464981579842237049162687833839720591985945945423066845671554172965449975213824001595035554991237522431137625295486127231963265643181467428651041757468110384592122262632962103624912618862479390560139547104014113064117237619486160780102931756139445317611149441678018189859837754631598194557997827526942501073336002428359264119079722246674977846765235535476099797689006512822244199624899956502457883344097103689140556681070116565299376770994360757423037962715077585769403216962352847072277612248325453848753688842147239440899721052618746503450789822741988627736936597128601805530321935046388297698529539962692547770493008339297508088490408358267584040421663900983846355400712287616248419219082182079936745427920074850339874958171395548740703132170223089591945652309288944626396090532068951743254579823400624504781239704321767622312805679900601631049216092495421998820158741732529956078312419265925947474317608462862199495949105504154583844237516511599955396621944464824652738444165415104422985760234654327264511348934322209069941643032381631317162957345438699737783393558397800331361861643266952389227826617364797659005643814434645396081756906744716135998297715870689655126008154302374659109619570518697017500693402603326599163080917183538715289540790216506707431397681536334117386772394993583389820422278342183116372113631211382818851166145894359831002514411565091597733823787705828629748495181067601657763029306727824810526541104562581383110075026247092679381342381145213569170267170658900679972747471473999214131048840714213858664777180153275861788979413806132245595942987197018824392180056822591821877676206320601096951466207650471731530259442047452898724851994276726476522925384093804938428447153215532896399074177670544590936405717365734037059941256285770053154480998777007527135587774778141395124431811203193427161351848719282852922613133260529768057937266876102116097075264448813366033310876303583457118644955321715507546012422270313505210462600688176809900331579328092992583214781039894081432496815263724283344351216810475172181589125161859532185538021814385620149806035627946888232314533519746186127318516881150222576932184017497359530454016180639392687523942618211845373131535953735518834030499956964756674105670811036875007821532326318419726385074748449502503706813698281044425503056572817385132093778194978884061548278510069729527610723205222338587262105565212088906350242920474759490785332539602784301460072241196322003946258381382315572686346464046657338296176231272654343274889543398125269354830748319740231189828068037374355947042000557638300810154482336062110820418909831311655101321553777054823653766841213210663654928313978240885445303963819187254838326172344347086154780371770952363459331368352736886047240657234622810318308797197403153802733216458912828829527056339109821529506068934068730355092963883321429294161352931967576731004059628280149819058760276406546329384398004504744149618125489877348641332871753958227784788753987907246080636379396192343845496739963567132366090498093975736581430249218953998045530140927402679797264056840455113751717051163250642625569149858869805546302838080814564024810215782449395691321355583670023869379857772811810247816438124891814666241307765289712489051107498276029693550796680614319341338350069236469653529130165015091315083887348320825904659448881562340401400679958608243252557157639464149205906491278306198303214231037917247892355016369408494467763858369826203097537722952953385092725215721992323396692778804789327922306367809882794461907052478841775158212749288741799240721991984900663883294479426593573161770633497785233217303227717793366210045821103858366842301678163126488709461289924452952275682354073283713728420543260128021552885103570328449953060262181084623426695068216929283713700185264493395425691543789748044411741206860149019801137079557487406324222549995057642879131342145253696358441548577726805430745083814292074242648806703865773225286215351514564415884483051786687358243253165417863756828510024914261231413056192623009735579993284141487197379718029659206164217810839696712172053761344756980165511894774083108635829862295152721984491704925793643893273833501244021560142361655399189462523380090246094869865923886345673737959688762843164468216877098220106501435767096521925671104577768826009603894113248432126746043822427952553165685061693581507910850648218064071903657036009556111333532868992425604963280575674621149241485542039899528321243537899115351566342545863616037146228903701527007157467267626601158068742541712290620747551237663523077659372005163822186267312688148906183679350469186059100350233260145900178456928164026959212618599272501899422504201175770014631628193014451053709188035568422722156074478051183952851869019189384989113233115284279739906059136322296347656387043087274020678019124117780246089099041375418461406768864908280162092247938466181703908983062751515695606007752955355124732608432136766707785415809161831050735670949377680831486558789403989937384240398828491515476460289218652092626669403459614163458555179638304543170668454345941668300708418203086865378388559927268575232664821133943818810310248007569517075748666189246285818039863737742062117894933522952829912513282442235372952701733161679899122876716126088111078448760846728631588739846176854068806531368912751780106152440349845779313357908919737085139123058789091686522024421051725178413457370842477208029871128485936101934627809221470108869350262120800003833687463838870686560120858137398296046865818100130482538923473150951314338604602414827819331648415028312282417170039257458017970403088924620623034302323684458205409720633463419803279632945723700879022325898612455612112068531219073382615243000488277099720119794443758733197065971708833721962198023480098594006594539625733238583013938981940810691902694788063370444125887746954162042438024670950924431672913709010266243855878163798709696982643737932553808361287144626757362111864728850897109735096755870883588042636688303127941245069144683769989857656025433530658877471256184279913449382370008628683881492039864611488007504394528805237756675590885224299472106288531183212136320581272617943933426181995982748728069783565636262449851913557879112435870401607816113742632485665637473608010462944891408456446515164095503543324817356322760308590532042223219696007528467560064305760782810610249743873441420741544442384787334677685222378579152275298489868999242575738292014090585619573826739811250701704961141042864933584979401159076657399512180074568701490163872488108384276673392517698664315329725151563223494373892282264229556370839365744473706980089857105661451839920320014146069930567909580858599919300361580713427819643567618967270201413254626330511239275502356410863743472581385847761626313307307928479836068671550177202277651932185139079947676693311578317236279511775543755703449682980997984072063533443633072860663010618991455909819331937966794530013172946808355959132515784931362258255245210640191154634497497870844253629068277737857138809892995899835320740739510628313934067721376116373614760469645831820829849909164959045649076917039857544980481394724717616057665245445449908808059923059700980145752454273784097085808212832165184871809970395711405251409817296098207602963145296794768784389002066896831701701968626408111689593304963150611540200164807246151883183931317464512724975353562424104732813652638461199407123629477824253502817328346422595629349659464106802814892567118744942839371381432642948917566098061847578176250394977864065820172005687563713073065387584838358004512746376028572522164878806236378671635095681288644923268739802960431140310313819573690076697127496457553237804443920075996787304433322090014200135417662561607706957853861140419970634404868999728515438902144032449255903094325143247043523021617059253948792616882943309072021209561271710243018654678308208211821662141306118464073120565174947895158481282891277999728685124260491213699801489849183528309790715949273984483549470035223730318813170592664114760825136416222919105756940847298240574165686622327104198063896221595152160864445558894485089525870999679673602494040493491414909608145329280721175813159952167810313948599510527932682871793896871577225935984128210736513967961400489791499931105082256739864923442282349837957565686216499211915086711782638250990917105698790417563532868515095206616503690945200148909196300221514725107153544016331697068047080121284274106547851800119524017427173285138451751742055479441213735715345829365931873160826101374354980127991437485530129373746116416018522599514342848183181576465717666707762694716053567397835606951805329580024697541610751978438004357282128444134513644480413598490060051794574633352450271274019467167265228136743767796949245159500565628024996189992203199632572079222109331397174841858121550191888737657988866215976682743957952894276476363099971433700504936759612219444644574989042044385298119865206544154074728357320080571534622660739925548965126355609392456770377174487826682031472791782910116358995516934967805263278530241232230152694413853623631717778930823021814633283320655119250404113005171907283438881853929784456795854688822932403099700569835464310135262125835227554952800537159688305993907453396724677322745129908903322147771437405564980431006657344862038043708458172460626575575139143011260924901428489104932706785903775049884673896545237246432200753078157928730296277724857481465119675950791375705804444040446975377821830019977965679703693761930930563643498181096625160065905160695446051927961365923019226169955421854877716046614261022366334571880632823209181791516818531720719443516905886350967151672556518564538116628229657417006078124128153518710015559722743944833230796477091093922875307145328836015763051245938642916245754468372596538721502319906601937666276383612491430926341826327842411177791461405446662741775199127393339878433569054239567946265583058138234382288931110702978670730043203218390118930340962863685822927711834573152565817959712854965482464866377310462053954456342098845975789200920886877466380411765121294879438223433556645418984979691461644841525337132627672648346703141557917033320366851056642351825905052071662137245883841194867167103899326912766175160561889834345898477096004077609209038616382444674371548534132992778008016728627244017827303790908951021469913795374569881034507809672979687902984161634697718794087125682967819927242207656729917337428170705140490663315718041336426385055532865023934076594076389796597547908063839157879594128149067851852292022719917405298216279761728489056323484361514018511350566744523959806189545758784087190483031241983804178316577767689024692883879585039809277784667612162604517709415548381762283623291559278210689281970296663387178145169944368082742774843048378260699459156990703434306624454463414343016006112756895416508838914604970109472679530412468544146631705503770669264699345204112333851292334474072914046600522311524435010039926142654791199017194769200097064844917311648194174205111261490339469076441858747920986524748909437156720572151283374288196879532835940281619290402055582905241537729407751855021307523753028584159596340932319870039645411771598378490426923342403176841008964541191386000296826965880662533534013682195329262072251117864450648261766085922220041687948608861373790663460544142577454180976623946133345815388868018703312161870929218832471455956178722330923558652425693947188768541577724338552223564116420706375893450883188921915724649607351652365006209603223896214841831038630553043630455461468115201769868134001792894710759503658809778730911399638408611667588060555028862299335840998830038857242337135326105725195545588506944973093905613137269502740043374250662772753119316014937934112162073874056588449016297276264659855741477475871679814811959661738029254588291101954874374032626053014840254072826726711124729407684118367806430649844156564407620480425644753944709389804071878933109821846972282285676631798573202393025636270946457056805760981577268172045479484533120301637314647532820135580295414563823684119194598597999442036741010173570467120617942964117290194973000031578376634434516655973837158372692668555441086059926451098148329192750997321414930030611764902056785142303676397897814421509499634796913722226494925650264552245024362436534124308014635689415807556887308515617314713571138319312828732116730667876398308774033130321900179113391237552662564493896478279700585762702599836203401919145211345677117290821540590411063804610894089136573355876604943924229148440899474690462965277993898616836427910886703378337041228974993839160130726298994472345458679547133993714543763944541315653556122342393512003497098607100671820135919411423896205167682509182216775340675061093270295703310092354125848830771989396673920499162800691097793362500511325954993038487840485116669161935818117934111184860763429297310077632410565824456834900316712068928257161575236331773047483407604287848788066255031436047366101163633908675468697697332684758387495890374698224460399473023015434824204870274033700555477000798989465600540889376693641296091253203680246068355055692895854723298721574389436286873844346029918007718353057298030488257759338053846669256766619577664743611763206218242821955345255846734749573981448965236856641510285937932415623030948136045966276755855396958610233425816496340210380496714654634583658960751870609529667323833774553661098891706827366837459617135495463665082805645819801509543620346883845007115358282346681360614870255609899505028513734362118063759008057469475661692301439163872212623572927881874264975956941293196760904151932757507547812851359659131748458821449606833503391842122936709050345562266184639370230404249258621703291658606001432602686827923733796728383665686384884274436044564710458288998700330586675970785477198182538319751520348084531131721010586823015390964859000007257684724759541889833027711264756470558102532414847641160780451153735278071869367181334558854012448001362810219587096507493182760245400938601655807258467425314162535832423667540916548613921461085582100086931701464041576957331091311996129443457222662767107869390925825219016389524170798419340243942344896329640547617629519941615922913933937265512891129030573708931940156181017225192219889828741651515222675932085615775472835135868950763572951419045421648870976203420202477656410863848701823718231755666082503031132144338861275083646954373606377373901001459640474490345192860428527099165898281167939408578541065717253432519128366827973991280176734150163372793145606435917462254586285601416234234312291501871542267381448180655906984849365044333018800972286383160076243209460212149905569775806176986029660246941576334491624830525067787460531130099093899342388465314878483297478287066397859546839254573142836285170536276823747541006119085738171475804633121130897894335371785578751052678139692625826969285764520469047690799952422135676651446743452171968113728309892416810476125930635917310976451227664412138392883191080011350206805859559458981441882539090515266776875617252467270208265371302833449542873432167968687479742466321512446135459988872924336158480734199240569368365470764296743390474368338021493713973120045222817277932038134068535009358916816255619635630844053334674788878978765309470290707227467273654619335070124605309704198276487358921033830470133676593803573449794280235637523913860312036614079803278292679213407643499058616284172275711900106693628922483897935007450815549502001866851079854722501592662557433754099042155195977458890450950930519386312486688441462819905825191132559700850205078124614993257131676107772182105897126801571698132899358475865449019856538178166668372059422719149933412747896838867005647491548507699432203623729101018472800315711682163460963794994860564912978376346712274865585460854753084179404336821057274563895984943093753066951071418712658316121028893233567696306128365177218443383379291455179515830666996992644466683322532950276155721174623530246196196269426251177824933411275487094508666593817438117360814530733822480065166592624087832899222589963872675118151071105292599297539979085786257645265540028006777883350040119257519148664230348121872534469554137972706287145963333960420517579393730839946503321369645379951135425004878535588170424402519346134545077951245942021902652117981837002910400148065683440913450391702183902318133020272313101603255494912718844497381076684750671979389188766490706294656327445448295516991511651730996473553748820325299988966795098740246862917580612253302821758926347682649004410480700995858170557424940218557794238701406719235743943486612095448957020135998291213908781255207126894355168784061428888581272285132387854681362072762985106354685942865869620505163308918297001193017464946129121213658770742052917423900850663211651726432375218341807673509468547899729940550328528032999767452505566090282841194830686763563923047010799853530581147457460498319430982605310132353335882588517281052714629127532929262785612506372885672194811841565229513681737168187160120740476845348397026073830112056669875509452552047228655060529761045644043423633684145376856506310165431032315430034544165556675228972526937635621825376229162464106871069186147702346159669790631117491766779054133628108165489742960470074831120813450078339610781091420657024954128100578624701247216670055285294094152878399508659476322978094965015819224646282099080431827007124123033194456299025760149061662874385794435845450116990422272998879093778068436249904098178696873378144455551711408761015474731215895490251905181181050520008323706370355248792839150676774517391166816339801900745795416272596265428334269256151715958084475421662303728081451386017572667401717237995791841665081791339108372932336506255744013387063134354631638022350011926923612104238386389342026212798458374361104179362457692531770709752632396919476525380247305667110606325021767786687262963840338044336564886924968955547182518182454257559649780616066252754157145786799752029499374700145014562447539796629065677820479851176786548482301492948218891309724131675811871570359230880612341850796524645098540347628859960925763368621400831440932876352379464207087366944850533997781363022291760737982059830862430049679844902763250680382940513500371245289095158521424775599226189128124680533534241610649113269326771459712570436698573978806048478856520434330160107620085689231182727469722932748835453684481253207358295762053692398648390359339420416163262369258856086747229547973747238815625680287499229650469549690639525711744530868938395411301566165796419896922602510437587094594663965388492629490816949034369280649992369800456109688731045220332937806923667971203353494525328022844024423733798859866014387418830367028145715395013337268795428273828483189884216812926059445035338433517678327209955494928385448338522374549549101491424581974774968610210710676655401444588405628790998053740561754131229299234094057030402504379446376247883231858769640204536063671888358865041152926624823415592709020860064145657750085977801436770203065426271566424679282658839887903922373613185243457482305311566811013607389492323722177011629620940390490358995509779693220349059486291341625907354510639420958824519633583030058202231209470026922787868507865021871706045247377380388816291505780882538678203146972262455058482732294764349523886394406752447288736315600640316983821372567761511351432248847843609474351464755599980721690318119681550156888741241119071472185106519715515729879848147666281502978655656243217983767830998400687033706757436427437009879019892233988516651915863081253433341326680628362891966630351037124056106027321934526166836913596506922129574175022087376109606599866807744068565557261952912515686039652488260509979558504201336369496013905741634325472373203959327947247258255717112670726534458573249111869684910374638544475481974926841989217807227862668235290155453388553647077366096739909143608446498819298903821849853138809729904744572888501687856521434767119631273052223765792960170175569451328339162168408554731202142416120029809206023918842747642455160909120466661138573553983229751189786930781951524711498718604812911146545148684678999827803983259113771218342940416871608085225487394828048443616359299138581665969790649849948474752139610305906464106284594538803356876707743360194652126447109231174023855976716805590831621942708097144091641936046058641173983642754659090733170879543623615350146203790925051457952142235764688231078221194481324274879512706429499758061825002254705784188617344863886415845212642351048499655800652805959534325902553593088303943029854437586378582080248173895046524237210347244515898185359195926873037246224060432036020433794774948805730423592447663644281388278660197459825579878330121542841994111011839404189922830494280744165489905432466932791928168486697182475566024798973317582549694877473692549550962119004204967808955284832020484242104645955854987169829337172375870668461228918732605326631303306407057836285293102937115655134032991288137982828921210572655220694166307348042276078939793883954262061749648294707294874661675911761068963829073473071186111421084751614572939177684047793915884230272348115940756821670637357033934980921832354335235495469135811624966521057576155851048367885374397362075099668999197822092099241305697964706274995587939196332384819539451755738402205192096799004523037678167419077964611177984312789954771759863734569913489415692887733991534457627093615426051741634461474689418917211061829260673059297702058850088376989205563310799757260779761488123492713172176783442430494675587706500937540082808983260028478903294521527211119724310110442033177142424232876864409690833120598345320646201083501822819993817201946286158606226646593084710298951782551791594569842614520930291409128908217852127903261981618297405259024076054811722505030011534147464925550602927446498082308255753700938481684059073167957728682000648365392464458977509207446778253992588356356718836333489326504725667867536974582418673442060938093187768316090366664024427643719568207487521570430976926802128542502749021665414030556505959051870373465884477153559066499037462397491839555881455049474902954719129134744941738301408008968732651631371297284568997132379696135622514542278428033930755245530217821966010315292028050844879174806645971460300842541635473242069625296386126981812830242986208001841656296677458785124503309809022396821140381185715142141143555096057112737067904006732384312579909002217346811061714514557814804773134781856139188590388459331882598601416963736284851446908711599332989280851591275363030810370699946686472481513445832672247591091854532703674845932487443158802164009067181928667002420247169262490603279438713676276578264362689449446028650931525708859076398833328836711291593918577154107559538340338006594437805082309790724881546675326561387818694595640627142827962461242987463534537075592495923702455279938318859868063105558406082174212732034833498329527440879990509498625171096540209857675575972729760810052705873107558798402085039140522176455771806666127863542013117214863039120888260699507158766582554527096689472414466900004695230738993587703055023414371911933960244422437957916736418268843423854826624408121317737131421175423499924515228655237243835875589599808441049465750582393936135610908939101041680809685583785264263018171430997444749125500259736868690930646728663255286203199171050422977966376174916091949855026485894181248472839074504169484506099627575425094827590070827790588173596312291683990149064523438080004236106132619686175615164177261928960783547767604269676958873806451175313656231426291260087911690106365987002805225859989468309046349254802652606405242168189140382553811690409281454148837331697827349488662933965531294242746382131589058069041966082067162925771248960277807316737037900934910768201688713332902993819927596547429069795251635353590913271065401288227966597647979441025860327615286774949788161481336276475752689423802853929597567890161502126123782971468865269562210818576673308427484742072642755367668114663343041052793516218982331508536183247471765045800985086711224350154080876342215475328082861464359615631803928954604406431073379405628794013514034040460173320525640222876310978578367187729808374639438772949836038875755232713466792346798064292931311974756309917466885191082547631764538652137006379552573411008985040544111333252363757203310752069604669286748216338912540637912798305436326432062034373890223650233993786526232589800352557756250490978669971231202248391057112530548638522211881245218623696826756181360966565886889500701048069713006924633990088786188235216135209318624420359490052378159720481802742345537391741457686435438217833140009266281744115625875700512249311022003284843977871438111552617131348861050086141683366028783366251971186304284118178454813980492636246094093618123101648600288461555266147847582727499546069317252489884609374633217339233373224890412783746859183562551736992442011230091857957469422464441845024850671168685151743642247060582434833479501867179115186245684875586712145815403416797798126326936314312360954515422460489406808457345936670281771994183385874429019381803606296375956165884509717053409574797907348982197929513225461393209194882599041729592326986313863824856609937681989694039276614731243152247805453707833073119523065838328034427983689003014814249396831117846901337322018769195236271631958532454904791602545350009100293633879217366426343143817261554193158601678746264754888645071584213109378995912513697705488383432482620741245081666668890960175029345425254835856514954115297854944684558627525978450720350102898346654569293600358666090651284967459637744480209336291055574732073698843933076846386478518822509781493324706846947857474091209530789646820922080241817572632101799238727540889106300472922996794317659167027436453096090212823143995036094324965899850484344938734241196368187493484304766593284481977985342472187383284446470218529016745871856708438107473735449709654770019686219004479172135053332558543230902098610448900547262669631908378233470875685180364182274347411991293379358426831241783168129918537000550419206408175918349749196230677110356259213912401434442608144899395888646280525596193846309734893446041363847609185258880786485582480441065968131826858375662502999092427981080336722681663367649570507709757255022550431734870454573760326443543146972806455706823930681227329671571133346108373016799583751648657694195385292652797428063073023726580202744051498045811233140297337680957942039707614663785075045236634873976809656737611509094277306953211100863430185800023958459232748815340153054150393119889324603624721155364872636926503833816198215378115385100492620058001952525053117780613562601439899324067308863702889293066036785472157716049259781601528081921302347765936188104656387620330348629797514654374952890982338694001226806421481337490946510825234005119562307561298533774309671201462353009939084855946802627999425402604367864133629826855808002010912315022362169463417251066222461063035626399736178235605933424538589271307160790667107246981219748793133407348159880533446456696564415064866976734548552530887162783720251048820307560873613652145013241865926098600682299644084313156774354184858388263633586759080083543208969207960630794681379707228225828444344553676530168158446094477329252356316688292979928626606585687265632658442970614095191423174556264564589507805925651655870541752166080343765870547607025309715274833833290336213414923967754130992039757409892978747786368196220969184192449821616762168283397464704346431684725691598130035098007951871424371686344671766245611050682815948744035094661821628872389508291801903932014085394908600846914861654516679665717208788931648579566315526034180617798128263027765154918722721951992307084159918868195649677847461653693150834293255615415534089218579947796991750410642743331818794646987812917233639838894005356776420562235283033725988189439920624097112791007344418793799041723021359571084973964064634048424558083664976649606982098627783876015247555353702185505154271515635985873000240841694106140110289923150615891861676243564568693058864811049706918082365515953812363293820063256836249344123705570702184174049233091101983365678207812143412682670964073849901861632216255858493578950780615375986864517200628744049370135811023030153028977949749810005548297319727720022706761769511762001768650673967233680752959426099497641957748063143655203306044277390170010490397686894865315650839875661870714842478099119497065944947133743447246709239389532323882324091871532212496999897938279048244451395343195251344471453460964315171805434474671260154969706092711555168237961247988058139340072597107041792679136553820747430596352856182713523341229587584564339860897137268193328752594405723518497973059217552462931443732602992276096878953204846318589985344419783795009948134491771943082854086654377976673087414659150010583256404737339178526446075713103130628359711218438213219562242153456962922582407581978453467096095247374881935882490941874618029560047278280704864993130464709914656276218564702205691566476852799273967934614210747032479989215601195439866795144864895984238073208834033276330322421093660377216542490525166025368153765426259836398860734431104975497403982782639983283635514333270815992875318699735537513767651293886327497490432008633368774758186297884318034357741803554226331891093157623988756471675446173580138981762317783561907427989210127691889201504561601053501781851993894402079577462874443717675434345517631186818134749070475670698953113639702792017773117535665104086952360616497839171906329044524584909741521399536804811527732377909970345058781326599895235230847273582438124654947207006777170180461044835163121952603897879740530881698881845980624976976172889055122226444157847323629754874240627043806455134109977348555663250372671836130457086072948910143203282817152746502168120220208157514427618998259756723588925642991603482724766795919852483616523080140616779334160600671598780308712648680603411569393244419021270680313108341334464308483087595227883210100878446992283099512170388962995175441638916084195062311408027632913703892839676516573141517267571156265347882083085384531957383474017839687368070805461394956163101964317119861442601067152772743209194435513477041385694967571243099460100341811548392222479986434705449258737421271235898318183574953399323438460994823717336397849857376561729340659925233411083550465021768258375662844969481724562058927273807805356873359698574289272796755643098138270431584564837258016179488480060118848451286022600938529040496879495018594333563891918085617553098010645895735111277025043454118477900726497210752616196265685382695056755959871649538693328664530035660962075396211726814917783112234376969205411611516330355609135383861637643478257238453150359719562565789364968489564419146969089927486594008660829259757854499507810875704094602069031926062576931591841987218970961189048590339627535763447454803141023271330864289080651778864745462664195077493073662222911519308124712424389732786987573195868529216537918899223596301002131806135988374508159516117950372957913507203940096629582173683880169894720715624417270342140599943035152058234465677148149958137257781535813792977729315072764189290757934955895244154445094086459358058121878867633411189119113586241105899190671389162061729755480878867341409196113151175781785824090333651302467521410285242038362823513427709306801111114237340177766636975671811517749012060453201756482860391452283829546424984550186919475528566881467934117157797955818736530800130550876762647892245926936609010145014839848440380373530732651587017863551502468187680442065688391457560622375197546453734956878714665683755138154896691239819734818349669228689929843734179616524463504656829367401652278244354860190372367787333058647906962158930658386944175137657867965808268262313630324701099920101764288697151200223612070046767085683101762400444292815869852789305874916034879610883303612590033027608152561684062260526393111025583348293520248193118247855190608872903049840033803353792844404459821796769836808454608324690873241323440781610463171376953423499636876283415345551602747809497600686659116932666132187084682484749099744711349000791977468607534447215415092508476845155972847165547244074889981676871291983477392842560150691228571235971897779037099697927016299457365205733845484780500979689949537475578954795403105841428696280634046811394186420972737688558954830796623670470308390566572349701451319226875240895739713485336846094831615828930834543221443898861455027251298030969429417613921763466677171978177724065835197447290138848722462002999963040625981055575158493245026643776505631470675402211842913025289021226947720160245616277331472523825888162038550572630392023775014519087266494233269694600804352212035670952297190854893267352826040778288008972272235720283330374407018806411187475318281947135481614656491431035494512345333032454276085212193002677763251786767589725777412628517475250518693280292801094043489805919103052175627146100792743635638213699747517694186263175418193203651742481180044163954682479241360374059923763440168461662359134154203666173900369326142743815353969832531502194723151368529261666466165705079323467495229016977316280443005499277535243465915795232277915429586199306635092176237249160326854698245837404425844205818683056461941298678785489375639914292978598946230144915679809104472064698123358302383659134521658034664769240112473727203654502878527537805398877201513319327441372162625696945469911443644866527193546638625947964866971650672783051761377024585499774454561521204949904118095122042662934458531311750933750373457303903759984694129955111167619727863129641069947563213578912143063241407120537667143640689322119783177230353128701395313385877503878768700462219732319786337939355478717530037738896326284263504378639633881475055827681668254072547328489490281733440449370526346352071606005044458756152906382286629040482438426255307478306985954051233325696552931106860090302378259633950621986491253584413256165822666188197993309203041842281200770859968390802024586616832156776581825397594551787652101117615212012466032422352356054889115476824316640134471971643336734238532761839380315012827611384789354955438239881144318929800255166514832507478827889317468465045035870231811215570876146596128911229833767673545797631317565017521884047004253264282749157050220423189997679629505749657747252003732872108313466074090635932035809045527500940892853428270081925604911429245583323269326628895055012709142529275614826117692410664597697874191816310422541019948521721416655450857721339476183789645828900891393254445074302566626005012482346277934894086943747029216966838675040417121913511806013834424291706075005796311140947797616282971779953574291172418611198926013519285451501648872357976064227739001691448659766610557336865817502950044348072748685178629065266194775581677474061091077497908844416687696809628533709089613904604265221699494978830222627414484914341745424938020732257009973768330857490419803620700808029969310350173035994070219283191817763045253116633566316555324328273403583053532503863063355465586418726055124963834558781147371010604425522491261700029867970860167127775470156289998240635590037633604514518638201791418050440279725504159890374568665227369599609632928145097962753918651424754963012706444533935045092587042667676915349961670990206143471027839714129086211358492324609214650413351428732239937457628019226689438136971690632128675165218742678746523530667043657781860123178355751925405193148219125903035688430724754485986292620264340989989534831755907454971904041960567684127968047815635603830371959934247548583940974548519214968176996541413935081552081941695165448974741584457422861220712533274708388688989981388324441565157641779387768451508204127244508813835388452228443686685190390219970741565399827923816390564902199201499067252158416393302305426112436471050039342711063004506372098630081259063882803621660108820967515257457879493370125376564646475712923095664777755451180728021947636430602465561936174051553561406916384659215443724167355204326909409076521344898740477507258949034052818251948616222181029137369038233434758306606639146613535361790751550681492324011539821489619511426134334033599136846309182156912781594504658549190083477945361854738795584248779751897526873181954653178293728145902160255577525216904228086524587124355164007603200608719291423647248715954915334339316162689623195449818626079039226636664354411843382258643622174763972669417913674243220623087319276852033513337603305511968232192539376834111088535704751918903742241337878908583959686262425868558502066052946519979059043978201399034000837531375823934625643061633587445998966737480593580079712239772579320290429114017411435238491722865133153284705702633391899544321000570208317048807744750810948546349558565774834691506912337607306665175078923694828221434737246842767845198905334787585785818805899948440774286158247103163844109814863729337549826873201449463021285079320390715043793376759139786970759912650888284384723514116032262999299554218094382643893212010335397223714467100918138409145087872329566593538792831869590718932077849404471052865347288953743111208878409397529574108669778197814080905459938853657072232841604362640847326090217715638358912242624325298751431388259883337067565391947594336403905920914877359004474699527224699877952941517597817392208497346944696132991786041697847553189602131293982700319155066425701195877205420332351289333082530582155757445323539404624330780691752137398922796992014200080123438895622285323687076869322198298833355637453974397535038289331169519905995810384511510761352016489788692947440123558314380780723339868775458252588448435656625071857042933914841954389003580193203667253032695702923211132555132263880215233867915557879181053840326309841589582011429881936027441260086427303127710800013883559773425225414396005275962327447326053104776053880347087469643219800712075039902634691680159097630368209676850624868187207319370621592347382384164774350764288898921595633494795723895593835117000458847724371934856695416526694077970044382732117794705234476775104690884497544911542624329327097680115689367518048667713218507659797218299042886015181519789381833410625850662102531210542488770053157021148425738654238883917532963659461719594985065689002251884817997395649431667539145412845772756984440591771666394432391070022274599294025813962317711491958093605238480313760423537245060947270356191234792478839038915077287238853379504406562045355310577388198444860162139734403375540767626420884625839517295685453482092501514059895048191471163289009912651638100932152823172373421225779144796737848007715833008554398911400424381958094655628145664553806336628496788394370906883768261966449234454789025382399256040442783022214551995148174070696203278258092832243257189278551058440896762415928529634754417351350961840554413090148511819423822556857948145246852591204792139719844788478439597910945017825624997549385394177072264178289684038115270822557125021430362827585207042302936224097023485315841783851766231723521006830954085686996187778139153522479233864329429848326242260711061073111835307546423500887900522721434224733912187379059406513180185665463822783249494578450313746110925830325306294516632690160201395186798505761384885352675821029021816177763474084350033970584395369624268162646810286670245497996589016119755279575944686904242760240633577080345181587510848837211245414499206393467856512058639750373651648652979129062334949919622625930636330333445381972325302134621114457811561512844278438587424427819960488634591458632045961850467254231746939460223479826329453808030299834714169305517161079900332822302286454376465119038724574651935718937680750916247032664844727804693097939047910721305377644758730724816506299752384512540346686169165909268620547945176213433639589089374715183225388950299583473456253298395792898231851172768456122629813633377768977349175299819086800453372131940111618743186563792963421180499888453297677794528991300708093905426578650066384461642841839361862095176075193186540777981513264696926882939360856689491482274153438199178099339064223641700657738726182230215841709124608019061096071479952144733781017497192621914287008667406523087237752245131020563415974373339085937077157295944636491093609711492844884458125368490122819155459856354865663497602242438084960839643330526125294382324446582780756853093218932994087469904632561974901881915343296370071382106404891821849577519653016614149112682312674957661649401603195898584096934156668445910591427241622441632459476139180168992613730208466107427834290210045577680941115776730495358198411394875781111082108141959411086667763502537364024117054856088614176197160371364522885911937843321364494110806763646561893327773153243338236957410670390713963667479908137020617750403165479599852366662444533096286227244346834506115787134143175936995034677786554247142395222416420681080083569174406323005349455190929284039637353570179019161317958495354540090275743013466444972210410237077978904738037179399222295615986700438055167068658514157116311064003876751080068233018442231206545170947231016993259866388912929084890666523750982520424636684739908336589398627169987457941324975300429327153086565938598557956737225050445813548370602506833799894100225856729702647029964691677548046015142977716116248350811227323918237737488729754616470984927439856767528781068251494101924720338971530470436243349145218256789869044948958881012049365877585613836625118765288393201777076661662894826819415585576130451969727505986034966390923613096535153094726817752206043521448335793460043337989077759580437188062548565320294371685453850986102065600693223866293329857237090518389964028384015713323876079255068060565319082034418720832721901291157228084844288222491181670966805735053732470500823079502303485086789036186204352042623706408644958202546315611745943814748593596034409052814086344061942837647173321794714195629654039635081554706062600911187357810340689635204490038362913417266619901346204873246636398248796537522252857875615041823399322168150950086915515503437965638971210322799336998206949696244911062794646444922204143669866957551772737862407916556536766475575681135384532737390960370493250239586821902457689419954288649698910835673024316531320213718042359154340852840002150001229172876597760606810875511484217921337791645511886947738538347621213936950512471391869885403803668447074707118110936558309220461772123572200736324867090254190712759536697142087767192157435514872738489279855041140868986826213232971576397316617595591123959425833219487255278068592510972989296887835609334607301827222461831277739580716207602590314672433243919743812016220588824130432866033648431615108253302692254572910671367208688832843417616624595456610845538172888420588401039316763240958724182781679239507324585071330473726204782840080819070981119287113452686458346015240678757830780760741289096774269094854700437240611768051455086664585293354547954039814053371845294736946810683491721862384639697569048158420172586461528094557827001113021150824269675820725736876379429865688109259712265505297137127086351585520417330113099981361684534616130577619124555993868267463220670385040985441835617064769760048310623369083498258672918835330849071652648110327652543626050409612474148751748511839093923900487820064825389943332585779982330059291173652486673191266680896747129200857031251586720661337593522087332724024841514687965754648553838275693400285372041425467829969135000311648565917669186613404281352127413507452676304329377991963173454141252774199382241428320554485914129433597634156635262409027572493323589830163736463480109029269516273104758489019155651221064580930500094051292294814063851149503782500686867365522359286957666956777274015424892876641447098316385391018843244458433496067227661197322926502053728960919658219215569026274165003326449891541873296102551868467776698747013705949428504845554422856266002223398702386099139830100615397414969208359856194145913496970362136535140571444832972747440307354438180512689030297445216478992735401934100353761688584398766630281330563976182678961854456144421261664640119721552180305658783622202007161413217995999836474475707092355392691622519727025474053428588139627440518185742552021698393104001247103819192075260697243769603757498385240257936562706159915857580487333931564618165051475213765794162770713004802606530156536831764123331677970851539542779664060451344868488876074623463170329556103996508448305919859545894679216749895560256058487762707600283064331151235116385147044399414914488864097130022144841401751432885922802363332797869477774261433388330582053166710726851799185095034319861045072417483151666426143661383140741889811400152293660958012463796909183816511987899659453282665829993701311040303049416667702406481098093835880037813235718776555521119816398543349691736458195137114973610451513535839140794608106945384383744524430843597920922165864456857138174053743159497282683258170817169844164967516632980360806178013194845494875852511846480297472705747391074198197609258858364304381089989889220659004963856427225158090911336872527897896501417441575505782010593018731102197333148836818177324135157680334458973137877778765107955667192861463045298137249666684485406653978122860957910377133593838933250495690122948509608911113526051838837907683285527830305689663505451234676262797430116572245774462674528648919746492610634424110545898546056180252324997092629807228089026406879985514419313173349558567593527644482709839382511744795473399935079070565390131048652344981568775103899933204817469325276354946131901426117344316164289303182135574496858673953637660418075813953437154992450401719773101207538635442752234114452790380748836380592948888683362748055907361521351687922996060431744763538431560491635780037422094269269047979213064152683657084024208785434681894066421860351264556248359959188711922563339992894580432971283280657231102221548320948394376695808759838773036129958661970246502348539082868515176400134656435329352810552838791042600863063439854701112081891832100378948344321149621322023658919919413450343030290077248639587486169961599199381020286403113022898652940410728827698175449378961746321143061168357422046395214926639607374486247770818619283640717129190150568529605395329989718671028887522756997095980882905259894871928709605606735341051821163066451861770574115198810549210675195875689797446563532869418346305068692899073621434795110082512076623774599697376823988915627586951451474689062048743805441396709306106212318773014648788379868331319017997088568411726635734995473045802163154023981439683328219729018093465756248928542000761934231554040484978869839547637320209024742567506758775361640933861574064742933102434115457063824183275290632454371142869033958134204104520764013486041726706978448960022326567848292883855516855701261340373229323655594043592569588339326460041905415634574188975695510109075299670313880790868894980428990745507455265600398610514090373016075322412532173674299641716673979918736833562851129118268918306214764915682219195069233669407686002178851942154707889322607740658058321349866047163297276024382435312041620154365518123488297737938428595821732620893252857704035652946025860721139779593162473123685138116363489283714256542711028478331029775103381730806224109583899175692467807822246320104485884759537295659908934352476139222036016513862840971996204332395221381642208179845982094286470489431884422625990924113203193641806087875256238606944878190328534010328352477483824245324535258309629220442017382288909758043069986136855217995076525999270290992326630323834724108229338122559818423379360608424822252223404283164542535232173522801434570794104818968836993156113262321682846150165930301674418000174132871500324215078487727987763148541460809749942924532822262714820835309043296687875374358946600284592246032694235261704660947173877558608585412924592350904380105222426011546528697728309578804494858538359150105906222383194164869991670885858380912898822547099140714368296079122091658451284013236236448138600923990566560288172976336156758945141844387607706901667887916597641191009197949135346331401592576213320893567443189102683829622756351643035015651897921891153425048960433694936157037546931438163523159694321766124256137453661993296068875288379320210066865914355832082823605407431803107371360238266165801820261967719067185722847451271943576237972107999357415610605780407854221340321655074241876286528129606191020318810099704045281978735947872313452766658796996856637079079070564501359126730570949595152091685342653253987369579245161876120087162085161973025629738612612333507104269892527304567935213807758148502144124289711077062430707584379566317926013865349801261931847913815978426965160729569106839359989689300708248489639812016854423063794902915481097755067257494694638134563093929180687916859696375576028299084544555912989883556745787389650196016809729436763279036142771188386908409081903302454227897291694689096287950652385225721182705248310708529697046226833095242718267502229615727402935898733538816621649812984876339315979457250092760508258018813193696920850266569576857626818220194653800936745928521117600576715316713299978451620370404470706504683169858425613867668580433887571177053104616132136548838324631396452039180072770335112969237901888784707719752897297240114230043852951170691505554698817467108568711807726990601369062346334998391003604565857915999996606070655675856912292252782890321300934059608807789792349984901743934086493700437276226077741722906589300352740555698225497353117244025996282457035332679446784044227957222544537163591995441472865543704917238971634800482654312179163150158210281915346154978447103595304124149338168508027909924820571499957526417926591532601871994615053719524421513889502336626335494447638684302332299398452539776146269189484378678548560757184284020315726962302007004569061555493055024975968039159512030351923478994531975509647338884421157277469196849667061802343594447858283194651650595384661459113135447167795341393531671408430529482733900360689532574761358916064010340489216698467948592602464163023558953809089604088835012457851608525700962338596292888409380903769257262575229686452043065882859238913895555727562991607405712264117856717295711683717821024598729520752122269153403784509485968002093991082146566153791210852350016172209842666292070500026097079291576360942341793063632845124164600440422546517615222241960762999358543599012525486856241204634540157726427813332183599386771696983216489050324835587289768973920557060420893257229083870674160647395886280366818848895179213520851809731889495567357798500460305872176115233585771636998722805240848445299668370243308639327813715287533300181246634341487686827656182470718834139858723401900450215090514961876792300427964672944503255400476013713848523899918645227396263101323737724409345406435496663116777032506525599031675872143924793912279534177114478338708902761833389844372676795537160131476509110672863402035219253840986768404619649371655335609923449516704193330357637892897064978074475596458363417192848004881692550050606002967357074666505828620588420827307624592295531417321925384030947962260416446334159271112368658538698304251458666149857345721030516550942076523202840396026107123863158581538042596295277297615697916759391292721610516786605809809359161013232677056992175122272469511222059444737580926622778635463298773395971007341619692455193684924556491215250432476893067550501017309298632216509936201688162044507464008093731762232473446334153228708196685969030039138078043008786651803873700204186285696189326905847835280470143453468526995150997512493368310718317814903466171011702973677472704384695668808986482364680757841192004284046162965975959940960147583649332337595534968024541331251524442873247951238258271271520103777475276515094952423538770768156725056230756354997501240881668566767191784649755643713018328785425117015623346632670141689464614907900114241525907788409716609466560080851131148295968675968420777301613343213644253304919667187967933109629278199794559405682336272538979005279341539002040477535856741652339132776351433736770720529910472625444245813054915037196387807536274944321046320333842623552878610797207241669733780730423032709487540538575362850953652129200188298313648803338306698164163224413430059536959604473721565171784420170448694191824481622871731634051578161196154256915905912108448137740930005873518032222772403196258594004353967440525717844690258141038353532467941595257944216361893679773001345273678082409024117431259639856478108697407774973695514096515095453894549363055873593873581509695194342277170473915065076287611512331222390199521615186029750276644884219830707057829229678818254654458495121845892663242935363539930122290872192469046754739033988433188779589046750839450269863159253629244168178758704525867284538605120805997421657796810231921350688374937211614940144907632349167592442118591075676321041981661097941606619086372152598373340874310323007234792780357254640717800897486380697227590837833788874216290561565572558680734439977319002530501357621831835353174193201074222282618653977567452369009732790431788568364779793849438784980836240889083496052416444721832187075028816659710247579101573513264015336603780611872267855691236819386038429876562403121725823853250318319532129248829155441069578120580314567158328321687732044727592794901409864793080939163575002899804794561217985935065005131508340782786461936466933233756258867500515649572088670265664038768020839693403618223646290311777642857790625982854117380012723829404901188750279443661696114251464904932019714434675034851942619923225675870444346004947169103692887440119745570217725901559359119844616906823731347588622092636436605255417629572630974493084020398206237875640458099737460264893295082248356267531475824283630974747274830234974856504637802612716291855807056349984558630066829375495204228448941512608256459963247916638464449878173197611628456993802273413440067223947385811860526877871162569427541315619267620902009045369798499843394584192178460546258799102865642754450532320878412453247156766322774930048861762207001406724916929385879585591336524188518914683098733927756430573472435905150278264195708273246303581819044284444805770134961553654300936930557879110536463122488173244611288001777868064564210577935324579564625301466526596772618486867084888276494781100482684296486165236026104263751451328522833487364056092177329061620089668085687934139079175196085453895906621643601445942039297374419293828419892343071754253103510462350471020792232890599793632815637012324020976945416363304946148114393442190570873565635315271516616863819669504691820609527221002026371318100147720895067316579146184943203144157670345337346706732257060588322768718265797372280453304996808111789722310778493643399901124736574006814173206510486459451783370165036357605131403032363159999340490956867847042184677415006238719429612140243164826592329845565025005108290259561679346689733928466202543413954687303518018589465464188623632559883779313451291066375578744402589764133883659568479347281053823898655709951920451319798697747568620416408912753147033794866787255709504680624776371986748815036002220899687573126088504967319282933597343743492563760321272091156724480931367454163541769681810241259623715317637166141762387784042680493528957039787675296452515271221565699803510636436047502690761671568070048541166171250315934235766764643205120655734691169663119418997688398914045978609554714735345467968978121310231287665333515291918227423692589325056778852807838545122679227439467271231422060713132334643340682371088977031247148715448807960224284748924392556948358969719690663368091708221233356988483848095527275862207768608606671120242250312012868212713139239461719228151334186229047748613333759863070576984658261291911564103814983019088026458848463242279450628143897970175416539975955941118794313790355420550981468213164876650894554616973714146157965518166576152986862995153018934814936202786033668253001804471569628168244292611169158085833126844477055789347769548064579002121963739070363407160275079585683042613976703355788379604799301568898248103944789079101310720270054324684215838762303764890470859127806664599343659813583258890544891596766920569048076892155416078378937454686254366073075354670092360164212656175314553220526977987322298101319595633617409804651994119246554253992358893517550049251338761077005027366630046825884366247553532427389859612411055432012978378034317256077687483966387177936749136974615346310002455533060955405513958106835592937316981416157517948761046181803626160018152812265926786003129774448237494609763838912806603932886788120860258867727568673782746091713518939661241348789615668304688811682229319888953408030529927508493770407582305379358246049023887054288116063917408809710296417725470412017201887198849471541657753454007502579353998324102582953808853011294314914940458231227860673503769202527079036010352745666559124122892300121051625127674602191750867683697338733783126271514374720568637126946130217834680042085361129778169898199689733331045866391130933807992645993232933930104959086266289324977816882755248390260649469174369237283823138038461597582566825854039988838842401460083339993505651022756087636128877493073853184011484375315043940127549278578938131697532942819254025940805581007357833149473097803909760096906465864123376666093347758919007308842546144877313617495294519613960772201624437547169325508714828751491624834286345239540813580531836449415859970568453495511545870705752646728592357128371106301278882305974256691928763442464625721280802498118865126291455739907312909204083742181114622460429364466725459374983521411682257144554304598065781754928026327438018541257187850248442795688217027475495845365110749651409102003861952041198725118055792117628187473712109078292733131873966244442733135203453459181953856801040424998879443322392936802225479586512431303116515341479881334211482748492045767014581938115150694579014988671586217026662881181563545065510727657890092694147551467101078475931382482032819836437325910942276401660301777833986053891761283572150145705722330656068750056939538978472898534221442734026956746126921992419282682046549072612324067641929154311876243576095334921351299957297239234061026965533208683449715819316689393940289685732787334432367579594568798313367978362021833741686835711592127672031884855309645875892826135426190318723623610833814666087751748615844669468867107109548409811155668879348669728857150693213556753116449055499350827932054880181773826947043804154323363021907593350190133358663367609205832104301106448763230041188121435600023020203473358498062532521663491395821232017511892825571659861440109484943692003376736461287920939255226284811657060806444641696953157365484556243284750225626879330050673324847636405285347997689851059211756089985718629423136973475654227535061680080221505224294705794220283927366450795144738913715778797610904403947047794516373592843398919658887071071843047320326086167507477713604965552929955598960748071164664108461926718551530869649779606498039205268897161936012498456129343994281489495056533319215239264757753993426028665073906724106010703907724689946396876890972130256964815572434561229937197384443659259046186897754084249022822178859469833541654075811844128186561437407924991436826378379870711592827654292055639716123991267910528825804025311769286891801386306936714961287946415334834621610109364952050021022641454399142959808085465766130235426965523145081393821448856797689592991032704210933044215498367271687204555905575097247381945373413559377570986290265606560790865673755296197725446081036380388504760081456876102951182744653083885029478118989084094143540700136671710674695415196397225421497108089096919302687934455759216722593354541371875848369539742446948470519560901156722815102904027775060162207788425507438779542334281237918595365749873184418457003597876516749887619399567310468707141299584932281154545792539244621304243429093011226524738505952499060981219007502746105209752885510798174453352669579618131798413568494023051226612190234281152333283796378445211643499521039839199354859095416264867221777947700255902969413007406003708211752762638024116495744131196179175583473840094523292415965676672715145876894728898670215902645999328541046821007164217650663322892161602561560959370153806740299646584348334131676768805809981519775184332786172042699240281306011701854710162351924212972842503908415253101555055023539823438049227857149750238808655537087433134797862393790744727295346704447606628637050467711810074490388606620797999621462091449294503334207479717655546308714932383093828572665382806947839441111645434835092406837179702829946300385859812146642133741618692338310387602387417262592926662292844790636634755690130988345140206034741277961836286949743258849626950980063803216958864219642342071709550389734266489739768236851699864124511693554074350029828372740785460966249434454197301570236289905295523566905781351525311103771307333906494676228220470323690998570789803529190581872138066932069647478403086028192160009743018570467484283442245734737093335915174448730105819326090701953745280014351724390334094340113420120005933668695336850126981946220972112525987162681238914875996453852213805993278199485692942278111167026526226822949251708790822770792981756273960389479843704608895889320563716976707357889076033141197463647046758480691950597694218246175361398097502697781805056300123000433691432346955463206675945036833483744771490791232911647120341185294478564964780722997697094259616684351595630407838555238155251848431278122238344383609696944809149317425789733680996268550151298925307629031782602476436840406952611012465524134528917038626794236964508923823508515784290071519655521728642006932441738316399598478273982986861966930498218760987888367206274524256647781136897305387122849444762177618955521032312325881256313607724000472594424190590511069182356998766803767296250543804291467111676175984520859566986023548950605409414527429704303251051877806300467122272224120484326853045925072581115836538677460775070869770996655670766996269529344441147160996662696413955419123263084520434115938595877415440559806032028132519550281967960406877729208357162500014528033296848353806395680146646413330592195019626121913641889282613078037918311991833961811292645990021388309710180366468579117748982627838179507438760603214463883247553446820311811611645296207446590753140686546560839558231249399403239709372404252262532735294807831756468158055552172425109992495764387264381172327303050946522966746080707341923246462243131105374702651939711659993368279927450004748878094375532891086354251387998100930700908875917774523025309549827410548084666163250828703265463551281432006074726218664885756650822464981025884386517328436425478570902475188688252210335486974942310970063070835044487454112382488743929315043965965503632954514250983219359055891488557548298289291589148535776622263147852511952870202220769450066343531275023108119604008983605782509609894094911132243872064938412687621050246792866043871857466135784882924371217336377465627095455652775822506686476062127559461320783096002777195388273628318112679464556879337926061066960174214592099266153402053229657540119128644505940950256610554790377553567426535402579905348545866836604991474162910226829338831176200105009343840149878190592724985487610744853056863708442196350931007463427238193775446770351062069230186532391746166785383456398297780472402203454880377113911102637161670932354077915924717601279154061455002374799672516419542734431088756334775610397361410652933316419966738911265332948776027681287551657860835985971191652678032032892825977245018609946780209083939246173033688812785234720797844157039165025353460187696743946839173395840134179839295746111518840682260902902830312347353998313227474614687434780161525135357252625041258870440236479651381276155796629568753518492018459832113136087931277542689890679772063095276844079146741607956057460494412048203548501901311147447292659534275427233188706801344466774346408953412873668668051443813399832639217687232291219424395119425228192552363922266586420898341084588755842230132738194156910315988471098507915576548462132523368613375716728000880820994814825578689690269151640571615622205865371508466234601290211534578779257709685522865312133773014191519152001494166484479563978824380063236922811594871683195131006132262946839364584127860345161320457544108312183183798003496500594000361033867778541508101822738876966873433631136059351127967787191813318032319739553138578898641989885215475404608347575283527862086596706194123148923174018686402210383256122599621131860642939455868266572500243202733993384635076138217604687518402224863830062697266557707873359628731691606761219770155995073762095121064213958156639403782067810662103841778681256072790686731494206344722400586610067945391136305290813562363685715161017270316164102079284023026065234018105363809255164100106073705549594403560746367611381405160654434239053555022122852510514709437143972133697999148438758786990434038606888120684293131695671933605990354514601486594449652853490976571033142494915531669229493720439343501569524860428393610698149067949366096891371635207836102164247540244008138742728910127591656814397699350496698277264339260655213066418455102466030963924927023883638561541045589515523162115573808970449254766426976914260187863298729880941531242685297272623353452922700415012437505494064102716069575943308175032259145959448544756943507400090294188238235226539012396274037008826183568726194677721399667404018172034023580349313389079949227292169116676552699984202031850467012180865397880405516883605438763582377495958508446732922268618604762438837844488157146302586565101931067825343548326001132538753083179163914112899770483574489455714671852043023821549496135691155824722638984377746237145189954532094384425431359416142244689367741351574889799410856253052130975390486417604640088283321849952148215745384186555130267626394045151873720254637634716562222426402771334332435790683026024715346260101173933070173804135266083280422123860779418675692493926490999597823498670542920710748711979852256673551528273269920755878817931833785142533809426975193898697357683603510831301190722545446210976482316221676123648295438907615363504977161909994092266918243719728477447505563807925396676103209593957064594110724887578098620634633514948035914996772566827036923263988345678232800094428791618964974147377377682342101417653945412234757745570459105749917496343123808447991575394818318081206498341076131152780127595238912289617784053590434979946803588511960165227725652178948512388989950099353484968552728854497982056501648105241662637877224255348982953029974333643367304938154543014443255446381312399850561104250778972021653434467997481620271609088210140077573862520714386636841344909495555669332119609543198967868396660898998564364469590331500165712282633203589179118791102796673156336191220988701977612119278591183934166065462201581456936881832488126284696354635420629032576469088497063231213962986912573375356097229254166143888348779248897296723701846840931875553154075774795355932725333640455282959099073351722410879388556398118287931273151405413161799717682301822555531347736648061817308928443020848223075711952465621226932411867360885562626975811855176543396105181311546655573628258712199779255018078281999949009789825432923875556966764089029546627311213229261902529656615280889708093298422076653509963882705746505689487052203051485931256446940364003279395105335741318231850597309774599670161732931043757304521064794093526954849510193421007425757142963069167745708916772288471969236922473052159791133956777043151953089334855076084678417678147016671705227328723046086465898544903971179050838940216701469335505806814350534846779330543759518388802395889374731187964416268310807700012294767294141902215827743713495087779797528342819854063269285762598620961522282780497682546808998413277819703527531588760560479314457652095420229069444289925691694979559565513773835226478595141950059735710744774527890028463751151914871662721823883827263034051647548568832812424247466973224755713407662349465255978838103888018858852125653347465327640586212463774761867112513059711473545451830122427303157934890327134433686813004492104577777610083105851783078540962086648727559758996209378529998069738390719769389749283706686527794422415574708193823240201885378252834945237205575137565426864457315680250299170151206891323177804432812701170491349219350526917445468824556919536339230163073948589222910542564195555224804233280672922277613171834982777780127390457153072627014931845083810755267632240720224897153072568272090742085019024645545228453557721870799799223098027729128523713631893872802642572544231613233566001864855634986652660165032585623391040099534975227457103905215698014789162683843205992471333095281380333129403270188448097146221008051333427927472071372607349842601005680395260002923418296109842881793742340815755302376982572944738025272652209552672777661820070933075788919543006308052696882279512436667900778959247747438600033278808505475161696512797364771023318641346415877759833165689539083968900674062305116309535645771709763093373512155826696827440663173386751849345394237503665986357201092762477073619080445787930211036407068279299172032205004554958894707426593556248700296373211383602021506397755948538210058517206861311867337519474100408957808904510673835277875329154805198962952369393787833155839308279177500587088401578864499858516488772792027831484904919785932731272956678657833533232347434317051431424106792976174026459891352859838903535047099558897021937665480775355739913126753921597906030187145614660377534792436373481574999035419396862610493615239690568606439467793825018760381614066791750926955358515569694287782582953922870339147299770677116681604048928099401626425709287445027096282588729931093699000937519933314037487727051391878756860535462000446890146483267466054356826424702874248739096249610725177352531243976442048152769120928113734384465971427559378866656813340717098046993791822136680523380745035858404511715456385303678126975517702112572421264606120030845136576768947592078590611140855334975902919119222753366347079185736841929240097357325793517462234556330979705208796518108979155914882870001282048730452424956873865009343607409411649377187934371116162106414742792221427968904837411732325161269162598229545035388093762567912577550171498301251336683322868062113762129435828898993394517811756559154010969944390305887309042162900485122282463795395750137756284791216583546952130456224963141487288077486593762737364221742446108675925458945443557362398265013468241820648509324598079442660085860204587617312103487680616941360993899368479771915786913097018025116788076190218429541051337689374361126768613448404830893927193908402273880543042550943285235434728437525839063859340690776593339993950816871367828061340722050039504687399364510762849000521513122646563145391428594123484598300220143091228474324002501053321995115009854905525197333435365453059884642984357335450411418050501821539076880118119799589612182346608380228049791821191302836407137591455290999879084272784282827575081871795495934178933985587552376854304954079118088324320773528997135189478039239676796734844554288512386778792237867008960160505490596793785047151877857170739286733442618833573905895703282330527162849047346903322232657576143343223446676780554417328433955732425363728454728126111975160422911261132096534608122829415132646658475832524015835868751973303111378687155764856526533961359430349978273557234027607279332369411509028953464976764303432869525246489515256101499598087301734494100113700132897627400541471068456374737261576040764890728478718501987909197637552713217953147021683419587775571017676113056648216455276666709432828235092721065804917464118960208717972545340864494740129047368603641677383935987865700498028118151331624426702628431692578993271021496999680317326533629923657198431668566024494255201839345591633604827422821796616497169991063890758494872989868399402441700077930494291632503985177758666844956939691396478840422221220227292360079192995302665268183282429225944745563722343618170733084703783277660268720252075921356541088561684314221459803727274246443631672217280538529054371775031830736028807874138469598202549785665442158892888825811925482424670298810594578301641300134360325180527734618618244723698448037584188558550641617651397070981260203799884205462733813502327464160328173780992307505635847769575002390710832261198432165638128586373259328193059533984259183213177351377866563430614261414955346377632286361850461840534761646073272185387522911638145823376476789326313208726091038459208985030725149141393266220047377552151815868185963527665678587871326808254034682372017968551407714792808985085702721830637061552691473871466503375057960529731947408238554382243086253937430309993983482122158128904645178661096713100377567512476826713146090281812670259995504565275545229351801209550953476773258952640345954205218913133200546400066818334299221025163520613131803083836430430759010805663492651465949238866517119815595166626951199598229739228442759337786977425386773467504561882976035477345159618560632838204808864543730336114044063222847740065940348509673846008474436263656278078500756669969283331540136291405660215354666535181969603224672016719973591518331206643812478751246790403945261468464695771808894777824975099908290411103596464711242953861440272594713299996760990980935096545981820173303645966127213786913761915476988714953201434676286916039484681405347703015909816570039561514758276297346228355243770831570423425412038983741849884260615701375358823980486235860900149351902519511424977819752700460287687463710163838203827757344064904374679396595490754526675192384952401265570209185786259707357941709764053767018857276913574799359958639570110364152060052042177211796682987688651918572326896236061862935268015815351274944354295568935419997881479136133398852101759313727085453367700381096829934724060062657060594495155362107910076971502090195471132035639796072953668914699481016777185966385234975070888854891502750160306803155072733698849149574199246258743443169377819423841578024874709685660415345825735118959586488343334305150802134411865281690423612180862318185246651574956153872277376602258069137286032644704518419117968497072427864207212761883698392017200081643925298851964341790545859875775109767676564668905026389671402917254978084773101074513697631849036938302540379932035361345984304144355324268961586190292867010960405218083038752664583087663192598050451100548261191093964056535886644547258821020483761405809428286918467936460728430152051838041761047725778155426779138511509499299899980806851963298004751956083648057701276309789728498556507942313747370406241440115954680541197377184148877134770285754127367909610473499378440854343697214381992892358661105275969375469925984905607504226595611677545519716048277117964867708581003041293441194739408264346003292781060969842492031871848678704679797322853170462077027599816150809444795667714028189068393387734037444487113188793593705982008586218453623567680177953253182487500769727165336811480418888881140075599288991316702813522561512350306274756321304185905631143092227682614868589387166202578146393043022475059498712336607823511092902152728133887378034534222441943071942487979244163303263347854518794015718083612716946189902210180245773707958481129191973574441551833942444839234628938319962350929397087757246347333255044701229492733057378454609383230936504260015555405488548162795442263669476999904425212668671734072453797282218850147856802134783073779286413530970823356026140382011079180800820060453407437562343807128940968330754726211421285792148701857205964025317450800903913073599559358485656603650086690758975900914841571168829716823249123369446326532439460678242622271736783140340163016827128920412586672154668151153727405624513897017958333840535849632277902493899200485303093662317521228266831744553534647247814726285051204676555000391494565754669965857457297621046414847527914456197157202579425586215285065317338826771692606056820039418930543670776759386821173874510330746639964726740084921550406843744428000754049518997773752640123736513009207493149579424594629707223687054562139779728241407750262528677846061698010512411637165037962123332590033178836439142770381867625027810258837458263997500574533200722468132922368252525874975608450102037891709601267907610891818299690576012860301293345317286104559867335290371496457262283160775543348881825821905144416103622494444346181761242004016739729090589693569924780972307878750982142465509691456234911759340520650567560250089568129450395865905863998128518194642447930569697318362149810801737758232775206251774674264924269251404473758908243022315766067123976025744101816948742687901120199941811424519761338802126952919574203202999388060468763488271773141098440347844544542805608337527092635250702913486894332559063076503858210739246768100447896656792872203179189188971577732076417872001436306035289112151887886629679966508151324588501761822556902314735294210942313886106716577911421420348250771814848377185345513899045517540962724925732358178743804874749905788195600817993350840397323902425963868656280842546917610432921690755682875121563961661543251754160299257793403895799198632811340839028739582962126247177130437049074647837886873080992455629846568930420680724227685249711302249207901705744935467708625395783293353355956394455966024409043639006503285078888806471410388507183731054996283854255479831728457117378717553156009771707927259704215027480564731366420520543160772870956979249008085294811180344201800263164593840818701385328227885073285516568120943435461036184811693279705850461649787315532724306526845021952752293234973669471057452149564870151387224886692226349129719610709017874228032439677950890344719687680756353189802474804236018365953649633843452015122668369663594293571249166360158039243332274834616662551252218000342565094976281680657996145849500358951372781490148664304925960408092890136521520629750775716934124190046616789461880479171369175522484186818086857022153925277196779393879779968746161182635706915688807071165654589932855005984309473772880309026065776162049271667115568823392514434066568747294284786477697518803823938732327778287642074864388590369080890297102164213015485400748398268598339781431010500875131479318810645114416560784656816198442755005601076299063729069107335594872936182903568622530870863909636520178120183965101076165830211482926603312468534482862511051870049051606633030565697289730140809747256255060885086580057291995606483660035235363913009462379591488409293410647159921200071602960867274646355876396966702832047152559395708215028470072394745506511807058578784305080137148115779772775392210603252680006830079579867358386330188046459715449856962851987197206415598051404951148606650183224997792585536212483200772117968945468886149431003829873681342943777280350478826216807585846682135312486841681129451753128084595087046500393002774789441717969886247697194589951332301759466519017472154895739354775390214518413209118757584290964063085364348190124498825935186266052262272518043121038185166008952705228541356110405307869309905935313866811811804543855665829325990833787797589681133830874263235789479467059717801055070862457584863326318167587796288129995181677512357870503539165364007840826445005881029264900602323868397008001311419869804409924917845763460605451959802370415034011063096728766227286484025843489935620820087771410637191078657693852699716839741081425346615314591477414440371562008490531201806450780463212254878509437417400308364394284679662950893578290853789788189774772766178629961794947608099440471223368850529610457473662498427674127150773584699740805872121583809481657968033910863621178457121536552731202778202997968638971891499349920018860925063506034953940629944473228132197277667223267520550006563709465896356088125851362352212897312633633861224227511562300299179049737159615037743380001241055230194818494307612351069540084361544915379223164312390335491687715488225872981794447803779308222622264829358708335213604445554186119807812703250122258365607514355947365448148025981405174286295539228653567035999910243898625150511188087796067053816863185573498086975934929876141802370847915146229219158243560533994591628786857098180790857575515144673890084899442068634422621014184668060919903540668214096465491772066450149839584427470155396326357218393997540389609986055911266678445030375978340442945652913318139433513728218944369181401974036664155036535942193252996818206576651996268227607394830913915582628586355164320192650556890760760941830748796252679294349317355300017791336567762289314683441938088585890485250367332263102809803149152559130327186021207156944913336633595051683432855843554095259432675910839775858608396750007549682604814362160009155202168655182616746053872887963950278716272591182900750568481753079448246086038906214964486872541610780767995794075518201476446233992626955947521453590291483927923765463449229808603629838579770120701220818773781533827937669906431051006851527006609818764274398663338952758975823316031565800337271498213577690810512423950262664014191163350144438951772765005939354652396690941335812198600226729032179075089062302629454034844278397671437883285587883224607221534413688189835148521820091876809745139372572815620808990122227347420294514516170620449574360448543562030155035987265712823914167345284604437145762242333227532038938780886828658739453695060253864739229725988689852086529076565532344772881200255996761608918107844479823109385097912101107084793532577800126385714577671031366357749213041786292039281068760910071008843741987910800057424124034197184084280672523649450291129565493314912198004261837797035090905427402526235948266671222183046144284035709129818083786265890641603933162980699173081481762366025333636490878706117704397401305835063550480813526017915969207366782809377239341153553101896289791341569635428585171366752300702340748257675180255573359152813165987146432481773215007095975326733361858463195803159500083058204197797742290486356110494631048016558673134399646473950938413834795988095236286605758448871883654778202898284799773849942444807082959948596923731497374772216652565696482866693697178272910264216720442168614039517218859185545602587170589561349144511116791661411353485763066485918787379987865893539206875100827187898027320715682623602647831458590171295366418159646991212997732963496627919819263355876301074484063361900343096730469668620575914575733599622394771434808220124417461255764317846743602711627394495502784559759195291997095253091375398337053450575397127587957302577117561893146758703632278497767419360368478986857680869859995147324796860890667467582790671815735601871506565813299814963199628821177706253359542960975452452836123590506018961609649428146976847664829676616994403470117845828009484768887074710449804434541477430340564423755735805053395220061690420185149880753629513402215811098869850090846289002818981696328340058841011706312124851074186934902733168242811839930019197510340011600229201617207685007114467924486160403677914920681277137778193469932937388367981794837247535845583505355304725062716524048933789988774697874346738299297359416819881059880004258559295776855387488074850574411818452926260470706753937265334946815627591257626251372589984112365722039301876652196642749178637180377046786376798047448597050563937038353094887426592957439001051269372066317500310164818412013329783798326510244164471618736906342645148874334384328937291618010971907343755452838157473064447484515557626775416391773822386799052642585020650650517984937525205513778504230386290567948686407927205583583238588052466429852644378996792848671364465313867633205709753236605108896075660911941844021031468183176725956356718328207550301273285786316194021319187262671460673255194886534139664260960571509043312844561228771697933437717857166926720213521271894623629588685251721877552848239525840482963843740471004050893905528542791992635954756178150054489046749604646598301840612850766317767554390624904913857232653392525494555555982203858583243280703282660305486130814809072567349901652794856585086360935933325077422980156742513684334616008298078174774631375377388965045257527659651750324628409529621177504556238675297107643078685861972996192296089814603864403857041037860034572015333718033019013348785090940444725245136893181715494285337815039750666340926386977081931810228319357603512070686183545700424680028897411029212040779269471138220170590606150531951439401316254505054475960455508891710606839348642393357237553955625373981651009101967265085047323846149691085724499759118008434236648921403075783020475905127986579505721306640014371165464897156712176622801202817190328911943329653563778581031335900169220381336488801203612755136645741972200090831820036927355721260333520979599525500794352932897676539972254612944926509241934434497623193822768947564368732535739390904398198276787130266837778731272626091243488677178871938004274315816013132712916955812273370592928404176839557094462664062412280506364330136079607689460599596741632741238438333758741892783662226023533434172984918970566933822781181940244978448472234094384019146424516729195019631129599659662044249359707591685693933195727084749008394452927043866742502179124567733949529284080003261710220062032770239616065437066388614657979992416241431406014070515085248726295222538195045446432103203636923821462527774375356977540172076959272979886366422877184241537761515593896268778649260322057551618861577922817473812743286336505564685447696079451590560032157968885657754296068932240505131008736926933424684270315612337997907121655163102064720446732598221564863464698576915187287591755215068097324457732715386186553465476978363288803172752244534540393984460559735791741996988803852333315751661848116593204430196628646154405326570272738858862460144466331121915832995109150013407632945181515305505073883388846506537504250641837303123854143362024412550422489425480420137413806628401433739337684940338605311326173810324032910152660685963681932250599835575674633214620128770583965449547597081605852563187800999912873124945945085455650807090118019015721778293179276041654815668719234008747432571536956120711835412922206088769585178106735266860516291555516636604701648543512775326495894826932364378398756050199540616892502785964013876182063293622799542919790111967879848887301661850374136372353310204878129117994436400772120586453013712729747750398188458866430177185799466512700920380292039521564724825601486416464527321246162678506513353356756838074069602758080135892170441799317297649646380466828186274243776578837720882216039847367905897139337680615750543078702589544769279098171665471445120101125983955547349332659580465840624175536443790766249299327044955300607727868771338697755418287690073044805018162780862944958363383431950490792210929933287157253426459977810292046973258111940107289824691885764639146492874436586338226705197871017610427942561132091522333729273178912409541467627972931311353949607127655171587762866907262023790631785478694546181428868965056715104324556799062018952642906807783398142323600149872535290784573290994618081134456443008711431264181541963113847200431147825439019795222081143783557306628687108695161759432206020404482149304499288955895742834449152364916017247757409602706285374396196993845323584994685726147229526381596179406343116060707872964941999512304781927412723160727019689029455291100150467328446812759827264977640364135179165071476114260308780664730285247193257871313214370115657103058272723699701243972254389857846867858912482440618115411721064336152628628322689007416481098822729627711005715269435412468174013125598559342850643082741793606804816369775738720375104533581679946203664163288502743163241004873978586449986839354114166758690396972095354172442333276979693741531097464247411880549044016967418368687163800653746652476727762594614267455874130467955868864459285454265443784284563866240675276412094515288059198164712449980251807056213065194533254184082120051209705987290129835252878205892763864227562481614300589245912239947480327935741889219768355383546993442146120354684962790391665300314338808791010477456455128434792302261698620422658612880387816457994222090647035111980537027748500116291141867715305014809063438290836556640178370520522700616604413669610244689109746969354410710361487863713764955669358885247122469317906600979882722006266181813355983459458817843884442932331283944559818673685507824193829513708962277384695776141587776806481054700531690347269482515690261281474540691956545532069066876226426946029961300172092033917447886422781257867733952803902451168380288325310227193847628670638626719827538166645244645579430474201983792017222395582235947298089767837871014336166293668913242901193670162500312914357581258975601762571736002906754434296693697877517674940270082925377297628480178182535926810923493257400191995563012626047855627530236599994071698563488346657695270313308355821670164306386508868483404475522400075406376754500226604759621050596187211148780070425379326741234467929759422236932458425889755650606637605469283828941711484899376743282897690463416244334486281007092167215825222403891544771203609266327114070853294462952857830567264521561235686312154383165959423357133565783769451242852245708266201458662125934321781913274982441371856579066525234426297474379848154353988376687329757149531163604004015940710383739154432902742201123119054467518717060193739515940091230944628100318930726740351431274185091094840742718612759411663158484614883022229852416910850930400797865427653612845332972031124089621091038461649802899043548259746908064251871205904066731410941711275264753073023707999550654306795609634531686495147364068358706492118969527566328077085008388190315923946527944057425803823046243987176403597899686718402387457117922856593360052233298558352246580459970358878399749049861930289380907892260394348893129954864812597594833122260952367061479846635970300456492405223960765242308046388807468521284115228360472359162613085276825569070749451232335076768860227556649347466641520111532642831164781048944651129405614463745227672677353302401865793885613150120490235238156450189391807486499862340823906845473598621102869875541203261354164850938954090328738157216424651243489096112148661547338607698454695131880439223303115741082835095480731327141168300442759663458365344257830998249367444275217062450415034273798728291692625774444038688758137638834166992438689723279748456122211132659558886157144947890019774612122079886262920105490187212439319679332363044250125676575458462751366808606503841721679649323107361494600058248566419721196489688881557137241337131689145408271025987355558816547499420113836915810186298108829913386429849068923873506432037595810717932374014239065536519391063432881378326891867752421531125349989501237276962028547397924834704632913569650106656177662025901579364670384033961906843968733522692413221955391286435214454736816423991845030912906749366210235255567867626849060882104786149369746378599744623649768518380503539959551939564636031722260379639923653541610503401050346698915742918296517284910072938800376084176703748559391944282885772301642137046876266017117144548303167946355887007302306313789332405551980153697434669815911938611825124700560929613978350685029069134624798723254013632755756878895641969984488557830970557785110073293709685850201705579401584671588286975884950320225303500919355365380441952095288250726855136788449042202896813561821405594704405550609220417498252017558233149752902074482444742954566226113230321959900720013497177898045193687037834718930754074594146524812857431117771082858830415171801665717897520496383280457264764005588802227408293760562031949404790521518574891961856508193513393952458399531365469851727360978643035470917237750961809316257863050111426815413603646757880278298494199442000835617478096117976177675343060864859877440655116717051617155308205954193018489390527460351305660898270825830748039827210507837873690571029271147558453809326577246926357482691501054675859626488891015357751764072946514686053867537994156731978393270850406830829761309034669803340896716940828483672682656899630971117576945715121665999802620019285703800475355152233518451859950544288352066053800778955244241381881767065916178697813628520879188779925240693629176247274793661354589504625902731156268337384758036971223852070677149577427921906382042691486797073627131116081478834637645084338928880589940181162567928764429403970819559328620383109493299404967548214703166635329405310859351878973988114039177251454117772840492424845959571306278426879948729320900010163050608932654870894514855014020023338759007761612533756506616576957798814306133284384164942349934614582493341436126542709580198255417135921536537064417104001308728726838053855731461647182161018191065131113675847482839624681785164670296988545406585500345642470873216044973231987100046278095627824072141931072141258863795560401032185872566000333167407854489713015244340308550847105432162968265355213299316752163964369607927898700883104526009479517814564313930286174460265890451995859163554385721705760098046111979088444138772495233113672639161950751889004385398367172283516839492846660966559812437513913676168910794817628521916802403085110312269651082798659159736749346828475498400055671862984446885819321702175745526721271805816866428700101404437833164436847183940344417952268754477766908446464145701124174823869594120101875019859930931128278599877927577691560851471368656029689468906648172032157488618574575539144838380879977433655726219972403706557858817262685413780110748577336938824797133423191461943220616239471149924190767942845089816194984620807458104568800185689173230349677386686206141527992919096264735116570055161118432474012417082126481827474016150683228028014068876878529732523334227733464946313555039708541438761592850410178419224325257776624480723392506627518792404118801967115158486747039341604092765218860899422704928634021040066802144465964023633515785300067503157504497563300477252104198058649591694127242749075602231997748519223083042450448897702036057168858140394650036169451027522631077170018529527221057113130573093472291354258700983501061987547397199563384760639074584098156565181086541926342866084160942308193426121834756726517243027920612350748338117916885886081154407648778871991793809922697889133182133988682072620272190823236702679635396044063123789921107751244847876991298516189446883543552858868177176540119746060402309084279215515092194872955567292145260394055920929888550482302879340436418834150146912063872283740111396761447836600323240523989383749396661598016141980017285335992136826970129654849916098544877986673440824775552035147156637919300918155427790099664439443265664145615164694024782268662135621493554508452996578877942584720197912364436043436252407503185325320377586311080102153450630845308009931528906446963542502742976417746516904598519002288132428329568695842483785277619550205984933631040523639201236778300395023928832426955937655592735216667661356361681157805291874287629168901827493427623156913564892449825164316882148366238530843114618385944582167052972891413382928679516741581643267060984823257978530991333200475183564384069530265591476344955072997258910027140385413778852642892275991060667327034414657202079313180018727127075503546263594802260724437392541228135728083274523508773853927476120385962367554945420834704480704908250769975256397979743822954548476324119944862066485826334909060499995251257555100312673277620041311875583124189776941832101478857426863919709133805784749737218990027264054561626609634901047685340034859070288373550793622522659173671261918948640662982923507902278789410282019224260050871558707177383085020892456823030962791203201337647070185347502379053465662937144331071067800509413088354752289811612566045966020907811435433037697918159897591103555037083507021461786411030022616933129646838838567411381364932033966488399329953942349695082083297810700731490163431501705332800587337515352128988900752839707690536964380031749400198968049422414031111490777377389633739606326060978842046486648672911531528922549977744617846824549998600898372485896170147321325490675099312559415707260799082918376400141869356208735359606660394066001393736941997889010415992524443729815688813627921164917407853558710517841287303508726656144229227286236509928992856395689791050484562149552110478993855881668314873342756274353311892866658356914068014052976392355109019139948043763967996480679825897582156944969483488542784254376379241834090880262656830698879635992058171232186445595866900899827627314993979556407377868630019785019698293506372016429648511806923089187325133437527429888172438593144223905304073345481227872837319140659471475068067596677552884937846167304091609557626115032091115637426628708200827686594868639282301267122531250976045613417665021512485684741314577519873440997916968942559602029701783220724967754883491840841398397086264612926200638142417089229413022916696623949122054885070636367118907228288730055013202738302245267647983017807826632399009406288772215806997987552092115586769546202251226392114610564659845964367234524885805473541556633623605184749615783794217719111928308116606948688457153716101766963162271868062071276899175615144250226590586852758097278998031265834655010342755654134663612957955329519525284474077450187663652133144618628950037609013300410338996460029739200221270909134790689258346923471059760123457652959859779172091096067057885275003304507600017725784903250339713208233172928314963558461032215103579213167783131995500052705591467147400732300009486914012200430676325079278944713040167608468705978328560961450646398501218724596591581997106187863988372349150093166613190610968973281769250593776996474859434504868674367257998074763473470303651273602926219241276879137300988972794523824983768713878869639729386947552622984929592803396403430659457544686212533297033016398252400613617850619344715205831685488961431318156637066615260823056351862531295733377101000745210352279876486761019470961180311270376723059094004131289794856081191965821584072206500371522900599550167015952379121803391018618500476030033138946806777271925494819292762550675850134181032480378002378344756134013958889993576360237470886255355094841454387414103222703499625488262042840916712769164636024822654754962873405093470578989403895462664318235724593877253522885649518592351711414670944197366484566102350681458083298083328292321802793241490514006514190373300165628128144687263329141545479188055919681919496711992134406082548820748949694677980328598183848938479800265842575880740544911519989357026254901968469800867451921078771004153939613459398789176171221141081284006353117050602447861313709301952559190984700439427996959232142903193252678964082245816419693007922470597442559783697574593946079053117087768190803410629865646130125289984205227952386654434612881191282385804780381838492115561212785177809415158651127482220662509061340114836672727570005559225944129500922839253753340122911691279140573805292092642748302119625861637294787256537958145815646631669308396081636377863545853053146193731205814115386077230273605861257750951846286121856163324224249357254647787571609978844579023308711328062625408555388080130363503326391910582578939740825075253675619749641525735670434438408636358388994600149218556226723152445489641314244073938039421214523040641562580113393917689204474993592725383887631838568972894599924904958581099764701723808392364269884697672860370914627784106393535642629275725763020495571029749632451434532858475019192153021322494778046341861678036906588292277057043730903836948468747400355906428501303682365559678106548908831605576137975030785566958908033878839581622252035159429862065045411101245620346351284203949523427498113487583831404728104256804127831819102717433976759531574998042752339232430448598898340206377996953817638107551059923460065339669210792939946784193680122667628744611029483805325740639811650807177974783588157838243115308273246708086161266046121321271514369612255450830163032819850146530294879107722193914752807302771918233055526839839092826304043397714070564639335723469936963842499814369239451620930943863005869480210841806458651585118734762358198819217622130781723706281857791939320154836317826763253435600284098677083467746686414089636016414896832447570959171416796815982440612572477555431698044672038670766197635788805251644310344943253650004510838229423253787672464917342421046555590600485101195209187397196601187800462249519843961328684349293500181442432173169374090600484602584202253495793470479604856827093036433747599531420285305301668875826856306083568441223923024226413553311009930693413041879417517100754332521291637896413117395348337346972107005324690125835921783970896497331457093508416377578757047091337672336178890287505879175601086679364499601020413484402066093133244011544765029965344909568901593919725336801961411759072150179763018291242862516042590586148547092196958474640772134660067369356898507304453614673674840729011727765478504759764576899497105274713454281571124046921350564602272155479065811792826794601248985018848128231706726084852603702812314221392841531354851274533405396283093087118619733794338867967923152553467130073396778241147845691862735905547569871085208509445271857858378973016432371436773032254410664370745843039635658093273846488861531312593803143010627949939265256917740287234697090046986644229353135994493222426727394419484434141183918596410321328469624697959796681606349726804680233470958606439949318428791750227701109160727745932779175196091959554859668269205702536940517418979511448936537383657644784875250496834816623292892976796427497163077292911820911073179778752782412065018994397421745809602105102417174813729560453937160969692884225428031249425611165876074962600352271546019733176542700252915338425924499411126687309078517661884786712839473488618704853232492950509856589790915023275034958585829232115232318862199905271698450096149692339426042493267973287513427152153962170599792563112612728383943482194152136582676774547192142780957654106116168503114461820905016265252385671798714855479584499896768918479020428481370121605780067422934399089680283139602807148018707616476629339169771073145789031439775372991639990531557287537407406090071080488713978929439334485366094374103699975676836710917327391331302668129117498618182248012974731185100961905550039769043530882885266092123976208090539698534039142978710853840041005826352573551199783315215807049480068941471047400404622017671144538743696572200531981408457775008393751762532144723234427228280519961963132054189687799480188084226217898260334548042538781944416071762816221570041881779817958277616645884263769585936254185697824788567638180289876597867397404428835643549552944771799693087496491029968854867619409508924316418382785202589351656342034390541422761646984464011390820755267758719193387006929744799560991519113937407695814206414734324334699850619634108685197693105366547147089580019160208661023711445479715879977187938298569267059575824445232972518176922362086039538330775220865106244916263588487147879674879866470350711805170285619606087772087103385075718573729449295161804046588465144362277220909961784422605632731938659989308666780695087319601461062708965611892375839644288812121796410361616844374237522027449964200265112323855949862158527944085025296021968351645022215392866040404475847015905084498278814911437027689284792176111397263439027462921952118978517385166037360032686761197409969889161534672452167960335031428471008598333253662871270059212976691972530028082659787706835642870367378646671787439069229452725467175770092715246447677424964267330804444230681496559642117700233400861808708112288847164871915239945755559231348223378908978851155386154156993304420344139494760745246004734531622559381597376305326916304579440233133180921055161741562861714177071432262402584361315146253263317450572622382878683632336682970702272304884052508880220838873452109730843831513126136274630550773743812313272910472346643433027080128121462422644496881932110265034954273184349738782530535202628031793546441123324366649392410696029060334121404645232859129494657126598530233948935179725664388988159731485443701589774846610779236017201780387829898084859819797676481049158344653302014403248601129834409208469448077836754930857260087959195676901455812197125698747070652555273107836888582895559062560096989329526512268486837039402036122377543328398970019624599810908760998413780021080228819002916837374093856594314938372831087918882335286056992164094009388145331856503998254644853125925979057762372683367040327191571791880602072052147199182071228204477026247632147967110489405415389752577208263086773949995026464069738517198820079707782360267363940672141747156862923105816638226014082048802989792053945186787438188388374881478100836251659499633093845716781416603431174731213199606442103489009026552234487784124431915811395104012829893646553793559244091938540318189164468385632704954289331830233478430989413210959831650257139339514795873767232885101547673239399568697499060061535811961496178247004805829758072891055335618002393104765159808155669140647809998416234145748809626191137240720599598725112748490386565831893890905991924211965391668030242485618814655150980017006514606236392975388671810716501578710254242925064632873911802683766910947824434359425377795783748724800398748792954736005909464132922957283858599749813918833956298544147680232665959176247769726264881129290847565821209222422316787471020933102943498359659215385163424290526891608778778946270715374261307474422372501886195477197190999856480402007155944111385049465515520471617919442914539064375110875601913268751105992131317494011137745421564020771473358109816510951357288742362335941031098276281537055825316257577415123504336297750783396910881723995893053012283560610157651943254875927736102559545263543612859730372389580525511192810050558293687981693890451703907552438095942277246797769995746561044489857592512727956076601038830858512300441337596422549956007236814359807388064914821735483924086589641798234503408921466492798013138746732637360031171064623547771911870944424404585185608325831966859623954655585179125059706533288999624712609829286882846682111146018626872271508793067046486714202519867522347765084302993394494410526832243659862771290731170899123384701891154347369126768985557742571496145315912142329138238553605294522696038557358636970810066567470217913401394260493515571808509842558445744283708292519286777834835749932384397065141408694209188818028924808100682404425080716003027016449594595029410048699872907794872501548425885868482545217821512011439854570438613472782842048456310767663582891910500990228242663696038590346554507220005953803070452018560955535579696880538008439994072746557777412072389965619346852853559274485476129230009113087454164277271825078315595567915284721144420785742036258956058420362507902273472593707158075332802777067594628229532800602760934098593411002481193492693936434762269421343703016182043890211376139490893610195958921070124222982082159110393860032807317339866831318701607274069181433391249758224909785263030343471236267558555545631276689067213943327462278443315174340223355574958505402159173771463255904301738253704551320668726131947056505992269539301991141949820538717854941436992697433965483967935821970874106680057940672522037153858070707285124971385654531999546028182503672329876673914427037773566043697256138370644159746031655979663490773437569637739768422606999334800355747413472195502340209572470124192632093546914096576895379335447465954890167231855343478046543331287976252634547024662789675418455806411537152681692421212929012711215863585442393185780328375344187748921900423511989168168677258112633690928182695506342045714222807069317250697953396611583197879914894035120840135543673994815720643285693398808073274922653189217796020154502631923312827909452741085742525711159289106802463271386315703664801252692312649926289773613269177647620792428833600755626220926620790924345843856532814023521009736536613060893502089942552233790119436274841949077325420285779965884012100789607851586834248023466133018369436538425241783677689774346326761877924636082210883004188073960707944276302638907547092605232765802031477733974775739288369308129091442059157019973783833397224956255083005250603248483281723199884256198784541740118461675089139631047521523383410578729304105977575628468035064059164581907143598674597238959311006086869233632076034811750763773651829012832643420813315471412164712063738359754622036727786895058889395667132881166820109589863291637405717587515356941702576521492297252051665763846638991898769267616781964242933608196869146461459678580986686586252693021404169009146199731078090325078023752529001286664795324405237513151323412298212056106355377131693032055121210357489940396071837850011004185905861391005321211400055859827737715710625034174502090308094670806639524253541701757626041775617596773339971766360710444673590500200854956073173232064570874419436132509752126142970453551669079526265152017707298312558442639429034340992857012417372515821674423428917707270999078963519035038342013398618105274196589136868523164273204654014437208919044134285151004776953157508489077557646873926610534512993466046797453990347307905711973450295286507553558974738831173134016300768372521453266091581763569103653610563498958938539481446804925514478950060248343945635216711269260977953702495973852217370899934321259729811368096709153225033532057797527160445663033844215450488949799903590560175066894200800018013839724267324128132894752692507504562526479796669588102292095452300791601254651670223391060485417269429177201879450398747889191598142632163151560131531051507003040514027077598843596669656670031534099746168950952180803222840012555010338597870411885056242202821954832423491164342007357749673213282282826271675495373002656953011558623958278386811236550297948073271518231832052533232857604601496187944152670787841067408040460687872142102634721937019145954604731076843845530120869163331537076324943252098094233248772319151812001021538532698801452724379301939169763663629975506880327951067884510274978143132467757412484494731637149613469653103140486425516203938351667153655155350273877832738957559957266674078189570797919922869757539153706509546437559260092471012923591119918599696514709523290651185464648840331109102443015146721185385865980103287576620596956324774760357087332640335006381608529004300291498504660133395746162421309229787621536082687217979875571093640144313372162829448452887670800384262773064312202074916066113879184556421814705544368830530844692985217722619737643847719392322754641943779253553173366787797032104736217899140169233745144626164376731246794930783201832513861872318216330463640884877142287339239033394890839256978145567282665626360356652305362109937808163442314000258829289696310559623922798815260357461728327543770308306633624724470337218643324690877779099862383070958940026586227097682701220599167492815396165639895744214882865543104124023743841926454024519819634208163700617550898888989702159717449504996126547779154901833411308919703218818753954088435763945188133034827559951124484555752263433558585754831437853388685762233056602867936641648471971489784479213693991522994246425209718144807714704102890628768274666665931597333964609966847966264361252191854471099486568133863092635972150171308358471731547952394114906902352747367491433547841331401057081655333105469803525050002131262445707190541788304052865203719631584715501804074559765127429545780827766618235108083138779423072932883586936698289443698016955593941373450341291844004978778669408297154488512310625807067677687316628993698460390813162817585386709246178461693334945613292330304979202366224654272334687938305179799962905824967343949446086856907656759623432353791960154955910570222401894336812817703576903915924175341614286306146942131482229713381578097636277484483610667969850861370198706004207288523268225783115805487629877817513455925508509401568953252903083289924531134554584559730933995892642268252769000780097885165234367460301835896049539718494449718275651878998515532023846416504371497101210105828675736900704798996569830021109971962978520702376259329181435785633940614255242010387154771943838259975234750235294355834398361630278773185776863649400120819597816212121315521091421451076683698680046145758926387673023528703426642085909969357571869705626231222054702773115878313993069542623728852919322072099759020382854044836528829448341323952856505373586863530998306331623196085240230294680614727516337340912873125818106913046787472656339611303404378851800378647517995394501206794429263218101212495468914682943189738181722584223562555938988532617078016200407382162765880210728987752533224146018260595271812893767441969793158627834408974538202632744000083928181163421554581618755190425217757930532491232359638372022501515958075180557688967788505790591789261685549804312126356730535508529754205559689804500032809898366381623506095405528230694404618433940958235848270617236680171293599131179651402390822984698306093417601830758815701484565072596494489608819524675415075765373437371900512893416238505417375371827115445915214570020076315439555571733214338213370012755870642953301322163223100114058561451143526272908367285469300292419986100092109120272751490314016165023640902615198676089351233664856796620657142647410007492345788645220801216585599291510318461748565909055007242393511096378846757434330670468670955600628349254021525813787789590661374763395647890076060950136202063549117127493934946675567686736399994005688112997478178596746041812891981560661118571209968929627664895908645027619346589885970748528372693092959185974672547458219321590073760879996435194981895326133403186609990173433000790680278009410096973231926456757684550878198702554908560959963355265704196765883765247327296826542299011828648742393673002511523573866725597118616340646582705175519120595269268085713577968903150124519393042058972005600870335762837201984007059853700188487232063770185626939376013069396564731758305687177725878106162018129005863053340377493617377859566970832523352952178954297884308801800443694495094494496020370852573988948434674125657151886848577424248349253405030089947520324241940618288409755168006638838307918377289882512960825912036628530158439788211744446218570233578379643791296855742840821277817198516581521770502502151923021327232203604330032153412743353202181836370294391662405450740227501626825660597305943626886716608855496738957875129490782272005603709677198590987765386724727414357688062599877384551902700955507398747145350099924226983148402274692771397893427034391155936802773240922243380532732192074917645191577173176667523465305280696853124389986848157923309631364367053891647948684977774132977812436043845715030943116728329484889489372979327796253497596952554298985828632271763312157114459733092508057125793498444450999233684654014537840989761122896147288708409213736700404418569120020328340882439001202084234916475896287053332578851831404191258290470399664590438989653083132471407936529186235038835648874827020409218443292879862245660867262082898858346263359615600699584521102144806491729254117199018858135923187260853003511178470081668397664883349769762058701442666122913663062070646710550685930400502314078346252540382716304887550978725188579743522057182700063069378568533461928677157487705874081007846117694902441145474127047806963247155872933872206719611329747769121010045699088000353493328918589474743895646900523991889782126021230408371261727587638173062093674539044501681164910468776586462265016110178953626247043203690658184235977381964783387705033825363293037276966543122708418694055737538325054789243281049532063950924404792555835838846491171654152402898710476670953966426214552917521917331062719157012356498090353373358558325892095043140738051085772012269276045878520411765192954891987056774050626009977233234662076023581273725068399700333739920209739608603124930701694401431590149879504153251776089698527915805526312810451691245065571404768881899788247152688410358655811422194543304278514394847590587066945763978121394706035859275502272526702321687610083707212416732388848173659808781485705246618978520247349002267320935182473319457030696451283292873504043445754265981126913805423651519456065841991824275940923939609960077228016849939067945179285824067834369346327275905127412825926734108742897933228394407281905370087549762142284725567428556933150686539430108567679525623623935753899732847576461078973165083367532146912285483442554906035272108544599071271913539778567840470664509117496205970056922636116519462950925135305783770186518023704849905519477272165287153244386250529897845089807271294724036800774829536624351786258827268187089443775215549961528673605279695861940434038644876904419232566320284527240295064830937965956269944696782233342133344423786129244971071456513915491818462076724515394129684998012525725518750539016662699480419396696389235133928808359529559070182637600473310918250821392559426247616872330636383723724992924865340285109618290030651434241283464102176878495504031057926987959676464434066146768562858333487689247524888353832341276217488156094953316723555483720274182080610501717754639518319983333788955952043129196103241420016431438413786886619414717568712989455674067012508599235712122121495299639662062032294542253032556379683810812942430281262521312330075504307338833275425109133597153284639657799116098076269072654921048414126574902026138949192525372085133117983800745738503849395985809915740131577684902599838423474997544023653406612485276303916857605427260026982812830054883440116983699383039851059734329915092658859543219773665041728303090702605843377385575241774182290713376734415798025153443388891670223611708480645300914233628642921421943032381219820285043120487257210789228477567764427969358271938963016142652641207414041804098488735497495424627229076110813171496122926214770117490398541588342047754860702074913168767625620595949482870226097087915264283415546184459006881085847447534536269772567247517560047758076692235444871779990782868948954666903814058696309445346303702194834954338410714394499632830394550449110969095750251795583327108650670715441688273128215800371858133861585842163926272274360651564833825450214543416190117011405925558142076150636240208735360991783088897762692784400962052945142657761360006477446848690779524595300881799027881394205465315814687754524441316586705516674025915023002838012639601679991209282308181124083267395199485524808715557575881754058858917202263231192849853719152829818403418526237603775980354797710037022174120215036915387829420447529349405873159708970549622519183192619137134272516325311383281242263490453954216036476287651835497517550704266669498709110085031159255657852485029026103925788033365836397277279566249302341343811975616576961183040316029912458266128977349747322763658103015191432048681494536138849659200606447696737440576743183220457142533762724045400569471779158712772424579635641121080985391449253215271446926671358733960115817611025093315959006705749627823663239044446960400954782484171717209179699881165755544879467082240619082618420494823578811702206192785480188206806007686703622199743036161962060673441276308169110027938748970094977807784070095475649938297110636352255264649026905011231556647880314730354007804048999349737115881242101961023688766254089217014569237414215658951248932342906952145638566228237067773056183493005271213423209516579080123066903071329825000496528392442193956062886341785396158163657732765131029668841129695205273130639725801445820334141252302090697841642211187930580791234296820473060913017827979022983188701097307873062173616588565309521334598552615293168168164927995404050503206019170839176655424920958744808799093694899377642148426838598115771843195441759713359959269504896937590302965448122616124559462971083910477214301651232192954106078061024301845559131130080683151268168731371543190245312375364178044368928224716016005205003538080180270210068132440387873898103666380865255850496402365839052486222835385080636535883832732392889551658253215393581259388747811301931537260930448171628076438488823500534106726744474564476829622814007665438710218980194437660016167734582740378793339540028521594338458916028834659911223739581125471169543077839696195033844485625893795114540474581640214646307886175865714892235951545774265729962776694751834079954128234932511018995776981561978605709091681394354279977841026387327047067665554866924870192256455365410979844555046329575318255895446478750506573245282019880655899280974884768235057961586868715888424989204823750890696175731116678111308202489725830453437074110893890780000709792757933477862330701396301873080563444684507263364756709787387172277856194906804827412464451497128249113627362602056589432421219595099164967323708034505529810987863886532709201016550184070002213933402003986217562587837966622719999803797504623077936265999809950776305809363765946814679622981105161760809931752231943508310268419665321498201753792435532576044985998257874969108290132989870937623347217887963878921444552150257175638313745002417776999712892439337201128272158469123691113420449007443290443341495326426175004557776252581253897248222429044506064218419784149564954098205223734450932884837261784217952511998429104761844756820886871837100812719913655646375064375302449110244465867914150729626800904946783357709674375941505554243239915076946351987412122635237151588705618492916311519868088681419014758041589042795888142945212196487175468331329850357230959563084757874841881314143772394113548272754332660869991737986160227680903193850012959349402559025073033156563956980885256456459203029686645718943311110040083146049667598783614651879272455779226539200767998040875662304031071512636170459580289607857307090383020881772312411651566154423527878588752993343988323795394423074743510362160938573245817474799042593490338347231898245359086606907866627390534364221900605190473674501982349187225190480570589961254850173294993236418035880897681783973329455289587999018930315370523174973012693607121595765159965552524114007140922383872373297087288040783566598367422889318634589760670406799996214607998989823289561225385810018479103279100819684908281132376527230256029026205399201426776009070298405003593851591188327174998969460290165961281392733966447630818911771027713896332255588183097172204199463577955944548112856908486724198032486613676209147191630116281301930809377257682712733151193009967551195899326660779032292051212211456712215676051050268713964942868513489769256744962563765687264900231197215681777643953539236180127982741499274676420406035401991105757956060444543765426310402865244712999106536090986338601860411864525439276691363717101213892847422426567804544998109328195507342113703336203023177999133174862229069934651362610819978516938135122336644710042735444692960979447438696192446979275018303518275425693741576529975040455426031939305346398082770259045616758607574361875883805141780399631579665237312059598166109911040011662254541560463044988046482271958720317448729456313322778463814857438903037326402468854976947996497916775783453548268822072409346412065312517782682256933875725755474016454292606199238303502278866109886495324825584066988990244643545400908436157845867551086030752914186731640835649499999690378078964852922555410029894867837447615598535164886219127903129933207346878243043596904100793623274810145374007741340968808315237176576598467253932323742201709444024099977910936565968328182946382226353383979281868531085827365213442695386729500112684073224018578849700069000197797038036474881940632155787301200530668331125185721427878084176941564858852008489679826473544560850613440182829564285325490868788294077375514574708327702431341099338989156950312648845480567395623031316290566018760602790722456313342330866558519103136655631078142258230554993658438833736084625402236509938283551060031169940806016667029682830410570570724349007877594971485464389421135390840947826618296833567652039101983906598291016810407230587642135057661208669907015615059632971528919155102068864835417267209264718536229309632803350751271034167703927187982612391530633152427839769406859206775749630665964983443961895292795806994336637172640332718732197921070672396896564224420300302368714118809250991245655952367138697674731900892956046850399055844238323201197742567124026921334912910725995482232903569245543535452114807087343371794226707787351941197523251924087954673275584034664954268346219934071616139778410292346554412874195875321061771420781267751720198014439394863533622303190474112030471099687576948265951471062328797101256137007675541051157288137116493899411347762557421895148309548556927484605100934680856996845652227762938159916037366015369295872290078370856751984326306659820245207785356693781374140390876810779758915677231044620044699712795201305226733844266644589749357369130934176172297424926219415080955478932060103334487439931533056958461449960097665171495438328031800025065417575770659880011344433494543422361066204524115203014931637514722707744610405002138504777594196991465545288338135223851101767056539101723517973950090272835219583504486624336421655237068710207783648263915488183728107128781789658753626474720126824153234309386188323229323747720301718169105597049753892333691526778027442662892309855717763141596437841631546675227779415207160456265599655611868023314043564243543379856115771084073726367655648103579763140570422895357786588891900939293363771064962225585739858970839971689509871372523034966255757992131899663038139818048292681024605762148421453505744690603706469359370346459588706999384882110753273580862206455425048137655195055857093489798946290090472030508522020685962872500744216730854981412330313988313065814805481968814078236359256516341496895600055297804840199914915145159518939009580808892935018095838278678008586474914929323901770246522495234309482404762097498808564391782963227903004099618360068558632696662091665898924874539753417041714502049305913348281239808323942125182023870040046584640199070751209340694053369590135773980901663302423175624210323705001988466942328131437287731825223390014515250905847052711845357165711309855600595126452827909009033957329060041755478173131727734125801089597773199011162069580932917709009363485805768600915081871483226641751991105836795324495159962733766930775007642011738096891644068253231729168789037447830730056851537693959040022562530045764072765161524522875438107542773302745215872456808066981633689794503453903194957756188029923811931379186262751582309545925323299697882615195146932092870142042102575598552390949549791527776255422421711085866731109717886649401398707815391902029902503920705452233490303306557131680476291330281153791393072343388589988280659938284117173413051127826725902531345096424230918920922908045428442468350703110704051018301227532035339244544468163469317238008678744643533252489283929382783706532821143344005019148748518101673903607442644410151239523216710007645930909308038139463149609574979855556895163147871101859075496602122200948749360227062266066764117050065954046458505851509255257986844893617849568319685544669792065035793138055402002617238107253787391320625733823127650365961370022983243078657940998338961993647144408605523225124475775721223098854526251037557908173984874744872365267305439450572902542824121581557040115663108819217114330712848216949462487132830817360682454676162551568399587112827172285838300529305948673653567676443278429561295269073461743828388786943964222077589447000251217722251735346439534422195917706991946401597148784455692931481444626087170687126627253774635126367894702575654723763961319308611782056918353375967840083436422414202105712471673305186208993356656045478033771613900159897829574809808902736898375707460871166019025558561470866927978633776143713557352932693796338011980691387031868407164650349074540327864163127380319539896952514801802097338709684110506491571949099564192271216259044977883239111311119674813850495113215583243362439286947816205095451920328627662698272724962050539030305582993514855390953223529742447231235431096572600611016687610515764090274450029793227759643727750754324604106027321361890043103978502791780091159279002961734793098079395858465798358081935372211025376807231303170105195685364070502306674640207653410451148006815863754244875069988158473273936292344165960098939456198329220295333430764969520254953768818868005202157498986849112353571623357937093789876204118395428614958056258638450972759872572954789385521034613188284536452555812553724406336676477636579976586658689674220341269896034532576299690306787542917649290355508753601221662472346963053804219505079635511555274974590176129456748847404872678493581375423557623773058906365142677233014645131093015274641825663891410277816749689130158361767488863583842620010768893654691527884887783534335278644280973640034696159610652619938829604275072987095457625006360635048363149709014635113871770344383175264707853744226473437132538422823720418525438195793221161356406352254877538324942927435670444071487808572933517260620463935248683941598836263155983518846582956524823121585874241607133502903836670155617856284384923164953514726066862859666216155615365916205161580519259054771505471156438555819679746259951436935225381699022068186499990903882632211586441779403484994439756254768166407676026870439125651513162047456885147360806837102208583764608982144860361083142484700476342772979257345066539049377384190283484171901404877716516598065661562553588123213199786787750969283174962815098623816478313867566797803925963210940673426704099031603818461020416871849029883588041199525621644028822627069987868639264823159968130969678684666075184332069634989379006378968610050870461708435923103920472794544020451687839664276848718685649690844384810301883466851887060388517251755425534655798311368614829201826828950825565760720549416306930065102751145683598683343084625464974583140778128421080741966565405527562007801409475459312756362305031645749979675330402597136641534243611502145120422445846113091476194247604008049636342858120055192463691026259206514494861042918231586417940151767848805847925075014811183304572577654942750728903294280410201420565927164294816684880512341989691761188904375980143077428568354685301831782139832916853844128862336543963506960951632311263531667405726324584762299266252826673437302901878466088265857509650164559695681820564157170067009302218132119370695972845910479224215135279025343679377373517889210604322012803052418804336552287929000906942656971899278155024240564994654784773900156424979720188614610806284679343303283424363443833001790256506710257680693814480771225403492158238025398689717159947415341284038603774899581206137576063969111924044277885380809080278264700026085081640167975259695580179629744247230766372251572497302365315950960706642146544187481557604956309148229953090222887847289904941945291150292186369176051570665665934259022860625541423396935136776236458443470389443226592249545878368869431274886490458629752037215901222144250070183659834257851185926165485828513014789804778416418413007061337100994124198096760677572403940439077467680699251406994199516923920548342991658068641856910902295155754639992275985862036111079610333044557618647609834751924274155621721494769138123520604070263567881454376411599907822698073841810841597510848505727232436793167365102032741219909934955889921342216649918635493016976810786151215479439786221748243256885921032116408436033053128255233218670159250584772822180091802437505611382909236746018848343074401028262848891884075561295216550683340477436035046484406862510273228429625833983375693611946253209242053800308212978266043438154583544866357994308469307522980356989291176148912550616060982962445359653330578904937871544401013186508694288832197146600041168253055895414690967249785356684691859561285303278346247072771592072000175756402251909247550522183544676094236818966243534592993571815620968669434951551714313172500024164350808181150570309745120519201664561937956212136680659541852103731137679061208181049865879485010839222956482052643189365816323695174802840530895588677475011308085447129395674748097875946693877054139778589272791741607960781505363751650193362624571301283010970971702782071312788475521463540330907481225252153619313281249190440680384352773935153928497533966731213297107733828830763410016171359437413877085738560859471482275972858337769838572612668147821971609745400027176983523871799013567099085870823442091823957899149922029354108643941668592035313296541724755344520245817591563148140628068248571556696503132868038823153637680571308895429768689614050307159899045977923826626340114125246722649637631404956233375781296588920782749240280739236726749928902127301822486884443935097169413765405088933751693685943418244616833098850493652913904709469957055255251061811095582422125942967243509804320929836472844012318079819813167267815274011409467044927527440193163723004050026727407118154388422682884988789530611448268286988683650126180418700448245018730902155600678854706628494504255571435155857176995947726150326089579290333622193734151239670455549295731923887675290926156900940103834036863143520348145929754472025904179604211353919716476723941142815364858119565792781050932449142859693298557919841913764456712824832468925254665512252888420710119112641126833608255057449174589301246413348518308690591400842475891688685457200267582891957475992864941167314849754094777607298594940116637292025166355419320139750468108319962837166421832031516587580497112810193063419755174454745807900075583066647055063815540394962118475472343838986530510861016290561094519964437012443729525623716922008753631709296058106829120648051500592894776180381014065844667060673861996029895489519040611279273232262089145595375001851473063423715164385471064135497180076935642171389338103834106409353277910358452371202063650688046084970243298605339113542515177818463495972330504126750522589189555734763364477500697599045781729469567416135674978953886310055764216205083437936895949503891108031345126205258671193431249653796296898637953295183826516865947280823279396370335580986683976297460380504768509719237238333172074337120715766548662997055169149526703212815860142856009879332314135451403717100829654952568567201746687127947210901115861558361196798426364971514765448413458008913050205861161243325103394301646057732936870228987622066936337517997414685959656875562198827772957877433080440414169565105030318159266289594265137207741928624226248593149200144133434971751546797212968375045450281190962213035129592270936827083702177134209921871175269549412664383748198938164215272307014995109964713425773973413815705178089115678589603870506550127273496693728373933951698417269311344005812215331543211674183834801473380363496386550929953630404893630214409416822259740707578849985111161721332440259413908238053298436550653937633755625966079212249692884218230074517901130426190522882466689479798467982792612641274717942446992727855252679066967710634333550834011634483814378912626828617419291243976234990615576523532059087692228915555465781781364960488523769729349256806954182195689927278119106746375450945212948612495921959823074083638740332991045852042257169608316055220078676787846079334257016741413384496839237200887537565512570393899370990431089739324064055472484584780359620169002152083240452721163320921290782189088191479570846243236006716629046989508660582520869044911584537562731263901909294354684297813917282284787357195780967651037814108174976046578748370659601025215192402579984719034698572494549712895601890183222321314873628003904740657926323910799045910768263356643049785252996024563654343005970473391352864001666293556570162719555669973511938315654799230438846293200928594393114993300781163280661433510849532974395429240469195955004163705555185758011448928423373292706169941549828125908545252693778063378323728490187905189887947147761287702131862118828354007268760245004877451793417906797409185106549815360568889090842816554377469321019996908249316953466139624155393485706496309660733586171538707464660432902547326966048616304130172286580360428839118407345928885092755278003705819527217801241886458498569229710355856781288075670043594504459072300726104995655537031287165073715851552857756838489274141439035382844573809731685350494644741882931609130618164902901814978969419594433396004350644872205498353946979782754791935395043079966478755917454432240672851674470516624203606331452589039276109163903564652093365269670255189870114090047764702201632211605493794306420492248571719493535412919726470048845509415053873230343369907610403999821017521358129148577008869713900300465387827839559580274830487072327432938965960517017959621614711123581064304641700008000293080032982755641852850480722827852845214225728786453055974584802940752114911446180422275704040805637640329467614917766948288584434216916534200398528233148293173316599994563591510510312905794507234722553746563878121272981747170393578821129820590917433444551078568271776523724632753486283914590377892685874562260461946585325990880665524053764851580768376553695084482174550811750866430236545316190406479052053110998901531079245554749962557133509809223452453835832153556575457221872268485784028511878175758553543315017369393709101027581097627050750096104519948865367862155361219416526457546626403291595502225641805678480396841192072751789669161702872249367372829778650528464886757178832512026654955908568648587125421404941823740414221022830572769772813782478042622676872341695618666731123345154163161605228130786027361179253721356812913318738214637880486664073476737713514602928064337991312869702299403139660107457972661731467104902648093856842245476054864404651832367515199810698409289139993402390044221465684645085624800087179472469281596782667293054146220337702909415994966113444966616020265409034943408375578667630022382680229611171156954960609928520980770084968946628075390776319827236567092231538737968583985113309055054127412085586637808841068992709020213302658768001775653201131042482281358889904842366675575319637182183514664778117343897013374630495083266261760700671738455741553202589234210404939789685747714167347413208516756767023092554520590539439039121864319133873903549196604873657595053514605324695530771367502822515455308920914072235976515076629568492048218916798152126085704810956238104197992587152461366504793128923454511843794193572338116006264706821541994098111871407623261686351160960026351247321266733911140694045169660527879538868739144391450974266850706998679810014118736351713380669012279847297865237135089943492903318699250806927031702968501896984354880065866563316043374786792328614588643266566236297295238099216434116488400200070239202172823396323794955880354426635634564281005001849689191915782233116131344315927359022287696287369852197811930595987578092782843412613250886003538882553793009971504241115641098144735927856618896019337088408687412522152190267724294818904038125654847674916497348642868778160495889688136663455527145891930771169996289658375563693560503633470186924473907151542730358188828271089504218169686842398387090133053860889379615429195333135310752746346404266907565017446748489576994864198619597191475065659981737935388714977817617941729492590350321818453266017601443018866524102503150974463991559081845379357772549010071079915966365727870437685584843839732954448768384001054056618333821248857432714911286758635887235606831784180634037793287054654666941613737972742876547607257325920916005692290913470171011141968534630130754278789758089338324085766998443581191952224729548927849500115268812791903602215515718256901345095934712418991861029122040008934833096309632468418234618743871100631350901832242529946734126927283110454218386730164235781228910129866288722270787006626854995881982748410079958446935423926368430582632441233073927287022836260081261504562583679515091281073652420063382759754961136959593846717802344831666972954441856839180401479853957546207584494724104798005975189576474968909592641634267496306129971280925183524173999702658232513303985183315433033237772560709939119783422286765363717904383159069412074291419667252197275873995041778980018113444625598739925209413902577927342303927255891454856160442346867522536445287617691103760166196889477934490907842797416350232918783433175744659127739576410910758519842494246924044256818358119353757732654366069872187212029615124200176158178868683104458042897921914836827932673538631452979168584589679793425283359766937719187875441667963136792103914311129307632425311188477268341641306453631028974919660834060450341402021693710660181472345147259077732589374089960509919354552096585721764614953939059242408814571807470299726398242448326270188286581208899740116111043378682271833866164933875223493597887295387190690174974251799688669909379575274033727207965424536222534106336326551704908194480685645340177988254061625624179754783150607040858517444971650506007988413586454793944208349832017282774479414791420466188704925681214805229740749040162602035142818267666624058765418383058243376624644312728001210182273187265123118427592694207856770937797835725335244874201977121208967525194229214792451375185796931223893922835788762547153817527883722975914654694057526234384962533022543606985810651067266107484856584142315524638627682171264653134103842222727563317619037542010945479433717469394866396174887364613995603274739815001080596111667460841747023803969264916130599828353646787948810322164290754224190159676797030768380835729429084576682895344618123127849909465100065086916382038907642449078002525108476716408076365700571477944507925287042875511967857100827099503989119015621362219332225730605366420942222288600842675170448864588082911357617622665209691921365630765137375886774557405766515679326289228853550141782656308061736693402343115418282082557459576537021642625519675809063758037011620593309066393487043430025760634970695170797721003295495129033518075006314841224721795588142364800099478935410982196701719399736090785359459753164221301957566599356994650263937075849315564911249621817010382163507299240247617936366254989908724382425867623074891287069094436247662994698161266967097696723722604687638447470432100001291898475856893985212260909011899039597605537232432519631954075673773085384974520146841183424608725879043876831484197908258030037418010299179735237934505575234155634694876045962912610505367079190687708090596405961902651996757801386871507301152546106392007186484979883557781574721126780834113216927092883008807560058853578756281404886947022132124888505732616770588666628548092974822561672892002860929271664834593444104635094012040682369820849477421635888429151256814947161691415337957258506497744413759076007509257310267202753499802998279408883754992973255823576489677686838950757176310971966395587879684558559575485081950728225364596353700594303331093192943530478691047876338045526422936133359468866828693568801938161243423365417800761427077646354732300810099080157510809279704875301888506922401359039536588641864799266465354103915985828363233496254089384283782885893143570743196890206468912705723127236882753866880396343905255810524271712796514383967027415146817503244651891146311242990249959619106903509048025382968630824871827255114562609940830245398957889552474553782032468938242739878556960986290789315771720428899712548223059360276882260192126120465352778375380731153150370345044736024856672598680801472683578142201429526613385312077432123903099631908006126597386850829049464965453742091364537736429275647152066550442365127974386987751025553411965995171876284696857552832420844853495210116247201849465241562329742268338265605068736608165737116958302082744161730200069922138274195608347918890782745011250411282177835660814949624985582368136342205155805451417709323051939975073996002032980158044934072625114039733511773804523472856712268476260350257411054470480716104917570253809107265213765954618759656779065233965834085482180888919995226331376426740740065172853510623882374485330059629581006748312622226201658541657281793777530146285987500558838403711031942530130723166828215212991228713919328359295850774498569385206851206176590673352987841247816689363011480949572746846515784628728950374393595402730568397105049137941309127806043478246255992169323321254915171074515494134017490485447010628667151898936498749688324952701902928462090034546036533723852612095340200282224693100925029284577675759443788478990340500449935287774958252286196515106239551992597873124091016045475820211641995823025615870768521074457740509201989685558245415713112600544076748476191713273883257716686497082442279467300362998188795247962713320213648342509281474295147478910276339625395492916441042713455734882197022068514742649488608688678590435294573117746889367817311607656983547218771037045115725335204162229798588599142029854313200011355581431862568356387075866451966051417479198545397303790917294877270227921292637674512933240003765458234609195378391516933309240869875893583633866766794456332495356855151332678958848505737337319978989642731245638102844984573056013968557187055042578062960939570487365260943526749971879030071476780022923135205526243114524029875320197114755915600413076557768532715710276826845592773177525154808021630032024789082763642904080104385138778402917908912142497970267722079993569885523590544416323824660699150111605764513831751414435281746893113823647928590815703257668272203963040619887723282187759124057515784293580914707127158155752270773601461263348634606690305384773450695052811465839967919869759967806501836905052753075982525785840674790819423031794854537296263918689568186552745606524486831197167391156879653651713793135442349714591900472023322734697271281122176145174828305324961147030346802558630208355273804228828066563389433679053082211261001311959232341618201234897184310792803012768481520541033356356939493886479600202383069247286838550116112790643357888803463199477474339734032289819458609830375868784413342381574268141486295272683220145579270910846200205094158661076727816212188214002715795677743776708800748963193074406943522674812678625029115075194793155194589346950135594258290855792467235051903241141831788232523778052830777374733719335135807186698228720944616059147854981724854260211344660542485896277085855414335544550597482684072657207269797249870818295423959515274592551377637960678770020790228978458607086740123267536786270094680706825639907291070872171142387627979103526954254723622383867228258807449484651282787431438493538941524475780818134981259020384324150830487311902222925327934912583318726159455791119309722108190143733092329768603036372377064432893544629115267516618658197306534285686638025313353371994682303713660508863817146456618894690886939851603655930313121109556171612457421360905720763021235428561785894192441232078817384880253227517248111673697923575563210191364134553241724921284827333305353317354636310499370517058642691056761842845438423895452268788510234873303728939785073915454214129391306651434254538761664906909220155996028328787726365725712979684931704556928743278319137355969456579856933900749916411467196121506024423548294711528832521060778851259922529948886220039035113763943992777181947841604919600125823735853811783011066037663039241369040493721800346957338466797418204173639133200118933113527804244808834506932765863444887155940455142669082541021025949447354920828125935603660521711756461231316677731847675491499190754321718806931897854929535659362617224322792548241318983238825011642023563555994650497132253797809293830919980524853597920294189343759979024477486319526506000795238924632555070985478653420059514691325039159241840992747491657080860383685426710515024907440887351954922033303793880629575976689033455577746109176197121337463932490235854985792451415641882186940980336874588443457381769663175184276090954782140409234571874552492046732605435934752766798532296625627078302981875935250986269804520192003151338016496703169191728096843782405556607735096101068954384316070073938052488231080183415206601154714826964648419413840717460965343236907608020670679562551523781735199172993826631806427019043988637626026669402319269338508876253332033533951164455233465622976420878748507165101466504831937315529429977418123103387957421618449950274842984797161690293756996340828959799159522755242914691698808707329746003697025057471720511385504519648792911819098181493804606035878371712304686854645516083467986887539120856071115414112093428890163287262822420122229040983095676636382894477381569257307425599473363529434124842039385292536324734348123175276534924103840523216256956994259117098056389565183192958867773230381024585452482838473493217033099587402718838274316085634812547525010090747894989808867777280358970273146220134357854876085441086312765169537031707489180046012945248663792746610239327577825257349818837235066704733988472798762843375751749804604202274812955825963550099198687768954782502046709365594044083547093897295022953112160817269326910725257989630983202821429552067998206889434734381225274885676164780013245430873280722345565342184348306477245872831870250739483646863344792661550167818218432629988562003028692868359810702432487589871518709868186687192197843028011524113860807752955216992287916201268285109634448680894223160151257478853942669125909601176358866445902141565405355817353723294951900234193500821454395200829294118209713196252726270910803945467544777580278043558761867558255635469020652497749472640320827703574640374657430197048242541751835422568112261852446303972952895793524155710648940009916135053087611837367280444633454091672127890430565969421197618339513043415675160168200086260589923085694859909854410041984988991252429862054605708626856280991180414397318688150057214758182820359364633416902586560352233421171929778679483880962821176390662228471701247701533669259566726253845461142979758123756463533916470879137546806778460601773040946195899877344108235301840584817610167391946645781286118530750860300281837588760026832885106058657178421166852525236472747169187007633969490481991623526289811475807970870280800460293616433106439430540731600066524797763612190802879600510137518587138615670306984578881507160121375028845852797076746077467012798150794171676124041431371102439872269243940209232441486596747299874605320304453480147969824141417129688406846952509890310704453112280316821014380304840326923615699852280773654762953430690089231392275546015370778332751164438833748897157058712278504160369034556198003547479469845136611659795928048104231207395726038571286767412490091151383735126950683023742360190893947862562745196770372614851954302783924407244093166898390556986449262921636515159383141861848745309307934247066663981793813672262474706151208102572202229386034911218640296238472206374581270814051197281441426714740053324464254812116267556008612904750417228075629949549320738469680372496663376755193221306440090448053683467393703382365712164863905305345062881557846111420947393722046072008188867374535250643260108531421774044969327359445891568591251684751467402880527233702561582829202840311552626321731084387925630275292366632154960728278037169880973636137788909199966295502040534293745357924771392834312177377380652751168096664697315942365247568605319242644196603999153948931695430476334549849520843502133505192305204373742725773775508574964057820632576571565955920528429088004150911192331146339889617636642778811292330158458963079482088265112372487927073089275269029906017245310966831270082503817269334375402105619569976424402914491374930933060501451269216424095606799935305743219955125511557185183541438323544238422437038179659277883846556283599948369040643088943316034217893167556984559963649353719756261684101296473728883274888001164363335144039474977679725616962118943977067727092742730178290809550072205344412670807380292054326990697146656510710443511506501781267314977910247967674574365552564393896398790701869151007905522061261737010604959999278492971146745933275635259642142370142959509632988039705116618280993006793255902624840292378540230498678026881439060563068348458802770767882225289442765280976759038251222227223242191288857308026046132368657285702137241791265817496950213273391854887093149096777852787439117811467810069685692899345165031852466828213724681212592218817732925107973309794902540496220389569080735581205753274440289525606059186713001993745448575826091293131505627252292136715737778333517869692966453318680061317890475409153107892768002265050959777964577162823109697701279890747852921205118082759195242031746540127136280154252308304998467198531184604294115886068016934500853810720698292948929344990886872418729843561466356359035293563989989364719954442519974043687331131942680215400867014593749765992852033653303853362060622759166700486105426889773058208358607833569553771854726124100299904223998883004067458774363652975673298808368099637356879288162386278513564621464229798110367446642793115634106203887319686584443037671171809389834011745918937620258279419506725256540660358689111420159087906036728338591134752219326870097915303179764889352545707773699632147268929723431558676796652700328402083837161759105744906510372957019956279581424677233739925218903447638764697459578799456544592578783802309476901532210858435125942293620390212204805550747749387904028217778727837920861480367457935593396724262413499415890845982984567123141113927106240708521775756342680426860075848700385879844096427963435431820090298926979230879315872257597371719755659807166773659824397623290750250477061866485463382096795476580152725545928979469744002957162016848127094445942787959420955852500613708061698590012532865446082121459029263110331894162546682470402906731566303195441157184208866048820440899852569474788148851707207859217845965402358507939071619530813043955025787863841643959081659836979715984111782777773618697533097718609864603734570809003091516395566696590491966785888905191552552179253722939948586938146232609748310939931104192135962051687145868084826160862502242424379504315594704515861991999641887533697393462546786689567902597897850901829762768906159673399948982221951813548479894245137627882544922990976320528589566775879354155461130616046633247444582575652348615201555505033825326849203246823212051398498529691461718031096350983030422177382364049360655117402117611154869684552062347711374993600731151554482532133584996253202794765563590162097466672332718825007310087944113111403626676931715842434919418076838407634695607112148992314871916681643718380183155480565675778520545099870377416775440592496849090336715600656845754106319741535807383251153829356222122139529861796897157348232328731920583796542001051054146892542908930237735929534773478204706094148751263919906219686249923952916368919426453715413259125518983067893153280762740918515039949522912968262487268999884172637799881775772007733335719934394261244197579373176051813206409608207169812255915502495871239720311087357152787693432799466387344901573092617702831522632421342996950895366613643595576748100446590466854672216217462834748319278040865380996546219525726442398272978140085388661094473051634830290808759418081628796607097066329839726390885706370689850962156377959328090292574258767008754221706614147969779223868573030579283674765694315537405922345189458713704291499095742354066544166063597098054177894184361982891998463684148732162699161447656212878757836647203865608917557631223049896758363076820705484690185588739278645077149909710313676760727911303409219617401131901136328247189740530408394136919825612272179351565220954156205045923201457754859414937877668817624057063979323312196942909660337770579511201533889399843198237519070154532714675378952840946380650600775568517865637851725289663168224816054770345798817251113444678615773003372817381946228230700725200001449690935519720869190914856899834673307946375694501748433713022901235048349285103891141972403324152386889550498698790535540581018799935214065144816304750196987639123052061088270585546436764276103437365720770637441076919501469422089663749587347900727691340548530454165290106218300517281509021824456529569366171010939349978779236886437619210932292064660894960378747073285958946463578422301970805953649491025187288722830197660886701998686560944006401138785019162617478494772271599599881476854873364683729814668558732648465808473738600210933039836928208303544019157031358500581775032925935230834301527281091779897562502289232249920821492683988933562411397348715527878668801928998077160617901468678648785212587733851062424305693010774476550997782835977494253869624913255568689120992428343563199630015795227977384706183692139651524073751969018816090230501715293608296338787112356743541590114295808039924139598018754077384717776090027974469119936153568631147225056556358763640179333842868580210797013679915680389853150330772232063057448664791293072819991250432987609392308542874285582606668578524049704834791292365319612909660183739431823461970896718302994790008659789542166029727839795166745903085324711574591763088389079574797146690200782058748252666320962882421333792227827767010582753080672460132017495273253828963892149497752347262636822108855973726503688249578673066935140503351339448865799303573087990318963040041867698057801910140989635268700469950276273632633645336164444950026431783376558496277960120835414576085491410975070570943786289063993995856652404922555898625102456578716171083451504248614040526540742371159880744451832175100198840046568790774918128396466315755288839865323542219686716207941148233362150880381435647448232958751454367971316912434115212614446728111836638370946317465191180676333411064061356239159589199528762801254985640096249057939359278745423301546020834652689680282465492373116718885715711160723696713022961008260199759751198826773778433210796274808936274786565763966149433013983653590278254906111519398628887343917435560122868399647608849216532803220726393200569493252683341017221659298875770942741974408621180810978438281463051535131798077536863273863822170363994499045973306791762522669136412536439370505154495124458068803105786671066148235843732744454783665662246649922261386137913089198069775818341973300840496196165198612888980686373959404305521547348066752133646531049636313851686319180194398403361245618675507907353418995663142754570195057784782334711388739973847639744323903164903508818745543287311264656135816066452290781373154330226475917912417896599299624627982091687878958723268864500624834164313634427513357988689387421804964173016042099702916165911338539496394142171114937565463946876153089393496363429847830378437911067045220464843626064689181946092075698288137054839436893879395812060281114613136428528449564029459234055666904979160595822983726930657121119841525199418846309659630154257647232982642818183508688882181675395000301590825570457681332319585632260110603702194115663402894460079908250677798799318823601543172460304885175581681840024347616931577558149092385680296317239894394365311323798436685393486094874318366919372437116524646412877568587558246906082673939574762750030727917319026940991909901956176840735880740691810851362717619959690776616844381979393473792931917199595041351552951778934083411596288287857837363900409702350003790382800768347098889094438699289396192943845300590676914266376221641460416909987335873259958264934479289348717111846407338185367741251921894263008512344048428540579107838555250627925186066342227605980627287260107257314385882955359667994985153642055574647633381493511036993580165061636536424336307062959408972947503888149954166715581360920733730958717917943863708094449255091975513583642108182415786757809720074858342986972094279704447368712287476914233738634797080509246187664172093096542499933329668982698323219206355220454581410820835401244062130955212140650857284795442179341471116221948625016731327701406170095048866182318740006772138100899317179405371041060424791155298489204728991484327002592506207642060126341483948295868455822974662177768273314438909326989283150609437785967494376841049416729706614382626767863176349125141880002959710427897920077455149897731495673743425652208141156241055273022117873480078422887001130603364714699509289934377149776123414280103386289464063604503587277447007723390569616973667440765791932177101829160653728878675841058788803145937262467809296304752412122369081955948560545301249146581726249612717847719278265910840047782420658380978419146295469428899815780775239831079685210872435993136918467768583522957733839204352364765987210438003773505085881341493004623618065881351949865375227783381732936241406458204097220641052860324113633003589004961331057830973858391664613207244852329427667884713522218717876895971925647887877267113748198438783418741987883113523683810266800625493318501983008919646609570196139461767167602571862797918479092549342728271000597000906308729556055553513772125862663929385414159044206695039152484709816923516797505512729331895984270990822364381026512639097648295894958721768466802859705719946985225475599338726337387051593882476796307405042240318066900466123182621935046160369349404584896628505502707948309552350636803667806833320071140016180637493290441730497397877123850172835927984499596926901761058038984397609580262431802735818318411661555679965138518953621700281879442103774454286274759462534123999695856025380952023744129294781592490507882912328713754712508020307731477106014749915097018781878381846777744226453009055663932542974500996099937862321373645710947058166743603871041756790058757012796639338176256553189103385685416307624845479325903143890091206555112581186292689080142410198367401523699602545357273668807274832784084875489466949066316591174268121285097638477579594945430724304195323129100486968158955798583027806242157793459171508977736268711965215459828010190259296223463037752171003203009783091720682137026520041919801111886400846375683282350966780127316445317688214952788719768524814188070527136660570715095081416719345674275358283844756856629851220731137339218131936733019862470629808455951843476557800455329230367251700714295030166304180866320245475789026727443033122900820096389063016281101334509958935550978156511146336325159197806673955401272332592424793220474433445661624047007009698230979574344705307581318687687942131472057150804282179976927108599111259995765217445971441823508908496285503314495247459451862830672055417793240135472178231969057093883839368067360030763529925515861126764944094555219701014115417727440562867125049729924326171518982199931807862654868869526880865445072527621072813227564600034511650176347314349058992141291497639859508980020256963306194984185836906214418893235976200364933822792548018245087447322620877706247486540474875991066457569728097420989107041668358536540117750227093541660326914018005607722633917716642992262781625231749543379338984922968018173756623117762198029494773248924071216427192192733425834784600214658319679222034545118125219458269799173449191445431233182072470242102851474194917821315884158891640102577956349886425835619929231873057479443697025872830346513218867239894946282632855958964615184496843819484234648209388681432797097225454471702793132024886577745376334958594495743772382502866957006420467332414752600634802098283013128357568789521080070149099309641240193555541152402810989249440994091176431111073123104895225921369990884671435828747626054250471194975205416737636846184680757126223057818306146298803573051737380529695682197408633439603840767974320492792379060235579122331216437632015615795484688730567095539492348317688328743318233457627151351008517220764824572406564029104253491720047410267665766399809985365407470641839824534423889309500735905080667062034037568113937123279594493005033219916905542213224947003275789049130136043108437285898603456271230512031488516029802926677852060398691826036101188205583677484394506383129573022809573836077462715684172531412720732008735842167336197966611668337079983575474670737054811871921661397560918091863449620316299428946791596292105620090095564082602814074970400247032580923420353563279603701244391343958677691270746884735317335193943058610323643469893063335365210517865699135418568300739141601687303887671208637652426021491765256168844011064582508837418643322925740862777848273591766878990354269712712999780878535039184747266022416609714994439715477789909334078039695112966766687120124565801269426674229541251177513787210433967160896218337545349707416364924972725819829015531081510789173804748732205801010522040470354159305312824041914252168678109444158540086242330932722234781943152982787338330384815260732318760744330903112868487187246495537405750188197776357586117865824855373087168079981274463090622249842171505559144074459752125074835504597258199233211386475642904639733852909282801223775059971101554279891928129474721355664947897732685512274779754910558455174192190767144606827336660239252409003480551379469763240657017484208389464445247701187025108675528400197212840915985809121602958361410976930152494241504132589887584401335683735102995233068042028070923441595482592591423803503885077713911220779507080380751324331042637156150294003398758797971605107138634610787842079341009269848544384656696407791745772301601672411524137671556228503158136582635799195814505707213358102571312745650146389008240423538012933181238575273708130170363176484035759045485382218384964507703753270955231972227614441028461713761028437850089379656890458693738313043786231845088927217327332383984500699878725664620353185512640364619773340444439629131107012991053921076806080528506678502237537383381370332857081157771087842357499956503879313288848367657988214139970515271858981695279715016580722723772437430796521292576810766039978293525582767020816909083936656008427303384219248804675377226340483946907978566595486197359517736583526469459198736942385416096274878067285829501232435967965107901940489130361322870260268740733696901935045467996681318784129216161678334207891290591285026282243857549835269991268869666429642508640498269077133861521930262646685425364338580881974161946386955995129871318232327749933148072673711705785537264346334240015145456187677756177468123523284043910711889750263172464727245622193366786777088004410811120300741641672120151426460426153110085821560141875355504558550929350002142541805916422972112241221255500621798069106842602587713965867782158735869547837647687371423256982986780285646448039929396952422627164493592567664064428785408040355640490306907536462408552630997864587641045443125892970199322916579061208584391556597477292131447006985371135815350966387006295234669019712617845677376927491473181926888038421488883345719382843603020276563723226315030969481624730674499640732017328320973948067222626632017955154664979931734625310237497330426289622249431677874072164439550541338401882127992467818321399090179763174616524750222939155798049952008714196381133818239793970758876883988814776550037665058796929672776133099821222173871634712900709782116324755316010395582491752844717578565197985865665735011438798754804013835019047275808670613441735414646163224854962884773191104343720107567545393499026791560234688964673292547371733879969332651818342773695033338892095841966192439767551985187920051001839946463235939394818269981851417075520319873070114391551188421500284475115028959454949830250655147245995036023965202670093730532689104163769802179771614623551529591330078707209881557985121406669642271262273651396794550676197845630709322929539088052050516465119509112310944810105614395782494549787761404601843639845358047592392052555497427714679449188880395056026267220246450632056632322779927485311241245884756723567478189812520055219309690312343788040553551707439402788681405269296915493680956376107093106488812564233127944508576859019164058160679810486345082644331581529346353009505069652653487603531866029943889536845057793478899910405132030111519442417741828677417405889166019509245860118477556044353110041436930241348411246495328220940499001789377880477754178045721271551242021915597806426835366684710445835960633655554819293175033947386058287839638050969423418979014084973106179138658364221549373164689171282352134356246837876172509506386534917876154368427201013205560035029922430404505871599666776418047643439680279192969012807083771338773639296091621913399033466160002621010853751362874957546402812169414355916618442524413967169163065022220084386432007564998182523516501278236772683185656627623417834455237486566717542040380100166834437917029558233135332393561248035857958821935860760160923746629884453111051400344805774564113038695422676420603858380925483494692901984433820194425102522062570967987041557171127950547860941940048406249878579701880318716665845919465605125493457718919207674186889887752221765375273777465319913132694355264305088571921320043738826955080839115149377200733941918862573899844988831863106457815143441253029910438884196138406859615714356109533531673263957438491132110354199585213159439860458106024622888813190361282377336312485559304610701813854329103672914324830269220169601962207026874730444281336646186342275289315425482558902400176856130597792010468713707498854313297651765937696769551841949393344215756971746021270682197778246272941765338431562704180187404380476914189694589381261078242827138044019526117706180652223607552866486293518986511033750225115728403627747393357832144471898278247510740258060151921849192835222605366794410569759870063689737842919079306502953133310660704059869528607488546227534305740550019259472774374917717798157089926633306467634209806993653934310811706924702801408976148952005267364366850241732373234073837172880695132413400847148706846579823613177628695391207846140906645108154237772336714120786222645278257761193749693666121769358592924666469352672596648841815162974736814501632122280703788248203536299591279868826411848278624404454411744977480069057798183987508125748462784970806007065365563768304283661298951280871360155080066858592953363782639146675888553564688966481625652787565150664690089351366945374622898673616555772997523296779079784230313530509469916356501375838070275502511491036924049043203345668095165414456263105672852658995551546773692237776415881776806626762760581999152300730692654779513632622185752934950939350462166324575180764815380906704898157888799392465554696456433182946732745196191925139442400861681852172649116248971564871497721385058528600671353071627121722427157305076872703839040651352134736636425581445502313541686906152411921730887785848711422395360471799679591262432200931307040956387464222782660093625051926304935439942597756071913329942194814800195622177364593773995233119396350245975928329896397688190973859829778473616985642377946475824096282883533638413939085575534162422927404082899668765828531199510412217850385721472239584893110551592905437388642957723679382126269755280443033801336011276972640462956800946197551757045742729062453764883977895594388144417272023657982687374361911385744428638721547246046815414649444476948257692551750721152989386895102304692493526871540349259299116915540345081701932405738984845633674931202159364311921000836861589175150962284584720307100371555421898632258728372971494284549171144249240410316150878308353993469191421908509364089937360873106548093962189344067569369629172442250597734535248057270545572810297512918866709200434856541721358908437733709926716569285476361334286012197386432611751914874368948935463677690420022664368992258928997246009054096235436249066325084258225255419621179643138184708777541654146151009511883797333316049660953899623875674693737536659092885505239087779713290563482315947815219784050837953248053318833207556645562217389995067792969517491030658132269452962299323950501629263475989566545333982927225147666402473962696370183847780167244354154859851259768493394275106861131508480053176914922580251504710330204285291981787608240028338345792195403010881751060960745180972523798332704495576082165192727151686659005317886504305476785065359233922990992430338083082689807697285943682340849723304102128541867339073934305992978260061142626008339843047537065279812685762651300686967124873854244835935092186964893936485271437304925722293355648531316028184811052823163908525949797884037872381743825020932298991814708752818254099298776283166558962839110672864637291258925735839275034691021008915666108931258287979633462854257883079176309664062167737657607643702635276465113200787302426455456735455264975894764452502719158390219940000374115331957932539738526930539091946714188154590953826352107520249188555472475950281803143476534566356182884365119827794364621139814961045477095268413606629096828314638377643095448707592419421559672192041987765333954639149140098615220805471135224954459729932951525062236462816503984464440354884526544098606009497486873744797590395373716991672232373584684391150097425218121387855167262358715055634669268249008190519187980679031268108100181533627733015929496052563809986268949800666110597391822410530684127878906783831712843583871213088969444142266259883006613244131056176341023785291565804452486099970775301577512659267376872109199192805248595899824026692178497105088387937922362413252976750433645059577717550308759284755102088643323730591622047770918642962537238151715164922453831630695780620083225931702975900344239149505604508860560731333626309088827796460510459328500131590070425349842400998961752790861907893119918761055480531309725502133825495023143118445200096064295798490630419833355412263468065325982368934101569195059597905792865865804410553070639403268732174615257516143011264375548025868383312549852631396474679307345009991695595735456321292885998207403375141190717503816603656702158758816853242531014676007329406423455817548504889202401560150118587704220636044073499095388182228892487726760998927804083070171880190883671706567465095628031121708055981915735566495397279369162893927327802028162679604199100580207004004668797280532817802813545804219687593617024098113715401048134654917958090273556272032522271870571217923983963293786848387989346536135089845357905963723472302405865238110257026521578240325888169596629794962008363078068236361548927719159322171563908530562660982621876891459973962757693792018016037831182091746952034440747063861531243661534969313740893425160189775146914689883035483416536348655962107481653705170807728648418409048054767014218489918981273053922124889190552841387740239705549060967704637633505923115749214911466461828483803309881254357005594699034628356263669989231029035178670060572712384611333267446175866239981204452740745700676579576675842510062401524763418703178266507843380855810699744823247071543692691874800318821987943463065962369771023550056548466578794850050220866094043085521946806377507518827117468147592920642814652006784680035467172761456571769102068685659471362882714005874145296850998599631426242103153129502828052719818365187948481020345389642422375629074585391922534008813477553438903610859844537478813885176962961617647946438539746577107351418221845523692121153621940883310942891250851544150609644398867729468626125205271624527654300998296153572712194801250368448477044359542674143823371223394715381638366197450837547550535919586254715547295770784019897695481161223755989683946822006451008496158269017067355533187467842873691906173201704511829964281254957383411994081149391278594140495644200914025379188054624662155795707644769579188435282263916795001201416011168893791342127429817186028772826460850023913571172861725501214682304297144452896851693763888030264514612319203551586265701376571555118684099736979360236684234348130103932922667115511215189295682975506911846851282959847360239177760656359302743307454152865455031717789883055332843593947034386087382167908309626514233571102694768036402924722049970351031803978800821546453325005755390304794820350857322747258257189156737556315726901414533337899368260522284371386403654955475339513733160793347101809200709674740897157657072283797582471370487879982897721304644340526294540668722019598422776432364845927997872591287286137871541955424178700017693677758266740788789147020111063018643037104305439356944586270973914176774006433897631001933954067342070233656273316804046772856848025950147298170345639178097384261578418974746829715730781046098083299658435560783751588332332577691557755225500182945902043786904576689699567984500691999569051445622212994173865649902328475424812924656603998253300166779584707934234234477673142722691287773683072861532005370972358002129225932814364111406783678068086171225344311923325062041728535128561118375234306737215763591873397000937091727765358042392325349874292166913809743769566804565354304381930261184130209018241711977281303838334972865286330595460494961938141864826982281919440423606369912885107290870925061023046833569545658452163786990882498779123403571973121148296682291796815806441921254762831334401001967446964620121265467460422001343621759131552657118610092879179596060430911245382731754991623054424504205357900045027974489735567137849119651932099480723326590162930351504846915593564759070551152992587260542782253566240228349343340327690344975353675730544871990787386544004516319219378450151188195399461359876152223267915518676979196828664331943667360209347799836664786677332402282657322433001320469665305698713856805819352738932245933705827672730870071459337310014482008261811571401333002421591677595615741150621190045945271322166979828631628476572370876901344568430220536008902568177609879573113428283589591631524048154664547563948167254240403990287822202045504716228664579374770092552302510299725931478133447362908041409555073605655899816762623447126639709973634108556476986383650972873324519449761650845152385417861316438271538558022710128679593821261442559797191678242373216899336788866772831605960681132840041041155210066512274602342412654290799533412975941822747386426801452246000832874124956313271987368517434790600384312358381480851494574497874159746894545353752020205700554345874513355465852839269222103252540110048829048560300397914131017910902974401365379888677090210253404936680370383404770576202484527324737258623668013956322193621674627384601468489992447696744104046602423392378619395964191056036997095667450976778859177957314202403657671947213387832560369256397680054820161436719458575113207185576248152456483147101636598138710302545622563059819190927414936954777894920740604139476627409468259956946054790014186607774468813554077420490342236985939779420312747368190303878290475685937371106344433413244505984490842517296954285295761858450413073311049013403616213655334237508125366953722001969802215898033681509928044158129424895738290333328363642059320611257294354519013468869941888432293001199071046763548946255052388223805401649698730599664450900263717271507088305529288496965017731404045243983587940969017348665198131555693963922011137765883983034460426435370333704487939655561916265066100083242376244057614912941621225854016692234256498126647656041297894582443961881952494951784617572403186425576250459290979998397654184534431956948866397094709892409706768014420627458400725864774818575808110465011173596160025167116030553036723695863247826481964150956425898682180246743719194875178426035377942923618841005323497094766398984775801617007699774882217402704351867296610544180809995476402756398966376090224325037089939697123885705629311899280471419540472461744909759805702637559602110164438582449555126168691658300135636272333768028919154281333906058806118236877893208234562812396173280044073382937562000461690912932294075566224939443965660296154750677410837698299670727720034238232654163943309284503236568462760670286063810148690959389890245312242817706080962914529395682077247603486047658616034963704097547200774963617141087170140277140342254677859557974704690479505365260552995574693664978116808136606097848815938248911046888050024366601792797468232592108019368643590770795916127119312316082586903556576105719134239983935853055758262776582764206653125123151259822891924362865450932382660565184004744781654023271899936261911389069312208176716247337780551509910814664620352483572681639421723893046587700768216632190070662401461229382223424010594730962263005881555201921597998101893608638749540572627887667098426052452836291975392340616627739761849498751449278202945176421897624552727336009773809833459330930357999850880001756512090470406390449111912986486765014343064102697640811405944540335142863060748415785911904111794470846839883722061510614346179883749920932179903252574119059117225046476856054625122285255469404504111793260362779243787400446007386899030583821910503648938570351619906701334863027194515587477333615782952421736529659310698090078203756669777235997413772300752012097034727112336168529275102093570818036530302756338293631923436219616150700342315034114553733904271874680652695519212708777298338836915712247987660101634121768751316862877510074615424539051816897202689922698434788076872859835112374436197176987175741050903000319457385940768327786579903318671155697731046493497426161483176250153803634723726634133586796915870977270352376893449216342064655983533823154698483765480770306640421521244793557517836685549185397613179760511314487612213593529560044302337972993583504581163232459972707132152373427558940017755107306456990012925381836286310942933396887783354136211279527029288010700738236207188909338196710041462855395064922822142493016760437120255298375356372607204364763441754009242650176503933123171223148475523410793317381111820844385632269076701743145854014490153869180054176482515772929661349200222665931224407811498219945725782016540005955592838312882681731372251887162584315639030224514913493467069514016884461732266762860712350619591123460366048681297397375223092677263631630784048869714958847557929701304942143747542877613579161346744716630620686147809494516124805766414226586875179977792804788514463025812893561774895919356398551139241687899724271209584174221202991575443114342906181115867332023449528863195403634242570884406952784060790642300133754373962337163865362740606307696446832040737720848455392270688943300204503562667500522610907029596377087733391049476657225611342170741328653661085338467853440526560001337350557525494543958343861464493516527460192027026981091226116920243778734141820763132415489879410051095071834144750166999665105612960698972820858848104332009581280360431465404479387543737455024768290826346035988175231548919280894918399684842530518693497901600652540387708061080182413122100131684757812572481595546736279125512798028889864379272565036608037348900922657185592330242722649025084305047049715077991292130710857716162493231250426436085874126435070009733363915395463820886820418821125990990515835764012764397195741067972169487821146461302063574027513895248054627392487559048890272626762269678510847500102695225771419822590989812572920913728958120567611260826774478992373415419068108771832774368716718016412130718177831277514548751626402405374641882133486064605254835517056736264994750914805690864631446886354293398124706328268143351750590102446830397911826278110623249537284822196095540780132626063881683395383850831738815609691455070309334176445989868321097979762589654705544182512317507690376061768225769650410830661577341099090413579919784426641064491232723641659599031421163843062315329331951766082745746947877455367115340309065269178866621365569529608071077461943014731400932144739460318306182546329991295015023664183324377477427789153703900484108726577203332704809835409729494820645236084514711079947507766697268573729182955985285471451421668199325661550973660043642755115067235177784506325821403618851441591715457976367682124622276700418510874563427778127107307305205624373779819126238040534688681669934582980925491458395064088836690935132442396178032107590389885675265046276982868944086227389120004842897397050608362322322786630363985585061132615531110808956734454381511925258127934009995019718952372877477220362126527674045155211348650737943721193669476067442957478366829826215463841695695252451154829723802263848850690653693900985785274534588217720233553250952086996300097538975918897301038405671686473416321552988256389319731878324942255347873387350244444840485367317545004197056923311121325305010067824168586372668862085345030137229191994079852156348435719581881597198642086204110477062585809021996107339666728135880827050331219973145272330147691743368688569147690143003028443138515717522629451136313400249354664941182269526767420801694878017652292998045969505999719140568872710871824116295702029502104747423097408972025329510230131049839949885572546849299470567762280866909844673625282956507887893874108159013825602895650258906266935729372046462379631893698302893891604071678725415835199346693000036436917636480999560692907820378002408089115688007340937571984668555168736850742179845346179058202724967623731543176383636534881201833787477294036028147799510875919405113351942933111603444702828128541760296473674071367230600839530728004713324548812194989706048082648024885068414390155202480027917492526153771692247998184841219900890273241098332355385147988785281039429896350359544189688502334221159327109541169697051312088254832393811856178177109777768509246605876582091902870913673664047843579501211180004516782929246813560172308091246902976889351143944660442260403398618026448548339931193931873120697727257326425341053392398608185239477210300526232608867101638095374850366741785921806881082838862977447921412890770012623137780945219137383303016674355924375680189832387679189229702375584860438875843669131565523367132381825786591618361642483362240954098933163031088926724345577230455364501825837548433354726634597276922573428064687313406705863422402952236170217917386263252634960610367346897712723221721202577993863726782176295492773046024697552982752040283999471032568613647000903625010632502999295438546916674594114590935651152451671026653478094627518117492752707763270684365732784008036759482113671602274447739893433442881113458647892939966206693922908028603995797366771790346807215569157034719361017321608247723104548129723833898889385743773907753743702362026244655545492851146850908801920333047674262331733331677972844799913358192936620169986460953615133202456004135186718362001109420623162741336076400387021293936039454313189195153231689334776839991367137599493298930708251671805055280460552927739992830913667909500894780833073156804907659263936224738607055928008752918454874196309417471176013439438521691803681595842985308504780816349284674330892772817191123889866720652249865140250764814917278334524194722084850486196342611981070647095623084897271600944045252731347865858263438323055801937740859411964781348477185362422260703694032332542116605690480848782568442861278313099801970484487556389917445991274627685625013931197866814513587816565256938371659236959554498870067647613351213869696602971304402352064688724206486752154488732451044089110255730806822609483054102077237789371643204492044622997656173946661513305658898242703221867402667265615449586491513015026499798144328084843046708693548054140752892648476239053594053207682298732686117337103743658010984478871647612549412663302062510440756786242456837571582806396878311883858825415311265108891287718533914502576604637365026076560048801998660029960265469695826349249219298573922744774769801291370983697518742539668237157255739493509110315360236709991960003567059930149858152849932791046206211209940896928059182258978889287164507914224821094287187104747749622941574093714601116897684011754328695610155398423382157672144338784462901307423256149268890919957981770109012099803836410990657717345362705881970047466234734508608123480783025672680967814681281172206029848486255722229687678986840507290491077632212712921169492703359390399610629596864617222633280380432119470870306085946412352594209330846534432785167481480323494681142890149008029306885604092422847041256045792781117719718938465224853854615480589660986965807414941613591792905938734511869365745495239418961686070670466131202811280616873764798967147084918555076567049370960779989078592979139616304658269701482688023646130369485593973545735392059927497817883219213336721772626850995347634996010378628812385890074664522752307602536093745010641343365108527181382220956992140350519249239217966510983738332685740009148292285149557852093374028625244056832276896037266137407839044214225439410254421855674047440199867272618357142125216825631056146399878718800238945411711017750487895282590613648019015884549578836390748853191745302677612894850906367724335476985500532515563278884769007490229855267554288577045450048098022384763368011444212403969748627529921143712358129744491156235427199305106181210334765799604496251446605572414682871354909596293831465166186956140107802753073724937221798047353577972627876024399482804453044036983793944212347312824691744819481225340361487479973995088736995934184964887251117513933691714168170981836118348826272096163826455347217826569929051633659486702723346693938342832689775021583200380079999789763095106089366059795325357923743820197201069407259595948041787668336650100680292408152580386493925151453408352307847000785926158306523271747865123388783581129278428418156695160041460337097651736918359903048009202609653236702365508705734507995578886966318096583041901078863963174838642869758464380902860509952772016124223346659887050070734091054296719758893116308851055619199597532204478437473114476766170054481911444095987986040554709442596551923423479410514207578770745398425171711903946367101915658733530517879832809425578591808560191423223310233113242705871336780429959851985161621880735275405550791278978370117747818902590643470822098923335624929139240903133096510998686545536622515326098038288176345543927562462331134608602873162573351892822153540949655646979105146767251723644382169702562263611580430362201964119902914467864353765975905902252684802932704281540262248565901803443200686538635439460332810910714007914379761702861162308545612928289691941167512247632538450824293833963385937113800954688907755888405436240076165021074231992915650620225907513231985157944941263938162930468282968723660074587458686718465907978808141848661183243128630271081840873434674526989726323441184746255590416128427085605361052266901493663463835932386957627808825367180890815470875458791375713144497644462495590701634372110046959825467138974521007920066713288924232627189462579032075689490569275546359517738517560430627809513483305049969249925143811542387999771793461668832109841045404591609636709631712483457544746599373248968814495482386791726286405086719800692960769112693171003517306752191301388160501154538524906735409624047308815562344184345457315623785224005117813730278525318286119343718650901358696668056449186213155308811861731624719386951379406906183588873603658105059107474899685685483583703436072192455076686427450998330684415311989318319676321880965573315930467476109009350834603556618730212532332821041455340492859363437874698041054771501372817639640521974669217653754609246743213499356297275173409063776502544672697078230145651061668766068407053329544312480062962230130870973050129299622650271447405265790103970782508462139059035473177351044630618955219522437968806803180151401352121702858088661288687059881160196602864491064713376417560910407347653447132378230012244826812575719610732611655736377677358038257984880654740372127300587732704075264598496670583400996507416212668254583583968488638253907263297582355910573368095502283967226698099484637609861322699772801126606558191585244413902878353208059902734624327072488659160145577963318046860762623750132743501638538305416291060335079301610811536652142841870703946386012521245022113286334405919329234270651905465137897156674456009534963552754669485829093958193532062641234080801979284706089160905535535311675160996602816046357129579799672882212848484266272138967859178961399523446127559259170551467924500764944255228379219121787883188478152505789643390091837892475398897658514657291818377906922161375661861884286975088050965003203518268878743033775268723804141803760033384697391634205169255868481898682619180256367818456584775775090058323793935126066979736118994429794797903037460430089090597620709448194364375980636753764670511589506243504227423336742962632852278750941056836113853968678981428924394269565835238412023033418212022039736931935156994468230535529895732151502726590115292992638956708389773854066831743617373396530620362566348277603187719658183937520946256026332956909904221982669653945791206500658123088523667711883206912374367882146348695019231909216346376261952628116967429605923730553324903131662280925546167712303079922068865044897508263402222939344115847396021606487636082745786291132615405849220385750151734827418563894111770407292532400688068425512514158563887465734529108956547752162206196210056667145462023401476545626932447901097495816680313225109583241419819088306413531928023822295818230913910980574401009757979852184016382071628018634068085389255281699763875279497358568597992769204783977275174097096383813592238268980062056662275224491496455790514449144632461646864532839531847094364711853030120751053759718395424900946382407273246186931673874797059925628283827642947839995784733411022501121427600646233621456445231731254500379077577995625897477860991819923552357444776864133541285671303374951594331713388567021003791514410079631634974937085908251872166177102268815540990266200093050655386995222485424679780294807621513583596510872957046627531662495294386421598957506899261763869675097752537747765092650019714359355418176648650184985579679183435006864815639464201891489266738008102209605897012201398153900222677912479454176346022818692625912064981696588529461931732772941509093543811346811391262527780238474186181946648281037551947852369833196311052223495790751622855109753728226413030525810865798531303725984076098096557540286417374431145156346451778894023919416123894145978135257899085839258388940467604171484728916999816094180857655968558063508275402512764772961293504998585826023074769570738887007660941729584395996095913835041271725360412593991083299848162355265484146268211536514974973601482884789421113227858518727312242030311220706818084511521240787655680007991938569110503564421879474409802948564660570350964444042990683256536483520892248598045897225540278240905168970950325290344666750561472167478214518921564349766285745417946351611503674750575688241459279704843741051153575515961481825365978811571279450306639545344945750830566626044393608021702163084716578722712469368236089527414064460592411921017578495773407713410603931832272845492662053625126406733017080655223070490885568596220666702718041189387878495758558852581196171763363035758464004639034153569381372758167964435692288540437676533074068666936561275837987118239911983120221877256765149008354040512007264832198277229234827744028858248988272589780175733614581559189868290577723663045213552792467927095056881134089721473562774108424651952241761551161980944971205186510906988390328955226991637969578214445666839773063051747665036186503199701731756182811526486151231758188996438736728431579027257139966864664285145641114184023239671886532318033587191752512139666208991506295288584269651208454892911504020402501797878886443736582648500522188165056343640481958415867416511721733053354529448950381037364735539741750298918085725280842125800793117529267392262190266804019272798787688980420378963489307177239998317651127179481338127885376840415409912632305326924258992385332149921289445321369276381136771086250889765153231286490851064964643140517776116248844271575006924604765131949313535557723076416743769457138105749430242513154532125069950153270441534950128231546475592868914262134867780935878350968310250239598263661082315352228592015373228716007846229081266385253387368673708454760405879168371877996234271843801327877114016555572465688146973067434772547159179371678823706984075754708471141314911430960037790678580174747508739836967552893238939122888543432535879396403336749921539975262645115849818040927548834625029033239280523910586366686115307486003450640786660237564843604416313222591582460652918012046678754120810970365047808331238474247093147100813969540152180079785323688100698584285979714840056097938906380049056086358160911312264382085088218244037730255311401135845131219514187678940355921293969815236242239629446233469466741524890046694346803757275722903554837896839398576675773299525539682885400320664559623246837968929262489506439316238416787485238507023972001332103989159360178543952289267989785983584872915019747433654513351285799342161982890016808763639802625652586882202336211549837976708292214607927216321114165577402263034048108389726265860139952733397369566434749336954708047506806437689515868618328052910164013142654811269160884019970800893642430362971348070073211648391777798739453269116738093808962742481976015746948724614142102212266289755803443927082144981801121209438497507866813488321027361843845391880557161865948526215396130929563538112523051006825675003356453874210680863457200721655809578353868094392930312489422065957044200874102474436745718604665746411164072424293010495027814671895807361831918237950222211947519813574564553260402599880723089040095682907124069215319796360081831722935237913988106012460151312277597826132053772188548753886756654938021102511872845498090053397655091806360701147011487516625886887407670540889347209195257057858411700539874415463287085084017007321263324142857071407512714204159280985537538329832638617979925467439259424153969496199834167533861671854752839158876154847859249485415221654140664562726566449380291128124413833516131698098611746204441397968731177454830755990416045577314906390185022721811439714302606972231878316201101562547171499540031280676660870782481839702122840403422056230351346988041426735065335051412873306175700509818652486771217485611078422854493741739887547749333500564725857786445786538379892569459942966721543526044689868715779541702341441319597532326331199140215904158049679225939824603025754711538719210529870200174294358645673328771388434549245882781557933261490253935415946255415060164629282929791833631390595839858024913004991676856834758249668660653720328891294530858630660737946271307852132235946420628494183911193902429794287030160994232460200282891881180479654306757889533317261473905664060164298998918694281530451946728873421168795419190115975127452242180663672900161882640672378760967388540472710200920495923876070763339250423544729790227736813029365566462255542468941188248450569847414959334727752539934693253662609148821202714275854962443893045157909033583231022773205179636193857706921338914777654119205483557720288980828358010390116953183726674919980107436115624774273017329901407837909067504211123725394684774668603529721954860586277628084848402002280146522929258550228777149784011040509304948445028195420033565574022821916399874679723173368160837582370595628609583743588889163946862847166922418458671632799604153031489509455302430448730063625220773808939338171620102849236812632464855585064172560231329930827961358367491647478105037059342761909808981730600864979524455321633396611710415088381385751538187238399709285403274126691180552361515899964323539999260853316055980471970097720939552748792732106691451044935389910743670177645211381771894436217053023516636510309885345541618604357214052698388102055173275285971227217060002905418146695524787547653534568000584682596767711608006053710939342145670031127907508173145978142570958841952549501686389940815354430841328654785526608596961756638043036394897432537699865707751943676706776008999709877741253273646998481358280307850569128564859982401994620516228926330828088464509757798185889949119864789042777742269238408862299337164722949355898815787524437144830392525438235609900223428576024096458945652368298843662596819725101743847943535061370617442056348967377130577171150689125064851211588233417595234551740953460014539843645706426254049034918912829946335478130934180979427282729631319427234698920692109608079153543126081650814433416272497687917580313462157911896947215509576925203481138971151230911504142621667580407880542748026655032727319858484490003344276881540656999033057196998452680472141280498400422859047281773630848261723663510882065279939527332266395256823599163876865209417161685770632299642992120824924933729845888998263098778624485208753007232612984542009470205079792584391881851282475786926948333358046469188751161903800311261794715200151066388630251273367340796439281056744505416541830490351091377332726271289078080442517133789268277070101032429454087389357109217239919548678453053765858419081136851118606003262369387113299148164196542185145988991530818147442389909015330705315588893410969898731441405663484291884898287270293342220689738247265765015480690752186017305643084210165892550509709092316341190284069562880379977502647847389731687700435276596202784000718201472841722113796643493553643770943270424708263251559016694461117781206499685529765156135381288208993120362419232611340747608147179766460632632953307873784052645939093962838305340061615650664285419111790233073068819482896666764396573025801431588947218188625363755182993488639173113020937942766219918134735296782517431541039162094164476627822606928200671503009416984443647056180350958393375447855770152359133551206800631892585989191846774766724531246785883892499018068629889884473997860276209379464554303501364760739358812484570470580973113108174785926595457421241816075928731895800220576845809195727394941086913093624178066945460048835389167970345596334776468695294839089732146162905032724814651290149438968827736718377540515812314535410977585914841372323773787657747863183860221015630871233980403739835157664630165042172265927353617790798603903825994514378160635072119482512547843322345851748428070084686453566048462681831200952444078477980267924015745617657211478034987136063694346608108159828702664676462945017253399269080288014786022566174791169926448056268997297285417922905433527517778827274910990046652147066470554268742649378494956563901562039542003129148579256727710244121114201469706502601306944478731235818015028436590682777480167688161875870092173706559444923200585906433826972092745847120698356617803978891131403846470644586120208236739393016261968286126552762128323737460019929511915134293764991508031629771629120319741048087749094831555182887458653469306468187275638384708528409036364527873963229612607029856288895467750846593641866266586269064329236337894279041925331618877979208084801749428689650775340420345394437352066191724044439162586118449530989569709401237089921495583791645458611199753006795954993666251293214090204823469581697496384332060474809743349617634167570838606384530182984623955350698532727254277371617748039757316791318335850265663110148254593861270480638874444510613750342500655130937830040193425948926242189843416652840251435049903155866138415962146776283949407808197912517894624768076934847842698397920896863998903390340171370620651427052143586286847089302521269721629504546354774252788198362050688190194191917539843431680010831941524912744598191758971062765516593338224772015562527346118908229144072563941873667352410384462306777950021852581600174885339402596700047998829665794576111600478025714646852055973539785543504841205696233327498740531762202083091721731065594356049581027517035464334916673524347046086339978806822270194762757470722622113031041508654297738481829048695950199141402012458900264632124505711563159204145566624429574677007140688367762718219467720793787494757623525305536635251353122581920162364794359903580780477710525790322761341230610349845652470386795370786216277044671421306967024244714964107543465797611276549693740986217755717569302192123210994651360297904314958630161527724944818962731709819607629758678105282757550313285228397816008309763792951565012275763884608344332840954447479458030368333518092225093180965406739832498755011294816420444382331430731271134152831192621900582859854251876736021824499136349124506278669259840449081239509573278660338708046688956187581955199573936814832316605832111564543819266673919818511669038901231578503455397733985120447905417310345742418714665878387600099930246548231731778920830848583798702731444797980623795721338976304170686441528332480830726933228964478926837820218658941435533658355921665048270238846767319398560477547129537528899359465353922855407947525863121857419105577007547446237773008502699623495383049568035117576226961381555329528824698151202251159303150820364810981990384041072756652714002136123803118951720186543134637763868686910154664641560631944449030108008353145777265418010460093181813379831804476962124635113942271432652423778003017134165991831497824239535428513796117484712083248494531175128605060327755473058290546432398861797935508696180240931666593942806966471770097403121741070615960801840205275077680592742401757214269993176990779716822240264578682110822010299298245005820843211526630573169001920455270215876495625581400628125542460684898649389028326447216014983405785645767742861719607829787385631392711457113643795800930206347695551071267718643341156643927773661520683387553278423504463495390538606869320048254628220196335953561072733048128153021569623573377278097873129834972739949719689966700045727696958226308718496603456730858074057331362890699832782474845798840637181659130374410197388831081703500531386261608024849772076606485260739732209572132200839869337893592267807714978369380356428477187901848455337677179108703323320542106541216750169501671867067955907500597926854042435677843165150091558762548922343429098965943610216956846941330457769603351407750086798390449279692249846032963320289977964400461212914219172269853139630256397001273607803450921317592660766237297133590700782412522153260307690228586136645096096015846809763462504862282979809990342281647544773956967908485940460532817128967287437084271494792939944103958486134716150856109386929214567191827302006900393703730902195634418078675477785225345465923339547434366639048728027843830208974406966284575062987170700296873292343725171326954524611868765984887876912801147127983974445503296525492295754894653286310396569003388996361868929343668168245992241697139536639114064442561856373473311236202024425144836397905504875535552927206395818640851712142043150868247544123627835651414467377640209766780020230905612959265137402405613733355820367757182837751425172544561001775723805825320504376682862453124942422224189286073425507889055274873813011024232652196430156756052676193647863167607592160214877323028498963810557789577170404258704386481507436221052965955079902516115406172927417073767397344655540570011714260439196694199369881996662224145975151520266986461476999090643385723451188663398531172568417337506313246686994647335666957288995165395684338522687172146918556585152310183343149704702095735274312175794820975645694404445814470936583345969568910712365453261626626334439063173850342929519225872731003881419452685222132323217502154990814190819961755513379071234215381379797069188990350287266643005629571779211608189438489983857590957989524047785501053092737053714556415331621434820355457473712010218435755260612871048695468089728854065475802940189290475303105076379796445219082951245258045898119120569633640220016889072781348816369545696284529793857742986442547880595722116662509976362509685080647344877248461552101311510481970657124737893932311155234325666834171739211160840084407021683906692256135954456304818990073322925922172440024168880084235239447209447256182989031270459964598510951609508924874016515863401328811498926563418474781246079943333028234053330481968127778303069615812426532673074980230646542220916101620728520803683928538071509120366232405859721824880772189488186366615200551026853568721148322179359728329688896305131402272463845420119905202398353216497545558277681322019316387600112232701788463907409896513591491453653851755564880379604353768686643304883807609775110424754770904470136619901132443045697484605388681073878706174394112464000262468660151283208086448907021796303234522425715547609559957005991392989522633394100969645471725145329605022637602626274235936186013604285620148603202275947364028267364355438866696310355988322560877973724876623417481956057997895041909156381503743953377764689343477645196838230822870521072751676943159435690290124521311247007894494333323219759779833560911160022130381621561530246851789550948537141979652673321490387609576135236534310566030111073083191262228048431183112582986359447537202762026056527324216443735245553101795892152090901465883387276920135693798170642156965161973750881986962771934874841525641951442061011805484975093774776363157913485844942160793364424315668844109865481136219327350185749862632056573144219023887796778302647755079123419995913720177166191655466998585031004168223866893475034439017598691838605543678469403200601976863455148154451361451650202724451414125827821996182506470898084580641819452818796100378241573928745768431953060949092847779818725442731938233827688461581768945370571253792135225052804236112272161458820878363141218251571254906150792146296898951408788515712658198421231447512487017320342630182355192183391446307013663870476118908101723692819927236954870050561494425159743067906761803720662550283341043610475563142315674952755412587791476502517635349459341341575041924136333883798693315302796758249235662003317285666751562996696884240040630551036139221951143567186580568289503652703094088501447650576991855625929464499494131435071778162720900017181403472704330123202031549168659536741288624424721341619602677355529116126960153605148356351193158540976327742546657435527153244852081471563339671780592305431672884534039591090006489390900825763713769114464774418177185666647441119328295885610717905361700286863055754090018108299417031844999429915694684900462542971043021937737637713712549365068908113487109449142838334595144609919346373963921124951283007071042442691342442470592999434393421906290059358688985575335761738118193330226942090261200967522070442552793379468643961463319092975912196514124761435908662742184315337147858740267492849854080929143725088136543791756372959349981868169066467313218920394915141658481001300628432426774605196691685550364525466344178483284289401021114967564475582170855511883663151527318268805527346460327451265103565923452745753735395415411313497660916230502608476592267619611937093148765459447321264875757204767904012033554999838647835230068675496749769807217116710864063526767205652398290773184381022299920102743880859260533691718733500055987741611933111563044919192233751802927930189903771264442230569135390857771678223383247360313396746626124797783478963598109306281389011430880899370587974590920009545904096057330896218402003265633672288252566636589176909471735918547980100734834868511833006002722544180829341214280994629006996367067921041923458012409683742551179145780186541778979279537929874863754953441497952018667779529241296788645877405610147770167292124032443543891260031936124512530682339882992922206061915648371178273707420894762476174478072565358297709898005449691312959882562248661729914076001249621302125522770227102692597836409048766950431187478296703191671670571161349312227030661305554657840209312387549428570919310959603919829873041754046982843400955740043741921001376922042112539265471864694145448636470603224387547813258208988700017140414707364794649933287385782838869144410157421296680727761352557703968177314881046882648916565289904895998467792691862951361708545831241569452825964814671758378591387144170892436580088601184167498144057233629168780589608402451077624508939961319020131982720083559674962017254041145879917405920015394055062287582542279873583925963790182176307263894464204039849933174757100043417029731891256202879346763916531501641996516631656466882096574961637271022187634157093102528278522166171635243304859334284531178497054467770849799592821425875388296073476605358019815855094760770115845183545994911917784539290895169331134309832418973200648984652830662397918402430849609842479707984144950604602195507039333356813040781612438779361533415167046800659290791347126860788379704924437446197387196665014705789827487110304882653988401771035308270794434663257946457126033323678313804407300301892595280876147634584778265937040870921834446408096639021054625227904264114258708163477339867392204690685396971376013972077533449546054359113168347011966359739948537982022752584215533581153505701797568175229375365094100935529853479490337328396130727130799550916745417819037268756992958008557902006655721371600484223927830505394528987621302319060578987791145474006655956456281053320873157760521079333910848845729759754686262572384412517289430316158972247626938067833160427300665172440190954374324113149205682884843487925720600855890496122734121088726547244469549348399435056991064775244711363985576103630309273582798675750945189525102304793758124019716434970019387363856232456391569905081279584866092173355464378266241256616754723366006892175803346619921025824963722045344373343415743356362458925660081578553413887456511119899129281309271955078728723264995347633624794043018177869473758410989612295763478153441305926339882400893279670038295070886340619764673460425973440455961616495640532416881140443039735040465381849198561114553087334106515296422880068924423876836249496353865764163592498266553313692897294819147944938014988202149949569478166745582440034060834989944596573781167916271677419598602923443104549492014873119563167216056783804904299793784543022391299330949427566787449900486693128127196626484797228820145067524960236465623161515064132303179103686397807387699259052203544869614403899445663414606022539680284178111552220923817853433958165061677584708447829298617457796273858054279079716825561905379339330995546418864706992866895963137799283316766523726187746164847138980331352431253247923429590503620271067176925485620350007700817774645327342609691593814109579263392515300808909888429864005847181826268112975244996933548885121715171756530853593650953499943429200596933452051626244987383741922262842082913203475294161114105189994385017662902384393737515618318405569359460488560135520003792689473126033334409879430240490217518215193850277040154292666341093659888921696904193481777278446258913323787752854515906779591335914345250526301422113280551922303970420809263440161397706484159235334028119787414276046784590257206167154739883325622123651505863671058244692733949025636672874786562930947555255261302683772889010823148184060755585722046609905246504330775647230883183800073595391766183382268621771525766903100861618527851358878531421962625096360327037689060736473145868207411023352166807311266271119927398915541558843594978685636078824347057438840490819071054111764965134698481882544725500246392505974230069924918979649195917593563650151950111530655375381511924998426877138536037850167998122014215412347868877095161013941051781782342877218186254675652345633112382841711878009421353772517015579751003747285646434693724354054108958829923703713928890605555141088359194827732949167185030307941272613033262383965887558776340070694312743575282749456118423664280751975889491680908315586630217694403297781695426735079563717133809238561129481701769856243058519621380514756971712965606070826384989935857539104472465382139470196485382776757789214256005717168627414179829593830487561661223747010558782121595265051085796630743821987863945019853314493292519122035951063135099566263731427590993818802720923119007135339390815376384685822333847506754761636355722652409304445828108352569021253798166333198548949125007337670644063214945288548387275624916370681695853355024735756463044489371907526724687376708184071255037650537945859141167326457867978417909482026284558471654757416757078997390171164678776172538123823289729349406870081079226056218675267320381922019215096285809338046907743586533406497564108174240934015069409862122620442344072508252824860517236509940957404100569080955618716445922613895009317397969225874012462567037644685232361368867153786068917400745695095073714431382492517703353287106437008224102720428310305125140189652503674811750852246490860164020769343957919502570110010022007149858326557073852912195981082589683434843390220633557793928710817198191736493297488128210215724448302993418683480921569717452181512885888575879505562951143908889901544926475856578648650555888875609144882919996170138864924351119127610189241764538367863726519833962539257844926634465886827276266915680815337665801741156015944262501797344783466267782810924947774884127695006631591763454701456440234612409894900912896155376273760475045746045086973971448235184315802461144059591278677625975800176309719391491022136436757353980497056848245250590817177275741442577476823819686755953364044912249956130505895034636990793677035371055107139552034770507640312488643815143805834887212264868906014459971943944202824842235681125279000040447011019523175670927596031798736295461449974512589069147116847146471192015415202536325991331719160282675384828836311360012329771874480822048842769044868079614492959886301533576081140372356095770989532972431458509819765570214524783146578974894220323370339999030555106623892234397798004714706446375130623881072903490391575903314392674100000744478486766881293503546149168586342025570293222488247604064885938168321328984064509136862697779637852648762526116575826976881290891973972175116228694697386646079113207611789860403745870515169034201621066751893675616832896063092926507876486120308640080634329214982753740992960586876036564971897395615922883019862580591283376995045838314466530506597794673174985564106688566675367329736521810305523205937532686309503201423902561043486400638739251169883114107458348382603281840947679737628819624570617918371709864165700539800576272252302216374399823695650120915080699388535368862785775472356212069566996813326406701121359866921590084108527501836163652330718475340612237002893146694001703000924935790558772260160212980187534972424538307924070480499668422033533674503854240920904294535398923131569125237256858920320169251592186611667855044014537385844219649816024640807621625178303200324779464600897599464997197578051026538134451745591158531066339891211873776812265779831196396508130414973453950490695193063455477778922321169862702345350569870410047594479398946830648370226848184840130215173852268668898098691636346991598578019150040670426475782224397023380437756051223783475912859265783894090357147040191423429395501471257721077334180651727456182039453522242135453007271989618054968227466812945312217608408320847979925402847639590615562639246614270387299476701778564828131028523705926937363650515800150089772326694905513667084792650805914245654552186982725052925756052163014738680023424862117341784614520611539826943347232219430990141779721111097885760450181304216244417582465420950775865329948194567622703466166649030503294917068756169576703317765435915670583650594971310054772302320672701449210935861912732407977268095012442583722167362838362845149835673527066705903393882903237010442687084748329798498599241632588526299801823133930577981297891470610204558750540867968978342308702067806210321834493267831002671426212880003056653846649729505411072775310067299955725854423280398785821759708638059841546068348115632850479928590519596311799485394705776033705633608994292251003277001624935490510241983712835918253318544831917626918688583880967949710474271698093226622441077923163072955345234441256447778007966030065531283152336085951687008252407725815161306645430946930814445785812303980422508903141575198990929396312977402517635363965380595987576625137795064699124463289781364651268975236639205951812695808608399487444265062173779188769512093978745554411515655134669138168496515874788895587652712727893834671950175407222857751038200003166345142503578436199715994426664691900423760976201871018422367087689848278662337913807190710774989602374133913898654973818416287615180138003371602618199788801538958540102167815069270684351948221663149728495878596523896200224205705572817972928534909586018969666148924235573756584652973733155543404123758706913800670272035574024603601017350105512442626572048275331276405819021656728339029343214859013080900770800070150927174948454130919096969572692225585227479398407456878389788627664852265303632396926679521252467359821219163205576412916141954411206551421305561651903148407025423589352213691841962290561681197072109420462888728864128622560608543825861730716440719966735968184226840476118439904424565468943540884292996150638935763725183926460356211828884066504204458901042928792510904050716574374764097402618428401074918751707901955490236259907957723237316841683348882818966471745181960938774118113118414252642630879880977514018235589881590416065878062125553429898204668941876521259229987625145155741640563704005238190601263852671255966210290031216086081574817852424008594614738273436483667515997695914262978256219909799459188151746923407480411687010869645736824985741274696668833289573962729172176952346067819641388656229395094809105160505858617170110422190146713394367584819490523039134208143782049879430692333390606667286512740076385841716760160157836091931602960075567902651185941866907340517658813666184396602081227298768542685871040992925576419610066703427907862120536558506732142510598750789996988282255146206867860505310119218841372118892631205831720996151335120988882655429488652229610963967915269260848880841457608802111482816550482247524381885498555558185602046209558155218938625975564784975760531204001336320617281321148018561974211082019488787988859827428532528078714662933223743985269450968799379172527072815160334685718839311955671944812020822670114667940139754944055915471313981360570296416898192007173814315889921932261045408830983948824135175161365052329234569199787195610249617289796780199042486934050330594202175942974884537678027179443526190378156838829559929047309674432813113077568289835360804099330843805927398656420066535820184023709124872934599547896091856534900434027738882485987987110169276624067139941368427904164968220992029200046511778406476866017675086028686890665396739465183058895233176781508489423777227773646419902413804456523410258080365659307287958060669042758989603069900559605536612143495004427854021054720046009725747400720749281292579601032399478906093704144407275100306247112704367320119325094091770565798688861776869178331111988382988963081752895732554386704691672357431931029874223458143149264611759238855746074711798854151297387682361442451176115409670799689921489388666065570580044947429416743099725565915120040924028194491489971324278124917382241391556614410609000038308960248726819078802237399497216742151317316376826276075551510396610943908443470520838113997299931041986546422444089595857602127521904441378591467164804680801518847213959328182552087013033095601607689039770976770820320061124854834558897191244350913915988466318649842457796851276670560566660904938177552480662364294383987757738054039017624593220531580719453977557955434411371379298255512487189693135181520476768920869889836790028573829473368122263259792430396503598714134297638867098226928470958083947657701983825162297934715822364353812319555215220940501467875928588027952387555448314761271817314096985858511423825951395378955637899597775131740248831094640432201045171627799841535693027659787016171330652520726954533844528056888221790004002650208503905833095798270344946459467953650604066440140890054900077272754401424354230597481773431244108533940277215937657977410757993186621200324283772403757387358690775827098196691542641937769283794994389852367856338321000078201666899991359464817254284821404306930843375668592728245307501594309968138399613122958782894814225867315002530561818608083217062905145704692797680380481327024552882147840312110829848938814707613980867692848743221726352821193343934485379925203605311691868941925917038959609616988602832322146091939950233357016431655606959945426713590241147948101342888534572340279935704556475582792302149418758318939798401963720917635414303662266654784059580592274588840193823094011203488455191897171825079793611770910658669861090545611453369582062267386864801389383064650293668790319944982549743705675316613460528341417142973762616075846176066588939718739111905717954539573171136226263384735700401774459093894971968756970178591376892811628257627581789413349053824619806537035782283909098294086718142854175610157026249415563570989454365245799812215738189276265903850211526490631845206673618042967711324520589463484714086313682349268959950828616604942391690043718352875591162659689952066823106604736375578982155811979126200823382398538326345341368438975322596938512982220308270031174011665155931876019608569014669863344404915354632251982167965286520386224582108605522571842500113933948238602616364498033258485056982657275201072873382673204774531644683744589097256090637968178028508748778740720228080720519823561881800441187610187923177449518164404305162297330002184697935627806464156422607674280243876378525480863027093167710037739084780485035774310538594680484528822155611540672931431261633059902995081023381158525481638061586366521782804305385847834108451687324806603430825317451573609273495529360414022535987548713604885376168276854651095998861663726656014157472610446408583366806768517516907894579429260743878334322400777888110896529202612013280606996628958443930583419677494346027853609469862535432116179803343468520645162270349007163097305709824538187477102780703013700038191113529418828329107454773918659449721602634834253429501515608860723751932185116717226352975502149150381609141072077874215911646810913661114751133759307439856794377198115166952907503482741519934852540286568486074413957586610292854704573849749512369564233691827250760353774349362008506447066988684327129104067785455593925824301304529718520102712398611145900737580452818862685656395924896076614170994230619193680565016575536593743768170632559602969596323102577085045850690754483482704332260115850271825213244111420333805316590100059310540676003838409091586053326355563857914480304262617474363349854105636936232922587037816248198221490327050743795742913415961336704381281248962819173472159084651888126112103150402948275751123506994219162577018193382119794381953745669257099422558319361831784953692411069408506786692641904462116121936350385637766371345554308483715625198501934486849782878999366091365893330312814906141114342588930336328719163084500068925835165717688882135688351972765317491908218234582129959339314436056461749115856315898716192184021964099347610854549517036541718516194382966540049713590539483626695983389062130366901419001101178158652250279075197124275726510857790121281293395226125027891074536502988281470686794821866027244639233175384579378076660932836654218198494188076624422193898452491591134906425410357456856470686699733558731210912516567699391863314010202828288961441795576263439313963058279111991372214498693093114960189618144797508424962601802044137893276585793005951192110296847097925663763057979663761124034244697108545935550814763030517339944057183842793248435114130636708664922093694150339465721674818248408846261696949013338176179559563489463065732746001001976462440621411453476915200311706083226433352186081800120560948492304893892498068241068420721473528024129429273098834051380658307444495298145579409673799065167223871319843814002348489842181793907603816573138558595633098824881257251645959457748559230241254345409267604116849768274411162129626090008120270112189233385298499561675465266322043275592314707114357071619648013967467181349406751238027135859806134500395941955392559767366219615397938332813696510428094116116947138714891145619975755998641636294383180894669062553856498103881286380554716665239290981606367250383368742150455186007775683893117632349955765949411223289020146481144480867402733879196942730238194430406267196665837079330268627533517443717677941982736331849659112834090845729435480171064752078698414031677526401207355633892258799724685970267214142749914624536382761840285415801885119951548004680060440067469393386188206121164979293367266020230434832212462495505028391369656697681917337320284351771006153016930180790586429230613147177033288083725396775216419564670798827845197071340715894025057181409545411481473874084111633576141912045795373371607606678125472390444271585783405634742202950339345232792105834352771532835296965393832317762189834345766695411173836969426337706800952071956746783601967318519650221316573056492331293616632081899723590064507232135939768006986948899676459452568523291509096639690522412861874114871243111537110492319312122949710701133668920425572553355511578559921220282225111413617976270177096483315993064795129252671362349398471660326923842969571806836340941404821815195519560794238677203452332907261906616515712641710836021995395461276698015832706498367093179070191742318596753862135183998587390293832746261136071465268861624708423981917525905554224674303829402754302880065317345534879581990865624064582267175018845802474453407780976632258735635756855412542279628796264325768878501066822611187366704214544547870971461228807198492961395532127377594975037496849519447781202456945793903478835975781617578129601695273420861306813816144817993972999697722203025056708774014474558857002899500852453590465311790040436884561205204749299237909226549432087583846790861497924154150938193406065022319713224564684444326577917519578321705432428214455732440336843289330416122112911201601257555313078527361143185783880010083204507400099880543500978040675118348661525052883811870942445872238580501470246970867486755705267010142943667596258564686384938724207655040757402648487405052895139329925246693721408173169325986614510406877767559068505380458856939380153646133424183920779712600947812167457311570569822632440002279784409551602086774684018366414963799342040998305389713970198745921306878874806969910842946587549482900099973935080120700525020861555328356802182595895785234394480465915693517768290022497217595384586411403563272848059995783329497116045025973306058678030785010008853451747322458487059137626206190983205512741604288547187975129140323140210877072146505667881550858246610456624497460089788763356447292726655433770280820374201360397999078436372192613041906662330875618949729658448646734961524486518290998379854066224288360673168296966793398611386661870348060541642390148666470583905801991612505596439822276613528173912686703949305663468197270975219917275234205432420936466246007418417497803311503437846426494153570532822945688156680325907669352729485298343409194618167927036372149065387851598218501239620848683350980430635988566464883561479687023211187000920279637248164739915083203765100075465788527526360425158677351351856650670691642105843881476720088084649590005830382547721348819350103380504790218221534679295274534659073018506739175443979473310707347289813889102510295003252751464593757866065385208252325755649581230352844874398916687180078660050180319967894402312407677471696789090262552215147438417034857205054845252397108667528228454302055795964631474113871126895576510501911801999177025845826500702067635973180774488448482944041495167626463573708633950948858420846024364890089126554896514164026485056751383860261784220061738819739274051049189751084143602970397867542300921626276614023646195013591276455146341725604935099821005247339717492475436166486247246533253402711059956577329789692714740003374472954055427023531820025205948026680611874967504447583422631587924439905747370263647836746254778100156276498709725266023564595031205445299808647075215022203979510139175810388004476965910700170439398306422519691660723482816668630479184406718239616292367997860446021267345051900432579720133422615225602089702680887120834347532410869438985480704386015835567166051408110478553866818316716229801392703343725288756177375205321784242252307089696336488928912958103807452561670738820380386717689735291083920371849794290229105318370680491548226701583354750021766318434915366379467475760748221378890575421532752900954624628180653694622447615610789201566017725595122751987775942034822007936075807279233460924353856039379015217091782761721495787235672315129675264959783270960125359974839756136626057265368517657349196357957873933811908795670155523242847880980336633689140429991275829353601064231371205529714719570622061736280837914097041338714904950709604920767366836000049352356956374213096874284606428864927095796090184671443305654425494183088816363806124334880098217164596599965611826399826772621155538250193588249793630577012900503209892909270369179246905363212742309917705970946557354789673738169889465773995775564726398856058048597816416010664776543294518113640234672860139940584427713154882861363781822870984890512009775986075650589142772820179658101953560730767070241116834760670384057464101097742528225396987758208308702079641131607052336179595906964456715166433088833984432861923268255762855976548535086496956801301688750854843534499865272074095951204292613630998024464834506751179811138244239946982324590492574091030868165489755848027375886112514888196253361761417773266477005454297445316731403768673372125506397159927026002559133911564244621694025065918938760874244410163964718623026571700484588659423481949647220644448861648033864913918417577469745745357607595924097094631612428865621486990699921429591882961341885964917398599049658591668497568121794982238728465273046417608284269722799982404777012128127700275152615005329281890353578114494904193746575695669665570927141310393699561169801739168691014514747433056384799513817879524721356271147716931886719672147436735631188342826415512944016360357821381171922723093548256981128128775889242734085846441405669207729289368932366879677009303695546410545950088623645043253234488316615252219461362806484973385414563594142922789827239135671130152435313495393357406113521993241711803109810079412683475298188545119389401891849999583888822018999818505738545882873505000706847351082651199741327197160911430349615836229386229665797521795821641363205384333294901290451263657158939493988997423189480786299208452807354173205672694014854235961388278071957768934834371775537686308062619045623789886801149142851125219579341874444736986268144207760671606716197289899889167690314444456556321459867596645063862537149558493828590346342322058391143568551072702280241918288641130613091648891308307369532393748797475132902228806325291348842954109533709231896332305945910390421251805070530423746004471221240395739339470272583882776801157168814931832401089144567933474622567691353986731698076270888195286859289216201861809151088708048694595427908308734257425521605757827207163333842267650043636918590185745511036287937923069016399886677579261802477841997621040954752968853078668133794402450771717591296690005862820855279124754710813579848688933066440716566312192495937702683704453241032399634507703674774267573584600330855490717775463754141017528382618356137468927698248558507021856771040719137655233579532094753113621486877068066640716267721070316142066164089997201418014646356332738803633928242039737969245119217069704216819867709989934494393375352591724902623423558069459714648730697676418631112426265101112417133491897947311809645893235789289319468313757016759225879302738265283881785013897356985302309497054014642667853713238791294754071922014091355555873349584091858326094466340406000234399231851778743691287613449744958668118730156395226508198765926574171408503090081713958236037986357406361013192290371293148624017004319501839490766721089296115559696739573373450889272430828364020360701683576547724662836283579904694897710511932736656599115847884166183497695922759831785822985180233583068077412494765923652610810674911192794009918696822363163383407417882974969757081910152521251644134597958311385757780548318036609070303681221506562212900184835459193356992292133045547602460060063955194569979844095578382210210250470201679281757625067726979910240211865530437141452612246993020469042798517549374395586140712870213140098901588552240363725770612857010838993682191309715938252520078878618189865006030145727735883904294438001723440864999408658417649875299693173191325246516236238178671326553697603623048346843289975179070572487698208196529363756504640097653419205042092514430701878537180508088858759977553099298303244504280840801334204971360121230124298207925529847773847529378172577264097232306676298627906162325350614041975030267379961330710648880926644459995559451426594420644120421039654657924512274631418403087998521776003340619858670085051427661976536774979745068577869591675972163805177469367234991080124552788965063196204280072304580169062040314446977927906928664387092487164517630528252558826326534826751447305810141212190593386584826476931883733869822422195532723513444121395823344263212193853434998712711027792682943864673556404168689266679840359188724333995096526078381498673708054455276578621810387104557738232380917493129859318920525406425419214395710662836838585799901740168412344742486680756098771307057035063789341331264644232198322504977613097653384982403552914148791919403241046302843285418391651036821599857472206789672185901345410898472600005216460473376221612547560433359753969794366257874665014815806134328720984840098807144532865380526274981788959724317896478483689024218488872110246405691067613048060983997244105502464204423175142872966642504386839056088514514147879767560852493119317078277214951016055020969453344931795110433137712383440498541903166520533209140907597526703223859537617279057418811220556194158101635981045082617825513516729419094599968756228177041230186486117435344994736219176079222435532864140459656923320045082516949966686586671951507790977373699767024488906536082345373281585789694060065400107080888405229718093341425332911392675622415981649879692634966871737783968946011822128984856610789492380107605615548159327266766852931348556127163179571819840589334529799880172814825377460103851222127131004575023109740765502698770031406544813520895341507851975241693597052509397094704471090121099585780348766615277327244144070977923472734209772468388967030241349842805304631280208375495694929021030486346017130236428262710671006808862645327791105657837050525747938745773618040457852206989814118713783661223000853585299002563022808896319312362124292798397373025917266202794843741106542440041535113069758275608160077195508411856630392685323397002786325785366891186165182772337447061812371480978278214017182479211690021853790392145659982664227956571993442976037148442367227585470285973495802437270437435208528576249775590083135329942504331443112243283931932358821920672243078714279719241650421393428933258211764884033012328550261191456087455135280884798590436686157501473017138272158592324546883998305056484213735827921934397451097598971833777773428654920343335492786783447078397396042304234111436936473812056003950443514751479315868306160639091824801191566169599581310900491635266829142698057847687304857181284300136000835064395203710200369849147619473914096163081506680915729244438721354976645539453094098260119802302039018307878313568527079674444940274362780711964741952215780586259556510611045495215042541655840796574982942279032452205594174843001130568208840237935918429104854173634885349256288046000930053937436158493967939922599592709553635410985278645971866371571209456706159173425156375451268490718365199409926372369082397022827857508354229230432620863577427521677719421277787041590266159992774454385446869357834397229065172032062286231043766722123889237573574978513684381942493921912087053553983872019108969567060660502893337462403148884536009953610794049905181021581268231711291205273534771138743678024616349996084193813583149260049037020104576966473946263743472851565107226027069315513158496789566869132276889583750079865920100098786118224630671848925677283504365372430039171647385439573198213460714666222076770039748052628185111465878760341146338358667470640427534104349945161249358973700877563499540029701209674350488911529807238582418744065863524376326238563006739136092927598671684307868986786150250742970145265670679686660558569454276407486343868423463237302714569984223389048210500138319960050658117607294322170464024075834444831621711629405426129370634983722306740410987555042822769090662540106767129623664434981699157285518857793876234120675410132602814711480708585108207448820395779194999658478030221430912948993877277789307213977024453282433511117701375898278715080175892727515730258345269798002549255427332403126587296909857175399069207636349203619485955092554703407066140074183080922910744434778578997809895773110986560427909575033642929601593681494568905893020999961864493587962744345790952609356106147214357716363816563366868065722918835767733598696866241892583808361612978978759259603675762463046842310365931761813632679288256083394579476610246186437878536357724392108552134236288704303948830763175169815416332388300737816148256378945671207250810186351280618875668215382378560837185352046654350737075366375843770071366569250943314980037370805944903730617321593833262208621629688087662310061353324707111894319004096846246163156989941470705267460233306887508484367728288593647165694614898924276659730419286052476571854696560882346128126766083065981866776516808929459270794652884753580440943286440812002749684829471219060482699193675790401770770898017929464101149019259653951345869668289485123585434509314149133804844092783472627989583304385995455070871020381913886066276011487018768697588273191785347086165646937813669636665708608706659700870803209521829165357632188600247709056946409202270201234018424149183568889192827764012092631373109547201454868923285607054029709431853994066842428871362805477418566665075142753051354731681849484963586347217001929121880404484831654306277749506193065946840149097479786118998541228991327084246005199278468717387794334832643860176651883595738778930978119447141059459583564485928457905337913992581727754468561555257786800096031127407027185612522660478676829912166572120497542157320646068140589663258740564355104229706434995120075930535011938511428838873699176493226913958055685268375263743237710392310073656036929591351015788296797634106172313233716439530401565620201779536666939955570561354817094389910690956744558054440094585282216510266483499026328271701698931044807638134238708909425469000561305701557077691893889991210252333762384516360837765952301473008638720969829731691760498054250005190729852501839938594149390731101523488775826551876060670957643440756046211023292982117968968322978064742252092736833442508266855947098865506256713261641508878804591273907018589681996460713109765147895422155048111398324613407097842069792542872034351199850864002319896123539026380401954950011501059454859995228677375103371496352740274031753292643985399909157776404605578842060639377724436455022363525594703148111287772500525572104883106474271198620833621281415511068053573497098409461367960343507386236225241853132484736592670698222410250783733477973316655423771951468880095412709984368052520822129303453883003087236829004975591485994727131556807612921883414745555519988475926304716837993323806181399540416519615035541906665459527421288379875443594425652463993289862897996919893129713629155575297363021027188105452990865990983674432235401382394604293907708258473832061239068350904713126537384753758052924844039284977585927884205455390149662597097708966297577424816490160605010682933312893178558069994465611293801763872917410175593081183546228591143590966099571672884740307227097433911679637185303895295195065320133698188277743958960858510445640475621665989244852906802239567746151771934518048870320056098510545484645017406988220964201216872789814078361434415375484944206770015790128403387168329079495210494919487966142351762188280448559757315077322045783543852382614209024239730121481675815812572317542026205155003929032863533721886488966068541846991503629761145608661563516414284965438844487794349228670355804755962933816801018839727797607913996238895022011913208575751256985737803150268830345023703671394323666337990373507124283875326900200293306702592527994228778334781076259766415898449108547290775313501868630417386914974251673841475067426035340114882275388904322631219262364314549926528576074879486004894874606635645898727259209143486549258207931208394909441287893964700722153133481406957932926981565592123316963096946473717822985851180925924184469567520050409625410973571772638718521873012402359914981242946693629775941747542225231359516713743224388913513185297044251023767965156370726309149405005271212528973302494994182249727830482613090901063619431372265950184891968415124810881451951290619562143399838537710429190914113620913058385460635457388414145164459972584650978229220486762866238896708016101635521665256112866789072274425902607541838263862986301139654552687248206791787742390327444437142777226175503025655305993172559413521429577527346695655043596259415189668338703727810420686036493607196242760005981034951680396051154806963219823106380804994188053175223057643122082360963790034212988661183060852229485354737816897039964813741780293119089132045668126770670727871403370072258114961440307398442165147623533517909698136004946654863612009001971738456914348421028758814677977806147487949250010177736757736925827592171553896743892634307892778012807704458122305480803052451508312796421284267358201115999539316043220314073351649654304517583849752118208595961749415304343908612451273552961643471118451329631171378181195721127648845814004463725764609736575505315444184555057188223775574481402151772131163515628340170653488069383688621894426123622312657384396440164584161504589361811679145572421001886645128687215989847156392457734212237926191147197672658173493796868228792041659497186444194317831359439343139493440881011567977343821416463930682812952617652787112326747912674797146949421272494513026796418195329089542474815637040818574778456628275486809918928740983005192897603840720606089667709688066802628667802863989795347245049586043160646424472440718669603643557658022271511386925127822595674099617944881266101179753686921437341151863651427111192047975575812719032565537391450841441561689944578940061101207813014577027393743246128596928187783492746654800496465421937726227839312774163774006403811324717052459326178012106727119541176911827763418236935663587255760708276370488877966599153613250493873271354653226258229866395452379589059936690591677720041547549738599651313712166263712163641500723081529280360679810759860388566271352313808748869958302832515409734082908872102723820261427112863232499441560379823139644254608000963137974514594836742335821068056899621477021518354924375629932721895217459449269065175308751358215478062504979316572068435080164776654523072975275825216996405301425351511568958064061072306676104413963511367086861409584536580934527552333827869788364385452376306914895649360349460542795096436422446906930486372654138928288234346463105816095967461786130489272611721072729658719429495033538875869676844185481723686437248821628770391076604460817257569795875855724788345667818418180254681871764810093414353314287974949402929189717684730465212241519019629900018229571050272148106821318408704181361460713593971679177961889388603386611234175773420250785078666771186544838977810623423347151665463065395469315370230359249147434353721827015083358515711540918378675583435976781140474678885180948826426746197754471020072892587655642871676454784679176505499909743153785392915092577704195937583891832679917680496553998136582275427040802448909829014257047125332626316358907658657693774706499569067961313829993937927236988879840006540845077410094121777328905273006574379459526118472987683243932955565825497140231355356857345958062971385306995608022270798498093369598299812503151298279439545729807145990596828408435066888717178692804967266631670509238485228780764013189156157829021423027917164348714452573866912631186320297302906143751839784696387816202782255795137804392022883102030906258173394959463000724780179090214434920969642235522959663861474209655411521530680275007364308040030935757166125810043993485371348848092253863042443469154741709026824549183553577569155481171712105561771786166442841191734972492977721766682936531750631099767973847118025446256319051201532814107132549929432603690277940869801233150937009409647233665418322556365318476564012259939038849760914551141923369556369825611130330944820790924344880277644930201423478855346105189704852138048295283181760932597440833100752049498906304702320370499739248104951732818425003356420150171886157270333615195062155257881586522074310850130023401899744846317009449623373113339515608680591847729202974313339532374617518817109926129748898403301884940527743238795127258964517929881705929524339510282527050457384746977974370248893338509504939564734284099692804543552707353584686240931198285469386807562948708579180597736467432758984850119119055981895323897952730899192526532119498739307976281331190745872014004577204554627907302850199145253348374681979954832324237588006438055654767684309437632521966035672323018457315085305156076124792953420454956183092015581615198278966407154761102659720662284728107488205131690924580981800876984032918530014028346645215985326657270270209439049620030722570316042773840887269807892892763663321071088687376519388858645408403190530067671283839872079557986054945775156707965157371409390922035867515772778256958054013531266308696646235895399801041158124117865724658986559591069621598879448536229857433779100225271967655601295814751822270888154280929802782738784300561874592357900254850206263876285472259603642491190361922550323181489412290326378032714876531408941933249994990687255582439574371802764081267575078019143865748362574410364769077592669119127049012422054433004974541661829768065745701869405769653678789006023620882257234892179402831331094347024492735605947406624106935628543179552263359217872050172626587519213214115213505898589018722396877606380636551420724960665759294641617452455774284496290383894092300520771398860663657728535239513189230797750090762352333910309383158912763602753782571540668771979077461996102762814808851720976220052631482473635970950307904043404319653932104274640527461372078537013919375256003496244922855495697399915361895958422546302695105215518905565103406914493102415010679967893327097007800158188189459194770428664305608088162150366371706167908001327814631857259300881129973394259518107276737284510656721887326985041366491727749918003447599365386422442402158721435898478545843840874179413991419314446956080471206787658297888592424541623105152513818485258655557172157445506595179852509805737851862228405389637379160300524057381414023837378313431084974090541309421030671120166535609841097997510952551648497614066802619629691061252961960413618519777939135933260349897942240872402310562599583761035243204024194338580717643249771650125050866155805516960107570205669606539849617816790532010849174993024437608910668073338292938414997575961681333473240576510039272047665701271479795796460026555918226945830748440863582928788032737439831598462390290124719503897353485243820984961453820831711071326717392000791680901054122156129105724272037793175343451970752566338842047527990110409210010698839071433322069922938638513168822150947466935801373885743502004003308239580453348059195028892495839124076943754699394307021355813358508977883187043427129183035740028197542603415011041301969297730345642911111918845543653612387106096948335512828855781155817733453669799126471055917704327107470832639422346075780659280857278367943303460774533692888396947888174732376762532053222816341924256466947501882168040103668193979656064983241636131305525505661477274467457698188629267316667365711213572059173471259302296916192779291798734498677934913385367112021085123295561554614872733829060352406443942066528424573772538269226830241482972240103658293679205698304360679624383598937145951517552268648379698210435072020575025658425892635040412619630554449323491935257120577591482535015125536444332061661375132069663826145815124822698161038511630252796314871549775781469704869329191487171960341519006419210780249506635847841108842881260204496027400564952683185525143447190673294653338778019867853382140558235433895156361452641749225435713658050067778763982634385395238881224589681405180292662294889764352209859784724534992383368548886927447970506223526910382009566229523927836162858294996420784862662733920322116512066864820175040530630235353416641343476319186252620629147312277842753626403359534323960684399723641933793096085070637013239337490443735561157402231681889779725620678474709283515433200188174190182739250046707984719845108645425031237723236353306804224207964045164949105408355220384769599356146139456708547364669170729573571951446202285238812574552052323508545197094118994423242928442477241199779225013715870853878117757676222741913503919595485843617483358839429070601996335099996174202562615904467693071014261697614454336081814796951827470319457133308831983906190872093019972130240874839504763264912454868896203066405350371300955265384485583667726447874501199844693491712544784892747031858733695549299970758679724312507490697705105044604532744520566940106323741879559778315104770296270853453978464776583902396527182393843240811491958699808736198445097210815594829744252241479321589193836433627075252803850469811355139642489972925889285250781238582117131434010368960492189601325246306387331882600982648717610703117883098202734617606786462097270742605542554770985982872472585575276381315817325872134930201246744324046807305794032827749031615572469704129581184898406198752639644033614097748870335820014130883988629331001697076068468100080711465675615660737267168794707124881069894098694359664397732124992382298172996592060588413993084161574693978095915650505318682013830191838014736989686597215438484072568091876362549989944667995118335882559236129771289810693594405011960205289788333632872824489809083453992960063522675780812598140715043378177834118343872207055454145737999132175834269538491581707212359952520290658955640237589859057327425554073425576781306570753317086773366172039929363560572724067526762524419502486411479436436916741307724240806693581905069348740383576840261560476866222938794601302702879435001338455209407799852338026495666678975077184703355389435547874616600494238482896013050990477844779846975892552032787138357626305371944633765918568238735982976971770831246623110719037283002847660988046591019573292525801224512584363388093773767515079814595650288712052433745472046627628663203960918335585349880591839594743264099148133089751151333782284028653023282431778955691403835354109317990750835285036994155402821441748981926216466050534680451780117160588572894106394538622186349018192955183662237658296973352736695044511760183505421323148751341096347959468869674189664954257960786973712641735416931281720573023838631729460717948717709827159419035111931214430536073617854542117905772987910290826185687752739757603725186075480589559277578381428088155741722508728784050153067494339651568250226560669899450980506715044053829142536504190216644623566824783731062641897889169383530365135062604589693756445934526584974954401605332442207016945838414126860124866979908059460332792442194305500411016671069149463527397827848589445707859289673905920493257334528364790970418441016164139039338494123674040995559755198059565127974344574607847789400661485243250740873199659382301413102769942006929439398538673076240112620623750202299313671353270352441624987962869398255287436664888658445613707749879737755668140685595326582972121955676959087307696517555940965783735110525702772293980323526623705555819539374504377579267557376112329322089181461264039904105018682497545253639593184013382735868836881191569772685218037359033740802081127626685808671780123883809738517152591424260622906009033815133126353198702226080411694787391128956167328992042497459646551848062540293302732624848354442954052260782400272592593372447644977422999729730999546055180746943449702247438841479887473226000495706101120471613623333193377173983391133929099575961642696590368409002084822028383508317637382890958703271648800993235385388666189885360440146056356168894165610203086393877860966441712816013464530707480286010580169738682547811524856879193366366012597057349370434067983599821657442906644090980985773253144538695146616706697509673972732898132413809298550252346748757072012479110068163461791793774995055664964235123386021890848679799321475743514569649936301678522289125059948523111553959941683768708549176138370564553920437218965906752663244295073987691998071342252101230993290778127672318665008419795099453788797670291153333091391700388671577437581101097243867120174354163100236468268875964121261506110230434468588543662731446791258897009417470629842042857831435560402483125046900082463524898763897447838586184270773654886991697627945804776168545499723851868991620923037079540768958686457813595271989236175196856422459044257329152735787421255915088148406914517305339389178354915564554238111326475608820155405687264070857275206471087166101218675168387569616994312608058383502480863695153691884064704567779337813189111059774632589577131035864411876497682441993737773512322837192268786470250261481010628144397085244051778423660498942129487318358851194463672778545069578748475809916302183007061221557449107783397524461605166833162902864547793546033208725089439052445323365359926651948485728210901702298163357707330439856058840914508449643493183510297446931639250056430396014452304678789750532081783185372221078474546196262616504144297963890895987580615919339064561679421791430956947879273009721284851739218969287308234144351114880529159058178378325098985897180798905035485716187854157157444274565538240893368424324180281320093058646495465466021641146972576030348801033907207972976145220644805940888940536781805875921311009891876785274499641356975335960766047637658887903420129181260634372252774379272512874862180109372837428487042252178009675351801042815701196245972914640480279253982853818305991873303997206220094194775870850095885544402758708245589142603219575158520409400013949831501023701479825568200573574402857851106513916608168268177527627049979831857345686968013133253321264734672587701970697118363557902258127043900203239840636345810745920480796535281201177437223075890531534737962748454871193101267717854615504879089154769036311919581788120404901972922985631364431254676601408993642419824437018981410330613612648855322657402375486934340058825102363846646427029833317003021658929858237455981663477313799150927191137499122367153208807857304044264224966388364993093467832651732318762056860383787788057144984953586783455215464057302908548851913267902967123493690094900689777559301472948818016092178603563965000019989126890535864351216645977208253500724887549209666749815181264880795049839333751536737783057871835187008017398168974654142769165775753837710090104555066485716832150752099188355789435083893647436061843022102382041558517781089037832497989536103579697845170068527307565631429525779349825294145306584968107149683030073764101384883262717247391923594934029957109002934891878165928259989237264177234931651843196889525302860488726798319826933560070600172650444157505005684008330090139262681264929027093157163527106542787011743265711325177280679262709161622256775498451446116642613196148416723167496757139600293611623026863070241692036779257332042868922868630879010795884165723195937396645534783266622986300657641081998929877714596901578741694649773673192864164200349590861380889457497815382299122288120515785196012462841942715239581652719169608718618088183820444083262073194220708396891471047065901297781694320600140649971988311165678568439431833178445170237840095714271019937669628852324951366215624383004129098458811634788926587871977960605693939708018717267154001747335601526920709701242515919206760505194155961669626643696761355196285939552525758734306844380017858625002242611953999413813894770928390996333758152230383880395413025002081377386154496638526865790115829788563678760803091995041627958627830436007419905221484129974291686813255969470467038930977090056356735823557516744507849223444087665352159178072644715670899330735868676081019586770253165428233203972850929442043174411208089951115940612462428638012208623813495270993895479791895342143853973819836544062582264620730930160782337065369323012725188760075686342739250796559867568302224373413773732510972663906275893462642458660304276805424538607771626164422284592699022178579344321522910684744454888302348629881891979167183640137361356047178600344582754742094075495058364771339206262232845396508147614543819715548094231915262422569286432421527520278549922083354017097950764621674058389230397106753904726687249889265097842192781339144394209652152693623948895441412350073933940854619649663513831564329342642772057615475608259594563084847786595248065078560115744135749196146231740186838671946736769809863552472012848845633982432354466946865494197096248502422816863410256741144915240232247205498676881078224264333827688919113406121747635702764059995347838859645326921918869932007053142476996218224771747972098551903663876499956514550461834531748221452684186240498326443394671471715422674592374007572681535539505445586207356827480792979369626694717294554948350129952164545405935403166313728288890774802900054128879425141770853841046861460949884440866645009627731038667159197223475776845233993246960348050527334707504435474180895148203881039076776132588498142926566301082689423582711635344491078415925130637455805245833871953939240931904352049184411885991511459142159011964421144785899701077074630521210987559392396183990162429944196198656011723058562758328886918699843173786824852908670159401992155092024705999498046275383001082960445701557966409355280929440099295377148188323147918108510588006630140325927920548146390066468507808162676880506408083492403659443085857573770349227907387717247155394527798239006690712621443540159116724133722903049215330961726587235823819750708486196772490122272109960525528756228573762361999967993464793319080736975594192708485797991921037224702793015752236276656124189275071133333137062943659880673689079979782118884242891914414309902049349433309239490480622524665915702974027745406177786556383579404257431117685436079869086821197643245912360201524287718706743924729585438705710214170712770556693180670042604257780867970168716096323232449337236001231874758746663626431893650245325915683389782156413849041935765565582054785540484926380083131933414632790697534196748612691610883574687662076353752537714354277619971166570567848406201127102804997022229946113918617882285595434622579477615977269748290114738701742050555047419966894943785777424016035171433985111087611605843060253003782015343974399623668162678417944461668141972102119976216495891240934764843494726150815828629101955542967316134203287519287241540535746405337551710241537783643618524043436030855159032690503064671837302336993226835116605085337840605226262604234026471811473084167452351154776433986187294591311060389827327233653311567211835891037267658758131057005148284783083759576758572703732289052967430891725161262721183821596438503235620723420087835119426799226934065622512433726887361420124210473325031117411572843280727685702495030290157179521723219875151155734950829475868790797055637068773571576359772110538883986251686853991171685198133552485663484369601630558679710131281227206915027370056954134205514440551184522166800471145458504897136303583250021765944556317996136913618398993011485892443292596914982283154955477667677935968180507105892466109660119886133255167856724396894171863151083063620910073360731702272505981743810775652937626878414172368619387531795258615081784057473811451851597692631257941526424992051735080882408630708514210168882368508241900374474296648433649594576835694770869005713601041968611311665905151571094844773937519411379830742613342951165751373897397416673388892502619296456958336193254690011869066705506276206630959450933978069391099311205142231326705081074991814734609220119963984978464281457213578835704974245369229877558802352332386635645338464807688184370891991132631991327880976765881730430832370657420819556903527316335697641419426074025946859051658911242170094691785777643870515795126888500413509799595574782915618928795292352940784858534212337524583233692124162429334029921370656687407260030152175783566566853202557348540042923041578777732135563943633985188330990134645240358240961516598007183251454628916369582747469011240936829599966342814202219820727598018923146876840980516288689600925985740455520653700596377014524199177437041363802810375000563779479174593377736317176220434729383325234925098212730328323152952094699446412054045935659050660297101062829821525063107379200289241037362645833140608244179479020172392245928641042408425586720038749183709161025587055612083986969929073829993573541543675219701577477291001205225069051406182460095776717739044240955359495357956088430906367512726480842483198163377520289178325658044101631603191568772845343880801363802141197643504457564085491889374543259009711331049802353239919623579584881377132886502935440249473725758634150012778823368723478049104956042173469634685104706648898185428176162203562460344524150128655696795497231007327747193484371041557134532457270250083630796564850164786327386503043142861787156424084446305969056231770978112130341026235330997472309316396375660484788455370001588700935005581056462183304966017427195793702955343916294895878199927813330162130115184778334849603319744358627494923824851871220508738409425311235431836925901001582106672494835433015225117695678624323459072210977597233966061293885088439032648202670070581465773679029887579714400574750394953498679096324031283148867743709676783835029190405680321439772276248668875271026985753936418203570631054314404938077858309906372230324021719400150102154247366686919532100606061248726940834453406049604082456832745484630922672340439614349887965560690393389662873906198356381030380311559740879650401613906798833185032883425443784559045481902267084951123381826985266791373618283089797945262513864738305233047832788006396823427361754671330935696649771307044087516568314770053456810312435343545044886437134970679677892840781860080001029369536079211000915962793110246276939930271786946546131470340547046790011218612860112131327797868447640976117115077340299905603474976379913281944679953689018834504662946965450179399104338945262407772688841685070643148592041805520558010091232316159245820532992163709563777585382324346690325005173745046557431488155038057194664812569347825356501731877538234973514181984204157958403344370215009001248559612029334035742136141498688768199397994025459896182943405707987546351272394885603300392439392392263395556605413588577494446989506427137485756492832725041277761159757764582514038812308864422509930084997765122219378290601167526492982500245705894268158124075730451091879536250218954004512227251437767014378457753454386644326203556513872965196334984521128138879310393030350121967840460863767330825948642078382105862575451533471012629610002965886011689382016291180432819884080098444838066115944977492856628668324400078711113158694531097473992584592848847057659921966992124647197855134610559766715746288958632118588946473933537408914839908575672911844185684582292407940577926666365580843740908740307660083927010182089459442632256240059086836069942718232112320523999741116627468520538096086364772468623286160303020773016795921824839290804844643957373545941618708638892001434715848844819356619573465442779780631087763195313860804641032387896291976786042725053582282741611821905502035541308663233053179789693223035785421469076675729688405595338740629220183010739266611884372716668725437790758960410409849470110585996805937218939959613144329071216047606579168089231266536836019967093715072423837937939940249496639348284680017386152411169126593586621708650056954957364891250084000045719492195804212533256576344857265765294971311097445375189143606374218804844436509717457506841583558058695016447480498821327502674295364059410412107775859138486547751649145347100921322201061243642085078776213144006588064643004827917195804720790159747628313391477626252017906789889232386749748438787083409815505139022123237140995360604964997688084108979451481630453805253788787308306899712945130062895468005617903176571759095595598789295269166861709399069938414851784803924754297881057084360595981405967624790721035009051366649997954161706687609367530904238798088702997526360361500173146955935691277064101197713215661036634410709891617688529868559542521670560189911931003405645563685917299666228573823703551720704157047831855292137221830576776446194624970369527896687559054094628085476826967570992173720628887985031207154128041885668902113397379901871267738398162710722272667602279355533858758549831035727001366917595996253993282170072429102161368001579167891971296506540701171351988345229833645656232727572384665443635471035464129001725632924206837034576396110326973108360016431183547335399260136033138438121692214175320656783789075156423983584066327876999651780573725107869992034428631082086810187803740706723517923415853018072113639302794071149898823910728888102233786500215848007551939955096355821221571918831689709711691482249983373047805036772539843775227974945939199312807071012948803512046398311291283458725778286124460161170953437485882776019260701700079388535917684110456593989792947770344482812913780950607731689582018522015950340567821913739762369155130959616486259707852188523776502344131475059731793103960882420016732807580489955389772162061693583412663396275252245502103142020773613754534160940818839191203864854504789134415125807718186589008886343822610183796831514631764831578023424048404341944221307961043238890222801134129299994867751498356191539242186407862943446688490741793580715008727912174714975813391546668564885304727739669089155737311905765613276628049893480503838162226027268677382493769691876997581005569715877185473385720697952600335346342691357448270701460965894550731282088524928194330690271368123687800081489204401506894550208900871060503706056959892668709845827081494877920698986183541906786999232052133716604706429290613912562209103710895007598011270802802005222704559633593817166476746444249135089163680305464221965847398588243467770830236960544564415051418580558784427852449251341464013287312335367051427570449185180726299831637899651417619469043650455156570892142738135854074820017239621021061373029824280536412917664464786417191702529426734189568547627379528436099072998897086081641121280570074876514082569500555599742884695709078731897596605211734335453679327148282164889417669834093267467520604981982849029265950818898563788003756725339913905007953077670494116106214027696627202341896693417271621885757821742065316491795093915716946902448602933613974354302464975179612961707045883604853050431947244975181570966731815962929318359068128215155645812135580445038941658973174501333203105058131914338588748089163764366989381982998480031710625629753672794112862906666485890003453672932621300154898104318196442008217317583951507510848975842635359580871617076826114762289355878672314448237722238475495205726938585676949459581288135332856698520774458453486320546163011552733835036480725584536078228434173347131882816803708293086210433119659459054483386108208241902088450753664031651405075544969150801461095329478060287139328058404290753816391632270486975085446016266997971905143074799606086452610983285303622402409573662311620408073693449324843866531999009791035218717013922703236966399107533495558614949946857753831115868082242376743213428506078552416808392064774843966113211998816255917775558589074595192521717737722256452495791502170438687262341564455933395518967626813209934423503883290659645918453497899811148224151317717374011044711123417801942628433896992563002610130964841448972072672529500072659747667951171081445617157465440033686789934598418442857616225688571774761424946413259361669526118407767118179035989324723776974378119620595240989087869705556215562831747611208799828882809447073727672254799565626594812390321036132316930985054241499655009299295420957048511656929812969433781609852564659354966894378970353960870738638717402739331807408127705247268756492812373731686875710840943930005576729298319525537062984637563151454556122752879560486192398803642139048873511018527166501553296555884066593214834811826687541547831324543152986643455291637531991386430904957180992332775979531584938974828700444044583734306017054221270208357970802583891484748383792500998712345228063856826471526772617308607373989354380002536163782417196749764989190103480615065679550439218343877760008931794748786866394945912331848426236633988042412735875316849801991482808990605592196280565513595285852095800042765274141157101923149987116613994997785938158716326900044637597371049459447112149601398306582454310779203776196682412522450184117119585676692688764716300352690782212775184822455873910905460561642618350581086912732224836867497603731488448699452130163986001938055368095987991986081767739414205505147216114020104784882386787464337192638706350930786796588153827575887618747679074471838026419597165168604877254784635556768364897965041876080521923907410810911711161645232452892299723919931843925618594517745395143551064409919859444398453389052720604812374494702916411974597040898717194469072489926502159040382073963587232866668094397204998087272629993465093347248044647840851111125027306054616924068465634305394104497170344509323345834399399575865482031733871211798505715347859447733527554815289466452070154701453606783541290000548348256778827333977362860464735259162536831160803506705129339072599667207934515816851367351676359763644494482112939911756522442396286995804041724786666495359789952833342300570206361679104667949239235244211490418009630970836816074512675797517173519013840295778992163612452812124378811265060811471346282536787952899269081689521263517090109429046064955895101085420307434484946782561537063950617305870213770412045428584789760146171575686789513153415479931192820116169989060064055631631685173206589488462494942662159006272902250032443507237026429465193700306758376527707725670961072086184894437712754423004841355430817489521800948890121448534976535279272136135282400087396962589895144243221215866615918670955717911117834095070666287044181834311537910144960139900815973319574821634300095890337270459106649029781344880222309768092433532538037118382987082379127776954104255572849075625178121457573292650476334016365006662474497441317183413579318395642072571502821584659572318536961345366560568803319632403044865023809632429712967518872586619629828343668845285531295094596388650630226403047282757551607321390278437560978540797314891006876464511589469449694070968840221310379691807987526437599928440844407840539530838306415839278309293786617756964402315467405594957575670008202926319918351299019334392562726985688299099769725008666137526355912405418710902626926361182300333179702097353665885631701657431127365457901675751256584099883409291393200021994505725822686491044829454953742278257455186882354944328398966488680729423825637946695437728319664187149401735906231875223637025169173405378580539290971898017258475491541778137259908492361819191605082732156162519441462611522104273633906738981380566573673947257769890336766432014008194583299907601899918631000972835197409622872378008527080483341549332881055557542080951410762270387460214433442092842756172886436300161556400496490199265939905487291821680730460118615312600550985552998174009427658712169601585595536445638954858703549208132931318375685382969341826722996045469262651489574495318838585116921644735905150318202800801529258920857998543569892816633470339509135906214926078157242355413811264670261336337277654346028432443515954766763228220405733418374299440296920925284520197482221333179407180163112725944802031123623161057284283886697551909243398236307401500725550977006436007915304821079164610126308464999583630595940480985337697742728333831016308990511895485352888266477621438585962390436093309320509960706294282793899461545641663450702658012129988137160572980215958744834020394185745661534995230522740764742106232257254658223610134273724955848282328073854184366735210525974572779333687307456591139176398341558179747466711896829733129692546889381088078331970413127172483150755471948164887516043492622122154785487983341819148972356506432967660083456761889820781161520262795307564425192079204788687450447750916508819347943688137913460948299605412538635906002656667386487001772676347786881116906047791779763082649872196079774132182304243783452353557338336148726380486812873437938971694211712559293146088736600762077982727471156303026738397388713713131587952773778738664717812982489447338508938751987521091013497142177069529747724863059643644118320217506504410643677925599206022496917470574686840735389251868630538577792843026896867417632402348958566925807648667735529075755197949608748845004644033718713358288640719678501505228280235468178954797653963871489144803910681621833067601675938955211169659470994698451487163934478487818656610503390614960019891345273440367529593394464129163782937420769722715918767912553419520593735925479730552262292961177518354818650571887789949426566340814665251768690065475782421724387781566247028498744601419395779953009241562511450944279555137651398452215971347571745805538726528667979542993228461061291163853399758058302057512407171232455586848254434078035105415147595883485279964854369828550939166025301367385357304491362831587692427915880971642513921407006443442387460983150657146545902716322426816259011073599394524772664016413718218101863690071124822903721065363401945294571036507632891818420209214876925566421875458567364911749389572591563065728732951893445930684354282013654963295070696496734174376703879632116263551574896495932702546855947253545961595146454276822768026012825378192711749650591915714476786747752592346680690751179361484356972319027928159170605939897485953754905223775623774628360543872690740368270943446175271532034620296152952432518465247374548844495905717922615231598838008362189488271223334696639337639101507433278567560611129598230589431093381666908967756743913298664279907646735566912627930119516101647722988476158362131856346273473842258635701607891283038736017311798821598360046876962954517026160024405037272696123708588992710335675362621597465860080484361320463122329074883011612129423368186271381608961949117231496716896041013537763668144607417370205262333439684214075097758375195491565175661677345870010087023950500077485591624617640485408239835997474531071538165882659744226733904296197710484912043970526461282796670147732417782052342561313143355669583427452250111816550034738852046384485699672032239851589658948821829236497476693622358437404281598473507860435412157086639877235920772858354427038985984083299175964929868957951932852298613925692703026737925771107181854881311125040623855811753841051696592924163500394142718873016490916244984908313958817202580325330211241775831697860769677986092883052317858831750712537477062987832388336541633191817452510301047537188777225271584350139194446603027807760949513878613412563995686778798038444049235218605014568222887290728549498188741127794942823541058330469786950180980429216334602294314417155188952679151454347382831085193543013523368822099176695722079493010754782556493194410322723965292371521889112472062524167345241894182679452618159319923409288106076227445375250489015990386439493540087777832993913252978174347105038058946098385504687348667226817537720346409787570418586124596805831414024232216837786635330181934311922779625015420018083669796528616105470194390084843742538692345158163663800391000309575744098201391336979839418919261708726648731907322536186559725249873885081272856683737225091163776437396955387560193127985377466627020987046677238757390695282203717182992140511059326016216628226347928953332334893043176276487966220332858814846091973365814858857014163756379308848128007902775210049305295305027999049886572136204850968567695763934393566245122361364274723072770728284878477184618536805348545343269643643605926851717705815546097031625409513737286151488274880613946200780354142341984705051120050766790049409112737743665142043335832460976423071816498534029565726079187167654708023085098430663615455571801243682984795791054174151729611210669472232804184537507280484318550416885268930342410563214497582976262358097055117226866072043716163680647826034374428186856738343699775121171806282243595399691691937570542024741802317067574923166524848568593489503927033867656694839531270560911691587992678206570755990131634839677317347834409021930627794899194281765857313126214235681038682941543194568189286026793920878605886580143980865392639773981971520501159622740435161176682938838237328303178775131547205142580246303647977528925556593969304830337264273309313228525475159348152920557650749537105680839287529097873784714586821309985387382580677615243065201090945104436636621812283774582675632782515318919941742760461022570477112630802206231997902894276926825576301960942602166235152765344743783330645762945371510773122188200193035714943867448610934272390136697639976811320434090050480394455364773210823434970992836372682182883733620366966954032635746637335789259109185500978491373063146491933799133566091390326755837120461242800659776425740068627321320347526326112163704533964539027894883538330922249359821316590831089872653510936647357470541610664995764779434026755875351366557128579244982218641239240775008920246909688978266804393684051461891312891671628654755172100475355863524070560125863712414361555922246710289102782705631768146531495982684242604618442615703722800056053612443736930162644586214932686424660352681443410995561674813099236471584137105061329886878213620522539585191469681770882163930221710664970337948430758599619388971436626788722049494323380010917140474300198708226571395129226463096754248607556520813841532476898898171742963496396704048067943342823140578233353621288398747494090445925721953911652734004710098019789933950421837308765727547811208403476440745487477486798679009299349425879549858402015964029661526576125449708701920063963181215406276200093654205128569952344887429767832855590589175869519303326260938505428330377176035016447475647219641826280041589640465755059493213783355121490352504712043212897748300803284553568099040943753037156490840166617803005161711933564624347462439126945807414743123382864377400403361810831295169286807307637716894316238039569470173041822984556304363280889943055161056229017384598411855547295681562148986679040191277154796279869999398692077386055004055325397107190116622426726023844203643260544003556056619519580357051719099093520380145394005706354083832206345133854916028766539665828520723722517491186382883439333532726182421544561312525934414227871207658864448659639360410316419024334340113028252730493556914362575757877622186872288534307782352975306662116431083147832501122004822278948719217943138777368588825967982971733830168306271853114001607384976369697157901348383166722365283899297737489510683205227852918975452589935947283126133301977786487595891055556202430382801280681157544330359105523755857512532350099595397409317735493781000316642223470792511487311865808453480515741116815430827758060075317724615409928738206724924966506099035633886594161016540821048679639713771947610629459825844352875080786266946158879639091656454637581549906103891262514239907125869635667291537617105472804555545540938008137478487519990997811219780186224296016134033679999062612701004589600243340765455891264880738696463781506864832462891438352393326569461559141146980732868628340434829985633004580645375928316837769434569552792831491161983457302707285555693295139979479678799850109155801255411701766527240367170102616163923889439986329965667886776951003978216464085503833495090212377742439346166568772016019082210494706701812157213337335349448272019552071347980439515947979961821676551415556604819585142196078252356231626027711486843723500250656096510099549443601380171401897119186873281334927023966314753667839257813816571883889447925885907492979590369911330508817735828235891213429905381759009174188345167634693393885300725829357326536587592251471925131515154324541326137203895503895863235298680715536031989211539303650116562777657805432909845844308154214018520597161282995934285843331336083778491660957938999199652547749071696516070353079544590364792841902233087071650214172813496089303417645505474001129068682955440478610026324291104370337617871246274145707212533782316356501005311258888890575096369420359699459534702353702918959742813304983351277811953817933974667681908871028711594267307786457483914712261558429001780315958223743318053349054077141237602048839005462620219545738084222231303312138461243941820160963714177629692698992916900441861650766733520897657665483207955698039527918483031444120648164297115055731894058785258946140620234075874218121807868475493005941247685919780939260334625465849581125240398116598135468366162907215895557680745354013967739653371183707166635404281054247984077491098939316680500931924683712609464201758594159310236739761179989205846027008222034367165734726909105771064396333193801777094483304601216524652453118978161135519206395128053348362509030827276730903073859084720260930216489622746980384831164468388646542892089818661126839679709373464874506135790292204315007269093006895430940320840273417356687538198258722261912172479452149750844807795404374075610926086514836180153014855606422778709244728431260219059133578077359977159690289578731522292188973583656348565122325136745376850006925217105724008788095933793071762170061360306834644431907484384237932809995465792985932158317571044661771512369641392001051408240138010839094627386732327238857652136785486238575908121332647310264787113596707804435690181024970724138510465929446367892382965591633222310889578884491016131697420586373815222554746015709896967514118078847319426629768199585004211318352377468185218208896308285681798479270692829444907130102719269028701437068525775975808054537930112787626122839354136085125810978841895094310323404925437201144668262232843433849231026365580998850949093401671867405284560949721941180469265088045324899813756427361820519754226827377190527688780683368435322463369553601823268499016521677469322503592372732031316164885155163905675407117433550655917849012146581388720032411704520741011059584744431718200144573328163310107764531012599659312905321462557294472190642867494388621077675589523412606389474742853695721007181799690333950760160666684637449048989761292643710855191050899399428536821199356902628199409979102840556061138797957469566669193612758936357854576478896115334555482322331672616279744907812062092146028400636370056528122616327754015729504797249633356264485053037901044639009852062039073344286155210458205611493864150914947969973930704507944223021141187927649307909691147029210678179672297058794000463988655452753321818095230961734545823788328765568670943524014127402376073742348382541658701323365018147587983334734847343097732122004265793478896005481053540273283388893752062883026073510258749767379197992138987187754234188604826075928287847733567465076930297956100664932627831889213478842666068207816902329277123723853983469164983115916632286611550216801731833062340280451960313592653679887752562804835872170873450811349888282875649139265451443481897292959346314187217634608604074240505373048440452891544828403862626767823399986945253008457555074807621367021365931652039109598897461526645841115973935433686568430006731347690346976107170675330677756002520301560436296142016688465078098213321253186790152872444734977708140181241628848883998524634628941882570442904520725612824469938655034591508335802710171860209067986867510781381241352496815349687402105905356075587092012308888212424917173915504823486053301156264985684343880046349257575802362313266633768615805420151235810261920020891323673881177292492449466394174511521173408975837742842042575352659719869545691957006588589039996267871234528027316690230591542232428933466190318456937147648897393099550541752207303804765287421415710628941729040128712078577245479211318370182192445109312834238660706812552845441423233859449035816247155716160528718765382505167115450485373726668150457504766217973260726348866392723024182950932585272643421693754532782998549060103555865974586967769929094278190783657519251999790187100272486141130505169292155935583234811032459941843904976165609859274074079362047753513623384348256183923925657214439824271500796809859772304428768138767534598968435701214895252318916890028055840772616630589681103809662260595752562515938951688481740664022202531868786550891855217324184320289531623613652828152795900876071194426175375859439190134136954695165552566547625621252081616363170404459993792979959347915882745093749026599712009858720484537688102346970081007487470481952349387008206459209232463774919658766279807349706939484235267047541886330249968160841540918969014673449980808541708412177352638643115906892383999410196850652145972688783986435152442405792015200249252051787931186200930308433218103699694633136774791113763775013511414906131296168401074161973310519285529558979124181944827051041528940799894546562391987172107013613327438660428367735626541207744418853675235235871213201391686567300276082890848885097861840210165109560784806243443030620665462255484401902586879769241261590082899665281137724259000123992454182156141896958916547352938872153383496315059100659198888839439629310903101729653739147419177956296855917276943969210125768737484910356875941013649563519763770848305009080061748390736756156687649443065833942827270331742130551404259914370317134271097830929894375976008275509123673815543237180709003051060941248044209777166430760995290463244461380315900410638288689443662178388379499798132890303008453271794675494082317343844223910928421061608197121066465663476360983097498080293561221342057096249955916965678613792346520806047796214988140060698220598995195960010547998356486447292714410480796570284152215258346591573711173675645863742311295478470339145784977832513024913310345868398094818528992084273507652142923070633566249884763159903404412595014672705252858557059331905758996478446492938118372966495029044576041936221423593154139363349472740549719952954854600547503584242682479502856559087560664743042376192636785324541264411342266278816867778516672467129734366082667479720042225163696885582387303666669381408080868367589029929650396173756047315602691830822746987844763215616844727316298450365771719819581876406182270553824243156710393143783037551745778407386173153023498316883961283986482320822528694766523342942883901162299598544098271654406187328642840973889188421951073385121235801530260931896510702586089340132818129209899740596246454020820547068793325650757931330728593537841623484881689258950105526908466800700680846985238886136311268415970354237209348359348467371116395393380255836330599329650027455478417500140696694787032952907117213966768010806292295265868266902934510014444177590370722360270086746951686570623025255438330063389160796022141143077546791313744234489071322773482010412204937724076409722230991962395701041807789924067077947933322007981064281789265747605054679927967286881441632662504081895584097852270875906802363095217176894336979992692595731221430697686334777836230416328455715960080731826312356546368680558581379092933351533959484889475190026414573999219941445392502439906566839348823726525075397706958133136895391328537621048615573804232687378402081346370716438096214470671170356476767124646148276909373480164551920080770767447113453894004727669895295525680805002986168893821313604007621021919298539830258619806838974725553736281710768517214692846186725931654128464942858333106468426549921359200976094866236036146182551066692493321854032127519827461591420306352027077491317936927878111061167391823905422888309364763364981380542890113008314060744988437560346241190253581435900592562336909260544601293168929812307223463178577372034475612353354397990269934864212093603676814620691748930244901231153237965121010913548262035588302328061287287919387911777286039492571782429102032992079362919316057744056561861315096801781506574060187153207019043482174814077940427217151070029843179659775070057537329634763286724538241371744154104094427214789102295752024514893841121680427502132597596786753327641896851531192498023188423731068799530559709205109158789513079407768969889957049396941518389671172293248346665291104963452524512953055144649182840264303649881168852218368987589163323726925801451522961191850636894118865827147276052238432660895119985645519315921849902256174489054201866770876091739708323804881640628687203180739107580239551552208288560174966497598677091822085396226180046343132481408146625181251860939379524033761166116626381078903650983027376110092006897293391693441682139177938460197212229383094432967526863189719538675077564774439714692178075607213078481054950336030005285638682994590396232972137753222697020370360351371193811229601298269253536303289426305999686306371310813662708682307279475387451249298037970770537979821200323568032075446903996821655870094729962026099477630025076196052006613812279968421975398589694773970449284002361222968958334268622603350790464063362646102689905300455723150268908451155069968125282037538906150843539996482783136003268721241525668564842390245886156331737188756090698283058743570470311960150604768936485255083461522877717851512917329684923276088159441792962976511326164363814498977892294796151484347544742721690107256327060216575850983508107189292098732560917474624961628756768094413509308273212506011617686632653221004945035151699681318299374860992417513434868971662377477686324627496534034581537610122173114878649043746373953801531082298582568500232365759745106856961544474909793849348282027407060686935467120422779591857368276019237260590812894026123020395397010096924756751436725259861732517135283161724601531458438366555719053198343141022654364260962302339252598246962450794731833831032112330227237114034094179809644254925718310790903431534358282324599345332256158384844771739224784159114973045896391450343875092374102260088892979933958875580731870470229615664011296048476704680106007462828641275825243846074518586553948659164955300139828751637450131306841964575072350818617791751177102828094374858171127086050922570544635704435812057605053069632387297092210311595672982505939026425448828636214333927336223451889702824525774077874295795411325559301856793542425432092843844947991364514419345470299295783133402759317015830928419284788943630506826302221710275377654446612886707103631758590211791072652639715255068177456581755028316284692125592481968451063376872889067132146078721524548531513352572007999297997469284507271814437327855393733580848932069872913883773947185620243223672916556097235053701521066339269311033615240123978271478384770817566897158757608808634350387834530963523439919602872480059055186956445295420336987213651178159341491943052333736913934923352146401394443591966309841556535170697067885128284145119225656304980592719212620004246880547213840225488831387484867095500680726484679886564058302560010270909890688141456022438178561149597425366663332126822166554479929974682486680247130115457827481326016631955742103654560761230127661180429947667136508365723771894093261228552809061478419036276678728763910827535735184618062827552405731720522812846359047013987652419013413724476237280895703613583378754243613795340770629850772689040767449631050475013559107361689563109874870280742250168099245371081225604448103363532182413375601006251626141416621558481752494739725751504221685534952461402350294822021438761396987279769704998135565047719931538197797574063916826925707756393426925434431124758124800104498522026903182810302658216931070903245193782631925018548170274593362198500967161451060010357880409547776713487511375832463387829640345294751937213216624346670301618470052919722624488297561010698479451289031325060856682253206539570421776163948156297934852904883644358628102903893695314653095123000774358769599094234332117143820129737375073509422849141788478917745802988012611461000243852047511777207097705565443349145033064001560761828890071051326803283403604340751392498176673549043499275851681037281274301114629032470949195322436707875393728043673508927506793298205658116966954913025968106701117337473454586538406241082972481321103464205604083487586296870790355075958914543696236046243510372804904595439840562875358234993520450747457298781377241907422901605749892764385294748405599407400138985982306250352689221791127916914655938294181536730439433835441363102936194328420184255141540645891667980562959740606970523964803393298013493576925318853028250146806642563621962496983796275898516886906996730737164789100796566327924534792627353086583633812275540698916785479930884175426140492340679102631827712276476246394319887996829686253689816187197959627410553516473093307606322736783764414275409029343403713004832359590488039630286443723680070757209256506345579331148477843499137233418340831856581786104481391088396755946019252015431358275353379265350741564046339514231358489435609635547778085510377572227517831825779238437825747701323050857788359247712689465105152772452932770273110769816136830590541661749271023123843233321363810836098861472257500328640193870515447708832945973804607590530129362306919803901167708805044406035581916582611348779150831448610553033312420450951878070792682121578547870703654513421947030665214694909315476721908942272339547144632891228799953007987568842316084863129393492627282268404411459454246559247622515928818194692923260346503127026255960745517841470601669128179114130101731796027845800872020462843858175309925192298733451914112999587189953696719295337203539100035520922978651593826553230080631237931612330443704579974672808927588337748162540601467621006407733745602888833461879256851315232220483506487831531958003651809089578866834865574207639207002881448820113876907309147591571492371808231227375018030425238716809930120911599267172283286446258509095095864838538114349275266246252664847984997273741663224689878512581850426209817094016952051227621546733977907067893203089027725788882118122793637935698987364276251173212958955538249990406002055623061651661832833081096550062579916909314120418095775768853164696819872667529895311667574446393684954030791024238114526217197595440900641973435844000346190715712224125952413401246406800772728143100778301469099073888607959326975930151392546669250867620136145810729282589427141657638682295827106346015277586686402301326973458745313775395587682385002116319223880847967864588286113057676990307002919479850305016358038554377929775707109774537524491959240974694457295243959240569289642223754530970594512830742583625910281371593466615458892388376166892910077020075831051036341419354376579388946724048355254855117935977045044228254828840745319848284416579038094557416054358318388459218122264587937539279385591624834160153835689171963150205090936326737485625016904864737540058011102530969393063876558142717108680873411238076322200338532090680911644917707288000493006920322666620906919738922994301173793244258243349808984545977132718301429736130181744878583819092552150787271286951349711147779027012909086704300119609233542297204033064827961201900961085974166893933177763067276703254460797605933617130819257234480842238182458625373719513247038324556890052337372012292963046702378497716826683567188728953297653523560308198780515208431241022559559410106362057681691008089002215131853614514267452612664526865827994317491397353627819369077074024018219420102559922414273689227688629895963172567746345023242585176543772324518790573015337555669521614426841177018247464778832141761597548827413237578122398412827949709247123513951744188402169046936862637170759854315776516574848404527829119346948096216500658793468926106326986008448386425989704534639588637160377243744430011963594645610774061670713953347118249637281816988348325865307988009252401216881716908020357420720837244996921305360648342131575375873920483831464423971223594227021947917560932586732441329523061542510754993201700431489265327129355588462458852352317822079595007864869168415383067443250270597989544395872405769567954776665781168144849417553926531697151575445723325130978157178814903872507715969802219344344713206385263942503496267196802850955867678736257599830085695099159452445168251178997100642640736885891167771822125383378067482528295457212698896622057946550375127756678560789837596403451891257545263902611580772295093442300526956570956529160745343664782118219491137793368808469999316013817118182488327415671226443548413839876645352221676722327804720078061490094412532526200102696167791500883622863267459564141441864449021755682474926443660827088761307135315733564314266029435500304334324316189808933782219726451816937773471289007552689542308780732159142406652468101966619679062695809407759621104433736940867163097763768184778860638181689072527934683695347558391074054877869107849691252929796226567876055145534116559079230020461635781695432374174320455418870653095741346729675601531067493593897870185778071979475309592900914862715387589416114030391836342464323319057910228352758393823251156302132497567138430166535456352402766497882492062526064126478835724181333770126146396095384214476192774308699740379846143157050795823797264741117828792484269256970769572049445056455113457727089379595784062882740110669564363391891422552745583748038673414321159874319590519973629349425029627812325069519573386148683900184078106487255073371925133777227258187705101146009877480213302303588727825948379938139134169060110544575272345793609047617493232043458591899998946187025309121855293107212778203827309188012084161352032829580396970429426674144110139041231383607060603898541133399635647966449496379037075506862290916071770390049512576300821131407967552207206087808907126463157572351863037183682602935209788065052848325559712620984060746996587108757954967709189422201257599493107594742365761602172115036134100483684004770604949327756562745142638490931095856996806941920878237375054971815710416734001387223997959804776889002862849707139075083565790491510155643017603996633614089732367644136149805289754199728711981538323658615508256924648291894790268974716199801677310464908951599238003653780834300728662256382588149344305986046675637344655370106614297099811727303869435396382264863504359901449334207842938570529489052906513399676030022486455630607045197186930534743429345508320383383028124133769216508874031075152426492576516471348001165348145113468438096180312288631509721337256121993275295946676904995504681227606969214484275436756818525017306523635969767145997369134541517857054314492875693034867778971411880989060813102105407686199091350025565932621027961669987282355676011986577947196465139945580361678215946313333872628250614421939293006911940168282336853431975244790797766453489085045151329687570709479709491660264439938803814351866254516236586389221712475403677650572440804356551504733718456692989738476852087614889287785477797863105583222589473871037873435162625851232531372089387389880669747147640156333039915532468995309531410197425462301033582388407127677334497053309814386533675011161128331191345797930496366106448892026624379426472704076001673146089099958351520176413372187322398859272546760315157024038961772279323627972860962851777782909431109406013394657099709607378979331956427054827325017915142567247122511054000538148405839862282660665679223490651535246017505112562754285285377837949832605930647579749426279580465558772015335256876943231713636402180247592596157306154138168179266617928259532462579395786605454347599213292995865271730042479116437571103011576851151144941820281146605809847851000289725925656002458556413587304203427596817347675206398521263368061967234054560476505123033089374315288366698807340461353952684082959534843458980936596007160644224489503363419375192546392066929869375094468617720138878316250123439495292938588637877376861736021568361999010486470559441426912875539534364309898715700600578602040036101825237600508766732383770902939754088429837795216036667440799720884390392356076335313793853002394707037980547275423666947337266069113704316145853301906023913637030942255790885399390524868176577267831528638866678184308241296022997232752741482628416444117715893915050353857824525599472258207772813124346611576390128738418737032966310858020927078999313585473299053475689499390522697432131475542598602869323275110522072049541292222931086060363291415807842429163003662802993138922044830099864361674679305489078360111834507219389129050683017556127150179169369211856290531446387160952658844473434234318458133114096949222257753016950622174167262169662062875445813415048248848679752552285021998975060424380960881493117691164498456247266422530448961661667763511183738065000076970518051716615201440256019358951398147678486390497265166546506980421002664172777865691435935799929291589964595606971775399223764436854970882517083356859500035708977182573095239642868655519576497660682047825030509696966962388190142669689042928008890952691162179281433845182491099117017944599756895022922808665186061018168945394523585726002844303950100618571341775395356693144688247141846447804919251873621536492749501435803945070002058052144746261592999706865453357554864747753537784575103684641217462164494529661694910366064349909368536705045870284660300554678786083722382691260337644632730428055649070402595022279144506756914122721147669283417812461942320810308959953680673554901086085582132700460877910567480600683897533726348797694224590017136037065163278130217346705892033461568558959517512549357107574872302420172239792612729151419005721964696806314591980807274242562565784414518904417687957081999462796242379496937825664750176534978246970617451577185576399504593376746218766879721030797190580752470550257043838173787905177447956542686500994578131032942162140919590294189402837467685182928905297120620780427475228152521765147007064019365725331639769337757588251086558862690349446715881841327777919381524728163859207443667838992066874728943646835895518729699713330771224104760004964943326947643865752433441175239150026435500944468485991304469516289493400378588965636475921426609168443405766531033481757732207250241113982945508755662192857322226820123611537112041945500551957149188861357077171039215228763279774002503724082377758891375881995314294210540278446627255992297060469553923511021083170506844643521988349819822159725646829424769296915430087692293766903582591665031055016753786974966206895644530548375412390488068677685316889813415496182257000636341581665024015107061113075378777463647336302077972233034237155608028534171185499562915659627744001244782293214944054856177196793337953696175059972426011936261579735830375812019883586366327509346647800459363883498530981695966040659578925265291574840054184754175645325499580218260328862330721872519929815012518569548268380677477263243932227915827479618477635281118771590825615660427080798148294674278471894071575695701198015644454627383380735938482073182656463586218248728258555627289317730955954474048646160108417350420920119837366194527124271036174623916680266618299715232448355191911846526577202856031865339061952810274096322232461539168836482459292428011498178751910365747008949056054556742060624164646302974519957086669056781441501844341330294265033295100377930240401138512573314888196040482202735002729913111662284873379115034768214660966975826576971896234164682944648768265674608879560568704495673165852694122525338117518884188915032514434157911467691936917678581467918283664816702862355425287185799011213729022824702551207380995745419696597461873402519076645991121304228963130148436224828620966279821587646520607782842797687424441130054617341957590841035822577874239980553057398880808245728137915705938426157571180120436748649096902186754735870696833945196142247890431857023648176398284348730695483529347410577975591359979010928605699124827396799811977143987691313712590720471767786612997429532549978644158984361865206293734841971399182318453635072829686807335444580901589037605691628519742126245774545311822743260476329466276430720737188604966332663859415666005190616479055507634540528872795971949972654086594544209507224954881359978748977334205293879523069947655288506822499902111068042578018134209659854354461422091436799027824750186526144980029314461297016965279995398648592692838541417321525268173519189632506674436195059456915791528294190473661926628574544709202425420924055922943122174232510801001203268955303677737894906718035246140541057256354640560218005125380075991296172665469706032617957936335115424885088159741895208921203079042834870358120389246405018397892255061069506970635447926054675141931263715427425177659282554342104153534116730121000636687121990308818225885765220089564283584695667210999287184362957432124470006705021782564100879350500275296029683746572382844302102931041837042112811625134664417003865298217135519366552613320961085753488892973077484425542634558193208266276528801293192428284241945823421764115692716036879148302637787876164329584855839073244050815907212042715265026172754485936512571959741109447535284057093737809343460161018191540726641042196301024325707422270796246825487710297737621833800978114354220433434538138776760317457652970446874020916557277112868852147848572620788243833440069971816788929290157626064213418647061078024464065454146139142525148886584852805121455820141806535196612321839080756886679049467100954552164087269657216429740938122615540631281702024581377316296376586110447601567677978997272177612602630842151785487229619880130912840196503488256805437440712031300689006225793191303064796247439043243047600645659597676104651814001050151718243797711142124449420226833896517298289993881274653507183935814430344315754411877362567549811510601455780738227468690254682149008204701698465528724305345427124278133957041692564105001475094560128202997007489267327435757831287858559527203286764538831300708413586816067271940017146333433751095155744107833007024376056885629538544806393979516097841178374084478315530025693277787366648669561624333370254484768085592654392076298898376159264253469681857786621245223732700395293196504719347264403750111298456927711493002641824391663883918433080423714822998524693100384867626366712337439265652612708196044716825807199997668689580164560583244125398832742607305252451677817769081253013198305316289230059199231490265480861258248235559778595628405651956070601659272518232422101405328752072705547260507504848043843913086361639408723760931968322010640994626487254881692597336962049578105067814645313622150930142956422693660392526902486222402610138698686524091856452827056956924458499285566819282582132549055584647971469326894040007853380107954106511709303099960795909609362633783693924159343954105169724939429888655036220856030499166001032451371720514935710898696001064177209495500437000430068206559189175060150234358154013534127932206605998327143574316456348302847729271451104914780089409700640318459947198423999356907118237431034364821552121438838782307288378073024673211124456534387466004618273787511403454534455643830868879955296008497513237344400804566001794874316017752791661426182286388168846652208024751197901732758721522110333010919597999823681947077059244031496751061096449916458673276910527797832975602688386055898216255273430158035189222017835441466909909686184690933014459869986103594321304304272120010425556538626193326439458309544114696377654796768864175232824352557753017147131534811710544988241950532310154023408361408992609216221414036882954966403502850655529453852268402577374999778138340651170404673323730828097407344030172126776989302431676813463855492163611927306241194580327930295641457811813420345957907319279456066457275757312873665231403670634498990659535003222241642267556265780509834757613675311056722891982507794669217423287768720086883426036307748166874700831334499876736205042735461388040723900859167921954539487707990124441897589742376616716587915440505730159682921389282290101585500338696781683318783436312902254449266558803488169275842349204681036148585583240789009166200763185047873816094836820652392930419069893818020665603554466333998259194236831153755596803223283127436950861232311810999197458942748691616726050597309686963892047603665528200551512353759972922758643402641899714653831350930581484072329698674910564435096704102919706904050048327131321659795015842099589647872763646249742281357827048458016547968664349429089767560722391774606101912885457181127165191665256889168602234644529897184071548579929640450322540875253839510727756099130691100907429562899431481017027244084929814277343448608586510621735592177345475203274328137220870763952619269196810875535487623403741723458049490062675663067479866520160934531379371580814437439073966021834669459462595382592951862217866165164173650385334478529622557303967435818223343531119484540486048626472618054657341746177876965836357506269800377677661770980755744968329252299367107077348571135505812921830518695025737620313173947594898944871613642105732382886100180565442262345050776018103349084831025224048736850727514528879669054085212961554165433380937605538603899457421234273676902229718304198050870901021814115039190370626634759952952524458196366502821973722884892602509505214671549575262494689650995417222137550540919382477906209425317704619446908149035042010570840012072726781009341060999502991385499965286935207026612018456949766364919280450808607824251666690693640077479594900676183181511127231364989984049336896866598180823876652987093211450365379587804837367974763877269264434800064754171764877628398774528249650753949186881416751518015210502246056265313095302346560898076605128651604788514762297016542662650516387633104325333873535776823079338752445704532683447531284699814729507777397040221686584053713798812233336838625257252330223410954801862096660768253625493564723995521510237623035590948974653663328128822324163207774612284667255463759293848993969810422173908734073634773473422436985989437747188142006636071735197357515114165321685291035604915024973094787004659060498949971351547361567353620136207473325011316406106216808940535194598536135299909856628231005811120433367854165523309222278965501256412500656189635284159448347398739443893824302873625582418513391975036615622186281843834234654955193977409751251489508895272894105667095296820409883575603595005493725357511916156801190175330330046924939728988239752873389157725111156636762729680277719470632955364464233172448787671502422813545329498981780675887768922950751649868598540276369076692578586937077041030959286462618263483698782342486790987288719218919432736606749553483262075383877965939358204473126226401500979044123010343143801668421054775081573843676156133002184466709434069728313409841592047696626250322283850108542602801111730129540950303495904420425045836476233306071287070587077082896864688373312450950988877678810814503259669048774857734787769481241550080638839913933522823625277048944351308064671068309536186745638005899371721306785073624069657475678385269058572425678807959228528618125478900091251033757988017206569792837517341791140267382494102749700655846973147716095522928084481569246088773703894275639186361797534067825311257109451449348954717016118544644524110668080579367439736807231071303266472022984351410562892854929852803989154969479721523244155577386315398725736087267676967612008270263057779261745606366753395687786136281341880925333453599392176511550632707911816724868466396573439246897883798987622231789187341932828758710900256440732225534932019104586785401530327759395492016093525848056703308301039249953108654908921998086543898731134533368534274459430336727115178455572607899947372124385109508484042526803951390421284561226542169798981375584267945302447046237419777363198144790854432840425370569245248881862756788111412531452178638909603800116290537866033312530489731647256316396990902891004401256848743367401446195358249438508205804235274054362491501350670507609315257657440358246754203920896028832358330483343013484395448449499187940263382126014239953058406020064521559015401598412252456617688565938121055924786501795626174760504092772847092524924688157620141373342194240994149604876197469357311333726275667772441976896835714198213885695039918586637477976776013477763593651655960784746655014652264573506275329005756203101586859634578078799767299842342249282518681910192262255717341092349321219369365048900315023070764917690471351305475213956275186947998984494363992270099696825178156590603041710628721189968561960146271561142576579129512788950218864199305913641525890463745647635918658723296363706671138447764143191849387196239956079439242903697234959193845590266350586296142463978894983021472333689032375498880298542103778148539403588838314053806440754588605806183308971263365946629416875819689454891051333794366720302821901188207129096481271333835662457631823227928159971277309236649782980119865541227211836984751250974874055400801527460485740383230539726777047688168668119030499151212106627116395218602818971251803626104236399495078785674517472195811028980357066659134655579456786583624197680636423624423527994200517659369696460863857630340176986266310249568740621032170929695376042450893319592426259105550656424493214000334070434344842197591574159184353542546851748701046099733007796026288367225882813102750107795534966567986786854153400310784807950648404670859959532701186986446622805833804886304186151896031254370060342338229148965377898854837157467833903842619976045967475782682669424352829574300304716306094462668561788091229123262757323748757599565912279151169354359067705132165653410733831628728964385049262936232359852655628846704216056967670770425592593806469145620655576793011235382406273111440885816615505151362293090039820588274180240351726108601764041412975938225244286198261482555366614260348772225349875304750443779898482145014796871033276148954167954946795560333047082787734125203066152937260909977398970287414363089156543918073667496908217621430754292835231087083587828251745243331068619698657763890357913009491747760661904002842139293509630599880736133639859586062379600327549531079273023307476391720224436540080073909440252023861854362441298977651412885603822983425670322657429736794616800912931326589051474030832068673947353359741106155215387727558015891915439378131309765819531579578184758873041779663557159641090187938050796534914124128038963713469281610855474583891984161318976778556629039875225888816380150229918310502272143938787954869006048509388441725460565722985925730054281569461821894268969318613710812140171526670979186534048781249423337746304455376732472306007460737623335094271162010803244000810817303470159794731649716507075422131486573069186086354852081636287538592511615394364725742485893567409809373989389308995464469860407668731643181105409139092477581861350630090347182489985423173018207578404993008232761982090458704117863738816348027482058961297762426907641687927455537901467857214274470149678742783957339651326645644592418909592437593960159399434475465783171996719119022530243651399857153958414670383879296207207415747373130104702639615660750112267485323842238448788382892683169290287222092458231253014726985127419875794688385711712972872381944171839316240169305255302622644159741088541068785478215874689077335433086086346291541249211206357586691240163854420653465808612367301322855482870908030940399564492939528290633327983668797496669464267571782108603950353806255233975098068972745357896740650730344392046934774083044511069477059811322455203140344275392512471550714485173113400265027798842088716117644724003596573345322337107347256714891244645577422031052585642969250666769835093705797437722034409303408225694710553715756146939541893748359068304441328680989940462876185633801350062518635104151940694208609003758894355582421221827734790879345532463888833114526922517909535402408264186086931647900921310542550416193293715907807611554967031144492284765703047566985888157809718163966440225428401643318149172259499431192645604328364837854806811237888702795214244786507522806619636808650868317505257520195187060068028798986091706608202793340990123108780737184327857555083065582486505147900655685111158354728959665257415342963498206941069459341512036900165373111580694661149733476356001863592294422766653124045947588121473125870986646419338222540677437540168982977739300516960105868570297611640933179627041388293786857645708931876954416381085350998806330015779503135132337903091428919002857643154401967323759073822675613266216664517359381166882542968253182120323780655879189170668695391987638493447458463586976212728139863000082082626261160171190821155434993806361779011205465834652379796793163785616802867999945307121182931938548235501381360936475646646942779673220226811139812460011483129385275746754886142410098275828787058872317867170445059717359340515291037258032509265165336608191057628624035242507473662487809431186414673623176063654048181339379262632253659955526233555254950640584764757048658376284462931927044546780643793199578241488121190941360023671048669326464502966866639558158193241126131010883021831867236440663892069027668465513122124396108313394094843633094323859275208401155422327803525943230443644719734689027174125583940758716543827323744080310826429800237703426993755295792714675020480874583093914426417106102282707191364186351821247840640159125729061150093983848655345991583911163550928808398354710964794427400156769282243106396349866581325323547299815098469008494196346808716504511547281215497662766991037166361139366373060330662560009904077975595978038988730608472026164108407864596991998439862126483391768446035359950698075497997941260971020748548092555059360997084504209940776346297506602880896259704473026365029390969585008571548745572074052924918137111643965374220230874809534367429217372565085081262578805776110174415469204102831082729894716333857648752774420409394245136032592401182068001840978658323617389350728609036663095374522089577970882197763953308557332580654658962592222034740491569138171836944665544845485304494840607102040008533164655758357332054340040021690540640599067916997439556448813537915431889526686347855907837426955469058662170573456328998544897930816414632775716160912906026816237393772737470429421338692652405653084702268130078662255890641265146629586158731725059256652408679956993430953727543585716661684208468963573382233988139137922734961448085826747742006479699056889226467147802947926461360564433779635212554122014678364671609193361416691803562511508865877176352139239157691781720913810816654249282111410807670303471477967514661228197264236171053402522834950711874373108366877630585523182752621735158052248136235914872090710258959194469616386794726805315543024947029912070125219958808597984783919969577994231074134218788395686875957058872393046194488598453004923244786442769558213685947050609706799861697884456859392246653439757485338364874454935593974442655654405000047372058659774515869262964289033624993901098775263596135893609563830121533223065748743156699690659067329362039993940716226756212511883338744677255908800310960173500824810727030578132546170696735311886228135067085283825599855984714921818103750767943253340477898072373165276697800133237124645225330571938997992978818401669658414793114953305566026412245897656389832438927253715499708058415780012513835168044078642000024732838028009332136703533951092374258327730838600773610082511274016149753505603815953442662769993900454289825610374776662095980523922412964499054111398725405202802154245376248428870551665321962966058919599102842710988993013803011892615515100485319676778446495160181635802751841871747082935646958550566001727464757079625285417414173008528682277503193248009810922694320921273304036737752282885191217747755626579387586531420375350683655186429131277188678685179920703857201571525524122293480875597415351290447566701877471331250899268710533277337396656428634097090474287361486273951506061780374203794139534680417098649240260310767120848438583965417572466305630266981818004924589542352869188614217678680690476960295516708630525232076311314041939508043637817877189927880189148602553857361459165795857501437304890548329359654287171323396158261981297581369053188594080204305788007598853308770183685189256713620854056237544129899574269634889436281414532773974999196999229102063383525166720880130666670292947959897313781972475784478055732616268605109287023207869135423716958447694795220354033889390775217668099126608596190159321068858166462685687289661427686953870360801744707716476636668814617452029560092337767011426025985191165421957714743526311428229542942615809955340525367847843343868582022424567668382937562265290487956392524577509429127561879467061568934015084972214572816337520536211095578407755673642320019755978579110042700399069491924687792539410305692224299395410625229240616289705465092228051387623386161229771518447033730327776519210450685594921550155599805176286698634315510685288139793541537939114082384626496864735877020478768779384455279383937273966451172433712892833545643123946593742184047572119683939012131937281171722502287130250800113231613995651501223707086713120033587951015497754823325306539574293644720101712454331798168434890854024435119285559548411780378717737600017328121990463680382906314171525026332918179771152946021714835624105773998392281709219910336943613118262139986632069280407845182448826326990300743331561909050387193060616203138124613672481047746448504884891613495265956955167293144332312817717607418232892559524497016687872751064648299134853812600653028582003803306937617769363138766076013195351029945126094135673925560334718083294691521996336434891873826246027736192760937565262740924756367385285189854213697414864700874660288383274868496732206206212391470644328134071010944793703689576137268258546466258776197144877516099963001931916718998414915545053601291528184919562415964658312770840819352378765368501195326449293227892406441006316416350391295392840503311688562062821886237106524442395160097934593687210755206411688470802199902402846322176543659493108253676291387931486353562169852398677770590423951125189278978792224036333111651106539079688486123278067964641025101605981214386388805257589825837346601087149740116333479246148988598700126430054966747474307871217810479964805254759848855641095799426974904707608063787066485364110921989792489950481399885549647415720809223392278716660869161194923930551599070678693537454536811154610337207939615402509794884453622775334914986408015899501739611068717000377919744945151144324504672280650555005605441699949311780057173990329861793728504013489831482414631333988540212429803725628926488641758091198901824717575085707934665022601363611798120729474568755647923472839156432351784243178679791320151085140807456991441288598640570634217693207378697817691477232964863469546976279706643924823158280495606582448139281885166234895317183896030749864954377821378939803552547279132863896889817301179721753911632190209192333290153716151528770794194591241927118744940402896939176540719367153167953547181101669670298101540905120415495711094688304436614754568555067693986576555619927655451107963176312320569682375751874418325076641055697101703720618221619693460010704389418932799409221380863859815939968762533296944228465981113233251008373487204388305776036714911706921095032757896181564393536970281897303549229121823478087475186551964720494208422553767201024856860697713418337419818126281067109196826158882901815825228032059926097285305071053286436564877155607699083399950081641644282042337674559208740387063303013226542100724072892817433322078495727671075533221783032036556568838964705343156840757836327615034899288395426525195093954817118968865007198263254189911455523591535364562905522990968821754220825723812979668598517253351808270760278298077077181349669719971867878909943309306876385877759742911687879096369463706088211183405640945870624159249524563154107537623346931783472067415318902908142178865071865710229354580284035157679742929076819886695876132627784406360493144015433433167179707036694192061357281859299725286217350874678777454231336631929869869814139490427385891987288373159210461768732319620442031975722155080907441625015283759483436627083860144414206583033305519202493214950450439492737631157531386622809215801175244606195724561317848480234843687746311973291596887887782804810763384889827888368722251041552349095111326557169413173808721214439207826892401635986995379583189756542258240759647553150368266408057007885960246195830301431913074725985384490257394154849631751304827927221275368480734048025998582887640828528681268345156813538908103498152789488124561665032845687438387644642083079357127130150678957956137789275446091382137193018206688520236189547602109360563081117886650824771946208664612268553204662604460148814854729316471955238247087473090398677396687053839451274612300675284076404780463683523420390809250189497774993185085945549645481436432658772343852861608502699486383507065263141642797987296707575184107356573103092117882569172743136519969500370820315807641485581575531629284531893196223528190649633410147921674874256832711765140377991428557683329155813166743784434322351046215804703300851720132155249461164640451905744596696544757008081455835319201407368477357907750566332982020287482940376771976778723314394693600220604059660159250072792435300592247278234590235243889518452819139100833176681786798692131259060996285973036692489959003108115655375133957314218515025452937137674170596712375694553012737789704975425960873053649626196172450776278067005037090872783606699788832104085263919115466177979530779516601578592525071688088559220419706557610858766552983821516652351111940864035984911962504254344003753479219008897898732747605995540563350954389966523851304668961408193641285003568900590074367786383758378517699878905573632095169134307879289499769908035629599541309528181365154651640491053483701016044717068404044958331694052477273958005463083043201915806496264293706105091897634075714836585324944360894828990409209102927334926541323145702441026311292352544870807363626691415225147812673762596147091404821598615226111201952141514884646367618986235717666995235292200135941031003877790794713056995986061696729285704232412497020391068282385355959254701356169867588109497271486546285620267800022036147819631883237075234401783731817379103779908517804753750737438667289113433086267014863645931161215964114098666327546468345138141688902436081160681516024783060189762078203960758287610206886868705446849163805320553256351546685992058453992348520974615685027470917164520180765405743308986032885092413911713061135231012390560012817709765552985239708992929113791323427489182937958729017231034706291802869840568065768066148574240813970154121571500957209765058650266349099148275181203365101311602446794509281008917525648365090818951232287545888853450331010215885662133515201960935598387075917748941113209306372621417215010468439097022681960745009433004394764564633599288477814313692917327900494170047989907621302022463178871304775980256648465470342206195664997013766289465719964831556911894693269372857619318556581460089038769072703596570942542740886144033140104397427928745259187572227469276462227601809851908291804870945843594204772315511231388450363542956323123713662748321510733006743546557030901005645085416040061151208669698873994428174861055059994012307187011859029324269874039047930589966448665988364877003349194355744383865289844984146941283295647651487852681266131402907844561619756291886877459026517707980857002112543635152316814609364884168699854948426185481596009448523333446924033272227550719848886060730226279221433534130495736792442593816071144450740822362704189975077881356109370083183950131632601060156243658934625768449245480985982487870717371725166389010093300403167883847416657204045103109853875728562008803419458446836954819852288205269355720644129957002101566223490608514150587925153229906264144311014116427196931739716753770602375538608966771262817328469340095513392015449320192356486064930121094310951760493529339218715930869099085874056291956803634526981336693428668459066329515212782540790482686019761520136566257979626482421763984805716367227465298509952074515566126838393955581678762095872787637154607607880984026137428423064906653724116819774306969458115622610332755980477591643209044360549000761741087810611664727045791546522894324301744463658749019747740161826164398427493732201718333536150155129796707973990852240551296186932765288627086481015151850555965178974199606657760470926291944762567176006021045705161592218512954947020252502074922096177051094783093504875162281122786584179329697609580666949870036734795492651814174876911607058474211072789646118224860757013842908994744798251126513465217109648334714546162923794371712317056405466467419630564164000060444679493647074817011446598657548220789981993861619780678472213636979766706406370230249427713139026125872574122593293371085072694777100573101859905335549084145784575459050202036157635230668225769407527769837513969909116667981500048516920765196870249486431647360162370482256088510518395552597171988378774670374252125843382253831190569426370088503641234442517991914010976011928463850126235507524227086888919765583019634297600426750753198809878453722681464321654673986575239544077735965504646281591198792858779475589031149744508252322599120841932844748673275645116941223642826413096031494842069791227106100838675126408752587046867970820004840031561356891714714205648608178896529748250321069142664709261325485534784657956554161070105119089124142133849309182827755590467439542150248409930463057883049733746466210472210359507937878484512017683108836117985310098032236679793740060577562883867234388290782072728360678877607490903516361393196280036401585872283503908826991196073086447346003261211689401702988329911196162395166907753044141877861723283468547397545653693028271517945556538117725926537331636284701530192876570571605518602459630891886979924094923613091882263991886690535433413928897568797525789914733641683530878268740831008788525588981450274415972061265869895711324409754943982852991445692103906676634879984643832221513452352562979171581581273150559680547548344116954377152072089629251073022082156234876858991339549533810585957638977105664764687291415959654661365803517725768005767416002701782713358241219209197568521580035431020165422095779775877497608647154780540287476379499052243576651015753826321382305872232046660238238316302788598623953424597892528798400336272543153469851153457412477877959494768789678459517264584440253105253887400477817490693033406675736847875833020669854313109916623681924096676088787063833766932966805910664277891127219949277687840928967903005751295025477936128319297981283862566529344651206158382809446104956174741278568335522277710255208406477514215197674728633841383759803996160702278824462903366454551368008189424358129984841902494601228484419501874887386338155923746829522283733815399208968392820938297583377910736673509760110463301776901949781368765869364266655016591380241670351724821181303591231144267747470859721754647561835966441237932712294455420092752566324734974501941402763622749752750336245284803870089836701104620097151282912307993834611187429722747078385198826679899944173307020836085537780921960204122782105900934612172912286198350455583881063867162470687341236481186762131238645841944516662967805478913020409432707956285508476999666679085040183829225744672267962643214394058784705272225583019489021352589289604315739064067369371219630239622749445416581911495685678229971922589868739005273208482679884755657106863499881757745076392743798436447837524062976968821542780333085473514241963729112976090389818954709428856947224538230959862718944235425595268475995825763139914247512296989192095978181151522512958142992789783543840832039307487635350685667238475783995200346052030394330568586745821364316676326860175115451562774645591973908106946384621040967801532529544357357682235933493562830596878731764629281826587073028780078649065711044077686732146087497818004236871032219108479606954930764099144002401831361796069295964344930786439679469325849400630841878490489296236422443046676617767144671383183037039572153135259730815549727319921281737557223881954801032416837841361284247238867841515777316178007678705318309390755702201384751327756927122494185908971928593713305438198164754983509702487662323608916440736263134784562738788242924344116053366376225060787410022939096783914982848351460869492348866126589334134957623524549956473143821003075257802316353713667186980382244603657551000347200280892707184141865039465809744903981376803537168530347749300913053918048378582228128534963702088134397732951808427244357816522218614401706590437121370429785173820161562392404468325020459746032861815258736647074725407295037631302857206424350227444171666535101224765084243708274415863769899420070892627313472277146865478444661632864137763761399818401688494733769913199071176116438478656040612968995636434599358842694234366808010670978159769100224840541969739962596316735707873323014849210779614327668698560148342228391663748901392332701650319522544987087516536311094997195832538622204270493496076175306791026586042238385696957289770926801861534933285194203270923199940608284035314614935859040662212718868596059067218136436824851983053293527032175138022581590730029944599946971563092033999663015362971682797017354711700316233740268512917559147796442768168452797096808743280123074341524689383143404566159077661971492353305376778962331407717008006538203278437990829400756881802900491432697656083974162175333748362560326350555659974096463744954754967302813266867329831263976164746307426219972636150154838470453027862407782891892256339966660505304233203418056890266012007797672650459405713401157609071210543153838940284221743504858802999462366848022553753507183113194081157448730690863937225031510069157414674547399864710136680354360919760908980670874829911456112446539650064457074107739926986057320478499206615119185695915945443912514073591660175409277229946783738902140318277800706200902627657270431974937944206489404148994436716428133858357893111179665536958773283084639788070833217689402960106362261911277502695782983869745576792026303661036552308241396171323742760918788796061070734361973008027005573408775073841604057964098808448496872300874449345558468614991105970616987147088638058547069313148346096611374747590257981351564755500236994231724764409249896841472256185343268228650249025078222915268469700431710840346078664004028157143591601453106806323235351142651939149925242441799841202457739703743076380645873849458912993053134011638193423403470693458427774780875725137529673362213893376627259356125172207828373164850852372742311858521882039898151390912099021496027945799026524186040836811934249761392805875276726993662660581099643331533438083028289641167316165180145663606561964119634505653355720507520994439343597370593570040221407834145509006093692275659967222260626591625479542172303266066924136663309473447257806746241055389866923097021194753816253533949604910744241443644867301502292986223430097398749755726328421854575190029627661218772246955994186609600515860331413681129791099569017862506752328850518852314022079464251990936647396038230516165436951683111515510961009242521490383263293888444573226781184163301425496163738343810059061069572213721099248876824973095794285662483419879629369705349140766754959203904573190092879716076797699521512769111759945858597298450313620161010573125171572946438403017268104575350906861702054570386566489734961514664965851392303778265111296887824645276674231453570545406784996249292061990939372091082159894083562660271467232980436528406920916880964888945249127370769472931483931547445828523319442606300851363097919449471517329571948526676516254648038344656969969466693828447341833312124583815660273146459217139293797266619419019241991289198726694438924690238661215686792702701388189866930594961893301058230790834707786412420740069981335664685409011697050063703149738503832330487678551744699146435789796091607828164466467310565797266491524475894891605506667005999508404283432831430378198569663992090188480980414285546411784877808513526749099868076963567036473535113215739587881123559504745096231190975580325370715534900615326279369011542820053623433690377816485348626061180444017633978448631878881784699722603660139968135875212192030944086703005164604360694462582566766516866668437862622065694293502122887223781874519058364835585798998825697290427692488424078037428695234114544833376564320276322855823045671720106187844993123395127817614761875309206370242966500196267048591503243337871817636159240290685780315479964486767249861135352366312003777029427878259236978585107843395862449275291088143702423402610906845058146585074689259355985398872112787269191361083338909423049188884746879985363749338131417106942021971570479798882203792502008987500864305788782615253997734107064603387033522669443027556690791397216683612509994612782642927406932242724527421349603464594811560761524412696795793191233924967200446404160779557007071333184919035937631461085895642716153454392780060697818686206449370755911405112556398348975872803844219932058917951827182123615850536883983491271629927990178881818914068237022842840487782777332691737340297898281665054465857365982040234158938542915052641921241824949042944485486367667478039186048967983630312735896705198513417560954062491335637894973201741432703062906493707965725968455730952796403621037946399460697713762109326355814164917655647125688474608222187849560538175892399727981612432559200116301018534405006820764860216977356447772088461032806391437192442475449714240459793229525118387395679578587412739743426672935868504399785002043878450872930501816132636272853057302868215112893530014746181469954537793669475224010466125338374130494381270476450318859431951897761297073871549374874635945296510027718587318910358017456887289709974138065023034564268790057012819207178698297046879435370219929104908731325942401839433947155913838198388622934793481296383638108147716685228076445513733901409066153640573713707879030606777868460302179730711555938152539030134384875115811537714408483748282731233291840678368627262595660697592325603731746631411084187944102921813530546299933234027203283880314491391354112538236357237823521150898602378359901554974915183892735849185913328538604706110399504915889307754167231535838853079674152060337259071995726837938820859034497575061461676857426759351765794976519768923238606002568833952236655342459639324907987144295198431327295160975284761139452465346796288010823243820638661559282362082486378717636065022143683902649912734901837164631074435940203157142667019158748926711746168954308625339300117362361755766408348388916887084536294228160415199122548641125049306733870118589332879202859889741528207896527021208968142894103751007190873536484317548174089983340421971316305159252698567157916923767279145375342874679665440376863778858261926585208001378149077908895987830009707331377880786131113699314252722756665741300425808015129271615111465634017503835924644455444911001721189934464014427015111839158741047104258142772427045484716995857557061014972422846776470267463336571226825963227477256934994132893440203754398807282970591779392804629187796040092249227684572969338429057942215898579803792349037796493856760709961504893281508593781327910854565392819909852535962038609282224448734930252934910482037093404081619814329314302886246070980437078615156338887641605724544381412468195166961051814640299869854153438127842282757546670157864834540983407155793430823351524266355057600335656307846290706762534205382809143029964658515369440589486175164909691516906311184248799786357365341411930631598643408273024256823382910332680653658439470641167569114700461431642943032218991259946652753467123838171457054107542860345768752144418380517846752160948111509417078483999395066308117063225763651971202727853603703810839142687175619987335205466436196137425100232950927258861785136842412929922277586088504750997753749597744133831831912401604719377274586175855150765932661243361770411828564281685694506304612066271178189295237549224877707156966148111085141417902022918577210503916938742954294153237507591957025131053853009657154879110549821013838506507349726207215937456092001956461711580710952130824134028294193239379414567020112883658859566198509202821306378173964811450848946868851689164469410843300988078483176672156460603012117699854355814060921212001520948779787362241255587787946131341033722094669687887955788187324085447514279895627793860800141147452398407266031383596492953092601089920731722568423520909109865135808125754162269475484134512908203214533128588949478577506834666079527277259908855111964394859979691096974996196838086820533750263266173365403174081553733638187474781075334522630163955440849383912341862547011436451416718898823254453300114197331710510982059336361568086775024012873557875937113824568856509115154135616704464379618322136731667914469299047675236386444516632930135388226461955857244158641508830655766014212589286997207204039331512809108562939917885509361376975126080706696653510095323611273499868028732490715363172950300930430726235996935407706327438489639923147772773514659414655505187305823092312624430012619686365669846184388525750494125864540481206719119029182668192004419645882187607693471036813094599848707850454749030320855624812062574631675771147812312524472249034029336349124674147702906682746085422718159290406011830080430759817288747298257251970396348899711930415435571122256082011191742989393760304050168294211228533613976153888184165825658078593577217456815201640478946404185999225105443575758095001057125581145285333328670973652317265535550225920207294721526176792756457209042354392042627182299530132287224450978369214725169219114630042709965099594700478838291522783837751631395947068765230877889483352000647150940793595246298909850994449896914355236838347446918137138642243757762508223418942294532175600515330528842311698929393763352822734331027713708987911517789836842794428649732843702418683215648538644695264928382997477133349223666450483739654318104751954454668039566748057553910614522728497600569996500259239035028072381851225224151182517566812497305145335015444200706263096419703526889382344833962391498618965143354456079247408791077536390610367509028261550953754999917025821665720625746491938282535204117241489469312922291309906595041820459648916495113383771737199984745811058257718464569572638919060904446004148676624782160861472572815288107107853123420387279044417741358416888972128080168888372316930450232423987862342226328434258961555100893018858000180710778103746912045165410991330502442328982501388030358675499458222910865905572860307148516662285001354674505774174123081550717810215495562673206400383497118293093099964270615055161953642553096292377769947496960600516313285350457722135669706646130047987512147621900278740822141438505881676821114176242994590436675262893266178133034673677934198069713504378960412783556408639728520892942192837494298477479721991290465242446557080678202078111857067382743006848077273579509919587932290463559262760728973380088887245368563426023450751646306237372722364513344299513555931634981463119317923853002742928727427803713996576336763997947054960414339709074524622687164141826236235549735714700621659179513969609581771610701919544165283495657220697788389197698480456694317653956388744884060403121227455604177476589628510657132490231579393796939035458657028112971219536943454536671746039536405037976441688202994861747164784383848669374815334531770968221214261985006449958618244866436726046943636589235279344185123108116906854042171333759092098867608924656441998694504410403330432432680416752697574984022791644818767850565788686609674237639125686345513286747267210834970374663805408814701310394406255196932204069599064542577880935471026116148465563078695027360928428011720785019489646838733852795705904828559995491187776554072626318565594759530125801891952306067745477079571777560172658067020078744878359571820921569118529484167611430031898226050289312950854648246390217437840236315770695348805968554766994094303076287959013963172344091674816027172743267702920783170481213317829762297823950284841390979631067101114588229442109759688101101245321208461113414188019561798018041935660019913064903011317526060159011092178538435272688908406707049590208184390025009456180008619093206305498751875833850421943068455447832427177605447257103722071192075008389172450520326893987531930414162994801667363628039113973730514642381525752655249368169360272024545971014150129640059202750527208731109675650015534344965592264544163054851069701206453246986815380483382011581475360363091813350078391644369119464143217200581250009009963319839913559354727177135707298893689047302678352687086068454307095311798873427057342376825629321281073089876436107783810625059357714944982332665558069063355002834513103921885133716997877415153160437831389627245563483211910363934063865100163977813130240404629685500200029041926341836930955184198882129994332546487143593563221103901460284377840055886573668429755282817839622685905406496285409860115455349419086276682643017093980877373926110052169979755243544916593453505955588892993270191711859233014772636002896210806343173006088904142666777625011807420210347498171189693758773996339867726746359053565865360585400394895407147733017400203821851930879053631080698492102810501891059210052116991020631232449162877136044327696030283240480015883073046113553047748934509786982997634235423813833143911560828796092432659094174230393003672041204210297701907105728146830018737059103168617641796570375776194958793091915345384639805397414940428177782806240587126405856547428559441372471220989855931589859486121730131313859647559304869428848604515878719003908782575546746410061512382805151639573508754205223842777381221680179938086296947374256912808259682955742477227959607235876899007889050945305003582662814477400482794902230368804943434657039157655993071666414692937604611503153901958419788278773350787088412383759380470866041480843600933358313465039028167606075309604255777592129249341049122717601451888362525085025583179758777405404600252837831527988317726288112426397654461914600249005426131874575361808448665220365916889565488469181275622826643205816793840044328284145158152911078015368218282107203728819402342617631414083553980954339160984318620485385881310197767121588671681661238935790866035511993548030609301739660747850024594282797220674631256610453941970441302864645401872050974801876487113897196224120412096361625422051708255045313754728266146892572879466744128923646999624355676871693565963591508443078281388086554616129204655947904145598314484635622791592287689101487376069707901020539721047750153584842102694256052680056030655195216656469028390676485123413281643159739099688880282878719080520011909643652166413813197184523115357161395119959319321418274445343188067012914972468843305844779700630217928085657957857397119251366119538225778815564703688386218315025806461421961782087808575968131087481298619439270287338407184472376735114488430294811161703582835893573043097056375971657285235315859067853545419813198994913349552479249539908351827980542361603970519674586427462533977532140063826385169942922228130854761968177140291717376830018818321989631445093326838163361764977071339822273078190078294563732430755550583333634517637452272781073442411715381624213064314909269709020120213292141006540515133081380993514575690103351278671436314577465762823925772004450742483470955437463485139245875913958080140133061213060900438500369905840989243978165483138006658193127306708811341165752861183354195496117772034416547208141869929261789037567585413371341953487895173639778662198838866960659540729820724372344929396964728097329359145865638707478477880245866526878056489432729444203072194033095348751832133000683492704629540166465445788829400977481819357917310125992722352938815379897176760200858633778598613881916906942200746696010395077714655421232581369410217124179487638517928136606936499613325134940862077179207742008140919656985003225797579058757715085779414656022910769644963638509223880875399230576469496675481134256042301960323816806515286691224627459462604190934200098353438744591137777260573335881851940923187975924009044939507024799685317290011249729738208048251006977608318660305992024558355403464267857145120436815195560797754928626460537180693940844139273064003636028295073447878108329049352915928110496281210245537998504748067693928178291226014869545608147246453700492466502724018173489979939993063577235786557199095005440080884551172986619348578428789156881794683675378671130966173860042021572493710587680112413549400150328037309034764127280315154921033154531463559264575238875733266330173366543787124370156183214662355102998959302810456226313388263912760682503340979489259576568703319768452034480200552358636974629760574799076052612421727439772364220066740399449088207658483061672292963197098937350663697854248504111332187685850450933270109150436230119657624044218924071107499140315954872059727845854484230966263594439216323544712968644146906927088744079734459263391214512964709134260669451566695178430784803971201374926695562769076762810508706314160297720703837816425941328924276500467541909115973021699501236019875427160857689857791634123838069393382232678833761696796442945551539374924624405567651536613354217464634301722487084150935541376184225888138625124535910147293733003730718176691129637992590315225745712145148714353226285376053427370129692657142466349942873882813423448178177216921559480156187824952620071697682830558060620674656639765698971387673180012778926998635608261031935786338825798430567384540431391674024467878768144765980644166895130404085617692665987775360539608237250881640885197286399451849985233773479295886446616952504337026109532134281090922794924032168614381901807145410406917370999567111915298565868076376941391583732136536270142478157644457957926714237896130564007776608123644955803759430184220818143352814485125498358982683228123228464114736855660989477472045080111559213475698157062062057474339056950128883589507778639889357882752588918033113335573723561391870132537298491005104614479335236135595431104463170082904327222483915285588177894685921256571245774526978776950697531314158399282913470757788537328613373936136506502252908558431558967717846733816989994615209188705410788678776736176135922380774193261689667147520005744324159544153860135809669833965207078350533776265386614887515010659218249805470523914823132051527209839044998168595660594155200971614246421525355031795138173730587017467415188655303758653466147194929867140519600853867834294072156409397255662314955613602987370742534664410104197543322326524709099743250135193859872912186349416987897328326628843105986831357739264842478826356548890104420608902921446045441862221122960703431820891578381253753534567883842926829998751084957022513220436707445216894917093561765360841120446580860748612288226476183315001689803410584375833636459236495563010656114304382805799325616097035233023289787560398894181620282579517611649308850641650507094612232241444933927123660576187517075469373527818976324884842217028147854374230818330916184858534483159617273613158905544966317376789257819624199389194120657042743717431830457809011976636645217537189562009065966277029903185236863917683008568674487771478116779364618677982772604492951365079503471078927812065800129854132200651569333059080005690653581358293035824343878290288807009118419796002762121558476092568597054797297104362479952775817352757417296995704621934221547171615631593567363922879887119976946887673849028581485696070159395724430120983860361559033524121882930992559670714448430110457920862283493635404045675618787972290226939918763740046756088393303651149703660430523412757497331146345592568581009073876288352017198818152996842052926430721921036363884112320293877323078602409015403805611400583336778798574769559308906319447243186864974483864468690325466080516437379099881758589343702408876651116532323248141118347786694828875736225175743525574692149900713361363559621603889203461815756785267637773070170837234781874519890626608111395808926215311277325938356400547805940845824204471551505210433475782398202282907746121568610269169002326718280381084134225207738933593170183749708590997191618081439278765530866105694225331529235854763003871731679257153113868872069797505883668915838002637504318977340415819918154943874810276214703059276045915097228605708146982745076945452547171090891773577844907490051213259245648377505232129410820578694069916315746218418805029682509178123841977720154980390824691575987450660220115071317372224003021932036696622467415805737447572770132328016940932917246322473080460104360448065382874323730120800279525846970539432389397001747257367768461890255278285815495037610932834638259955190912251551205488062457502141196316662019253377266214854243894370387497661810383679378649809160309163387154294203231588184590660789272797878996226818109520208526298317107067368619293323497416105227048387258946542418869728707055762482890383218507358806512761527283175355716118727539284567221566622946081295769665887776802349865118070821697157970748053383227406938685354588509704502719183399172769464622843683921154267754382370328764889559730257737216159250984368582101420479350053742176899141578133851140677827998854172495214118174861263254445473964454045685928152743369960418742895452782274839811740476519918278768202981195553652024260769030266154148320785539932644887565262266513735137592453946339690577033108797812863408996219961769942170008127384192640381291237560723160919813250452216118865299167112376379337530474880559183522369430110468964550967368521135200885332579958386987524155430455288784636115682023508205770057533750839297841077628587316903145029114783862442404146246103353617144367483431127785305813132281934953865450174687926217591313016206548995851398801918896405309463512571099609409923598339986775836213652103114809093797592207560788023132134072189694297222689923597538201039981071852612594034638117892462436149886523182357439539680154188776271410217198918037815901677878927586868919132300387885987433459178843482673292987601003317767284279242860038770155958509630950416740760876238689591238494327660503695087038635453987832611952046085845571762010574203994047703469885084661475983237575596646661272336725702310178362496898163651162623838451555431687678996788157689915699122179173046692095030169817251834119590947883355511373228596409050671128009941249011346577258611074096842297029292947461438593103449842113682757920149640255836464962124884372593474287340252929195642229977890270874414064454258595229205112583560457353802020588094318356525709199605094844090772416403993981894422762375665455980037382881544687561191446573040754819027439175940044547988686691838011820988882993325836686917034498307129862703340758611390149148023641713565766767826481866777301269016103447986836428428973049995796254246560181936857177830740571522047212718386982856540232362111698143723294514768084952737089983267042360189282597161999057646599120488578964427913341065177500422700353304322801422983729925255652601712826900813267172540627330183244651494417207516145757686298662796968501818614238399354200342000115236727655805769817328887242251288041976362529450405679546212476595566656653038350492281712478792938819592434416983243053060728981406608157188610365435430968921649542794491581900161134769033353768111015860400388615122117012816075238543442081828749705044279879362418051483577015341590594004637191956799513824769696678040481125379361626364982906556565917226650504049576413605792385082097718376910417156590039345192742725823243205496352334857395449678877865085462198350214754713290513637634890961309256016363654505850761536928603426457135111852047608206192898216133870014091066633714003030352638839639563753811306259853251458889713028575962206023908435010511501651254402896900937105450092622271735805547423027439633728098274862409964196627526502467334919212978515661191480895798357531273097674996380970063170151273646281812279687814920303102269278304341526797469353648700348129097422038206788969489852532266507519250045894611099306112178228828752428559982648335229109156769225114877602124565988400526785395963045905590979212075155017850326576738588331415143312426133726953485766882199491798863341377173661029898163293156391866382534875312463215900621605914560807354814477551365752298091783734831933045477743016027838451499784648481653017465314972095270299472182464508449590424402541859517864785312994680227411652134239696918134284379013676895481213513329751444502840891142136807141811979512945307772600153510849691132127745906006931453639352173960216791145473182525965512927950744367169639351675460408614271958868953597250584052003735548973116708508631996199065539677976389162743792469035805251872720724335774457375136504515158578774538790230155002122750870052108252110835259352222318276461836491982464025388204364439321733142735712981078560620409123680013051029960948396343541209268110482708991510232794499207461044429224856217683115384476320677930787878267549976918510647052960368296491683131644182094406879873683997740999329615058036736285956565309041809191631029947393210336207649341787085087277257153206230671844077950839650971887066571352798997029593709036106748382914934903497494799421398480448540123867981910323033300154772297654454418608943240583371750261937889775313967388583469414965387996345706092497873701638027346205286434974531580674251899335738717008572125728089565920442193126847553799956477598162205727580624178486508887298441479201669415427664777417445743316906623171136318573099481145467747965047393156237248394505085285575981803335620269124513880401317662741410762915558336059615070665272256967612160356103791925545259440758368597633630202196925724626087690391504946488620118312300854750239819864549859125403203966539178899632576060287720011675682336113944604421613591673488722718242222263317404317380891333726411737806583981297494001181513721812454604084451756796429326201662201410443783090768906256233549438185109980747832469821213197822460657586027545216066964993504341841700830169787134007258513548086787573239202890283474222535795397553118172400538140052413914807244224080163578720793129747047390596096882588485260327578392044747867920812661812272162944830005182705970649150195709329642822396632409085235861685502446447430088849876856771658414431749506193987443437579366698200488102314230807880534644567403374962871740238304286963568750582838847789979029115877857683269276035088737777550155646812904191655962891722761330947988301180382244501650244062635899903982362995167604360078927161212934640270212173714975302548987012337557486118482464097183347983205130792472592518497622719894233179627495195456147608744094593763279860448168748167246006965418254240139182810301529408411083520163107476238409245714103922085136138561998857436744567674865732000859473047487242430954544709777355628310189446108078497740602572342894307117159222703975365424064152791815638490993651085760339652958780715147822520233262760153429740513574356990019385966409111675404478634077442571264396396802944494815149298201622073499647251665734265063626465251524029381038976511595269534591380930538957609958396065434120173496570211285619475042136764640663356066545239390634954284861501811692336797720309422234894695615931611020950619276685759829332151804892595437348067788327652370192290609143643842010734442334172715645633932265839286521428012384008662956592238331887996189938576587684238420443431286439105207384773595186441490685494203414217951967418859246647979656068884597820883342353712104798844894888237290343814936252209199132247553247652068137408682144500331058954911072940862909185976093491977964030718597465984092820436266295289078027743119003314254025085933643921798168685826610813765581024280285568416720851625215206554631771511075199834200529765304777421915707407986208036963241125644479696070188761478371402250620837130758860348431913168910666883839086771043276608848898646822423347062701720633506613302522401907069100792313871504502698673349538947120790207785148441351310519665529117087655918650759750572169877796768271577663316803700767053841985320992676024967266718741663820197336960471677044528487562038067113880576464620572758152310237785453417672341951358490935500658265801694948634700669228450316342011595512651155903884985678108545240348409904822190458432735065172042883349492614812054438039267850787704636209477036477989573582132776168116154438308924620220986627834359586775800538721493489090081479813963267662102136197967574595035617838834812606159938102673539178594828476836277314007001625827698035263783286197664424190804927646405482028035493363466750315855533566654882302515015962008107205675381580428123792347584946333349605739807142784470995717741772020644493393195131398434726396697132084320190817022010374688940886942048290691934461289484594036053333614801933584073408561470987856005498282544371236683764706633732288809663483519512852854336750105172389749928875443762568812013937940097881395652277411994598205578500805449338265315028018509172184333428813952028308148950856636456976841230886690553119778434063272781353108050145373813842953238487935389905602014607938504247463316009857158335174398156321523409218640481888935587470502970283639679490266027122702004914602486319577861516729320720712548220574460428122824134087991970198061597873360463865960395102323458269764444100097943147725772618077308527337511510236450708413542250984244734560393893182159568106633619665783399555848918240256231319152541201321711638124435269128439717481386259068712589734572202890897435617098762898605316388503157356223859659390155579518317966310470542051331553350862794401348411073688252628651061233558962257468760656274528974053184095484473866852055717648695687026833123110437876967817885919711744244603485258446791693037055835591212071009208942990152347597738883151649950518819923428041548104671624318477748482857795157609576742645348247092257458381236657675598643774597143925216722379675445930399858541797940538297423182550490324207690906450011636710276705862676252170982037515860306307036331894985659525308744494071698839885092621153226516660901552492627596084190943477306875890408483326818224811922417225076653819808629933519651021997928693333816158899621924006997567404996965088526666458220182075636930730037664551841563062075676139965383539973179573835891800104459744978827654249870849546364525221883939644557913428452149898022132506790464152524577785412348665908387349378054073871127827393157720373639637830701327892631267866319102309548062300670699111366800793236723554450494106272715615113549723209081586212485773783955857427807252329845075124408102000560514222966825880921469043569279174218379881533610304978362248873393644956610292855902748303425050614624559102860375427950808362943386222723398694152745478777373669064844814333649358821851876350585517392604261522435198152575716348211592583912046382854591538956360149917194559266782741806923204212995945601997685447406631584350131078613236190719666438700586278518927089717296747754118252795255612961797346082326526272042272849683520601116647931101074861327955830783010067272993348737897214738625338613880824362449773421810694782896753061489283649238749555975323088239866112440674912166948040781943262416105349768231956840629655538863792018758829462810118280111667786960682706047591439717585152908641535641535846846864427500250101933918051682426015331319044655700480722114740222712079750554464813785577934869547544162369479473735134108939766747082618923336149308131745180646782727811540747792675453791351053372654865433658123532195093428709851713044293149706455091495644928782208687987996667419483905946091852139509273056660745529042827458237566570686384289305864814300871161812695550689042873359225142874640097490804045601720859985581668603614654446638825711600807545431683641225659539609998741357795029087233125238986166016425354120671145710438139318070150864606367189760036143834299344256664426804250302983374287192740764622943737226710996916403143616923109766386298337303931218246541963415864017053390242922664508593283854722156690336893956908779116895814772033465368081137481547109721573450007463236265519841570975503045356241126731057616017022047291551350602455324046344728789423359928273765646864452214428383489422738359716553597351789357930861455286046195896470475344310246212392691935715320572249526395119283618882763658290342551150267728376060356178094216010877626780347016350853727721075062235381521762664322476422915886684296395864142038969671262040407433410365231915323767867449785361005223779352060307599521744302762994816490122426197131779203737733536023328805544796893930735113898618131981635272277504081876520785936367252365400042355007583324867516044041732484783408814825068241376253621430217010008098090080059691330366785549651998801718950472191731642239210726909782863427481611834319698733894088578683852410850756111677286804065886543052842401841319815527681286060237414372500733012393161232759913945646320340132018280221453647693130598983508775070799415025930158836070990696407731385339633969190067616391791200067836685683192232900445539681646537766231260853075143776034803112822166999220097992972866719484678581845202847383304438643033010209896074377001551233249541148043885004546435824294942055798579597899269273029619217362404526980423872649037283757507929696281583260925411197901689234850814632976638565945591954031792114153787699645583837276921279899206074908720228351255882702840550572107672320412117790729437969353171167472196775541185730892954062860627157859011352689591813399437985995408788370504485887987985641351643179823580990066169691912510074498732219173874892060537276754467930758681186118813843553756810496704541390059660023238286683914422022877215412433991206713745803549447649130050630606826679444722724982968120309581694041848843904371912973360508478402618387817606783519394453736912832244062275988142056196737515065837114070510780926522815138099845596820572840301133717495397957936761895035552339028770892589195113982859345736768282163606316040223820551277467355339322383524601431596932023198051930291035736455806823573441988415041794493715623293628217008215962590902241723450490027077072363136168626312097657095548524486524471561051600200574750999573547578036673362616426518165244308888872083008357920635221499803946115935601123884722124067387714402732354504203943718976351706673528852095256089597859210675804552430507942333251249406671224641894138251300895403173253100675006228141773916389911174382444991954308797903656965581273311121765113136339807555537090296521384585984839051047569130046675094924236048010038601593820134363173066286312987204230402230751841731516535045199326725075027823018800937543195993946324465422242350718036543722130389903840667411630192714745388768958073429356197982585009530403278943283867203688875846343453407210961288217006281468755733194892972819126100834990595923636589042421735743647288758502291542001186011848619936396048196998826263959633204747312266787587771397503620315080829461306334340853808879458281802410735901420014747017265033751300227111616310016264928644543642525715577278301219525400262510289124973774835170569153129472449938803600639904748947003257085553492186149017789140525744155602052057095661512187396356665997455524725201049728897030327271467152986094122029071149958504477536875306129398763943240052473696466585513674089954030044232510247479484177676983770585657143546021317938465348476374265089741565814796096346064172071409910647763167947076284916050127948383353849817066335840447039060774035155196577468978141910501791909401733683689585081038247174518389625589218715451711434598237141837670739733083120762712884183340451295153960816790915953984512746003290079431588539482775234453908265419044992269130793021096480359203631697079331263288705205473899088378875869038039583454037099537792768746502855190404609310758416491551304057697552211396844714097000985964088154014751067197976817751624964197920582006762301406024249600281757101754051764183999677895167539722748284766750609531953225613780474515148728849941469921634099359420996301193331839723299407321923112557329833677209060637219882174547850943137318052594365547953362591903809165650735337328962752582497827611089472492851762006746607036393417310996145788653430536676286906724986555152796419696696213998450560808157821362326829048538460011003666491296875047963149025208006470218439639319446385776421729780281946025672660469357287077613593303996822719079866660185496538698660411909374526650645775981512891675268814035714980728917510629709347446126135603449654417876079174435592046159245470598082711649775204423679987959205619028700573969958562474681883174111702789399744631636014703222564548021563535453985988653167237307730995919641779808843157026439028296688478272383019545479823919796937942665775238324109330924371286710028040826124942149043369866807202444248788128919250324861393266683384464645713519560061706927024448810094601225923940473214961507332122920039109674853552238937374252589580391871567999532755078197641882517897584688505833825477530107252548667788711480266521000800749625145362537022176410933842515122459923448891530942561121793052234486143349065193808776534137505684233807652044243997226016937001136169456619755074160035540227806719906394050445662176563571382362313747388975454558343111432302139907797572920156489740695203334777219523365587762605978608681737141823197666060463724006017834944944892150394080697495673655611326195777123220624243526734531127156002252384472316558683034862563453328431093649982286714252429787154700957775605171991822568179623502679080717017453249016727608589782038016449896370102975426801163455361873818426709224847973381570015679069962852872018320444234103764755956204367991900112980649426051749187123827645615847058979235934526722821512708184077834536324186837504584446583987086106582680484950145979350998684448478155048448149049239594372763288214581328737513334632211441740955570758961540534293315188205405800666149508367420270194219457164024616016673668982140148560108625067022484786090255838516933000040408313128454652205639762169354459439549181256440926980260987327694486727826653998178620958512119479062449181090847580501531988643875292362218426184234468011310123941028251890403743578509281365359219549608841871850421215704179678189063941303720201906980938019543851563320611723151465387181737787379531693993627871946783065728952543909400052337704515016785419923344416690564443457594422972424132679015150890435950684197194825702094098891842918582329002264408117583089824501117882014828651456144891195121391691784876516310542373543944120835631879396605435167948209208895337072798454580034713249016787228172686943794353274500878883536055267421626819502786076127345293318059173306620483638574045665303674135318235192739550006502939076018041109335738032870905252210991948605178575679674377669386864683377704901281313081184714670604957663951783512478637024683416631754072882033025924040009680283245689490567401854474711356278072667190459293456499008307738243694731823088426214230914527359080281833485806478141769263050461849885930481137653693690242814493411247784154939381891481523485647241222519571921582755796854893562602699703042763579465033207791222382034022356512067968367470022473404858034833312701258528313222016351391060888864743092295460311081829828265370501158765443932405248309296453946048347659291476338643084938454672075078053295166230229612173515280509622714121341628229551923756669914585702819908485042376767106678283659619085319881699197815335978625672043227824468905841126307931346604198855816838868041796576715035124949351532220050352211599578955330596091243083246975829264613140375726423862632881159375390468173053019786513498163835140333224708931206768940149519660350743831160489965880670434546516516749534172890412157291974937518374437744818170403874067173721484637387203375380719722096719471687236225150267865150408276606835556179351729554961131768995928724793118648305839052418445513348374619934717881492002823891505092344769289545341298298332908648028136408819555170335627858523624744445655464558163658356988930685118573948600508331499814249512680955670957498786796732828812769034547875191304689190702217214290610020258687771948360788177994668434687511152394133362111863116861593372041683204182044100051675707191503166889770539637087266957034226589526025181669321357886621057809766436539255606481017698685135993239997595501169880990658846082846711230843502698084929259316639155446191867483286833971681241138291877224069106374038287852863106436934434225056988916516789378946181951543628254236990479815673432533906563480653448291693784451912946088753201893956812639508775408124036182936300318150330788001277969624893269432592663857075196981013474849179225954147724207459809178779333791893328160822658578157212022780571366463155362109604190384010970257620647413988209910746081233336263960874724037397654477051570699845834482511337841786988433028709690917925760578360494275473766417575322531735341562630317485350148761151424491232098326325227494926350044462319448083682157964867535119005923125319260445598360497025435833421498700782843948701254422020457616369630823514839518313651127644011332740196963123344153806346805867841305985126110819676058657296759640504441459408754912919656398114960485698896329756577465618923339400283394034374929994216991969269058930322524806701496698924805965424616264391461355093728752125761670329339999860393810789240678288758876121506219237572755990101283340386731573603083358683911852350858548731453110775687741726792663761376567390115288656403792738847562650298698961706815627823780272937095884638290098461962024142458494410195834843786554431292274689326984625082358424630901467851834899521955644062377689960587639668336384512258964837249054224428182617392033308946862390330182448643754454586390021087445547720312391072887665909397090787201971769415202088436918965912247892142271827127441815254171982566425896755209721070217553705828596049666061319720360126861069061839074804502242343748978742138630264398475241491382474099712132503457860718661034555260841917114817661245303803917539087174472765510936421478337482468995759116998281174625486436572460329085177993315025786109267946572045560960541256093984676085745296481863377512563659114199482293320546934024311852817486991095944828431707651948459888864024156933328654962289707752041983983231035146630065686694287086729096840939310797345032906136429993391921104533539763810347690041222344769179931758357502749851765326392729200231404040506336218551952341655345343054957489786858962457399894919741448331872829219755646571169284597922026934803510178435439461939904275163168085184039499236393398438506374449350832270824028813012077740852546850200637201613684330645744472843276069532849587398443694444909926338026934492244812387547142380635371448338178712513618746122993522395676960480356646415767928546774186240922294229457554495445104004401079066862343458934452424404848145483940071387174428632520437667878539186150072359143174389702191578855930573482101847946092358304546095688109150296499353213104379328274822214768995896530723358881455211536115138476587419700078849446949110628430521776445420856783494610057714732361572711261389594577686598424041753188049416278325034148877833324409898214071352394392021871495618881535927933267675734693165930508284178370324424008691633521083383167522623831840171792209209155491627081593412956118980486190500558156085481726716771111858942749703645499336977446419023333697901957338601554363789381786659910668204658826783948161495312825948782961561513179565855047904405867987919410327068803629545346552828505146333515537985104499625467932570616191901405752906347988641288482074175639455693886655727212215911767193944108299984300532684752469965171323151650017924393124453603317365091106878965552534674461850522972233392652240460432929860803421979595660072506165710474110645296371825611088924582634515352391914687750804505749236174855856058008903869228630565761716209998000971333767526225000666615531898205386629198849437926517448126048422679064610225955580137525863959621095681655267679603381562723413366518730338296334981475198986413577443445861832293529583898554041862095992707582254462519236195211752728614188673773255568144185597545228537304869803639537205544709986513615856263158910504900882550094740052163379238135702862273949760266742990133077989347002461844655043620373548990145100246863035800243915733682301547634877800861903155683426819598780755589186452002128198816295913176323867820879292222384003672381308710356889642681917888483263177791770391490186964604126833490637612021666076733226879566239055355669309995719171471196866713521842344807378809033265248556784906026950270778252044758660487835040604420089528046609379602322177204670010818109182946771479511586227742493401787189847347905633020958900844638982114288132787924638446246430234757890985761417870669483953886978409479021543501645275635350967774294247779444503391021351290302739472421633923397524817102701490269369384270676623103443470116538611789539916595513060428675770176587443157219520293034684335800146541465469389404768146991655217588578375783553403174291543826234808615312570671176327441691603692553451771817294758297855614477972329469357907192093469841951065891431882119553561767902973443845103589103805158702843470861262768593433376567073340119039447822022309381303525368999527791161900701626834709211247953573195252233328893432355109334830915823667863489867386242548909700317442080155452900074684178679528539132248217775809893265220733874594769432355604350715640451123021325603308923238818559011057563237100538233830642196477577227549453461499151621541223272841938413099948798889066361559410466712441677854715440626174355788992862521590338348117991456885720649969081862317298366184973778758927166068547391155914726584743852866267432066871903643552855296556663475575263639050251026043364254014085883324145383662392721466800188485712120887792956933572051949982156240554967069604843091486228187675857373647350096155730479530413587955927105032010072923112442260998583917453155709999171642360817162272468007649928335235481376960981265266905485344195105869650698652863348049317193586381038245945567626225147341955755192297866939065730537495392364787215661104150171433536514424406625932642457905633786554764837062973043022710358536939784846512115315005109693960473206293446376793786849771598489596143660398564448136420418293206047771242476331459998315548483290769291479851360525540566444097450751643116705786720160941884253461324057154560800298094153309655210813044473080976751850432868923223533583000830984451777375939261137683588791314154937282834256615020170020804116401100222303274505134051604506286125200735514927557035357841326417016793171155950094173850048902307295367015667896123536809655815269997217241914145446945548214470676674744919931427843408124779604534906440504531480269879057921344717063498062523562362134758218944574133435760818806832525461138143861032130274209546431013897667903592586813341057161939692226553990020152624308711360969554613556370567057861088348386944533821618495451960533745779993186798594517819841051100946025785945873801805181627370796780671218116936768855792184792449425415666780980545181231965143562942477561822222615477099318602844462865808938823795297918243162228827116336347991322633594444401738735782524845055759491645893021358709495114458371017107446554685867537733027486230636768115998917267116903101788197487859694750368658709944748685884159107587867067458224947615491664483800599422117210329713850611929349585125664244890925138977013429786729555062257074254193779096311308758653482247805883323734594310653281608824240486918821420459403226311320848556001348921289627923046598950507623517279483210725577535206182186149008304072802149196932042563362740964436796117625283965930989607143753434843006884097146677709854278426830694077846227530211023290417876648161090778224852312798794062994290372725551387880494626001239252079436290224226160074924813587635534357523157817449768417903916213152332303551413882583203383692754085791324442059338559272115434739302648430436234077480869991793461600162411532897586899806908591688477583416567661504026501108596474476416014541669882716701935503708845888682532675181121812743986872698550030844283984264251979551687736278547044642807545891839547520206958955722852561770303178258743018860931551615209345511433198243836853970258987796778855850265168635113751268700808695868238065498499105152358348077747049708384519086891277933034609281094328194525643253859304153173765830017146480824347307878295368178166912818202144605484889294709182979744960685790182552760189320610368735298396614095493007784645644781204836364405622037221580267938005280781892500737156518639745251111776069172624540746351351810181105157437243989620836188452925743461825354944053453282805189308852468563971713981036260331776609124046467561438502304805881104261621512168744365506941265426010901240077603782647915139892661155324339193849678244388888204700194765467952621506682945046850321753671521739544193161977704213161089952254639726713722831630742113670270597368304615738663131923167557483117600444797011184199277553705157014618417465666586448454070723327690602146228445761509460347047180844015492515252113833399158096206548318828565643151270587350857366820727754121002622868670662638921693256895568672791626546850522210859232647362818907724245671985578296842410823277714296763471055513338095110517199767939372886726552346254460696331156061606047290010383819755474571237434075920662359368747149117944040847113067311933960249145223831622543621488359566802198301143184866244880687991084609604033716901067132596051646441434923922542622589442568414350326087101535175391420020409259903072876242657906624050910944966766567473890681873704163097873849667411413004696688933871631905122220225919293216602286589273212199339920439902780719632765042279689893987760364628370060083109695938752791544949696693184425978993864233252852937624158396794725645470562364200640923962139693323018262389059240428177432361045116946813682427756118204367488263977539843104368070401391804999605221900365274088725109700662872517945547054062998570170537727246618845313324286980305314746795345923059864431600439930988070485821123366229925607793293957296188653793396821540473745356270705421974293895059569848462056493777643421744404592350991787141149706315069408680769039396166199331153258548637095774646853058365958564897031094895955619329568720549421501002167429150157862546356372084424287219458343638525672638313037918440972248803153437255085495916858442496417644521767651643282102587462447867703021403846720878327601728917977873254434388936656050518179589198148103443125567434082667206064491178902343744700371507842021134495202057971239517034030172124540709908526757333175589412418363413727352802631634726120615428431329188981185885959462337542490720778596243286420975163448758152671708932894494177365166024768580825898744055369232802568450789821623610141282831639795255562663517615377171098733307550458229682522663213825121314004104592369382617281417399613967224425219497009748751598974361122488212595087542950607314635840939352029496241395321944531128327212866937586716822794024714846552539780273854591478528876888021094817088985392664673804350630463591813003516769442299238673194685752467651513338657095143152023107177749980997677290336814959227970010686381760911188749265015378904975087690292749395905165042544662066890383829353666038526275739792037861591275657417017326729723540985070479207937803947891470571344352564154415453858039291498002809691682622097025266931744034371735069875968432428130998835523510130021318585007569664653841489965045790118942639336927165305178613531910711907543552544377598385309294337232018566419053190337381206323137524250470210202227827028161140658565887343117375379900656336345368919781591254552166604687898572042985852410430885502721574767949139457954411656162406423816969177950744224516274061253938089027911630099574916289606745224803284129244135105845336256837496569083916815095130850996692776769934020563696317251115158786405948993282058468186979407751320980796252133053625007358509743726584610296373068803501534441113105066369681027748833796233783211323895845505148094126888597497153058024548494049612162452288717277101760244884806224362317886351159443738183390784506615329708501612811712785169130614566261341863830339392598769722945890383546833376271618980215619469313166978886176891087483219650492693695039426634396681705556216952271751654093922839983538053129403371939233319349019187410892858278548148115907786449741831970617245687721637748778150363797459532896505410683546328073060244843641969248325136260068129402113993026712480313936215067119757703171952988493627366688344575527562139531180300096830765837762517642972957830357489841837057730821734862977799118002879049121458471024208838771539290192282271528443671146290844490989873664553348537794302655002394370913410245707572973403994350375992458311804941502579062681597361701803791567655150977845042749980116528908341826569496746895614574136257149411173798901124526627937941115619159184925551628158013320792431511412891644718145416707902969936809600231209938889568622635225679214580653191782680864052377739990625807976542885020282147706160275120468591858277351921052699553022485166880533450218578541754598841949191959337531821093903194731765834664257181423076024335541847076708923979198940543066338362849687392214629905912845162772726637341104820910436711238339926406483141941887190246428561112546192274668460873953676460119459935489726566178463123191366157660913598539131749095834782748041407689829967097410880226001359988990298135089087044514697215746838496529044265196714592897123478682011099307354478463340969601021840027333713364244813660198496740474798929672753462132000411914841380404950349170311166623923538825772564752109252343687206860069064796969331468827585995040966331484830960306467438564732317027009622964905579194052409271295681305337529334377383225714353549896059901987482445364729985232883588258343987820048709309467324842261036208999155982119568876611150932770080772635906793139315234909323226900387597041001816881348498006024964235675383279019288748373579464492598157316282851046098635170271704521984593460153269740729192378301108093423866872822915575012280124303865391782052552915196624934745971880354675810387812442094369579211434348502079361568085543037801657167809244553944778018289315060499467207773971574381347312736888796644470219757543377226854624028458080677799708641809215676846701493499252832870874649392133022354222715444391016115892895658604861830087010827026613740332183765097549223722327280160333617600612079299983697759995467007875180078969349732216861428743396344152474753852894394747536246158854292781735877617804090864334300576958494764779575708994047594225559477022626187295287239747646176462169734232589957219403208969873132236668727747448498359154543825489515558049197720951199058091701786728445944134816482321402239512380812059197151924282086547125457570182552952667115636724036189205110750164632941456831398458600104832859243950810378118616480670421852336848753735335164385325297282747323921127438971342554129521688468976910031178724148113669323835488695238328599767867925973572137755641814886216724018227065420219158238381954204898995493573892777596468101228351039711780285303127708319163009754370963203273424091837762748241211408232424953933302529644182887496990049512798715249299531623941232445933336861477143270249439781430136960371647199915778500695153885151939393064314591620751772214211006857685880488518528413621314562300990361379003495980844893141585978610541935926124629517338038084362602493797511518019168749489833514180845862209812758938491603636343137798492874086496220570564240836220144741852622084560630503499292620281132475556373339412327483378582106863754210865620892458391300313504346538610153688721267315332512159933241438643669515529323058169728933373556118851383434221543105116186226618837150033813656173633449870816366887292310123133356085446470701498891618084676679987127602288268012552563851046105442971745133026526851072315663146131411553370179429363676567667045689400019078968245281934662760889731948301656603939587077202035848237248517155888396763759834447730116585678372583184307705673416140001279365869401575237553246504205913082323320554902080261621315183392150936995234336420593568252421284910705353907759670992704214954624093295206414212298992020335467847398914123098092023637979965253371004896799194160731089691269987649780221701127348017958645947612834260461854502429174628473012075477534671243989726421118263010300132660125906348291281797459911644231952069703174370032271873435242576691368663269425677494320565774092377484283216769400776384415645613705747011553714758587646060069362623366007295716335359009087558163780425537283294855120092366805165427952744939977527240938247430113204545037860149159753213973244211961470113402617350664246169279973431961896488311627384436698345805523190976804851554299261409853949211351318462184189853495784937261678180730989184171792593954474406442421971027230332685473515842230642068796615851461246105419229996519969766918294132035890875305719957398130657895301001808786447267262437593064697804291107724521959995075033577223091443488734850013789335365190520405228199044601126515827859574559165390722844088211560313544053206878888801939734067808096740376566113843270557455314722336609332531140685265132618554761110304993310289510988896121563421808438528396282376795077790401833413889246578607816100982629015431941580881762534043724121483251676329960563175008199729023446894901532997790896901679383965398689853103039442178199027696063716426609279239557494708249018684029688181157078127454544824866105382778387688705314523284212819108134909168442615526755526725052511548436712073009191458076297650201179824058603021669577190658147725625276392465369840581474899468978656942173314698206630239278259730629530700491674101115638644787513323422084746117060678607182586451105355092703791701403941486895416598234645312348853117340966766138933830123775353790796838011434111640450452669221039647583701227312980328733566929132835726760619910867649491216382869475391186392916775576468794210628919121798902653778330828273751485290231451762023208005287183133389385155383502592169786302913763666282516234136711018981080010361438728628894184777621546995730333646381266706562641133616523413204219172378705584912867570301901887148393402850986265737441876451713680381708329653822170225676896524496615981283088807289322592272867834844100998874797557900799419266313257268449523040931879797968562069116473569696893086056793985935317914967567300890983294516191958085367098207918398859323954005692150075372617925822029754132001195761820518844786060626960962099674483814541108936911109114427559895993745254425974140381778867929194213945798047342850437606107577612399658628406011069053364288516081428891120723698206636756779772386145917477139156761421107938451101179962534524239664079562555350931562402057039477827476788223864543503118429848388206532941543424427430279824321430878022484657025089518500951791736243486588459954449316501287539962217415476855649414363485811547345395366663650597043774348398396992581620710276839295174372115405136052551895169545065829882979206224609054153336179898097065353577485640023593452666066222977355843058905480314974981062283744005116789177093896480487987876856600792578817437192690392189323083306294727535045222951069742912944079774674643274631208275223220571647031442663973372176758247343402542734516580405879203962350668086582768267035809436272705205744925860102363544208285833792960687153684948579730967222919773404557499519187373201424976710931474497887639335512465013788951927332415226270808218849185030210310646954964973390884275362157339198979856888602738224859728007610655858634873558321308668480905715432989555434664731035762457763094641648175937045569607664566333298343614953478144638461093979223860981533581010647148270861739278873611204770665082988584967768118079594877532224549655707600577661298871476981001294199286812558152868028766164637370840037838544812900344591542421831638592326676913276981765584284719617667450842491512565025141799167133994773478120427651188879309075232031827609478626781034145285605814861777733084683714336545793044724985699241908448892841107654878761306263909186312233779345839793017483132497472173617959000008035526111090217716135279763726399604223275530919347353841731453114928583810107903106462497999662986146560492399594056280588421392177046810414319938494127225181234592849548775266402510700101735049206312144203688530251547194714710366847841270249731745140026422940426104861393180064856881646783225183493940443385719466566891798658294584567942181592664510692453818527651988335955428228554403689341005992381022249922203390174140868536603314439399194927643697526136228277056926851677901476883004654456960828905757790110586352050298061363683532078927010495243043084239837904084009235029467658968376115967569550795359611481908047477421797046842283841137992669207977759196385255620926855947293288725504762608983854743644288150749305793623110229035494451410092512990475277651301078478294026820710690192995104990513539594506118837548882619215193621108863641018745824509931320700626179762433838816297559037348607671753397376206146093181495765415902412544285280347132639945742780096931897729409728143603574896291565309826675028448635069192726902055074030951986219990345414947602992232836499582473979699884497913932744694661996165297939901453375207793826836725282447663498328610836196080032398997423843237834126001768662976187446440236602672694579671501342410335534794873160289639962134716328194679981951662173517348680089091566622231371723185587198024189659876154075103411225072751610861103858138885814677731640127161882460343443668911987127219285409692570720817569213194193888145610821395006028141622981207266336353211482921369516001638853589009121125618795082006701364483613679796541825818754543001235639303677843980785107963714542641298832051074783349014391227476406304602273974695185020856951939830193085459376179927377273970707093615630658313910658826361248521244115376430834690631412081907475267523616261638942583681941096497098977581065189410431098325263122340351479936920722139527116907303916816798644991151549810897545729624500812008367548471450228120111915413706454880668600015794939010520738442546183397596859073077603655841596938714410867623187651267930970850857508369085903702374716531554266717612315691212715769246969537298857884569811420161991593514895577035959420358738305088576302674988385927325710948763940005443577939802038759201543426890819059051621491455370497054156737926206889660663532774795476545409637129557973777606342581000293853506008862273020154990998599714956093840380852343723939582962919959298839216961238199655144327538872384044795243015639170960991392261550961054058849113173933515707656445986225883296105933040575925078885034534356051730456009968396899851395619581500189015648911831415548538162215607105095331847170532920995709852138573196549619337295537776923574148765952905331559895216801149840419123993090033799623377538730047342010466604167788679914371467714924365690214799054949183132035624344834111250219777830536359029657465665986500355237323034925076429129426022890201177222212563420002030283032166382831875384989496669380919668682786278248605509464890190251724336783103965354263181883918815885307430804183189025242947070129526717321915061243837411471126240940825562433304244785534645087924799596367009601234152439799648891709724251385245951835214735963366240451998242089280261138177088825221809583264286056808346294896658495857061976210224727130172010493157619186411104721195603781343793771624919178370417362983548193046566752676059188731127586623004760731511020620525409851425142692148551854871380661434226363268415054292532462655643770259999068716861234835372358358698544200551529543456572636052652524274814242424362026463748427897693074837278895369341869864875303604376655275410744154205264510738696704885846991072827461374138777402838083011081405824252038441421066486208663306890402804241803963974914380922881967995478360056791040545641003100041627253164454572705709837677650068324937361325951630203269735552798855827416685247158917665927244447628324653376148086224741708548344778515809569656088235153848675130700668343848371553748796873200497837788786624237344972813619577980783814296544798244654877423383034819796218658079995994931713203513816589466140848651542018008527379593091406289788720499701291605529559198352213263332268348623641607238056568333964349575268025263640581930898468195277887248184926083332732404549308026222140489973840924258607668659974019360901172384069893387010176288824743790553448414656089223906113084583602614248615351007540858285707262427810551229234884723127542033163213690752024590485976339247333573226331319232118643420743091467735081906793830920392813068793254159539202732701316657866806601328259237064371587478589385848347902252333840974399663046288278708626579508488465124917378562228921139870309497055750018649987326454722138984697609733971410862447999163010362933689110276548014624357297716960630525405281945083779660240853688078732352554716291729541071401450347061046572201035809950355057227920228310760795685816310914249112861558911966620690615396136658589561322352570278717522626789594769934869862320006507863702944085055552840085572645135574357471308937846725401526991170545810946840097058960437214560230687665532595914922033095457180068239690289773316821830993602439406274383304518364902093984643179338065959979670102491396534407371908810966796471431834729497986663999872440784470457270517671880820433033622278304251184763361211430860070901866664828731597642043077991893025622579089905553972511074446106463160866915297022371562181347774719130368170783782316478195248029651733179955668537157916216463262969305542385665815167448044625664713738803903423036487480970537437505041800699774595234162799269139307560144718475468677217877960616424552926701212016487478364793065556302262260607441689481291178677646000880357461822581519188101346559125372274105526177754628551272236143221115677347097371786667589357210893150298156576118166151221713325685140122062060148899488119075506848400614462420169879984576647839960031148994575142951155296280359730573408369482687694292119277834807412850141169643978112730885724099841236585219566391593441865118852452494670318588449188547883772872618088861138033751400775587610697142909959120416253842759118482828814508603591927352424949186761922588998797001401425533517090781264344132629688594337497878934241351633408473370090011811973587228802439806245421817359497502340301131297725421253453055562914950034233684486714543257157033129305709015005168726743259703730443946516108613255573780469385442507659364672249103788702600418364062016191712817470539584054938904127641996692339897912749390257321081313252247901435953566169384580332862771080155455587617678127894975782157352528065740585859844271555879534106406777317720780881969868263682655807610855202752123807398595449573225830220833803833115837247405223827371129772451947391415371179780295825991177152019254215096875894077216669793813164664011072133770641523077745940710829250505504503741003384755026141550406102817592801740135735111999190834189977216326428821956649805387210936229579927866975755769536570261679420949873749001822332770410497289465568741032525695689286748812444724907414038689764806190743934178726971292534575225403887075611624771232955067108984744319755369012954316966523994753925654982761184772270210496459801694387997380321875170024417047393250763400028328251088087288610238907828724912755903525559440262894844073494889318901242137083996254542737918231713396537724908088422713605375355215387086103149611668957915628864575349709552564038041068891126808414994012239385992306442010958419727503743585021545190142172130760956084459980204330941268128031825643671563289124493307921233446063038322838225773665451962684999993528687310885667538676483853599020599693811404451907508368344362059273084451419479214066306370486388434690936549372603692538159564841419013245174625883965323810225899614878547951814957280783791153709209579492842176456244070972876173136267301817057404720406394402661368346621539017594200022986134699625218616327408528664389457405246608558175342511090999363942016916599024951807524169087993773561522186693807906678483532025809495189731495303692880652920539758787671484808665140172696390056830095560471682870117136923524108354608116123950342107399888736080013275828479209522037489478958083520937801755338418246370459964706297162941508455545215601335633641931751952276549934670518438095683570103479372599284607128160619194436653484151888615384080127630452303991628179026646097794614078248731305839151306808591790427911937434327081429374687121960196793067767038244056492371942794286512599374961671262532468078139152806828460090796731986863635274609381704480087147794165528019203004296886926493694652248335646031991404702257304799678510307432141005109943837177550023076697448700307144669452002290701739366746419953303559888576778869345639491391792107960803131384576541142558104597046105658831132760402202703135151854254885860427317765871426819176396446040194439446803098144101515238325310106225707585844925497854457673815841539818997493020818219330344291084509122295520585053720141464946343151344633233869328659596320492259431169469376270895547895565287408031533825352271061122356973752786269860385093625188147703503434695748784824566840224423491557340258274093696559371393676515629167179602659895505783083758968601126152217231885497512279630447167675651175135970273865772478747812757009027845450518668956512653698709155871795997987369809004535319379094529942414892328710200911339547249364115268248067834588858340199759661503757987900924876452654623149045111092768185697305696165343674524006204632860884860329663111639168343388090675559087466739786971028328616405878746807500599868932903965733517109406908643911833491529251271948962454273712706577274329931484788912454227453355683094251402412882989458119465506600706010257305942046992559545200536170285792129830016488221870888429658885833542532691004475585899556011265350338100079909246970148033907963979506009541501118011325544405410825004172039206109234972260072522005498962690001394123129368003973287997882026136959711063247552839678950166830421313596747060208704131638669265063799845065103717096652179643978010418820214129580756763536460375800519390575643960297673002850970057874413513036705665036071142171094773505861227625312385638443914956186156186077441803486957494017342985790803496977878812684392908810840438605099269428385145782570751800695969562923640308000789721852554069789038492376749373924333668228026378361247448964033055031654586628757916502335450627521176378894745431672439593558019057645694406740784990706798201773964636166777661507593099518353793588379209108297998428075221447046400477226143474619095704083992342063076297251644801521981616377577630382711923614853936492916424042630737151135994242762097349664130384902852533698001300404569303897128453618990760143970983252718890134589142510934075276406798797560248010340541328249978228463932540296631990987697838325654171853990421699258714854488135486249681181838773458255879028179020285063176314479017474466640448508327601012399146609280690020408619620772806420753910209087037213762892889000491464680401021180638228165685439421345512120630463927336128385049489407912405731219299966767290021954043721242228894570236028309428563503122052312593973047784501916378246293676312622737152772935064672839772561246408418162694903641537285726731936063160165904951798802206471897496027658654906873141658169620658696210520189329260395108509000936565119263902282537931422556878511185272224611013755403547770096992863154461635759620939738344405544983648351285236689889295955193163853783047872529968310988442956230136591239012786209396164418123829796503910998346532019589971473011791615175668697796283228579186637960008428685953748690363104171171304229671310490966466078263946455104832676195440918544404605439569327639965872391939889928102246446299586926262586685518097522109228786919855647675972011966189673720380940245684871522793392873355148184870874769571875472903617383768754866268018611615311721888085605588296666553716582054254938893712193003731666443246949383482057505394330721786068233593868362561940905597465449124763512831685160219316515259918010328738102907553805913404110292803523608088140814909508696801448495007062269682424061615962484146320333436162727638042916511975027106828230097282824457633155801757739232442914886462695662273303293796313656850669997971981314452227286368931657530560036175299726468449018941359153572578130927147567148547974998086273268820963687588467930353167883342534489189655419157810790634158959563158621848852749357888800425201820378625007333724832572301899490570379508229446000727321938279793314827883876674106073251308855848608147762657987078462245941069159793169750393688870643353205260629354040717213554670372603208090838590451581023816624173408056135669694413408020374022793561021332561108073130138549124606649413477078137263286229498013875612628070860113948070473285398213626331513050409743894046366074456429840845292854105886829260587225420623801596415990425124424167341099027746293823914066410358421333006292978439685786175559281974982925462306621692021241135123729132718122417918105385477262023727051742341442958862111413522288596845287924542050732155045909180207627859392611657230651887144654156449676829798163573473339158805709658428535434489019551950803292704702315724068406920562323388442831460695689139815647215542741794769912378752471182622985182326471093651593908728490036642551987054260713711858877294279686724966548951356934179885954198853629798027241021218922924002232193017359223982947829591839638692046392599285804562300972562398884416757289414961408622164759234561369861044516755142435042029712448204355239954067417388134359794769913443071293797386027871708434791200299288899890495493853006691821915871968343786807356836641298344158988130549695346950561725227105675547410964001405539765908431514600139170953299622712409334549427941571889697179374073133740681695161951028236441772154156114609646697689728494781399785889331620672059200348518823598389937763035195955738342879893636711773270867519578403741774956522289547634538842162369553648011866169336600950447326602489931757712385597112431605268992914626578454989774956762010740921026683216860380358602594298412862506216619681072488800945091994721411478398136963278459435825039577557663329773569974015139150156788919587378064467212766976056372535378846994862878859116102289795460663308644376947558646572970808134633062070975480978231921261377172209207395750250789582027613789713056567322542343042071013135199507120213015392939875759580117561393478477511465507248865239705813117404541452271751974796231366826701768604368523357516207949441602646660328732803507365374700779037190308528836841012740825311292411539729814796573306186462374365244017152694129516325508407136398322816397729964898883241810284966156330310955591836903643352057419960916569790094774305440086263821063073579131792583479092845150780186563440608341587889735986328025394665691301982462094408160931436481771098444958406714168956605804362611303326649965054549227039421829698622409294827515586275647496870869745224943349448359546207922245840954791758962104162734099211048449276912022116616167594786698598475732676409708235980183628561297443535134821597233113070659979101133269857158531892649977645319328238872594137536761169400402465320946277801972101384923424874026781798658928789405083295852965772722870126475210530476656406073168771214766488944813794317153633514589740939060633199191365331870561583306949546132731769449039169736496238060968447496878445108838864320365077484741416057060932653097566218578755154952201114297613986347743185146312096469140497700912333914067366588552426198303289550446286022832236786667338358700972534680330000201975116152342921061570722888848358879496075431060986282016051579782185444830598231939457802044286430234585548060325056287938489975725801728113318335375163307547751633225569663923670980634496889465936749837993462115541761917961360298898143875746336835585434389199803087109737421685732712593269009916515273355360241232674787962249275515086246801545658647631886095275420742918216643605030345464444687998921269681708066667384572815969505379112898232911946035962850850849290052639442018510937318840377228703129682458759772182655011451712445995527450436498679645520070198203437151803489495983753600168600734105328006734949450826514004117074420642076251025031089885633988551844048311789920582943797135157440758177108956231903389812474379776571189643088094767715694216018857979831371079761001508285507659101449274450494908246269283565051342546312188664495774484557713646726522438821757398620884829971571296108415382229183085263778872614509077462083779991892695718741619799238824860793098476351931638718213754280831883858609943016100509377071994611060492117876779168581696975003388024078895256969992600925987590449753102147373354983900575343691070223014537521331102208208844431319185388989881915078688970053869415308294526794273909506725553333556537080906124366751209613127494918283147750669313426388220492327913590888118454621446841525243666408421984951917305981845801345034967995154014470842364998228743196139936535406434648333238365533662737325789807754585526875705261059481547020272108824520978327360248788225029432855717912509668366124775475642420547972457335751148554032429030299181439758001670306531493549567329820254199633987940099130237196065025387280464854825935531274234658852885101041423373336879087543074342368157699502233932063609749493820505319875587155805835614723287846323428087447290863266735880565400871217743810043361890012091445040173631612051871122265028981725449016845337809025654462343999540400375102475340401099683478999058485697241434563090541973206958110919148438186568392048444197415994891335402996838238317338023568484999733893837044582766049914812036093468199196256495701366147348256484993574443173528487727138644349206778000670621763198405041029098621814634131138081644371743497521875172252210399438339194834661447015475181254182872693002225360770997655906321508173239189998212005564737609304834900029839939638148655051887015742254383113335633562130315815153582568469543508260211935096391965067370973457809896468524746759480610848323274264560625983283615597324693091953738387365489540530707046769585172866061604304286619491825228711556233978957092258922610194465448906665364855260826877732121084018915414351583471866812640730830765582331068013136243919645898566539229981422258995801205653718124881570665227889665872901603862991714123462432649480606020990922854392493504203168066766414141286773474414010678757551442535239716449407666161037698892767536606212142128804957326036201055809527962769425662453546628374781475873383822786880198972339709072500680133125347630261895364788380282992916511768987106362186418156225353659218882932830399275399186525477783935022326188320627591236734177806846953777317681723321212657343278172493413668774379392195928841464921956109266362691414152929630490005711496619667920443609595390137229421861977458520983853513374300166379588231418676792339996458348431301771117696330952007816161392251195109360044449698714817081896745501643583337290569991022499811776319363252545179926403113517369145318053962233264295219211799766049601566953040197426287646933595768789760024050389848954420592752006700171369395732444865343562869982684655419553813716009170372560027807804276116950862921108847953190608172194931830987090989168389242873012300326998497961866630258433976391727281646667865511872945878008449607467287592818137308964771927662377805491082668599129852495250926397336081723189266644426500886707858672344586231493795155573021374413466738040035120816727426100975300129759252070975703966373926615516917266338471777338852008916402078737205837833537423750051121761310181608103454158506772265934168553010235784714575239679217259410121347661915577760374166801415811243844393650948700862950167157292806604279735112777004641703720436745602610893260623188372592396761258939878596181026271666679041569165041509834481494837920362638644500501824803013837297746749345591635324711765325454760441312467215870490372941372051020881659872870128161734334783438661703619091551573523029642586504353860356033888580357102543598477631157715104873482523159332744147249097284223226737547431092847697334713425126573107650157842904546343471726328666667119611301035358052976131188869193282533507775098593441210394385254240159104518651786981483602631161008947867028853011332222011359686673539665831480570144989684912844330066968222853802099788792474172013670438936316400722753046444938819309139882562619608037643282480726972924800070102313742537665141500384556472849934807600060237684965336161263025849142116826773484348260576444692383746279090820506210626130892672888458443376006272852139175966987220611352918469584545515970252136393520091088331729966519197091672378566966548404124357973279596361415922969600401962973333736827693842332932204818571149209479983848512215451361162663391592190735063501565631917536168246311631073946172004120165444339538589610659231602491429962644690159613700003616425815342372810832593530047137281048025947270784140511516933420309616073509885159281041062110927356312849224639319874980402631130172944352895018487670609844409210537363184620365852755353589409014528703224711549634621995692032799555798561045999152448924586951473994223937123942801429993864477725459351662966373855553817554350055448403198026737095084742706053047537053399905009495728986663013366677348282514292448322474570374177208522153016878919119188132626793234411418978356223674197052943877695169249237184956754767137134354555110594079746167794940834084016981703718913313955346799399612870094394762714005011541834724287176018966246782157159554414359009626006490395877389859535102185029121094295917011273754935860095841734268344897572969782196489301707513861568443872027442712060768058374008430667657327707678953409725050245183596685147288631040970557135809343874055971857289650170898168204642974637282074867190025410244732645818839767544824368814067726231874204550580738957965789746266997323725369221202517860593294773909256128723248247613669724903979316572643836028975828138215288574286390616110138595164428973296981182557146998021975010862935416233292922840147611361794961546072083063553864092119664787372649734814171709841774725013504735092899027332059974949285945192202477693677528398861352707976290387717261705364629524017081762279550687300841332403297407132317464495226911118085354328651493999341602214693349264855888530118153255797657197216488016505761599333538183333656924855910545198305837106421431286340856730241150978097277432242538394843080487699455369449524508951184398420038046306194832683680254632296352440420862962268344229276070784300145834158643196897253315306803689593780213567927685976731340668004814734030992160484348523932783839273490738317169969125228755701499336284475311428558058259329490789908722256528533753516154232921009555567220125882288909011835199211472052143681390721321154005711935751548302436024404693694906581215440559513382864912427873155589103865865061070431520042404890310632336653292671190415930322979253305352278566803943139309749573628538372472187546717798453560529479443256327240331855569155708808489315183381966337281299346908217105153745358141700533569879688045295502426997696718533696957441709328312329779779198911711248376899191751258926597730333013625818578160700755805650702323041099167944949936486914218343928449971869730349918687945766509312265669462125403192895591565999065451524677102376987294376424427972292049482294045394476535567831348871123904088746408974273529908708271961263266860543933549325077903658467492992051165663365587867250400512234001111739430585042755055265505293593791480211363411954170271409386322584406364554883251606347957182016947310741899771786886133267860148071411063561897793003569670051332212495513080316286212272670446210431634145881752774752407458557538638098873104696646637495054101926521107424875907504661797112591311350733806869210133252093384415005411623935924235355781550758853382767869363658784798702584266992216281481697818415860013484655388216982490603458697266785175112697884529950968777408633410748756899516736370345757795196196750740380467004806656832495090088683815616919411496662448655534881394030291346971968610875522245191713388241930566101490858127368140019264746366921193248885668004074334368338003209723030214191562027586324545456448456016414921959686560916305193017620486768043193912515964034820394472419136056374414142757155925004093604219794802760499748910928336311287500123772906772828824468008145449113974406709544619835575802166409126377070275149113852779121666880489104279221168389069787582656475512944658425118964291279643384717080928938770819972816649435337515603793699772128868333898248175179014157590525400204489910913867918621898231903572010144827735235283233638485396921092221510125826854127527162965478054910758023864459897002502789398556187852475170213561311188068602796749247496093717279243652130025506112251967208566807669650048442835111628282078664750233858996008424689790421009699894937220781280610388398816291346460965237234549403894012953287639701285974875145833353290990417238954733947610951471458323283775545952566587561867187767082690506345553880237503214786263701636312057985690001083397076500980435370125023916468962648248864244123034636162271518613462107421094684981591491089272500090378922059539889387837200839022137498967933013740092511150867443345433661761261698765544173735787184231961940500969900259470244904787369570490383600517413519685611360869313833246043457666412010547565559460791872661906171762569666631842670859008673191506538999917621833755320359748656055164556557522231711166536604088089491265217006033992571777556551382142417929750954983272514988997367373289516163516952879251549369481037127361579256236123769081215928411008123283124557625566616313694008573960118520829471908916824092994776737507078548745152851227961583489207425893803076165491288144245481368834484864731347134650267664848260959751776346252694511513370423267113431836595903719710292978404306382386632409017059035636230332520874767261049725355458070397149539711921431718774919494049498606709106248930444445816261942101595707874915692596393434519570870387549618004334138842834571814440912226100487870196255487444885960760082694640951339084662270899045217391862737764099876619348846778491135135562782528074460705603667469642542814007588052761914185041972402613993692611024600202946957204236684307760681311284272767729514409103737048317220782017404520091597601837057730628797540265467757185099864208470781754160672581826822259428881048219414801455103730819180004897810635743758935946350589689578893221424325686068619435592637326747641594267138774453502750582165983182439414432220669659426836707671333004766682200575779628843557390063504055535418224102954829180361660162510342289936678233312857830848374082325382019314351915452151620912876924722617109943262786757249097136448403372121128516484768376121532515785264905616025468613208547178255077164245046002085563622663285600666190400497622669257599834221937495830727526124285032804465862820089326674362098670679569991897680319343067801894718466977333730793078636221472673904814944731699774119343451244410250488080809830560921262721502050614030098234519973857464431998020869365132867711707182942992980631443029506150677744045511657852796216493048447423059405141185736548267568437451435602723022655905129828807075248554956437492508394551547259611467427440828271852176685826352562950599916168438120219509187994178108505884788408859319940855427233815591196283549857866664081877251450608604353955567089070634551055571686640344330501912191360976318046865926898632063524680121707779532727572948530855970935341185033744660266724051799886845846309001956329743151539534026460255984098481176082938074300963060234444403883425043007132002135963931669442082545880294725002890293227530198093591905588538547932758966421420671225835639722783918023710392491346638446570431967392536779450227845781549835152243415501159775608213278254852904905142676684722057514141802957251543230320826322482245554854117021054191496391608748615148235498650767064125082606060746389643867443008368931223838099868545101632883437646469615069219260779152627169085466509219285216326955780486857292739547587938475764838698443443349338368656981273188884976373166622767676616963333106478642098230674751780443393006913111284904058950115715546113023224110512788592511871266657064005044084249852390417664655992952808509734776988750868871828624416529967024551193725732433545938546932098278036279607840992348050384920951829891970975016216504037516427819430820741949375680069971671782800519350818177900335179553546029647781608849493310904297477400671763241452201934409703069031936000996381666607413320437419100734566963716732465316944464995861420130677874699104272244871969921776960894913101227561471772729558242679668932100287308518973067460143364713316297177755159656224999328805724182568053001666579355336497353489195466224370155307871234490737086716883104586563842711739727245641364390824237188970357986937019056712602224898195661812556978462195709105150088560786689629054082731933746378596322433104362477229375639353203951777411727025898148114739401563000639081443261292783154430086883569041734731241333400931289944317559754091881601710126770052850253835980684289157993342266778048087559617769894172343284665634411160864072481710466885382789090016991487141858806666069731863041802277480997354373011047560606770772538685600562840724380827080606446265942540769882617672128752089441206263256600526750997117018470339679831674788978551329670446449532531531433640298151792550968294436413085006136338830504557153704145071854600052844874726871046519936816305169704076309814264380403443455640410522426727809646234924702417939701684043009287650559562715018797877523151295150415834201522801443669717205237803117845480830488163169300648301916202578204736183872986078893525043523057512498351393804039578319370379554094036338191101191471721866536200345923718068699504162262369633000688235160457068315110754485890411900781126478693304196853029792643610392653826142955081118195455125965619047831222366402988415534235396011581116092473371168853692497626098016487131324097108704866952723264732899648233495114001566993882008568922340858373460247839482641609530260421309171186303788656604659400301515718001650923267341011071186189032027665093839617953977056952760561327453834252451030722821056764827737125427535174261251666884468666262382902970990671848744164960297860683925120901210891296706573277189061491552127500647271747275321812953783297835003635691283586682841010214139249152125338129248628702933057633665695660792834990319787696615031221920652414454665400543981094739992549608346964405272178564331350904194135120113793534537330320792984700021526064448050792370846540291779898785531292416387539224589851172257105823355076271221471765476204418894832947418855035236081068519530727220440493838127472587745253971269306188652048232528021693326388841564084764786615680353893517344825982542204378603464613885293316799583705943193248066345526657059936937494696362131453583631963428219803970709599790661204017729386561714304262922146952094230451140261570691929876862362731442250827619256650994945541605134909545889992146299676521029896365642335950081125225162146947457735718645396732649675073949218228147119586603391774421861810552946660380865842599806770032972704653018361996430902558372292982554260084704321887154055209791217039014627498959094671346622593739983991659880926578917076402434220850337302342188904644519672838437012510682570064887332729868164857325438510287319897700574063614868501924940798440772260248690318831467032746153094936715656558073807724206776479393788796869141534204899211308763726734511210501306108822333391617108368218120682761021179306558496512718850458945807363132307573952510878008652214686004476881869366648773692085486660117847803205246909162636447890069928596721600562109269675507337241096369391062106065463036969970280347301972696671725993658023085836565601264981256105589837584794889639892803991872550666027710536818441005891252114031787846761953444481309718961026690613196669870866023010648724260465926510752114351871927017664479232890387971680669875180182036144952147219826639194228034740395310780352556338211939222579673754239412418118050664215906230701899151926766600278530249481063653755012270071115040822141359376184222584857316057655084754180408077797101829352297984531675232666559270677869735061213237938304330647225676288917879327324483340879696719974861700967310998774479371436945415393879715741794334245021773261130304819371297901791743357483407734757314038928562488303062323943118633302927833960690771037235446908821384804821195634126094002537733080762186583923805004751747366410377848701641547809059238716370814661459785154409488016120678389194161025141396835137891209736676155221586784895491955071237336651300528777316027636598574772632134971235093692704857706950432840684467245512002789973645537866896930400366611933189492474870240866006030443121657329805385217020428911072701493009060727147674201440492783567007540941997305862040294257969805197850138071929024039251522867982735678845491402373794801369334740360932486044568143514216533973096347325939681456190176076830895947923111603941234453429592813839703643923833709118409656993474214650895731842760188435508866306270989884604407893328145400442933052599286821992599027979198977290852613175053092640732295771025186311944157681155501411731990264603178113932715526895355042763425310762925464166683151761426037937592717680148954735407035625383999537718163448369134910986843148126782840688303291073838260517904811963552438151494172299229000375997497131550306711691641730409237252540386656776492123110791946681677182014679758451697239928530013768293194625167436435004470448367210808030573896165146695637302231132983258462711422224919692305410402274361277978049028383157464799950344291270320814134009952256953008982889267006568651189369859268564984795863146832535232225348108311439559894775617209173791502152353794560250799586505434494477832631636700826110699994639157801649367188182485973875537248797085649428456669751110039831344666814902167355541097791045086857810035797116675882020949164043483423493217502764349592728600822284753729078249053315382031576241160211195707400480980346702438115712580076165259095484049541261822785518133607910463299503111905183698246713557531962970924387909206689811537012595941987108289460857272528131290375508519315456646574108013522186098139173180440423744894029484201995911221546303957081703965779531020108885663679858978146155545182694984908788958750172253000199469537361670488408351964562893940021690474240095372090677251778440245061058744289005156501982496460016101022941491565682247754188083538677967596331086389384876424618149557596877855265132902004593309126982099383808218763017655879375066104314776550953931751490983766168139201586836945045659061321331732359627635013028115029318878716058696399090084567418408072061508253802401523216684480211918274458969815882259800655185365531762741218665739459182185832831128122373770444851662339268560524278700854189142067613999306920154903477981563547180308960734241200426873190985836544818934692916647097434319427637578030010429909866750104290628424193926717922907654418581480747446983944218861580735196505845680130073037502433918846132801907288477206426126489319664725621158181176120404938445047764313899327241818483712223307768922825002214565082207552520815464526139557174788107058504436337650858692479727179163958065499111661482199928712579615208009378198754862194743339201190906601396643423757836257281718631602602326883679273080034938380948762535379807307833071085290794295622064999054099989343876411522819033572488572969835138488045042377676304909330934345715636581891858451058067316112345004802906708419850782180616747248938740656547994129652013011466009369976219122564051785469240773854493353938718414411485085836345415260884830313071389203914746923073918783635483978016769419105223298942865872669525249337680051324997565172342563157767935379961419905863225255347129778264674122101884667456687729347055105785720129713171105640845815110567437217501372853659357485640023310143787899823230944072476211032765446102049073611857311669531594559891474450463636521566514738483834946533685869002887317522177576643093606744950858488193554178952786184603961275241410617382162861273465432766889355978036592090509128208048571581183364017937511659217873866039258190816463694858471095227941175115345684463533807721507360561801034957235774512707320504719463559248061774850360400102955471957207031564654489817143022492466415475373478228146396154615000491544983193950738182382198929536081409673311377114490882789955975483469433542530041947520915736879806237881959093218246285511571206205729150462889329238964883633734707071044608562021284445992246329422169931707946920890518547799902028560598853048771388436870161665168840216753684287299959081714544802030264889724942624967529330934736765764769230889315317633445604558600811195495805649099945408049027075515811887400983914016066411632770072297810552500534343158985586755436115076547493321534749086839717784036334266955632266826707843489516377102829620157543701533515201712879375440623407689009660465651740219759161953975925106299981691470569131633403471611021501291573885985072190750539836081336913861784275049846601414534717506087421002888719156703108763487839472399262111666854684264067674823600430206159557057246253152860523367310456978704222638963827662431383555775142466146186173223028812551706124401521544954665915528774388984818429627334888316341066446210446629881394663800187726464724061376270809476496627443021638131856245283271117595837385140804133484595783843566360508728958020421768249185257530519227601878549135119567718148269821405454291598926537709885607450302398710124500381403517647393640789103105334079536054774392331018069587854328798336011676063882804450298032829877703391196017199555221279939865167700777858168763246126263414765097071398535014399172137324895431060275516181131862301303895531057427318795350160946920717405241619414024772053029767380001439610115022810562051029487041044711438159379973206359949620256383521973234995830529437597389626747929658950011069759422770579362223069213873651423358072549722501638297976032952164631908194302552636971098505542526192228126279590788690694398616954398852688239486290340589483635245232441609752338922008627162361618838062417945430003082059263336010153392700109493573879318537558045771096651095676838814153960264717713486953633002029576210940061651410876967515272553916589004399423431587563513091176167620861352322091219637420807525171083626983056381513059109264013274248050677741666668228711516201852694707667891459040520340954828552195614304942076069209835585109378239249375069275769611165078402301407348936421382872623061270169747520973441841696388153459027995269860439317223274806002441661392642839588174248830957147289864678192308790454600801218533777903045062394262733165068752300330151940567283824805769791538324992976938124701879449578519312152017222835042141583011836495699928998701383850272805707677608053347492137372482521966083105042101627863966294433869340447065626510454771137965879771215549015158984430634990626636912930510942085699823364656323481486496739271416040438415555835321494831329412648304805225455884250485561662860966483034437639120543604839607978900899637854120700681622688305607570837624708609485572873470955069240318691672538996717461051235641294380235780603489555141945577244423393814997321291732641108509940322658596559589121972326943292984489101176265478846215798902577929900924239775395630683516470865816317088645478329234796589263015719492428092788510593210390995120279101754727817743477502318991949338262003999125941262347963671285427303493447877089389512386503776552472625736002140250617629264301076567311230358897249897926827752672941975556580998586137181593707459624322776102494622997008029573525317975220694637679943315856222266153449272421530298532093497144949865328537467868407876261100038200484266311946397990427917691190186308312432480194682811334049093493175388054187028553326653503471843176708209600208684487671024674243501334794608997173237824746202477883842263793470762865156544084479621152228131470452807480836789363693042872527683479992973347836727158296111683048216917099309498325768211219479056416081094686931264595358633062422513313457320276967967404123416157165364311517261829828713698486791056681249844676772551709612522052916922571704593926242890002372354451635502285402735219840331148511872291554369250755578667003889254229538599283216513826630709802046517741979596341230800362748308941462502906867006560990268267355558960866551892992517445769263876730163359363912376408354374386070805424118452136055311062578491690757550502495483732608625202764549364082167114620243022385839256346462343150275464632016870426528896504043066555084259637583656025861342205076349945278525973298309458759226764434167550514240063341617811910246539427403401938628658505862735060119289143531968883259083914729901026439592934398034410618201813496701974785397876173833150288256319664453043983862751782964798767930428002050441513090873788670434908421923732912625339328592888542647149131346306186447695009286425715807786101611196533668315961861124229323612950162797067624093845915745785069711272993445250490093486213990698103006908967415163369631561542326629880184582721317541583502794394996583423822945481614871735647191579306024413341669528347575619346910488349902594179867907272914578398957190775347783285856057673081721984404363796947819125441706498804470963796546754772919261670577731829625499974908993037815305422845888412912153683301328675726442133433814173584738287642496352600961468315621667460552266005862270509991289089113679236286495574559097975058371087211546460841135405163663209790211982392144395063030509662132803900742422770244476390935924506720455385384955747612031912949867450580545974079282576032287255890127533309247341483904464879844784893788776616940083687419066984590601642368800389614092579605456309309394957186992807903037559127886670038536312212720953639465731347364920499268493513983065817515480973126927467327150037148892022176740503905553155856772701587331313476700643162150383146900055394572164914247270204568106239226111135574768288216827090713145179660014947854181949533415108999469476540835398162227499836765803649736916718116727991016365203257844128873307060091195089067308399604863075517377244518060296383871227285393388555220118314386725422950789127465332112184215123812560459742296161352754291731494470306519219054224165376775800244370234420040920225460621018931991587087084721908024698756419061016531039189220014310564986321749655568121065132543423849260198057024805876824579834000911900427931253646193028586355442292312177064961740775505540641046896406061876202203795905470952077309939693045569088720024800168720256721342886802545699969083834449940044125354409119862161847407554290871678336815514361772325918467112613540232022800530271451372979782869146800890450105545170274136644857866221901637381278088209068076618755617243751632731793626168221556615490062665562143525850876348372773628830131882407638182893740546685296779056048976267252207721948226091014069131142767249186221901197789632138005690645063149401733238406785901769209523618063649947487483913134187518508768824715794395221901857089527711131612396414483370973787861655419454462685885615248802676614113464421188122321876838404238116401441342281215165398592775750011712280212933562443919775071392877963851870984870714529998526702606097521025775900052687110718706992293902828778405644869962485217825299889450379607740853561733299154293404697925456634904393507335398197110730841584842979147971957109671648812199392226182722630274733066059074871144214247700495275194939977829172758455461159704512288315123436740516052041853422824461889347178580792965157581907117546496323743877883053510509539284763006221719366659133019801695779762971437720635918912176010283445502992190343121236502745789203738891557368278037046743624384793248474124013104274169435138074118390846645755305864765818949664837165019499722047122055441462166057671569395287672965891675082506058923184528755026404711289872471648424763968976318361819023788023144491733959049188237699534316499565131776240010484583617275454553897742839738728135794290941645093340345943132227924641682353076151768713261682785540131753526797893301884433353755313037404408642230962146694002767287607829661082732367500317710700332640778148001380382628551248147327251028858707501149630240532501719996935787838923219736404887823208707197887077743468360224769963213898072081858078813076125573657750833292173982332561846720373703034497248448823380943633317495442705120003723473858782956486331786649399891064001583043085413464562545871612904882866318523478341667009491140361017906541080779533524176744946845140309504090068724913865799624472306910355615077113855511633020776535556232087358907499089300054929029997738915945911057268043757416876499060577077143952827430568061584153950375208989809920246998225806491601996413398504860782333328589980772834135360771657751646588569199694474603970369793957467803405233287738082633395525960604203494913539701902177299444369798459434248432150895627035572471146897577247901177007911049869556105946805650750255906894134608653654571808963804382659702806539052603975395498147221520432301317718346008448672050783936919879265565832959271452938848161362447126684250149619408704566139541216015760521763318659141094804186160219030307971737139204532080957509295933387328716297601009446427290736127956802336301263605729164936214905433740744982681136168615774796217711997129323429379712000856723663682219120757251232501442868626190450098612031481908612388420496984731443811692757862554514908446373517986620365447681351827748043024232355579301453256455499121180174465464238685338262243710301832409125673529447417864762152383928449600773566756808260295834624682369387558365700200547425983738052300298124548533046249542585663319752750395303100186159331379521259151826009371601843265143875365712339396629775482950700766850408642529517349377742478954033552829052685848241407748640517482054343723607472126892298586198573278302253582728132351109550441796388848715309887889476195092732034764972736393658354335296110198195444897109859507711657914777513443460187495622189571568208433108010598875554547651279350565167078464474367956310845205194073427585768982652901352582888731487067148541999982462965561442336988027742395975254315973268637765552747841447296388740191137137883804935197744398487284270914593209141933760976866964128344462523340608570529979564403356044206134682274325270505415298503337929095789055691203917087505874676558454576624277519200073340439780729103084803884833748748870806591243149783400582802704332448930959383666483587372838047948720750410048912160536787868005708020378449512703501826981228340870208363342944719077906562620314051480144049139751491482886239064170416536269598469906503307429123466184329690150954997891128405420304902553816359633941526497258954436551941056465637360134681263567797559072093530931970508317299730931120070522650672355657866534128375666007941486295535703521832043691060910794397919196610650518121667497045751831510348220865340194102903711656012253025434618765991028573558840424658197790624709975462853718452397743800341719048790822899942866044570448741089384511332849172008021937808212241192651304513071331916360687945259870510546492070424152031358486080680882952446448953194495607101870022438528686139483433316570974828660119228257274462017754062216065901019535493725566252021822491569068215099471112462338364097787583536109086085801108021209519670273971220959806081103371591570145157098848618622778714973257483905119891444628293498618886914264859604665950366976087375777104594075742885643349500789681901456860014359050411569055914998204829584490236556841028748757042371527081505371309306823229758978318871517025448499363632405653459748437710607375835018833868095405697070606248545237639777480119968344001893126158822644145745592558806570437106606597463639055946164072909137295120533263406442756697868313427616229365844687926595527016154995426885547477788680226514863621630095622216702022309335935827156479129597659892427816757187161492871220185399450687445411559756456851427325057697428292714928537326676619306328260005397104596800337054703564660824583310870061626186314304386410313012289111369540805735243788865368438607572634629310386872538773448755774739319876458707245175277760868071457005820080282636844340420337868388993806753261940295485889913767850616763427596299324093752144655032949318283980527734758032627761157564039094875909554604776572725641274721281104456079993842640531928384080778488721325601007129678612101103463661005153125052262909103034855228043978881150778977853364801533846615894351360149557513937937506511347893501141151064408219971511376743165292006925906299130693469157832258959612172658785939669594570523803222896719721437542473573924375719660272554591697298735045219053992561354669764199337124027012991754248695228211403717246411406477027327644916219762008667521090238907945715376401097521071702070232916882030732280694230510961325627387197566696900334910219750715036780808309068003344727509995095187942949137824774780008115006562491497009231220114770226553309786353118022606560204991267600880273375380208884750183915644214941529616555961086994775973652182800530100188168059376514462455283038968651761548806749438865337558877458782230291662975977663986226037921258119761231741223778623069365910087901255428475579565028258293211082157947930915255768457087974940352546689440126633144015836219848442559238526397484233412357215344017736400960980483970226742749978437422141910944559323399675920999842502736945110884611750276940609214675479821746560121590598291585734965633481601787147687934003900993483100002031982387860315958495829817693549993023428977237961011889486857600031013675958938475315793707321631652342805458086932875675654918553555813688356131430445096697571069145038363541170363645802776200222046679901074294952569273133652041831452542731581852385737389973663114551473593101656975785897248760780629614016878589336781574535932434937719286546738206913484280122998229796350034336125270371291957490484145087626988392352519917809438772190621631650910619373327936940757962845332410176072971556314060746567804893588589600933744696468505212982663870891077371139090370959838025442632368968895586670924316662367146798909511218993435876149000397978862839006080004833392868313914965204904405595890427367153136135795932519258133513840881825925998950291112926062001878511106078394446650035532509127935077830424608181322951653150103064228881265272089178854730159371570389128790867371888502537749402287970400750395230791888077261135658224333366236520174682849048917548606374798052918478312426540352601262464270198815693073873240619721283766080582635863618301159192478831253658447740985234649172240741831862446756362259203806361517474412216545587729591923534691369371350805226354221206073496162181942471166286317875202707810481610595196872942069190046936084244052586750621753990179789165856919384155827126019203408123197718723282660894000920991618897142245757784697968092774550779106613203779144969398120394059210369698332745291198396680298345722805793419300225016694361771410333002000232094788750747945912423042015992779491953368232562001339033187880846990967977040822802638393566698432087722893318769012998244390677515283756660854497275393229517994351167226138173733915533497909584733926125402592496050716456237886319234131634344694179140175024690897434035709303002736124083088981152783279539351375160292604402999209287248578412462999911803542098912742897238200509915408305325670729129105107025897515474561880572505864026215284522219248357942310563967143453855422627170787723840709243796502023495529389044834541170306982624300356171102124725747414455810246929621233493962542253605739985877416506075954679563581779855868370785062847527117846219711612584405529067193660005186294194541833758142735089872624225003022087089842255362004709074184534655457018493517755221627323818435904750262228166405430806373641236684260794631959968382154382637154304015602694703769490510334026081059467777746209150561291430472395659376655922966689262266437628561178406437530059798028233643328902223089341518601497135042910100254692967516607113709695994397335694140858165142811352986840214710276793325164734144109264503471006640251626749946707205987609172244611251346938334243747315365884202600949171181179885920793051407526968481460847770839711979567503857436940943113404585458970456603195835484703494799391960000516556493396398735388550779690434144624390005055293410570659344006588682706880775981275464176101140358391823577246149368778014100462580382928198865873650650364498572386892816157549735900294724137639878207712645011502153871827316082324641312170068502078035661903695997555390282772315338091851445095890425370552927541373874006699751939705937359748653806430313808258319483760141636631378672826692148677157322850080087663982612886393246030233824756161372902842627028941265143359386347174966273564374236206085128538046116237718245244003617154970288043903885335562059515200875477514363461400935530159276477338525779577729242955536721209669735227466182964029725960053566575131523265965278656847786857890457011575366570447560984507765477924035423594666144946210521403376271418154594377453650757516249251831484273855133759669861922354604320062444399068008665279855790383675267682422547680367041168293969815094335384009301737156209771238256793409675345258749490364912712831458647123632879227716333880255248167342023777393342931978990064579504614719201822314610011544764255349925142214732428820025382305130050447744089496267730900720079912211922525560138670965252887589121734198007690538588051850699483855067807484375042761772448748711718655798919626930563473382718771987585270780441917990847707020625158315185801763996359980954849902300206481293168858387600684663822763910004773249642626000755726527319316040831048698942195719634196024992965935908235584241225090189192886604059127797831033971558737036112275736274872766399774108537154634660423036973248428730215087969082129605166864125300054137766032859697556546950783491911427313030085504631964776697230904030030174992333557064324705678518724287126051474707055048019874196132028614276780118280848936696675864011413350866815557184979586154012664491598669351351999123476484908344224839926165729238494456151444311843202140729188173280568313181589840458239300280561476381150677069505618439312631367034165754447946126545506987454498283561960851212143768482550100528583599851148671603065469950034649078533277113010266302530600888671755245060055365147739035890525324114044740831128269707841110291573902316311091252322390001664044081158566290634475064338374918317918899235906739193974531716653370404516929252437247243440847746596734577624931059218582411367029720031594104780160941321444660637417090335451739446404112431485603832844787985020913834142332196013457991181110739394980116042980735881998016238218255131081184767583030290549288930374202011264745330391713574608549400457187344916345923124503608655913046482789740438004127957816512627785022507212872028411006603451161514005846169885068670273349727203537156860091477720376221922928109797905496476985188991873384485581402314791878349523488416549012492861371008470817835062596247450092458545259979876770402411695748048512639655161984770033688055146992927203897749008228406460701479817716685232959931797100346529314412727961478472076447241104225358432714324184314440669965311003457281244590327463867182413612086735849788225076585968229082144794088167250620683045439860566864121016837787270612241681642476413145837335912312640271152269220452829979863739073435009897508372269408919192707021906071637669985257109737150724380691728003068925244230015569118894253587974373928922880378274001024265139491835641009625423856697779304977408395003829864400563315513069228621162695713489203995986824793550218568063867885942439289873884363828719721205342770067694655811206763316567192590144900919575026822967674357373387731258473997165280382185471756706596697020139651729270157176425717724440166611858349680866751759873830153254199337080736649363270813703572998088420363200804770707155630042343089767681920427124925582534489344111503708026910614203209716462993146621450328281689477976336128137552304483347260200574348278056316664749513885274042681881676565509369813797760220880054904213935637583599880015007598351177233769981511815877309139760609932847415971902870735689633639530566095632203981956731449644769372392912866277047008156568628001614037639097752781342399101618563106304717852686376884842546143547877728005427988459634360342951601396626607183110086300135521746940614667787402026471291899327510145568449233347949816161047321895655442083343290216950250573924185302797571347891610641950076398868237650219127361007301735230714591417545131649517755647954969457728621160030553100935533531422520718324028037043355587588699027875172001427296643093268446546670286666162646407292262750196790772925467440096757089766060610000828525116108674375332551473257613368873852405357738742407270283575727773528674548624055822490551850426589972330482650648009319107918924125411919370512736342133444249193876407287831387015679382513366200628153461457127179986277647810503934425683875999594142209321489267585538973822988945634215582166231779012412004554541767101516916981976128105680219287983323449901990634426435400037865728998535945021716922003093552078563555475815299808186054466509694384121783939370391428454717816085784021583214133993468484492259837425953646582136606712056117565834717291662450381611888797148337800511632879705269038820381477815386528185855586995124296685654518715169915180762678807777719711647247069377314877067205329286572256737911225204239739905561988948008844427989396535523490878001449037361146778065607930852024058420947510682508088189390515659609250398637063871655160919107904001370861567978239399873601200569252780325197780731032893699928397886384705129518564606957862391179803406140591075165818919555557579109893284973391879863936233946188565370333793059534276503411644987154065406371519025756313805674695321370371799580286588523082613579980128138220917405124789163329901734282403027188966432287852614617427955637708963920648225633281949548590148744556010698843349454345859585643399139318824837969663173850521095928246661511295555808811279844408575906267339893897228854171855137000119398668752469672190742642640980130907762088362229470826796410330110854933837897055677150028367015707973282627819039946412171334427775297818020867884740025726114030269620754059766782562312903452027465343645279121661584402576200019043429356561974686406552181493387737390922729300403140883462061550041025969416297820896310389693786938510904521218686332405797578398354353391879950396212906437128152664106948687302856848784678703833112082166584738152118657189029445081785379738192303005026469946360373982722216590055972377983705334413063353506907139212355586746874912352793761570539680746762593724933109302343287807643551544370011088921076654134418290627694392423424144329365862802943538946022399404244012815766971319283991907163993044126259970131142348919420612336040340866672058062008557095615354922965175615742732234083447332783407785855427650059757354447460898840444298902782955187939141128576769482594277042023725105513658934476076125217952832795914266976077115422593068600008504105900220804780278126745200092147822055922396380287658508973570095711222338008799264862918465809606229635208790663064771785852442242729170951874167708376514860067752826433821363780974386668948137332678195766560912016051228207699068444295288785036146688780005034286725687725972179306662197215738433431308367396691831980836843815361461056966970266296008628327822367432157180310248137081333101987132985155424981146326862557718709921618522000312853355655234984974252670789448146448248093034386457685743171788527018967733344391240116758370905059775560197408841931735746178139139923468633699868028394606206674276023306480215963961259921662993822734322633737977660481383997327110687690700791550065056133339295043476445279028975138037158912841577666338811182016119919211472178308966295648068797099602427255548920579084771578669142119103967785737610760759125735680482283960889235355163526415205146992601302452683967360170774365420515607688075617588655162281364523162694387044606338522366564862595601509683814400779234248899454202709630292792402709357659311678161044409839003529460031508325359773459422613981972062443511863259751629895381488178136907477631377944311283836170328971997901387045271818040979471094936006762206591380578057729975210666095419044654351126775929920764576000584737803975627848066612627671969708329778371565733212785516266372229422085281652692463392926453403153930459782380698063247504889668932720513884762243661770866731298561827442065720901623393326502062372368534522214018618052758216884025128932388304024224421089420941348422223283236244853558216227859874870016349794704119005608022259990273891334144196965390355890910780432947244979132089345079200389069493672616060178242371583225854997176512471945780574892883369443446746869973783813981384804772972242345311675184878085290125311407478593389880785301483276415486485756104954164484081086332075362847155253341528357779030795388719949000055852463653672747824887613608140460136393942713278978265902886205490089401294734447577846769834902694091342694014488667353223177394222336437386904405840027768921398715992203604765981493532436383282707860880929813029952868644058562707185930874758897965859038287442857610215388207040288202916855708384665519345227299279951946266298081344282743357897637835273051525719199683712895591052075065357184107115471504385827878493839552552043636661178492941453861246606770621497890807726633774508489836060410553118817425152934612351289874804661286901212722881871133656803119369301910524782355754419366723775964177218464768678412876297969365800203829439004466158075824890113576595474193474148921204940513487000097653980758120165496411910169471049715508416693670702895867572116843977725799473211397370938830804001535655732086774747415315979781559482550362737675828180081620729573089266335318289529859080597955096767984779846442502261502520740827124785804212697690729497052006537815006260864358050625697602659955044751758782575701837000793971548926323722920018803072538116462299464759019142408147315032215049294385993226178785970671424285386819926553121140386028722987274818431630086446752753801166517280861508494885385563653813386539672701357403580639261822683423825434579970680590134102805103462894441554926710306620388238822334851471110219252151199406746143067858524664258335849952029743744721764481923342447081028643536865808036323165304345790182886021159687236049151598278116562722600300923062909432882060581745462896200793513841586631057403244721972051890460503862801148129399061097117868942873447455409601033449290867887063356511831424644936580138681824539576146111208593196301187052046506231309613088681881698775932202179298031591244643473444271122401547840123731847096408854708677405862484007788886138860673168630821670524543737318395346674577663808725681246443013397447486438536525611849122214306116825262328524334876469158879902084821766562108587456747326041529270348939265304394908779407027264219248806643481195203311291550893556789348709476586472308552794156537723969471562363247031137097076694026589178509029088606007840239428457840822504755173383742512267456673157188176091560176745975738314729374413687556493557264251064082927845901678757185705229574358218323367564720957820655469259064334519057116151580307077532612545263415568344570186146751863509827334275613441877001647964604114698107805905551375840149612162132005650968204695564748138037436040927247561839813648784267289873392003894540861066212222531681102724587866879795632963923528984974072448376694102879393896420868865038774196379144041295959061412384619950918840712229990892912089964546826042035299785137884821878271462558435309345164310117887741220029136588203519323929003092945763381014225095871747146281008767596082450971859894570552617572134628392024971618057233303153765432051785520376263131940132817980706991585103009940622500037837927356184563246036362230168697504229740980632282636684016336543237263441849409847030700119366575043629098206119366695646802268766229744696100204771950573117894243163046012373285734645990737827288534530516212982824615856967266683509581016549967340917435998496164024704670093135550645456951161590961924689663709814794731716611597648796963054473090200852275318879611860777444126659801215291664769148281412447462585217052073504274401189652176284266337933549282717356988473098892325969345252825424628015847535333498438567859763080633598254938022508857172781214396969458600627244229741120234651441486912940750662042873313152971000522964224628312262750991571517639452979210153368966538926016357164050767389469424523512150555340447617258685216489144334130482931854264920982601109627002209837164452963382103840564532574000579598980579379672023982850188214495059979510706319398511602330133375961435377095017211909782247445534535040488075899417446685003593319146188341970190136410337399157888952762952181212272790881430987044706338459489021160318618345456774800181026282767332331773960626070587149463029019203761412378939701972782665544251632095089653928530297299015851584109636366065592263968095573877882052289898616694177968638144415145775190668807258182128717829702139676996056368856242898905163378489318790184428031056173702593630660772982276848282556158706802594625838282327600047120506266534853297113176841619968976837395719043451225451855657188020931651271494521694941682184613347479809964179568988374620637424637326526101304323865518825980452970144940754400381279031275079819962675338290286990469831574006280422243919299022998704848535725736859623418775901840201012655299954428742786931267608027226328793514517079348795976094212322093221586783827650705445501660692750743360572051043818261549221658421319670896427956012450593431488356057855280953054010873596710347526375304284883173531147462269534645324496009837423639005604055397050701532223539358409788281820642585528519366650865643127771377007794110696626540311452842633764523912090124032216077287639258988689705288643405054913338932681362174831129225277825703940739606717781234642623113557993018464888606850307894067441238675394984216507520736655473756700370613317321571170773199106005075751032949908180887846418122518043705340899411647482020591319805428920724275248945392617446704105556681707365209868790624561742502384807480320132806627957437614319198832073591630990730786965245643453447859722687443338423539176519016578314207417963563868811599095188693360660439864811233326204229476932782588023419195595079651407465514162802548022352835317674398588107624606400192110271764248142351500337924218939755253752038194848221417233090835021832556056568748492072128139436401138525277617268919308615879078309274351149526214064110450402146047503198731151499008198063926863266231725330074293302502547758930789459376719485802037940520206741424357881054298143913621103699883742222802892012317381858993765450069575448320587998870746161529833098899780125826102031800649378648688208564648645047183312857425745232794700031076691706423146053766612069244757613208608390231887180244932708540187705432810664289882899546934796092291198669308718336043394314999350521924852472621003993136148522638733769149110846832294651269996795791591524950344998042324477018339923764660874468076742913424753346667686517809308421543128898437574644038071108426008821553737089947323713791239475622577894391605920786429288055729863775609713122664536723131484423641814423159714571064254513341453192599204050396555586821456914870585897376178118267645209338800795600594599064145002640080268265858149468238098987465358408884692470764559447009073982495337864147699022174309474062422445891317127700726481241730714930952884307043125996767081027794001540481243035098827499922723504180579379449095582552097086904211078826592171178466148567434280244033477634357973771684102701239575239168343978011434549197114936103500590125498511038092727209967653936710459090445977159318747361540933311405292871147599955143893275588619177145363819025785883320829945668296307901426503627678052847825100583039463750075246443959156805284974017633272562271764954520290647966192096388478156020970635322088061285146725885636759573485566959617504343472233182622796780418370950316746685612556721932198307685283098193163203218779503465062880554958493707549777966340985387382987103531257861590481807342823354656758439720055893799226422801744710880970199468959432926839115495886699824443153942287724556303717195297142218144329565293237064191247977649545640988361077890325987960543711264479376768039534090184093579909767455553972880496185340587638608772453447048903191947686261538691511365194297841778841658429928803670133741706199739265918096811232105013506829835779121836749198883731351728369915253873572396534838650124519724493509556176978594189027653918016086242151022396432761316830508709064813441223609685726498900604820618241034295874294633300647242302034613539807257516407505084252282849815908313370566032005677589435827895170331058393621390523058507073687132976915986434635832949255681769572717927320322120374786180888827496896180652764442581855706838509916274691337989229544102197171857604733348973606449615338632049384313968235494784561717432174415778005543771067247416026765724304230463383351896522755381308985054430347537914845130297002958441995614663214116539397437339250228922262522872353032100739695029390020566349274179733820886903939977614072554723448345599624647644918426119711214597494531341214559029090529355500533062747532353382354004768141966597994793813220772832362619419888163504505285310185490255859491501622512525148706251515551069757418031172641654969681224487093013346718983700575690238121309196570121122682583477519753969347398263764847748638827781734632387468542796824894781212443375383891619787743436156366765458498479969653417301563085635966163349491284799115298199639316104500520460385808507287344059660354062352756935239294009854410123818909566922348079046216762384901777208825197932745559924219299974753196278284812882210941331056218678495445576316274641294682983467319664166258284794975857874539320663848236079149939928216970033206142768705620045803880125966366702024108413627807912551383106907234932994943710508796070451580931396685612668547861854759072809715435114062556763846206193330448715227685277865913570785378564276261126550663380797614219585242555408811165978245377315105712881456911543745925107794853182614670128415193500575967862814390269860500611175085607522179922487816060144299321423063601406845913125944582966638846931229763920119570397997692855964211518857291542207473086774241734926735494964823306761863524871296348832568974282805772441184476113382031516900117962309391364450908309038622147452048531294906470913990758519521819082971502877799341827846023573999091812822755335539118742675752008763064505453487897879858621719416908118979297260308020999025126439848328508559639026699454512047744719479972190414679750182306608866956177490156167746282400587727680608722904620276109336607674116109483202153961198915240040930558907198304511757070934043864034101728796371311524594588796273228406395153828777691133146020112779765395846243930901285971217498809301791544265519905393748651963942993113645751676784737603691438941747488124935983330898509921598822181559374441934396664023258951105960994142699453308743566843336495755893703644814421029084373763202595745489844201345783622743238593746608277185182943171969258169725010463564891236406591573040144474523203803140032102694106177427064196603153828936048797839066370588483969965978424942245753036357039381592097347593170683214525429702177684378976488251790070418309270337395904284542766606455727591949432730594877199854614776313254381446464728200654342541003166006667273312489075237776281090290022057207243041239320393892652342831846850299266721012258305505752015367731052412803473672310621211991681466324948848052878009761683103079421073525197547238767297489979563326989821204690644578945783822501919685030163283246059340463485561198782874288628148380807851672423107996697230191109821056504246832326585552507115426027572995457445576523594576111291114060702585972969528966066924509475891052978132997308065517141003626327208926046897280134573600191944501952168368277950310348056477964328448186903579696815240058108752056783450305156044278152437630699531644553500535781513753368550307946425015131279407162896633836316132889479409351557506881044137843790061665448864671151640836881077751878594552481181208327192146888690641964127625031411231970931639561082524655260651376804896050837357156168714974993189623921768390843557376465050984802339294217527121946723946491174294079508366759617316539902155623412450026786691576669812701659085793709402217950995786088051369555169946043332973388911263650375514525562075395210915412180282834692968254660565857578032443698431008272770335720960032518150130562735772683278120408853995482711241006921411354424375088341358101655708437450691675966551778078678628512901361259020967338670736887931477240579343541811795515103832664283216577354849301749363696722280893196152949811393311146927018089931471019197122375890416272699789105198374524251868872862652628173402938641582013438337983036060053997370219024362142168824210522487303859633974150587020681437949267424224619436833928807777748360095736565151978558444134953300290649511484018080283340541322022311630454291741992745860871949206599644662910708375662894070290386882737888525667809493614787467439085674576853650771217443084841539752903730027161870823495125337977140656283715541961708913400453234303004965870782330364149851941101769567911713164303787640118580682934827993253692286413321380031374094124868663350206684233737473053378671033771326678277792354042692803412921273335762465629334918061272512187981685569848982002662604258463621992159249930261668090917697997895015853929478758630093079232609546943715008075005559124701124814374745568212973670292189329203799998355232545811194482996139539925917350683629479847954077848718457333469179183904911632702203168881488091985445441508632996856745177737202399475146833516070848954444611890768575543036862197737227386567008261347351430642137238260001341547151417462502887092421480723958565286966637697698783144895430186431129265295593299438917734331677739283500807458859513558255346321480151061473695611112262912702920126989733268920761669595556998247325660487380582124599122608870811919511041246427159438761274573248300455082109409235352691132425107805245202956497671072965151837128060852919353116901879178508224573355556274730087241653181057499701459206385782756321892377943698345265990305452105351418906801406118993836057825679134995029546605593306524609601582820774966249715804464415878471932180349125921048355877802581299290840546075735239422818216200076166253780701669940801118174660906982825318378642623406853708982582507376954494993002414482303766159554702001038421888374694150044926223836951729112741231504294922020403194994813448064296896781406823667623784709687614804421730593795581744822728675055229933763501817212141259555719710561171581714265426129960918461101101161580327178214755669273609718551728843046313836177075738924362662984725621761246956665473404520571993115596697534454641057757285338370713709876301971916446667963600424742963444946558423149496578344582285971520606485273140767756400197225649437459979913707371513959379899758198341553659362707000737883457555987563697664969434306954113811406628097188684040613836441530250490261626389163150717392231025092148708023768742169103399495834386207022859163204626697491152447973159578538816363990907773258421285261710115158135288080710327627618917862887256802094444566456161081787245764352337228139731520562185965373883112689540305699630956562796964415020088792208939988348595477535986404559521790443346286426213582201352358704018132651935143388262668016510762851472033056003735368508520653407911615617518286431330612650619486235038990105888853283965908781114601392867636165600300428416240561437093862840312825683427071100335503496027795907829743895515832706520500236807418366971387593669819304348110503317641584126776489710754622443501203104693930844257066488924230930383853194739128233967717923888683307957221712644478419955158387157675266195988259865588640413700741101823523564854544865431388392746607635353070159621347090737944104966402887475356347063522917105724003966944882079288610562913020560593534958245575364620992463411487130186393065622960256734857395889793106346178445485636789948381867036578164698036611089573670888889772547375831694931744024986668970687159262975411655138536898642568690914612454581451472163259866955263380771933918759707943745985977848234131069517341239738943118582393998005340297143709182966182688210403128072984629270296031794838042766139577692453634629017042096883487758405294352472557070369534507569247988065543814601202756384245128897634084028806099435899473053761236249577298844185443590304230633175636926171338477620582057209985808874142140796283900431156660774073523496640269746528556983475144179974224570018446601033069140701756698934346632432803898080346894502116661222744307213792855127504269529385609942736705472841797029817935062739238808812338256424365378982677676730209254023135305415401156631566249515744542877200644249671608247127619294327373433604993974552390434834427597649609124447263154963746730878774808169259407732738964690430797070418690771734051110141582044665731944763757211049251588773766669151303472595250128639459660363912291143705018723692872589234990884839003156509630100935532880910942328224209576083178265003702274478750207304518299475283933747934178090916734194685145700767062301489217087452207710868524259027364905970999184926909371868839740512673071099012687727913906527654715285635479319994322904570647661711642249918795942001854654909565235412281939660997855644055958235884263940446715253491564238448410799129858074169452729408368278932727874317067056204601831270889344275663429326558933358892195957375878434431141411488996485585198515940985537106508775501797109146867663941596009362156334463099099468620989593952605867050071118547477322741891544820555487209149613771342185404817034123314052066752923664871335599409247269823841743949619737867358053915616591592910188728725996133038920957856925546934205229694428605243389396367571562387720060799087568940651559437504558238515327187178536052050110137930037210894939801410638484073677736482099560625884494270461204156019429575021117609588258413761801159542219115249472768854826750510823045130898970406638825319724511056659397399004016854110604011882288242365311743601218417054805592906361611828717410961643861153430765264179331446596330087013739206170002883677913707479094618826323238365913882028549756225853396563554866681046349029464540766138670234518995579753982291179367942230882558562316069114855817862169104307803359735814097745680041457501059807711182194182064808276662646437289053196099959776037891887978758572846810914355155441380810701797927305052636626796233718749305965978788479850398511437892564072077502803032343105026199032108513565372298835157577546445880252064461417380341377618399519719356616094748282821178557658632508157075268819410676289839986265473294775663529998439780813201083933472235042234457177971174691577974103698662576438120902883796854996968488109737799879004033763616226008531277537384232985666698442010120829168929163461930636059266546285545752955419437166911766073186526632207929233207599217241071396203659403913934005186075278317225814871389794307596143774055625090427731485256970663511000814342852472558903043328376370923308259942243426298300230223646038631749454679180603078066502092327301206821757819830844569577096871410864699106829926408927883407947755140837236365676634482444292655876202145735087652428219256569491476318240311506511084153021070090726521816671021802312416828508884343899776316793030791147780615048762687767255473799612160387178670153557316450446046971279748389890397885303936378864942553523466973920762734526617787888268951573166072407689493129973259449747057104485599381203888925400175599169234696544492238095616244922571887895063629170999469591589862941964532179871583640643978142621611074268267261349877064247782956603850502232643230226651442324350332577973766780975098537830551490410578685883283548200863687287325187261331935510424630282789663924464277181777906516213659597193026118305263511024997918977598734569491175972546128568667330387270178476534789131425132888724988969348452694694757970651988766636809857781949231658477134908666323405670113064013007062139686916678236825250525110624954581536340259119375546226194313924336353405554454355152180216221870477031322391698251849072162432157079760658522880117183648938672843293198517487308412138633380902404666785269194996661524607234531425813691255637833279304690501206662151549866525739316834558062752727907738744135177121124248126092900801432146061748334901459410498998763655725525685454472770858994199424634380843524537998720415009189797893006624893231643137765594802151866704726573488403312516858786257233039285555158662580794656595935311738387149171241230901399052456005431285195999486634789428181915473907836967844020517352255366269678442318959341790877789705450435393378528797803687057332186489629131628431472900031502461090936486665361263240566068369669560303805850225140842328779394095701041419652520311833736694683936862773269207666675639304277090079580584560742195812339047713406520227846840304890811088289933202323105579461539085473404216822494509365690663468199006483434833032569104949806057036566812907648790421728121585866119857152489758341208389775720726712067510490280288118835232787341120769919034382029618088049211107242404168708607032068391462683688253689324302822877752083650024259226063825295300778865749906501938747720905593011499922879031502149917835515003106866383037667775025003799234317046101445030295201246408562075826086205065816261480127477744121846338631870291718456513815618013302588393856694064198028928446428060095356846295606002681752105092685039515489328422373562214138555181080222747683785165809087455355468259591903080795888132052796862862352081612997108411010058145767157628888450462917842330177517068149282023713097346261001870757098553645058227021317431345170590448571775601784998936629452407833514666102899785658190992736690979836054199540438552416893937328517957043422857283790493687419865629836567791610840369402794437898351519511591862261033182809848086473955320058528137008958963027966300033099543997687214548935683416120962791397515133389772781494583376734354451272356850529448548797382663440113292468648511201644072992735192004033312618987576345318148927661003565149376813439849232953485439937194267408588437875833169257191529084717559439014827656131618501747969292646381314649604309464939106552688129290718138063980288879011781742965188874368709497025560155774432475756065082275567333277063681607200897407046376737533934155684292443098360427168281463330810643028561328796192483947356003770782134053905391807809064929290249168786459379790300293944814311300717642431809464368341224422481539544718439215214441805590181903341274724345338255836597809154497982761706092885974032841113911452100066975345146654568059801521666291413330912118760915624924339931993473811638355787782074604652970943747212172499859650604133627349854655128289039495537238831308280181634265524905701241339974334753412122232998611659192339149899339819804917655450294196907047051969429921842972251353998377186944440689626997074164407448187280453221616742248945421079789577609519764398084410885754673357121553420445102249048919253258806857326269386877907201212990439798023382677368532109234741267220781268323216475256253602003923384512020440524227887667743581454665442929910928664078649223947691451718777594928954621910555779273846562828627007875303288407922347303914215075499133461658905252568567462148406413193269160012191348256817141430497174354454593280060293125109101755859328086672038979971155129763478141628068450320687243931530132765634752257045850981927492276810047651405644100572628218159998500260246799099816732440018022650965040922544805470066125352146166397824937421671454720875313252073111542241398924705160365603447652942379972811552133165581896666182280245830936608927961114634007956943940325453782166908993333551834185818968879256643610948260776558857224560026082779602925321699634850827074610661180511893269786710889675926775693267223892009472146427346474522164001352511910381151301394306172239593142575319674867960931907409748628419792120738993914699131119105395333382423684682179656870396459212019489780973134969437018824221216627427484214008838911424447325850993248303981191716964491862903901580137609622321706790220275795063681199472555750871536252501404460330033519813545409423108154864009290796483397809927948348745855994152062360268450375059785155301326658896872838527126914688953516795908254231035799888814672415325186087634370371238806915860277292683942191023830588705099669135939153110477244967012207827990110705684584052693344488987725706836507536559001770326829045907632966757489321319229060941040817733169785717469547740967797145406195439210860178710085860116677433881882709893411145356669793307996249666294266696774518594614596013653136451217811844098173659551408589682886610681566570027126621139989179635349758012596579062447294224523101888901842341656688536027518971420615961296385607978211695849069133685658801008198368082177972317088201673463021486844407987205851451445257841252414332521021943823060066303026057114956614622272505486078551035384561638826257125086784459638104107506208292915262754489805447084717549245581553371664405084691278682606042359174062947197080077520245203313640013835018798573543134951610181053779299605737345489975658655875368798628002776749038443343502567202144369485850751101083206265850597432442065782425946585638478329078735427316869594642958057269552449944697585151938188116479020379857193310313672345802751894920282133662848845060213118809391891332798325628484759099803407695793071822750416541443025852288063097119516496746661309849209475561442810310111101443898479333152912885957057929799114266648370189838738499534646370093348482841957750785642781821407447807190876157922636351542659430017926160118436382581098006429007999775510699510854011745486606847666620273233101531926609542102112731549038277799813525348302960692512660748181622104144748371486134972952638861646551095168056099059685787263789779324133217368595560054989520560971629730163785457061542630992492012441856622227192954249737952955604942982320186339209670198775515251931876453658609783726436626173949066295052308178519988529211360943503309296205448945051696512251882632718042087752929533703167574278969769196716494601255190214558154866491651956475160003668398820471211991905344472177807089774289404258969973051511840950488310435521592748114779812713134184021280064129490519497967868741495268187896006003650557908474398958112445772549041638688514763098891195625733111089516955722416818111330332154395099710080152830095177908900572833600185705613692784388582533239303773240676661256586191632892013632057948458902593732152115995222291376642705222889153273322102734695821268020691804143237497702055980404903249395132197383396697218579033270684728474280225897758645490410790007773802054185012529649398326934308361171102702822683461826376624549299732162494500285267195643255502723983065668689356234277825762427487621786059624733377573787434588603721031962811080826717182004927760542768474051073910927668924507586936970291154036729346157873100281400954970029957901488763676716565749526315750587128553230277261149831957274004629623810558225304812955204210440309145141276607769390267089482615766679756863258268587208573572381419237636780889583069218603501553666420365602873206616913112884827731039564224380718078069802676734465399204865079437209205330179632029683544633130005199704627190944738500164630098487509197113594846600135862793101239061375106940211392041651060217371198387774778073599974345785917216505713719885112641180043277095760131475130126262615112911997843445257654586619193042032020574141466388828622654326796093170569295402394569705898140379240411244914281591561876143735589599374176019588601295349669788959713914431787008386299251736534988167239947592673206640542271383670957056995025549563875655773944076628105806144017012898914642889787458077925036654739965929607749898825371412836022352075017458299239758291474381983577362097386789082110173857696883081635469245747026314134868393570128295420748241450334578630627225489310970516477830965112311415257523306311339000582077629489340705329411369803321872944971994084531550239524101770619422583571128187718059471496428994352808873720722300979854680644655737519988157434494789975314843698972927923377574196220891317951800304940965998797045742192549876004250456362106250146972454817091248283176070149047742645232265955228157347203146327928828979959390340766643663335474379852071345169473921979013177566822078658866902629808240346315454451898801299465594583596122015965216512479396896220793945725736168550677776214370056407097811183873046676116394881284770748674562327405477224325964718096984457937026128100095016779690250533835569839516216488811411030857458171111512132624021184483717870246994880321880864115291588454763786317015818777480147282366888640609118342043663626602011423537500218332647519989937197121089351234981048660123125465584960078369964304866327931574713849978133807456138088488219633733594775585680839295779892221127969352234543960742355635540950863025663362871655437738488877633174080424749208613866969377289759033090021471676796713156369286428693907405722896861328740870324370366932510515704663108500470164608021489591852788160489412103011678102041738485322895691722823759363467406904410326399016091004072779352113925925766224357487282019810791685818441506199053795432999858338856462042866614989380670138524957344660861069383883622746600203295593098256366956708954695710901285236344098021571691991854547585762936517388388264080371203252754029906701559934663982971551073459577721664356737157684610705676114806159559688836446190785054944692189814420707667548538196622518618272016790188738900670153483775348357434739982378062471955016659166114704274675532711617391194261067914676080625811056782091523953656538821498007932588205828532964778104427446743163935098091389801199732413390313260911259964373690252233373253256296603887425525696633168148853497288822996106315113141317805659095768498256360929749601295009500094053741709730834612553494679269417343300864662389966250580634677428697645971518675144124820360250910912786923229325573080039296159670515410755579665431402965719759266613891159667162493318169583029492899828451814954121483067543501462242105338189574391881993963642172079297707311717951077280067516021595964903593511853799997030564151689826279359714472845609065816252310309467630303700327417296346843820178895612174842946238690725406016245371606236065783104451020977301327851615216160672679356984277540113942393958234886249648732962313832804109187072141761270245960934642594218102520186332988975729123879456585789482498644497102489179559369854887615793963299118103703150698422084155954086265785160668375765307160678690926268303200239216083060163354837825297255642044780644671505912550697568145787780557530343937140798782376021685392080827442512366669544402169027335915707588289364885188012764524475949521836992866975846578285524958321758992584021754785187138340562251025615531597741986777287599644822627648787164754780212205708248266815088663121818656059839729520072116420792258842569055969220127337364130913725924074781569452588878377157939250996406873202596220555834654077919210243683942485697850151785175372537974469335650414479562163874960152716183445249591514555256163053400235776214616887764735886090709270001398155039156434543897498488190736401523378248620476268338361408020060124744381389910286394970817662258883356029893878360730920168655526496714676439128926306350616655262866124090629216661250300544380811470369955307757352149206354640931502439508119886821253158539620665262315134276215622270799812867002632514214092475107900396966016833978239676236754713233957107832472986597336851423422627638134852070656864812087590450285206812474071985619524452126501687951180495862208241905505535467853374237105303107937734378646959804557658005258627475631721634903874966141546342398698340512649271424314142071734890259674095601560880425253206517593873317444732626623413699550511307442117803626713002947498229812468253359177359617741088587468223545909244865626193893947227314735644826041651666476865649094364919275570578115129607615637988471887254180455856429881631384207103723769112211189533481194730611142862449742175887022574648444336421344496232961556756028733257652660822211695692794633475876669675174213608844854696018476427975279130693663461813626912701101972141976959136101890344460331025068323223338855863126810106776541414622470090006789769826401910562414583589272422490709707520167346588315425221305081426341008422211721736076621962022225117313762442359800114955735415806724606357801839172369473896636075847850474203289126098304217106356495487194870637718439378029091975037103668873708953819903480392267374790239742312762487775944187183166519905311702568545956728733025618219961292782555781173900550525177648890208218858204239955243878479817725459266268211928716903962476023183216309475840480964177099700202990129097152115118602582921366433697376022543789127212660872167221217354783232705831944514210721932260627130974448223022765291026397537512477377101034275941966675030635567976075924968150563719223183306339572178272234293692530258933327751543499446436741742351175195715291114054559008661356145132491262141468081818111202969040672964291572852633756437730173851775486783856062140823302852040511324154503242760595321087982315328973413140419124515069627567617799730573874461242342560837590921563681257891621014595695978074903568937490351222551826268437288201834047218695086407460835943818505585343525927932535478718822795107307049417241939201229736750240096991780937350959970108610966289318148626741163465094720753762703239992922498825752106549870840129587649938131409483240389462568412259272939671401978074597304744253926180759150250490782964275391130980501584537111310931666953747713934905398624209664265843023472039513387539316238100422380022191103235355291063209283125412659273907861524018558853938402802856393477036098530641483618227397651442275868462073576347725918116221932094306308587817835323667857815301247847234227850235306648628605654556604020261264178395037720256621013706173440169501454476639049529176763123348708886387252069965369589279675958823443088756317446042112997067990210175983037518869591536307291105427056298470155631211925268751519457898454115657005918481824048218021520170797934450561675487480783105248475537790357555466076123603183122857280162326158057492425811907342378395042074631789232300625840944461817780639643366878205344176811452554211641873065279207501539655887118996991804065945524346959997263709865714119457389141504324257955022570664483125975199379841968065406105553683820583325397391691781347778354780145184102368964193749905146522348463855322144509387310903762486776148971019156112463812339371268265419411724308323992593316056976352813585692663846370067844433962516323379249251761990626126950547431486528300788121692115976912225393913847836703727652289713472967613311587366970929323850957779879175806045683389319248213331259384562592250671199406492659590037392990109673891843791097396398635246746016076370283564463128315870692814717643063146063393935996450194353308946029463534210781799545285434694784412016693724070807819686361595867097205773415396544144496887902253113760596902972242311732225656912048801408099435226475726859557427069195252125244614665531225203993910489912812531223598557354008920729680885735979433712898577256430372582228578855966219474488190702836938960432719892117383022780879104999791297065560819334878901737643141613995648753522826787581588032377608709148458366682973821228293304891375829762710783325452653870367003063627165270646107184183299795094423963322898869388438779298490281235472302903208480459974535155673262969349056756288875518419305718174765451200693236483989244441458058807716217600235125800836474288035121271190587448778548883839714152513304228845442796401057490053957384959864192251030676507147903407565072780165451905784387838612252941142797972784527596076716061997694859200665192292459938246732620487192857227358893305477515898833018909913492281551196355519884471323064551396271409931586694303898109819994435956639420061198919640559288576607518103748552260941144854539277321137552443916625884663150523257739456835930644148852072267983290746812772016459647971676530810634483005547128024630062991753280887186496439646766808240389198679466795951363534272413575207458464830449208975415522970205523986893385099902341793196531967563138950008858965763693965351007409841946933385972398151649502760536634481194098509715626170472504126846088403319753187718191561578737418902450860697069610625011596421132654378963930023226367262070679339761206333513445676277760122716281217770833096767962008943162326113535578937467773533397540525937019805341871984814179899507675300495878200280885593857256502743180755764226417567952108641376376579616962469522862211132514829617174824235653699394683367699045138370072822217516013327428420868936184527740973368447571590448751100087650463389517478876459840914826155148608258999881813835351942702104264978266182799175894130478436489860694254446586730277887800268998251135077588585859417819134526926026348315439502134956942280666360995237201746059649064462519286119859800385771029792999561688764930551231229381629571764519569616167466224309002633105210574085423932307347403347115197470020652654625043497743721168723944689451283460310677208109071306897614583020007436103938711907710787160982886164923108409203939086541790859334844851143682841818388998432215509005313146549673137607758577306436275398637856637372511197907912379892103366444851883825778505439917130813227352621860657019063552495443475386241670025102246307643186623507782034255521424394655868608420644417233850414460483370642729187290079643036885227802093083094410522482556281156508997991612822118737260114528566273902763292566584545813140090779864008934456446589412088844478889675949203944061194394000744729618711534452276744202146304173935341722998883374677640900766579227282437341527856962170037091760777847756213903038383525509376281251415675650089841312624757273141666285164816506984462781081406840519583652952007217187490827886302576326837133304142244385157645281247841102899252882306736220788181373430952326434065005109343187277652191771911616869382034727561513692413377566540629440663704441431604063241110608518747749919242330750484412767755308188517454516773891365347362042384573147733409827123032270361091375107275346895175338573041021119896311756318294745173512025405960893454443096552722211098091510700856190162504291568973549332659311639864305046205634516323685368384574872532211243513164394572491489426806736672200465102010413679760793907672667758487924389403215327569585262949817279081269555009197186892719902196708018623049100830287483674530747364451261414111704645885102890423359965136517578997208957470845307342969578611145367034626884602126936013727423530498726140095898720540996514820145761177933771554039161423444937981073899631052127497236844513612420265926674228652309650169389755265742024354410327084130497644588865938729952782746665564216647354609679674219139306863446041868005934962356673218981630238508988748275046697765617531669805362311553200777147587308175716835564989343803053776569863646973686579873261055263349591586383454490656500838992527406417768581935998502759240946901522420664834770202691548729040315594701925631492456688721408187366895665555453517167602475124199337705912074639094329745519297895400021603997813953986466536539396107310072380192226262109366930772197184604485284164265269191357370264852929375101746126979170439749316782825144607046576677545292198145256533820872402676780390683410608037552173432632196769928716823524016576437761519565930868184174754223862729640819706457917374344321608972391297207737945159399045289820488403831622348076656532129252343454000789046336127584033297223352830169873351094364780905508717440982376128435840828281798749252906091115331299255979188889769419834695383673898995264765965570556194988562700010051235504970487870611815005768097995322163901607659885466682946308718449407392569358820107638114663505427061769784440123133755091664131257772354063511545721704476653404235893454398773468447697302367540729027430503708970271747115340009845450426447431841345990737195016223035534787293806755519298502477930089415524730328406235037777989779611214229808315999823729184318118867519341296270763885344424443199136743588917164440747321360204598612642213647561481508519386558645520210067661168298329669191298001490844607871679853859661991862529044707096009649806769578625389388377704093190249556841549775443352907795826496825595607924325562100175690840197799035718092157422199684693383914073044932827727588903250243417437464131547827619464166253784826922601324780570075270475170183244243481541240347751893238169902922261604183002492888290614561767338575636257856382056937948368413529483542866890635637608055728988261573048283818266382773585826915450266932686183339800646671888607546445259503548551863395190311007052131374732670674565563542459307590327776724949323522552888469363831399672944382239341032314315323618651391628461741730261802517921128980050778507786730083890503225345636724018523256557190513815340287138408043086881213320074429302259067977123862267247427476373634508017965167004785860822819953840697491096161746155049773677802577478476738408692784509617581707751246474948731654884824201513136976740892109011281426033862661226782473396222516853771206434348659468278707809547720263695526263004434340132670874024404980522477192854848577336384531327905991491102072971788387849950813595912522896162519079155795724059309026121635815182019797252034116035277375744807973059474953264957904563782340414974674948661226685524136286308688245038941251106164079928951659296121894159142116893308570267097030871681027945706115684606496324227820289181350095002932581613842553398438795981253594013817986896671734924941214954253009118939206374461141420282580009583554038462638410304798776872109668861601176645998067700087022218351663859928089502719654457678722066147004329595515758154698793687526805424028277786000139221498427688486865548000861253636068597594569164141822468628193332539824687588437604152973116112093254511441300939665262517906711560765077739275158976625597868223603082153303896084282717856328684204117669899147319652819457401258504079406355230675838474008540343996986425474940429573871607586400275199694104771063014220397791866645858721332139295904016881024044856412224622256249453275283409665822211372149537943766944124022081556569966858804194717646762901844853103314049425312909530807011634195410071301015132754147595342793692146496615763839132313669919953038307370729659252793396784099718538601155834081482009609248564308061482956358493740047147727372157806874218551894723344078979933334660257763293985020790654141592207445904369085078045055888775230879758501725840088745033034347323418071543858273634288314649662442410650156969318330953562428637374277319442958296386618765473198444991332251431638943764463590079644154022421936025930986629198026323394488039286704246068292275507512054859482757275613518416208003217860985283457045708539267430555118156762477444073131027880720075173144250816473658224467995356477132668562448585500855929236392738143837611657210798133458438976883609097506190480088769641549844200485978911833056551420201153282264299174715887858429107360492958470746858097714252951725713078122708096210165809431856672683628800262540527813209978230661645471909402968774142841983010060072153149237253664283197007816725834943301358205218788084359847103752302619414048267371382129271035809878591368524345379666846991049136917135662549257449656507772213988810731939136883819045692190246753999208834324365416268972909727376306884082409571297776695400117041430112451962449045838323520374623124591421153122676123111933119578741766504272163509758782913447510836733205665072874927377580078841580527679346755145963495422767704235125841784288816533209172627444704566526086622176552499881613366693732169962129954185864273345558361562713682306004727836204654076810732858285459771518084800202452999005170612184153660966036038125370621949255015740621203676311615510036807442978528028137677254994629128714625066403040159562049604061233850217371476011509335978632792014302069467820560404227293549418112195467567148045366116825640139976085250962231195805042554672545435292793974418738625612781409382190680962315829176878821994875552057964263247856523855621103428518945830724149748234750050097552103895052361625208768905256098737889291321299374652730219962208917376856528087185818449950261318849273159263147471926991465070003715287417022537729864705935510119811470043700615422521655682878119023255651405595288824740502815485611382813604556924883447655365360396969001967613483318453553480336046556219825462993585281857380595402080831177024897224703934573777199331673544957718026690107082523906581244632208000828627526387469370789627005562566860849272087416041552916166888590687288659002932484927441372422514759108728683763307686231484756864441701898633052254632155243537691584417032815272783040122257735401341147707269390707575059628499293942321625332217759727725006715437729452654720970675640514921066139866564228054680170777025040542370100485900526661821980081718311911881266197345987500180086096975179744571395629132075606800742689268937757255253958973570227182641354683821906250708224965333355946718866825029778288007092893118010834928947989012849111577944019357704052678015241575757536670545978436350124392154681052213096406697964193225037369176019093092449245910190416376921986219682108859317851409060594434957635293538122147733454756306702846148578062117661818160418446539512842678734733669875695587252624855595781115436197394486785332021865196478441743656005466049788344323547909764776165420465561326273943840264367608627880320029888181473227576145798285234381490667603545990348168986495327015306946902227589999210789993938243311323093307784914653517033965358105638839483386068671595456730630562332948428284433405517698103178432864658410848054624232348764449576660877240974016940831395700688421449584113814593543398725929039322006553679945424608423935684176597135945878730218977982786573280388092157158969665261426770380601912596522126527428989552607150901623005012820639053319582826203674980275757440514554583799707733638694734860018512995316110144405207746775866065079632906759950548798530128190232659420998410004547662682879106608512691098423638785199535790227332917456334468314068994896369972397379901641443439795996119011485033198099933146215694156727432500618966892431585711527042933086181122642166372019745113218653191808371191754142731571379099485088100907159473679611929438555296108926045088950684571533002479280165727397522446105646947742371613360097334688061087777971518730392793692449201369528507493878063915067871593935333963578403516708705135514132052842881332619888249943147512900021485061609055336232332522130485372384547513586486801355053988613814715812623430660516082462199099678759921264165204710596231347585940828326144395362254825908922462444738911543791819761428939427622691049875380648967152631600132375369515032656450657583321005599239565505236687093964027224856345916702839337667499987164819767684592484912036118779836775873698740865207074390076409493274176660187935503355515727643697522786933517720455242013032686889638220378791511530396182183677953203889840237655043496773229704486962633582268140128435171934707477404913267576541456502375860688064160774100171485295852223864303389072063021185669225970416989486468237768348412508350092830617603613853924166568556232228920099133324793992317639055624740456485630826052475588988940003317337574544273364356034497037570911387402948407937682112584598141906778637649963138410914038913347407906793420448599528013310454151305397891200109991758306292835374881592940084171236205003927732979169910207305163446369872781780888841590694881392008729129593184046019305834101745845986256286362584061710205475448555243409305167964212182852409597534733887098395412452335900973758064839702776444697604582252846728713564243745901037932697325772685941955554903360522256414805486370248503224477836111155437871101095014284750967717625205593445788288910196123245373520316941203233438601825150183136985261627479407788700805049709042319088791715445159086052061437851794557753375648125754556638907032059236532412409088858171880786415797039199803213926320020549402989888206567836404176653591707965636555624752617061852820231907904332363223817993806899745839714241381301582828690873049965841829788974264490347159637223196232372028139792315604549500423312739393567387288125120380838794603638027789131607726484999007985664289877717541861228881848369947932319691014890683406846924463891712394150586892580110381497591134780606076810877992936200924754651295241845459115371351782834812332487817233089794439354039853612369986571166001299585265072399976072056246679250552218445508813626464442477252845663713931899436824942479526652169203797848326819195222989964752939764788437995391334042424129721594728452164683833047524471005651649669250168589100723798861903933331129800286919620517465232862784602898273388090037769489506826259869831555323350719672271222926885122621456673787151427207377378615630741673788846777872615197927679000750077061115952971612229295524514209775373785965782472105183751158118986502794832899430738634872497823381884436996945987288249714718680330452263577882249593011413258206697587369380083843355674823637667056022778002616076384366403527904528105032762898436550124170296056767708149817130674828501027098255711885001097663859745773212323210175710200091281684138818900382456051417920872279899086126076195901486845053022320316465400819883055952970851633544081730118511778304154472822376510281229594214732966140679247467120712875580296007227890694225258111544880114270846067377577495905554633224448370270599119376932729385397839907159537497087755596543696389136498043423320347686038895201734634796871848682751985128586181401187485010598210722721675199174342651483149192558532962984831283914150325580515536653202225003998133359831804322928092186163212705343894476375962057136293869685229109447892795183895395405382373462970316127808447472128890275330911139091605433451717192678476326456115545568108754734078849394142411280350467469597091732402173541386165694211269245383117023802891272714424435174014343803668287879501500028395218139889001954362669457535779245574156148493037296862083830459754438260958009517923270942631708194860873118833294667194353172537569305364421636202534312972016692781592585859643720314277602430107615385038473838865517868784552022950947410193607355342198418423170034078404937697935940875591348076525943405333675041182041927464695751545340676745235320981458871519952940779679061041537117901649705444626718142759532484635019915097876499472912590553492506338642981179017633286758278468728872915736317735180231592470191807908094372236984193302893143690418517206112544875341107453280400820192879881532233726375785058518179220582468341223075244166508123229637436138713275189546498665097886171410382725881559323281750292433325456229686415992664593951951794758993857527676703916777061564879285674671923220258813186794990413421616981121435144273770425235548777063547618400011010843172428411376565184782936214266846225718409919630425781855067970548364716068075322094534200804788627861599620829482673524468766502510730835067891629014953045781531552438234998910566008353074483996745170573740775008393816431495347650305767261354058027489922572808154131275614989593873202200319137489027823895386317574259937140176934844378590867055849251191791394412585056942898677535815938579191968141945638757568777184004841858906125468608110368835980532467302180826737132620731007521920816206196555561549168370559058107763475416388413344695043727767577874553512168523356918098291425650853919166018260165487090825924612145608752760590888350677091600446486983413344255780805090249865722740729530509913617129068449230346844007684499087220018026518021694502833537858935135718319676577853275667019447749463285175353126370983174632118175337527708300726863817920831603228857992904813799173778898514821076966113782444953175296686135943295850951657994307286876099378726804793896349194904096309529784746355895337273856859374061849086417481684192045654736353483357854405471933362501908836372006561594215574028604758394478497829760413791701490723614810473228673511940350997774639338633625305956283324680070939502074238686944820791488330257778626832833884486554157070110272783447088683499570483044514419598859095955308591897393973447061541776929325362655244790446704103307158034816268101253618012165947566048734437755861781709801509790118926733454664948437736153116310184738055916840871119934723412238680641383716872270153015859655998413369375793682087224340990164275491732698918856012086116010864697955337836558950863945103678366243449648035022377346523783878131634871681572919938195381004022562080323973614130052895748327751094183310065539887079945799325541362721366137891783938029850217975819094504249178003312025204272628898265192624558684315929387419314702066013029979698857626925605537656094267134253752982759663549412987374087790016179863848612735755625272893490924918570306189118965530321496176147337825661046130772807517670943454570383385314742012737346991905702707644797029588208909816536872309439314001814357477660099460274540543524660639459239251747883457583596500104673997948443431234261551208216033155606460658838379922982537948273002477110027635973595930294994675577309226220324490767746083282233264721738048146138814914062971972480508179539816912129367773428422341948734021989627052772913695971203596477242685171945511128462820571145510067890719395246285554048254233698817718242957783661564574450587541265151676790488832733496578024136020163564051151085391613378015417795746416662506419905836802246278900789675175019588709405247819275606117852237393790963245565287209776927800558793402431946399533717274489363128787888633238189860896684030183232165762417695285414666326102462710050356400066158637328724230470209328550058717650754221353217318917397400871971688624687889694870544473052942253742069268477598194185020832771756623338801496632780072061434643781146475381497621580392792137183465778792925400899921345321754335131735031037594568695046648225487794217430075177248259573062289295275043236534752386235230118216290674323991423020521976755938005137586216550280982942875108486128361865291782040712752242894698438017498272770647248285301369755252079318828545853483699671395957278534069952699875839142439538306581200031164667963034919987475080803041111247672989644911903849034963960206253523958944788898013881289084449331141667964539231100446415227418116656877840277168064852187000121595934546837886921220955592692238667195257164517873255089051071075456613097845267070960660805140636112429987861179112902992762633603341206541477085154419067699004362293916260640429243078739695278376951982003905400051495811958465181495021532734744408162937331577173819295467528626645765730428941332359422083060032365482445226186434067275882598759059295620985203985068067632801412911863449657155115304235195018214168351313349464129344223291300200926206497972388575558969805994612850168785893657051492457749206235127773783045442555493696582071280655841215684210345760029463440969848893357432630753040541837759318688460266089345549102902893923293140057991417437965706513591400057012467710274812110329888498397920184816666506169559568320755381279350307920844779959522110378671718090893192094372091430771066943160914101058320765428755569162553424649207357122836612602975468662631724800103519810445945220387047072683525430232908779462376145155915413931929944296887321139388824773485251909360839668956796350892113773027293024293077599053782391453498253460846069905449497743097804625200184995538457242590104921237015259409704827556642080426057377495578306731068004269124603999176162107280229377485436797094594268830960002386955871897145631766556800128951478183081354545794129562634570357124214084789579284826476644753280223289383253250359922972353254759875840281540545882923411492091207996398612501437802210121700921144725847677098977214821575621812518751546793950614129140676614596373076401340435974538730220228558361243087603238711293506865954888644670754719805107780671292417940733068196438574308649395358178731441596097067889723739919377642834864190391819653625643870258952610976033198750553841849607563393663366572239976413321374723450479544763994878993474721422387073059267123400157834020119027156741187569742133704642233085046490694502905718165426876492930418293390488823131125769896221987985859266634812390351548221421570123744160101023219968733326889543126174828181183295329865005615561367852346737218544902158360638694502157990523379887450806122086422977475379591169050544771222966086676567526495392013759950448090187823001562282198079569453866327255501083503121264002866206671285498750083681431992744649458418175086957224549421735394433872118723585227855472542752105905409883372591186946659174524952467234009885900369057521902316893011837314938062011384097333009227984869896011477324208585595053577024032912408558765734416230219043514048379440300699148344950433883067190762745254589426562068480330732315273888665667891833729871689428298383128231030555749920662925072092092165473633072711243576508546154697753428030657082241626504547675979086075486750784341296580707218851172734328385135034721006127548665852357161441227369251650620111918241092934623639841937581399434997135983813213716255560558293728976257608707300567997990625901081454173956811985254216074844253638590926322735171597051086167081874247251698754341447603110611186343117440198316357701050054672381132102001846783646984022280828821837639784243894644982335552871598656846682541033665710494414824643231390027061946007232143161214418481457810916880074269612248942687326326710988308085625334018387100523146199867446617762758841865443537239179612748730482786581650075098213168568922086114862851193034995307346555875217472358204733374982389457233736662072082127653080848959383925099681500081097639721186519504712283966614142205640307787837497182726860825093279442441934630675683189056014446580533810878338868868112083440528594821923201593987644499825681825031137003176532890988176502045308320471544416675350101815062729549504001219354530440066093989723800418792443932285331149452893093465910960837819910285644201669197170767505006528609857979891372778938965245957195567778394435120049619843083315552498902799408801905975879509106147441617951982128229393065651009089867264475127572441206908986786530914076441701235353472807010030259620578170661275401063449146207055609388551175579022697142137915139913217170028567439054912174863056391559648527087892363089418795709345714088309222716353327108069947160733087697765688933749921360901241664006107633195675186433238402020498691805784767614435736697314429581473247462525081956468308378578380643778347816333664871281541647911058018999574979983897425922853177904073425220672721712188884255516470793153455875924299267206203162466877228027824530354382105730037054489980258532235588706246360397586206555554896314306790170419045229636292785918074056156131746511306284267584218917236411114628474303076148186335971918415110454556566204697986583092427997345467328244804156635954084793502964047457848011475427579951944784686851387423187548240752466774287770113453372123733574474852278291036615641010994795312426076491835873545182473375312454388596804190062206539021481088833455007476118314316139204794445361543069246906908996415657196886525229705991673570496358940810791703011529575043409927822512294305648012445975415222437723472003762666363885529070334883370390896657295405974447571593937730697524309221566391231904402258350113202976034435856169523363818253796329327546735272275506378563538257793229638232937042953379296223806699659629533809728069125865893361013727603925861975800736858403006718346342943615384728306950184345682249279225488059575308457175917323627915566746301617582095786514511987378157227528781519302694523211273464312254576752303627766349710559574599817982198242855363380224304392389278844155358873095730451263087325523490190072096744182114111734357185881576565207979083995279559462153603616445597798383940615323501596770530710889192270552409767743934487366864207690483834231489482925200873085641828405775113422141593802688364161258149980051785543763809513518690724953160226926118400453977161116725123852968745818349925415952322912254448968215239932833423281380931019416744069856027160548639093296302943493880156710799310323174391157858963062960192438018005720619026173773474848201421637264521158544661723954903235034859926172079834400729105540459933550405558047044438206071309035077036798749500473626724939773105563806082340676062974623992969853983954668228076004510679024483568690027433083395183621625005616929321190524248355347931113759728231312173446885721485060446269808214114765985128407561309974902410094837999077095815350218226450664317341792999349294808155782082270195315488013812304720508398405541438254940655684106783451902622386594667416874747173307247766990588901778693906158094874195437879299705349172017856283587178736147930139186386713792317580738114101509634144852157886330330771854409881094543743951360389316225292093515602038276092851619293301374290785332113180995802833538135989390884508428859201925736767654776517180483037423438301869708980039928982906215522878687765142433384073761598175615259828088617602810978123080047108246688970673046404057674741726718117333757163265078400360607154215056903625442461858445491811172934612126384452649584259641588043462276379198580292246034739305715241260074499111592072713456629031194013225780641560224869042245732903164713999378874897058394464568883165418990973177371119523677859524274263881741102486108791672790475804137737316679491141496627727100952946456409196200672116274475468769335736223045965284494099453847802194207221200044163871228310775699710941545392856521713894355959721624789698545288284429216417923625935465558613369693495912434026293817953200064982555169252141921799448738744345101693015678728215831543654643767114152850118320234029428483538143459772780816140570337536956830764767085795345158782065609805670938543088311792806710595871370493794506950034110925188281187121695371292850725673938293564355964503315132914473664860137421430375971659110847506404363696340247908330567098079175255755406762786082043106977969894723142415184082011148450730731411615776306041080870469858740872718996456032920020360375128979351139907715686587146514237674886579251840757165298675278353687449954632000333963564800831957890131014032444446366377470365390468436174852765678857909035004698902014195477566039943791056834888777078574338814403425185049322034845153851365644642078121024741315481079533140776047892327355601764212157777714658842764896302108623491090666257317924587691363041039360536149331921114040900938309123202061981364037435508110610618093589105354788438175460302084027552513669542805176391589806295881944332297070914570550477624101417558946622586421791584010622475032972561560490273070565233407295720686985146623292530629128697331128187891088167799317795821047820404884663015119814210896681088592426143556493897067874612949408528230709171526355289627184517784702785275390450449030101087215881760591611912006927929352632704933027847324949278773138322563558292785680765915421623081248667095778876530168842339942197078586535287939184446858526337428330330241356780035439580640561956510844273628846493151977684083278400857215278294247663680589113845450877097668376222207715659191162801075352523234145191748345164720677627761481952962257550911724585485461735477362371581104082906063445653214578823914229711583622081275535672707430976846696974881348489480596443481746075886375891809510111776680301471009155993551392257733143314253329287843203563541712393288346683761380495020646115151691547432236452199972596472975960369945656333188666505160699509999137283980944794333824430277506894203639199464070849676551883677853578976764378079951063884093860832168739980664592213599264929251597454016136488830293590462944187338765813361709101311373732976501990893253599094544006236052787811221930631581636191071110420083419542690513941658365627513760958276337063612797352160636825797475062429794497805757915445781453025896982896317279128196886065055540375439145694742792941511394287927699523733314455236510545483874116966772177471382838305701390644669567192750759278158688505909442724413320974280158549584244467270104977068244970019116855009830944342409446410414138586470266081812066537523889426601126285837729641386947289307588510971273059470633247121628099995295798873287064403400429178760614768562789151614137477180086318372030409549740665598811378486657043812030781385803915069958206324488201023455499180801310744092051813427282302514520819763712864799018456863555432785161744888096734438781034685610591264971771125869037701433036158344077346506996726528366469469695473722435238329122432011684125436351922989671342100379893141765525482261524842074471886361795508659888539700864780928917428682975193541001576023795808675177464406256473161624561634136555834969921944078855479836443840210933527353993577577917816350874602040871740884888603348724582694203245152624346797050936731623722707328231342903771154126039078944567333792602841245435386268420830956033513136689903758825051737026991996810836286343781719807761504021580299488968572306735859506968260824129218430412875511992494599465980049216872039245637298561508915375495639254549453990919199491210619796480830441126423673330448255537293547835084566662516966600857032580954050434528836251797920092818644838871329445663476336661874490540760339975984167574452877609005017549438899713739312019118107045279587334611236621887353687620214687149692106363091584754110759154057857124248769578708439893148272643197955668109219109959633361064790002679516989938188889298909092590327276882969946112416483234313729342425438163043082791998220004423636410058996542502951860676996548904149130299093991901022989596964248484020164791291243005022671386846893356237188647950775307687372003907991368521768701283327949353303646168725954456925368510630559680796943241909493108615013250314812497565402892274122227261522797603244602174072049640773305267889314302208925496687070566601842341868574918006100793672506645976727960106336321352394677071930241514425743906360078870061544173647346487617464787126403171832008580443720132653387207375887100801350284151896028409996581170559847065648484542112955592138856358518271120109475055101765748657222330092451604377839017084772271204741146920944088179361594413806618663413822986935934475668914416527548903452915946657689806879727437604441377339782433625740447532164158164621706280249303953705876782111518308531470494804944311311970661739644365526497093325564595433330724382537080905768178610524712498348050667361967099156434525326640558451027295479486969874809665365338618709137274018243641550741289229738570048797087127620994051754308321045599666016180273463072732832162142162140699846004510758554204178642150799346930491866047307604509428274608028667933302457642945054468811125381263343112947908137301589700660450039580752103917284777338616296161653475325781381657975235461915965618079907554473713229997342906055871076449408679198093128515239729556935868313000017885091747047548980449864456712583039156986780086561838183675022552376638609972891859722174591201287420154915426114423281907073102168891059548652299569252743516330044513680789498156476250431047323277581641503543159439879506915964326724617793335510756332318722733192402863925979162736059634754528172642178150183090724659955100268450846610180781651704817841019976613401631958827148885842166478066989754325948735704438696338969965087835127040464400582410376970986919984043716307847265917744430293873048987025759519468044271159461521671210347319226125496623368291005255051405740414251652371182748803492623038827245636185228189525844433615354519424346467508152739979604343259383175036380851349898781737845444933325017460651925277907288855718318165097301145641779813888651701162069368080787699616768239169310879200368914955141855874073799158253489885498412620950595696830734875465640791369287751114494165168056963490470181334925529460011832521014315630616643920116939248668263345169373614093430007250376476735084701108212777911498023722243733749718971053440045125992343837463930306867965834053208104194168440765900249660224690507289269778594654975948130761471945355491123938095722199289049119294630900820967227962638446755220633540825193767750925525715715143209901817822651450888181419481797734111628609608785579629108266544598906424052706354684965515988420501008329763958589015341954191267542650109188484489315556807291627459756331569812765531400214436957833996479774272204351223605872913443991870768805837220946694698916836170815385419227844854097915349917920564206124439217800447821618067306202235003498395146567061232826713013463386819527416996686466863976088016593232388679397799920166637630176858975115935275589034830406044254391727158051463184789990314285904245324152469301503678922959544801959899104708811169725962060231029759262517787453890126065701828523766136657320354460310548035101706492984363256919180124576131456035063716912042222398488272395520828879669037602880793569385345028332899608372595045417804919866502688323682869786052029615863331297021169519375141461613474351803897922041186906019702374971307832315919267459499892075007713774930534539310789910565404492357472031806505313553774982545117023854437692337804237367756285316767909486122576275552525214308248389045635265584943354253425408024789714886079659503309116452813431661000729343899856355927084520462569078559896632327177028235811691024129557962594493322424728060759569747697654888976693988597678710894023079551069580019044832409994339245267492121384254123925383659299235967756268419747449790368186380506393488604082262051716587239601821500782873065350826786311217405764977254054551083394759163669836671560163070932376354544290124610628960148968740488201688726288246094965887179544173658093783925024088447131363141586899498159396433847759432593169978297994464361184997186761505769778773093010648308545877963520577551225416760764976558180242175092324463686288064356452099260210481208658778372241250625169091041915662817285605340827106892728141188609440839266206717298646279769461974995100867665895279548974153323316387378182767035891722026033766756472250981579736184950092670439876205970581716681599063679615877475058288437355366701394916219527289695701821199227798839794521918275296523263196292073865900149981055670499101266886220709545884184586012840559808436482747684512088392051877505798205217679218049647612384734542309541094259755659566587798190202301092000928452867978869776036507098796661937672771255201965313118573226640483103093359161476287994951085102351769272596214171173414594685217922753678776847297371391641364218218035990111392209830004493706631395962885010033878212947873117715876493916113229209171054009254149068250623414007396713797154017794222886095291959801711439598056033507991950947057337279304903544362514691983592796614411431715291630556424821619245548384329890882651734535624298722592390545164526519864333503916108615400089355141027277119461450176107815451693729435861072970547394570690783175831348746247871809779816728800479670121294908120858352931498120459254576104338357642730724161696906012385187913793416662147110458349699688147325534976555174936691313251457226491036017615341432328885211942391762420242145544261245974774915092760560868799389906843380048707129726258688193012551272979670302534824943921243501244470775851840232395723551061340909820243436923566612755594282172046265564493875174165035282261570085664496851643824913142181193413413961592252555079240599673047323696000956318178316349238550292145593023509066297255827794070909281116406539346735820281637881812347203007211111182623367714563028529909728637597854551062200592987456139713921867096153533281676229138129759550123667826386022837682140475573944869167746706977971659035102091981366342301193853679593817641267366985079867277539957478858678212558565058697941554975777544924150661467775275138415123261544669952509723899679726144323251942653806786170653642327877543351355173703046442250720771223928617431380871857053347903638229474159207923181599847652065139956405670658962610065140424410573714131507477350174444494635475902659869446345933539591532314734280670665601114366818170726959806906731172484090881954407201953432057205290763138654326668068371642218193899797243518796501595685354157993535226684968800070728426431522750324471716586661818327700236026234382133807987264238672121249177792372343901649836927468855690662884121244779742148709403806047301761937273998819050168195032556944359442714496761778406277599627498269363026233258102863771316967533888971588801761233017887035067572474394721677446902642652633849537815510436913250281020723774815898871350034987918272197985644963082480276352712659978406512283875930907338419340899581999282807376907362806278711314856167915501991862960934195384836076896527847513846834744113120085464142343175773707049762321401767631523824780402275979010785104817898778461120261526809557938562245747874475612876578124012353838526230524087525888201881172481101638472198749860367127497836393213723906959182810925060058710694806427834069116287007914902006308937772081498742897834329789682194934376267103692624305034294344502652578034460242057882585738661687326896449050752217645155221229479308087203916373552826692443169148058740217120714743772626367829508813372782675218902699359212280565566548683794820197510981537123401254041055694907440979040002798983047265821613911186911057530489271549054753123212654884141400212602769021944103771586017977906951460529479947296015186252527133946680073846326216407626634764559750613700986095841739898699693339167201802533248188780467413413145788419017245837670895414266985026404804368745996617883588079792600179857670677827685139633348319889490274042456521731553332256052896713485758114615054958209624593542528454440968854293670744652978120529986392697874132870937790217714344157062574399806342147183088954776014883468529698657422956433813717362929827610094391117264360549332688004850470817382204159403892574477010940352012225876693928556284077799860254663577056294215332725848445101715908551054982804018131629503250274793350260573453636250710641986248866743823632436073377574804270014179855761164777444683977417707768261787844642683049871644397160168414982904689073271130305002234636745325686522687910359472746493780966333265317311369461193730616605571771600970543503625839229101029943111740332509768951440221481279467526343336972611894953381930059608806056148120226570586557214074877622480279978257722457313777558720564896668073960287469517066155891222582792060393843408843704832433014533096867838142071398597596361223904145495737519785702492809270520368753869489318904548355530746166740132292664509042512652260429210576134873902133474805781287002421084605668009161118330207449867191781195949203184535288209515226019003033073066569161707792447461172086942774310538896166807203428957856604531916012619299719844329439727320424460082390490086894375071238773234373262571340795385260940564951708114516627036913655069834827618912700206511331616742121737321071172563798385488911983057467618084553417190891490654042746199808506889883479031266047336219012976069386860140142170008771748796789353020033666002423253935309230435953502396748368960973785198282002725600788445384691834277195062757884763103383057311832199830594619691087283679040269151843551388791326615562654863361924135215570625818300835934208070859938904780608950833742130673017719315946247588233306916187852933236396225500083414748968192385532772910062540970427037384562176696141457773124902911486982574545016604670196517583749056857512863885060063841680259071840308548599222956040587823733152787536047924175828881813309041722185604309575359301541984864498438842872065151326396596919500505799577354437513384791215193862272575531810376857184057610504411428840012630395650765923870709476024864246746003088864364605611180203866810344628371116984729123913413667110156432370433889217411012591412351102673779036839528666615914016073187327027973273699312743665943896879389774983667079275564881083778507211222696015206369083812303189308277946879872738574139256398405032666390773495905517408752272406373140625983193912491149838909611770443034023577723476121093329178105812010835105510801965596677091540425248806536547187032053221583066982126887691962468354705642526990734117158734535365994368306602922992730705975023192555365021786015186896264386663775467141156591689058170607980135945911892539307359568066547007494955673968011225033213820339806390426850259612768580192521613491727485500851169864003233634882356737915338892576456996430777015889811870428889549094136108647376529181578477295484575573104705932417083738458411626395603024861190243077549537854341204869672442507482442232324045538004665354467084869758432056520653891299698340003688977118459748197534274036555081958309732787525607757791499408964514623020758988536660322394697640262309369818252067586183860245206270350689061823279830841779540302295789911691581816655379686563853934896175312910287308243504603489284017568363612020092963232211906666375216121453127775489701847745049855068723311147568714619852836786295248482123552076880007353144271799939183915167822806380060574049711110506446257969643716416828804250128641699813893862562882114947459342088401578331593756806896234333183175400134294421234793297962971132691406146853388799997454216283614931116631263411780727222461424762561831048070756645647748888237511101142888525270911751707465657589725132908777663920745600728303640964207005225239193972010873019079255470254412537796687956371197082136263569679636495697265331515643401145215874993425855331160498988109838787318068592350266488808382215220990798117732838650820136068555141858894553519103589317026794220362353847467176833559811246964868798181355355922139617242537304999913966285792167635340606751567288915688306918814985539174797106518223653924244719582734476817054389314270855042155724802662774723032731955798047503446422868296909451784603682155888476169289438222483576090563120011334021079547071489251330416538149837611153743347236364693185104256683611499492321220096321872244883890874522354868194479946803587947746907975356880688856999531719672763773763664445605619700796622095496972244251888172679978939908716176344097835927790769767322195764870441778302852869248805327485092232101117623021233760129412347682992949700162659111750670281210763706031377018844052323471751326888993206148781051020544372226895848133024499752170993479412226268988082142707035567826432881204655407977800140722114416932376547227787575707319104612738083669553465881382094666304445314263037457024111450932375217946905874040985180115689883202450550487854192528789109097548415613661631771852664335086798076730605854804078385107843089907103875400777720620680142819320205042455002447961944884847097741278475364677767068814187421364642172896471652210424425355110697945236401010201683590703434033065808747070583622075622865210747422824773933281103193544737422062466456981744694984424014723951772918726505044056016817702650585584242065744642359301697397965913037158633225174010294916123379612316294892372423688617109006505777054776783316180573533191998979433917384072819551215016317953722999715342576216265866691374747617169727706507107021552213091196035336171436545233780054393907301666602487287208900303963965934404194064165252902795614198766902112392876238980194464636198586386477698559552778773063208610976197503312497936609331311851857268750007319283796273283001162313436105811371729954416859669813125232770343950719932184626676475956219765233441187653311528864416497188078022848829605060072097044288977050658724537221495071084734582776141717965452777460526135038872657350183631619732741200784674974986180062404475693916221921457895904693152556493705546251825058152382652939931727991205355842108169501966182639229846613394831658986347571337972503305787978389751196536147864896990237537194728592963306487396603291732774978800784828759356285810548193941928245317520999458413393808063143399471393390459168626066802003036354298618802798026656127512104574916043539250611015170644102577065452943533184359269648793721107733079688799300790383993522472154312573509802263691048955259998172790688256128224387120809903225742826312282347244802688547004206882963988371171339639843886819760239804855255875949899233258822710283332442689091683860759843800853804406685692669111737456069179705242630454836655963233973761075911681212631004050985405538406687472598235893223962863242079268522764935187767573021235246580757370698038353921481407206702317357890050833994839354069284339983481026852701935905909438154110818559410070917368124259728572338399098978307300960540642868668302525731169882019963005480407793358683328691591775942880621898329956418232390313600785583388024601169270189344878623988789297545122939669531375265393289107327409186904078086417782747428715261300961789413135387418647533751649102582413972574773398866073676717383063336280706532467438093937087773374149115694551065755717720811193831007809354115655115547216073273588656461998975769023111346179226153138449908191011375996695113224340832255207805034607195019057625744656024820671864023989659644842369826271256159615675073638938523103451206572871912437630759870013633940487609001587427720881372625527580237158193395674654275197765067431724275733559191342471985398500490678311244386837166821730500485277832544394691675044466858969614389363916880027339287707288472584852482116393403456576551333106016848840165957603569072567059790122111590437049741839523654454150373908170231599434221058933366993704987386728394910814604366311596260995578364232401337837675923495597881092109316798632174501224273656109128542615115904418281585689544262495142742737393992419211840612517945083196196651000719224732693993982903038424650682253193653849468351007829359348721024641766255858404651199426484857580608556257353311823537331150167115022186724132589766665872049675606356660343838678430530919242585079451964218492701146622678260739757579796618982142700248419277504609915193943092580385663764706063430463110751034953053542563598104323660995659939180251252268263312469985376692552592397332589702807400698292397766196246979884617842012633472527787132645953732604517497535720413872121608280609654161865072809613898188549202953019847164778275834246214129724319716393906903487832938036621978615529383853292856613538005813473669706963284151699755386669033119875332475177274089013439930135996487472671412426758181580006076046826791717495041940029175564756788613900162645083982392755301447013794657322367193632142722556650588796311225841408609475393494457457489378891755312926656864325042588748979137217938225497366103906078021787020963586513743857270324766424334449752987503517526451630045926945674554778041365316582957562041861245916669851691719381393324606894932121645432347040884697653760217882797865838650158827656770574199627737241594452001451099591466982950920703522507281980171041268251514000987501329388951483785682732181044113337133409283277356456865547177892612024951158272571390247056579672515208500060012157606601338377185011461261441689078668798375185505103200162745591648716603763451421279404021335717246694433750257328085590170965774743988384446385797916446821306281287385872690866143719443586306068408606859091617329696429769466346964828788868778304955477019781160172072345650508804062464959009003191842216180491833426175170599300067332364709377668274343986720841210301619787659238339543367369733214487136277978462198657919837918992686719973680114244432644495631016203013339052131810203982038212524042131386428669632852896585558254792397058961590110828990205891940321997906204800464435997883055755576151549421638414504518088177523935065933265066465211490444134880657481653087170795463655962356593186694452668968042040486320795112050800719175163043489263380918831351567633562587710803759077787173572361099680248965093046353416782223478567156791759739480754451493704002227974384852703516590859723532688989136407796078685160428177270276408833110387373266445966906734308374798632360266310466116808022021206337204458651266937365726379063329808356954011122035265323291646523668179519446100685713226868159156413862757263018185672719123008716217441764958901863262157846599756986864103404801971000165114872374651582859346661248297068686920119545914502436482078058859787493486292345161916667430439341553804234015494734612596934942320290653342958848671160074874413938518147393009523431197203893718639527446813493174893204407128304609637344698208864804615057553769230155569478186835960318668124927399165237828797994237668049877409818361019402577809767730350238936903455339186235476502125582400482956718800852478183182124408304909869280682495392372846873645700093934683205598832248854734265935184386946120887953262671875529578186728507050176658703998627073573226243062504832711101210578330999255467540908153308111977986905862604714723668493604391812046315951743247964566592809795256787085496636125723456704495449210720345812840808261516414488688629568480815147869624835427913212411613206975483495433441981090419229439421756544519210252195247945032640017990117559143317785044497977067451432791555834572827911577185472855641031531488242932874581621535243026064165512854419266810797388078969588122511336333406411042083261402567768653812645038380677487126786202945791055722599247122971764601347696857293599544992016386381575812111012016556182310299157472785006833545729676622958309955455296169775520024969937799633776788574941278500566264561073250806683343201999580091778336807091723893889314514150421550960537089895444682678710454452556703417522325958268061272243149273982080393956565023444272403898947766828565143965774543861256414940853351405421063846684474438069173740328119379603169527727116355290093064444296386987199193789973233857719829790484430792021622734664734465784747831733227141427356536182197710162509015571738597072290354293563786052777898088162001736307353777122027237869082404199746955568946272890938564733047482893133822878694741887762844315212457379997229158955218376303259152374119670144355091589926777509092891772893232370503988708007037261419572546322867964668392363782877785642435141193801331491239269471173344067875681224707955695879342061591883455122520868660818668688225163826673052814835104826023439418757737720022822669852068844895960658548407854295808744269389292356349300176582611891627412221679492845727920163968043661926185841369695724846794107035075746774314022920261931413641164963963182798115121545817706196711334534785061548882366684427240967353163684311456075115136693215543373303428772693996011081983889003072616874135546198058827295004331540871674091364099567726239251024847523334148834333542659691842460282244860771905913311501751600613623166606241041468404599772394993439252589281572669153042099688527130655397717397588002673994550500464747753567199085820891449860008031262574631271196085034476610466529299069502243929799506601382975397831255766608718372880109868049783984435602850142447452747864410325712446872617566657856645209686856122435840609347274750285139143816460037510065150736848823670583975400036522668136972200228375906509579362909734838445950691010668328411201719125443258543311718889016291510872594947195017324205709715981350495888718278134636489105029268023496080814267963112350569594261459843620857203482825653706714577793227751559811515342509076328781859330914390741246719967367828979332127736979643517420501710506346960318409801932961731676494730014057946555184468926908581507034790336527055436971973724632302763306310343981722248803470804902023955325858977033766349303927869454139400430378578251774702451483921147114686530938954761508287810144642115748729131193104691114732667538042771017380474771931825717315527378734196362173488085316753498494435152508569518539655317071856265355274368650934238907196380047118069292362060400936175550105423367251426384665027202538076972143514804755191565315514519613604636962979460465866912164750714042938093222911262505783192885519793832447472181069564054566881917358907955951880387725458828613889236264415978011920061727436320709541751970083695583220767652887040303121302296832100891375547227090075879099003539548382272281796872016263856002284811877816317999086793083773594992997647163446782334943572129845341729386746027783358595046725449972173781917421955361712489349499356850579641302852796330092510489040775096918922446300667061667835173795959161335562512363962210433762514860275366881456998085652927833758821873684456270502894527048090440540373667366587415839980224799751893829717338661782092430674392414435417663985508577330745277158270280820503003531774576120039281278296347308157784825024329090513293810858168355466683497366863138164442602088236414676511115732832462426042516958649825450699686501658557467491194985438964266791568254183937104020543497728602653421094381549772713617909800999697940798837274507484585233362724418998769708174946181413195921746944293520541388139504521401608331398018384900885443087721680429936833960213012060833787891492694626553653670572681794141524852358409543908221843220141852879054548638790930843799862113137086942385000316815005809585623799562536478926990598307706532074111548113740070296468924704449351196415388330086171534620103873548196360166743917925427143153107109237738155264828529894014804050011151422621513331070657411305247308941399499689951161542790507859851074267462725293234601392780684859478041042416748541954331500933500501708508696348831857194195630512667029136853764580888977525051787451648941262812436161736846849814225014909475846364467016241306572297448386994620643061423660609018371705055311607156002342058219764672243939680532893071532650391553002703296913675694693805361078972226751080880926028381154502198601024552694897952626188591575345028850750143327447763090584354924025188632837557445374022645525498371076933768393921431745625166527506836538956094193412325984250550368310438430746704720342052859283026469532862909179109223980217241884092716959604840607920452351563724542543277861396519694307364928804005495638857080776451187062240138622878159167986903026524438238153226754785657604464008298114727968407659673531364573413299542681502339593229855661896762311533396862338115404225093281632658817809907640943148341997114322276871814136000786056744363978755337797324304652798689695753064687315906781463485755926959353572240040878236979864229804029244746901893744180603096020706746523467707328367809942429457498875795834014846703034521265734425062189231470007410649487041292993452958185579809732076811754911880045731438864294152789423436889603190541740173759406438490353535832627561110006653480362141618733191007793614851075152558609932926471377072540508491473481092516566216425345210224459740734777415638197615270880400919774510754059227777162775158614807745785025111176964414500054366314866989783792843684094152198256861534661330200939614398587885652895424960531509826379974137977822670897948171240340808280156438531329973559268910086798726934958969144557748022742298584893092300959748886115712926250413878001355299598038677967266791394001963186220650283059831404428761553229521603719742444951999255712029911841408044821051433023388285539257702340562343486686184344643168382826961238424144683066647113532761266689973161890375718741491055571366830667101921140507284524047031754522815910573195557259505189088563309125345289775799693121450914557318022665272578295734341280433622040680874331890157957831748114387758169194916427877084199919039195156364594089553172956271945879269233528133186456517976991475934361448111165965120128646308099501403757468858352998191723231797910118584190368959022159593800499933863179263724039083751089256809473477269649370996668707817677667748024021214097763267015479289693552086776140928668505145240151124290107790458712675460682889457780982900084630924882450327014099944581451124088385951989770550258011682266021815010915076064153240334585187605866702791348435939764255068830008316151232861536636849560682421028138523272188645258276664604009089831649947087755359118683086305677487612435370898141239382836868966171522684246236244748583878845809394094397156289753226022058195948710102529546283693329911034680494087975795734831211251774752249072298902043167649921068568817933319338259818492833789421328819110342811457747373130101891197433871928452905233852164619926729642617902594575784800371947750201066266395000312968922678521500425060821049546971334109365283416371303269429275717088048119617872242484607525943962357034750979324971186680414112676274314608003327551784890274178148202882119287804656099360378837355724669255464396283516818880716720906297556529855285265227877691938961313650262788868239547061082922297385365338263980267112198511331416559658610417207907760276450294552363150120309398053754432219997734858757693665253574195034101448302146230430543849543874424838259567776249473912149144204215831690832718279210894919451613921128505577077522303765024017161753736922415629351187252135643383111506751488160804606149825675507683944153548595596766629093049812440369444396065814785442775828164006126844497749329455412371164123897647822674715050381613938621319472883886271923852175514283408830535212250946044603195045340747159493172745398225766445942856762668101665389365536058877263103967708136469992102128048911975732154903361832135051186890746880572687315856311242512441190548576329925848718923758560089045177087385749442012732733552054414935161127898202585560611162335350023268856216613758280111283715126347204452694502479770614405738110162251873125273549659225718318593791983181457106767069374794903431416590403005151483516444429464398652886652960691281450692532281439684851581432166951106951594460559614381541502647662191854811914339339892130365776146773887394985818300585536764952391437001441356574590272656082887762210645587516995578168599237310650398699642851767936049400892527949987405562332379030847353146005807659207139264635253803417829489723797698577452762209212256330211557542176566089279591601997590395603219516685142638948265359405512384909690468914060754141747982941407931085868488515409691426047882827724035031320883045845655206125421087473352685201808470446134790206199003608827107761469153151213958145224999107019330066533815444040617512037270501710367452897936506337826070954560292390651538141701681879950023135153443867703675160789262346291650137124555499380912900332079975193206080081269578073104364957285811069308331805243984002025111588955063361134490227237617408005855852690018294420220090314838117259478922991339039857273564518905873352788380574453661721681598798963144220927003624141892991460747639795083991313746551304864955101368133438716036801654408298848142836501681355268528201146824796175999530892170751748678681867919829418699342469757584704081523601770341928823077617731334505381556785162416159969455136368372932905882702100302905392834329295174853983637486855867878108830721141249180616841842947728251387404557203001937001323310041570782924344247939651843612779535109814037725226991239024784778190008767452850728090896994269656942721566910102736700926563902195487489064825671891431078123381004738499696502086306644617714176985301228263473952165014815151539359717719959612541269640100154336852583947077926781205197508681851863453309333387729556751379614526194075323875271355781492170162505866207470515154147973803599968839252033177707285005706534963275858325841903444686001965726535827665513120504355422393356186525563662423416688818559929927037972336280860543174010151374744305718793766395437540952504969706939873160106453064380503530059359551428335774603626336495746329099029152262144967351829477659768650192219538434993927338471217493230221049930168579180101212429913054611551109175091235659873986369678453144483633446576318645937487758881466507136835698503099079955041817555360617179948175473125185923953114127957040106674846553004913884438986300361102442392082513940169942941191363940808369111219137593101574665894969459790058558634742718590520844247690094571093755742717500889409121247334810339817105837022216723182102184719679338535376436187353182719177478685841038232233636911766006491996835306079572496008524764435838555327974997365500122524054695625625721759276388725983833467804884370130331027165287340789798245894991485719483648816283988868059533067019669415826529536830247252499305164986682512850141888813071655490069291424590365710606497014765429778207461361516743161658402896737190329772419842957960920886218727768784211109145669027586495166634766388181270518628020584117650067576086209209268751284288421593201312336033304274946594632316031104869395165615837965144315426928868997281109541997723305067032942460937633612294575624184146225337652181887446988234726905086743077087485534823784252508214869092027275779225144053924093102490128535570625177463460201752847714545089287809256747591811624186078013022036994631022057471916482824121001482454109034332545602679153270828772487940199335192470357622510737419233600919598655750259587052377947552433233249648743585597718653593538163082209237577907190435585144414681059173327019648802463590438426764012384080032450472469916560184584655181747981204589514513555523474104803233457118682686383981861267666145571128189134970774097904981623101918116149412032761439214239981179637296223492826156452857052334394575789424941471583389365432102173529079299507667907436208905477865938971171846823920558148453402041522178276418327167587241448581258960266127642178256536987883755725714898024289365521232897413725465871163651703504514318504965876824960586120140937925023618091868584519253223574052350541660137032916575372044542529180982975209257785466495110254054371193985701620117412219784731504986465471783301044096461374296134261100907267222717750936098376265983285634305433948444007780731299449960571724399597927580529125925128669066355528508134597198991512823506830916696633729038941761560772369388962220339528486448729874221025960740794380861363390213261938374348406893623661144728208279918222522895545662384555531840395085246186185436786515485020454221400720141937998639642261999958511836189454296036136281403804254386224986864690103102026217434304934396086997174294365868803112915866439050323662595793378323711427107602560903608451314579205662738337928008992505680706913642073152219930476667374828415501748155832399281571531429175928299357246929671809432620154111820441124944631762510896803073340781201690124352547931868754694674983632910039167071467679346059424670202940119221485607545421323648921340252290016465525892971528177860275018167898098795473826883212659610117696146855936375078655919582948019937905536465841639579039492972986181820825564916480188089549080642135536991634640539247874871929989571899109347914058111150130132414381984403328534016003979517155832880318624341762045160515630726081433158336320252513787873362562795904949324682882080677596780826026126934957569854432759121220749719168810215358599676059196660424343343334514620303315177463496224912315287497965440774639204402106972035426560818397573424413533811136631216806649119730534339333372838938198798836645212104327132144071397431211166750544225444188642441580740342694702733699177019844113410534890890729110674013801816025340750947386947709963797217879635559217164207188620585963579231170609873955934532189436633386128973881142540118981625119946071506249073932442839518957713692071518881746114008202850394521649158225783994109810551735007584786991557695435171352294365926775339587147469670621835335239706100540889165133562599703966779539313367766471745013030384173267865748152088868818125485829019052661391851947765912393485233214297320504028405560080560777016237034919799004395069967138208946756599053396070327167777426240554437412555530409884408591387068787908952332517348069077998355346376195592583276974801532852982404809529121077823196692517850636879119431067201416032183288420592290141346373187385998132491874845180786783966139786813856201960880119686008963682109619742219751449245047324604833060426437776683969090445708714133000503816804990394539678192852741037846833943434450481984856804023419121473892066503738770078660389787724258696227617694593939030155188689153331072326218248047571146557621487520139745429120054482507375012994628100019377154221843962716426008849213137747263482620256234569280315508765488131068061684820535610597294874320137090205065629897462635381836826114165647561684386073346675712740269160504089610726763344626022867889390417491517978046838724113306928747206457142070633638907852538231923050410052512527906873438398920850692142388700924058802489000894460504348397200869025488416344321349347773417291636570904338207826756042104459413404650899221382570453852859953718339577637567512814856177111191335599966312578244642060616466263572800761714018411010511172010617063427090047738786204906463330401395411910854438600766766235019184124576935936287938446882359599123024565203063156692641118627777425403426760441370901081489832571381561045661762911598575714775569464147700253589901112806550830837321865297852877197291851422217073124953895398739446145927801884937872888907882319581763141244588546199228055019562804819808380683110139765115643450275665415621043978388511734371175571305080751768140616725105146361028081041763971486839979829937230447254320293105942660037906650441988609114657603820338045860064588208396988978048777709648426446676741912194962518350466004341203067261942980933698820340435615606926774483404280264262885364019843825500499683613261814608634864641019943558458760167755346362757789929226068440652561070348830179556361777537308518028801940345302712608419657025119511439912175508807008542110911519707900921607470543957368607925875370269843980180884540728115867121752520384300935066494800577584455866911648016652054502000106978015603290386728304000127836489918756479780619007916063501984111406144451389778766450165797008311024157807728295917414322473843376981313056777962664798970153226193991778979192668702273177997361842894461550570225765269885468748159942463010546066259002393254283895580734212428627474880328906677262741404279155375840809520368442170268823603362675243993359742860355611239173844861619357964027374104208524386134823863001975910281665027295360023826374847396167194670023588915244450770819692568066117991579088766504734722470517753932434156322321126330269994076579656054876152930356745210147266623664163593136754900295111310396698978090941939930013532480624058274137172903606944391401531227747504551907437463329020273927557672397644309621969593503455516433200209643404375910745195916171068676967898304747838086191647805474329974223752225590062635538212251834367640221578908743188958157905968996396711169989645007338622856531711507191752164652796643704957089912695054513895464280650236775737335828280491635989916416428544854916603979086510311273452453519947831768577552416308989793862818928601615524593431308986658857715004125875322625001108358406781159000242917421826071193858136370603693751687977018447949302182467235536757917865854327144943099913367554974079936684097047695178622454451667943763720982905937310397759728185031730514528448693824080186055501431913967217402456641036667927397668563927619888097315337433319448510795359225954763588243342608286354116670154639464493073311015033495518420332630909215426637723180383429088464942031051602632066951393719534369148458461364683325691237527827059139384547444324428309269792319478302924807398942350007588656163936875886187738214198832146993244523630007499025063284423890406488522027725925248334554166831529942430582368015862924045546278932382770400998340559874747157900929070241846466983229845830693510874181040063589627539162264430033614379254007246259805954648322264485238437045897949365446830425539834926724433957111569107847469804206050412135497401111997111672934374343247589644285012964089730442874087853358350016525137227132118578314690145064869432461656956270407741826180184041627265915836154441406488768081745668098931186241596649249850419536191725330192627707279802478231153972970605046138877086201918427472024826720561605267522497070457242501333621722934075462016856488516337909919253994922671226939210531399708242080650144067389298505531755296788852827565328029351897327022368181968567159385495859671580299511093136805425975378693986721552096680878468522070561919309131871010622683978980227022519213175666060829127581656494857757246106199905006549548481742170901021984144827807737473160617145573322605545035071879490633454802346760294061650326444329040678093124936488350134640522523325907047727144081970201303160607377598952930315470306569624614255842677471807377225472420072283995631268664407045703565868975545446216631444857264568050546613418622584554696909452829082862695811793527181638817478692122756009364760539248212392562395873811270579024875488396214567798672217216181894991743969541418240414393070348366163019130749211169977385590842460223439170557118238878236237988316384161759812228739699211769372964150000659788658792483093416939263331471050947496397233699981609705385594413222775188505552478834101953679319989247914304327761315796625918875108447322437636018495844471025867215581292112305732267205906218178505217375891749740041647555777561859226599740925308967497374285822088472162248613974856596250359216668428613475488212292675297548915302242565615540291795558430144789693247261362597988281121989959232050661778063190910390626950650292325605893860924015805086534513229220002486131348261014010015208644735862483545500459315291477459102227667613391535806381937065014120205960600997172355433494511844539615615951913983161843506105180946465937027511233845331286313769090750389253672110643827760195620036828764569016429204819172529847784371284886166231273753967677256823549249347076087787288481854437096395432635252049988014417897201034426901420170388910387848035236301460476230081546959672076951641057781534937008666006094728816087784457197346859259530976990026763809165602490262389650412797825494338569048189201427281167697080623321767871254169804759373781814500082021395503690683364471457904320506511531286049003453309601797112614484788318540858563064999352236756898057025081899962815354781212809902837130646491293940812674164714658736674856965427503608051790533730971571204678309552253936095134668679028025882436584466148353953404761168259722343070214931914893819008215179734583422805943953012958353552526300996554695852233274899642939887553359802414053277989252296702259995499581687220648767975339225519268947458244517085005746660171959141294931178311062362579747766583576054517579600252603747502321913006536555011720272467240339099517578167781347081228941586467387399215785436637191946872978253114780822579405426485189018183994164899910241743316546994739213529003215014943654414266621048137049669996228153212230305475995912003758636522888766978492982284770453262593943191241490185779033981451227665553593235675877070992628175345091407419250927090205934772231276013131782783569433528866665982399380269634156901150190972679934779885153366365949267273459446058078973744255692955421774668439468175238352914554549428258142476205082999444801628357010072428515975162322326422577509103089664659264682368618584027017433139583848992415752275830116651072758793407359612753388075257171437905712748263723694855277682993808226026642202259888748232993206756241371067486356216476249588544754596929924250642798000073094660980638238032183029721578619079932711604910029527867928934187073659398414198783025038529430952552251884194754575637778408582471622799623173981679671330862933608978227358059559960637535684307649847442337606282923652855616821399058787636398738841602374269849562625613003065093480814560946460890872008386496873947573642502212158070335272471609315719415478352766684276996777923917779163591328178515393004497753812381469455992018562988490281873146080110117726785683017242492274993988093180704501117559132401664884859786576899997699423610170028001546201258479447232238394758260830301209509838554981268243921569675792081179688522982687529855998522724083570189075531867925843405537250763042042594130929083170480656486868713207477362877262098036076902373647442595100170187462129674944320033264383408407944039661254651866037996383956259740368126540325034875103473460734754284932658948925303130488811547266852782181262386763577624290141803713705600311086641715450245420036692779915023913276120958150262089042853232661850645076732081574592373083135877988315080211486333680900934944316292894214007032990584616869400870991954642001560078190089842255125207108695086347966255665017493820265343924340811529369931879845311149293209638699978105674938644569213709840101190268281047082710674045196304362892399539882574250843953499279246305476528747564624401219848192723655485589062376998780367878211616914129256585686797462690916192831562609125983288184034383217057562804712959243644094958957682733701546799168338849723053306774630713709112474434796571729868267406819588903849462270538460041962301738688763634406862921883490300318127214407239469556167887657433195616715524151129609228009783884037057266559439867762130029456341493309024067759066904625856380646280746387329467179977030950161237575122413337564166701357261710980047023144801367584862172470943273775714998215662863293224056614213242115677611217990247399471554426410496006311636804270045731576499884767791873692605694671388639625413775321746943784549593737200855466469636374940734874012871611794887612810178985801181894741011380065721678346093146637832427637710285428774752509782474515335606970648811217065925634103110646457936748949377227861909077738076300396168054156051232947020585008655841969669860909249094913926439716668773353238299761966730725589195141540881971755559992370633209022721445463415355855921061356367150018398473488704854738666572352442833761344313701104334484225350751832011104719628363767077207969296892061828850559090818429992550616540744071908484969322976221734251976104482906421537274467606727647039021673638131983583361422954044944013020740546189533777427478688190802428168445360132701997133322782605253290077017682709939316083668783528295826121960261914010108426724685677846343925248040326163670391212772086434153082271122273073999802183209332170001693886103699098454941616016637206967979843191737925286833846808144952575517180593190518266855046417211692874892067993382178386164027590529443950557490083866177175971007264361288261267675384733498984005983006183715062511924245256701537472456274786394836611228847865865506683040043865958238891596687459412734523304855354841398652432037767896443293994207231936648906056567183220568599639253952629751741406756572330403570990278142104333048190615682708044168789050950568917635482540942972595531959681965156170959857069178332124803506489850237622214031078479987056737852173608104093002239644647143042002314644580650255581494651759754097202909490789752018792540520958920112812918537919658383514359891554565253742351827574067885151540039612671318240060844506519054205621676775852741010432969189831632567487413562119461255958622867134832077243336423879257466384949264277619965345169005115112819814512079525864068929676756495424722687312507383686556237477272616899626343675476497332523135952812952677007733792946183356281761287928531706604636180086805601335025560820553318029419029653370998795036205419362476368292126316927903833695250906707499997560623863817396243033122555826122361508257353048133361375286723657003412360780402828148200879419078471291228181450383977104535067007746922119456197145607664846603780008841016452018308699201874517828385513892450964764763141400130175729554110958013907061313343691688727838830216431606619030851620105570671406751728916617093397769332145225455296892026434505311799077583257203986724088543869393634973621650778303656255327835885745950157205845348593142565964238615860855561255122840166144233025114489371977852316721420272895044864766130561609848527727543914997438416504743690963855443953985821541093095479230218385524969039595544322632452955609421653510887695686314702379435296173311683033070492948414411913895396656683917591837597801364440081839535884005414687705591637300062174936335277544591584349447232010775591525838356101364067142576083002257284229184078466905522084805867338839993580620745548377102313480143914732977116917669149792805345909308251611071193864785317282778314570318668005553512152866660110436407752897831454975175127677094791104175487088980243509567343858506014256057353007947851712205329578233689187919218498086165805394152772961823479011028191100647619035754104552622454441255760401152162564125180989965169994475572665548588969644454299850913078064142028117724576978110298046041909285813886648723522355931071692783228221741817580380719240296927070526306366429225509665408862950377441145463392952591329402074834611753609156522347566637514521018813306213677829109893863646493236664535464209860115928506393171977762472136664265066062683043699567396954151223541892399913560689251972326066857646893095543385886830281361818669409604827488657400885069741447138002859863208095010470581893919259871133262561490339029842591926094744442616029021888738143260911982851769524230903212706204699524512112435178224831901279565229136111281458685400516218816307058318956422837968444262068845172583297611381482620601799277998910955313228872409533384162729656446477040330973864612677619712236762216724459148591967038810231642826828633862993531219894901796277725796834259269875512051123447968464995486516236041852259397303484689248419200479999615492952893285870453466862448740387917297158044034004843539326146770516760937387956278655014447844842852822496894535636765546241439952701490050706664496913125063256055137024299880361165009075859947446048117661678842988165949081588229859586275388610275896600269995378589213375108921661725141182815031614935322143122149180573965090422930827485892212592127648604186621422828749179356154875578065330106576245556039572108802168775151530768414764433611186641241594650149425257539320783835520916582708537795547819955012914292168360349632454381546022595684909819725279536034097718721280252065797758822290650917547948091105733524616515573685718600277746990366852443880163335635220529032722115983933212545714014756548076842108734196393856261979797511461884455886187450300437627691980341333140946740157061261114355481287264510228450295683464237172909554776388345496593183486916379874198536283349633225720030030368346360297878072261100127136088009103576528702746250000585068380490410433144336429788561601001541782610414969459723343606856264004446634897488013155011568373037521256957582974779121981603029339045370834301090701731327680903644569727959886591207963722904507920615494654921808153386060740525768561402464996522337839873420490081039817502578299637115975802712030845972889124101341664111940019747816180914522947471777875022055066217237430107402682057458522324902831049199908401992315728798963886840877497017368834704888746898600700127872285912524892402541378537812264032120693828026473045825324454396517100252381618105522749254700122208332492091615403461407578256219111363552803288033163041615496654127137508816613731274383638660599592415133208168158522194836444766559548783836786035100741589849396556071516915742604903872451648984354561976110676762529550144501978938016609985959164497696349722665305485264352642362600002964521757888015789454039027790114404755941645959627912710110604454637999792815658879092796944285809263200204557455179954735249799962576608060236001283220095458980941847152642262680652219508786018523563253071550536037467169056386543793056490668957051085690259938756319128634722843033981296554881252697281410108344231079250023379292332538754860969711577349845901192982060848164268241636384004837467524290030642816232200244065060280197311999857136031180548923205831424606103287753543014710800211661074557872833751032121958679551107566258192944367703088980247457352539483186619480324747638219854820208988484429924028211035859946111513717246271656309300882086883891632353016360417172562806177309441425109197688478267637546079505903754711812686008948771068516080669520773704233260233678289194622745841177076276765398415407712416143183800432495047563766631955522209870629454915280978623803273917970420095344236221676189819580488777618056691052057604342578084886654082631049259645029582192825144130667393425680224278850778102287891817590463065330021743083096907065829761071678178928060333517382013896338679024533190986236796504386756630093409025198867017091122838419661043777712553692605034712974427133399113873674050821144740979723905535667622344804365553453713599514749654124721333111860074433623618213953317185746259361789365026998560177133603832247993929618541858237770192949597708450178924180785031586279428103835825414870231959054997578641105202836658074491660095302450692448635330428261875194751228201487412228334469132453253472716144350470382480897515889578080953158594180937678650126402922015589709114501460297465334995851987171151777958902862053502675986823514089986032350156312896279213182664059436071989772475578085945715086687243201427174279028960002359290972215024894376523964073851633193281551698418177874454513285148354406724153262036078098497409245464370974692432856780543730542547668755294623650974651838533511469224602698274440352865349963481333810416558282079968266650795830188386944571002628684172682451240202813080231366548454169069767774300133831496165174231898545628324793524071597129939774769992731347099694353977233976755681231525776823612045916211032711845219160780847712391798716354685495464589219690348581569787475456384082099645792171452730232942176496020538621604938470812421870984779538670409024576883109228420463631522539992898793971481248776306353739071140667390815814310904079297748703181093573527377160899551272261660415501528274043072528564394529379807185776507062137007563323924663000201128615326980127963856650847041362419604393635746156503020199463006383617544977142658203470372096513477693070836573524672025162322167465046342553321474008871054582038523595275334922488447472414775830268380479424826252443262425349710579949752348861148130138946357396073135249441234770068750293157244461065242839700243039508061229736087397878204355839589851410280635484392449414159847927012349184692078606432684045430749452224439734350832679779389072692114161902834171617706053307463230040717808782630527310517099359834483503436448187525581483047913373257385184378245382098436871218806470531618964970872697475933911179498998497366115141512805609928732120992757233304790936148732688969636757114254773319014649914305109853456019830990297522545781879581186628504212791747238054999838597590247223054618883627736656705177270136460095729415077716523400787311453633698987953682642998730329288084763230329394953152845645759220365333473828642131393551617238238497463913588564970793929614777764641647985155333476684403231573713610118337357351867437248264808605253585288107004734547216916193226241755412567304145719097959668997316889474391950045787032065095622556754241306244308539896702890408602467671920192010210224806812406599077842611641979011397047743746318426911968742553969814344983584962841592631278834861376617266150578757868755919282813769597344896742480336562307393597709738933410647910886728685687664580795769679085979606180035826632441634346357334095054218040246841225438791379242550235859265871904448304690037369097010038592055501927129891102488067133243333475348027043505727462874497799648429239945003897936301814298804686685673157239480166947054292769638609782031696786201897023365297508909640648190803359031987673113045277381961531633609413985295702096300825008098766886272529559114670165783078512637470454371966423399812520256537830458374817756667440105959731606940760142685677357658941081023393541923801038595307096459787021873855242459006448079750993426167317381763528831897286072047756234024399529107790186179121129510591108064359738229467308742805417478362889604457067998087328630828150698223203733852293253980860577273798831413209091457909485454562921816234663724881749626484705930395914571140747402766723526777526589408226015868791729753945200297545597999658441795322553318703486482772639551592394142212022192021605127830028859324411140637128878232211302154116287920188069410649663188284632496162684570883184757360851841263053320992036588508220315451773418101270430640195721667249917757806699718621141557575968444757589590725073288071306852794754682393765225108650414125121832887622307386524642273407190098547883394167897440314413368043878588236869029464137839849724609577013505050562031151681876324033384045858303227033639513038695886226496197585047909853404390958984579321994549649385683779725389246984979936989194113087576497585562307020331793535703950685109269273542333626371516358765229457937213760824839735612965955878942169897491126759141663388824837152069345337850774801467356332616685785309259214935483305828487443922042169630661208649549538735517926813951782503198507888894278814715882253427778959502999032268299513491096930057066091227329755526416709415586494524535294276546539493405779302501243725780800725815598946204728861082660356099223637900193064771890426392128057515060332234273356063493203464746463027326887189432494152650131778833403911247578031913641522573576147674837980336163186943138158092397856923245255243132846798860957011379619124103813534510400952432437807550499928089071238135081565599029521734658399901975328893965916146603669909474729426598498360191433599698847782196995732637124308719743615400936530518265135909781976136488958812280929890722626117944024531234299873790282596476347288727961276554469377007737761845099848446694182467860934681172922424976999405370465922057823694956709859554053116704144266360342381478624000933318421605755216439369051348750582156149545653957628270752397128957623038107498826696096790522172773423514077648362703376730240694702726499453775733043495967586203810780868287844331246037546619633502104483001472015930065537581564851438536966216347789074914476698461679747962512463708906116686354878759378075070963017596567851742878437072386863184574561356939920029282213168025331632604606480801006165774335588116791235063279864200294309978407362285692790080446512322105824905419253655763003395597213623116573644119418873974506134707577946486605294839360029400118171551416218149586418416225322494273168960630711123144799851246840514572219727461880282542666587950564010300179928354359416853781328792374043657308271933743788870836953106135072759979522015625114141240991672219771737151079336296422907923190587911624932970496861927752263758099322866464885608925482013020329737200600873752578536052777117352498829316030578645485793553171897725741153904553259054064873031359668751339795757502039975023887726078981501613913034246250705257348372129629619268252168811599438411828377549177337393836532374663947911900978529092026027419756112730930483908694115340244887643756187267775738071470276117170121804349898397645886062647609640193322203111384750517645935065066479341885770551689170116729269840126554780149009271441605377338370646676339426410773699036433887387493748988270517380218868464641183020225627367524617052616831874904715945283286274445931679250664036643536988208031612248052792036738831927558342235621931356468720401693333014693006762239070771264049174077486089602003488800078162923408918421424885844455698349954387011811846310685674441498850235590432942061662786094261468447974394496736113827216468320991524727318023865895922532699474468147652755325911576710258274518359662940930991807329786516149597464915883800104988753023951484281709926967817857217858456801965499704029799326414612929025636183211633896281623008387982947451449540968928999042693592923554127311713816969868532123065171985212762558356070418219004081692326249359605117217635125362533091734520293711615519840250237369204953972984980046458425106031285940480088541530169390673088971403909473872154367302227675363122116319279469052166713410132876670689720080307311215048498061218033050645829237133810428547374122716186439803767846885974787083554756741932380005139123715937355073683288916128636157944488329467253695157168561502999847165678015034579172064688844493936496522338418694403748047251109197390229447511796695392963994049545916620824965450422143028079941560357891097405867883326564982474528827497064420782661685814909560221541463687948743595345812599209194152960945122158440927559115572713188324380092049439313785662204204451841746661995549323579329515422984527512705358732671469650747253093808185787076512898667249784127880451268518436552925241787542169134431922735291021739917524396218366097765275369633171883494479237940375003452614073560464323942922742995257357804980158730743070755220268114403174147368844958680992100237591992873076509312498444244579486492642686172998792613237641805684893401591417785820962798258152800856732553230616438753813564548011675024779782519518928073507458785911635004253192290657402505511236291800779531720701619673469013555309636597431944505560707291352644114263896821018575038952512940520979185247516398492870204216010709414463850821846540823160986448789273948684076331723589539145586104914370114405723484036647140462134663918760079216101422789415909137426260145972213103784399621431149370429303964616402686907921760193326893815850902639637060698479884271290635868087677872594643206020551990215779611495693878399541923929723570012477330650354115878374285054950198837577879598355589283716493390050486963033811321719297481251377880204471071284030310822791254619557944234884150628633720848655138698634315045600859772304748700517574907443260844229453870541762828972108430128143032745051869608812929724672609408694873130153799569155277745547604924069713609043923103984859085402506205173991335467666851509268538989040120194558254865637748892112746289295347133581890977469160695759074159564477304327501106220456245880456946240193400318991392590442512674364831548906050862245049945866280677417165402712955986667125256048880672221628713781357428475220986922155315276043602509671427140260340005576999703755711337545526350654724816156427591817525317728941779196638780207377930578595505695886740313386741221446730005259561984062046208153512823584716287839704945097145025482783595015365671714011496264487692223324994108921087247994302819857119512313073503269762316784379855276410614777843593544416088308797739407243127364973676388295432890147559679961851420197855754339110691843075096940777097662212854740462590171117219758932816807451289265819985097431531576495691456528899240314076113226019159740811828932951147368302929729183424790062830916935031657679396097198623277494464234580147493276902006547404544721825462631643417679862899541212852379850720342257977610512008985433389581612972823938120917855989421988333838193426872508886399531411841115261187184302209773242787351944198179519504720535100732578346586077336696975916628055912722611187110835638764937318738021288306521222477312529012291389285509462457066761228428554190520408282857998302721460252326356494198730193012111466353623556651922507168734411221863867140380512360675113647251409965090739055150641667364389913036581549633310805394148788833076356731957512861032484493207502115458489600831791761150102370429330426869496102057866843624208843930695322584576445253258745334569597826709731763570918021260854444883136932954111358550088420034134764754784980474222930476156841421574126979362007199021069874793244701862059781303147286693259857685693159223344459834265361683524338483698628981991896459437246556813613629798240176880659765463606007499339513849021212920692208671327375544838439989973814167022514030492923091930900260724106505168852142662768458474059367784154640531893149873652807601173566091399446540307241965231479050291141776422399776050178774159604834673669067633831650946455861040947746465362051322528364915866465432428510841161005318561237057585955857186584947399372665351950328544757527652724145781481864635975706297181029773679698234755444000775755152287865073656046425252724281825885160985635805871683245939324330902544017734807807152079137115990439655971529354673452008113082245894139909646569175366486426925542894258162828270925354609612162736682299311126536556995589897818594781259499636840830449702171792761750019417066632209725512050980506486060324268998078468160754015693725356198607968486311347252537317830783007063018813010299398481104786321940190776819886227167632291600095874561255608189578570849702919693727562406980198801151739154346643668243760280892178153674752041204472890858756287968022600800175781747788518992341144961468199749106039498690157027908997123136217313716477651586023632712439066014044728476564591461522935078421383051853190122930700070505885795618053750343173827310842804591683771568734339442327086171327330518329353329261237483991517564582895243188411918612202323580937246093049543001938995380025074752554546937156437953407620820901494169513425901010000062560023990713035985872213801529936962962531070152159471621309348812727158508171579279874216298681730192801183451339888527018502255649505803574150778154315652000610696361928719704967757695334931082894862302474222749494745298512786293036737834488003567256636605991287277714164521343145356744102440636157923554757125690842008519254682354939695471897800606398817752220075043869417276551983497052813096281104207292238040429711274548801276387155881070010414736710021410845971733098774533128684405878133147623070776884120161072253592611268165326277531673958459086349889984199967230866208185718354609985254786296284360297675839740072282405229814247000351676359481793356638779154915656059082487407295839501217854793070663939619065816244251695295535659658313726134674915021246232190651652664326233803534245324553052206983280927943849166599036434339760114888879022268805279566742309314594271831202475651272122436688817315660908651068866519244474130073057985362422385691449700841221254878674226051957926216207457652608612762211783440410643407310069611654021949044058436655757911174421091057029939709006043598521309874383901856061915404175767476446092467624788780902273150878350098928911230404340646237616240708804344947927531890673000973504233481502709859823461348476651364630400860673962664229171993292852558903718133421581004590448947531953187801585663223323865274038137860541069067855792785691786823858865218047506754481432430071686279061428865317618198718759290974684608194325127914694655589591001708772043290475193423222678245468330420382419473050351655761280209389034589534055825674502464507680954943200744316965819303844055795299486761242979186822528771487440987023436804870381956582766686492776930379027386845250391650325303343332843291876916508364731161287175675409115355165093604545315670697048946173037633178990360121573466304041203635217456994418198913248422628893859227475711668403703428016352317255259763653400842365705742392596607206481729585751616713750821679915223315800049288992733776407709360245801261952291868832343943997315296046553297230929229289223044374179152783928372494181094216617755489886573796867159425457302169330645011667168103233729752883122293175095389294946788653616314017826555557803286989246160311840936858057556865012865480472777302371802256312124837903932801594177249302131980920652724342672685172058616079528667137976721922174937668056225866339633935695826806387019064808404390719632644459660742451962140136243365693062371690582409108258883761303134913700288867487526582884050684921516379932980960108905651752534170605206731206973711822950343088621825186467749595921744280724198383876353207761123079887505421144030012033065305004326176599153830615857485139923094337762986831675474810126210378592771333792500762294081719672167379613525240833159778283377474747602774941610212259799131556040626194450594971261031782879967608940754887587141110116427399247940392077694019147008051854426357497877471657340974790714762260560856642167359835719268906309710497652701917365525155290146311157339170354413336105314450551926380219833501642031218353592607883828861245181199405879712150147249517567608910180262440598913806751739035537077525064461328590820454330963974931003807364427060291462503000667571422429331855235519818440376828013110539347821483801059930256297742595472011176238699945069530622952066614790808955343389805055946583907301262240363408090015666571542939587559446674229303198893477144704626197694877956354403455491660043806644508083686176744929003932544747858412611325289978351632236645921043858552060710869347762140326000003264650409949811375519337912424603372736791085022476365477688384603477656653168489814522872727926274836451070125905393244658062773434262587711781107413178600324063660113434751274149115026069939179017735305716527849048675501107876321197516206335855968706624870686085778148120721664761908822728364534283189364954203981719191553147650023447515049176908016899665271308699976164286583968139375308434300118367399474567779172466923461051868663809302265991669091249438354455176658873878247859870245483205688149867103647395262731509056819027157870347855105038803819274341162856333499926211203883020318226794759964062768238208187610169719967148006180742551549485357396075704625874708435338688421693825619704620829530497080542281018451008611449293850819045054235867193529290646283896968259986880828810170284400507875732527911138996545252682410448325887262578620852120064683608163942483876143352923597572060206610087228156445354778693100825118413960351591337622312816080061756513670080852017646496740302479513538601749222619566043594925250270878678711099980751531910328145318932356410985574047057422119506736128301933613565248073582445456998917560138408738670485137149307552940305825403209133273214173403537521569028646814661365374797817676768031125775622522839639034270765678511621614028572130325007322207185274907186269713715162296714712194179676065328657553586552531797247393715570620120402902750972010835501560933076559342693893824221999299755397370890137296971750552876057149728768026321347556197868886483183567360890836870704666997581257479137069261119815626987021814480242832520611665924594643008900389082391367782454517978637432570582843377270005679360563086588288396312060076890476295126634927326885837881168068450545427718755850412974032402320575746692275848269052306069980395015960312656725393728357393637119823255227464176286608481511810781204396396600905114166427280760805333669015655352428606318675603694835401177774905249842816404362098368421248391800093714635875992458567484657887569181177830552381878108668868894467284763020617166317389759199558227913591980535323724005835137971520091810783826302048130841486881560943026118888737327941336724060377514635170630245317554512577558395614835684292682443143341508275537072791970180018875378891843356115761006267347488164119127375333583070668651500869851047616204218268835293988258951403889904810102682787055483382786782645702196053280350973949379700391774874168863137592783362772896629564689094765003089476646330034067897491427175563329562139571263109729980271782638475596696778351562098139618377954564020512188524616415681480747699335844013104731440767084753671854545591598554211078456174251746921604493180314146374766965516462835286785039261755233234210441052149321702220130597099073033916354839026902529348687945060582612139215558318910962460854546960173041335075442017596894230149766276704177130151348081834534126517815598517673257496983075273322285357509233828143474346035841408061222883072818074603698810884559330542423110830433825109215312208680311338042144145968000184645479929582628211975676563357674911307049897522349902438575127465491107031859151021242491559957575721505037587827812742776774858966154158313624911078224689156842945647406133951775899032129913825995515391885859263164849344842161832288133223348661967237459654768686219626410039784792217956311072829804420894727370284119920642906205207469342233222655077358481910816708003441378751062030556966972008417500056284154014874412065949733287855325348631909021409898911684244578411764257836326012393474008879180157311482946185433478890350590750299514301962751992455979702120201636908599488537847964386664896902257144803912146010029491382512074140377616002034838699241788359826531540769319640046125402932252361514758489004324486394587462609015605728311544546487007127197340856175759923165375875277198024698650297140211865220055104288213001526257333898467136979881760852451948092991654288253619556330881763437990272620101907046230011606157590042770751623043550962097102857645243513140155538957336016406989692980340420580580796161108473595413799648521891478990100432690770241651219769186920324117436797962393172301479608370818727261316812265957175423977384175216398885599489545566837550907660968487930135524687742377850515217433972163630663504740629056609265456907996358471848021583890179436454274377303181772781845981054415991164297933204351631500548885543544837034118111120824756011669241991329497122675318363850745365820039796240203925053996950447952002147176667993039038623791235514727925855302226773956183672768653111832844456343386971423253279049288054798509118932274111087938537273247205407118311108100123270542681062554921333863118076373585058513962987334809398754036072836878802600225618719211267086414950290160588975930889166507187696634359508946698527919422528776952829125868222339791556088622090297862738597801947586895991035479332799101718850329689549112763933672273646008406426097345011301571401791483402000012464504712524867980068158030249832027377160074323005529808036913428145345042654321878648501159761476276485319863194209381769027372157014271369672379178754287661419802528985345607540303316115072143673720222007971621317380266911781348230902386518474857616276760790715029309109557133625759223134089945380880450168841948783539304105899038100902770345847839175651756221717092842217508771917167790125351698067652544466701291435652504095346975176090155807202830930638087270851231016468319343189259555873919221040228596945407203547865364880123492492675858648866787209197219508863769734422733812207362084564430581584518297166540890980220210869813062329313286464872860837041876160364989917137132732934274694089821937151756983430353116310103095947373385746867712223828531500716135735327784325657391429410921873481590325271281063804985622601991609723743394271040744600310152539643847672085098814663592814889872907498949488384448566647705414743040389081990488467587554972053470290012998088303976339857405358160718242080102534571834877715114414495588610029495556909662926343805450224834500489206416087242184960570771811648494926832549818064619234540417336340635842545194861914428511944351946356013855344900811023301800824566644267737861643030722184844928906715796258082233456854125394396769909357789715214087971864121472190989731215714776583761044939397488265060495235994022026136043507974047034433052547204021158091729320024072321532203978059174824541762576862918857152640088360768363751005744535139145797550114772078444612755479260614670522858277331466917646848917792575744384423630044709174238650222233484580028195653460161934794889327598925535487404908678005594358665749800369417433105618277109376092351664129744178441392225511177449795358648608884541943600336980062641064009601995187476799674382246114389205865407581833213092688023365552096276892200227860335868734497409558494203615148660229290873781176807204318198505693355990950899491178050347885705742384682797139711322159921944168500705087859882822362232463837780064272118476516274843308573313419372147872608475973312098863784328018624123379822352593852861394595199811462752467866111614840021159716953584537723506397567863508164241857053127837460107899073666595412321038593382387826513031218622362087551447280487496694165865895463126765162275371302114278147724669878683633213540543823636402041090343113870075678911863961342616785227619791636858295632352684199523202739168595909549728292058904988698756152322714794398486124461834475952091915032879320610857151811846402422634188970631573353850671175091209153551774943046579037700360095623730921607851098087912685590170429946026582258974646261175931559495945841244939152280049995618568166817787175005579822261598990682939584687867894936107646050723034998891254849636673576345015453377782408713528586479145797915072129231377590346288462879859360546977698804359320775641678530673767789914453687505327569369620919907909045242930479159828738140088693996127164085520976949655277708741750740134984642104207903999409706465587898609896579417805644867447224244845867256606108784534568132017718660130251967363828294439583425895078169967291210049958409008271307775656335976771235952748066805336283694313331301829030873348408797872403305533465485392583449826924801091313948583963274676923815877100841540401986482425504833536324675597275005777473313240341548660961124704501487772710348506919459322875435091668187445062740116251759219827276271926744128449711313834187365592147565807006616750589709217697180915254333360859044457186488424467885067463026383622222502661653314507108699676949533316311686395994808114420493647591605961388132147815819540829123820100815498015741069308205757963406540014762407938102713110954764390776739771754017074972360098802610392974916201000451375037256563969563035799648585829882787097034772548685746527116634494595907990719356590302526514603865586455006553171178066538534536273600127744985190299672568270983408683349737170969943827889385554742876400961794792123027488285080182367622765961632784468420914958936001623494743791535110241825937665639931041327490714057374591337719778032248796575623059171680615324110816986339838095513592485867140658550234836663483218114567426325835878256561057058907078859524382784395782600287229311494437028149236894691733811007447374464511257198453650417693771095273573953763185026268874941116936054895379164146940449008640692089390098723310336831045320623746017912800599915880231582396851135925563489026090465588047401305444218306736584656920588594245246327674168753243446608370109706474114156711420830423778886837815080340601312928240634127633595420922902057983589839611698065961152324268419099333385994525997768744368044572831257081835061541657585841486092815318388279125893764103496820915774247751658399513294694293535102511135882535652793047872168588867589600887804755261318980043004023392192811178091649865295555121837470455633043642697052832529402184611362677182280273787517609358417781490862189812927398465623994774243427043472816978659091739073094305129735494495757827523107565961267249346344049685714698359511412754743933167927986779382772965169275753235539875896990185943694775730505288628205567978771289488875015595478263886707763807482340816956202251134072491121763195012837585956803650707470647191666053993074735689804054823068769131361595233857463867365329191705477263938085977423361522575408511602361797364326525152679980400852396815204452963423015341882741367487535856343813309917449222526244184673799469310933624375868229499746262919434905880257733065136560968283273118530896869757543135988848874895388826048984006340482627459656663478606729292755136786110232055622397153841780956984750908268719779602570446998896905480101750198600435878585307151602969848286620859283349042335893584134580871437420693481163112505355429633174147377951780787080679257735530219176835699055807936457432295439438679062584396376959446384208254764495498541996164971602015734383680399280167752352872719486740202071599257853721392237876812868367373665261149683234352129691091554284625939122143955658557619210369003344651922160639438014751393315859866444374955962803243136219924944185879480927062529220846853735789283976664821842567825689517248758864542819384443599925200351477042123058030428489355337980289605255593099735458675848446929658679201490681429452939439433905244936710241375854710140785303812473164151945981714843926633148992325130905658324458036887475112842241663851025259152120004573375500467241901632083870404539180663316129783617417990363820231664152327541449461651544408535676973407619051918881877721661914363355435883631903088161037322529072911306010990573836888798611786455866423266733670977896507842415151805282377587131095866711265895234690235202064300661705133585730579516464260780482375073683469135757297729904559915529539147784664080246706226398497309851769694868006482990792662502804921104558904603435415693100650745744590236081219172252919969651418117209506482193413905930704744358844381028414098350668694857567574469870662408026884795367490846796719363351755620921375879920774827116190745035651854742471986760487011575278379684352457347210381472937844467600788234916501689946183041115672051726195984203536710453778880290349326157275190142063603115016765571794015955177483686183846086600512083036996742966106608382753403621364388333817377539957968831667206186634751360352340215203065007683252861914035262036086441662256608863391955892589159311536446910751437154471983534881139664467041873833655432833822888965621406114512413047314913435740721523949232186415357221463182720185575456136764113351273115604049950449987234019486402353580408621887693203637301842088036282881015936875362027080513382145494422842968297613947982775685583290085686936707527290375102963783039466195035493014708261703581124722146262429692521895974376819116829983742664957081503124058106218565926504002039591676709947384834428973502356719521610936837258372940666293077110410111853358333676554736647518299724795782741480417661680183520835859923415097552020048273934614256454441606642736203302213632472617552272467472606079331948208832397390202325660356723706859791231931431513795625884648491354072928210452115452092922326738442886599219842700122556024609699904062422523118064264871171657053792842983558813406516431081802604993070462671967891025755898084157163206215807078369425653563670271804665229008779103260733487998943294240912921420057512773266639073269785551601407913058903296879646871406044456426408796186532711485460894204034971638884975936662659580509589627428037752780112115022366285960292597383051392166632523495575605727500185303247199583261566940002453043182312660765819921300318170839664138925604948762949913389844856158518758881816288777999897460596207643225868391759088643148021790100423320425316995691901257138172522878949046837145256373381813574938620006733805587048994263518530735613494065848632814385983758774457786162526823000477530983498742475805910989927800540583175627527027593461811893231661917576189699341383110820745373508066005188601520036714549196365448523006798767042775461065420401773950152521407242477582391111525068952343192736424829862734907985669208414084992504118832040290999526121861261700477447655263407010739075363954303838859651938636635245892558915567717379815120388080304619934612656042290467035290680014790476663222521521435599764429075471858886561925846144088093402488599943416836340883900294359280772587382226264704532774576562302709036120705493079486583254371063713147856344239493247094725784785860710971618923415660316289106465983213350931760119503145829062420494932044657688774874306161574205718962323882451582090949912397813405110762177984124406866755925303940224443900747720494903198506601148511534816604649644117458250643751531167914392620294614246631278789125144874609697223551399894933355941689759108063671618285373335041330378840398629941102428455420535163758557479413937693571717799801330888417477954917376131628932908897788975419370769896138603480281902777152951958481139400430344286605400862402408016653925494732528357470707331408386811030343806182190954714691128640601816106268225042162807406879158744213125907056733102070520772876063296663586769425489915400893796542044480183751947791686656424196399475965993580451425071227732909334018968143632959587551808999716391318158732623030161295152874831485573749111551883411202947581616929773240574577190231565595824238562681800680719791207971147714339039499780443439120379308835907643940734497505165006423488526099457838651853942931215056856621374924944134213242388083985254175860688713518469358804613499185794005715184418343945051407986018997779051175152602049244830484231121659185140885643502989344669789961771377063873776361030937174763541213143454515113012072121531048399839189598669046598849242178368594535320362616199817118430230781556187642500259968014098683979807020473643319818670517591880626723507972802653110765040196090826558214466802455202742693033179520845253072479807430823868815621683212399955189747700027368619300928424960261556444597045113938554219299040485529527778176940722094651882672175009181344519760920528738678453612340504294520601314402002436483724954673585862282189329342423408806029506701066817731783182126953027498554720599908643077902769226272444060449308135876668915719319842187277323540696117925878557768901723882113973739862389451721546426651513468145551540354329175314568508055250558260127183239805669449612849462729810839995422911784740364380070761439747958029639255919503740079737079925091261279143060686084100367232230328856514250996545674990270020432371165427618585709239746561238943012687141924280267349964963890734466670505286223261915973351503747388842189811541661532881750274195008606372262749837688005068263181960520596694977312300413622692051212886136682011279810852386135428276425952129621520926873633169471948782688900980836157611773555598079801437181623801410311252520392424809513227796223193246774700366614792549425065927473108769667132400965609207934349116802020973531841035688088685253813070395195179601868699490326995212133588338132904062409647172778445152161782402822175804279763460903273408531585885673967841891745942403614516061552032481168646608288690515310433025085265192069334117087914132805234302813792201774619984906400445229296880622544296847419496306756271302065232726680451836971694631609241486862087395656126131917020150885427619717871126603117271451777642628754975173128811946882711729028478640756082059144735687456683706912068824676459607206601367578816490191971234495114342640695941780083597271084144260098548589451631896479216859930424003894003609570144117373319878623469462999403592864204377867677241414232551796825685025376898420188418737329735281925726108641372541158071355694537342071347380002661156309143651179314102665334632690865499980916833286559697095024091768549800856209094888869716598803793735974769469205784936345845360920471414185467424376814269855590566707539202427733820835398856840584592804746065823096555110465431216709437796770282269061073596696986639034342883004820127885145229905546017771484270733252680787053523864298077744205588971761393423890592824251462335215020999105877970002002748868958760945880910996896819702915868947339828202488107905957390562832909145554815700598648468127124163714473524976208403828478200848556960449281561517630955174298232125727991939157006439866648111114998048292786648937257011634930958293619531545477379263078845987363062354500936351207609665829977975344083895408873981454020757051982061303449749060887136414232327691400431341174687563439456711819605698378785814924041578258414324841240631433010017461249800757597904996029618809347950048017286983240709367701582089472481644804689019771192334041211425433301567401450135549999374164909089410820857249905783685170676925615104875753726946369542209348743285491689920673876505006441737169432892643771173621320484993162936518427442170969226193662581879509617637837845489350627873170028391378496742350575131552502509598441110661288450973924570937421441930002009835337581850638874927644270590812215933808791814151435033016117714241453059783244043563663901660117580008662103712450783761228132083348048814590800517803765651309315454590902744310773667685534636276349744573879265982675607187320976118860321283169778528408762613784445475914764507298715045884151189757493475134088307642876899289351904800246413798412280822148747999538247218274616991540844916926748007207751490304163171833819817774799578461857823772660796733000758507640418755342446577958637440384659738033213758187934111526693464589856036750556667662854815061073066860537760973189191074646798802436664886228323751940591161530990042977008692495192956377998168543218475970468903203943713626877944965168498634553775471490244210984314840581089354226132263792154077171981107627793823462988933418426375597835551848362013255858519143509217167835259471835169782623717216528810864482088355946160734287393262330612880831702009150981346802998111416629222395367956364321727658636343453276748837397830486197871170895915369040569184016422203443180191680326365562408715314194427677667701383601425277268417326885891816372240623933507910745480893082314986419585436237843106660402121459359281417516271078497146060545735669846405720488500005391999561666086564048430743916831871742117346066771842163930843366751392639622344319149882325030425788923363046720376011696752477879601831739693752491372339714056731680102695576688847582363031720669160654068963907586150693831137047020384271600300050729668459726606549937317499261989065045870476768122230359575100928966673514385117715809550639440209321925355601482249901939298457163661570276305759549423761306292559236568332505705142280499270820240286863302495625569186165728556904495437257065895684565813253213709865689139634601648180688196046428978476776992271996011972418135270089104802105021682796602168596799806819790850165173531245048494745685137243798824826406840659697090184868710966538974093497912898092214592326916199154409075264799279940264840564472307306464055674677022941672435554758484553339092167912318935229471594915581778358953506010923685690924231437113906232502376616402615270635373627057847436989842035930683190212398294986122908150922239354900987495003303901717470100600235558836338485297401877693717454665597015325797428345779949035331883648626837816154729110057295398299228384636407895972450788289321685116924282268365969160903768751143701018099148778051250731480541947809813110141907233369616576937257807768470238466414829441256688039295672741071053411907613650606995943041663752678784833054350181408277671226711209827832545578709383578354613665113980940305225946936847769843701494883770875728856191799072472715406945184547363736108374250567045394833425269199663903321262072434600278674853303380628717465408384856013714955686332357425532931398558806648453976952639759338837229332343129269396867023403293375374981060775419094216066131063921504094759955382742973032268826215434742076028393652756293679700424269549466659034537654643371613803523772846191764390755417466455577781923778359565968400367312264676261415838797014619077638579022336230022870140111010537053785640171797461812966693709149011906546234801578775246348595508873972207865122184982722597981523959513210272895239035563519157384390901166684871538038894391015625948616250977062236830825522534778762578804207267553546520989403315274163793468203471046242403568281236071078224915278212212997310373375087529492620412633725582060814070063162795845152537750569578227094500374985836366168149934145249134326197676987901419694938458424664646805260173555219448939495188221221666841280926953947308152040105768004555666270985142924312800513774287096334308711160057676166577694912098022901840620556917337571205976172333282211032443431521840583891870310531121415126829979957893254686402365752703817434426819971854484823671146299571487846584193740254208838127068195570549706854883980030752079468539710124543951986742350505514749060869038385252085661615008081453695861368738007533338244611641538214771169632161407301027617144464520601820312807509221032455966912998298101798320340818477596868515367502395585325888900096874146276445969416255111797943824553355762981380205975618569477856960539272131438743303273466944743366412656855194508768544384603776918959154356469049668925471642247572173680771110968081753652545013826604363089587590142654478877857712811656203448509564432748630860047348282195951150128643892532540974282631452865768084958468795535091299410260274106651494109226626214367187236616748569475425518198808265891761859351155290671158092498781393409798116483272121156884918364578809709330571308040309327376588337211590556289359623573325839337930851644745688520191822922290175310536470710910866380741327037292512962580880838991772849195915279366418492587132688988680524893354627920231678072528526397905132835829689968716653837746095346311280777935198155644899158009275214010650424801476143478609771397976583444629143722598012964166097589959100378292119742738572042745883439455591277412240747055449640382095480683527756215889625466431081263594090383932251234999830896939955330452416487138399818380122843951218732409505791868498636523643091004918595478005259744795732037261988278626647951636059010529061747322469513017547555019171875401851308009990955845344130608138658504442251888050607468786777170624594406988365113901144619337248944020365797635196102745223757644811035440410393366136487052803958511552826634132695887465940221841581360180604089074022367579416850346720952197467068817462906870081149746729041183062843696303076406925832870486118936615806126666155532140198980060815918560549528859992765847499597071511142374602986010473733524831311990123878074547827702467175095190586646947601546060939400260587398949097615770606451070852878222374166439252463213507696683925190323449248662203190122899256673437332675060323237605629090995120513277825753959430244535241476745862162108909553827181130364348356900086383979195018734846803785275335367280261643783061300049301122138719046371633446011130044980928430187805563569798316459697905633572220209943722532448990364657736430048406978903011896649241352874424497060718089312179169750296138908112019031801725752904538146160333047981415154614191787188960832748944494959164315702208757366866671175162353084105011935960460679319481134235578901354479256873785272232363369625458161408892435253982936879729000632407580902848243975647570511558201374198328349906862578740498137169202821852081035024762028225224160621181126064291181934311681679220743825456182375660283979039778174354148454184014977508876252747597902360402023633533634547514252698916033910476580498894594077974525931477606580871663508858408892178674377426736006710674491875558884163996026933638593735211196012540534990942540940023569219219728763271967567549885532955554140457653999051657219114284073125753726843897994783043038390812393921763738028990794968079496626184035294458751531687068335715219326565019869211842561473509626133592389480410493043988555882686330123497878980824561363257007090040058031596870796382681839649682036533933260691212352182300518737441417084131631102532585489031902419741802855047022716403237964851847948503224299864120237190048771259704574565322754340618990023214977593480226750584592413220795138587744112568121977999253648296526895924646921064754831361271897968051143667999069002548155512094863237502211318300215922723060964817892729522914143852683622505109999332731552281408947744343267079800271127865372156445610396700549674156731304324787983177425713483242775084033348264541569385310303047390730421475064185430172882207850725981285534635558081834541670422787094683302628140917180533567673322350217504472768277022706895602850499533390697589177303801361644089500331032554385816507506724383716031958359769854509973318373828546457303724766257885714946006019568886679498801544447404484779712940147484269574168017876094546785513328960937293063068915456093938353260862168602438274066616635387634415956325713032386190370429821320538415451093557525453950607736655148982099425779152203871983586606021254454976482452248752413541218514255776653794184157489889695125879958694249236106897058553560043061061100496258882998017880897505785050514992415847945592987459021509623300886144960355025117511454277309121519008116626754070220616977498573481375535389814444421262350597285044591732492419953068421596738301319312997432257596743898961868397908000576303415793083397937852045697518407570068000663216671676466942873450917109384484089852542179555776901147652050347300431990937893163541212902124299433281611797848267593227500824582339965476873259535662827571558253637712857398929648480278187453465819565001166870136813265998841283865949847638976377883225020827397970853070029890925973062490989375937235935629801416323806779498453818266521799550447494281410353283495053567961102647501519372438174768501958628283531241465951875652653121963426933003662685905596501388420730031241561751460629877302773316583837766251802190366272731553928224161333488588057699735065525374613202415045744156185189623421147469901019931489913618244022252067608364238822626863978352910411114310665725799345471802864534741880526938047521376057041592248363086067832193051461540249623007671876653178341537453481339006152217700129973899262919156052694135198303103914101841116552452016182907828773522974381369482326817619125786092493357549265817411501538698258914156989906088173011987830872881064372659518537724856293567773383808085245279397869937746403423030139793006232746356636471028776466109056492396076636527192404291601118030628390865751190056183846592813277152825682255221274968210969094191393399185166683220386895371681398338338981700732576055054041248899414803085282168784615784866306413122533920487176242400526918974091790597777269900324338867448708497082334176820554177092997318508036070332255249771338205259442061946280549175210550910956119510220420299688332104557835215117456230147888645758739306252734547837465931801071976249742216321387786429363032461184352626459646869072064244589006854180043245313713495875134429383995848514855118763116955469572505102268928033481921212823263289603977345163663158403487291736288323577385502559200853070638414689585744004307394952176836632511816864676911147255596975929092021619267576561867739603905222507348379656181567164429680103035151617804949709227390602045303395346543149601642502808474384265376081618843370310895875643070871084749148808762103984118506794960013238816691733329370123250430196328707573406449631336825290698069884336975314153327684633226042476199623436224567777373809214937778338877736080284695807858950050575237165428191682869333662512935019136816624930108728523458772595329982768909872623789471182511985188928706133216816592831426536818276540235286165556112459659134257209287976673204872061953712033767450826745888935337875856749296358561419592606600082082340980757833132449793243329440692563073582279467460493360161373082752466487241638285276032358079793330078986162841029555348765252490849875111306023499819472594791444118745022296878299292962199951750257614312423893201348437571719100200145437946857775325891873788779623566283020479829293110096016898140272557730004706918510386820466428678951699588027270159310861336734459902528943857108143463135753183976588711258317084812503384376852348116253268081547611973405342878988211549891330755907482431884030747286913990011929141017599952991287267563096292677782012217743685724903068812998836443081091872481003071397911699980589683596721206070369893448748165589233038465138690764790187680225447229046010345322849795973391772685205750357102505636423563067292414343272210489250409962023290517788648562441914050259133568699974533352570447818646644925032314554843202152318613732244064167863226881830825035424135830246109404370109421401403714155528673170427213160101008894329318166232895738250095631078453722965838535673122271531399828695585440211985300896525050784542963425233611871170834820845943411634105510837883483619018191305054654545848816750037022537380787271688275194515789595539379828357693697288815210196575779570171229412415435958486760175792763234537231826464871976675830042615443931370967147483777050236050807245465527832106819403147396826825392524215130561717744213361682724643424898670452567248481032599049491267040560873444128305542045846062716841260763930315057559445896013271542206004274600681243906484300095765061847415741728266373535138613337534075068656822344874210848476253350087085578348558734222287995388738132576600340754318405206019107194079756720760738572924692472461777642146208301064447066502267725250907135393263133445494755124676091681635156859015150064239447180453614150575438830468626008428467451842198199850868626956957053003097983492098152886056299146742990635963317585426757599761921022089705168303876450441152793622557153376818117059289008969847550649185174055874748258524340370789321344410855207908968413057251624690881726632447958411867305981855282429147211139235919011954864128294253231581156859209515984886465127072594972834774527322883145584312668037168904539160385601192835461139268307165158236848093375907745853535546773701005228205207509916852859846033384269850734530020091549631757633467154119629308559095307946513937154026636693151855985411438271582403758489524963421042937065254436202980543225239793793169763812529712356543421209584202962708397064264502826997300409970975519188592958717485729115505595437944559146508601777928618921466348537451378681009833253588472792773091944388779847025769579284833940768543603614277628428302846012515449473195383484632458051649683308592684441005013827726552213675955153976007727144074038356234355232590337895535805236900657443723215755272036161004297613025534963500063864562512275791757563584687488366246201218962452122780632638869345400252063586848074659255509356709758977422805180751673008557048002988806643701413008400381658232788535852983333380783169149627114125725141197992837139124016109026594667072124612894727551955850423028064293563824948162382565260773359538014742644964511558999265077975128510065587640512747588064681697006948716745172719341792265025622402721939357416804031411441063472137995921890358951297058212176439435232735137954039141747624879751816757629206766787640056301824062026613578945799268024271443097234445691652296264365076611926103736274262926149367011414582100033427436462569924553338654943466100649087223340410710356517175411704376704232932841967626889942512547650680012210249226577180727458566577209774897373774741211963356541090731989050779239350401717228238219219027693286438297869090703405456163094181479940698619416209783015147925406354588093893748501975250187878062737058437034989848894771581098020525731628295008132654006570030644241566328987541021773176871113948846874833777759257329158249807607209261560723868428762764523816742530245685470773386892960902138270438044241580489935712180453852009348081041149378322991962629717729116661302427871218372680529661030535432759847451245332588747050430897592819542881650864538625476746141418661897716816658177932018893886466841334577496194790106756983347402446407501665924983784668618006700708876885831169252295791680542125178269276739259050422981056355495250094654649815430024880693428043800645216955534584433010085661045794713256949014583044549946018849135949728641197077895974206455461504068250582286468248706099414867477509153398195981108345516088194202428319130356256904739376252492414745452032712408860760801173871675783868463036721947457889806659360687007069037787394094505312789022777712730778093920869833507946010427829703247014446929558275074402994577854135304638784396937576896883838807684600462013204426189434813008632561751058418615624630140432224139284396589416806059689247012892885785281338085947145175451650701903896169200647422627288709174175496187790008678641913813052673592404588407178125830501444342412308681108287145542207169750744368377943420696843495138364892438581728210857568245415843181687615109372924382736147535260237743373924293216116666590951241192830346237930106317408089125259125892871309803828266240174962623490484226862024381196297075828324200510064333833878176027802070530201224831588729729361835997278104417000788990314376872912874589741846890415825080333609392484959722906148978085581071905543902506284411177474211208761305766435633403968219435918913475837602607057158878407070635645526333692633589132267746525965113089062655144260427843779101160344245418510310499498589713496142050454181728478125713841171851570895661648878810916369490269287221594476546150978186682525163357692095576672960798426411794823703567055258196647074378615872043396312149380773192108384089114512624968633188661801126090915258100993937868370816023536963539704637965418868121084933955986212932701634087224359484209523015666391780259581234302744026289198930010586493243167556047911730691782202852266604138118199758391881427498690721572462827801703893620747457438840479271625427983221734405998709362751305111698952450404485606296564312858121880411660825244408764711594346129233036498698714631291611002693497830219274374513285082757129281206867241624245825605946577842275570631843115916862584598120403379757866580163166741383201787772904434170976840483097764785769191832840040305480867075286650741199635362133725991485963407689774356539544423923148005647333996514736129518913830236499240579933581678176837508152175387843571110780915782012258977580033463620531027883778516537654696547368406911993834600828810683289406558310051964044528562923022716643780353114946319072754515880190345960642362514788101614416851214307601895736500443293267834829119035264672342279252043934207453184276400861331867408622251166509927609343395271344057714563313345572009837349727068583144252283605560750108608359074903106322130487115561869838002899505663429990513078551630011741020278897564419387386087368271484081031420213400821682762639242761185139065673687412014849178201072392592637743325258905746479099525904370456582301730970383200880511125238249032241246501652706637205879039120379854932635983637887469708286788688837752485716902737021378357796376866937142527794759802897071934146986319842960753795476014044234871121823799988704894280357375841005755814843303782843670864122700042759798919868735617358456436158718297530895625155210752102152748850083100475640422493425715177790594921668663813511368186802693385078948814430189728672082975665750542024145467126621830289204399714994178873274511939258113066607287364640630029720269906521117732342573402872287468357821642704034438345368641759263605663144509290429937624966979369576453976175511041462420748237535450937919076885782538047037048729523993060697536036810089968633218671712146659028131079341003340409330283660451064224762228435665985320278478435259809586867650878404736028018187603077689300931624451479633028418742940908508941096905541851972293739227675963564235005245840843233655380156648196747586775872980054835666152272967336346592350281074271697076695936954077027787701779119818458212385478658529736954834436289960749937630303141660993249133739854854822661791438043015679851954022363464836383724461135463013548635659626197976807808614396565170582930667738105478703316179855892679959978704059595408175589312459851974934586226379601052208483019309487353658900744156899065282240340176076306977535007081447020614918613941679234000072636275053137436464374943471511724181667176054220331908418434524482004122978111418809260835305115910682706860048565157640261902708471330460151315304405200875268232275388046776719204750084444149628330990717693807319482034169459948105463314931150417223196318369960413187566469081535400281613812462463620742080415280744641564917760747156863558054838894279073038648526224041962665299785757368802984110599217083275770036915181094217248998132176237951736163398586217132773130804211469918335026633385800641840261912086453678569691267202815636659697521383732117168923350095174600019343196207003949705930946881849158475012603478622767112102082517427525109148586101854774886715030727517897485335344299219597874203869521492790809921606488202755727497601945627833582167962336168501585734345980057292601266741956568705619033946517482561667999278625242455363724541153041151813276835792198885703282381325037418005467764720846934758942889226098028042650358285405506182323013965777041819663664136551464528392774230427636095803742921549840059574655788392985462036618890231673067212761428348128076924222265022939123010382160413306492279506780804172722210641836840281915188655216472668867991495770098460946708660647275605433237177071518214926411301215920238801395115126521077713667497943801375073935935436909182238125353797635511649722094298006841885268352166469711904415441859055095546883629002976940028856137026375292510994649246370471119918220227284377229680625524054193280383889859625093703411059915452320137681372957096535802767498589601683671410369501894747621223446661885013528617064833670164719233308540307081536381805733377299885614092858328014602016993985887643583658921167306216126547971353243104280982276846815524147943975552557289504063650033211444515968328507053006292550974121630794633924880874439840392735966312793734423499854010819157981823015743735735944274826895224011235243163429564326275413298844137873535355580055086583787057064509147154710525331341441417633699719053918076165491391610287827367086979951960437023889063684048694895246780780279375520960699419055364160471223977684066696429821725721011537371567588103660458509065493647598662603714186550574027606022953366293750585456677887691226204401667298540222073170704348429576396400169384098155203757681424659490507563370504188036914705159296465289192150799813554879481713431803432561558978202883192907415097546191496324085616023223256720424492620279798174427393498698410801361077152833997073249935417969178845713822298311229492788764820579180754683440989323705736410947866349045162401300375831435210102166476993118444455051200878919676779795027123763767059128058703672997788839459878173416688151686251653913918591184475236178952286098017085686239338164169469276828279935467772588219551649393406377926612291501751649065830930187140081685534089609529843128750847791839203096017669314066294548597155621257932520367762825537535311203723176156827013727144639229325216930554376182455580672554825180807802495130444173959052423473583236594421998020827977383055967106508013992386495187303297560498668408031040031241272358949777371146433984710524706165961840565876848792431447058995171501868647142903830675764794803904287145689859126720323199994934884683525334552216737374287755756034953564515930062228013939360949875420536727590869946271810301481236433202926929778451808398970355398083232002683725932545214341572305426547820203281808598930559982596712957521672751382244734967515643085897081221654355056741808214421041302854091220055336628709472970009138821138412106059398444491468910209708196872736883944534845846436424617595289234660107913094545802425780030233783117536856945840144026229393882915741402728137851677822592083200916118308458074893785889266014163328801022149837444572125566240952777853593787315873879875098400724139768752919092975266940274537540265240949058910051976745937349703469408461028373652978625268584837663552868700523187832765057309392752237226256689519507932742644520388227399265264341417025002816023922513579202105999722851859873005389013587778294326375404499568396760865499096696582531626076381899246195087292943566017555597275986576084331997715850415496499618797659396600625633921083396568257669973903925968364840868140752581223859003138196695940344698619705131049967020025424729487277323762040398721475905379626381658450644666269830946085058653315064053256535984946406908152919588086484254959589399475162751276348448044376690972502783609286293552911311631319370042417137846614891772321060274759927672591783220327839660320433749938283167168299137212758376394261525297211989041782851715574071288815945972680712002859307838094268095186290926828667081411491145205771045749441382490694935437570627697772607654189398041947511629135480293892506298663389026840785484084685038372064471949868588580535570707164293351913223734674489714086181757667999013585960441867297965255596092896196383350350077409048857494466914749188929566893056456933011964141701290257046411879955984144639889386165942283030538211548516310212255717365270841569315128513406663909826296023613757842429245777142376522323012527475577944508564685926603283762153068876786702804031333892817116218689278078824474148212045670803755503916447024938499389491119716261909627566861651688984583426922958138035874418359966122968566315497625640596762953354225897973871496403130401960836736750465057495553847626830678244000156830833693676762661239598115260794409755424103161683583055725393399242368403682617771393075275908583719590157200860726411773601648408503297753608250413611801248963617500907457782613794543965196055219289654327652587519217163596365071801498702808335271666061908292862526817594937984089095691887072445354971837002120687908203461755095729600958765588302439461347372127304589297658908686808229907437606298976748920132420705905479894146049381623710168638719397976063538672492114844089694059722500575406517181336034556041460779945708060875650969864337255157086598592431662088876524901035989180820399870154613216859375322359101147808122194563963967899629114858369956925871695606568313351917259239283762804967887428269864928344805098774543776054540245333376327545694161824826903302464020992460577662973587032829902355960733580159793047636873432603239943062176520188139628769223685391809846791406730513336972694619723751357955959917147858460294484789449233784124210051467510632379403595543606353769585402020798832366786860920785036722647133292418721775925105110621373732057915672737263288507102159724663646056922482412797984864711465560844346166270725122672192014546237060926824064535953524722029781163334878569635368102611986236697095756735561159599352167993582405028114171884311994179913476862888371251509064970613750773773901768605547654368944207770728171421329210207829296223296160092829993081108739316998894225530634160432006559477180360924841231992032774752665105413131334637148343200598144022936162857992116387396090388047864246930394555878877986423061553000594208238529796988344716525897880897941506342090504309221887931643402988312508315755485741368453009974864355089644387855207812046971599605124668313505470754881956336820791485138463341297698893776810192281035859377439866567212776306728736115165221692219446111568000508287710159424010353403858810916555316327769277167776523169013350499773447995789783305272954048442830230214820308358440193754967889422864082173044495558249055458103221391556355586876345504775681244391906362281409651238965865211455350342349279277385114047566426593943337284714200881444253718721506831099433175790556713246055619193789979638170140980774074405419099979709226404215072409035036103966728808127992789464487076942462721624144915446394241810509533912124323819369733505034901016681247855333618074456624636859639825948138436471029227076259068140941497086870636368985624072085097529202012732002054094449013594230118395757045273659398905221050954411125718488512912280466006406752926462556925939610820784066676542852824484288418755863009307324999021980096590291442782165747176586048752043050221830962736547062677928019449998273181909090298864791782078621731332385128563199103995195729452205438236774259675588807853062975013200669710453367073217460794383188708775189271668836942885705350186067511390229441158254695054084866523100146091801572709288098397630323017671152302270578148764570597831593015539174466664624892226738623436126166148797050861720976523216607841773167790123902325118896931693814825377130855375483378486705923863294345413399444935124709194727216858468178286527524175389460943161887660934598444574824168836177849641042338051287113168535224810362716277063995338209904770387343535035469740146747666928337607813758171972627603309380298687467825992861835234470043554697325774384043456104452486095905068063111038289986913926491064392111549476866313462317325724880466680747674391898645243311860006793102149567027014793733227380009127834288814857199113379647196240633934876989926174066500049953879607204839738038697678001780653277259890868900842433951241412724298181589940502515096202192653545729147613577334330731275852929144074892799807070676907168414626751989340401725938231079787378494153651831866189544448464228122998474690751216165174885303009538503822651643818115808242602339162418739867966701223418469846453900698997734009386432331294794089286557167355185479986147007173404116737090866501869406899479414057543633295240178561132911959850166721328138052200342797841103861479094773086316094658386910614292456214440356793122530721598375264821125880233567592874580735711999706023904794126982943848592483175353468432040849453721914012104839878819276740073988001481585249574553116165569363159924553903878480690207923458471400981439327890826893905775514954962536635188815254083879259698123415873559928442089468621460594342398746840561679070649759617245216569786469636688758369852491796701604601653132185322624524559743020574797472509156906923019259154772461175310150523271694944068950735486872676943920525697938720755090474437956161904093982293758407263875844478852039682303865820275283677210858211996411905744089593910906216953605471692341240724119779369657811333883479320881543142665655461222470202398759966238557367771104169264537471464634589201507794310975705941044729076997580907274185287290126052049440498773446811354891318878181003323524638334973438365101779487759179774688695686809141829464391580589332197420770303290531471236348068043767556639167870326526634166207919045679442330389858093606049639548438924110313129292325453515836492746643481670024402894274427272964952148804151840226995112734252593512525072112804808126922639319836621939604740287279557115629232737490568239959465551600005081058389925039996121646530235165269197801801165072435509129284848953818389334997305319752112413387742027258580467135693058390309056238708889106080552345991045063840798788499658577215593636834922298924661298200335134053683871416408144617870204588760023564554191570655032570473852928685781182055113394144091929673134034069374417365784689430634370617659641640206622069925761944346415937664979921826048091584277041216584489343062494255042941168136988063854084773007090555210943700569867002033519172537974761576124705069857805970687029381077242052717561026921268074469705013042194294375450797524910971415101998399003148996676542102184966573361357927290896949340841089960740678497771816414399234001869776328396387657168166813728537081428272022549979916269191723074924991328978198801289364853139723988267213956921593040849463574572482593121265835612005169238587443375536062911126229642274530872673578056638311646737083343850335281636151939506742324248918054875849019725149922788817338217981733677430894182641890325239671540610688501929207683719138378521928220509932217710551031355918053645345895301925581543111009501255510296242751735643665110639781785064277781642813148340851391055511286585136895244592187263682129315049857118413101349889717406484586166152722692786978175029653965737133041919521744243389975071593622607237670358921191674660467678040216178892295313403165659655515531557600237486910244479022526857395001676168465364295750295028745095020847547284930874262507203258385784483534346982640874777143165822647297764700324848414746568528754660675761510809568002666816318727567117241450806182432516083816505709671014423597943873069244421804880999643848397579292219535834422226678024052512257204240230533997270689374935557827218950247905692475721130271309891743529195555185474044031863240947731671230150583350983430262604593218926091957414954737199049289379639078954781972828916885694038135167000523988138501259556157305984971850125242814989058087599078417342358632812144005138426533063654382512639363560937043768465851103734810204381000028110477676166608597691060760177077236543212366871771487143560953123837606766399460638392623371685883188103934139912090375004964974425738055603673135704710658959959801549235198829024986737509181169553423078445481475876681225156521877847397024896202916623717577288334648206008894292791682250843183093960307035520969995517395488449597973105714905325266260215640443818664236372105889538985400596615245243668022824791192391561205485672278905708764440546718779503272247267144211191148862667831793006258695029404879629083010525686946194298208358314861850962136156639630514853130428162331819640090152952763070133661409322889238257309705637070055528270024670421565896164107084782202936892149787513844647611182128072960053023184492534570773952145314998425548724785083683185655344408663246235480908473059219168868406671424513902016056875381236696886775941429421807872748671003154347199224576117869205162571258861388096671314287313383467750615562931329963660255404883976746686469864676790629470635703667754223949709367516620467808927914280229750116145406104880526883374174099791038441775331320807606422442954768007746689453061733284448077300293933747705498526001916197630800163510836150037784319618622879718074606481935542021955529836320444375260485110026790903803997923308841063051971494510129222288819873296208892919829488686045998951634863494334912765355167569112813238089443251981887281667470272535218828174765192047907214740742701844075413706875777381675789701356410132379173320509178521423983306262523766143259114033581387830982963399966288881947504146019584901294514738779762012628832694772657516338006294546475746347646619936924846294731621281581988953088130197672277428238873330465692547826174550897324656158471852759175753421013345679464119443233000210284944328423427846016186439231008591967756579046287854723278742484853827741423727195187810652474963893960574816986039626622735458750952906039104666393312511653906029559187084497820142782029176725179227740548586172951305856119118719166919850271352064625187857243730798817398591981984789374205681743958302839275099074729963596862751283904914503745878185637499669598093388244509263057060678819009609373107321480661164194788477076236573968014813175106365779035709281553027006749075696460308693724686212520837237982978940122627478590369672275339424014620004733553332304753869917923955917568419207282764708699596569450096161216057253388143899540435235494855110661110638538122099090561909157920945345325737664797223702030889359385972524761745104833398079700566661298460357205718837391399489308040970004891500874454294471168965195085279705691741740413924830940102740031061081850176639868215574335533701796088977009529174130794833220726405753833862505512216265902417588976029420581190945605906939669904487168510986126399889778022124809733907776939736179438159695173655774040526142134172775256722971329564570381818410832200630964752416996203845179304878274390208450514736635672923393670015559753363868632602606841204259390769415249992914300422617068827553933438248725993682441740034209430418280501678693263624097953309013366390124411270547539371080203244830461351607137928213299255309440700788954603012165090824480835593339450868885601415181089229349583189033975168874694331204933317019795723855183177584104538640622776733681335477412974726430516352130409831299510801834118931226492422812605845694580487572127685465783998553154652848631265749444735665958453667383413110692468779276230327049980529350365159275343393302811759514864161380377073825003162439722434288783122981206250088612243671645900630163931303643733085362547699900523082386991562339099980918759609244438727481797749435068662868075650517752574984726445921196433896083444096419541422899366624284625462956960622905494998663442464551552228202847150891096026036070305165723091970956514302053396711532632573616110024845500496944397799183428803428789021224573916748979031424443800241126850780438856439671771283597148889745307066473144923728855694832375322380461563373562888667478402305903200743506303551418301580119600475429717050893368722128878202341636275699838884858310571953099692231003399696085134379168436148374809530714668702752960856211308192770243693988219286396741972805473745139125737569206024562842380676428232109825445759254945921900056287135236976092729997743414540666607017738513310279305506221339775745888287949678708773931268374315113849211705465161695305509746981864314879907846507504662339541989007583555427685354228939063031262198812441194850207306228441335515184288296755443275629774971132244118425245512202861070609234292646834632835671273241374578892116231968997185582397334816353584043530955202393282568879439306798327781635127806682664457670993804335490340221364870105424255186875145183696218505115103297336774530751611604813571708759190774594085907032289990732496478381221854871320019355460322954178861683057965480311525132465147832562048154546324563347220549770968678189013037724845943852841122456533547383014704672061243067308294774342085956269325714252662892911687239964608882506795518088660649780093813865139999712393055640409337971019886660762411597828287816966118154479866879819180129403221086118163524643978591083387909656568493706725932018049593807344408343379822758886771717389401852697718294381368166923768946803626015455013217725809526020174629356547277043842388307840874805386588669592014975379138890382130403485648592548995317796879653955828346230178942685716291776562804205789493731955136368520196650428702264363141188815762159010738405596176487270502714664386071542308715671288170635575768005137209036516775823616496549398303128833091175034524882062977319713714786142865856920413286797262644976949675182825003791320406588391586064017513598650333316907197997332591313796247668994595363040204183498792277157965573778740443398781390833980376932510772218836621481028258407633309385031891600970512022500468547075510503063118558601666692146213374465859209019606417666408755893303498114871929783470203472613306225373542396207262340748184304800288539649321518953152362736373416994214519420068112568922426437138328590772633695422821105884552025413514195911964995257355238847412263884584993143285179013920606187425211317837837641740063932082184253963865234601350407606008256012270094099393762242109498539379490650640433195637656558312766385543101533118563741028864541555381924233794237208695490243743160228848843512374518395040911402855170797374945250941582541846060571009070309631410882606898467863980287994898167386238809058011402346352394283322469779579744826032674766025641095249356075790530774199169873591104716767472900742011721784966312862731972468901431395453533240115023433502724120852087059897287023965902402595068719339940798511787601776223731606387442004367127739875638432777526115562323698924363680017705971584044255406619904180999874560885329505065707930582186490901293086218517095941836290588923767369598688004517095637075052042586804332953948434631606260847686414520257468288435400699731552423646721324949002127287256447596433978643993532530052063942642517216561956904258030065377956246820304385734001661616393030819687950612860093409959046827599663108818885594087230989478766475195591269810752411148597586089503277463513227831319725429058377512524027524042259037232554831443787782245701617771943320917761072857807718750557330509264199585684797055285165990518687709564824432211358549587339573791885890717860202292767460384736791841636897746785051574930517376629659516724396454433317997552551531645605187400864811186907254968885230021589042902136797194360590081265261496698793432094945124023500644140754464829370101447224598968135314452842990754176189755019519940233353382773338159323303818997154421571109661057365996810050657844556251528408378487978869321898622754299647751514888646022225689706531334477523089343169598512606066793283732944781850746151178399267281551549481833977414441756002663245061216425162991090482146894998865012300965636748520986904494010438759298219116025085219979089089007011867526173739933491497212453804153606775366865737938603686676932305373832614698061107409071961313511879258728901429938670238606378712679746483068595165880021879532577146850044130998275880167060673658858600288633243444356739267742942472324556344465104908392472624297667111178173898984447116689358411094785944609697715518807293514547155031841501146098034775315824275911003281241978092630245806563396883585942232496169426151136283097429547426319851030488409000139867120144562292110823129337829761100274672536967398058072502847227998943331162310034345700852760564428385791597203262798335123210292242753421560600668487287219193916330806202024825831169295526457389618906772260062269720950904594340970747135290502731975385957199716982730733498537402062081697454252655176187124919536876229653055238836737717284834089606108916496269842054799515994456244184828420748692645857504484353223912270612618751338239723275335961276209085619506365400997622005778947902526824983174117052421873806830455522861561587421660772405518397549161706484229766070728054124304891544287929371418957473061052359003744716143992878266318775282254523105351715123632919300848481973571308852420296510811027636103429620019552364229844535932992057150610790470578746305184821597704426500536970221316000927557669240375313242405409104257329890270934557624958277883949273816853430395973697425085893589420007566775049989998081149311419166572847931970416550582215771817852436909871878110353404939689221046202002659995125886201649258548399915005713363044916341638994213155418479327480027447753532714070160557210759820037502832543214492612830104940160039930168227005733479681312004196457423327300558471455625431527097540626984919299985825922244736745667383167871409189456035725807162983109680922870374487253715861041318471565813335301419816631147327437662708929475307456507074968986395013198361473954213484465739621407680177027587483811982774053209927521845088586428632081495616103954384159796092102396693731221352324736925331995345499335359531465804649137006850585877574912463436169410660139638265300883881873226939827457616069200561835989946934567617386622735956681951110808203011620000585669958904817253190477750488100321029014772556787818655192917276687097504956958038775048708063985494837440218350040255109649218100995551724490504416509636714833444756707597941381350542897800082813584665300799339205297448120937530339712301537399385911404950390204954983617062007012835424529721429185421110206205043752268302067948686697213514649730279161243111395211222007624053906676031175430680640496458718666594622916957173127176814279682320562715098845272637634934667029794532303726541982308452864733785851546636031315879124219848700595250119599563600584700002166668319137164536616797195396676837136711397273729722066833576410114773561587719132221938661572087695820971445935982672803803890893083422912958450008229759416793878707640795856007151327621865291020429622318025511802047967069083353280587855072390114218241770167291930211334568461967489864267584475126685584502672044815475365429231799734825284733845719982597483593794481960231665340152790626929515390530671190532531885677962195718393942132077726114627476890160437984134765196962179545972415907997642029050935309982175274986320736094750386703710508185219188457496176947098552566215496599936402657944189634267584950945622979168991587549346954507368140581879557804566115919698821550285180975712083756892255171000402789586892048318845033652563149180059787331459574418087584124097697420987170254863504445052702232016355032989952925531158626281155986924070435932445669498786223588655811691193889067705908158585666120477946158021919831926662288577067885287278507081330189528362626205900209201070845257351493027558988473442847214021895663852699059453711949442153812220837504484344141182378115730742405392199495035958652317117968210984102219509287057044237021609934981638892254522964469343776340405065598557804517246062196788360247846298238984581797821028693952692754590235102600610740206430553257058179159817209750605773717479724480173131391001733867989442517971345929650308487646272896573242509042191771286519528347327724569265735969880494876851327220380776592279215466762306600310084876247422818218662196438291589950437283938353820657680546842295996257565697342361582771916880452569509910071481533583666942210806881182491841681067524577277458626914255878814452815439338701734399010728315356339347214321432072681307644267022323213070503501548728650476770136511037635243528164980885583641458738335475447884091067463928267629816575474110651732137930237299748312434008922788552314984351056825209120937986342411778359330895517565519344188341934283950011023597604283520790840917809934327813650492932528619624122069390073518648271612225369398036857254846793064900913121922828823092449361884150779844019557591570545812664348836264379984885008436891063726167301959890453650195518931832831973809588926929836576723899408949843927178910250202946432713168200889493545619169427820635074697462248132089056157924558661256832803491975639964284123045954720658618428644692286776204485227473823268577079232824640208253125985540431738170740231419071519035413480235875567197567591921914297533593558602261048110305901111099932836288099572514206833568042315016607662617647314900377740291090192263271545464195843403785029254246452965362514756164482009186383665582714892528573728480673613824198852910269727670298703812377601539888601739456854030974252034269415062964152364373854072372286978634488816041818251572296107314621107635214657291512244139694750356922363785549933271894226485572817072781766061838100988514632892301612128585378704135797172910359481848909513786391399987606452444732077503604220629218351814423782423069795230809428686513775405755733123806428629342176931809137206048288188230588751785810718223203552318040871228306823667023784035787550098069671284909339999340033137749734560514602025679635313715644525328959660179185371932144112400836119830215865621718915402402702511152597033119153456261392547490530460645629528477910029228472933017746495594869693303193026587281119729513649773366607791333840082016883887553160470857086500984067424839107338532966256459099543121955550394287238959354724666532003728674027049426489447899478864764017550329673715913120354136982231893727539359091438970362259320436038105651668748145512548000962166408398039932009364503407178715988450295744767682343674223252956198924300239701964933550548012188788899029864278824058059472826290609381180719536760288969706954620659987023840104268853410043546765253805024049757332251412642562641979434177831661094183756410876467573973643295078062802327847895605144102716817312655545494227620488337177695576259473801194173426622218141838796809533452358140152680754976227900349866564158511624887306912116957714007398122496475440258580745574697222364386826930695316610352491546446735747851900723336164695912369937508560998865393614962714118591564180536007804565033155591965838067880798830902286700905145562101018064030639710509499714964774228414038319830213321900279403466133708549302269841121976105053372912923194458148356431745226315952070408129284823664448768748756671108263520715907322014736101930233422247438351390270312589398368873203384378842525097767120363546731316765727787961998940469235172551529813384276696841755949785747930827192210496891984197596271177834142473466789935939626398574555190947806852818287111200585522705508841058776621523279918597402361358319838257931943625687569455377674435225563978138539604904757161078734914274570643427453187062618385156943074695714444478394730013980581623268769247917979962279520173727483854086342857799355114611790863877915097789119895789239196810029059958887014003245881767221339873158013057129014304246960970459396242257608142172821925170873984771154529786244020535920236504574382222124984256818321071320086382246487971945529366456452673586448447967513497125159158373100161355784324212160044683757841907808789651510550218761836400008354532350165910220248132558169497780784451539432335977049547540633540729494328314833162126439237525488973323628187441892543886949538738948269802214975204617869083302454855063471927796489601823116503498507743443435382497032185830511169336912513835188882079999874003709974285065523905676412579316927447579832655620832474570931207264668899178859025770413345393933537246603916890912561786344139127554123631668068599607910317716026839329494499321046750210980691576670231509448924785294491746653164025323738483559063418010166713452554048532290071778556867213231416107894557727968450244056258799330801572477847626629248496275899351398757331808468226119908899203894067121734448238899617705510127944205852315867247676336633226652545063747415860698758102993433652809825588999381110147116490263509684324106369342746436420301810800165189508078290631841137262793510212262871675045876176338228258726457201078940710921627724210983011649532694243672689269225076662335271989569340707969268178152417354016476095941972725516592448535879304994029847796826040941273110099707045528618608324680595165915532110243424330519817635280160346174388867333784432906256295921421719345021037266301203892468169629338756567928123031430657237377114472814058018448945713804087855967802821874097472082081042283148697275767506721829151851376988072503055200876595333688050085974399464553033681976915245398727073137927969562193314031400141022808308941533510975428634397772235261974706108136377091866164499512418435307621946662613431523582485709938546933452928229843335704886738682120995364151209140090253229576143735751516430144299888018369499648417032425315762835529876120080640280899497939269144048379218750121013500953456126659641651133746813468066495366601277439387481976093163545725583092966745655254658802719226254244870492286620136700162585204283008703329407637141378148233227397769616369666134066729948809337786573345093071945931285629272984298107752968361052410191980964712973569077050442807571137939677257398882317806726827877015374475884437701967296411119305350391072773501380104176672962485276303632070323905975086715740168785596431271596646976887019596303705719442268243978073399633067088216578018286972849197506790006093367461960955474065350132222895773113914754615857868500076205001753225810103836470110155000634563844525590322911466828427462550585379176399911230910035488991745429695200356477662103908885937493327624621927829981288084199041048578783568939904789956193406603612185577887089919759685954047311817323950029002265368741442242549188952443810584571254282446600614118988046190198671992899856983587829844964508838024036248963195634569389381955351713549202282659003725569400289387371558255064595372121564185361522582376195736432406881671347488172535416855166207778401468876085837065324295309444780626590952382327800547093503773809135209786461679351715745942340540454554785982683574742244148945058906597659732925916177816904057362829210659229240397623158116690012060016392290382760802672707865663570323024170427448867717876983902599429807239710936872107358934787748539518123558328294020470726381208450113520812193068420491381870063708683404926876964791603562565583694081053817728985898118129011483186388745768173928597329622945796183875253867261252478472716338833010549225832913216147835280276269572518191008339722764614732038301968843007441875848996234603722874248195669653635114606104817591678474768003195076588399484454200302867296482349947887836210377793971571417668645694875212872580185662934792472077898313536002151334654820569492451522763677155801967191964173525309761905135153741577658111737123956051646073654063190226774090074144517687902760307129064154885793985300879041713780446684161469811531055857153176127104757699865473499466688409931919358325172826892118703364426279753551739376794093631443952393525575184480501705631987896818867671053573820922921645204021804688925020463281585806133390097996213523713917975750018504385927560119380994211827636295655084668086345588202640110262950568108485519621064824278272981857946041978010172659024761372948777750184222012983604589774151598463537203049286266412025145136107316646284196693497652101939677152294712278212852254551838832454299105156219935794279737213888790728663954616149663608133142544242285135705057628925551897251951181185470306457412738970838180973263085009055917857816069546087953943413491510225719019060404469207479409239156301671816504337182739606644446160751937897831478733912416914481175917201159559892584879555389874849528997293554206554475595490850643405494980945223336509197892266025958812162093309992571316137066924378324175102152824051991723395911074215197159710397881818880225370031321883292307040293846291400818714111829792933795488423610214187269528664038949767865608969164000098828709790580849049897822916360180449073421428765303307625853595423770173707054694780187571559148156543182341463456282329169320172937286887764923171664339622977197406493134478514501668096940949068455821926669062870357517807506508288745569573835877853511722484542391461310847297017290799779369126232479750594989414086709952106947257640102671896229509204319897724758018610588651846528535944067047998930115612640627443475505444845336503692591528907917271593233771506578133159996787642845027175636549779063837316715867765031685922131821359040672092133433002745263064880181555353803312308175328778292222965673199790056936964131186343335611655506800924559770995183277444275352794547215974526089244425837363610677418400694020978980296532056836470089065016337570812014891006341736476100314122589369605203740687184689239297578140349724796497293919780299959271726593682966434797089039275406241052208545902083060468266753673328153264075317114131196766710345044497007460566664793591281565109626521511203890823134018828825901715273538410890674278369303079754693443236519265511587170633746985727177032346033883421246386685509907111051964964379395001950524121347782605507142583013741380797675392988761087465641792694275923281684662174827947516355129858627693057834164112107838163711315535948359895516884603165600964541954277080791210956856075736163861029791147933140114335241987685165358138664958276066634842491438094395646651389542148225598838184379551647795103383481793025028899737289356143763019779354471371136253501263152682620641394446518046683073043210627068958077980776273456642153176572143060796184381098276209201500583270659156523741564101915697188495691610569084020376978482280534898152954003631488844894552770874506786523137304953488872544162913779861960860994168242954170920266626543943559771168210104321201921530041973901776049500268611483934661553750598272039245893315526644408154434725267169916262335719041028259047582887526146385102144415744652605732742404520447436107022018513178803293819919131961656873477614009546708595472364598501217797362295934467382470556877607146691660747101463498492401171886474350931675920456448032592041451954955848889069718302553818206140967732372851885441716992956404524775345561943720154595620595540933783449781219021782606776479543395546747116301068641784503865159936449536405875608368877895388950935428398435620573045084268862661319409429903119609254606189341036009087286707478747788663394264332046645942564501742284114110616433177432491473987287453541953779589310268088685197771012040176579516983221559781494956592262046875457041477452059649005599656066402798079911449232434418147676781291567680085917738838843930097181187310545649944070836149554908929225218025098325056317390624368295447087905923363003981614988305316795857993660341471886825201859848055244817286842392865978991847589213939173524570434419937136048765993565000960166154589630146144503460854581306952074614584133597082832230911071751673164161588551171378793953645398100246374352696015574078040509893522584255541745329666775169388480254086968267629898763621755052237152503383883342539901611516168305590381826525172493047613576527953895750297358476019528965908414499240897760624800745258494818966693760964420693130333092525372907985477987776654950123481169657410880835977359431564955018547461790603504886945933086336998798833418448301402763209074843476808586084221744110608344085533932617379524465442478528669823326767902655849769838377520767059540458014014620093977494972722192467906714071751453006002882424917721519780549766810720907890598221766755221323180333185164319246941059119823189095808562480826425614637644917911561507535785075843294348817538723482438812042783434809447251159018458484949799496029929517989827654281411739630823084200306384105391580330874190273334713937789806533979900619291330864510885614700619942311482532938775736478606606255852638779204123664707585513095094507001120778679942188964074415685931091566887704416885016448200139558404068388839896607576363112051644098798467145480162316720886226031151827135638405479599382757910426495214883354744277796818271268686085729718991026761565119142584891867857211074760992538972045827046799083518254143809943225994740840940777561355330510820106150553919979492680302338376615994195619431922323276245703816585854163417783294957745501430085136432994404832870983302148325351887998746269397004822922122335321293718397342183791279397781503163774349623397421399538351508025706265051127874493511668006726766316222727863382989428106406043493267922106231621504473204385927637412009076355357900232583819807969251329477189021442541721039933919745845283709838634269513616815527661525989600079868900857474718777955633235084687716162391912516486229473761165498998527492108654455413735629620746773536878888468178832349657404896835512115657363322618283713039204285074188386129066999074422456136375680599285351550196843181171725313500646288550025476694216260606340799548980637935177058373202887219221056621510429993197060369555726810441034218122994707902313603280629770111119519130321605016653438705758092024266755398534600732892315206325231281472213222880589171405023768019908367390471959160576093036518557503223690526619756701053484414235069268116173577018981749923001743307023717536171908593611717657802478890570388273047649798098360793332164305431999320542896533760877601741122939211872975450326595046146425517360433489732209215189257991782947724970925254239502588914106850017011714264333966619191398103647140904610582310156273591326922692539429099213689807297669786674150060266674990947948563790867318832109732156339634709860435163198726396783077892087322108649551482440970920413914706783701280663953997478372981003199337821903476317063229782601856051017809566580330388922958366452011427442599634329973723789347115874716924812875463442696507038938953627598789499159875970207569091404180780564803364168065487675147015007737512497456361558731982942422250905085437910829993281149684600784546547222640075934525647819833601932611896500969196196727494813340509043965187156578176656952839436152643026086642732882481812300587685554169420076012442008550836142559733394425714625993523190188471544254466145738927647993191895896840261236316329774224031538702558737882599004236373565446256952700109975634585684573475611512874257539573636299754148165122195222079599924697681870554924730181900963212456304993744682987277710603971633948883306051867902671974491933346054787981554080599090484116847628724876750081322827395852530102340365994482705167779747520661932459944854365159808735542766448439573828933585800137443131708514346464573522254021244210863706064704876732319115121477749983748693411793505363341724002797305339288239862748368686428841525217918536655501304238076334379125022663396799830147244383561562082336511128370173952570886775558517874224938682900561744106047989922933092688067110279772761625288485095807620246770562497316178098088046902103798703995759836205140640446284516618869309653019090653890518568231818787188132300713239289677480923980011012825855073113586509328950106015613452463009097785725541165426018104889953748879149447111534871759134128320049261788862594360301932401827614431120047628883365992681746717526183609348437302531163947681811399501117442976858457302716102295322320344982858922489719216074367089177538938195968037173508524039910052070927452142449998241746484075721623364243479955549257789675524614787426078799406022156889322262021180151429815749654532308647049305773390697032501341262689804887463750380274311965039708069218331013849646054567190817673090733024545399962752632786045486529878168701177370191180014144377047511856594083608721373440605196984425382236596623473776715430400958481926394490779165822512499419957991042494478640254268459513266589618756308283480586683944502142670536731410952702781263278271363897287153827236736562777837944310541713214304990532045345696147590286595512542965076974911570410357926342215503812754752143522400082257682055759695409302043134398742665517148600200237833757130647610485462549286833382040904251191062460570899446003256526522043280215824689393774839880182344134722592736671882351497207392710894744714090947210070501505504670526613534477787667377655540863764511890960575773138304310789486351167701199897019442550051672926620993535962987258036785714660360859911810002201225259688900727480364569011911710840801154773849130088172998898335275758662098273426028661597366448783910093678067321472038057380846131637004938713480863169956589548798197286517108115031129787707667450630277315320794873195285686849401631701069497418381850968114352462178702414506198181888799417545728497638378842374994619602360718045515672712443756973230994257311060512319812715339387869737446112045514632177191480160376538491581808621874217074945983631884834529475289108254522122070355314107161498053425321322793171442406694974724086607031164105586957834534273915674133762999881731686550022463594166493531371846575620454899490504963900314925861138018731419275519540210941548632571538946002672914480707261444766113147472676266525199770949952124883239764508707009063976729887389959147471794335854526914572172524934733956644772910645520691948793197509776620617645093935983054283800355465988847342160245470767129049078115018186480922732638977542834464472297223088601919058911525539244978711412997632478437205749836707092345172642482568730108192775584464848920262524014943061101253376303384179981774775935549971373480437509489284328827443469207059903552273667567158058064520763125683799355877106533176734451720738112780932566660454552750947620669019165706874561743328033381644715310339614210754870222755070712959546528458496304557000732702178813950013768757946419319965423044571022693741562111358907171498739003568280903420797280102000203344799769208188661589302869525445047969027511308950579763607670324470776994200933314296110638393909684676382631033516188438285916507818000720546703004717015759111974069362696332555433428005859631004542716379080877121578018943593693121178216169473293530935071619070318795476405645043923916658358622685799748783730669829773329906263148764392581619254242351408631715111777373256061830279016704458583228256208532362826446296395700496807051416382902889205775398899909936110943260813056789515658934099856208457220032727627904149578623446796555225507273321478142353592043609867865692707365847295440477134827905636823099697112733220351404998512214746036748045413359846195808394889596940059921635511288955660816497869403842461444541300349773323906679940120958329543668691493473826652623820420970147896581287380965844821645222167017808802762256160773034666125809852669276462538417832572406911985289489919267763704951630292453344616784150189385051140370407902973842321007276859492262451735559491982838234267743684466249273616323136765618801372291738631863983223057854572325255578285910777989550105501884275796439801646407699542687622990393401169990189250252899346150696874132805761044775820746780043228555188850881276722823735947196847829968154024156321452943524756654673156509250710245172463904354226164417416565274386005831132773238298237474396479796970332527224344693547795291089374570961628193011228207805328539713762028666403429133395036018959482933683314906652254498684034210004250086450675295893568707119861443611456443044207991774752194565333129618704185454819844207151915272767383910247582066159766935678866840500009758084938629894720722874140165215955447440807579476837573369162134514177329036971427931202982356323892415123651727332303453489964555812112370817173099354666523665993807019581352150584147643855096183481419794248993759466521136415096371817041861633486595055551674446632600839071247677779278478414148174280512947775828793363160704091567329405079967251566405479147016174610848200651611791190725764053577295244712457842980204065419120668645961312107946197860123738884715314401922895851196947828136601557857624038945361903473950813891608638650060281761187275588255777007011063514790604594376759712969675705316963532657652095263596306870779723734150714925310198724716826601277147999496772721722540750449449052252889083064788377119672648088524182579620116337032740244124463774936202583578802318078764335203039696089092783614184127320475540528810763777365840667447879006251589045167905973550548041458704237581785430809712034589467648133403297549413354960505639844793284646200780208135778715273887447512394041081778577685345717211898402605476367392352445681183262214731736539509667892748327285211869623505445079877559854206044410302707798608967514794641985945341410111124001027799048366253799730759972573710168141826270149226365779196752456367592620293496377094194763552955372453286772419883567604622299905168159732628938745526566865795668821629936936222584697775998316230545251300675848106942078001968549869199633281089894757801219736963220198413921226311565211679225273430459322603336161163143216828059481322633459489694755672887910612455177809506958979241073763673276971434283136954427220202072095803505534350597292074283857648756006810858034793957674363313162175363302049389066987248356927305908783481372121121616291149192719961478314314230230500714766968567578069144848947375036338941542319370881824398117660883313281679594797078258408573678955501821652779449001568818184556821076789752663149338962373826886455772440386957306152224778460509304708548933789561857424126370967197596816477874425424163184583177551149967525733141045308574389506508366667902257220293254382198591213429218413487272434021929878662751542593263115632592330231469473726003024579606977784091486760914101750991662422268853830884631433942734036987268881031537488084426196444625869458169209766597569030586467593479962435979610537701402461450606846917594055509631435319621673732916197563587444437319896977916658802347681715372990840243780985524490928155629104138258782139965686461351865644148166949821828800791701119346572363341303832234681591940766016299860815796715424186421599084489553889000326517706235311986412085103751119379152959804530247944410596241924559329564178438491950025594899903176258919870816660295577522625952730155221243938674253869337501039976685676373457694358485744633903879324621803419407990853682228623022749800539604907605576889984502772271437659452366424015587660108461694537719608967332084245027959527442886339374318287101102469727247854452246835429047981596703886741984872546859403917453103628088695077056014023662959957518226467739272167886673699038751035055820107442723378633523101632958444525174937078279781159764339435828833666981472573328035258067932259537391905742248416589037293914011761810452565200810159765797182886240207129230959617957986970445381733576914926483622123666432399997576013078448920005920004730533713572286945490118446082915671583472305098995133384694690626172155805691788529688066746011437575635784520483358045439218953932619442399478710722141584605245149433912105313639718971745638246251591775548848883018234079993047081911692268948888013017064721435948433362282580640029900117001762800538961401716507267455300045144520220730114134350082441300923464254915472085770678904068750553322903684110985189440161329268072035874481788360623254656353246569047377259020594653599954646088286048376987961596263040092811041431891380612902236247067743684451882242694337466456879580026458086954244920854866190670402714951581847723342524968396063181703236404018105942963893640981575142941206079394710210120300231858202315169269097088770776982428167252324894884142847920235229851363019434919589677423455132885063527821163754277783208603732415458098818178002604097499274334584744922437985218933493616731958164959844846608901472403846083616351172220682826410609437760449197351903333202929809084715752194687357761057756349134711850404315664529725710592256170042202697504106311319433966748911255071293396516889209238687040596270198217955729019953404535422862949891300347438190937791054819307591596204686489796779169841500941179536323989620346926692141407231965871726442032598960123910053169106793581933572212498624552918182822991513627977936697246220666418278073809121778051864866418653926717122115113377174687751895531807603688399816067066851722471435660938938009191080658568923106007052778424560904893332014842348291195733270251538284438053039343404582495676770866521613390528194687418986185461013835179104658149440147523405407281933965681748088733305773473440879660612333073943421355765126351289256105260313024921975647263394853155381378381260302598352513422059899272136191060284856833909776611162836009731531864321383380019745408121534000210761648473991907395163968339115216739809967999475997687489577678487771952644628944880126754033392094744733641657140395737512681944479822743314613793002816047487316415075496895619855986136646771049561413438711415409359453876272536325339192536400839916219107495544886007050107065791108407335863600122398570074975081404158140837802758687878251117998096117380387743785326984798609360493273480685938600357357961748141305740110189803219162535591151516634500788616413381570324634032986531031131499798064334565110042885632389378001512423115961945425300873243066498188127458337742433934138473650974825288513081243621635615844773627612056991691276952506297281280396467429154974221868264078635551487950799110688709782565739301870090299929344282626520928952297011075355480561263364931204806021386378119817218327753102979278751500522228030084210340910865471077555729080496778937563907821205684743614120628621540683674224013337677394517224321703841445591070327521787698487155594797322789858446441280476812285438341155272426706501625194159787343210128030449580595891270510207140819029092714822020838519803267944023729354082677928070833919363288198082196227101679365334980963349963590773434461241567716758434737084887870898783995335164268647758709645882073141992448934405960798819013453056735063233520074305126959567319615564496748623910360273322694013663916298187376843736991867029002375862495057986356241454159259755794678035481706095136008197976157907769465435587140879894729845460172328192564111727081698832604250225186637491543019045842816362892644536739380991833344509859168510843965898009777413824219918062002938681807709118491106553440617268675961051421999466605336328800774270256026613905634219253911174555298739805018030904779281647449200624464791895031807851585171356334737932671870290707115436318117509304348221824999994654387273323550852142042988495099297008148382896776887396295556104423971121517478288709341532029067050337389006216945210246008049366008259753154808101089606214984170598939424593075685105487908345875607534063244978112366212678249181221806599052799773346112412218178777180184228771517129469767800268381556031954377158443937505108348489369734671184255300448802310761706152165427770331420951629327807187685847697454724040985650460985090710172835699764024620550425378273968275238049731236525320411682068762297327805411713700096038974360441856773909582927484680591338702834806863786913008878130394442730602243213859341037404407855598846077031767003023314453128454467892935407860766213910644602577754663218557359704829130379984135017766373241862271915876697178093681653830710649618625954161368199572032658901151149963848084075154189617597071839603373867762033952110150851291070800506280925941014339866132639435187829492678240757589069051146205566891743258488945576940313047030290038651616085192284373100668991988727735669635433718962027847309535837060394564465225744196642126086958540066026356955411197553236309775118533383017081824971211452505064915350230363950144449711998310434381003160093892421173154608180105593325334686791275881728470388177699966023989482568878992214598005650844845714246382054983935426535181837409329912538334914293648200736647980743686492226463101351570624550595343550828986466933179356412818708983010787587447616321954327703287387781403440553414285287558894124987278784945219268081428058223056789614645297327065058927620616752693462677931339877336651681336328480064202118777588777308355123476283826835268803129970329693160409350625234538871683725398505801079413296432271730798945183582539527177618300594634757495658799330124737158711613114004368349860745465426050971823808952990912878667908659937534293715880423698317825170280652239187457343687049680669184454056001524978724552487208784564180567548402962765488299998147632611879978561877028276662815668576543340402717251366723138400618672669193060559104610309319175853811783456542290783699527452833403191416054934859812113264939907289789232777569458607774908522990272509219595480748799027703296149265431917202750175904335818008142699929304713457622635090713420497367789975910051156612517941098289504772247985904020167700201456342347029434764130834523557981130133078528755879576791448474572995657660443463810117030932112250647132968181951358464874103488604439650588687555625912673675954377373113400757700511210593070142371956061147225014947149683765209088398894110020552553489577704748081964038428395169828039282918510663429108591739696036296828078821050718859347230054556632612039438279806808043589645830685791098071224942221897455991420579633710467395293414887690883257263835254507340131815855094313695339002979005330315824109713305059312189622000454074429183533164833260842127295767020513565435679701366928289259997193993050596207685737198956036380979023524271693258380364461009163795409738520567629889456739519753230884662278034875153860638192409676157837598598001919328977263491944909922275902237029352688052167161633945363071173545932502731030833561779880717597189623599796530360978147299886043735830923947323633696244660471638126774473797702987015274986842063157905655756663577359368435701078971424468312204623706935611140784320560410877424947546726134443790608897616214998808118332005353981272578245565097879639788752694261362266777870842521982860186208512631638313882582393215966319280014008393888195854484857044931687536994778756872201184318120422641477370750721973712064291577921632439487258129306452090838942598564295323148037756956671935125246363580437669204674766108457032940544962662579004433386557358531516613267275925934358954095360110379502771995545244816462709624587176408524530054651164407906622304251832864573448353453297450944436691782977350266272589431683806987368405654811509630173614552693910955504362710777044127687705308750057357794972083455564705417841164170021376387630191765629658719310439276009392658792077102822935588862864153112400097075275350128793922632018744446862464535191884626776069039664027427670692601405967250515710329721102518592875411926506573129951002848317520356717434025996493751240972492439522387641220158679586111537396680581081242143902280447587683032797214948306924308261914483053226909557161389371892111125923127840120174077668474539758258344932965496541848592628284895806291751757773956461961382606451707351596203076424070206889930012358544332759573851035800895687370784374831944142471083867798914937568536246064687858155889000750160712129413665040307150530464231051194051738192795938338589432319596148238352258576026739877740461505382677288689470131558507037216144743115938166311688881907652048706215845782427726924771459140323407536652997168009724405523443798561192893832147689530504423715799226353082026695544648237910086629060031689004658083147061638594792604727993235393096649266045083625195092756045180133692647277368632322655786378029532150916395370535842117586081268264241804185976934215533936639999034427578796722144262219189654136795283000362177255403960624607414349753617401711464797122596907075673884370216462275628907423611380969828765914126269467743754824405512834566352602006915877325486604312923401992012976661587014752754802086408141204006991290041716771833499155092693327316000222532468354183769188660674088045172528604670794812768414889875895811395466711226912257208815483224988563125513066878124236199960255366724694664839407087228848475682650736837126550635697159353330538774864468293092821562296605394486601120327705943986234275607243161177652894583836840165218763239013760499318951800532749669032150404074857017963218730277539351272486005135763971674761597072083058327574620456466268737954709571653897238741922586055790273118639396210902571887818218756600256974723366300123673576681253280686451022172539787194561735584787828460180624747731075176414698781811890867569610913457889665588551125830635507030031275759250879609220992052968832651912599717359680049780335223555824121966122872333047518951344928520953894333521684770221293106907261597568835584040886332227517982597664554819482498007817717187478653443303321470101080250439836841973183789179835383231521207171428385563412443539098143468348565124089398984568776982472141989680499396553747682450550852933041228412840398826987569804952207287533225278389505819246156209484694280269175653717232109588641983697692490897405470692773066009524238787419731247088946427151592079629889204888454102940657769377142653998088885423109685897669692894149606314067666731489100139281867554220344941633524786329551038828615820379137660307014239756329257718907031623097766275047552323100410088886538279872165631065107187992697935921708283784570925561138390595534433902521252937904089531929628243964247778024454394232957692957466611702902421627915475840485416437657687868306288336346459359291906131393610236408726978621637160571739662487592694057669046691696020738436455518819575703853880271940814916652054726165529380796730109080736184637852063895545881734774594678513652493630858525960686446225399666800233668991497549187905306236630158060512446876626126169956849250627652798664448892814635381343973231450840825932137201050177239614421911590679891251403706089142555285302501564755379111911384422661300718304554759722997696104359568858800869408034153529228701928168795841660080394499379603991019928191282149942958212078891089371915932518843592241004470715148718634950785827935053237738353877847755250206711416822550124923032118306093443242128599822095095356059560427913695835116714226269302250712692552949732236152746248595669446017841910581971021135108198970463006180176788815850740420002497925645293029333992155458043031659378289942551226574813182851687080613119891290953202226783238134932800342385502485966503476150024012837076602183933514057275749434613167777828842632224067355658585432665535269168263935023412861442434280562357856071502540684904682329765608262796065869572961693954237952216398119688033129723612625449639620286920598350177042025619550223559190038095299710030334318216306228966747175738233725331120985362052924054441942262846206629657896515540109697148324078373780378228186025907678050895849654168275636707510523268916060390634418451581748862379944293194020318945055929674196625784326314512913035266485840742668654751369880267070559244659844060348258585654140149047275159634906151963479772794537187085888016758799451809553479360412305621494551774026227385983632970871647426954930248084249295832056307779098011091036197687160301036778262967317278101306637880429725485653436052212333028885217445974771219654726760620584241468694934002079264846695773137205774066782912836160793549777083364650945749063331437067422347076540761853306783268548142446214599479923521882448296373182354128353844519689021160368417565334071420330269018440595547256488976400565900497149752994359677407295382586690382838710950984951430216065710440667887454583040557395689750879776282676358269137278799687333348227889874784950200124635742171495729980020589060773826754609360581585524366660304034330596867946236332130563059742412041648048644020101907270481433538122068116878940731334205826599840528850432838026743170818185323274672205913858018860829152349615160780489957112414586655490357893729660823047164930699324224461991276575817316473562591561300795579300671022239967173732061553032187462108207994945883279441162788488259178796289149859904500716701941793407321397687607885596387137872682344544587812659812134468435059353883336097066866891736793953351012928196961984179623290822069252143514805834257887754609110781521566494155021805931772039743172354210293674081119578981955669659975102309292767916199171891052822384243727295716078917059086692898939811890498667274622755566389487495129628436332207345819058132847524628275299956172469336374347805011364546906489864631386221843644884436445802423933969435904920564229426369921394476123091882978346067776553451757943918306211408334758539060489224867582913062283646909144621043087626680841611539699232112321827262975073724743384168501892775729919900585031824661058826614995545526415064287918366367567727391292769769520548005783908037498601743087696809615079987776039312714404663269182117275851572294519334939030348272932427132901726710751072211532649811043112481222100564791100136923331615761989363653788215426696217603909466034236438182421834188614703173315755014091042089085877482435175239339228050513156532942618761607561206625403170411190002586542526948146006924334242512290953081777750927941319572401830439094656291370779094574860690637238321423307839736643017633103552687143533405781121508587949294965936978900973632238579408465751458899974708032970045756228484491624203288533469152745614749329637083837393738696678763718415010295529851566320330351457687926545919268887515348454079125034076434628778284580472464671160898755154377937103176661108220577395417911227223261713578372136883357341151097123180791176761067492584914150834980168868761063985707178010009607674759620626307428638395053316603970524229206124454839869616332531351865957018623140021011984548026494121736094624938087306052402500244774000553579049489799645092602567447380719331252685274249228121977797560105230480645472569820735201332837165736196055551821720626752511049378172400590685899820311487959567664680839900133858944681789510335624476349888652499742900609686040989011325449181420958640225746131372286812827466787754509439632093660003897235190414654887287487157267190667764665995836948449738494815077189977646932900639719844182083312348674903174086860311108044207837172828973006009787702219562439888430050494291046039219862044430380189007152720513942253666806655387756121350823811577385557043810253864383342663042238511346786425922246758807796381254527730477452377291019031140255751306282007761267652672034165194847119015593162718977109575247178758655730665912019621081219075909818393910665517905658221957139991645039763753749696823797656707188069644189805106488871221759072562464602527522693314804326423723832698503786267363688622410807594600902201238893045826374643010679548716199030153851487197440981015713147218206132900355554826954208451301379321787884383500478464968722469740321488199357246487366097311598964368967169450478332658407897012130753202135756154268994319933473911880576107158971435219390391307166404975575339885052381616940084988532142207545902690005262119124018113710089334725797617204192639557551435402072626882257652270875509844478856534430573683894418251997855890556709799597617865944799618735742815416936032383166799958921527650006443968138211009632865210444383815350914220362557205103325094632395944568028883111372861760411522378869995061944479213811781071363533718798170567171303803504300771226008303499593800964418118707427050302858317403942479306094710481832829843213842107331864626614027706592621065074778960490933696130837254195504283086290533028539561252961809790918076794943513506348976900212678164431342685396754762951135440414651233961746332331487162231309778076659704209404677567786573587070396473728317287648391260568032088175615474520511478916410267855948900067307168327819954523794960395882442124757385049944442727751931574837601863630442735689084251494922082933387848738193145694042470581720166111956095108594874113638074963665495597616593977921769296855831006076255609470940600407940267623315990153775061787260200693430392084523837682566399203696585060666446345380095406000216238266168556358125592371059464426297828042818142376949992099444381980042938801346574230495198744895603123860359962911743028542428980809644173760169977865217560149797759311161682634156450557016531631070502763708994039972168922410929229103320685392908756460213844420795767151942036597373668897033285661071832827435873088284819071498877284752296320348739464538359757542101501319709537718308654093761921675840243381873372889313687781092913616219346213530677116588540552842285562242183201710239124652254706626959818403835838951839732828700825348154033706263823988589860160376670740852375873826169854959514093086027736066986529901687353654837897883061973223207967310309271614634022148529989434508200169766320903210862454449826728722851119543886952528841330152828790413061597616189296105800259748337862582402611434118688559408854138093108454131063265933857190904730469490513868411221793701035760135161239418539260867074163960883940657414083936778874677317382688013244190707962206714178116317050306098178841057202531554953040069285434329569894676741670358751868901666841196460124984555957332684926429201751318284575897824612200990559763996272045009467306207758463069588742411157391863121960022855122505614902631355249486932465613637857969565003934176534363363719166319063333735157567266666647964850018032219045493353346481821899437302592415749588893940402985524836175280978766626153223821242514084894550292028563586183371075943449869021335524197929176411203579177234596294908450375201844309702311473477424866681820871691348064432343316546562617378985294297108612017937292672128528924991561040108473409510514207404050590489147358334671101926353424248592075151390256733424542419337875835348737481812732658353684827003795894977045342925236513112440672899397102682822429274061244381919310655605660390690427060700173019628321960090891518040507479868634963593812852077610678053878906809571640925106062518324132431989031623357077243962342539106036508276489918173853870116254022870264131236951755020332984678457652961017761217029999407273487046825756128591978808683232913337052383207790903808352977055514270191477385350274016067702688130187981336537516279454800477298506700451992005539720680669288774745601894153084761674367609367906541369641610882893422736562065244995392105703214823741956396450546892250084865829787400891567222313281730230704264586834390427998385856582035267118068854515245277695168052766120383703722191090982741359557171860091958836180825457501215473720577167302206326091141214244913498894570077437872980847387355367293809734163336099024205161142448591877051187675762673360771182237538745572578709504428475741399041057637548872083752454208567640252118889871242437700436025466804532331624602007647608965012591954830515475145211393019110043575642056156901952424484700728710730281996372694770258080172266695699336881356464619815727054886869661547490033667078595891102160778620193016874279512792805090040715244205728602282392798010226304016935048946029897600158771414094565534749455050490900572047659903459058895385238855604426416051853554861896788609636944962944080183899060509772748954255356551252275895695020241444072892881682912131217930353560789790556460377779364490076581857841368666364465636558997921416518256526027591259170506138084789125558420145983045909336819517874196403339838381255502267535826203430757948581618665911596761981325266199571484352788687342798860223391535980778932854047650668462123274885285041362919681679638754927947280319512848769844312362081426644070144673254978507664596881969772742284290102668364579684709899896037125877238278653523653100954021452760494030268776800435053647559460393129700112785256556071822683551065554836610634426799440429387908826770929479507429950904231357628511352436479981488468283957609246737300924604363971987518528418893290714334678916442503925976784891618050314993880385747441026550491393382183975226923111948266384207064186941560900385140571590891477434857325857375489567702976228056778406854937623121309334265661114882081584421133904894992454495146360086114065116354233209668737256438043442889851705635435103770160859944506238940343924644859544613075762268938723308668682344938507907207235295228543262780228199690697058113198556926978444657389318948067920820868525072350964121573426983138094128933437314665468268541598558760958179613634214903682813975883173083948270776243301349187264536081642101378314210145151537116967459705021195447563298446078293631106100766948129469518403747810158454103412398659532312779430723658936960832793035858146791387584932107841825269254087778776988321106272808277937293487291280695252960361115741229885815451571664151000876491130281285580540766726253060374361442247353045521902647834193862959007291801782119300813247796539334651724259414526376500278784017075623225290434468922167302577109531849140760895020342194171032350419492731536244004640375590387130754787007529590575754597367934799412938899471698045046523567496673279098039657724903850520310934639381364377413499431871959850293113572613086399804766280494518918277439371641603738018976672465656568820722762270418294688917794234573083485263633233705390915784996881234758839046878945924361135187927663865461752904185803136532292650702210111479414666960778778065910896734959472454347634117591635943616865262433924190454057444426927095885037797380890760975545146464427651716044691210634622797437280492689341832754994036212907286361432808233818087366371422851656864794161997697377262396919555282618347130370775265218034624018192968940550243348805760186367288978540902363041772415965975046095262237428595451860488297876867800134711110843239850219536956881832417471521381972216866854003868606073196601539348894484644992752407338193433057605786769661527614767576945885813127703462645868878236669958805620782385353398810285296667969589431549799273341065888035962676517172136594359201272187858271739094965971394192662098785977441889186311247900163272084516341746473144750360122727493850380277629409059919709016493966657113151646671743884042260236579777794525734789799239670070518446236754382335628414011295004558534232663398184849497884860973484022080403157388440079760546917453849685146136519891962440306902995980962849368270279043874316612390434844558247814409015417116232877977668076799945150110779372243647720042385474399841901048020642671834569693852019269208771434346346386246594491705138858737536574773216330831758418812434625935047265631371918131323746627243576586519520285269798252335192364660253003580462722367243539584005705561567694860882045032965473327822091869618041910524137329700121140961865819502027829362972479154063013742335580103611030518799317850391684426915816683160480777845111377658372976313642881181870153582165080138548656063771510570542677243822888645872374401277532323246680567524327739546676265119676438122263612749222611026181610526107156582482664650905428470780569394506653360690441176505439574626015677655767957401702868644182574959149134557802095621450933121230390634699559936840695652443391920793651269505261327149766464579458589799261839745601989785317447992474212996099339130626360231478566732345715665693944157334542462702243591554334662005457535060037371618930991665168399689596598793764490692898674136164073845803541234515599558403373825283681469430539720898972459934990710519003323664784021624721947467164444722800188713316411074432324456361007590472331591919233836931241766367256600890311479737290279027443396531270734025770305747431478566885677394621428444943832299161696010710157162782014055571693917596487517457122234051063546691905946136626813173674038775163959698669302176297447341492116932792792414295184440589087992510834514277995219573782466956029074728958161221452284692148507094034879297495275678800181194287102624430348596887920206673244875854048036682268954736570388697413367777975126842622126226469723424134416889555808979783003905342918544776699561492462087230887493603811425666683059718182120445246627686465556303026540989336009624065202745213280803200607288795128659833893013439776577094914099599212406385619919676160657859357990203742589593772416715741415816092809862668589726113328719359164216376038681239861200066502220683382633321550648906898139311250853912111701856830889533764942576535193758657201947664417937875504988547137380358990431702680517799911998207303601039889205454242860809124696415467012206369433988472312446892568459014680729004044099450701226248813799411893347335462073076375388908727288662501121655132047372368670542948653647093438805888266095662332696258488392664592657342600334283837339457899306968032017579820277015273983002600363498730451803623336575210341427686733325696625508713917000438940728950966474036465161906259977289276313113652788746414533035698729378295889013277449699731731166209531918560920749812417728983589772030167717513160127841655284726491578444430680068352783593904144345367645913229141196203112909060601484265681493862350476164769408151239439906437564912360492297739115488821793168788962763746169987998412493538298367490999654833727852348107419054330435925086072071248654605707356342023324797851122547885397151113145565202846667539871501820463668661503028739623514993929472096965432136311816434808089449368652243203222661769291129900316774777782551959063174940462996026086272877733793854744860821462242512642371181828348042182265091994958477942834337761696720466925502112165583872295552848147421382153039094124165681621770166986570440039981855912234643454270956263043536331814988756354513149079245356509400535751575125065098129324148221042710225914408885356365647542811733377586939112512343288350526488021202767604717629544655043694545206303168714526180695577002303100836749287409681886390048484048756153638048762490447059966067667451555493915483549093794180503330845463279168424694879117598054720922387809894872311712929907460048231214675700843045372281373998641358224723564713031086155443994199390330131433511464487663388882916187427147902950940289822691049865075971623336990744167664816184995251637117725644748992228585381248157066232777914925464145507971025957129720754838268379190953379380807686705542883346451449036515857319021357550989317783125064015824409454261896267340899659401175667259921070473203926422934634826343325252791270756082447733067621761056633193006335728627622634443976399504524576490924006638005326502162568775757037587515473092558087129586217027763839009861459034042840760711004270836246111307027169995947463626721152783910051673264772599790286124372496517013209494507270122875569961134274054585205960445533178235094177814667608649584365123240465148949007078429497803382227672778402620626748271424790901131767495326746291311188572891501792798726400920682652654271981009375304115294869342665982462111623185760607222574242683078934691829213572989894701819063278983418076394877132269378585699352195438146394132204577961826130932369373417515553478692450850361361756600608639119199812902572552970271734493670550586448793170847538168356524456498054750331313615985214129270944289680406224060494906450201548908129460375960191631283171651968001411336773832531645330563090141590286544190476738035182197601142219340719441791726293889450934264870115442956166289865527636634601533789556484891550667885984312788241362870404781932093106817134133788969037641445830753350046008456371569591380475655246957306918919964588861153257939757172969151136400786241318777718390727732157272381112245519624686375842103148504657713150589160602752953246815879285401540513417451446145007156418849524325430921977183450865648492416753471890309762409340541049693994568942104222295897281935947369315275766186231712199420860949891666790132281657979435937704569373053007768796893581108553931615660197030289902221089430595609051599758277938877884275179134245015695529738705719154117249944589273539614339951729118461769099139061141067393820731427557926434100088175760482202314251414525668123810641804218152025340885285241257030007868934517232908227536151879656592464728037908579612557758236181262498676577723180481748928288290973153197238780181808613243213353875765112250602204036501019330736173209631006075918228814916793904264711137715512465969440042264581406437028702554561489717846614217708083423906536314872853625971011808431989407683046894091843322608585786455058799667633609847375859470003550124230378250472429018412910310670547446973433236027497573210295280422282857623873473320896566075401393453789906172569207364728101151109363703136557783613743520616604995024064877390564271549150105354298534216288281858458791536282750667402380026042306079064380255901310179458752323850134205536481595241980371235095938466009159978911001042305875033346781275109025459002674050046198429313586203621530909533069688850855011172519660203846742142419141453050626649207293144693815858450497958942920040821110114741738760912880241289165353576400903615731559505219565073474203765031804876370878112794361906846743418183651236241120276023550146466012832707498258383782580696023737126809968023913049838979794629722837266552880722795847367024848935893844965914453295584628014459819525461322332029982566100280289226049640518357232466252785706126375149230739265659771531522985364955764651787020841705613735323545817673998489579172663292709488024312607562337407939706077732777248952212691354829450707306479077969054841667339077493956909199614782537663426117681378922603585911131981959148951615492257812548890910953835572655735446852651825308363136379097098935709625271164954406295751816804403106768040773723326209133096237223860484752931588240182798074628551799178559608208560730873435189185265593865213859483142958557549959866640818863341829195059972509860017150897345381161876460603036264439742818047954740766292420404257200566994894003875327593662422082331499688409114712503318339473186568880621164120897935309877073802824250863006156570338997415856065366195351077413469081808433660909735937712516474305977831366867000793501263395285498844639730600998469491830661939718257124430040723704188421680921091119879562613772036682488819301724380382520626096385311549548980158832088860590919835626954924556008820435986291923290231472946253042646286844973848952993925847150280165645194046765461517021608899020601663843059123564656702964286647429133515432083376286576908760300697213418776888182064101911547872190984231497177118784350643279646916904032032122377551029729061440697753605654163842800498193376996461233746699107462261740207295382808843147723417039597013835630204260010851768226656054600399539696103678122732517120922542634778579923157512663094467517009959870248788697082449885617678130188331900859567924780003086710867140887700651219141756593774044218388690178647532883203965417653129651767902090107738286277660204406662538043305003906578543518214169188420701570344518789858329265560564666617857801518962455485239086813596222652705077934137817335532955238569465788722754026271576044788294714645520997463280470617074587376570670912886971492509699196419405187597295087840918097572412255157373064878609503288177139036910525337361276550454875455521276321736763451814060569724502286492699987954060265815480237091736194855251057307790818463487561394689521179641599959225205037629178884404264305633732357130467592475322016420963142105154655020710062515376148363149822212369069201341727502267626662987613523839988546117780436463232411110538142145603746726430354407082694316783412538664262549291795849010300283260058861507953527768007952137564565812988595797769769571364014584640173559324353712679059643567386957238572872464220431235816183769797777759072997898519847390298038973991964956052742029128512794276063433304771913313571653393373700834664839347533802679469940700965835438150832810466526017480031072613999900643137043492309868160662533385076834783557616758401678606399939223156482572065839448323165080763679322939412614483845387764694804391144162934303476620843941452747083712723408163833585381612748219520250958640835157084286236295287937623188656395906489058273322087548040236974602630150080777284827071382423270298310081383024702503394950057952801525517983395857339073510318043299993925847058514244798136921244375313805790620756254580326573427554248541171730925697249087573856276242343421909058907194070975085995175262020529223561828547734593213465980791980008578723869535641207645768952429742140643667900441546105071886551878220661616826592341508190782149919397489798559671314782832546404873239163584090864424488026968272133888248333739941290642317270883630036162097442845816476546903277270227140158071867116254265756798605710900925572943819675201566777679041032051823367025735167432298241688982380119823413161821490906993798815802310180335718805727106031128901147583498276299275654773970003241293032880810101627002760567169920297939758587864450963441983780437313881362640139551978132060283902088252355604300611486576963329505691294555393042324743182766587520198861592622891177973499894759015460195422723408074004623634437740820719842782034988412656152802365935671420103931637083428965415398601103339034934350508564113463381262680746269536828862838029342901647601889188440857229061636797829755150146336890759519732677780464585511667725730662740488582082892886149875104867811594452159485518441754600651726952427659005709426658968698211044638808955551253689258656778109643800301202075109281679271289084068075958598814939947392834178983482526080114606026471603291943814849430289463158884799100776499379908520554222969749170257985189695464960464747212093585499800099961282609508148925436075740655407815168842165247913916171209787371049735315322028498887802968167658140471614758908456460305073606283404973123167246151223258918574521073842406713713562092137169709181635370757547339005059458570726522857276594832912249092903477797010466703236127629583588823621163934132851571581931219608838831928357491189149325064775223437091937077402431813356148192605158471056516434884015133923506176474333920084525693170249379996863317628950253004885451195123914332168694407808039653005705768290285801782726647752175868756079648021588665945472762563553805184091868366008651978130907407301539981005396778612207204401270431393540980320705749970952644191791290866760792604970478453485666588166142818250621395493345295106688254858300515068971299773566250185181166874554036799316230931041274940675624070226566472845700833987862686068345551606012147080770585602231861658044765867535198996204000971956795179882180311074702391418871317046193073733127889327021068342647625015958098640886687766675338592352012004680725537101634530890296837056224411107051734632995833709471394689833932799007342817471387203753926719898913855781180712765635048936302435777386803595410629156147491388161185516741359800378910478605166077722407006500709787862484043552896884219503886786907526722377581778963710680132997396444135581058465879255950674401901464883954736613556934839723726721576161699754274135151193385824754050075156498726426919640721361642458474953410682408566059376991291444772140496272685904221208011320301067443808509855173617701204697496386728936702996892736488537206656721864947557940985380831333369090552731777191039529942271342883916351063621614204523317094302008841324478052756249087172776400761432467639024716299724655390945316659754991136190290564259579863584259670617944395292321863246697509999122327353218720040744413841543378791451282969453579561602272525723414839829759944880344150470144113914463018790479034189052178597877617001659243738920571160604436004132039309151321085635793972524633958799903207431206533585902320266999666864264057082698004464690446421837778401143622591330920161633935119862810651112233917450526485515193749867298649795949589906599287899655770488995535255225990877898385725488807649337299706801949797483759897226896535669656561374568950865060392827956951119016540629554805551224824093899191211802256331784212920966906649050612115300123383279578442454718965728248607727970516398902768523049876284641752142913670171421198311345086330592003152854434992250629863480780653326381027161933711537795553528828862013360866226286734131255171426583207594796870585658822469247911156647616724757841651391022572146792082391226166813370948524949327359242275401993819697109000779197395032379590920608620348926467780920492244253753790994457046661552800627758521839124576595538526626199391010532440801456929329502445354928756077114683290065803780841212897656001754367127391601135747016515521695072352131698093699040118130914759283930724050318060979109755758508494074573106838785271492085250160577808626153635513891896258121178362408625314686246308183362149432962541322052517402568452101700169853788807728599546020732588751078220806858183426330008017511996455319913512246110075531492464325832172760949780664939498210454328831783559603965849215075450678911349857057862162084094539123348264739951715342630412656795048051262909992076046213240957030634158386941804780353975121282075320828246211727704286411108482846414805935017551148343035288074809898526388353603427522003564069201640562587240020560866671999276475268552248896521648730799047340415994070409712719348958120194243903300162351946372808759763900446430241023602064986042091849440185313447690154300509087070430527378498635164217488214183277279639127949377040259015078973372316344929123912490138698326448241082764199243651641972294712842455749614282999771444418488876812972177346023770232046010101775347085213625228406666690209734876355331505732759300138524240470709039323157325938871645673924860984070615252002987221671477997470254645556709071908418817099943670619511314525842820847094350262864341529641357261956945699080739785633157217078089160388991663386407789424967727450290659919572968270437674669159791013784161272570033751894757758000010179413452091377389642014046067433253773089871169051198051873548733217557784649023548193795655517419408629934240897527639000357305285773390324876085114985294106142607096475682077680111759915881438731947337770009695939591135513798309510695986604838722342459412489519422110260940537802826072629966332655600416154699191234836507428725778785884994555086813118539573096806177438001239808018525410396773168945780883565537844891744367735768158361252243153894028226036617862474333082093578937673137520140583044690703351668991011515266004114301953031914469640349496816110627401371339153769418645925547557057278645984858691455330961117537129486408997190357705011525230327760424893870943170149433728159412606106451968379251107277133450251087621676097383226376083712302451619475991001861421070175616081719109758665243214573962355853007792547279926613987383920255452492564721546197547894143254924738814020045875494492190978872032401224057754047466942998867278700387390941750921233987959759765355503842920706469948027388184182418607896413087329319798212749087311533002996186189048083624303071609393569336860269560519816662769871580428606759334794111293996428451886596624780837245147107960085001557876611912643107953405490983363520868923465408553346707819680701406938912318439089584118125412646547983188483330688345033679699016221598306101639495011410000049316672487226111342810776176683569176897943755840479644649445487788619502601211330574106449866027965463512669887092189590438810169224161436584686157387184130579909171418150533047291411255349660349046402280455529350794233553832340291421579084722999448308670901491446271401322637135033598002599334707450894635511640801550504465908747687951657228738851020582397196362972932533176937580585020109513117606458657501619818057966144303528219246939106314676398706381299638172996100063981213917104595372471163166566155409637140892286331593163801482069522381815881258495466485405829606922859148918950217042599023507350712831205707775873372731435828735878278711089328273543828811971598475396729100821372920961917053257581825499632597999458678138742025105216675956213566773628975693559780981532883591283258983322269524777477268112001478111758611229951954247386707853217145809605325157533601930926795011440939355484490443378027009227268567038854962244230468302582337383274634098647382479384243049237979434711940226765787433409240728161639170906968869406366522919882506657636247612429172469177687241290615423787626682679960110221345009329770441515857262377444703195653040554552470763650855498962123840959223591173556526001900682542107699142687250436388991400444044558080659012080615090929941984507130974074772811286967083230073388748708294672709180644602753574950491589592670068158224712560758586656630041318635081521619982904993064824552648478687930223965221849278564522060063238103976635528759609285522299585919972563105775992679100341282632002326923954842505677319616717939109450344666263060474543856679381439042396146958458950965492419078984453118027894459934754327539374499410687125460084308618842303436379749071709953467268021254963654910973584152516516996546431724504296474166262602072376549716427146125754682399257152392949246541086355712133670251060137632047284932200810405005624654969372475393684770133319928377304372820902818835295142549581250451999188568743204142616181300313401104407533738779858903101424155357061022265528951636792779156674227042125061967987102271082579474377627438285698546781484054885402890530065458782168994897745359596558001500501706683733919861940319021733095546176764773763755987943567811951184734545646446715129739385980445352228755103097233600715687464208700881213165145830934616733302628050140918089176706615845856278350740305922975000169096371062315643029150898199410233678892298767295920712841718918208303316222063840964497506136523772465579735092307424238386688235629054626984125747621586786346533661952823026756804596114507048814112804207827102241817652350393765424098325551280393391086391474393289367559049976768327594944350554643160349199812753025396900506594582606086567889979373185677783177318554069625829461535897507134453986994355934407826011314384834618083176618212851234148424061118608149920501693425396593200855196673690646549429769259248712163009819819985805415069590422955731968178966551445420693749929128042527220502482765620654198962011659815575053888848489145245157208871694369630928456263450362027908839434634855071463353909516353002776415217078500691330467648809554175610882401420631731677028796652676719616250421548440628874791991845055029541517122391188635372197013132901553740669667048827179373816517315325167677296958777149622388413189971584563134395489562874547580158732921571384059835026558506732410620791504795865588428701564087583294866568101356806644605350328566598650617490119898159711288411172069428251689228718689245547425492759852841357065362023032825282330184114930925082963249581904269020424956240549960886370035823039879900399458816019530010716521248649667844524892170301421358505321039244280543721419799842140180476235700200195863930687623062194811019072740420063352562389772509901450551072016992984300267618093600301321836318384475645047323948369995739863695611734586717739009357795553344559657534427309711156876531270461855110342224526209329296110369289598263553324464912464818084906790658804572078896610707637951849692502174769159481351136526178516418925022460349683966956144638409737343408958903085812081056613879214254575816505338988894914148386831636504645094414602187383615550708460629111434360750930094795900633773469479159260995673486482386547200976846107785937877033264659134365836000663528714006100284614397208254674905522314856408172251342052098393312453143054389956683362895766550667395270534153498684370255640921972782480958811014147931452745223083996432900072416996710831708489767214098840098303952168429928440359770840943236734374177100321298452545428267749065651552997835559622440226734333062521600646585962622660469888234195191439273405804135076385703559974553639828175574705078522594761711545561710041277747379483546522499119319854473786358936564141115929103255552662602053183838860357901284706322105707458573544992212559587278987811097499930606679966958278095244856663312142863386728804799409622412439139693274417739111602449487131172802839240401222345927744323678418511992955324854893518710110539776222515185210417510654499660166854490279399629935893321085795315085882325776124439044488854455452307081162776001613065582745146688337466887371166714332786724491758220292199667731369205434207028807554284038068421613094893631180385060119730764399573940306095036760531614480951890597886920094149268719309325690545211300772519623113855108700747230355166996421274657753007205041570218835799584071998337760431469082421966006292498562652203249850347499438473146100313176505772225522284282814674135327059096571360578535213890937447947265235444596514272836579893746703319466732851146354255667546051699135915945568814524191930942550541362425395864223998527645609857510660769851670011330472735251016942280448760632942674471970189978828414429637648304444284235153862315945890652955222257630852123847980359484088153416276048914762347087614592961014849157624846433610730335394606865407684812613483346160830316967739744601310318605524957181125630762038749536761464631458848854147226640555808030320585237027730247067084733935737396252085518357071533765005515736711908653855937853868997042091968738964427251206248731002874735038388103583523381608818315446680757366566363212465968431803912229174937833407403783792912306542978288272542656252699945780443130886585221323644027613664432659356444832516235743118481259403836949633455909527380185537066226122647226958298147324712891405309126886548676252566989462649985939474720817104855983615030553402496502681359244854996433510997094951511147607357745759012394659866260994428362853559823120400561655735364759300325269286499906446235756767460796786873469524228636391276827234790067206183916005437931347651080313148100362362584186696345904947629322143202201305979483584460732728153514127571298660603800309639466690299680312651658242716480659625584413937715375687440035078191177090826310795200623093635462939876728124779993602537920794855311711300720197890897682535453834098292951548076030772855661772514060969140585464351543167814844774294334643812987190924484669393055297069616649019248465627602028410693571410041662686286049818012642232709432695959403903356202031274971651443591060388789696227592253390954883011296170526202774607244069637207028097447615062862945693668748782838645028251251458633592516099225193778615466354648469827759416644431737101813791389147624851820166299957633504269547735326974378012627680905185920392423112024673822986026733790962190576746914427194882603263605243722269670603307425110868553646591753033406979209856626653372405727589099064324047740339704611317805820645221788571804212883720418393072575409026905604805856604824902246235122675272934028781756267530342028176760814486151720897118992203231731177288851826377947883945031882137395607013415329304385011031146968042093814883603500547956866088932358650458919511199009820374084354817018515129992053585265097320586088748315144213919509297167425208332492953148648330813926308934916952568707506417226142756193054711764124812819487224287593373133833729800121201109391051056319082754271547868353977166867111252104783633555027032577053770651142653801674090897395218436742055747657316142331425446396514990303303978684488134796012427886915797305595262780616338374303537530896802306008324776268250968475167283310959213124552773325949120434331129393901413849326527744846753054398216291633126198714515033893739990035503605085267305403875129814191876633005953960349586245851792022490815245145607643195984678490893212061614841381356355928447209292026579053582241173968941238065365764920607529732662797408270843940287392955973072435502470612143990159002091880198752166881495809678781586849749422499657715781521133462208034898618461402338925465421028219988556503010054868815891692132678252448334569961371138343540775789218962046943200971297420227140993371784374789306243792480848359506255184478891000322930506831395289441297027846601200872120458551363260828987737885086265076765255943754900835362702472638740181816720173572799799025295017025962744505073956602207599079147008937768069504530150742855172934611393708379575079377419256489947374458199851770942886371608362005317648569438658592582514130840753429447434490806554341453346522500430159687866069512010578866235895957664509503684679333846447226139110453293647187639813364958536046415661136249797863738650271869150719744410699357767001458269307684583533819221631180647485464631129106223057637566704956639018699314211796067214912525385120083034047020746823697462631581409427767056890439265857351190953506654843881295037700097251022045686874745960334647166415128893291458240814744173222389609766504964477149214493818769373099546295364722860781654448273404163872033358986024821433094948003329245173591080896777810273613920836348558945761440655869768991413644648168328399947389357228971185615979957604786914893640202974291444852979100014215965999655189433255332431307639368945996581543415502205345217699821490748133631891690704263557636062756526754678977943395067554773951668774384029164803729037472354911338532316125460042040807833269818950118342242612133941642268266041483103189704054261435476832268831721245508771015935336380880470008992285783779594324049871786635941530599926009289428562651438462500738333691626226938155347152619739062062467068155612497992783758305387604676537461077137615790402868344129987313175631343277235981554496301607038791741315782884203814296856963464039701789554175863573785356435470400236610720338797989874182568228065825117675585916395098859003547008906597669907324106497719541207873349677581581855207713211203293125272070582768313545031297964414510395641420880881774824131894110013176811315145279547896103582402090919391417436517727348244998285299214916055000622191938826366455587489362772689118514949172120029176407656895410848877229425705849109832256021790067569659431894294323294421289288994057532164553000237331438055874869906051037803911494708348310201111609389192596980779300699316439712638264010139280129073025301132659024066240561639880692912616583309529375718101609613680284003953104430187319580547606328013207172800125332518419332066553960481808645855045069435864509506991903955053579847447807158569195464454001308066007338120522419360968026967339479711633444445640900337275036074286900125073182415536585878873914381469841124621846342237915547194538518511620260263183217798100045805476836252483801374612410881921087823892960522852486686505645431879591314729730843963803314778133222737543575755628821329758129300604552896862859917952175158470877247035510188068820106815761436454626336073344128582178719325093211119474676047758344455389369410888682595260012853226970986791194435074892641516191350736401495235597993768983564755903361733141179218868237481686210391554132411274744538122993174250511431310630110732556788288368569193572936348789552026310469086720776344134429854386419752639554808487101983045577044042919562257738582657396911042856109823705628224340189110304072748541045899470519121569686618753738432212632954568007893605376629343706159284825405438034112070168262367797833092349405372056603708670751293201350461609764460232150028254721782421239107474582345477859000929134117362650226196987253968729540495704982616452494032396793418982942213801213365088606205505682567119073936699655299245876474918339795594349789873031645703324402671609455350230528720073363008327979648168515945385757080870478941666337020621267561893848142389916638024296437663416586974076566644213871060006688380127758911538375129741453049910564417930139434299043748413090218468973842156673083101921269418142639088532960699408789905119516161245158333404206204553305660326742285028752146554299196423035301752590990156508078715378852175688484668563971963233928578723613713072810617639071760815109811575507408727268846113076629948392553833624531211982213840915462339704158657647084394110576043584124422500815750314106806763195935765534345201349789932955082199294260716574066243831666809130277406949085799070109902463645144235439255352735491704984340214374722224474037785256868141005373138316943944108270800533311944358792459771590169849662637451851005809615114962634647880877725796335773361046613631464948919442458957207832214912940170362807301904417897710143709324658599594322994423768917943305713599147759306302478244495523053025139699434989315308330013654293056655479849526896653357282185831712410128803591160233362133126900788958967231138387732457248732150662142112978574967214953921355721443088409166347400235012545661692393643411398171306973255942807330409801989038146998357637776027851842684430624941906470271790767282914681107443489117755548700168019092841614599637247554220826717130794628987743257942379769342961702927380740148668500860096936032986952806603128207280901022605840922160757330191504923345609066138241017799726265679537471030372313984037996399767961138422163873758659944664084837439306588874653232330875262303747927522724568813529587643217538641472425586217637777040791532035475105573545396665652385467867737740279637341163562197719637579906831992384320623568702066860833753275678195110345522705138809057498058285551164628348236728561633381225247266952776460743915050116621838666032929811403315544773902464830741035856892434206572218682811601533835608876799439000490219300533685095899891388083883367200378699211002493181563910444202957345755062264947983268405985993509380771079290683888839055374856058181573061207355073221716711879677728100100920342148349231586602550861237671316482665913083669488078313702877718439507130757274425268642444345863307193653226021866587721536301839744554405571338930077521062334077007607993050250948177523904675922016782980644216175397612549210790416481467403990862347806748494461023989961273672328292726611819985038126359329276380944919811603322407381845352346843540079579219665651060163783619208486190134255646872501977732465288901741690868045771992272262306108223955898026147179532687994682544546728040648249312984655392879117034274489138547344146728154631590558266099750087529800168864117907067549854116454174768929403699445937608194046353463620016792096787950710092443338965960309256155958480037111019401629723419083612996894723593375059245979276049621892282832317936539151641832404529016748652990648581947863388339655083428915836064870331755803119826738428648985556382094872739735522370079017688655662749531588092061337181181839542529830156458472313366713191913561797830785548520816661695348844203232987016535513704767094685518737866359319333514628800169980475890207164655202227120972800110863945230080787277851221530699479935323788569334411143498745525229914206552313541115164158945900469154120827477587027673440410037535527737727955210580059708165469068497564616317847442914259905171452729671111891714666517305100368726846366829436717927650411542800817803942082853501038988668958029986353431148731498967732075172622295936518380755895683009119259416661633328454603287470312007330120162446926828725494338671843800638207067426281216500595076729009087467120879568110720741157506655020485667166669247770155182215429062117607399465764580626340765759230113926632979085008220678353594059887297598736062957990716009721488407698336285404499965344206161573244448694907949320275264426154140784043910782609733822899234910199797014021557692714230281048563346827021084041960704988829149034909559880470061914632821462813622191193011338152414045431951858381688521939160101185068356633721317082320234883688244900475921191195618265261745832571231145295255028086369017987753704439130126709454502852623525379073970112047978881781902634250871619444302304023494465194144235653421441772158578469037474224655367041856611964212925537468774385487737421787840656395592305402756574806835085289608706001863789392089857594670955068410814456511095302097152052099397835266135873088580674472562601363002543071633478796295842503587755831253073758058053116798598991488075240116551691887107179004784763907262072671823452316577883020410702435260978548397283448717205796246500432670298528079267124869098446541877146691965567868649814157596150871614817711223666396809755631529081869290336729696759037462485111964030884997132250031030257242129328173680499961937442499207482951658884161083457887632393758482116486645062106178560703318155216475576491211366366464659541970427400671948887189003528308840305303258862247450522284480499210154035559419992889927256356727270533134589843972885367229444401888495552041513861942909608583295713386729700059132057597529125899807445410142160389167509283801846842635209927374351739772563230564346229731281923883202283381268681942809839379386367778690554336758831649195965759588412957352219415880491215741756420933160810624627228647472493564269398958939783068196139968901712987141973349499873874740759631886371165536551099585935419863008333656204380024192047255139483635818116419783000629611165410663621990796496297314446174633559876591894629616131553598295079961382714980092053302610734883645727881919572751871602804757252747311789875796682240120838445235626956985995237600089247247826748286770862186718509856032941523370977400342550830642182338223391483632677070460315603408566733450159285375728293583636150746184839071385034572143744882939777606388986788480480420965169729965435608307640453102262774635362917740714155644284756626084022318169829710585115732804322350148818723216589112031354007265019575228146031985180470625547361020246845073034256742102391514589234756858184061417445377375093604439199224872166092867958729848340810329909986270489738525734434262443895176687856288604690749008206260561888617464035813341203881702208831470673361799023104541754491183565016938384475075464593936193377932599717904758186023669673829081013891023175061899483457152301388552931490088218157406875108460169320916074028235865613587585220805379541258681582798118735259384727348080712352472230848133578282675897299433297491972787792429696833474295258430647918907633201939922365736750943449002047281942184213347193029011871388125058951195839387282647468391760154541007741860108108736071426298619307412210584682763503825300024169160509261036080739356659520359089861785874855382764004319716911886374470797076673605503793686128742693153254141550266668066344711737623476343340554302138092374139777502888784531403047103599045840397951458690276944605512153977626956730613123908401274038717986809639645186356596974541818527934523803070146679959219557029052246130231848538939762995815202713747679648633734242409082927096255477399594518411833915201398691294014549084046566850684316089633143462221497693355746481242133376880278784316723125215988502567054671742002757346777258822309828218369108620015901592264793052800847216161215298656075046754604462948324269458176938514609472835129319460159498651317973403801364411279747767395130680950535707974591840666240702897789418000622696435969048219037575091061544729645783754578039854416531418143471041395874225687688740515571463913019030518622596948110979650358544652199688338372313211210722081201559728253235382961206096762565535073432343185548796415906711027730589185030730578479710857445833226570716394963289098463473498854415287373937357446222490255952254127202643234573448662122768701220853040216679681030940373207476806221340033960542612838933758172807636798944715498082546065306331433979266589742811731761242390065077728584689903322034639096266109186150059863335753894943805032210142595789648063068538240281562915898460894352580603125447852417259006270570942558953216857344839649283235705225192620207921718071377660371349985629524773147316267398646565743215465223911572764591576451415140047490735647653569411083324586136178384221986954769915280193278343506596277367020154161492432147642260075997158034599945875708879208489795129821664883162017809846225919187350358237938736520907824114151734201805887938814889812283750666307565126869927098660134751747433902445864016073894978714865999765848880066488119492295675841252190699897786239900546359750805533335282324686544459520166478571865249794394939458657676784105202839664259961377871414761698237310835745797419993798570677233608351812069188684273960592305485076588095181293054759926914327352452003397993751407585452500467635638755726331269197907471268704209076295730219490151990813761669673383551199365621831394671668587146169613681965882808277580065535747364541280623466781929047039929462990975680504075786163589480670865816261023550893543659522854989273295360652825474217013109606398813390860562737275748962809804547821180522960827418326568055023681474118661856375162702293179920958129283077590089045292710859372345394938824772392580092651264513571515953711980328683814226562781773881329985809315165909358458054315234221550383149034182160402814552621157770266010148220562031931539389784766169145462850453332593400630302669968316374815281502662721097653261124032003324689494476419434614302072905445449042358737777570362096989412292569607578952325027251592373029691814074815548734210920416944960716623588420139567381507882211777474933740924411502258646288537753793534597516166876519497537691244684058395838444578203158129831668745747879760857330897197886956286858231905746824640461188998489749141322792866870211648201404271251234691464585317496994327159042296377412904556994907819538012448659134265868653315081329475896670598949564358430789452374962799947024424645920778177494201297632149152560642925280427658370907251003567945250159610954927449657905014147459319289039840996343892692161505201768344681510480258551971595690259875168882438759932834011777887490891011559456992712965696416811307024226635007677893413801655261701644375288066271376064062196348977425011700694108250890113630830186532744715934923822881617359352013179144262678495957463589313783185442698790121632497638496100383020491791119686990359192964332200302679726827552171019829175500395121625059104931852084904789642431566087523608416213158416830145562391277426366213561976307618619396974978969547392619045507112331387192698435628370540416553422842187471403401442497827956910309347898779043400018047705906698601826643103410471525255729028365982729263078908858810753282150252879151189033537003589214041898443076000586902033209731178565634809787669607395909086663176496025436535649147216150095055023577441397154683577279014827846880917781224101736060710696250284261220356717743569290410106336940795705741523265950247639024913657752470711661355158476715898232638595286568971180806743459767692753124926810921086569805094256801454908065210289097810029541771800215162152193583433435468107417238721498586598671918026393773827510751121119779397989913382176598618788307664770714483141497528938789791334845087910975087210370597044472642178348305320333154421462518120787498663376421790547369706605353280603138508998214424335394878051338740269534445737432236313714912649757844359644571553659086656379829692724733726349100849122683731434851931334211218749075847820261272789969487105707159872356471248384112820081615314425689480297725672852736210814212022809312742123262728518837000131882042832327230577948856335281231296349183287755295771915912314818763942705247354075048714705325123395202989797597793523476413371280012196687484387921649437305326809731127120080954177652209926716887909364790088974366781599832236233777040915794366879563745141933452505683237804295393893340689363196553118162461816344403945069052778466600474757558492418170417108574364173424594506327522679520265682968139796320076740450126989286551477290025907178498551793199024831327777690631653668454679049630569387754208299741443321822678428376023696049228039485037128858725250033057321586809875679226972166917590128504256514565640463403275672172239368663687683757879016279700486174987512754148121765339991168518238123378590450587867208294286967779547174419285072456460250492246371030992377791576882881384571309079175920840611708566828486200262092188456534655785274283679487532871743035796425518169100351979434625080488046509420591864137290936605943943560288633309290323982816800899710087529531218627580732249855331215792687790986816773330798051754034409940817980892512359824346441144932768193658844777181312728790424252456168640070322131829121322221150840387507929589942818669108605375947945726993927260684467124063460542402326615326924602218565878911889248284786585590254413710953630479760193074073740516435859399306775660390568269219954398522073364865994582493785454585687396786983701127446500651143831667096390511889613995515357874052984707009635287120554070328323763165976389239478736339728390109308097688267990545647787551097281533207089020940892006448115846142503927121921517727636314924819658279279299069830380234036693219616845419259670437879559747852088698426563974879562151457702100578314526380192532793078870336188848545645100940677968039879096567757590402761827843193090079125304416032455734983339738477719547381419723455717757593388882631821994804758099947530940715947879019946680925333933575672170103200815890102875420765543550017127518976643546656596777388628182919674330617981133312458417828915719609530948896561519777200463988514336556439342547687028888655956998279003742618958815725729930658767608927913561288345305406574669164526480388624692981927065819620512667382095555172402577102011704596011910726730235963489670927015913272870465355607695207376078070503330060967045307059331163534942238283814587780369299424433044578485410443508489053921008660664425652193037145270090084932627432678700649660704753714275204478365720723600440376042355094148793866460063357947791085500015458544881085748977995382082990786104067693296368077267457629631715366866145069935264642947328096986529649126560429966726909574035149898327682204318092893539921394131906334428482189384463350103630463051815020878895145150142994257380366265810516382847913480355271599379794968350564302326082481048107108836108584154749981438762254078924851036132210840333756657095432229677107751893526528011124643538437685713458131429566119767390520645833941468370881765985406924284024330713256639147821840822989151941427320462044881647001802753195278841308804181400561603853563246996086372427190595233636433106376223763881337155582697916597318696765613849010788565462857506447958817523697575687080352122959873880479642949729530185634222004063636201021851037157807268237370239871807004234971521527677249592970201288198674656475791032498298236840787425862734993850506666415569841972398551071002463489219397451662582655349150532457156567581513488778675888265091873008933523695342208287042949755223001581534526628698162150355402926244015786530560840970744401327103114085621436976752791424037311769827134914294244225131097727116285540647446479497596662583038290893991745188229435554445749319412732237184449877697054027533596267175223913328418181777436457663334916687658068612766982562417713120807576054642721339103684419611656613656617199173863281880104818702648605475671687859981270051917824119238477951191585874220624279215828047930185753646407663426930648473776920995266089580670382927995305020371714559293939557723159317945349595430369183885803975411441845021286787161227682907001586835814444089529707531289840315905458286340624269745047784834040040560079282934524899820844081669744350941380497313848699972324870247183031698947729846307063375312537056935574982434545313318053473427328631070101047179439303895141169292209667623261711141467752299319422331823228971340423288968690318904025286276215817650973694714261799205376084375643762111060954717832999659230948494547604968815029380332295465628814066795197331396470522539179235636429934720799982734995760791841953853204304911808222101857675378987623254958521530707925826004752201717759919269865327581030846952159609700332749920810307021717680035878677060450974778457879773275287506328751086945026407245618236728109797638160820416137191024291342491363373446770231479326180254500465943947071679250733036747383842419290535994670793786615428896452241282500173028322859080211149567888010520274665000154463325290421382021241908304071702731372378498553593555777320455628610004508188183871179103102499391202661258434781566929168050509294135943545050094608438330625580688203573852624639407313106875294612472115076452161665245496843379402257260469887481328420804034967355242770884708173346488877070631450619394104056852302323205868252745976251087903108050390867058968067570784046056355785098556865342311946467363836143228445853276645401391379962608182332500196939347974005455360738434942077555327528462193541281039183510559287449363523295501081681044685462699942182173672759022118366631184952273993767746232260638024575663055266570969817467699512991350860444782986009438919841513305015256476463464061227354085941550378289020500474692020789566282212702942996249449718945594074809858971541718034457407328911898147152871620156214745136616640973749061248052268930212560003335773128235138368961616346840578938842586007145015089354757978969671221710578497947931850794086946984163767513520091859986246838197082139547776660134366253717132178890941918952911866272142880027126868442905944068036441453561861462573299439695271391037535796827514004125493586750675530313670552150393427979444496680955410716659393616065488849073659066743797275011135085174325899679794295846605685483150589202166737216972381981037794149332954455316749774288013043589939963224329073857526310131918742289957439033701725570162402657829297194756343930585728342617134827611337439508698862509855571592364842647904648826605587241640872687276748836659892905033521392931677476737838912054400280354492955741524907848077769562159718703974814025297995810202657582535838365336496143847647078627120200816892130453083554436846502498716367854020953739004900665744758066500190982297327784448628608418302813178555616648688107334092066402452476314628777248019591525154547811827654030975520822836618813685474197087159142908341455381940820044834863570934034328758296815908255933779855302795042229620825994493040313593970265064824840686627234169179367321834322053150567402704825383220296381193099160577350052257962613545967086525157365349697020315644743297000459057257934431195864644937048650783406331162057982263076748855064070778256392539667994236232466265419366574709151635738947584282946456480442056208529202595076090121178421233654057147526254764223318660280180411485082370092867277990333101222236258297562436521469044743156618067821169101345124529091634018459265055681221432649021303606195166105048816666193726636438132725461250053043223553249745492153604645519203151853176738409917605199998880709456980260212976558260172977375761676979863364477277194728137665429065375768848258032192148991400983193479270510614540921403313630107027333118343006802888065413343827865999243201658028428269420854403315128967314826510676271309988983404158036412469043496465149031218417748589243015307515252818301315007421810518355970088174960043037404602885877507463332549128113480186825067038206302676454580357688104427218025950428811883410971610662776981016861111184365842102543678411308938878908841664222162895868212742716456612605409310899451103982934787520798147012747053981968101894318057057230888782776986343238728834560936530476919455961897065933539317610605481134423137048525106105376965375082626937866560429267478707948599877710935563645437803871045261558480312603305172045888489775870909975527810121533407538678815890006108400956767281304704855271035376696949851791850466229359918506902296656667307471446612008687866780626565832893634068223266956487221131933271442360151289762743580909172531924339851523174103000980482622113700379306942202918915175977583925121165737973521899396973088791526437958271575283487329803400253827976625995081099432090720727147405260743830344080216709789615928198089557700501367390854011660083693361583724481292703230735661340211173337425709446525437220980011143118865487749303551129775670612307031660093106450880140911019287394213547171888827836748428418468550646908355716507106894843936464159882669388218399905451151098704234477614599087411202268066919873644906494959183107617636829839717740223129199765673353633367399463001277108493712431936755775810068325842426306415755267394886292593599210289615694360760275979518386462190196443489105252017828153406518621700232470604478945372971780657640709835582140963536183461096223910915000725553640337944725189871269134897268463389752716279514614427700392608901381651550590892312379587434075953370286395322678613469136425847712585077848166856483677108006143853258168484269358209691929857197858823455134729812656979201526247910669150725726234897303284229396428550035616335886411605020438930524420652983748257113332594344743301003397579691203134685076047902750511119203513126839438094013075109903642926262028594777243485880334361408687246158218410378444646194906376536237219059360855784002851315908315294316955434437132358135858262946038405794570281493518199148269178834688603321573277323501754941741823629836128546111880514053321759706808918093433049318552470805686557202482374338673699525986903264330138484746861555776012722043651387417821174729762916224704494052501640757176000323232911690499132770292068212967533992768422954171133219453979871217931730642805447700718134129567256506828130087085503772718767791967185605563178067807438597291929192289259664544300461729275467873953432883009983099732372036581482673597259701697579921896186134699557818152455655686528973124155916095526538210912077410162719660814685025809532199338679571663642049568739480744839748084901916158153417728004393889432914152575448945765345798110309886266650526925155947043253508374146548102957301254308810692601634275828110330409239940526479945825244263989214325202632474761407412947152071971000295857502337404318177572039802039034196420738049760290150671802706914516465033217634118298803796599128089971752016108482719905251483173059418324490681342887223446517667761810223872832806169177714683767353878593922489761449546795157002640962689779678858368762608911490706094942292132772482754570396345156878212678039602782392753631888105988326419863234095411644975608917199525791110628757618568535173900953618147466794043932343811147432840185579587352511149731067847267791473552080688991110714178262436819286643012429644864521309954997044880156168720978138475518166023147087993778943700807131542630331744214192982017575477988783782688116692068210550045962461922979400330590342875362846142751733904889471503939579657933224906878515106507185381300038710113045033926164132511962353650424828229500892153000888436186564478043217921226227069991440537496838336793425567136495494426663718529460081847793236731655748784532098420886711044308414513627879630811269725692847646890671363292728034953652357393561608435482675544308235274291326959800767536152243851399011272687941925475020229927429521400590030807051554951072093529077799819537224573889419193699118343076697726342699477346999469410426269812048985939903163347429231220244861694820561003450230174623711392700492505543330175379053512955437228459094973008423940594538229843665486168327198372154935963439781809535420173887073118932275269568399792909096908485605654665969507104551846874591977723556389135137173097889888080414775029661648574667614775227808190036684283665163539300158648103297426616858420372777926920650692380182834787330169178122338593847642586213153594260345054661152880372661895510360739202245013443871253298898624723428390108931741953008693952912037957337770577217050104934394498634576899578187896565824904289821070267909644650625818857929039711618331398889364896573377772420393394941853731574666051627155237816511778144781695375744669444131198150881860267322554956649649605905701358692932801448735854345261388247910434733175559297838752954010461649500966620925241088036918194081778463285426291113186063892979811795441051943821473123741780186400135238331779197704486030056003838632250899017928130605764977426141256797873663911308484283439281324605105024287584852751210263351386794233944775446852577955141047699467269029843794474872309851682704239443833918821757579693356431381524016135940077762813774155686835561223988622908649627675495476170240236703850035397110966353201771561600648385028231440674417290010429145394091374163195322594406050350137478695558099320516335349340404817610800386352068834271602490988229327462775434784732384928236067260224772201971484582584393350568553826824928207580154798399630396550278976159598920480774894303279643062809655465992950258327619179627163695740991634184937930203437895307854227689277091599898894258604882018047793969691696007040521945923022916603098413171663393925345741567906805586152339917051037717640756729440311942393881506653454902711621244732675279753799458534911207048354937828311774967169406972712017747626701124806329818546875638041570704566481102226235479046751775143459334258703759170914158488370831733906315127757725315336086182819566247369756728954332595175273485341989536813433796668209249092723519852830414785740245391442252822098263561966699580710853446172492754327250851448527190733187501651087513674934002395920375871082599684567028911681658506980494239728373429987296525614154117515651050410076196819719624640335758115936920379828402935262286175342555854508408309233502493988824131664017914906470276422590168689754463958344340316497789938601190950276570860324759236089934681866315690221146767216263667339835277116198514117221464191112237426786529008317693770687552558909020504010796666689902540077142114923293067877987467985795126869238322720976510076673381087950243949184702431892449839343754512533832377759932599409173865582580900255506986471378473139657523112947368572897479761824379954363276308242218068849204837609420467961136809965358318068083828338732095113200046953180980671091417147040506166880105186820435728023398824424110764320495939376772025053242950723895033984830801579679260956135366217737861217735387909890750016687992341164023083081745750804911340380508656739874091739870718799242495292446342440850305744386554304267115895362955328399856667958287514613262111491561986346719924199713220104366086787233012667162306717526708460306553817146621023214984105485588953167019568395008147754264019971444050994823688860336396845910835677913140454409884960548241694651755286423139066704350698556581607990407354638070891805313177856504482840800182647907572789315075584039228027093490666407953184235030977252016819989100219829009155768290282273707111012790696593196322518360216067564120340297008931786149563975328015699064938780644059777221361549011007386350028086117633982696795154640612128116695644135662180738050361691274997007704439295643607655564393706412127475383291870352318702932907075083930087371643270433662349235586531557482312749075719713104679596389272528894942402287706435839201889201224089239535910936557216977185836251233755297022870197762481815796772557395042259156080217371018463519164455456886243518633307245597115879726517534290427825418460571110904343415286422607360266918523244167587312699481556461141925724577478776804240876277283681605715826514459251313349831967467644373802922736633252314291540816644556981916568454391860420650270410605280395804371421747110668462304657839745202452833713066505078168054047431883252614052121203365384873794809319875727903765739986971200858126773960372763953912092345724137128180738534931409690728552086698636830834999023654986894525765471223829158736778759833898785481815285191341608954323687671503367566460132706775792244304658705148708008616140430449133559037137679260604743123734351246078626393625870842523579566815842566883811206189123473362658397094291636502477764248555337778477567675784022458776085663177896189209246340542675842280979067392055915490127004406824295131030828982649855678517501859910931797990594704236634087285419300437548987539741422359421123567686775184212505964840998654537776530678343045527007202611171031835372388744205813697841623337730726779294102716532326550665193868569186598387955503081670634569253525300439729335030861115375852267423749977989493982761249969218885887231105364207108477202593375567338692166307273647980270262406857927495126167386082328217320290943007238670374620186801779731980876055533072384318038766094430282723045046470121815305490582304148257339937398113702648080369068682790722134563702981308317653569600442175562012307152464854028169148426215727911191262697583347332016089322370412317039995180570025786871221547896182848282828887225558721400036508336712322770510244917396715822741428730017951590052197337260740039339553944588661031354253764463754869982224727817369175374884841745182404263533960070563916350656802662340126558633088119746359543562785071994411815420682404669012720927714179881873285563660847897621085943624567954207057613246714425122225835530883099137952935455788243071326442822435232677423705701196583200308188161776546262435722484116894611500779258525563920698908568183121456373231394916291050722245967666826099612203447388316751314331148804700923063205472795851065288462380681090477634768574538349984065596596733156590449751010601973615472166155091079920198378553166524472560863958032788043175406554665505899697268912172565957667199036076530986370772157001906290624766322183905041264655018446741448879128767563258814792780266730979135505539232290199486522933558650219018214122721552579405937910519127500200506412468943071923848293878060501762899011016041397551381829592244162529115291452120800149135569736313814096816136009508714731093797813230223625930621963026653296826708419055321124013036991428178579774375626730305788363028921866474899177091221616060100307102084256233007386771012823001900057877210665958727693684583753758108561305091368784690854414217642625141907205647241783172708753891179016543736706771967028015719549500096504336767402375189805480710186167868343897815986016837339182445235337681736973157772585932339389342039901204671147701411118050898589076213484569547986932885525803981418316638179655949239671184612404132762674161036891905943506285411872988199278978339508047542391193238128405264071354631348279979927833582827371603455295772785792112841972280373869347551476521521984513182189088204082203013473992116617417095626560644846657091277108138411686192339427931984563642537219395041585539352355809726908286915780493264215773864634621881612971541373609595316508272080125416075127812660976582123202513681380845772320388248950020005678736756916571737980449594182676925041511261212466969910112630509629235090276563795406960746541100933735195702855151833289748237664788115181865525780479164479439420343024751522687339867315640031702797486147022759722051509228329937600420025159026355514583109251159302762480375939696594112517745159105504300566290091366437514180821187840789103376434086290799005957633759393153266021789557574340864810868920113211556993817696216835341502657839173610540338006833896938290415473269580533265669934953770171728618052266892176785347597764004500472008986634508123102640842764157280564410724374927792362566856172394916901413228785956071004999270910502210722547410351698814525666374941532139315637280846535597527013684177778512647738778873197378420851871994921950889031385673364721981200815005839125868318305031461957957853070204484157891140907777683315612967706902121152396068428779687062928184522658093242418227793953379718793579883731212665823991173546421201380577681567456353327798096606361200124464251436494546781361593113981144024986881516972594698787336446222768973683810446748464508829158305465945683863498831089773045103473291646570885777362737616811890972658310727957959162818442250019151714730658003866192253365828932991819317618278741392398977563686593521501952784470506838646492132006274079098433825144500180331584310647641540430935502475383800141582688837362874223606730432239454940009231508020717873765173080411361746112755984382730570286917590091455212255432532024240117450527676709285422641424466143965828109171631240173799137343006154861198579956371612820166371789412927305883790629001822224859828390708271982395243484371504621028345655093145995826375721006218325448218514052330078823997815720395854932359516916944361204083843500181026363121949559434547321440647749264441822302988336422655223360953234143444861176464077053466600500111431234382799322786146694528242624373606377581064442865522278930764686868574995699558472962038982806110449459710861466129710366904037680836799311846599600458678764154013089191442741199642711360909289428566038983699616538218853352484454955111750854737799750346009748302241250441010177933859954615810814434543817571360802070647258940971357560978302292168506775772654495728442036883329344682648260994126785609010590213045931225941744639293992126076989975200050469510355885065506501568612200509069187724809822078888517802363005811172130891788369689882675921966256205525920101072050662287225310948528778561713263336940250750979037203066590804511143370431001621383331985251649344631078368376111424459570478815609897167513461489563650980405274226338920011371600263035496101682152363276769244811115938333858413040113438584523333337736491025882174306293621798399692276468466194823653540693031623659062399284321810593257437335795758259242828740733119157262964972091408728833402952797516150697854131377195006874020506239112389652236546461469179539943298756307370388945898862934854586745938132580866426632785570321466936101896377039865800398422840836789295793563365019474288077780128411228474703791649807124118878487097246966537579297344571497982492888517633336987848938265228587528575677607632582941973824433949630134654446895602948564816881428109580609007401115309046573581390280843436836180655291377828945845704985689559898572119447231777686863931200576210592398423782045969642067569152706337622783514955479039085241338412417915921906891452540084559425511706646155393911861161444627690105745041808881008601560942177034156267113406144792313148858675380471500547792344148477476837539039757568563534786694545307433520620706349764399046561138505420637128436850965506060159472531876368674896169772145279793673669497115056848311889391152282722717167934634281052060141707972262634496636012042763530584320825945085824127726193059481108839606810870209399031356967749375991832405356137524385538083773535636721899004828445004557257165244248538127855385326653373822793887285817886817671209302595998659278274585617381930923597442255556501391153135545388020087493882213076609750946222689272568058960915512380271941841807280310667219560998844551931784475175910302389456418757000612416992840667469954336848027195608517060833197279493445496462176701323352819525164487810267367598285469824646434933231973480054272062028768188871789376396237374014186503108494325672792956122584157632639380326031671286062962898615067729563174283181436548701355264522832005068042966686412770369048985963281827362546088525685143350367023778660714968042691628122376864429348662762723528107138940297923793922522780569767051660070202056735680528097373182359530692801552260136980397677096330288786434331472733911503747458597952137800633161219846457244298757379820412626369810634942932140349005922422476410031964577232349650687132930711505964728497744934071368474289491438904841240833085728577746685379071595003480022970512056163380648881588666239367424944846128164192306565290089475536617146313761746814145070312792296844033005667636974874185916469763863925879732265230334078715397898285293305718227586611137650954551024105528948779737997521510237998957727254230763078990590865954746649421500639943691356068820312968294583430613025094924987614313942747237797690240721504413285348220909072977310675296556856848828339386995706815975456693163487639870057551233839470851760920032502007988405088577264386789741194597945712983049727480897106293480108009908492480150701770627638794682086455559348381372364235150893961934074224804655252886605835955122441835316532456707184716883565756345921621974648258567323446756712821574573424252063011136660291479817568196636285176192151474971569946113132910443633336499236324904071342827894185004985066268960583777652344974047723363169315758871557078021318452531966213578566002339917879943033695404987834352955765693648632287958046749570502410898036784197530814964969973876052068703051080109623042220293993109787612997132015487760786422585152525020229890168628035189789686509517113906232840985210610260356302302690531857845863355738988566389240904906600117000814431037826314322338276701492396068972729118265147840451809335501464229985216549917486330283519865573046763107973863664516718287396030671929777096995054121476893239964625149403699593159672017174347555241655721924650170565120110821866346913585618137214180271367940679832135273461882093035912074260189394639000119265443337807006975877224273953670826054610624895546533086438362052666218048317330698783669415808688714536472818756557592277325466820687446863037949762582265184109572841433248100298850590004733248192934033579233932930334301822156929877679652848504986058091770027270552159437014588042496464196213512249959000075036564488252508347759962024099751156364754842523126835828723402980561253242331716307948361745728869456535050683048603463645077862841503583616021359484179265847401121275996623942500480529361364788578436777051232597306152546566351689427211953390051368717161488194295148662782259891511234498986986704763847658684647293050541303521032507999861253026760863996417703245767960466581779353842045748358897943182768134296951669905211361922118269684840876422938170043765953836045411015562403114447349119351278513228466211848648262635348528169615938975515653082935210251644399080414865814391771964816562770360262575871159711938649968145674058915102935017931410905843557698437945148187137537450728689529725634921020081820508961737544540850477690874479823375259114763406300094345636254370520729646240612470884438037104526048662053584668134615555631070998211023924649800678781336549973006013594609945099055222869427763494924536506846962177113409776800858835693922773597950280942110187228994155206952531790715882387093331112155394678912839123359694273216472490811102195922956439314920661235354343373402875536211261383450345433700969343120426010347731498253866510323732202116316869804944882569377798339153104235054930387325078231884107936355402943192537154397669071474074765140900643249203996417126705709891579483484595656354470601142879909216291052935951358130532611197738598075801947111618987125166422166777233732019709817023749501951505275769985483513657934756430675056016675595591501466957720193046709465565892234644453757369935617689902650979676508251884950662370607834936799182379088942730490253877959220495456605240314355953687984326108794131054011027121306116673820046392417651176021121434138632691380443358482251620954346431442135056189775263969627950856788207202110000292750434661071739287855814122899594657510942642851871874490149133807344063841944644621695385905682081116415194356039641701646649887948171964592793193197703124520246032402356962730926785005633251268435438335351239327689580942546782002836936417301499087004908795607299249154125300171183266174063625046596701037465342361932285307562929673360525426838113591290501775254831456161073144708296129609235599922751982439993878253062755920654876989419868225175138848696377077836999044640951395813917081483292247303337440410906759191332674564383245620606114893044026464653142662133020373273075189672828044991317061516877896958461365430988055523117825795003017256838034792250754209916562127444060031549332701310183784735622414854600872478661184213243509701756424269455923093741343192921768055723784139097919509021857555686184330663605091822802221116742365576137476728588891799422993262508234283203181817640672318683748919304966734908662567042968014600197754604937007337796519804171322577851490491029012575926638791191449164427021209543871239693258757655720545737527128441127710087065338021802262226104430497923020335285005306427133556831576400490776497529997939860070603742670076280783054621277376923894643041334922451679157744415523406176577256995658805864133888684628325808417242532320065687347439098155546662388375617290974062109006776546148375105528763930379847472279873066281286407833430313539231719092244556718784464122931298560213131479449938077438161822969066001878240723249161144462666338133423851397291550016686485517368057607332447191728230066485296586465726260954113855867426096595873272490036557687608272330852028659725778572479496153536923605222106432840035301705084885333818284558481410929974602907422115395053286970741418286527396576292723609167119417819026098138901276958539517874043609198115220485647016094984572669773640033513874948023701704673900255289716690608162642746937295636879863227594292631847859163833851548175114335077086885738353369194900015603114511747723837110616913256236591818952667140769382523972885272835852192583758342530301144862413376442501579572034056007885705066164012062904797856655673170844477292383118701372688289304613379521975194632844679042281322722036142927551150485051044147202478434441872489460795041969353441602383775243244284973133757275079511155884146273185720274164465055972181048315591111162620163072624163579372581080846689968211631418136172887930940576054913143334141246200607301035513386467365355257255677821431275123959033471058727216468072670219506127235809859113939098562666665983067380199016782082976734755166926867119468722038678132934846948645388100004662330610007198771466794789215088917956338367223033724507031949265219719637162106062125795111174289508250547372783139236661149862251267669488992360945393091535352852677689127451393398605151354263065158818045995719143425680443923927791979426141617336712779042851710624413725450932568602761890120762362778493400159490340105538653199511250195633450225640253631808664905137095568030838999638809277119379332210958311236628101799346974905124466533505139977132590727781971161819218957189657237881485856571372522999224498603697784832091598762334617520701611445510481625382353399255848035837407465949082379192106834483794313062452258599671394573164996116756554577023663044398374620338494436023450955288279633908455847124186187119490081468338181190862147218200532330719540670210393014136250258414590703512456611891170081502675870846647328632790114173067515839155098736216550180867933827878985762108982979775265710427966020375907869688729101389416356314095697288821345840794993880717180414641607594514770026213240580673511328579787524562462901419938705554133070869712040968646599567416521889069422517153632541289684214088588631139530292303806890581278261585563244430656911432280096380404231652062811355115992264080396560891600414623854137708265515540129587668348926493436080384234080629238981450830432867593687751257104283281467631331996703464564692426872321153927365691521765729082129264009961428304052516347062246812801956286196771865407214755767509165857498060556239670782460338827963099414868866282384859622257661688483731104444097863564094567530360072562763462351929639942129268090206889807168912960657887383909431242005136021748355560377365148839350514052583773794162247795039768634834870826647559468268903769142006560928798581282813296579742151136700114759773338900995002314045696241955658161786429450693658820674100054687799216668400074603388967813779330191584117015500727404723677889595664028476592942036292517931365040832118670509866096357160572717685603969956316581230608131720974473067385059269417959190657722147092443599144645444656752018514803631595793405135220085427688253544382626412094987955774960850990788973839782622236849619949043013481875655986683373647669628101068861573050733254518755865550155589710043312927242428967132233225069285232444207261893022845813021989962372091489009083335125663976375954360761402135885500968518505058183016367326737916736165001806856048999681277011668542304497801878727691704641471368926215693585242672583573140253898847232425423059915932020379458834092398540851624457907000889667778303483574212070173454758438348938631193992196058104386882677315141953187083790130858451593106869324635306466938012285202458558671330955286961371151699624525029187584159906385390999308702580889146891831200110270412439813379856722277324437626127915662247062706340619230539127636398805174639928822860459068630872998176345995550979343629817891255408460920600629266197958729942213013294654079942937794900243321125747669521013942387786031105717150003413965123569797201613831693887678184277638611763358380268707494110530226044666854202628358283520339804968226164569234697527643501501256947291046303167738149413833797644234449628315743421693827653996096488541031339354452126213436702353506069874864079158436710795037705276590799973438472124839309980096337636344369446249338375568171539952423574380792609972809789878904372251262243652309120106698631878368350246874107251683125019595914465973422578829442454695921198283264102869226636500456757225860896016590248818508746508482714076542618990343431952771959004281492013833019530291398909812968668128540767885727352230778519899902474083392844003734527151831879113480957778792687571665539022251362839177717385659695203080141118534812722932025873321684633570169517446743587880062110989139038446077302798679362064154384442403940692020534197227424407034314538053904902868539884983757478094665168859815610884378964319598618672361175514872209312572428866945654844800438998652661485707995003639754468725741962105126842145454356179395187588030571914826584707702468578720711949560104398000845735933310947249503539756015723537506010481756421310972632524637457098816954710991787369556343119286262002180943944195803052807843638646006943413397031364425276833237945512015577384865110283843776935351929238269495423801065134697152204533505962230515168680924469528691183217747617475445634907494587603401685036131429631897436563310582959594520982061537255568040120893775224936010694952458762387146081893582804523339520981399513605276734956031618187367440138010143382957143782431012614366922036405362752993810183832317335098887010726095415104657945524992418165930813644621692791198637878644147424335863122344525059986342759836869520342093556517659242510717591005670030978590651115289789173791866263795541085205445573701938410517248904883793702764549247531752319675683619198326139560760623763087128178609337646975169858331942297418920357647119277744670452800770248417707058753315340780154655687268453260662014786148956839188683645160964264524943262802589581342531909331805137104591188865394742443186027550390869669746079026509879263528276948857960551752121205504819639909560797436489161785351400579565624037821167158917583495890364342758856713273703943438888673174246819684930192959921683101802128944403271544009848390431451364913866152737803783278102022697978300083094969156985618980269886991970939033474568722032620053267653722708771105737159734618692412568768735993630002084160422532016832615069156043620234923543724054412189103320394434939944923076629834959279169879407382530575747819297191949800978005352787077058983852956837781451233553403303678424186247330622120166589059467486551380098274273400919842541799753629393640857907943036645222470542689447354652018443831927525953256522659304536862235098133129269771009937400287148848063640379626550141932228397737296146822391181956200511013718710229205170937212199349259494214149528108734303800392092227742416648749566005433296248266413855081004192940032068996867200604580187301892951611889631375874074975292075831808467726011312190801720722460416170874415247712278261927061083354511477423629532285833524234589276873555981722000113323503486403297649563472280061239015649825230413147269696993948873259259849182667323577104504359070388754892126498910311143262468926722314617199819608885632817885770727639822197947239963358123929860257364229575044601209735195365747125187773400973930981736102411069291644007931480938574725177960625002095824935334083863548216538963118098519382117943868024398579892763039540244582410262928161423411409784435953024445811516312097996021499313370261556093980081324728788507643038990957038046421712285483642787008660064962117024570066416438382036352226187815170306097764949835897838408958208993096028116927401916661914983714373313730945575820796165532759148508280624725933363028027965562959818763966200169462200428531818509724869452754932660567076824907101120774766593740945496722841320737314794983124527879856062031507614969244725906049966768039065900269296069519852117720951371666792740141190775645784848435340160760463060414360895051348562281293979198324846626144200120791162461302421992211463909188428255784665856880408558978920944784936370534003156461810241686170030322781529242498623505174689878830417536205638538790648532224766138464156471660632488669422488430522208914278736879723499347494412668172666417603212480988982287860314593483741458617464089701905183874785900892946330568159963500086466194115843172490876887446548818562707715645617723870500305261358977689082006845189538678370784973146384923766064743513389661050671350402713729038755717621189498737110284416462089511327054398349483577128208173754831336234695717509658161283311027279742447993402544386577132483435742644657468674414587221043438661651290515137712072366525294738875217491779926184274710395514629135449530565503449461103760914197041859249472846954397855052126889821271259435941666835677125910587048265667215474045850917512973117589210341631841495262518795317876142382946604945304277680334960336594192046217285989931739248520847103141512976365140745036507508804094243762563153730476707541669824299491556193285803967022223366228538856003974056055756284145824970635459296367380412747621252620579253410214500364984489162875524378458282720835612324498487517224322096943123382846527851881589681502896961868405819783503780983663991423472001807309300565339756663450040628706332348991629731249285999081006046113643508957562235038620254217508491755489192332016099898962077029123563343712950068495371877426252604802841250330413933015988790202267806528264395378385801242325315085006572876108119249347132744928621282194701264384476206724555934968117136732055390366902796340974969677357364404526723637142775145342733350050849408247048331317954588119736919629743063081282714258602807983593745291736246063577575504494030378632843548829123700826327695704257184861861152054892437382430358578220520733418936215767196433270345883595130563799796446787112753509912622250470691454205464226881762330593468211012018211549261424356174340267584384034237507419497844425986059744817821474744658142746598129081292987832825613925116040920341329327101444383387213859896335157127575316680998246477877084671536920994189865217143017808667556603879708367045077699278559190267361582994867954237484971925443361290016857653765804856669160458528437862019079062732319148735063886238357419405343079497088620783162823261895230416135744397757211955632440845011804620014522082551067888678905482924504451331766710175760832044822920251709467572439447293191541379548187423226036626038391349244494039252024076773132118037138081169519646951943243022961290246827093751294473500306119668264399073571354634792575024442162460437549424646225127400725978033265198768077720134954779989947598181243734822109001329985920028099280967574843455046147286419840185208551101751050907225614280117124861089556428120203210762487048602009347126264696552763793268421808291452054979997366332443927489126841106117496475244886174517929356142426273045124273532770916814062959789561943923274057044025350949696578560619021872501872047939432194159188513758739955107822916010649586226978541084681655967402705554149085024329012151273186935234237961393193863203319010123282122529433029311885899317612835918879509535558013216692688862999146955515836614085198808813457603139249478055296704984402683388383133058200941021681324621462872787234481237520247139787886780062887004469051503604239652112604975126365819521231184113900896315287707988560616226659257332751391011993726015610674990898526588597260339212255488888783833266305746689144974115593525684644403731677124945799040642062565426247140889842102941191864717989240816640168317065550473164331340067639815840760967508391426279393615755218455878927338186176090706190687144677710239279512215031118287629586752746169543967076461768003751325134525341379363880443718582372425660765422055167017795777806066336291545855451082389212811310183114653690157422219095655154195198636552787022897444381914044910443976962177377245722612902768499145034052663568734195634267790950756775921775108824888856574298839102335700300582810201792811774080958577704501705539470755328510657415632504393439169849944519962060716967189405215165900210463181367680160108192978219035475387519803038553498020332134644499272574747703977780350610552187191961187659269966290168459428749546204239503951571135884890653786446240852284462529603937973777030643934012215418346776825222354486932502926932304781665050015725253896716803245232157589459724535383659971109731392789887202673718791759427528804821633588375186239766292737453480888987573130077125781434251981574144120864020275305461346836841925830405870100669966630192192269946922111074219827906079276121782335700830768831568755897981612999977627440937096734983658984823018236004369936886149624016140948106223915847662735458800320542095388213802703134832330573924125164100330564190265299409810688964086000318730915164731357900082896214736282471625616705226345003419774052985979824072411736037525346543510040709253833639426377414145743879262191230480080482797201461997398447455020010617004814288504293090654817232668283362183848358251485017324992784264530241961449672132004310822694246986155169675843376690572685271802630036798288653686962922334964222030458543255930392428617755536816526436475477591363493990658675489561397837605191931464442492412285942755616523333690307333264313516651562510332851478387810998166455257003862726587473122186442745882027750284218332926042666947447825885361105157961135741431320811289811877784354856287186276286433682105117682834561139857342676361274517260576073605054244848369767807734765719761067355326082940365037321091775582935774305192225601443980680950325874541154324215438254931865663330365952216039080516336541845931168172653505570095100626290129234794777188616663401613121923872400343459997731999877155754841479794877049574523012512761201001323044405432484770588524002701542183755035268590757949630637505305366957704726399144250247604694277660856790567288039233565883523921883595880680108741210231244193929428218117982280406968186124114892815393256252294140539606277909171813860266514570597211612835921668882487266320974987634901433703471986620234277739954219666077485159917422747020699309332048693342906847856143182911446196966671874355942589300043195383480811972256840371049897632997447614892205916294788029149678481200184546701789383693296380185837603873480400722529836995893217285665631178735042661144713931328548969498012274542277242633410975084457860628942599994628295255913965675350156097645605770297029938090208461864584497842544272380473166860252898781644612370287787564030385362484871676484154322089908105912372737469942542116451066781992406539499747705531697474055573378821012420824399934295021787968176427236422259248159853783204936867961201753039023339647509438857715342596717308607458598847669069423074483771042674419813714221515730585284684989706142306143876711306419402931352761846141851125770062140230532799549654655370014484437552474486556033277154331650111681378359827794116184572437195662486948368527109048081629620810864559898181392153111861246446840545723459887498451494215238871405533849106252885993939769417590246734171257965669896646930475651106974433419773607176545764237362188837162333532436747010853183923724094256857527850336919070182121790493710282629943569327370785566763972350349104625988305261903240307938600259828609186493724002193346345048174472092530271430023126828541064143810942546212661773776462124637492690583394105402470779193885947406095961165880730419038366276341915343642624921695437019976943109882722872035780412760579437595233469571550641830050610073436746508346304951490899206889365534099823891429130466988692184416128929291591326221989350861785408127187967170663925773739267661094808678510849013787490872411293717992113632517615210868702576243562446430629060785017818452081670147379651579230140899832721597786747709792934247603295405908120068260538850775109612396855709157901237549896784215009797874554731450903152538278332488033603558983068504735420386041341734150581627803998877921523593423729675974305249757587074536089795947621710998839152788162946009120981693068217251127840452253724086659062230504662494665927333286235118606748398758652214715672066210819498801889356659673433676899445382920605377508191934567646028051262616708593039515076212979714245976591221001076847190994702029633999649839364486945078747509581449914541126294822505305393251964590153307205895795299890554838818614331115690490611164138839038394679144694559593241174105322506638729618291611958202612460043216510624403230500381234110479104876591644944881213748982166752012953316020920983498764579230929819921747347736672088129959298935919116831864720057072320151611904209494185546266571382262933260512676104378821680499959346674280234564075776123930147114654129131908790737814320551850277349936935195890439460007162258846387311452020474883055756743186897015982647156561243238310818014654005354422359225061292614279395014880100968315678303197617630421577710145654701158340250204656194700154311951432929458167099464353047292426549335310324237411589174449117626464864440199217069872514822606736253195233091751866298176964071162101981197157840749030896821899384355257204537049881183537750409926233940711562171161897388193857240821700221515766427177304592299718977485568981699042817675575562824466776092717116013743150673320569765631137340106135566984963254537646763097613953563803251195381057128274487489446228389951542579259042276819227856510392157921821116612903236832497948451557077122848005268462440636298356074087743494181593069026752977749707913013610598660535729518857008449270069828916425777703946220907950299172299119091894036488896128222463918993366179570556509629822792124695127970769561155630187735755355365847484792325287598569093142907630266045025420825931943518166884314655588138755142649316348302868390778873899490864877883747744828583477807796914458335315240426072547360414301643344818451607044281360274176853985216235622561898407155520026521186696270988083350106354563954698660140163328859554478811357115945536430754469176565964797814104982106081767213272755831336754916002559634286488699795527606906281541830705307955233654040989598424794551960695341275806580533708743009480986575581549609705773186701416183704575615258459454096895623611918353587601519700421418116438053953588828714132096896823180281304801169501397483491152813424553345457576078875599660886662915145575051967209634760683847689429725823017354448081682595202801900238689970091865990409053487303810339866782309184607745850509406591536529971857126952344613664325050636497568689770622587148040350692325348055209422365685957372862715453322565012337367778209674741700888739322594897740318841158063035730424949438375179672636215416906671185890526542919511917020985154901396667375099783041123425467293074312055026473627066044037393962869822248077902296412358211402414684902495106428955366233579640877669363297679006449319457765736368159808175381197991956765439436309517863607106412843525823761253422225135681958239226814604891410326129542164691271917339516795333330155536290063380777618845712258883511684879993607995408994476522473575898333999540866393529089130632296263496314998779556271647611114328118613592315734676055085094007736593700906697751536368298965292635421724303152590424121838923097718878282579174268752416960088140069341123976612649241577286308700805415211802636596397410914773879058587009935117779808116919457930206194366136724881106047727857605006085612137019716868684135074058788696504993263154528742238191957642777198193419297739192998535492815060647565337406798323802093672819475643646460878080859169449831892218611112089377085249347967912365642698732424997451972915562929687651025051924768562043478251099853851342204444801936894733465312514342477477426212201832084908885514964634611670819768958003122604310952744668851497712504020503659439196737790275669104323131894785735848335199795873853110059272547473301898434494082481470779740327355862651949724128330522148243281828248012302872864607173995239754244244966593047214629447304531808891445139828707163041410173202639351019481234619639929321807735571688339700119865783783669432322734010066730409344497530117140108457098637857825502945614230508867853105251787265421709749849913194748821275260923781751276106012572318899274908625625293212276884489929812170573667429839886129090567044236954407398731720645568055594214205405731947937174106699699196731642937030519144334233008336253476974035195930163448508926952269147229824275790724573187557189246912862176239970224080114648276940733342859705801466046308817861472313646963270155053087295911008737815524655255312805884694664308760228163491124949668501524716647071810616952559719076530477505968851757180793947844323227206666284179796720201864326405068498652364544293782697226764559429597176956378471594074010142928815336741699803001979863312655449225005708716773078936817911934350521848431506578755244936035230510766778370101142438426626257710925923133550826723205060735630865681724568274214118058094481637295901591723046481588520571852857524516848174433753690096839901578109206322378252347478700125412306854856738946664736769354133952932181796362537582319088400463899762167121118102283845131128608713807195725219560101511310736870584498717294341012316622442495627372541871112760948190242785371579823705713908695256350715435552420588050787337174038255802433853611931745866629781064773660107452645271324032491591596609624740243677720568684331285853392268029641692832035763619710415391932014015352214260041758704055757612987487353151624830277807834669205928950328554735415665826233256065293208674705019393594316466283272615560216879601587459737252805783649973251536032030213403861690406206839686930348949486790229789806680100066434501153230191517230639779120249026748897754861871010247806232389051520510954094659180259700993655381712949652855039183455996065422434794829068685279545154140936163425135799414190234615037516827657504950276282807196158652178772473846567293192683085719543242889521014950113602278851261428590242466244415592130274108142788500553050706652663190163831870025200159256494429063644772574970630485261924419484966406140294472744212424622413248229660843527459869095660500165625268499852616064654367554402983801233372957178934374161239720986154623095263235417311436500282772609184965155734193619722538164288096946472883197434929705172847328938718433341691919172397519009845132066741480205023761502823222251856995344248522048468840031887742877822730907377406991802308818137552103771251595663655657318750200324664223887660964260274463482533711293318232771120259514075001534354589271615953067274207362929125700991486650801430464447666649253193285218005625095806034199083257041089845027493101837882452414256876027306019483017721542717737037207083301253604901429759329502835048282591656811507530452655679614389611104579365650981532083046355568664847362814461898780978626829757403389897055274493019438409308172976468133692422782303863644910373308612296103869822863564938621919970086286800859589765038780324846566947277226842117941663543591097131970182330382738800900071413256886266092209221580226314418719575787341050144973227271113690105836075766861068749432157833262797623107599152940645054886375953086220968772771121901760512005367473659945107634675087704989441598375433498216793245794284669170842040395462804965767503839666884998116298962840225716423953008245703207204921552182066498725731875091413119141152507369075542133643416455980646612011186818417029811628085711866562272786335989955277519061925217948430175642428384678267201119381229420056477701606072634067884472615391316424704613920167778274720180418060105345462039691653171483052576677152528311622427539966767648343033057281792849488207488145114940926738301360184393580681687322544772782073342272959422964877948602853371779268756036396081304523232361417059500745024347575729000548952173887099401664917504751828665225413817889280301912009421749351024071414259137341723631996544455879616967778778114398826529069259345868028416577608091158294601412994576816590765602012527687069352773210961406799778725921448921247852334835312698802092353377018147772528888860673945704882016487633964240951748494736417172488206973279426104845925767926084530321317466240206280549439172483084353246191417502829073269646153400171128354550308447728854155924108463147292352281188989124320615022221421439036405974780311383130157458020313853578198883589575696302304089009446138561751015945152496578375531251413222965752497503866302810634762161142482867797804640569266335312180989244419245709730317228761364216285117057515509113927057787349141976486251121588240898962642113894880082192723828923766896918794592365219878812619533081507571643858507069555533534567051804161316100599547218100552559124712047890370734549246865737617389279422209781130237432749247193493028363453062101340299276974206149909078883777008649156037553656471817105286150863952683244692522432225551795735994740197799246094119169798962266450393201506138028725140922335333524332147574489397208986030676108829117507709650001704168415611939580463142730129334239058929917190763885605053812412242988585965841568154263166902437888278726440432288384303475573372874801787044537664425122361719364242318214630463017573598411394026979999373960787261422504738322685478765876588976773590910019052482096428670419868768513352556533788462784484485035934132970678225631176906422471191548107622809690853116223082143050495645009211784310790300360308053338528878717570203691638796376665110594346811649879522278938357281081433357213997380536789438773616180782360921833686201072148634311032966786465965271037952819790841568053661465313853534552118056455553527731416180370044684327598063322136659256269876716733037264457732866045452769937141393596506041473114943506191044821665885537639971131427782323844463247157973735185285579345750049379815777044144912292978721277914389054602705658015108899877715198604326393486103999753282188139488267379966326834938730193918164202844271658618654977354477325640741014238201431271988380032772896339104018873846066709939633975387036069013464525153487719360130423674007731991844578292139454085489998743023289321874878200271074675611745604007091885208329069220593664454912279432214229745933037498183749093115867808262449990109483591871100861933333163866467211948641894175516226066986035978794824372602479373860794385943882119496680153572715815473099232979851986391560104196817449207139336247286774645702466753275828209832131029965306243085400108583280748461936201768131112929480312194864584909936015895366712292746288229976530191767401791215124198576442230718345022989193291314230001871271281438124481801303205973456618780650499697274774410492718704362953170591274000659918421389646051276708454572555836233687064541227487357786997791738934789146882872046617478434721494632490217054979702998586860877810983438281037390743426716483432035837401463789738906645899893440338182715666094397311525575610471580304907907604450807471834014969496861363024374359495340860705236312132194590642382717250431677611393695269884851344572073218973201451969022211635281222218135308396209656163788990348508000380829194960432223460122839319527513573863106261567317159517260437574867767514053888083464606537546070378691101618372286422296168279934395389579859840715945421268066841757547857609670011578675669798137174999652823274867253915724315673569917227123937928638779897418221175760089387472067916591838426704723437187264042163260081480688547673820358491439577230733951056657523473354043204705797107709776293723819907968320523836284000910504361837095615011685962930025423797321708052202135555653150851164728126615946834229682205053393607031844879733275907292539829787531547801292900383163663099617336598528156909382378191321263601879304056706412188843978415145937566017620777374512079223173333450862334383049312362822087126053359394017034297661459479501831262278122766247925212518562192389045409477355678838923534372303760937295520140904160164316394025726435425448364187151205047741508405443252004780118994566139748908528802381043615033559205907254518316019938741177562062759097146929649767892220883253124257783796761347398672115666330890247840815614945398479880967538589892249943777227888341268892174547896711384053796116636876770735870373450070590429147982146748467653937217502535185238917557425238163619727506792851780707391797499837332959372456292081785364639154031390343355424328597431691634366655745851018527969761542845797828024569915609214538377342547702572783603875462180869677992296692734404431146240130517655233680951247538823584011588285286217907372897798969528426726622801697472755696960930332778708980009598812165491804882117507912660281133031727187664185462460549018711059078172593047988426673910751795991763167022295753746340748480830754911783254072409931161297292926567337134356174173777626040427541299605965404805683936930142173140596753898867316044015997312730604459337416620186596443542339398983010622183476481074310680657006189750322927672189096778179022178310250469432025353217514624703448562419504767518411839128507618264334389063367926054138302142125719471978603261778738868394109023677691185583745775871959655430826517051884913383777034312461853974647188396309275032227260902061505133818765543796308949643234774111380470577215741012625715031968489540501035532758591572482328589701442878325102801844356307019343697087965016589130150091940869954542802278051365129702150468261584767611704779314783153294392783864453002979614457730821605946999685043296754103618903955292846729692374456172522377860742336883293851641619340484277947005486180843726838231759254211201210701913435644896377819892132860774232225071688654678206384390770377260961942273774910037827795404412588823557004047273157036824062664214468688605898351435277779524096633659324394312573509640488804014089931343355969760172868612634048574306437375860659917949678528905921300773789884980849734291352152125811475858652758768951692838716808676433151812643019584093752361528658757956188456655663240888465996158090758557753180376021325480886759197423427956165705404846116072797080860052912176465728294849168819324226815030813224818988078372517062346966765256973471797136350072982925730461448617915565428793538540246954244873050448495459100328144294137556923211968814096134442835010178106206293408151796061039667033876364623186293751140133076777944652026555528604630645478318267381018821256877804001122141728668730320980440771024291655323693569108848397428429824236617040862726771094236697333719438353132346812013379474639819464208939611991248321767879976235492622028643828947885515885411830940085197483408814438414600271901116560152616682997551705635098366639200423161667983119915221554485100970194382560173756927805198432948644574897390942185327981386825511458990063360162476086735620049004489846639914813305623157087104999001153929540682180631536987481682788903152579129823711609440217568683030987985590274273546735664972443397527521777572849220106119924090809611975468059114274424787242588049180958227236736804189333460279405384374557132692100773061206807374956172744969933291806923662514016864563619056545220961890476848584257642855001117531170123993342924847184436271700354060921411063845029339696833652106370980797598123960585208939884115249249529278145484298208107807059380975968057861241979986175747120477157202986813742621260181118562447069285859686163929958410946353256792007401176140061032946447532062121360254616784950762265103335479308762463537792785931873888852710889647305929931530212155004511624283882721462199995744511635289173760917768034244449447288651770383362848620163348943488957188171322860623846022927665969763816953009770195461126897520030399029624996236207376657098143127353414783822059799737568011634929837169176981951847028722293381146669533489989342730679109244096033467977918049042537507167654333545107981920148194038374915797126528891364088787623102358084666073645278171213593052632699446146025894852555131466464589529900437612064974437818115300368651381434520532997588102730899327939273964998455378346291543166995617862674218960096797737929986893579089085147284179483989158078274034350248464072319313414029023959606542381220762562515024976526882117535900381825928241612785960290313805478054857603088070151631576812448308933500220053513055109712097232047956935660699506272496155643321366576488881750315276053403156428962285180857514719060105977709410578468362558643549095777415943753816379166648195775663104901237505682259027916785986983774450281340922296948476164467011976742471099473014563861513263966446358803492377308923077321897759659995036268976392279671402341674763121808029851139082124959710632934777383697598070411376823197135816738685378056601841203842125316479305723608837878934794941065752505651771156867582774812392776876301194961480240063881951757284975695697983448596852418525660945791768622604097900688410367297545690039503968991139147430174775291074032590293860457144780907235342201987574727278172644548275540551925448900330954864387651217894389568606988478077008861887155951382978802569444031393120412640080559876533738818860556192026190957103547750204563602061577274628396658726657952564160506529901342953257832427323534080286208286463122220285192779263980536266019539925260040218438731111025654199423807008701311641710168116281143642098456745328134650338595480466102475699574494901968534806432951933687602268966049879318577079157891978074795997449507012315793695525012021720714678792069899760879553631360334668020581943249419220222675527707937993967719308533533167787140167756166796871777143987251573881781120256849021290840268968679335984978633183006255368400630505924873856490141208900857986832734337150185053220911589999137751989847816161543862345205855428191743833643520215367927828984075971070620916686344120764217852037007488136145667518514658150870311801833682193267104065650972187257057760153532153203767933513066900456409038105497530750458167042150716593213914400545020113662825813559731357110886513711126248662704777930615653344613278230277206577227940685968050344207443373818735968958533620942094507490324115553653688519046718833174129954073080152191965274481569507173286447794427746881574119748740294492623595354083298162389938149664844131347351266038668104055661467813580720163635935197703008602420210650547371635991451600157975991811216294031069039808565557842027587927093909790935676957236205152403674018089261329475728238475695382392328807837890686246261935673124539589489536491886402454485095928173747832298368299415342983500483842776509216882453300793581038729609483042922545563701322889630013775382859353587921220441773564973834767784520983513112802837883684325946692352811456087543553639845819995005591664695449578645137474139076046563425177964571258620712512066709889601061831357478624262332592018637883654303443209041197593471167803929915345924194611292572059410806243978230198966804600411648097804746194374423572014969990476932427175784166704551611637010493334651563686791854887327186639843854951183644143752525542075141570048462762066251465162965746430433480938167050944516095091592527723063233568847926698228817921229620892287175878090381987634549605454765171469276653384530078590509723549055932982162270309597556286757376875159814359538209189253295595003870145981473353248182480106719699451233669328250584356172929822607269373215358378619699258014081696555340098220886007926440715051897037941377725252456078539362735655357048304445015853669552367972002638107563960798349737443295018945528974413595422700946274625191326410180372575034715488256238278708867171302962536685480478120982154458050839423713791379166205561681082518993745446341688037651474372054616151704626675456013259468632663581938082800682404094946681370951063901420142181112117282173315077018627023969507762458137671246470283596406611068883318133504009222683554447889336896037868965772383174751605524907238531896952334894784818099361129868565919621587080657952000225928583524586713748876632110783929544367733184942830794253992011903882208445418845397077030195833479460429303680301474929295867647771058405254626434025710664797445720680856801287905597017087345713281341152391211681546072533967206008154573040340465505656769115676386301846653964070383034274867248996951073061136247211801699572219530070669968275161036415579006838056176671760173396194841726154708984583831007098481980999531865570644649114654796999257085651338681713711433416608584790182636431244565308725712697177527801737304130848852445997837231220372969678484478174140552410444215144347077789115421389819990727564412627873303188814188496743642857651471240288534585239990260109687690812444163301275955361329324966613918378419645307694058161768104422439228303373967874828166617613162318948951804856872332071347335840607592009902251915777532036460635697772933243571905658262548445219942232350944680044446081730150739072871988009923642980796733081354456365405157864945545595203666177468649716215250687985059425217613649960129884245908214741353453979091948452467435548194210066712742178193592641109122040471397286620261588510938435337473302993418829388976630940738784315915614784796680953409092509139051955801568098892003577537490958297549485927678106357074861245527575715553868305519182699913644826574840468577416635417236613418658868638522576504104588193070148726156714926237386013321214794094205791769213044132397095112242086630095086245456886722538873753317645214693581893199244873440031374487816414148856558658399464439081072427347341373232975880480443342163712148250550489508745555818204573028293702191196959530963971140919532697220686503518156729890336762274116545448053272875558461395660412141721000932904124222094524551360339923902266264263985775450754637925672895791077051405459604922407222553424328345363711720603794009741340892734348821263060043564895345122060003149409424527657358533765201797297499916624141056803949315352034094657578292747990805376495686327807073893936998701404132853596172898009616657741706856043005434675146251091475634915474041962054382093268146173949478127373503305872590083103954209325615531987056605905148520161984940046884715883147487485040262099484382990019584913404625463492049729250716592463515647127051584761622088243720769856627896847199759094242134486052333048806544885065074004258672929016750310911410216515112428905828080068625091897959471260612746511369728844086926618919035395499441174791086908064646550405123403867842272005025476701211751647583339628913445861495248003119616762414437469366811829186214523370776846361242024855391197509648425880789993851896083236017776328560270380597033897407529609597136006860488187043274607074798442540323478602275725340196015886575214884440864000773674104207922303376772939900145620734459475877225905332695959261558024795612968422606105135241855634060468943299098064157286444902740647997324770593781618260956126264097947101472478084301478877225512193339522148471101588504990893423138929068445281148859984269323857683894336865788158421961828682786519831752632670109821162549918101457754196250965366513727460591882537085050402776582753697265972154333279485623962727367153834705167474917729051648895004972945541326977676096064755467197702294623629876799506846589921789257682905322658645696092982832625664985568764214886553076192901108189072831545352245150213630701532406870581046058383704584938204056727015165342376621260984909518390691383693230726161127640119508180578143756997103950118563940076168688306872081322572823554458348783283312513682650598133786199394931130956421488977708514723560838581802149334153754283222055669639568696670881906975092688991846309196225336863648418058200332255913871021020616143584215964295602016596162302277851175708757305914933650753515069833829007231926760726571586218870337504897671318280095442484893787853399556553549633324945769935245829268140162398438480053448516027915192012128985118139915448858500466183227800968489886026625592809634552648623545989020858609226887753242671605582004528705162433306018552165206601128369676110095518816511553611804376562004516832364735122625031350993918208432400087161078054897680631329091315305935298635659458645118626841642351839307499853456794287871193097692723230213985711858623795978068539003421119184356672329309272721144163858051655597063614349802239973634242757109202842693670289551050683827167688423553047813697785428672761442992840970859729795358565960820164137686545407490771300791715350738243694027666182877255036766756545575252241057467206708202896407679218291679333184295704337660962695286512086423928186250769856256729529127257055724130544025581129466051553469002614308239574831061929848104237691831328609752474019745018032690907311299845634045168549113757640304009624533256100612186191433888463204555642974906312279040268302390144409643988075977006662828756549760758833034598561320729669899853187982374006864580073741296761002057339241300371760848478243711136327585255394656952399560316673452605222735029194476119497670915048258803359754314902915737877287736766611679216887664295620865842254416203563405178533407173038418878832935598765784766955037401441611318208924376876595772743445600515811487524831714807439572282797724355680155946075272078648562681811098744741418274178625157715226872177251950104203329837634817302241127961636671061224319950441661266332598462577822327360130916997816868856271410274844183608883640179725855875127483498839458978138534967051281113343032746697590510136122739464952881217645086199916615463347024851889970339413112030634808981523893227528495147088338728736612794760914836655127396455090050328803235995880249795190457465925946683482447991695778595235675937718428906223245526528511043487136407872852979615045048799725711667104172369607460707310832960529156429136249476465189974672782666224439499483118883609351848939780339286295893351215475903755858870865000965921462318377003867660667548018509473527984186523684223396720528480047299445325502324237427757358979602609517952981958240092951903941917419874511733491686902987770922463204154269951810939147880541026217145625267276385692986849821633048820080868506256139646112133024444160819295574117578777007222681416145353752988064793898706741838074760866045173355880783063103011907114194688268984660936060648335763903065480856846520959389668616312807685561202248784552270409264759768417925228880711445772020839823616972606727710121623243378496656178699793952500479791655122003209057971116765348315879137988400498621392389673349157705179038277112070591583747487832383079753903450618772519791188995073661888634172620415923647672841921394141199814852759235887044644976996532721416477169933394504454556890580331802104075255553733769591454491220465256540821087945166587978200450880443561656937946678235684299830032210650534794287669423296304277536076083232561214710568197440074371931613480757492170940442176200355502028080014145627148241237617742891542952890949422511114071125284469968659358725107912364873143207063481622502433837331882890265516044756603413338077370031069787775560507025973327817134654139895985256830071058225996978306181679724301707189745666956895156959824836257824131648384711940657469511659487884569714955090451862292397702991999405186290996204280038471888122149850060155386721788125863305265843497327333429430691712249836819587968157478937281840267332888332238301452409700603112566604929816830461723250709722486003249284559164483815914952088076303745847981731975285908092202363140129482234785824677802714190708612791029162711120728456261455534405077046279586961472428276017866762907139074699503041145995775225756314683518608912392832819661387360574886155308570774419139788661478016302998841817879103565942482054008602809479187403938810401915785524505973924724299897752873861399272415505558701499880041618791308009204533777542754204943943810653403006133777971008445320837664198657006575434671597533020071115139669786127531456408022003268354637713261486508486794715587871214645229366856404581510097616648700568964557728595441740312505076755305766849789896861413024710384114927329331439636854254280200725396714882527227331487920005287107572775932958786917193584368438264978789007563200884049460169178893444340456504253230517618113349911233805175097545668363295225010457618096467977747923749476742275189260661456906248118212471255028222604006735442987350370097183441541046883132742282561248558435899547089942433747580950939922533234301194326746723780034506624743668873906099048419308861884248828837815083997521981372694119019884024559375485369031649097213856394738907094008773024042637705200430989643778848118016444915558213655307415517511339042537341662223322638824104769129294224627084840880586778440420459161883740164503431323314077989993240712022970371925331121913483383803454643389449382048712863656100655322220260381503044999184568906924010529382433241011355520553985646219055629108357675984723008683382237230338568807067100732888613689046967572916789937875963884163122108368426301077795842704500546039450714490840805800727777373955926916386148413161413446867954959766794983175715064989572903668831843955992858326000838450610983466887428589195695683841513113733868387232799433019014191792901611360910066871742052959081530926333019158781605971986663587477388486879774142611247037612691174426153526139101192864253775308646754873835242478871512182010027290495046448349628434334987933235957599941506590171633272609484996773287958541682489270615920062570519449449687644818541689955457596432712584933661415132312435285892320651760872280181217342373728259038189878830433204931715975458572202841451966933179694376241758198504434402653277413129933310373711808141120331519007552718679631826319140076877147764083853981219749181525005697839132463287512247243695174699029106442326091092822921807188941592983072246344355642754867677078015362899832593990168232484899821919766030322066738480364468849760045456799069079863154529013445239124129343859214056857916458770178200688163953395127890633841999744104988892879101070853046933704402542356458798888358658151910849421854789006286486181088278596739346694239105073045333478852264160714303486514252862135199981975186913246957144987402323217329623552786498163539323272398361736046710239849189937605423055545612446831285545501143729426548610766136606936408044892995477449749578439883565624249652206394180789869485888205629025646310963985838063172837915561881179363515752810335467036359945293314263095860042895947833692862405726709762591761537818663955428965164933189974214361185212964527987751381553445960260399354724897219699808447025459697862617046209612975310770598589361193084124654692605258241689505534934454484382531950844651123550537289200763076912381966953486070841752326910785519691204368159711636668517437582888635975103031706622749181083106477284075240762596232328065588062145660792284174885511327543383795701316912012035254139533923261816814974096031076754538353535122257181971007536778294130912309519357617997075799060845405469113076379452944800522112903933961415386791038838817204019903244964954521936570511394457715728140004084550374013576770168257189785932303256060818872280590381364721603497657679702721637604812519040698382588598993396149381207357735424416646430329318139563360128210617576247179000907877703982637828356715347770489419832723500561416084658282801779608870779047235623167338031873922318100410073714679313935620535161790251016957123997235911863766391102111502678411884444303602476577427204630251186164939672396675720973447210844206844838884179852974325137086692387735697043801626004239941071947070787568941178560193518063340102524080857875173883104287431246800196021767402688683211209903843165439163201590072966112240776295214577008078369147340905805307300131494889094853758067974923800468555454723124881980513916568793335258453220202089377566211158074955294236511251527820434946333100383970997256645048005539601052097590107907776177239880700193402797177092656554727551372498426828582942376230496974492685390857550137523599254960704294386869263435149425566213715133932048919041550749772088057300617777717506445999949594839084616476338390936435010786509023843940760399376758346440718288414427002820940834741136072093728082529955725216495786547194734587804033714843978433244733274050268990181719921293441127393904567759700447511727887201783646014683089446956062251869532618570578988688435547974841467546375776479493224229739208018039088740642464307159936357872465613654010210745690292762476363540615031739812766357868579586259105263942825748255278950283792699829153552628777765427693038210504632480352486677566575867049834796074861857197857066823336481972087755364467706680051568728413216255411022907889733463666433072157585093191510056208822825988983424430341529396369830380656409993631832905874257654600777576764396605312935371560638594027649068830941323293002298398842548747672418528883497284637621226798814229291774016000824080342885165438021239489478692712781345431587793275043648775476534298481133218974770875314356203820026209933171529262395978931452210694393244378675815084267298114351127473067866385389866972810377519506292251515305368492664856083363969945195092710094041867355779296246008862793748448141351735763868208751341140786884850215514548676498555214153187110235573871637139362784978301958282187577055381092914491754365643784170528173169498131681309174743025033550203891130789914168464813724174392300897325751102009497261429295549052445998036277060853260019549717887109098047644372705321937816463132325257651004946760635576003065252390660824563309937105924270342786232554762743054076392866732059604444992663583202920149546628061463961789827630908947334056358066752103701764916086294585647425027317196608574885507879556990216132093616403033036693501611419479156449737942040782014803656562104641210426769485124352739005090142083505557772497361545422544793681513202360411603749819362389626091038992544990520189083999563284527592297483594288358515421218893492865010515691134050754231289189485591595292758518780322331266374053318733637212180296437311539025402158637962903740438746364221142254992904741247004086406933040003374892296124403914210634093476984152258435482940781282145794302521656380922706310683753589956587847479575785990018302096947774764845571297389564035017721699795905386795961254779645664562398169385415440295899303829683011305776559613524911763407599420197197959722880612476216837635561293249962202748361228718494144388657306493787909698101462438661110700504186539450077865398380528842132632400767208762029474565468109727878155721250780872272946024716429077971174169175966709692505240880076826929989303334074888491032779928404046574634400635476195509942560520536227641809541768054095135881969572080439540337617979631532577592323331824776705126471088393068774713051499414411481899705230166326818312398790795719456652776820405978668771573141499848344283800007473061660050616099339601826303073374021944359995755326876055313435154669229356331801836095214973457389894846342182937743912027072866732545268002742364900341099449429114101944753363777767001495539698276564497151763710706475682111957664681279489384699746838521316441216703011479338370079935181781540300579157854917472963385697465576775761917688350040345217809754139677800427613592803085514682811480138954773057989920259540471722895480309809178444103676222546012410373851913048748728093670459309889872281218258539388883998424069321936873486190518604819820903329935010579072374433042956582522539734110258460926717900642990253896714430350077548583268564730354435159319824899786529288501095179742062542275952444979663432374897210982870641075431283792200438026212989056734717793871288308835769367745345182395867926177040853294127530289058166329478174396331261335400060475070918097198359689287974870694730268179256189078902567580083075026921380413825380872220569647250224911578205350515898881598080586193588274825519588157748439805952826803557335593212571088860033500982149074586000368484576968945375107910621662513935972053221534892236428864929556683207665316553155262188680892702429948041532511080219658727759801966199128094784512390961974246520853691519723088279198773213149794292916806926904927232206480918081957498674602118528233364206791308201285115917001444075754917322804997205661685180998017135264376681986556049949936576708439269267969839298223823188464561528039094350831311793620635477492138887481374970483568783695895901104190055756744465047025899494850084947854375308458756581240409412521414499840497260282982815655000401535756619647211063739930655915539293655580484857754500566912144341368440187284842803533230305994807152863470024217317221915480943550626091238855615659694466668280408013794952147041045538121321472831428570459835256078484490982199927775793373226174452242256985688381946571563556250742105501685789476815575688006969041532109889717325467460543731265636181269009608971089311450510389367147868145706983729833855630738872516961104383303845542367001221612949961900098257105113130124252069742498813323302982782247381445113786193775198699226001548836291832690655108498349691883977870765445814940453095545066972181306266993815960245188487363128436384381491188304182684736429096821994006575048300233816991570937904642464279923324213481386857210455907155520615287440712970156410953697055325280732826662768298912704524546731283629071299415049830760877594064739896954939646227605276046842646668435502383916461695567554114122235535272818623268049865116724491296714370083095056333209700059098470659102126335123981961615050345385498628255563682639266739123841184691449396154144661303825141481747107905280180855078322508722634535109929469037724239922460662428361987539936538130327395614471992779800846254758913721610814684549963426504154578103303691036037157097115793335650866462725625375553038532148809622971505116083025625718095151706965140159868604626668185404227118323738603183606340864027992806410504298970340478967971437594796221207701596217387936027525274580659363780527604821718439840199222840492125782018537266447579801511784921317793980494301572132390763506001257945864746779912061922206844384911369907527817845439713201547644786947272467632516782379875156172158875287405388475947113557714453623503863526514933994809413174599556493717760114213834609103179811993424781265238401613195905848334911741814342928864563719010170740565791799308976920595783291075205513785366209169092533271193159367615879077648018498166224972580093813141613443188594629096736004027406259192321599064466191418329783092950938778758352801403224398960063439916398142829004282321154560489262820292080023308623051880462570880744304860620160575037477235971804296181509558398565424537904463041002942100597564661456527076850762559216998166555828122635827912066466599934193178595762357550817646757669335036687561399288423481023297456564404690366373091952945659043766528320858496178015122003495214933263700127734389162344822580806934867449709286228318471277411500491883234184685193869805883722641905478805376216639006803084377318818167543714264677447364714064781988614456049382547207400265872182964996867297862457003277401462632521475338560175017360368688360169966887937940649506631445331829457821802571784603509891093627450809518406169676067700844154459309332127179654588494902822712368431674328287730110221434099972543530381929692885973950249285111419481985007912362831344278998870448159775460086907670293631216630989113652860757361485387256664148382616825536949017015918023417524624607614261428528190660518434202346004376965352193748870171260434579840963088787458856555575873415819186704673847446280796771837876777375522060400815104898656956258478297123235976107020644335232816557796294423388087041778936474574114890936703251345158221765993409523431277031698585951711866929055158928558015234348321164573572405950355287941066885338707024410061800410018431929084356950898634290022190776535739132405743570006974208440864006888622224008689655345661038801861321308251312593573254563448756324435821845071443010725673060196140693909786929928684101596063221526367549805037958522069276442987713683159963167377291186393262514275805125862365236602288794109852370264643768017426074159697373948147129620241713600683659081598500278858201351765216806645459145634482048868817358699857578271561339032897992816005069806708645141367446164437050658029610720789359047923621774766650045490839378566496657709185955278148261660372048026693184869240546752891730332084725241065449141573493217644640646829468534145971311575311372891246270737308501695364178110291091256877667941599270056075561469815868433187666993919519959096762067732516104436643447811186495375857416047211072157679115423927458577353574646084156913176035219246308428081168007148972896568773552631302000898176878105039425912830771839948657927117585379211419185879588978238889121426585025441706266828529937432051398728480865367223412292376977282413495263170273909424075603161107650994219538438473686171496517245349000623943283997751276689464700688578999922608781493490391437494894417112145205429929350421111252624858222300831941220892161629810743770581957470024364709462546749745417153654912832207636374689858897637620455558528857567732292023884654876325704583537060268527866742922834291233432566778738325325229558410078568092768761909245510802235660413250204697985189167325580775694040310094271484775033526471373722227966684328140950851230535940314909705318813425622430416364768313747587523788273245199567829804982458107126788359936096393753377439101099707489569483434750334221509721088018065379222271704766083483639160812494842928219886982962860746324051875893684198426925219963701624802151776523155519693870903711675882532366236254123033791112414820323633932718824358194204095760706252084111090519701649691242896672373481522950748717854052197955261973659743411868898598446139336419738827917540625997970353985885877897677863713173542895790660043535095498922907168892711880982089799557433369995452053895556010467391958633334834266907601978679216013769657650701203001679076405143884437383987162738052619256743269671967048131940243976375926233034494409818629068606650217776727545747092897776997679590152242853695891019540284105996352417517859374194754685776349580009055993071161891592701680457759727653501258421182964890405472019520972430666396700376246716328539915994049377158483887850773732009792943457587326848804874311889797127281712100318260135946859995482712474752736759545470533816538006228358682677575638459130956568790173987238248456797666983306547204616051083895742550680874965018742172067946152246694115457185553235030492411884869548840493020115710156524087299510396495877576608121330340838643656918946082547151940814904230080488849409541188625108473768217688078912593629406274826787202937087296456375590837261945311196850817154700871968621797634941294383204586183633317329078842919508900720716754804160994031862369575759448246666114770333400945314868407026034359618906225209655780282109876200527408919541879695732955414907131915188713500687868110734440734906049454522764029523957229825626300517929991491088029342474839403012909453742878311343901541267366090006852063824231377829730258700720429292599152358818798155622872832265985328257504953831955299016386970182135071705779485351752408597480977204604504948997211155360923647379484620279634930914783379788677629756705855614674789517927368476106003572279915544048583898004938271264514098693997172738931335642459617363401201116231416153758224033347114011554621092389637036033364825616473171044967217768759421434253104463408854094968150524729338454043668896261954028051155916772430246247786794529140437801371564200884716154647996104262693246571482139380896083670553523304427951396226117721793311339589386248508953567874831557268971339303149147868893913789342488303480094402062379293255036105235311879777212282788562539563120862941319624583738718352572304935710419126997961660657462521895737754436507159635890382573752063046878485020146742230935019422212897172271381218000673276844552083540953439899705164369841233965022653905865930290869665093525099156337289814298437340279919225532265268744492070850444652171664609101699945082103727915828475021548786390045348165210548055708350349502457461554848408464651175476406958366521996746905850900653341907944453709137233540260297682483401757281127611860080472476839941740017712140886868561800885981420045522787760234789979210404876234883210020024383629780414152634181748532444342403765164520171535997850242576695031749112906262588471792581409796086712021698151935503466784121722208386587861575577229043020069653252468650456208935749549089756433350112366355167439032623135304197224754595740953344373254759200800636522902455078041588965885037641593206318459869408331926258590019004544669973657203815654094065352890778808743384214481099532515194886810314756542866534587657806680671061327687615628794015573785521752666309264019180389072243031133390074648635272231685590901923049210790187477754425486822134863513255940315954973889934893210827142031030697148297911568508262411038654771007425014419763588493680086244607553145999171091197485566068056770336381275883017345301263860759771640593612532207944125706625885145828274156169402811738899246689715507970357420026342117811806892887182483682100793483093790359167491615609098376878864230705526114770161335034737192332176281587438208777669363667336575933628911528920793646890682462164992507488380360782137585475566512487135707249296688173049316050683433705362289115611006928414868632308874951248681921663687144476043746082989570021055432369222666935738836152014086213961410092007881133168951700978723005445770183002068798288181195107212809585450710154466952145382081217350108234069332809221210588478162468805649480269460410351965418457131349083814521213715419318851436146030768622321261456569154310295955792130832975183276764914778299835071778771942605895095848615114791401234148106860663631148732678299113906808354538984131411299197270633252992649061643695196448786367609244871388269143418706756289185328981756534057978321557472514512990077375763376954164486657338093580802295406469466140142540904007620115369880143513400809646173371295999472092965584046541343801892848747227888366534479887297030229364271231328877015611186466096325090866428260371767176812919072589908019816281952731978627026732313431769860063107415307931298030572811642505762157668549738612801066418267423168645271417570162253980796077892137955657116251274326895518215384697312848907931329297556056747483210572013070707702116009133941201630934644494586104690774148900319949547870223830445523620430692201370193227470784628420439182736421767170259466423274833446619984016382784249634055310454582600258355185929502620770386231437618241659794234389420483050640822343094351194899913118396867010886831531981013360195795505477643371815331237939932876230744299377529626301972737635202758761945453231766062741815759335083578294464544365234383837240968129115366596454565502012307865667743814523894491453598424011516972183514479778506105285796153949812885626335963997438456558902176470377156635123423664864260295181293387178132550779978905502914135521608019509505787938708009981530815105911677426991382839692109680805261364146991446807885579317556381593780375813773022602321819437098096664450716413941487112086860972016837091323762179951883263032317989445482418167724824492482290708720621542108339848128005373177462072088307971695034457422005506084989007551874596880853508938336943235824136461500592618898051183150350768934752871552360524031376697715095967291999558746096298866411606458937527611635782094741287920390592969427339628329906398261152432779530616905283007404907305527923383046295457462969920589006049769192080455727256438664325617017921525210529457471094788468578971523097111507961267546416945281375896237225470133714434273798709135430533882568523951313002643819674629970884297018855195348764048829828752699902417870042875548372201308098326605526921952282620842195817083699332813066333011762360212986707770833796141991806501808184115630297638791194621694911991935213442637756471050241894371477000905623840970241777787544890859012740052091099848967785153311842227005190498994737782764496152229279308619299655518661662136043412407632794379514297545025504207665598797739450546919830096325445843320331061826646018302390442278620857195036476674790579630572675117335219888773092312418136130799271205877244504206232948443762079948181741708557394107419465917288838173361794202398714465423945223681085190966498087462093942298091336207433721514261493845508716949014125837085184679926428711117875486159542320855705267812767373632292300971679772924340643991434430590279429729231070647714904678806856440638758019096650297057451019661880063969931209956344849688725812712176512813947552773222215718078261946569497187421499667367097672908813499860193855657155642907642986043484644548627891022092556948878547015530441144967962232747518488049121135720311647136643494890215630207047276191682620789134774876628027294784707900157873250839214223549840673662919900128817682151203813804462815737018277216641747920733977739077912491385559214624077380741150045994193998251555157529596771608088967307040245908791617202143168069368558600106418982047660406133179529253314752875068920389495940935423734806362100138128204110095742390174461009819987179136559035413875533399119420401511602589606074501972223971698283516631948613478338931711955727063435582818719273009862440843971819117665018576327529020748952631067174896922945930142978677718473528002729266003126173785105889827216236109061469810963119464823062000255153181465392571910668573645171274493365280201636801121326566997547166866757181766576491678943028246051914415931085566667143121014233686993362731101538899314028466840488873634188691637167799660341851379170902957094328288386724710790903083078612390292742396142636687202335567917006890782352139131859921482280695189081555378093106888853626327296661471309634856500593840067558068312576752906308101797812587532965217079904040603152916866572706446955497304023326068437569713566522166010717768337108453692055884394064433638701211447028611439332649701169692421790699833475545226575694641461929310403201884954601133251030065796650218128988365292897019382249558942423571666398379987604470558979314798193765049826628654553535962958426820048686624692688641322338221622843154020838686580282159067018011604089462165661445547727275103024073990396723011793086477797585900880801369608428714797146649210927314172532602659100939384208686974434959161545131030934748632458602067531166722855267149437275156399532793038975079961926050347474183286367526460672504182327652216715114304705074871477015456101730522692884772312078625042928065132667455499493565250571375791204888709623187738579545554522083285548081686608697832534033766066759581050342655825232253367342807708852954334284503911644697127707509938604255210860097015728637395817996765266977486435834435528929937515587333637011138987963524502010432264488241284870557626553962443364860542232615948589510187529134929013699917882310115040312523178996104432137352200188744084274970396889194504157287270010379281400749541033950706377190223611016478138549470900116597275130079507877813566262519672877842742483080353372461907230467396098852353028203829413442585567539248374438568082613388521001367098382097613028603914960105132163696494163906134886995535114758291027518282399972896735067367688819878041331548950835882816771635251093297530202286527326911109539262095577378416965811160670195855407969137141405044469918243944446144622664412321632049719664654107433950656885176314304713498194008170937599593956329010433535341024826963270973599314594053992122463970210508808679115251167528923484173059654722558753702782619542210700835025908129188873624030848198017008142462977375034693024899093545455971466192901760747763628236028818787384017777417296884219496372832386332100392316186312227822152509822246635537751287207157907029043434471015519220581110526400273952176942753786037902726019276744218278892567207164819443707759278084777524381939408418907488223957910778702443326878829695984904994633571975070137567748356703211809110933553614655643497846254406066812794841133219285713970656084148239842005312591781779592460256956891746535101779813151301715345014608206819533601580131573256548144837925700795564236967792440059342021292493352477652713411717544367022058240102036637148858972711602938489984354634085607683672231929680302830855794446019097934137445000691448036514347267005851372511361571025611333354946955188707795879675629004319709782198329491028018179576664657484053143762270159826277726741733631898808979119928122272679314488849429439251337118689167221260585199511159218176438274931531122158464295591807441552026079991913629659342052217632154334403116025381927618913724610198440205225955445006881708354164246460799513825330619261218783076003228105376339523468703129749557106173120729371983425607777894007126114905226656647793868487136584408952734915984007429669541811921726478442023932495429753827856222446837313877426379557523661489809779161519096522884191634265075850803871374325084647535926551117375167630670882373567317312511760195396668428123541895277559629788832418874404201921794571926625967586639773083303349693432639914523049100722800622107184842650494004186064464050838074020590237388395285480251353017405421129686349944620349038430304506710036585204393681900672769830281670807658973831797062616787401583257839037856400038762834006789093146386986672726180854992037025299468579004115822815172921030366991606401695422764786578065935115047781774783289315147002665586325045797572360027059022591118127717584421043462245093889753488399540167570483008004979346698334423857945888038034285806138540430658457569780878865931850288977196563041594148353020063247986497713655433405908765744516697910782824752761390042893285702322525300349862644715572605002219982243225131044066375869309953742585762241098834616880700306591697339488886661431158349495657778541999500016872560244410693465387437205005763020789381886597114494696005210335765014863471350156371644166019000778781116126094853717965316717248634868165475475237291648328707650390963999301330341438214495645540548594672652279536720376791184440643706518622707536765578731405587070549369427713537493778311366658421485072726170997675830858347062389177885251374633566450206180164554321308798765727927757360167974366458824079089529974119488254163729113639654310952804684968693772842787032324634946592726183995536613959354924564403411829841983386851066099341364430528253503245549898936868122453170437591162544916388323707770853912657638669860690231332026079770209965341757571034249913879643624856190086601089707985207850211991843367269399731899683791482215243781562728785762431782848392278797467728187916198048393952474496420639573189144835296400590496440210283520304910869403501673056999685264641061763894427805533428533191486689128072401313670531868023034273498486369229894651524110390090713019328497254294175012788471365336231937621812987682000986996159474315941074224533208469540255534702690215545818170734089631956127493582600197409930576848300725734224947052505291388822427092246140304592771919844395756639596744903125621645292819932140905308871005538223749200064292392892651292275544738923710187665506023862639572304743332982962045877700599442572414926143544158440724165730125469646945226788481681809490957445295379386671864125382936297575961262804144749626760977588506907031245888596686743285623794546086104147446508804515281765389126668946763702820538075650916411497830998458127037335929113339717499813742800517051145095836243257675197572446079351102975413529458242013909823163903011759738971913717071974145324389219002720910227138181861992482605810024147532680973588666870095326889621001861733332754006049890550007357259869061333234220633740442867921925559132647894404738540979091876847487276563923740868692177607260855320286096077217479264768687747249703935853082991583118138693781608479594375854680352092162180720901095426006566702638990350478076524113124614166670395292946440437302802560828328012304677959630348878810670204775141392585122416974213216792033563144409851489401318597126355217522973910995146025563638176091619134616984560903956665350958283808460984700059491849366001569887680004133839798797401815549522261114713788964878880125482785807062553119330878080124381867201922298190440081791737125113316415299494353647810019454397274505029840392373972707424956763817495205212582959573625943165202740359296684601615988396992257990451289493923626524590432657306941087124149814560737746312929339074910634684875723670645284980378075393322059152785998470645227978166433144527832261187835646291527429897294088081098711476157302186561200174982041670446937363236114111641197421919964511782704086975644465140931362447458059469835332097947145412313362971319693877657535650365107729735353858772943489562807411506196207853517733212452968372523030608352379553316438827733655509155102904336769154699247470763416513568526837382731849779914788558176962594506744947099219187081477556211015546931943633219304058217835567779962774958930901382415824160845455997121574672300877221468707396667865113055252307026305932005769649572367871146748798450301376390340648358265951910729711319932023398392775105783898994509571348689312133629567351769186933244462079145960270320283708123167348242662209363377155516819569708147660664262987981107686076820143569808361816552216028576045484791198652734440972660683210371483761857332449819518400464817447115406464420918199894550833113609224313572529003852033542758107021138289251072654567840530698559915185648231551503085158040163943575747266666319710513211174885093074513644835322910651134911902970538199195364891990877686987485497859095940273555126050290163885242712967177563180463239273041008027419061823552932242334337190768594894236318503882256717087945311676122433212042324288806623181596139552678088909798017844333968543088882844133722195366296912854473516608772038344205588838904313119700073208273306638634845559823146169293484368268618576140187796830490491661732746544198489922571244958851834857097658398060385676191200314752159003677300115398874331483158531414817303604887594380794454893822032885731854859198372131117047810284455696637691864961479706733887701958708422504330425317281741419332518262630550220588003011812993683363030473140437123724619638740357741653121495559403484860482759793430056140196765072897530430620207200570236789358106247274640989935605362714191818595258429208949568229096876330417642242497891566774408895535746742370719683434323599188059881791181872361503745821549831427975617159564759446242637726238844431837903770060150398197387871123119617985019280824040054531054472821127720235057057303239212843867773689723429015813112862298019503249803173170276818958939032787110472340030892960346807675027609062833956006972350748212807095506006211168025116255642908954250770908403156538508710815236924976736036896427391057476757254059635151144352068972928698324599871474984939402509860991545442947327433227874004234521052640596871557283626447973673400747199321079577146421181700860984444212118655370330660661927377707931911623954020621425678171787879973298521406891450575690768840459679169264463070130780070413287315302376784387245387724361450163784948391872878415673155078920699032676238402787530417047934385026297408091144340063405674456444249855121159573548092686473531085195699766571225605458705612807648980181932905283061399615986512458667165997290595633858915897142217470477094824307745423939676402092731002285414241433043323248141958756743171127051936048435943201542029048267806405419894130666643918530184706743284436086045107971774292723497642033590186420755933725048853972210379089598726308901744342727832553225831457424528470890746877567530275472732490403429518257688606650238589976847924989808361469516223867267314253060826243861109976703811916074861424931049427706420930640038294317832154115354981213249520636774259243488064753466473773854480578165150421945557984751528040204983883873640877746559828450787999461597978988789073709880526476627002517758397888863554077008138376427464830194349462841840036233140723185526925256032857933117545949924845728181328497051967995727220597832120854923148951634861180541264616737254688650266426107926982041150321489909942761726874645257690276483552278995573732073527716431544959747402595648820309056664940952129767510681105502018286426929764726340360204234096110902275684436665983596506202426107076530304772744912245053803294586843482688479596874316940984805953931116551255802882201499042294425849672639081726784057416333409029695155275298759193852064933806980465515565634738904581138367121864734941232274540682909377460984419650909930103402557413095117272973311369601303956149966496604935899473570050003318429041437067631724155886680830399553224795255011470132624236089118357858643950011678057320456106979594423565840877347361339716622699669685350999459922274975092231526478388836835243392935370993179924612555959242600507455267706344218976157015018506108383345508828862859489038488318235577083167418014392577829497859790228686411542039036606013489898150871970706348659865486476907389041487631441306119473517110249731720618395641908765369414080316178860148092172068381214759321976846280639835075713598516521374430871435826844187174884310816714225892238188650810355518747773505823325271942584719626587597903705123744218526924833128909108572408235071046042003204988590863230282824234812166447655062998602809460423210203066449832437069496507956144318770986737003655679654943180077842419057267913619347730200782740780371526939684167761852728006202081197549954479636827245354971245106889588182974409902271348607159449770334729839818429914713926877388969587006771734668748053611306979834769067285340175919376388769070242152990772527314547116231551918454504045366826964701176318457894351286522774715916110590840431606150568611482388664717392738463700628643556508392734732744841567244405940996144115139137087179219076725150037948386544512903166304273375598717541789877687332551995753428692315604476357303951401228178831307580933833168402855407473199643782315351400772012972859482278371945312208593289938323869362260032470564042784385931162492069298920383305721589659651793681529612383505851148885652162331851680368090195798872614645367091339801188922254940566421709242624233355766663159821194402748844571566738637968374173579631682344450623073115108528754227832999729408264961492418735097487637023545833524523315084765025638590262449287619575333956868730055977813388900762955131889780837659784753912099806873587891662731149262598358208475354863603736380029598566487484896856926397680475571434166323011662006257743181677488220555241090789626629138018664673047297623834030154835271597299873344654638164281526627576929422933654271481069058826866211298518421379444465885167729312998905849030912058649540350583009580409370713047657558041912669695586457558588162415513593972330908731279336613878617811207598547780673996507024623256207481774428353139137685667716750277332466661223750169305859340738772601645541581477257021221739831700826699655634303372060396180202731649360411487926292683289392395121981466134580955800814626461644923773699163483470945221668014947000007132835567646950365099093074224960556366745687045933247528015522516541592755291034756917117530143181094147236222949918144607588409865904028331293839193214103429341348789182090767844454801213073417169968128313054294834570378966371740054387978695310480582942303306108647004840954389199878026954580402165417292404537656180361031637360129551593117051896700440282431391483391792625652116707803284394706851038492477677982462633657637160219556988701753314165387422691793099418628858756217061194814386368840385694817410275297483699049593326471319297164893886723553211079893466354738927236353042365581994494321602650941316158174871147363774273041821314840234155712345823133803347411252169560403546385988508645647547531888097488389265406459583298360332740771551902777272974664470502653556929127230680655452166235613448225386543118464704201950039653317815209461624458271130640629288878816290662268774435561044963175002496458062554355005733915487510251613783711547709576443333325637015154206104223559650910279923563245890395171437716221476490663534126453150701745065464156575031277943054438950017272476714505673941266077997589490977531366588969340862517540025061551256987654797304779458189468998548803993892660559694876406048337036870816535525894510936481450714820410665700174391763789275330030263981479350580120612474054896697410873625116892001916739683317096523274482447483696080767096235325845274767109632522205148351729120442363924441846374812401886991211665502685549504647714830999541506080270476259927046091570289743009897249070200292352647818066894174433869886639428134656387891543069701406560948767590731572397621000394522978049315741750811892625726351006411557037031880285343081589335912117540642094154042202466149844879669913455581104322575262606307846449081045723380166772373167215025140291517029788447772009238283605672407452143469022949671113465747456431194070032086821665989209441399206707619239728749701025699306964026941241830839497677195131336573757195338380978270760871153304828312538438363089960147332257243258756340525188082169629383522064903742309685144630122028035697543974191681728908970278307482368692693478869454243869235557597188997112309694921335861754205995075310676324827857931679376735535267390220736196227974305225664320079431903339513977083737864006113343883338009973435250715480026476106082168478279628529219969708165323097084689139983603521262338592101363044672331095295220206535567351961006726654713960501274533264685017133145945492620555534182112327010681848659511561297520620452579859871548096831718523492544476687092448856691250777682749661040509625242807657075479573685609870414738674896984553232901784595424379590589853371005299950792977968079656382870640155506517167386471652297567743181413773726415308682316169402258328961751048304659615103386521256643449949519400845153941761003096102987896420802057383453745260981365497079847077281995735143145998981150185214654993262926899734007690998421997843885827846290224890797382931811004979761468326322946031214710073430321404918529072725324217686666152861047922160297319792554924901596249093898804294345752418649859885467085423585626879892730239817923133558260979009458647112874784724967703496271566399508073998314097033181040046131199971221357382454291810718635027460564024130587663769278498988532746730746789000867728653005594281869603578187854866690025073880439861281997112366010419916993715526119717670847213771122922947972713174319173592757203087236747034544942709234191645061180701736974193511202067826409598997212601981471298144344031807325345071992021329833253685918182019041843940688329087442540277969001423743473020049790415998781135596507662146213637236578233474943499955001094258697588265675355123061784817247515146935143357332220023716889012704868078114052233840748381041246802801209755571529221180557716973261754565925070780414605226217661341774746004322687067469320184134545361458063964902238132749174399971434787071384767889009655836139104552354753421203955336891809461765259271624593440544423333874550655455356337813685573371247055484912153357634440535388872469946017822476437533637414213177612940985056512100453347352618416243978980438326175851507609971622332698480961553340045665620614099423869277773747354259738652894578616725938058025063744388437067145083182868499079992228051283332364722796016968578302668118344217299210520084757247015096199148982151295758237310940752547181576240644273221805228982793558686407454313175534771504506578034622731593084893102619818748147002496812368328836683492208157204654968217271168959677774547542325986661252731732571050442476190226251427969767292553816800216085271734090018211831726176843477644681081298495438244166790468976785288928700507733970511374247916768885357055837072196402137382185726002571657012282059246467230649091929000772055752272624866930218474751539091807507346902927701839938312452713627157085139762380551903564659316236806911485444487469184147786601023230490641650785736740104197427958299009057910932535307810338615327378699043787442418901003541692007103632364854642171187360659025501622928141647519639633930178978326145701789519565730256152176853257374674237624206232404571977972207289252459706737728125039259736983349652741106718099618836199372573192341095453405811847960715286109812358626485314700260078715170616736703397481823358274773196435401524633294259202668918095159077019681901889235112790215265965235801192752966927984863820116139527501388108959636901073877439435971869438892974884587799007140276187243056349745916764970757603383638320679452696865062060961295375116108636418215150630397470371765488030595611864132150638883525836330936336223662686784626893883520781655795513127852564723079807297163298586634391629859883546280369835828152892415405086571958902196595225214376738940072075868452511797645107637258159490687801951666494074210953063969545136509500652455645991452202741207240199203373640613999554074177218855148468043736882746210178634693484729020818228532743519006604103743969637805808535453123405114162006312233209327326394595162926059890267971314927174857006107094782999551162213197205034620329902440994585826982142239783101404069706516468349720986528012737089257014560482664028617580309669987828680651501337377869254570257850329531094910490061776320951607742838176587040582975479248546432411833553476585743853090999350884201197824305564737995733051182289456127773756802541273112425995879639567142430247772682666598407182964875738262577263910169019769841235086724746491238972376350660163306097651002799784528833867931958232828680537867354670315566517761978786209709235520810069891518439253610625575931992943563523597245398554322672589929349004319949472041352383308873764481669280573069145840408443181617212346251719471352164814416759002732998602309514225198726586447359532107254061069795919573871780214288457374316086707407145154448714228401239639290950993087578028758354245877492354621707662336351488569497510991826633915284438558959137046826694415734634306274885150639578202823902917278991952407898713792751682236398340267148610613337571317628761975860397226004257807766344220135268335924573256164521267341246567650756836580565134202580657086679314692096441851997545509027474139437996434965882863021237742893438925166339377274683453116412460022359827581599999245597240748350019871904864488342499738020649681268458543452297594640978931356020329727220194193593790828591240205825272940510183028947740366724409418730207698504596202200075309083165273458931690010478515490148708361262560446232496871816489282479062706376100088437857544437733184649845944506822125218974957391812573825533924067252731230662639600163537225493341928394573497239612660929769690535324038789547154822656488954096146557512012163644940853983447011883733539358201339918353559048533839958858395464528637114594832546624111457488856631317621628399409500512637278009313756250039798194895791406522854632737552595574386696618382081886882799339915525726013561376159626373871961149617008773374877871907849489642485594878403276044097404199685878725142905801241436715930488596990808754182257780732376511781617759900279297538318958750201500635246095224070084117719861930076060045508020506489748955149463976636846961682272852870038354068705155956010557994144725188992821357712710580308942140190987485851017856524352404042962963087558342327957203800763147655027647172110997910294495809717716379275853602192114792325289057721556316115729506253034075725178559979690061891459420636845543775918683412098545188865253640991874297071460550154031442997084696183654580654199214510068739534321560361235622411024895435821976503027647172608507608380949287959461532974545479043361291811562925479232659061002070174083610211219303385359989572586049489258430929967730516367419429797143542997243816278367459165833395047222435962329036499994498722560741744174683424052354410633977491845492452156493675523117923361039444170490803420933817402373310241126631990074491243303298116815717993414684084719756440962438866287170427400159718017813241879886471850825395610969299207136274956439640802554140321051009950020777884543784466258216260879330480636476170243152443070113016141341674785215028424989677757122616881325377962452270352582565329363279245555811805622252674191838314149339070281262465512635833492264197804662937844529063259645325745560910879424941244096671076954942652897930499998411234335960461254999647301041563611083011851253470728266698729722194380954102393822672035313201013204267928505175258044791829178020271318430764287683800781297099989432701619730779982319864603209120001638580144497042324642374268060263333680495951069808345864779140801955743523629525084762682337828534507518736998722350275686205858677395999434711880364602101553653388270187987824146925164456260152692284843055674245583457756274831741053152185996696887732304728577425534051979368693326821887344787098991042714315090736591963585758452359621075484156483606951131767618530386071090412924972000088113539311573611799796275524476795748943669937182186008699348842013486764094805191210916980658009289417885248378745557681327521392925226730344130699508309972874319022728317408914988396634475021005342747505783740248279824782955068681418412028179619836487773363719789876206427828986582701464099639494061136468374305842883126597715965340975467868921822757927893313079534575900772753514598754893722125214881876254798775383645545202988989025803350605018865461796884117538025779321711123418866151852651366127315939759442155135009298974525488361392196545465623081166816543868522976215471527242453786202520135265685578193298798047952580919997699773347023695525540809652533167327785608455437544023489488194892666242129243976001888407698665624785330201960451808477574305989856917381037479406705753468795667761190408288788490158278430912818577703142233474183258413492854812111986266013010472112439460742002824027825758899097197793161169098323699271511811143949363844100186719159645360147109049855768133683075065684391352170830778124137382722703088246364124610145609242539080787874802976619158094241323866838259006515545701856500082891718601843946663773932838410167003040450350190107486185534114573190048424496610181753206528214914581252527565523024695276867597621273919279851693513979331898624549650676836642342297244408167872650314693309118691381565996628366541716914737058975705380498040109662374114147394066136323486605936796837358578373612033260460534719002166227988416558875115770734566527614359518874790803984185078699550112210511192436757705730681724386670626973072981747655378604204910071640543893635853092307970156684203402285693883336345336406149382818714801129434722556451604693618912829328369514025861582819850193089863634921948232367722368879611233237500072228173247179822154559768385805139022344444498933113722807025789701150169342669011798459319125040075509907831494130243224992007795589617900000183708504446624807154758434470247702307376693847609741236036485728753094709191762488344108845193800111405631956145615720972996046388018505890834820936410538045226631811239154120654819781624269989859340891329985971960117292260725846586956341185503596502269248965291892799035115488154541899904467431959944939972448836984633042435540280708162391106041207923546798636499166763594655671970165468076438671507788606166401698063240335569107232277097660462772578850082045652176425144243834205137933370796857488943745755369126767508627351826155429790690534538815034016208910554977656677941743143292222108079415639164836307938631403495275781032701897763700187977711283475144593988284703854901983669182687861053695120351371717417091350385141416959237204992451102927069303640942251088224027597479191909252510960240420624287006482407890010990901204230254890721950007941760494403394574532335160113936774324680505927107657143142261402324436642053767679375120328688095616735353293524666136502265087767656871283369538504105800501081486474717466257912373952866411814248527529935069241153975045946828104580302109595124701440122611885279180027202394037874863125783104085025092145843933404482846311020050560205273642405263351404217522935339612426552949023695953227529531262631199939490648177342007031396546151635815573864372225862599307477218674642212403132149591415339047279294304466939151945006037771052239775954613043796877922424306106134092305734699233154024874090106593974139106007348199989864233393786631586616811336717998643141578913533799900300092997190699792830942997155936673994632139940008049587771929886155259343813614305933660735355557960419146193803042166158973628276645823957590394986590772812313350701547298698007144566562208497272911985125335429314759880383194916161475148134730826194061057362511388701555042231790950835063944650021238639016351720701657502133541442758154550141803292248351966449094190332022857351943734319881857365154523420601195900564820863031038601718562930793679635639000799106116109513076897675758748994122322867771902773874590307498325253269593653454443528922149417230960897613332524733078731005747592870827305760839429370521631751848424524631104535994267172374400118781541206629373608175293867596798449242215553426452805809489998684840519085874124137906307480876570943724957599149541072174552518037505530065271470126374328473030079153345194959217793013857758631442502936293221882520701206081416734849323478538804722755937589166090367900953651861727027632289353281755434973531627998325783599505141017142849320612607517455826058424553390685623181108700800167431213175592179044530695241408023442960417379439495437551806917186443007875592092150859835441315667287991174053658963876005901569698880660279714948117936135858796304789235700158701773575162904908545608185610888464043876300927085390159951901543651022072888975627263608139371338717733364969370006015587648528511784958936475175163757750764346709215644911792649926360519233770235491065456143327969220616909128239975108023728495028722903513219896094779330221385773991815943411670223037987324110790984592595140123527600694875334036199777336905051325805251033097724295377723229260639610945274806344263670504757079655225304456541494281513409898492613658317337297628015887116248076743503690085220133486221661238675740288548181453375901087030718981464079228977267737325652694742319833736040504867675471276528602610298056866106599788521299347572438460016173070862080385111315171739945868893246998219116466109527351117724109225819820416959481549991378370357908745315943214372049337221061106245477024856369979063119751076955558200440316854631667960164061894883709640953189567270037052397734872082639876758624655888437678741015888913133306782798152083779228244234299815111345957510337921586266982650233616490988202065177821000947158639413265389468283854694045511737872191183942128754692407823083792648013657543130804492923496758875179216766192157909074098693274010664783707181969768273543271457015816281558108313915656928163777620474633816691537182349154725668925155467876218991618737230304665570436147955249868875166574418273369628336560748530869334038583123393432235228910266843589134030665436469343463284432184343045906398122490438681569036653766242328431136045354537029674820979574862872982554878169465238578493091250047008959700209983089487609999468343676925945814132733290698216070266336758021003738150123201305557661689588172220583068823505353254038624963193806050317311659356601933358884213282972396009194636745576209081498143655233668764997601788800639833386643206396344351780379099061798557050550144434746096549426403472328533881916651880185378230587504034805320820921442234851408005973919508432326773584486834286419508950270888613964861414589703372065994216453594579022516432991906295802600096031558502510794133016105299932415035394451423632375728655342528793552407430694814197467001705189538687369578629008041981745838402947763767638688647828318830039997501835243873305363207627157555619404056677541740305669208516426275050260439410480978779680995984582705019083526172179840922934149976789099632854441096297311969091914142180739817383691480782769326980238071551180686526439916871709561482691224596543948961587398815048138429656535278413309514947412716455997347663284951644489074639311610177832439531053676654710237192683798562356376425945074650295650029772870862448101440515899841443480421957457836842914350749187930958432262957473817161323279542333756872778978388118055116085434035374261577330184598281305150803634606033555415624942291075276435883791713074011136048574145316736905926652736503519979239631534683387230232617252993574540561366638608642009477897274612335400190096022149325203018545761023950824296861305927514785954960850646215583835252154535242796610463723173613606968760776494241686040384634274068386579479038162044739498241663949673707367834279981139562877581739636911602759736447208325305043719537844188435263139569140467857062450540417762193776225047765552081598583831204302888875221918493033310519931309766151889582100215843698121296260049833627455581395066229563480768713944952444785970906814464249457898423658152051472461710654597801304598129588068110040007646286297227956130277740522499070258645223650697574834057165050297859181951169249999690596669483072860929137632168655514545091710339082210266117184423004795633257590338231933723445214540697393273708846883048250861100650244691518538189022925601492887591502074539764283086853837573673282819687224323541246165375822559288061086625831596921328146895518720407003964803160907011007390428389430907084048904970068031371137600911285101985041290394415601799346407886124731882458995619095919900158833768212018847903247023990964285216611251308388025856932634225945812544516186792167721909089865874678740385773619056606392007544076365120171038758719066882108774571729798818597323429020646868015204329348563442494971571692133873366783981642436297912444934520017896952826254976220288020901638487519176364072496236929602129255271420158627873477350175143373666850556440401577940266510467853480829442458853221554142417061822245905552786660481527094462272648631765926241943582739249218749129909811544342203437283679359359508591417563061194981590632145651943677443371506877680079415790176661188548703264930765213410716295706395651188033405986615510618424331396033552989335202961204711441992784026239097237348957919942364192379017455925256959740771240325551448434311231284797988797678562579764054606223439179089334216971481809282621771678543817887963627748111498683201089731338311955853160350167989570814391065844999858517996093449748610072631642368537639319780901129900613689565382353922834804362346033925296812763058678000817823211093205932278353520113353735829409555965560251796143036888342090148417206636668442010401531235287317367659842519091466809376853514558109137633718785465231697757395142711324600040971406646300585994636472886637857439392353409630239842946386836866907001877595757247074660785729960026828647303534449737538247731239324776217907007488042808824179610139573639546424159163819564164003810601124345431503369703967024978626765519146613895162780741537360579122195832566780123650491906123087671579738697538303881349446173135397079042385220134840784141535370283545824121515653140639845046765966285616267371480639610029975288742977133814759569502264481943832395864372889407640261329133149982357115131511143130183957579631222134948495136397269802655311646012025285738288665912874876614204519449543356621950578771524704832739657742088715870985782963088999133905234793307176369289487857879071194930678739339547558397493953549551215873525140937039811498528011804659564248322753787649794525460212501408732268032861081469645604129473297334238438830175452513228095782101433289079686569992934064858499842015952333886056155926323988878862995410172793017003480599380523969707313125280105226778827365295273417406744554551332399602310803483911341530847622820978602625640777643304024952536047053445998135309085694562030356482810769449282564833239989226648133543804615958376571475887392763396392363941167568574551570474715199569696707536942379231002403530456053173181729854071352777239937435652703414788676599524196556281650894134525821682303793972459937053947093821923334169271428058007680016922530428685680329824023899538237780672781726594590602419491148680329850146998584867430841421966113464836848099934172853006798789236139749163689725137799329503331236755714765079026755981478575784403539351484018385554698671021810323366450032398292395819620559605535625462175032228273942157013437416403364070202135636513478924818397883329364205060637799502297728119700192016383259188821503174557650874933007786143132970367589254454708257368009936144666298436581811458006696660972311357745563959247429680921537023967213920842874510969330543407377935090468797113956072224118093703840740049249555265812420329217668660044189638047227868027179488988943347843518677475798665356522982338840894392061701846114561999391897754369108519043547244027404609188258190421009073597561334281901254618400879954239833984142324014289643443836661822706023789842109827202758182591162935981060934809606614492176040389874967651814881857260912448186973242328784748087282887498192098718022363795273021290273186519290843468000397874674278659496130869369599390996565636028019088433613634622744916791249881309877683485140324611207942754360879350090784900767399861617468725908111085214920032164619236070108290997340452765325658841532320170601874636235071148432495127289664277917710679976701535344020295357480875599184266462500340285761446964952057145901775958366253280777500512342651059625895448315467276929873147731685918818851652448528048919651014748177061258708478167582844392089406957342876300552812125312032315882320665010036871218065769743580022892557379946332846732050118689026921566960198024714580343720459796759493824878444291923533459976769394810452427101393736001977037779705350846786034984431142952843338828981842267235097129175885136475564538540161925897754100270135365220755317347879795947354667801670339069501603374551098558711727192028104044868916841561427255763390193044752138192673851449499004056302758087512666171192997649750012045833326123188937861125767086662957076313136890406952043346689414532987327016372095081434503896901600331525360137224269565405640531258243766243610148598160064839492277857607103520778442816498583200622147332248052356503617978595523500480643443440184466195815350076267899224124551076483649992045910398392755615337551026741848421585795748247542278850300913356671490431998183221168189917591604073358544911767157336344439390302325081585319342745351089523661984429526934685091256329129756632438825091147075280569451886502681362333162489733090182487656723207338985736994916984173408880019011303796934484153975405880904534243039381913708408721910777058252943485876316405912824315834460349218108740501365423359032530523971912419919293908797919928020351754846427858513338897184246876887666978493233775672575256801767781985769716397469998815535988480747231061577946085141430143237946885297658069701471226374024184744627306937779823266354799479575251782017896894220159563806776002307940785421683877812879915823531454601166211611721036160860927951976420084882102790599494874499092251931735175536016239961586854465952380139213307776001406259300097635483308007416728255596498343061846937695031729526448425634466469903947111285757115532552672084128551660608710666022812439415579674887372489647409141965875743844782982618860751789925787634213204406775114309997889004455860315233171858317736947619255627019326827868001584036616613492783234251223813051260608016805036645425806984268374377084438876532870786354349780892906356614009078114193985568289360498539818516957528663781845998105927672230557086263702963825810092345884267366870724941193160372973562956864764215974929838684216802531698917416985289764525729115145934718844285317640695134158763838184478720519122300160454125261690678444499773735279429555972490256719002103019058857874150562297501439293166082882983800779596744212335289360252571994963404465554484998562056773349366475073491656984464874420470892364201388811977762342953692514895985322436964513762473525078675744667362399862569678896217757009538314142617364531361594462158080654786413288723110903293872574525437166988968913869243667754131293642379439153659415888324158615027081852362325177343761182040741898500029666660699993596398613736341399382714082466217502040257020641641182756926245740204246868061798082926988372632998823049999512532152618426616062259561317196901755218609782358405516854029117468017477738327708582822350209898637156425514741277453838077515542788217495997696023267608718738307588216837082495905349564427187996476891499652531397645076988642910841414819667974848136139748627855689537239175847245860583020907025942642352284136083016825619631930141731305154407653490987960302088073313827676672630141022332535909400851125150538723677135709145016856835131511072459390735329234009833140282830156713877144683260494995329785322761922420617363022293471667170190714053896459475886029057523619081612859983940641680835936340059839947461810622430780091357629181458382525920626131628878300290501723665646439958041100017236575665786835586324329460795698045841600896990548010989496149478155496397504159081513376293165849706955783299291276332522272636696777133440748562080694648519267889877124078825320383379035056321483352999951348524917278538832931332583680881262508609890720732067018655751391913220226399263011226376909125618105968915522660693124037002662849511190100431003569528071777199072550152114659770952042496815851835739486622878264108206942310229467591365600714670759811815027103968981114814286044179351643696993634407086291981009440803010312719839713964811116865075723710913500583944720901986087292204734780874989619815668625378647782754116980813774011151213290627030426951850635446733579051609749559841901710632542937687884368810235878083169028077265622890737105095467956824387260225828046156561500165782570854411895367412191557850163678495301693404814850735226136298024607174284057775826300154682769650353742751503014282601355786446668123750224175671658982337262171059668388596446904767258593481447594146959360774925272853487217865038553061737778573015326168928361286163672080550507357002997797473834115254963199477006787748783517504042155666212961089065906199879211059880003602994999169920533878305388517634210496861334683528439436650024067575354121323553140188289861599972012272897101401549673990792871431981960601096835651269948004749499170326063715326230383090241523262086076627798761921661428991568826300692230638863506040062974064265692594841553675628157307558766103688303106704241507601271299942144547717434724907334753680561148106245240832681295574123421715625851586146485005192416562880764736466661709281085887404308185375886684981487962329471967490512542125120704467649459580811285852709667813956655000756292005937945920030510418566720110634086769158793232198892172456114908412184032852082225006510596033152981614718171324841409378193686399795172853033387731007887871876002878848877164920040170991257236427255438322120096427247900466553335100899421254211821201444087676311189094254478461486731468315586828450434381824879040364200905283980010462942344156438367271104530946601582487601754588452048842434814484666679273159435069976815058295665723536355084211298508781720215024159184644679770401835613938495668042272056200001496393558750988638780863183500625607999756645788670502599063643087048194873722808498944986311107965554516199535870697721163785279984879223696057779112999769605723616809797769053333991173805988144054163962643675271750491035842593808902207338936612805291091888538520469683138095125863100830711401024516928171432184084782858933074350071107213195416434450400744261871400834549082548495667050356598470877626326144418293827963143873947538417043503330643249221492501837735566436117727062554260711448132950781348137823798829939406230735526920274422325926687569249746402489702872169930588483921658773280801465717677437644107450082632238237252887972607962226348962780223094394016095717722904736608372606784253082930800291917403117159940531149816006172396174061337174008661971391518547590192798731632472418771470940509057868494695856066367633711205379672122020507576820576528376927903161985972991188825721614125171772499879768110253169874318192804943398179660707367877230662230189380602038148692444257404249249764928692673518918147956998286941131313573674739930746656684259609862517993606384423965498524210499477822543923009713483109990700570040035516173374263887370182642024889071163876183682671180966153341702032248602728336810560808977907663760737162110620010361050606998004150892975978172665612740044218614840820019671763227345427921501901048874236566529114331466571198895914429471916540546676111203986246689814799105854825620248532644429082045273901792118366397706121425223038177415692906733117516143704125643002648728043374432947883838059258618415735534585860095309982512495702922657779960381398429118610665274731669315507858096964071585691270328703556737528001728523673187343054147380544117187601354427325103802711381875747923997797502282705228381378465434110401031018984243498555937058209105261484603290593311379807524560809802587659491197065155355307205562101107905494041151681278300747078045301599776294104655686809952311188676814203075192045893137889612442492593968225936995260296128364414656123325949186508107869673304972495193063691895735796414737399424998786007569657419673826896532755554313114465930969044532052158666379274720366579724187962838222950300521342018333834041292290911915038631343462381114055499377419154183800483872102254374775853390812672532842198046172222908640651319412359651028805848411611408788415330033397417997756367191729267493525367105288407847569303583589155333334880300960135124625358844076282038661104836920139038918628915263439561830737839470560651943401834537458506010301389203888808128916775710197884489396644663703397517034017718979434380468269767307852112721881408498108439293993984436812927382916724930909703348549280116275055017252625245078990001734569015234715099056920249694354334014827993007111221409264988687226527967995871423882974340624330268386142170390852624450386919163589288704900981332611544249619333010709442409391702884300066845480107223174206360422819524770065804920251321170198058257812351590189667980781422021262115621244167655645330984998061123216295737070411407896599103242995480723479405634353311472102082848697917309332609274235110159460263036524843767021013956910450929487968763525921712972864702167861610540812276929924237092276940503746161499665365747441474446367413192569415302495960128880724152672081291944866730765674900430953884693855031678156070984930844551429233794214981616112471766121034466971657065148276263047682077578787758006471049680439392307512095361041146595131938113320566875003342356785888120229419401200508572665348238794220844964727589788969886663123503005414379738772022251073317564145083905562964995247952030940582934344832143989869251872584979245834086109978322712193475129246399144996638271643049932001762659177490371402147367863838041555560115308847657155141836243537262219866858990487013293342674695432869249713035404253906878597398858220735570128079037157447810550970370927020323760776735422023596511311175370925322810908901523412457953765528658544640993084557461086390056337095728000421621470586946921868995761611247297228446192225007416759640037131508973972997509243147621701065268802250888811962482510746236382806440499002012672366918745388339109137098662817231913281196391688239564871283932011185346443978387756137372887957976682477441402228838630437229380134186440141750731398234526768091147676977251536332299733409983633721886496984336119090877371595548668585198823778119305455947440239055034738161770602478424248084869071068222837076617773076542421046151408110629518189706364079369690495324254318302576880711479230735438214412888504328461533609775733884414269347676626516115173563603822677654897885283514218027967209166403793581384837494895230451133817562658341762390794503188672633384029258726621988777563812740973549149491646517428397452889719095608796994652387443105595057013455700334576875320315531075419983891279244046415045765157920830502236938183229480583776511978681918541328839565640017723500379034754371289961925759368454971368194191934066898148156198741512243467875452080717914585653249067569611722068270604087499460528969806472406319404261269594266559491609233043206584692676276305829333726449131612199690576582210930755085148307689558166606195036809027900806691467184889089686379430847775714107876827179084916073142566905552007329978356395813679229172431873704445116839697208340957442073519010659535480486162765698366178913645003411068047045842715705927874008158613214158295572763381214333358369656555989946214264025139971952268805542263263919614012234276857276708377671430869818137351769680870778084489636630456131532993789347539376686237604920066997245422897438934005110617157691991585598147640391468073033932261084747852104106981772394470762225369432151581433818787561415163035695204605119809032078227223158794535414244217238656586912364203339777475296886630390019329281298965241277970791033362045028787434944976360081895771768677907936125417844310250675046250496621944684487596778199579346534135146920513640571437475023868635322325169558846989439140300953699414515473480377518310496130624313094308582982129850429430549816608640365096002654231461414964029213127605563118294386223149064243730523362701984985939425328786509189886469735570296521908437140848429806199682888704192581406634207626027136486129369524380887835806910960114375553044341474197732545461389930490228233543505952136142905539199428121605777777776626557038591703806658049228061661439060750314682875577820165672573094364176878051576618342539502517742499246484221488096795501766193354228323424385361224256335662875405542279052777409478552039753639032102181349532664495814471357421216230077665586384059061758267234401990116637760957598443163624385577964995433741403763393422922738642736071458881390651087826469162132788825614206633070055009702669683113249499977377309592152599203691835396254995045759735336991740439384568442394554675563252039429445425544701622493082150957488300579050582161738006210360139039720994299463777136066567949832128179930814852350999386490297038022414677142124685466820664803396421991014345981786492851381563958049371022768540101300349873293757004860989763133685935378073231440379944372240611595623271241926211509852141759765093035822144252206317624702507552116705873860102324827898052565321688917256657346286716549889472828206347384151812757046674441265089940739917652414367651446388280784995604298491070139391650352975924535755191120911637990168656301604847796418222984593411915475588300014797818420126217033708693673286868828679615930325624770420094024681945309496340268362727270349252942909210209058828900446862011614345997046875898244254552959332699603259086751354161783780225552461397507533609784366230479330101078915410053446361807531572857402774024524301335452991620310791009782854958964126257721740199096644422661378090889485975429499207624652776030315062344810199042177351409037711417002723071848489152148606914448582750829149816758481914259455874670112552503650819767976580282889732538613833837490914272460090436093547256675486521834565797978112095684312916419679337162440498555693706067079656503193008177696294250941052212545642253052054362789913539114215702000246314149188663371407779775000403702240474409109342319630269271465646962762532406123724891026456849462377071196612082826238434822260107237197546467223060799889529108948215493384848160843785581243105478550912488815036825270167447176278910307583481457218082608049353789120289768123556003836508800225316582377171335339431488064580651607793507543873320314963801828612977414235734479766888132666879601071961873614247902979065338201049339054223100436764063949955947703856750314775923175742848453024342515175213295613240274490768848848925376310616827621639844070694612074009575293236819088603929509263720377550534111077233775802354510667019476297192979880105474958446293851866279348271568682238531705294936876428026583484146003350004483452164495149201059143692417657290342954480535186015992157669726325124227932819451667303797301024102677449480324793793452895105945061453218940610810838134438645928588815104649360633609454506465791560705550185381647581521482251557940324498999063835018825164053103253901457183068522803049399569025041428573581217878938175486297862436884114132629390637680619557186438210632173689037341973226929908546674253275173160885980955091640222132021556930551695740620350303553556652769741536302843078255282798920055339185980710673721260437245995216574607548942009097233038620549080943604348395821460954608253049810427507649399266825448638849565489168594908649960419435904854204874852593164111905495498419265536240362587124042330357552741389071006576397443750278246741017193799077146569804235936253953540358192399077799284436535637687461596787552890872623991797733493308873562862667150955222219904779137765208474522043010571828998410666693460439413768550985103305945775005978626497181837759595430108710616429217989184080524621503904172119722456771330064656894257978266691479008420348210305662139585087462433105273013023725437886693393086352764564313365883995491033200755292356949809605233820649013727403032486845148482866414571385635649755606496065306401858695342446226049084036584311726387979859991430316013237657646360513188561237587366515465742778692101929887805081535238816890147021242119225034515871714643110856727623953843410071581364052674100319091411870324736706617132829172057619736929826662101280713537052852683290434896789983445312854811765578774331266995770714812649820408608960456867577290342806626972149041759816548735903828729696093672434233436263288082960017718241707857791937594809952235031920173062290378199258117825239446882830850529514809174601237856085929342838556828167361887465314837259966322399870275524027902388129672228515537084346704779157817659045890120899804627102021289266697239459591755519282830986423096905637520990408275865256515333871648799721033860595127928390155303765811371587202263042751936994349828636080855833182091635692816481573555543819474349976540482950497286872218702154336750603500716490138768676190693410823959435305418576875398406490580599579354009259577406399819053139190976963487519427353699970033848545756842893986363562223719748107050173187344317071451533450905695538322479812072605960202828987705230769718898809999831514082595952205837308368250941006543972889658503977272544433108204678532254826871175644113163318235455223674949380205262580938224300341406714314316529186728930149722338918238810196156763546973091299570713437690310055221619820414924737152514884195739369657595084725739166677078880632380214217806253569189732142235276224723007585094686163806703263091258623167245085434608596110410433326167558371813474600553693300402181233993098123722808098845659067281282146859972468749587867783967602558663852711764911583914207122780232699019331888975985250898065383550950230425657486784754839452217339919968260307933786223810414294755195568728141843369128714669086200819013699256051222984828444788839610699210018853383851856070567147182026751480980752715508422042561818682108156567714187885378380612313029889858533046090249045529886813871990762065452309050957942041232562577187973534096843749445666075844518299511672858583129954886911851716774666365948488421038260568086357539077338824151459540490176550448561333251272362483465556581041987732202839513661633962238031570605432876192478339010178148631820084509979758063811978376427639358969865675489077789472798484564213375099559345993175216679735740461664760825980248843901041461034605607756261520483652064868674746650366737730323161372952759604405295506738036649613036205007597502763066379218697163990083487143404533398925596365558623613525546406708572375304674721754774776979004255593880347126309696899878083119338496599984194758651234450742290036386099134219292125132884975120045293398535725780255609727148164352717063344169352127410796197867559443626463231727465552034612950199771222871642885224716199573894018472695869351254610935930412265054946040790469467877376685924264183155907207689449554463302384686909392118057159252891738158621292635071994571586892122147727577577814673278200418256485861628736467575628112165921925120696870833526923865251804464494932946556447797996352601469476248960709768242732385735980296008926456970738172016550049510796979880845460632490349567218837242858715341239059599928077164091047131405122163093706288448392785389472194137546713305541357302415218876421936083932585130707795335121113871488714544711463446574666626544118850308031606864392940770535989129737909028381296113042551813218105187188878834626065056070420508059905432282840471535399431087602382360941585060443920138400443079779813550619042761109384127289597980607167056760115768571500019619742754814384766965385801843706770087276896560370972084654859337539509324989178152683973332709068125718768797265408401109377034040139847511575150154454970721659230944600790915803341589956125741045847951145584224858051375609086671390588143059370474356822088294249690642865792926120964132909752249963873913196920792141266901154278872910498806727256870743574625056828388389452102183547327512770313049420473280760720839128795682936879242509366941187570645757124380259288504496199996856974718420062742728234899147158833182552896330643453853473040245890073454459025498726798626586984695073554280621116362853361773421777155122352758279176695121104956229201625282031292265211068505196001276110677733138246016531140371281245515366310233643358893609046733061795050218788075829119021531668798123090083741048515600078061127777621604826550278515278238818236889103771249218042458934338323296497835865914441842879044908814392382216488445519605546748237078107560631284371783751758444480789480135654380737663229498119322723500549913508421814935277578097736453950643743144088186550183855762573387149726129480530342793590779887101823954273495946567765614434405766932638244003456189127365897074608145393773329648356036737056182671838161405067692389577951053270377285536788899369588873205126897353430742915790833512886170959358698356487288144466359129087537821833366819174789643542215645534158627890090223152914593755962519587060193403265102437713283264543287653423786686132708819443055513443421709735768486786872115259864164061016178971406269296417271946862677124534724863418232850511014728555182813778270458887942907167227709068077417464429031153415603105245609023388711274288411551301302954126777624364189536697582524749769301944916770773392568473837560971812050639881298228414230790961003522605766802852572462808583849076803387847980599780465260966472339448533109773708855247305703606716217924887830378828533918001685077495909433086892376667325956284930503521091330436564616721593760337850518014224129263002792160258800950422051226547459476436255641185896465775019598510617217521444726386457070224409248714678741654237018653923957570642886497102258540420490584752497126793154524872909397972509473299542154901152133618278731667916222748803826980340835531987429734954368387983799719449515503544676940259973511924784988578988295833336735416315588788684028878365847694366913466576653303108808100924974306796552743220122049894899172316446703551830402003648292159445710581527487853998038248665603380906973435996809862561722578734487344077986427576893721388673552937762897840277862854346444382856483060828224954073929917611783559260186686566264596930065527643545817459459707446515710117069911418287141298100206455838805949023338172495436235795718305206274744308790213067783929660182930489785702914970858922894000247165839982259272018758492285034822787016402086175145033139903684787678279455629869599699945616265621575881359596439102390198849753593518770064309387699864330063057053217409382635656741180227400925490784229893512102789375925601117700476496734187521781227047223037075306936023280652457004202105344936121079754984764632669750686648869693469601081182618573383774246356633494493977543715354454943171337694499693474079830113810974470427962779977346379310411102378878422574175214196760576979491667516765556999888512125682649699024273958274619412754185490096248009704350467655608901715700907218771776155301206258709496496359004400307603667871170077669541966906215000018690793788400404834999666222500568662679967002678280035496937260576750809115538125440226507186939726568029950382415616037734050204810417933984787270661033691311926216393378566762736544162083668763985677534865563425189762896631984118702234441157201255576777716136102576190144496804543979448753999906389118302005025793189604156056849983890499169915037866805560630716015144014393416866761361675357881839859152590262986292264955028822190101589157349500395433409128964180459941584339460422371551970793582352791986062300775682940300136726672450087965445697112845860200309981429413261254094159685879313472747159366383863531546354561409937379938799462760360066623782879654363883373557017541924903317482903106045456144213065938404743344220313923186675706132444795549111777186890226585394905266249407210324635042159604215934199975115761749944294032604721667016352932884772814325704343616771657624091115586369095248992673363055615779404166085624824369348066120524819941508169432308906326108969585183754979950274390744542421926279195465558028764799007512270498653967259250125730782607151153117282994201755916848887971515291675265389685069150433092767479112608178712645823654591253879606346164766750668679170575653216284544334228695775348923419722004579239352401218362430241931836686623208025157741219491975175533141565907045491618916658722096984778695742698721768172432157272219982934464252232075148205971204756331055040546040966584714877564845312133897745272007211258673793749027431938444860135199945395862184424846613831810189489155908243750439114841087058451437961269321239449021316678549023763349713766652230113506269639421010078296575762520802128442076568825012726309590128069631610364473774691367032112421566055470585433581260487347212855310959444251364265156052070078950001858878274503447868347943942435734293917097299425040262417726689874278396336751352407232975440702905386008779394130931645842968567023923775190936150973498888146118796977311017751818217830369311861147243046373158393817623521096742853334757979733741346309546141651890180229276053080486627316501050169223819733950732049716688047228086403956375531966918640420380816658043123992837547847036748639037159301932088667412453724276775280625728949686721659469469731142993318947040731377166015230399165925718336353434740635350276893294835574829204094816278768735057711493706868993269330935334770757343594353989149610242385704883483256620723066558710329896290132118981197450406233928156303203087466908290177447230436846086701256556603246427087476840033401894676387009285644836653697143379046904679155310230690315765522090736230804706837833583823236477106656676968897637548044064003777407563952813616075506858209532438127505086423060012581388884548266855840264845929436430797479840976168513847554039192452864517930171668200498157434307951814067171551719560198224659082624407419047648401662252645075179294750342825132178790222392441497230056304096194418125310546471431436758641352611132933965678244523927949469813937861027384573902539683211903687638482654836587857570831678374665913648698155014035067514596205961882578585172303194902538843199523142721671868089285945337707254957116178639964062627852160947015984808363731612291858970101642913103472777079317161481168079675625899550767212731246911559486074342892145763827627505380606316172460325970974439124638046943311141367830773201813125516918826978427517725890805017308113523383805050335288772101942191799209589643096092863064885177497900859961823245270293226694406375755076929350136128159926622306077974660257222003612606492017556958604697888700775632850985004123380078670172794233780459683936020697081151069786340158291784213334190614195956646948946217846373095849424144590546752993332956249331939626102603250245549228906715760468578727362176335851948187380389534702411366594937975744109446096575055509527779774490647830289103303268372386330847972445417572122999374213770650643169486063003555079846597449027841176287999649891287163957630291992801449299347849630594429030948000381669613410061975939665060333543899253107756760731123693793561973536250199617338652819351279168924917392295704920309115543580831002730699263190259477793428135759508080783012730705025325203290046183020955128437438261925962646451500590443386566862645652843671227569206800134389532581080737366339502705223172672749070055798062888480301637601959721255363909666800958493355720397941655732830869441110494345887655579812722601650842540165767391919038391080171811547177472683890396050308751497659703983136218182373409267310435054744545560528961366012339064778257676380719499836475714644426950869016573790837024457526493684804756126119943926422664636178705109832358646359195469878569851042486730162831354061604350092342350486694484668333047953930456374764729782431339880632253442953305679966827370753178816580776128659924547540198079142335002424936541400746652673462452166166085735736014964913420346158833143169221625442235976825437393520982477712880699191951570947453856688406789684501452280222932598625542991844303608326151151626152602810939189283544815172048320173757177730317066516420148421486288713411429105271659344004648085423855297680679687066486378069596222907188676695461237765422748455373311825926077716966530465607799148956251264262231926219504467520572422652792661784545180859302669846096088234883318886937828555149438290320242867605907395760658318986387926088999828321745615607298636709985823172653141349831445872120558537679291822800179666470185637010893053532714258969137040769549687685738113948930513361416935285325131220439867866317538663193373685455887116882211221560133069197402896336167762757656480503112870197532519148290965901174384794912919684215807322016641341712793995229484368532409828294823403913137863661894791122370871470180210007501866778124934762387121680374213650174385537709277692065499576760864975512234121051212453185092818025425934844331248634721787098473762861653511424942915104403543282958261737611710874130577904251405323985534607662369303572254815866001608823630046743913914803125602327432144822690046192391191264848674759138895455642463796346139381337926898583288147985680262717929617167011069088533956042882137104000272840358189232271040580187425017253685426372787603631645455549246859839686174274084780939030718375242714536669262262850198244224675461600100184477521544271089649930342697624044373139236879507944345315439966947575105634789280999613344481793520565595336722420691025071666940785149352256898916751057133468421265112659770186969353401471043685788898341619772796161587550959515981719709844577366086086326838161950487758068295457589910381609033976775835102745531821233459717551528838877713474317741790862931106760522577189589388711046212031896249419473920684686480015782448210879063889898420581097428366224792129264420141015950660686538112872993109852197344888002451503035826083236047808581112407815258192115081896252513289228299665464158721903802900012763162893982640157120279876314975593100419726585457253997206470368735776891923593441185568645310958091390446801099140058000301131559157590691717576303717429441373908124237031700652269822954708787843605192011974543278359134431463781663979418343923482817026914700332628136296663570032917900877012243310333964439779069699278765356193161999640039146795201318258478694625773031765640381723094867262284372073127500032453488168549930585902235136163921334825299151432156506912372251922102163297623501070513988519829481965830695460863635501689866506310326452929187914678273365151679808687333557742563686367179572852931053492273495260664726747915660792622688719466716598409906081293361275059389574551740939348387388372169662398928231856062916191590087469340374120333383674834097927085818312218091885158651819462667393572604528549482482293116941812900920959179973190214633127994105359788550398094469607831455870688188472235642213083691724502911259984258731107329994404433378516726577177057555833092910166376680756705034983806708590471452237057133348957408885140857300087836913946580925891407032856934067137386894976010778843300926653222979996043533410387777007872232120899987824188454139685556029632187101762041886358577122324851814897288048470705339065032780328274394645167537546499370606226875836114218192663868945646882831524008244563831792319565798486502616360981145123791889171754696725928328801678177709568107139802163840016723552990097750427700152016368113397136282875894096369050079592228919804142572651332499450521381811138519299540536243473729876765251119583404874457053539470910933428674856999044004461851691486902348727311988892033353816666969490812063735419991537976409186743744885983526090981010793545722071444025992204506004472226307851847607897177078698384078093494609503683322725259085548117204440613103071435664069412393209589109936189964804296498408209710193607317315849102820185684428975266966330007531102825375068480816996390251720424747999947181489508078235586638477053150194230236008338778184662283428443802657442507777218870817438147780290368666261192260234568670207115032492741890816800129491069872700731622300349828863457365098228554854298537480157319677130525421234483924145327098500414503250309599612261449790059172213295024526515439880527784407215627784251082927124733796475830433072295926731885739950128923499188256535786673843737911896205900704944149729108397821443812705214823777725908911870114435872936503457514801841304975864040393108775140170567790459235011269569330614287090286277153222198298502707498568660977357635344036089807053495502158909637458219171714300765924073689318182121972138834883255285380482977012215155407430865340637090123582134088801235154697357115565267436713255977512135758643225354832047125418724656864811769477118439354481914142866814150747097260211704053117637863043619772911195792070625153834617328614749996698585240298452186019954554338276976082830905095565920967682965739343075302336711943368210108003401494288337409582101674884847452498420719941016289251249636691188408295661662621682148062917233608416529068020789268757784078754341038557843378155265734428449151304783990224157793887378941568568718532014034053365992571194978184674144872822838320732070987557930293199476927402067622021122384343658531084268439633447061972436663154536339172847386614193731747351057676045750319765557364540446856141469272877949678780950780367179718712061522754453332651403408164371766062843546095071570738935839562115461016927953563666062857876019998255725619039879633543816854698405453636895057887878126156998608903411827012884373338951583857610468272748736994149867786862810097607425514553108127666309131535535026247811999557501663106691547264491138270937228303461930131197309020634531121175895279266550968159801673407990308290986478976139776011806146203535196342986568297132579618043816721444093863720566118999231054876764822749421499391343537154052403342522438215659416337984763478829255532055021058262101189113990238404000682998085858068705343867989298906341535603027355086086893128870320288502719113961002879961789103170688434997389487571917377363967244630304975640640287169809099579250765044402661638020717862302332674201476201104127030747862107688996672056933700464973472102819829256024849565876552401670929161350889330680406988852022236470740921145595292971658397922358830276169217170133775252303429573844767179868239034746139899947782141931936590575213338632966673365088803185474690771255988061966483733016609878800536067045803971880373616756071928778655783144141455119389737383451690906704422652741148079721495375007554656181027101780403678671011749781592272883877067169105397696960197476592341500433438330199252621661912514825517340773281206966594995327429533722154455079425708902849288343200870711605295234900346742440037481951768517446494348986252778178985562358545147007789058796673068124872782669746140422456658716982797100250721896908280670309275017506355732643746165470441510597596075815596978756966907890946777971766599245612088282681794309289069829723988842571374228789317491763058240504128529250126165140310365835199586423957390173053540360835147994081914962943225970624801088805000878408129681149776360277820984982724032883862173455118435736650241712618194591867717609675377523076776609977333223864177760489421720021220468320262538709925492656572939135178360804614159157561183214212896259347419049631992713387791582082865427221722560499476548908394142703054753570538256966909718589567106827134540285306259605277086270905918711823486346713283398493403598657089628473562228421309759262279585680420284868588920318689200539954464624913095005419334328176310458719286728522004993462740906358589771778592608305670530613898498627103089123728431340291247480040692432489461818371462697738301672701450364696266707662666299501586644199688305503511194249063652461968428639393790247335192382177338594542552451963623264535684593315925359897684762456886613500389897370605647398064510041048334765643703224584937613862003946391526290646945185383667259089806067694558642389278585546348057576980649905853423362662631541766156367372802785787952223318956915714353803931898645872959891920439926671577387410098884512150705856420864672124511019023356280052380230594463242990176069865753905316214530552253326388965101600059960611089300656754331095738959090031169105859765159830785530174794366188749346139695632993846599106112492121779150435851897515662882670035168658152409886951868391352282319520663646714422126605429748279817535820582077559306014372313777463940410240113581769206016109439331286800533574447228078323045955834518557925407561949255340449205447107856627835880521000886356086310310137167359890725017994467450731075561798838346432159133788859587226764784171708181783733631415085727932890508945224515852170504285240664972575886037632191669800361776334868787486365513234760225348199661798730302098294857543140493152302400147387552967138918494712281061238855951350511559132555802408323378886064729878952508773772340810104422659865884610138495820318650505756246626280169872109980162768404236401279646627063579974406499843604409729395822496290236342962570749506952173970491261348019282837489135898897941956866435921364565311341956996366425140084148242169311654932085247676599100793492679679780126643571007179112819736367062490958234932158704293724756864791309077731673400905923531253710282513994646646252199102823472852445928873470464232886022882153576735673969750501614502091211032911398639260981296213215317923807449874020544462551760360743017512921995841681407125295859841284933010869626938461672781951595839524731543715287898781804895585698707509264461066155090461319972079864028536240331881826915107837956795805877161793714201752893165146434886431504977735279010501352528875689844850039017311190634128045371179603708267254008427183236546257592619621418490698643554706720998356334847563634353971378544640790530708646540206056683421093499858933437335195240608806497906716454707499242047193134534867335887136156211686687362398330043779185766599462680024973462241808551590344955992761581116262623112323738843250267517149188306880050432766611989605547994173868871641843588194684441782341328305242978843604943073165149937706483835141866312928302377542276120517589306610350011169018908629351602479121867371652756397406276281781344030340365118814400432166956476196054338140561629071863735024180391032595954484794656604009079729509914491052348720029501929093719825113278482912419230843411402314507176042008689165473596638026444032136510795237084969911383318849277605981231665729341360465756810931744477293373641889856083204584337596756174849397232404026405223470802755163198816801835712970819340852738265435251897797523206232699010399564220542263903253203872393310269564768318918190949519723652893733248624853960308169863677531758300293730947716543174844269431197269429565776428278905551093576988437493639487134192537071316916780877935559110315052880084929497722609946864584843195791177635470740244024095110424994205991546727462925176551489898181252539022924629246926381945562086302906210462737838959612276363801182460073174871778798193081192789865511821042219282703668686237024271903662384935254849128148206326602857056964507185339419352328320688866356050785247507440951545657860667560368584996533429789500975536290609859236909537961505225822066006118453248548881738678548078050072637654272020481986824594133314073046476433711315589089071496180926302253977990226257171141115895202395782278934242941359016179840314753241608647433836550239618039468567202224180884770113788876909842256660201983991189026236525701621249877318866948798475775896238806360953337828741790705756415637523720678961549607977851260620261491168997855470481131528689592316043803142721994087043762783091151737967362597783817546084353594873221934915112742134929867426699044262626369383661862346426917963492416084672848352878667449234853909676171948698189938728966529682423456132408382535623218527952305591815236622065635375717212154359628661879840568478636026324078298150980697658546878249849564046579510021334146938427671668654890925184576721482795458143110571810541902826677683465707615539155594474857939557908922911260029633152348427248499653058503749205044357417029278286624122227940908252688017379296039926420308923125297357961737525398287142408211899313308984909013804578004524883651421107433990878457287092100199686764110195439662820195398046772602921820780505277716461596698829716607871890578759072299803422238292050822604109164923957039934398678229149727778054784090969517934586194599457100823400794776990501248303639995853920853385079921235849182170550557117723362762453784253283403859022232461276826205049031675494446077420220508350204065256799298165050084026056811653799287138638934290237720216343154161039876842994800344887651886450887286615402907228806359396588041351238587451141580179282207428389418281791927901003209009269624315058519527193747532576943847322104606636243365289385975132763364784711181039657384196788653669176973108839972982655992904903287088638167439896528545814269283889391290963339700215353188034546404252930086872107377863097588790534671087605236398725209639437916862004614233696250824866785211459451443702512167002080542656830469083517967489784078421391714778310884825171341478133815886094003459919251405532265909828757421140292314520293573596973117703381723252561730010149828319649603755731346539825010501799368359970588597335152326855965884078360531871951901953509426506975344846877850532735337998359251193913412052984840393042172284867532393969758090325529034510174221674130925711669262218557310246721926388080482095765456699673347887424267736433885718206601268850505101761201604525612563477330964694341203900261725051834661195871493446273039330196297452387068600477429999367855309561571171941240911350492416925476678682273760957733758040850257281567058777240012046087648678030075862086853728290697055745008551063570997746762120247948162367859174746069534692540521038751456827312014377176879527152131257235610428072071983129417700870867735834468802072158681292962739677277166068053246100522924339312334333734344635860847540973425796236880699783394139046905205358188985821364849592539719618196295347257745404363870676512255866852927311406273548355132239399407618524114911708971633782234984084283494496322771776067459408332130983260214778308936080656038947519408455521426720172288326875911336220171917550857990740184323156434738304666774996268897663903152388786311283627823316824687032513063738390796158090423238972202584122338703732910957982528397511274948237749508452141612282522570160245300111760935881417258695601636481102774244826159406618692625315220155704058205041767640337881968209945576248596374093542174472492664086935616994314766767272746360811937390078092950116735471564536551995766130670183202904420266947598411906923647455032464868034015355644506618578858853561822986479862978944764297148799821094999035377125636643211346062473006645901488458631035976192736598409232548129682153628678805271144253710107442645305596121163233690010455768137906338450950979546188589405729906850052408092355884437630765342899712248929032331525278798443811890281171193618337410959704164789567468072056255940403820675105901365171270765051746341388974013997373617910183536979084015126160300509686759440234010788702107160630719773819187910248906707411418908670687801024712022043457772169469268926388704397385834097628686706205186986110301768887515604287700989392040039283888189600743996115779263279089762618170441771780907713142532526639918279572901967869583998425992209791032858359137269830258630745429479052213496828157005583678067052708768690156559791765893930703548369554576209948813656521549399987039102419197251993832261163141038409555889070218177358663590928308654294717287400144504349176517817613672707206366596884167975905912153164340709230290456449575776790161277949083955132664567794948428132961331999703700523006316481884558140331070316897906247912924407510641813361654305837085626073501067690845984048901392961133930219209389886736574678149174238422767625494871927320406782843653418190084544918489739529042833045483665163695573190405173853544067176353670857738563175845148072576152813715910288256240791909512114571767427166022009518924382251985685224095418056847409269350403358855016991791331322612816057538937748065209237863203675855423708806363935926628306178142007352241552465117999021416311497610345118891025374542999753107431109658090833247345362176543429044420365154645195940244865228186221223225244415020566234500025751152679975975548350199349651668973642567022456950545858469395153095293866176027243999015350527868307840301621119501759536528262533890377614267408640936410094225997353535661832769574373349852326476828207059162053495957367127207241107778730860694987705881339280071611018968230149308509064254091228561746448075547495432623353563610365945693177786478329909383775010495463239896615899819234006600844031666972406101279336687901295908178183161696700573950409395129015789488276072985458820581650018336624307678398986558472782333708384244046142470052166279570150954428781361688260989630955179577626936733755010613403721559182228882589774743576507634797077894027384224733161596937777041943353622635328681376249089652428203987136396960849453266909912455201080363616399084954859949133380031345230258772424279859343057606774284281954280449244594698280066270263219416568651415101701904069024291538214966826242435483785238754004878247682587269796043363451704130475051935940589739757560237089652091361244162452155170843056148577105891440751178389559987702678614451119164909869041654959665234242425086179614752434236111644074606368374208635365553069658067380194462498049790486261648289992993675769849982098290487875969676742949662275920909265955051512423629137367086511130314444926196289774116845662562869219093736962399089038214602281682960297735146070983861159799585773587127973176977239257571256688243113597744699346098953185012137389955425041180640908773005100636834702227568085854278620892143051955011440293025970718121650408351387332758044165023388105627933177326906075939022698213062932006740096685688489905588863468163999886512596933442965712884190537972124726106487562229370613572086424333104386044863546628267501999616527780257925439204858254450012504055600978329849130064259073551032011042327728480094570774916771680496849459773306772253512554032763274978888037118160364224883319188707172022152021190437163096763266914126660159235567255482178834022274056508594478088982636342809999590787766651682119734823557475201701066104262364592217886079933991501191208121187810340187742401461205739318757193872257457597746862218542726562030402423005821024043397234222059412501594357807395940608294694838803144605028380196429709379349696002401051251527224015290859453625928014180228830384301132108844306234366085375067171328752350605109992959601049733426028338904339655347006238417065443924252061720929381964438003029491500737047106963728554126687439623874512557845289376497010410127330712099218699553877930422307841856420820168401662039470617248509152713570880220859291758012931179112076982420918447513255729533061074818212940951120112313324751855835693411429114170773683491992457825865441491592296284841167540481392663224475598882460232290188881526796580319925915216097917635228229034644823508614930919942109992508965336294089452520716115580279067679656966882912050936805372369995079089737901871388654586650677653932211900148302957635511989543167170755305240481601669462387846754768232704392388701945910465850677463977803065775389237835926757845417674905991037883257916688650096995141280234930983539195845126987656750113904322931618073225196835721723440125526825433259293364311781070304936423512592154892415314944645500232901097645397576307676948591896789288867205307019789194892234528543279239533877307881996596914091520574091889925213039506536757452319628728643922103374349391869394209405169060401422076061519029205798642553755888296274874423448195972522507638621374919637875518070125074267570957236746885137371189164961440755518811885481771238825932745244010683967800858918220643529135328330817841923573178192903387229662643672711428033521089580640449734958245655825533921679824896775074302426287832884882061429206123961156536502721113465731803227802141006968038684449872067877588710308495290902523694093276613486438966914935332205893820304252275756288619803626525799524118548396696183085500756375300269540075162878083949666633308503434585760633433108772872191504308619546906199306297268918858937444144963463196923665435202726365592714797097221940507701208550101428708087992675457755206954165809074106866593046213691191666809684205541656027381981989353449940888798164939497854137092602356590477048491992125124176312728029523545169900990431092016372172109119600797226453733425660400103201078115384930634035047342004436001254994586517046638931733094406499253811413684091298654223508136602189084784108760943066068496314859489497760101952153578569591250232156295693450198618216271767276909457541161854858821297010887034381840632866661917574081225607887493681110862176353545749064378879676322659667106933810572387501065239245865724397862578461481644343320060073983246126755200750533724312213416701385474910248198314804186762585219338322361726619014346834319690846944584819862226968555582437163914773957901105245210401434784967976378662310675434956767838564871162321816450335317183642854352175625587054232301394731088887242280708640439493540152166953955940755233680290718083640087533901129206214673842446631566292471501273935669634249827698952426543157247175648533554017039356687931494086379768867926419019410305256467633588612543603620362705397775755784010012103131520895214706900109068636798061149246990130174358501276866235224011487708477496569087137974270953000706477413293189674371320693246006705419872812070010711347136221347451140470585673982896094541338566181574852851382657712638860804157034146834650677399976460294990951374681738635304047947459845389903161658047566483981922256522014449887959841842616692095860582486727267820908439578704701132820333066919393515702566955959826429911023299294838462955616743936633931412613652864496126673080141956840237799899656817767862480594827250584439581711533643104249339204509187298700902994604740086925603588070119031969519152630427160634618434496960062101606718197979472742301213155492411318837284460857416086291717826397247754880046037422370609905077412799156631591436292781862414174501669252930570784493508201137631624046320286249773334268090040780380509153871516660934871718438096604251320671134562661729334158300260073521739176881810773745574858608788283341524629146061598397585111629525752101844243240208842592103772598113551152577753272616077005098127608110090728812923170970193502331730376261904420423509817747815670606358970482589348189898097912820021910601144553219361657434616452191422116522794808974470699555849384448607730312798685096036379554928373928296137528441500224876924194652094847372097309098147397624060065443476091680764148801966856739802508935066043099525828232817672136223086473676371140094654611961455707489519855645750217237735477866099710602860476905319844733071109753203878228517517823473535689430148861393243350703121842155980232022197219637572482431394994785456054532967042089550104154797772363077034241539510492225495807432049932503741648228072597382326529322631964893389812208639704299242980601127888219914526302872800759910785161296034442257656217226900988542146573713808462088067727908741292293883146062690974652136350593966360927706890312456066908141018828867936474999850067287997821041355118611589301055441403068454862694402520069186635884744074215522464156900310823323801528788993090780605681529167546038677257001197108141996784488667907260107883246796616676837666403843979718725304639248067020087647322060796826727895596137355198182796727564588938704073087062607159246767947849938833336019444200327007159237276392825549840185398528805735772592343546665506487017280796276432715015712547624942106657851634186518352153715342992016179110589734409090545446820155034782108835453023280619014729197533915012042905353856304615292658556426359851878130911928177909193414524573275368173880224296505120122216163636762380156340101596529219263587976787527381172532106556358593214459585093451531903631986152161971232236088098212239283351652476301068640145275633576470329457775526724912243441140172102873068006516596924594920545975757294322501848649534921249863315617600970804557372573265654378124676159908106990667142880655542168343681997532024692238554356953391817811545034574935951297133092968081741237830567002360504444369653653542226860367764624444732080647067080276067680792757480839661708735826584696138407760455694609245163515090622686626416133114659540944185207196517806791656624294800393476717049862340002391119176010633778642027331142437059157505167158755358420508375238516137299138315685891495273510198048231276141204434141415374629027447919505633821482737417534416464809244984454185701476041704029086562831691103793887148263930319417508110948016726278428191556308907947817245288263440780025957486352241773845328937565017903503650692764821392573915437103851222049720442154667102036006492935412329416712896281994769254605480756083181330761929373189857221176134043488377548475422253113777294661638114794076428477744372350765514262942006361647372485129357866143074353598737977892808248121326630034291091191878108893796765523560739780787149306195782661625985724089027604092567881124096707647551572388064417261615413056756154804391967533155137138950249112944626943716165585513821676363113111122845495990470979955447944149172771631412079280173801862315037337968119879670042491334382682295461173665753322068234876952522773711109208839647588351011368069211473431188558678526805720983391923499391408025253832099759946569014816889386821138421729420969780590117807485785413349341103965167291164049279340578980618391949303781107371656026020340382635067327604019008045075275079381016021874906648112531716645017428265332410702856430637036078706499425596544979634129960346111113574014775813981608803946054918118764495681439350010740604570882128811415803956222935534164956246993980741411105468231695299663671470170135363613094070194539990129104844325941446184777949715394280831457128163970477114708634648297482826967901960536608851308055780966182068470750209856680939527124525490125291789013604649296619995127505638167077170113820909432209787377743893209870173304691970976730210569833171355610826387492919842505031140622910837980410709600936730144289326857504038937877824442235862200225875606938930307470039147776956475522043247712664527151573814160260616756766685190590696745059166140432811454481342286449260813813776409394012392555662684846131598915538779562004296156875441535897792894267197315398193545918667865107151337288364190756723097681058241689073251014566550329062993482448023023511186786569009003213846531490866412321139053308330597412997671711930524725916935563234844864746728880774576890215041771749032815686400111882828725942734187033355648564899286777603276327481641175244685915886500446559974179189878860515239593642990328087285836317565873885743964857381823619526108118425395537326368079974044653023305588368384266153307015745215284752955248978243823557600880663538397159327611398028434231225264879370843702836652789584020443315229300406527498876345883978796064134501475604296836642638005479054053132204034303365647643801775733601461723246387788071953298675509553595463707553425067203705606450107841372649950363752044052034922633992330073639289594644390676124763001863164879861520606736001680913934639140150178142618915628252863023145770278625471222976375990312126634381418124046922873760784823457743451426730183934649461530841483681910546957437426519953316262058895158957844695536971841372493380983399037468099725019470923363897888717899573569129415896873248664734940264739944846172952215279134623829810943260438536550974635989589486060023758511224500086517625361695272523821628249980608386244421873557134615917576934823529264483203346188388177013313696682350137831839218278808322925901368182254295271782017195711380181080236252251306129744271626933630903744903427881359490203464372565794545431729570299646509059897226183425192556919481835570438895879949496777681751150554244397736217361595294254700058702694652804264494923670335747114785224892212161559638764729662918002631116085957083838322737380365369846924042716177837602551544503816791610380558215266310282473660003744856116527939344104534305451815148168513723450406975554502058029250583399504336044719783736066964696663123804767567726308354542869403565784087926675014995575324057814153990436988456670074277190095294596253882946828092721131341356966175611206908678171355919113564797617548979019919577675718539787073338359432690198387227249089188866038147306916718524129821123566670549037364553079184879544594579783725388139793063927994427084443619838757233943115206502179211065965257489682135110179202987635041702836795325722779125169108556198091572855519193002165655587785263058277496023467144431977956909444966419364240915785755954720604384630034934665154339756455265188351226600912778249083183699899415293922114557137756294090249217212514587789363437981509984300083896954855742535693260600995138464387229907013170005146330108013946968111061206261520606626114591281330347974509804059852766102518811493103736048422505764507060917001730158359352326904297293026602395177026532265434398564166638181082511741386991750011001452164841788754230861168038946445023319760933394492309619841394619828880300411725546451291190225019389331607331204848899446531196035142741145604815997527814525324026634593455178497016478296196518507218732103275291856956613331480848727355911516085573844402341131812411138363148836334508647783625880177476054414295979821166817919757086206689851200931373719010286548473478862626905111694370518859971082876689425570933466442000106658963397885006350008493746158744072124977976502249448099575122973342115014028807095441905749747534537015342007503318278966299515458883947057009491769656885780779546642885346530818561410907531065057075340445504530485925232260781743137685630003873386514862790013102142808388149716771054703716864481368941133644290021348231638024446504346218187154806455544719459717125802283158060178194397746066961000940768599063418526783465585604088318317005111634963187205275601321590071541866372438065124913608255130018030167311478848760700633194105401724772515567067037914598411703773549122711047748137290632744565537613739859225074965271467480453236915312102975681049087033106580883554491742727713034066095803597508939380196774235153562286375814397698794130814344120281887909283413392167034462098206940333422202826415709951765022121554221466549033334115766827756528193842315345548802857523899815210892883529778457577368839629774104911401242665924663928917253318308656901274183055331872422992183653219622855960037746054887589033853183278840121966050233087355157310125977192299035102178318062674001245080859143126133659801978121160558509673771557015447594915766348517968852984032649634516332288496751880808964361863211811937749794942129741869155634467065642409607750234036408651010489947130579109271076010115607776230981611843569030986055911866348808498909651993676150080374816616728912932310299642710766263107979882592274544905203600708662030838233264047581897375607269363094170217248806696832327702626186745439658717877501464757069440497807606105000794961232955954672199581193144309711688244283900791298510363354760609926071080140264181728163502524405185416434673703327896031367842795940264069711118166182597836976134671790587198706759887277070217185236595102193364133423133423532316403148188789347087697356920931835360569043670697125431479768565789863055984974463343251265200220775149437789418355688139879872170434685629660650447944283622059966384480553928126862416795631249963294942687825289406241518934801181283523819829027852268022905982542462293785821895426101922589056365061634152644876767391453910859604553102667406903074831632886165971024722787306361606283721668917733754262717745571695049304710846858885860848756360728989254140728043819511546085374086204938811534862384084458639889095977410452279538889504704399454644601811272212471878180244906481986222556969610919964807105112260130488616089973262311813212618233820009935065610102929247728656178534233792208972886640716958714272327422500493673090848900810612053674123465816526393814059121376443828830572963565127210181478904683780462622558013370982593219423715225395990803968306534207870962296360723188840523080846381618409341542127912475126500080190564102866363514887263432658522898319087791183839673924252008936626191710408725196962174139482191134685813331270403198689820157719499559143828337125268087662770711821032076674939999409077186087762090959462251168147575962612967013895992149060937446634043494075946820887326048984347438393028981545933964733977182073648676138735369934357591475198446929968749226246184684314573340511168428344433654637019215976729202169731614505273186497687099481099450385785099251354118214512423585782691865251956281026295734607696884268579202535449599744915894692676511835825667957056251024785078236598860965485073408454827859040146575605203099740411730185874569313057532173014856634897429037785223860534965363744342984518312807868668222589077116466737801082472474362466515827648118019661123794361109222872269168293563782151880961975033063243204596531018034937282362453529450432728858398131672727671367805980639538089053760395249384351200128865350913135781408653776463678754208562511436031981236318408516191783947081623188855755704510882838740331034595155525385036721719028442172602442418897915815593635364936134956835460847052645824739194929397226471620669400666563268831697294987328706309088304721177222328490908391267356636179810390232854644242117687539581566696750021479643575482710276965840514422729780485108556468257643605254085864865307495848098568034009930762539603035362844267851565946076985983559189796745810137541086289304546007625548351560348442857045747763933274086471083128687335086060030370723583568222199060178755217122024198193688620822211926969443670207401198182886083963258026215860260730714517282340048215469546844278794141014242661217727054889816340541838820368054968819821844095442160635243584266709908999670624451710223309320954342045312680196475073332952633151513108451966423628215032937246697882389656740545833954836243088301713946518357554819106936964898519388275861046995071227488157843122796679966709545369724209815177722282292797894797537348362891481600088434770571353859291243949922861337617311711160685747913204084215609461139044586897247223590986269658702243288076011368068706359833212634433349638968640394761491355642129848342325380266873559808348367039610769135593320901680216021806774515300027616466063389852257930430473497801317830199909724254039901113277937334947962621425695433496630665099174559312450719119500170371380033543733586683770807141584271873816018348115768108050286814883176810836492182245706506380835025530520020072751735422633358632737356948749038659300183937172074183920191109345719448909667162737927098045320334563123290309625174850255794007183443996046011173449382573601690610583801941132052550132241410385351643768760751627316764691118561585740413206600553537970942556525593278513136459340189745657854304418316345662978821358639415525830924890662858581287717222895934599088220640040359708000434629817968825433105662734278152408869512728089825501511520267915898033713478869869151562984220088252327409700803078759396270123313042565412310975012548708280034019237548490809078363806780472502336041746373960129326972492788411548985471681164317632736455522727052653812558422311733555136494347508794310404387693264835041205248255690243118752169699424033282885477580826689787681364057866854577573162358695849427889178591608700902548902102574427501610912771692706101569690544827759464824190833389075577816008540112662954482630915792584266962360124753924834981355500539570300616744062492336464316973963875601608133262446424255837098288657917845657586725780658277766275579062010065434872500804014456890049703733884817991895414105357850269330795797442042807762100132112699180444291152944393846172640795045743741529721737159638117953953302659723330660145498614829527583692014261260431624724152217980850715914853696999825359068812546089603799478331032167254801523046858736921598572951549380017867425391552603260489464850945978738675067563335896917932088672020701500867486966108140488292904798418592028966028902277023927164151640241692142119151439912578071486979028626127056495155972087855746053538671730113499907056002717940715419565166438664850492906531038086058309974128086809366715870944026455372502474407850127785691421177160670249831019302899332195165989952967534810569121848066282075910454702050867902354851048573961251104830017682879955864187980195843184610105560732401680579661010169020743765701565740923558454652376978616601144139103424403838579627502933286965667474346212900451241762495193191019954940821371683886898013447663886334848257720044793256159575077998804544716998196730392827563632113545299393699730214731073050714421693583171477030602554169963577810848074673911978714302071263106205592175877762189546066615621717006986377087433731943708183305637275597598970143983913740622295347594393357646313827581279160064413341569280045590664438038751350604751991987873859642191927700974213844091910142670943046106695849407522377649405067476622460921367360576638891680132153395149809112299540475912688158507697807567099072447081928680050787803152505460530824765425163343610419208562508573090033170127581321005213981306384592631424048637994300120978698002639769954677532775179126806221330994772038829997827444743394759052315602704174189703381094404117650186925096582186656253240963981829458671369635336446958731233616120374851013734666889910312522258288953958765220290719622970874845444754198368939258813002661250325484871976775661966141503457497191306724260327830961082972246644786389501695567934770437990960949587674145580664263792729182046981574873132083546085285007874074953618987208079434806964612836894961697377637324288617945008849031598604638688517209929825892555996176950571106002763032485473140467065759019656348962230414021450818164879876186335740379066510209777208342574379570474740867887392907115931947182720538526873927630045338650089140137237530616600982608566666966803116069378752229306636591100159506765723098874228813550386205802106729731828907839998808536359174071101612512487954277671161170059744163139171748983133333010326253667661867211009554023938096460506763418276677238932845054432746325666725134720501080427301370288685364565152044535966984222551198786536825312328212600074040811194954431855244128469529230653522110579655159395438328402094243332695140940916928388110749122625138379922072461706725577305090264346702879119095666328361145461028305604897840910330200787669251243517021876914664816806510788408151599267545102336639403432223767015868452547202393489242205243268002678560019953621048501295652019383373846573794146366212287802018532296548018244981808472953647039230658633696258933715770689051494097661514248801537270533243263394489313227879059548503098221508107992798494948607984267029927897081724257893741402089348908781313253251406293830883023858649583149536387935996730566676064195631247328407885958334650730657036259844246108397304009121206916093114807380560432746442070993277279547755817780718602308424028647207621476907525358840048451449724252056974097909945220324610429839983203106125387587497793415929204778196163541007061726483781980861363004851488939879885641476037221870430462524825099811027507940481083066783992092612212582277707003776168158773592727370244081550238659461973903437828240943918440599663842450562599024918155894131506887447362714768133943506207719082958209980994605654349546806799639853358493257604213466859207137895525606832904998407139480440787850920907974332817078313356717147639476449347785618860610446193928787844180893716530398058739636328665048184105653004090632487139188463261399469858755053537739391952297644235380246848589793548998680125024772150883744006842667534650950019111992518431084827001455148880769904573301197563628831659459092332590750810270239873508734624232220995137700531233147869495348130390946636168010564642752490254365776437926447751718840113708914054792780223916468334461773078268776549660132897384704938128430999252908084933609728205574209581872350380678020891229629461991834611381465508124149003375297709484179571376579613357280354087873205817360301620222304332318386117051278781683165263305125298958792711192835670901674605070497422346894490103833719275117925073110240100113147119336840519233078506209805715418214708247535500392479716411940265485949447649700262275879879363201853932911799155925943490659013606812603326928509506142692275137864884419532378378776143846445656063409128947928286973997797210071222574013804608130389434856846136619972895076575404129327099933757227081409418586189645785325024986326381841145764975004886060266392730616859789195966957913816224094306989882310008997059701716571640225737444608446129775942191596478436814006200003547986513283010717044577347781281115362768418234452890343530583091952056686607223636134695241656109278528063435968395296522701202700903030049832205670703082515410658368621287780201205520057028095756967570699914831648402865448348690318425403804133982531503939927406064472964265933763880140259639223718718221042499464718237065787419770074667969025486402152287873874902937305553926265936169921856263364887371213183429052378993118478492477711953389250309956375406444799686218372902252618900494598104437188365384084586729898962169646268911861519501975189138884079180612329688132399785414096236668437406426998107634415473581289144527326246163482392425499912198863809856612972470386302428636836417667627458539930675781696281721470426299432650774538429376225581330179516688669594084459095870539975056690270847411871254101838408300238096259836630351116667555062513729344212489063524969357216230147709956383832662981169099897945597865305462236702401923345626877012647624538178800385721534198894377341461864159108094842323831518283143154609742269268468485320456775157291393085586942658312974847773134778833502170575598223308371330414819401910917788422389835356788998241738631825768257980914851859455246873782083811285703981242311149182024846412423715511168705823760333259866219495377688819616855213767973542279295026040922215541069767353407857727170759260801973249658238534474495165380730832756916352336089362766823481678139324824328204389471484717628267101203054746422933635564225509592932732039010078559813092042144870605187511390810486638555110888333536052467425316810256386221634393496027599087262573073393433307145076017723369076823959452402046711765483555396993936132498908227006741533144755200243653234923968957511464365090676337636598570615063505165101281217610181243533197909352421864864666467778369766192772418184845573935215028537950155834235489369500789333076330119864884869565340408188427158975220112447511193232815060276894836646075739145487884573261109984122881122917307422359751590183402326655023197962873925465258760559819668767581584812915946206074975559097008560838410902869119001248938110270623912194674612237427732265459265654605737485323512803562013510153415502402111448659237514441720887842290340978351300517039207219418691019433259908576664830153567693473606500423166724436043545581297033663408033749969588840793834462317715446923586911403531149336684875333576019397555968466595960732746940093989100784675884331009433905038387173182490571018351597823276131748972578134192372655279628828459602472148844249499539443093099294729891206020972084222138688000006730938136756038719842754471377353492293308083858998867760395969742876261659962833431553701398397327879173541815972578082032490207379249658170298180139612473883659871494682401042659988176186643505838050011734005135119268194036541138603982750110871607603091888844425565305150446009385099335823060375473577930261871846926151799899009972254777901935509104340897139018451578244557825949104020525226672312071335104836784352416847875090090979777154760068927046167940165048061773986289243650457129478798641109887549410591995748477502074360481134907011956148627088274179963777832680425358662438555090470938220786179672390685480121254087651083498794897106424344983991721271806120020614725770728262951942926833782681968532378190558342553939571422218262253135671513251571062446301959385596962082526148016960661131373931146005004134021134166284762388931928063545702440908449048426236996805308970832345774905896968496084964153108295855174140638681815220986682078957176233315594822206224501151693821880385920946651873613198783199308275747611204661304019629517777126431412590248935506745307230061560496892733003525300333669964220413662124022782900161524925045747659855657773927309040069244842760980321718027589961197048591537854395096797044360141405346519338163153547462358832707612468905581540411869689995955016681041707025920730315611509416084448586964135633055246257289998375156442430674617643261292059657318429743150567528145192729584658718021438676892471269824099656879221450818703953908885052875447046421223609252726315575343592177247068472612636473107216693005295125245203454549525110361567425174295898545819165814910720676678676439628891009773049274980945359311022862587066195392800359179536244577058742544559841623544877174271346365262598266179050780484205891724843201353752910416901807888131130701648034569117795680584244355360743328016487019947084535066582835146304889094386930157263806519093269547509038879310945837589958680753169765658512845011333289074016708505459961374991014927124852353942115395303617572629188146012761213097511251113011047250854326121725699283114907778191850539836387688439100581873728649037904256247666669496057671317412951309871893079842792153273226135568491600202814675362349554102599051103652975475003279906446008350725035643720858730291390972760664907889332927462840959519547496668540488730665243991189170751547861961879261892115607497048839893650783974864290650780181792555541183597377819357086002270261649479405213344766225439774022171946055202814847615317675585666704035700008731273887764924838117461859218486068622628310784562156545556908610588376253495930342545031795186860542093998616138607742522540956900796967136702145346867983292298338539440407430151732058137172683908062928225992595168607043573054855286161441022424470331192796031918122428492422728782117030791709117485375014973862183727948834526670690235207240810677306752548564587888100673784438060612014631383424620932118133442500973498373131362661608198454798856878624967112941567221616482048148905380791518738714429932373215443902095810649168316511064064644199597682588016169425332866669915950892835619285698211567687822078519345432859976027487333812868071825182148122831119191398976268450941759079935920442159437060680486484813827854724961311887515099577868325391078655992836558591548591533742180014676437785266677569298791787890115606291280460170982643136340005727744394347069616276734103945930413421317767373956932198437117954220512846478001979534527600251920692134312738222084852389561974769803185491912514426647434683793756300213219438867328927446907673260469746075519665959104911979437609972843682657680181920393978279553363840648909633155676587800003984564193284856478540994106349118729384111130280876638880942155015232138730802905852014986942093453814737740250312285489978948642122266130850624359785531173740858604925074441457935966498337869649999918147323944401225426449458306540368069942698942890757235826085820976343168054152812121176890413552596659182815800976410015824782899891874469075430950940706266928640556055365724921452225373716340960434657803946862189931053104033345489305210590934453628611747186542531081164441564587882104775822090593858736764470814537489585438190679395756132447922245602633651237146397212464899595166397795424584343726160492759826793541996122562592566150924277464180235815411180057610967479383418861882067003509827195273258711475945183951445795128230832038849333693264286990294185461943522792693800097106600560892598862508543385152744445008768532832756522930653396552105622405630919136216072030169728560138701805636396035794669769145843176731163527871187962470680624980708969799230762552790509120299879199995093103866362935300926976628884053299867207139463955924762099646263059231086040821193286841681076931712841998326620585843764044280265089541725044960408196627122200309053843423322011315461762276281234375802106575561238607845537704065416317989790949140297189602076318284535868014610883735929880001289302733936052194589884902927315968152364287823419636436812082843157077594085445845370119429013343852272610428800801207944640334801774196005824690671024228152344088559446950975440796435404997694856196455167215872307493496021064829465000518727051546718671022370175523919056311439948527832199339052439963857952634871399094045573246702588629057746717698307062291164011016432510807702539918742387948541295443603215760260285944435809420368523989147034895856380607389427834658435036477783177243629089246004597595288108990120259460892308962858327960236658719811053292964941689581019928578806927130617955163007512473569526569127971622829223985160063799096405327607567045858538195543073203956679552080163221606921934037188667477365420048291655962140428157109935888252891683165939687581974492634228229825414737275774905944503327282776656017897972310081224225281248269279063146676197312683834272329171338045990698139668693636544714333350438925201763621196161328441238012045001950069399549690147345231491659717765797583533416467149502377771773391220171329743154318649052525099088477843544600180818782509019389384510771895131609079713655364149976661480485765561405914922383426793083812040564021715577998164047574139024060153902428943964885009577123976275902394157105970802385040139242160572007276747682307314306440338214368353487332236644787700866569504976657132222323667534829289319573308217146196500119183185840518178830100344659379063745877443912835282487501662076388483898599684124688565255058637634954603616234952363662489876431381836712158554806691547810978140807824996727867171937928454497845182731314544472621903305671900977416198314074617098777766919071087956724588480802022925066007283117262506575121397903517002207409159208441988582022446054092935836701971110012061866743311114025310594016128915154453776432248015895732752958532840980936482925229474293063369999428273678735008767654642330418353064479360809291736008407228611603457277762334503537602279850001025811649943153476213957795456203157096244606999437339521264721454780274139456890658531733869569292394492853391544621535209355272366964413230301136461690233340201995368682161098615380303210768912255352061469270488685315254534840966689887815548825545916424907921773440407857879882806949389270734830115107558838148940708222074930043640986832206301045558723136786634345243793173718880424670502150929372708787420254498712231963795799590674141381458664321196570252412720808832624067598650417208195333262130004235649368705938734418202085935479772702765519844340410239995857638216097466284798486035386680739165857062369742745274155832381390481364215973362840069680488981318817969237736509873681229768067302819390759647386944685568556933679852445027708649095198942447895355498513335794677476788101861801434761856997422451804536724446588550799029900179360565529689914295034016352443211137101575542609085964948918883560617251045537238902077663308372564394222533653510262907787135650684916970551941944969293660432160546302520408478626781755087814597022678904873229814594256737850472434027062898499355158475919431558376522735383101765012119681351814210154929565554741793255307830097274320481408661288351138613203839332120582534191337559580259428376152465293619036602383578260614399829079522209805086988761810646965761895341585339161236218940443827059638251388847964188372047254746191874783667152378276026333767555637393636091283179326683517350272308858489006366153146932050317182551773978929362228938070582306556704611695485752046907207188026816619393799468887959359423829615310486340207227788991310089265971322844626685477407162583681145356825824395234402915567487265638114845769859384949738342728420446666714143125865765633162017277624340412675892058486344423694511088084563628754149775248528800771051863044131065862430293603660859291648985671231678794057506152053725846968291556241577255895068293843846929700239584339042782073203668497352449951769191813494333753251777909477762446671189047097668014070869349388693764297978511302705664582485957706264211083231982473170595608117265385213797330891525242894787652985517642802793439563692897820461919582236602550376897122988994330357139147932316579501788390257435138013867802218302286239934875786587761076412160831587886770889497023642099940087181742453952889493559239630710296337503881300660628650599733163021196892778677328356242545216828396902990112391138063393585146303781279299150771785145566949822022011899980967472253700357974614159131090407586919307182881575750791010128095400126125162863742190840414647182106340541537597699708069041945325001149920660887212054219639392490414064140800118100892445437003185402793868264688348338112652447863236713856989015228237393298035462921000499416456918813925146335133937655908498536041257135990926978766624431310727732034411115121061240652832459664351353403796132458206489816299762160411156090292776388637107664233413903194472016912652344967610015544614808889394607543749218467877882962428810484722873962608688848516050917321671276107950196479461452159712499931421069135192158598392704036980154646028574467308329161585173955009212065304226529434472990578889155529210095184307647858523648959910270852426198230314467028368470398393681087074666675338823665156177037016616399120863169295973471058213141377756538122322512502272450128543441182349391625685497860343823846804352313192741910307493159846787220529656254158949487673233641719111257184562332703170615241952139458281619564400876690795494469925595169517753272684722719696059036300128287474511282459517025218557531855354073632423445824549532764808690074215620082571475987959635460582542564122942618239132954721684422530146132813730385516551472974938745499754560994812023808649470977929442197332820670659963783646425329138793901515639023924874361232242985282521335885612835902835210593995697186035850408098552278123469814078291492525928371244177103568978302092329228286069239328830892591921794534319656983254289771067568163824940158248442438162623839955763999947611679080263810800329339718234780158265156639205985417852523982830482563506840254629408970858902530857809097548501076267886736785347180553934911063924982226730823535951090208378346127330297377133602639940787407268095439532172638901804483059398925891636790150740033455742026265084133839579334747251138364560510842572869438672851010852289145339882115019350615757480769176444632766305201649866807799388977374264156922222033271548322317438523054724009590133415104968525586765050239017129334138946651043188371194337962011523600156500737929939343315144091321693146307941136972768540811733741045025391574055454499870190258467815176669023493660657772927973941170085362910798111173263481782810816148719475282129206163514349045049699610056593018732977518602280279234020205047700677405802265051661263167782385790858521771222777871998166305442207692921382284991124189678100355488129598224890186218326043400091368710158197643646416641590321047410030673779267297830910617848637817230486695441808279093031759460045929034625191631480255028347898844139974110776771566496045327522005748590194985136474752867447163554552928994850904703353325037376912457866379682139577648976374128116209211386314366850676399554241438993141316229501683274388322640586892346913656059523249615497961039784346635818344688459857581047823625601358421581322787983049570485582542917314547987047734893628502138070606414010462335509574557411091353711802774624366304180199894722126077153908816769280731430439750678807826987791885540226882115663053904853181218748811943959193502285250192179672482531367658637192818803230062076654504685160993248875647333182176160454136506079165039171405718596083680497946475571027296558922576463801693802980549227094734350983505836873532722361725825695020812729070912122768414420523738809609984209738020097330990201616029734702888814280603187800524201843698802812094521352761491609879180423356927191309828409084506371258327481115450748450810351960796951362630241246351169358785805218776110058694265877609416886609148475310781996630269231432002345197686680901449739104465366728033178988109592112909204432693293648558637219985669213007577346331970863267055926142627874124626458379056804662216660956029109041510074602482811663275781032560735896880565417172904042983533306219660117609376370593642551214540111203186656057596770161229430345637604059850145907776831528630936753379550824394140726173786975817647572050541695611274932138037588654543274291121494382048293707293059993863847716120119521734670726375383272072826220006740653461383833728142307016458503231342657850309700996025455425213285659151349014621291260455991185628900999442595312345150285760595616528988941943723272809784379426961643857553177326545527767621122611956616925241097208968577357264544724279217786586835305677564766815485858250427718444608187769024521982611291345941330887894170698767655456448343895528705203040020729569890370613104115942917220774946093342110184862565472846418345277380481924070367183611436301899524605368196301616926189872820894310469508340292610910016336341525877205329695556361194687795830279253181094716938561371622980285269609969409989037760395713855589220546409588388874667006856409650021060861573685002597433240880542735598750599742348783081877824773463816951426938424797842117306947985433827637676917948661073771386593378836235896177442876865564800708429508133818057501983902936939059622335443864997554629668635586778227779708207238383426770960602327766310458827530326981936381125482245364602549982652662700977837299795392835113578355274892394161101272510159882706474776494784836645369347165878853329408608975958374353545278226853821144254314911390059124603437937312434062957432998256976624476130620047055688862332269078050715322094239398908044236554798168682217743017902581894967657395148053038214022330561621060128681144133659601571323261133754476530379887393045641660690615268335179987723073102442003614669541541159087534236374168176804982248837115864296864456495659486519874528070783626943519270480383208964382877475213077174745418846212791477400473040808984823890265760069307850107705155827828411456307579923011377326035278335078032641157758380989693770391943783656267589210710426295402551716083329029200062232494111665820942520621896813511421911426042703635722266659916085837435816507961253582798271263935612062659053305479955249626474542504252141847605459008597643265929750185185922928653532358037243595937399947822619866047515982317791285168882210737294782533792014900967553285476830208419214936932446606368140933794343079043406078861836010307292623884327555070899396661009921986878541518727307423002834729346491933706183631331304420365331123657783398417097273703113659897718267011775398775710093967852140422605785411307744751972624149514522398530997099219395921503577915002585975222095756157881345849820247265173940026836373251644918460892693809637304921883495337178319572168529437008467841657298098009115222428393746038743614637604299133454659025771630066265586800029367229875778701840277682913709466873299911620509340276858090963169721680939979419401426721298536992056902885437949000700061702210781789202416556185299364850698431624645436088183273578680614619576425543677100495402743312152082334680210275586178320969969540469973884956461553365013495059798464136920572476863259032640752411665493752310181537604272433686720861668328365875023173293496031004498911253524468002165208816537285725634707106975092852405436232302056051834238080258247688929381464209806810791444810846312940059697694192487788337812751324331329902183871658974591311730377237635073623955627210079053467507583227494068105054805399208182977626997232570843662092484491807727204353204257879382849449969319027619971684708836425922940455715033165709185169667478262784538956045623944178275353176787594740701479733197681318565483948144156420218333241574415050103556039500657871412116787612643754347205995595417505541425987318407031138468328603333619211613678920912830330025662430646182315551943447348008319092104997018875873655543497034376480558595611181758659996789352987018922095705637801790752140041891544562846848018616423334462189523526809463037493438222819082054246830430753326905087114249538458064628004608085804408189427770475244685986024550025333467113349091727745243361108226020301489626509488152316072899150208049553487380042378112200936500747254959421110629207696840573244414479523122083565032276629759594235027285087197857659864287070790499931979212343486036588800458014872563563922045660923177044577453860942834854385010632319637655169993180098359422928474512795415733856467422154368315727066326882209140977381404879249508747202455492517979898600046252238499133349629289382955320948110749634599081273539940692181037969823802727507907862212023205790576370110078742015772272544132872083486351276068880816632646234153636453122547331089548788781956967561817013191501058306760024709212632417156057205164491548573023096394872592874650088054544577508264226492567366862428088647607621798194167623949567950992843060621875278825897418685549685555971463230650495827531652060447170079455157356301124640538719707579805765679608938866256981170110669517322010856277319364347068309215546866977805245592507144525617779466382289103750524394213081240348254427563958945084129988103762242129239358460886929318550416139142004825693424940194480025269583486085852114766625801462402027149452680672803340192351448640070904574868218207652131422496164622833099951807258327810354965190725680420911765690161118452714120644021216691045695192221700295302210164781875452566872329648746633876995957568141344516593626090906007711541724987393454675915464051159726195457856285709460366640524199723838530528916006437439292462572847607582839826711681995449833314345928340856620115161315501585186254988627658772028569388354558640705862054003471732236731956776028298418819786118019795825393073813035108218902743671259105713346050471616419659145010224211067662306272451890696471096846103125812827887239936078152938649236925585571434715895313105002604464956877028621786609688407950777411544263935032936799265559993042798759693757108064199331653976713111062068118650275161337495324850296983771351686539488918523837176125437733825825505924237159712804838433986477621218174975053821402181522600514380523273568395336818072526417087362455510053625858104218516883696096085705088800232879515171664298597876529125514790844030491883986015894883319852039405956558133791828740944227008739801036103421578521455865186591125108023363732616746682750433011912783206873372002782863981548560388334476425521602928875696971924566249483571894400386929531393674678715554441472792783039933563876728216487762876156042035330881580203376298379237963001103216627205705892914128427664381731661663372842985269305304807179193185038056410234709801204039426273830138065310260383923472021069439970045386550277039015051293612573474446481685568168648625319317388076474851451214360812959219006107960696182992951332755407416378293907751880018164104781028393567080773339910754053764991771851351493919013669085373247622651727316543316142199985324471372123122924991827041080691193635135528686636561517116149243197142421662412729324234257409300599424813761066799853411375234185628715877300271811720797389907231878620924810518372137079808920144069491767728160931282405907888628670461094680625809689022998882888872862301215450530009659141563685870999936286767448150592789371588978213568783021216594102824997100873684391064464911575965354327933829867864081180954597331150679326224345702275762355914852012135340417670063364855901400125777001590054137373114584687356940429684081554942654029239605318857096777386732416921045638672227758491091389641145393806804753865444559996293142741939336810434718759288848427161660691183194660653208519658569468941452751704737507624595502887400721628394085138023695325834742617050526653370550554758946713435942751865597876733965118826900167136449252180398669874253374646214332775708045374574485564396031013516188767266194747674786620473418545484322588121261636688446456157434230296988988826078207075761875613278449659366498850958725810619773270508207287679680790758427696878902123985516716796123992848879949695420595652121785044390874248971162857982164789715427314971771291775279391020640111286640591400243640576120362935507575405330807417074231571650963837415356762981167758918761970750760408127205373005197216403980699381601949353884615255240262140080266209622133873918794680094859697831836828428968565460376203842394396794011866829483890943035040431476378064191087440206379468980157435030034504117227806870192878521725500288403655197691523369333398102174301303151808657894614269148951403895310825068093027321564757988164808572107559007235085681606992084188836470152542628326751169893378464494327969648432286691467738161811322368668166386843877828450175187068604318030928580378416498885141803835310272244519502513723256079080885404592289483623759183332069754780195936727728288329433991566274508108417346475763784465305106044019185463942099515009569661384047612479631188036568222974922271878509397491557703525007429101521115333471900516039264594018043018755799534978192778437112801154331908566237831774576406107123126487793162562232522460059814762303817514000882786880809611185965700568177399822717550390957294448824022221545713174222075538566990619052720474656716745371387782249825265376847661999984775556662739579711871483580083621405217710463479568483038700685916224107475366649236324255964772748860377733894860646174606268202686298606373269458866115129804107375068508380989847971698331630811812014552047825273222646614349965332804972927654253891529761770767616282176070116558109742225855748734231639825958448712763907780761919561191173415066752032616245325162316500376007489796004859292112895487708127871270122465802974300001529032358885732317753075102073803206785109607069684840445338582470231120855008574272396464076802788278535459008050109786141678910047626238696414245203324876617356387750571039213136717809230689249451857342693727205204892683092862272376366170851439384722744267535617503740642992524279533116245740709271971744799931131404461809782816438832923251176483436103089874769246320774910547037926704871878682442130503307123471133118385151817593084286041112090374378094149461477973181669074044336109836399727500589702471750346639337643662293683643023086623677703954283394198227004641002665335965723851223537667783432409652816824852960068812865916917647166530235642435838459368304983275855057870039957144783002095367804237738218476853891059312279165258532436570953853783138111872082930394148957726812239975008911787168852145386808714738274060770168760352136149299806097742528347171340585033489573444404159487254219324722555073074948728359774942674181957070196507123989642738483008310081437236187757570116993967600992902425844846042748369832540290146173734718959499821798848808729218599937623725240676673055128861282301443697894535879088443549869825720391810453601703299805454183496879187602305989765811866958920834086133402802827685815801515160443553176775053375637577090302153249370908021924181737560390567709538471889585688187529011463927122778439159382626021781418330236902753603049814060594267244107696954209400268755551878264206942388435237059423855045578342777608243851960540729064114613615609715496824343938656149089010069922062152877012360426570525988218825351098418482458279473777451096557722975206349024195166791987594168942528272661608406472161349367061807702635444831731121904121415114118920115570568294470429885801092377650250755882000156920419343987278251051648253724680623070367224772941256340166379701066708294676309983098026003862262587528132070504182486357616205769651437801167539647968586865085069196880056421049664741433685165325076444642210418499432511844986343972406187926362361719334027501516236450386395272429830941393509620904954630939203637726773504481971658737041915996084901311114986492324713456683389670812747022304037104256556027880015036553087064544232415207519891237642746866014913152167712028788643162077971316981577997626206690762120314951874078431827798981977491030237228357930498716807605491778703596727959536849710560383466070045058948185445949163816477517303158178832494131388014774889192292637940682451216614003719953451741359841019233297028055829764291596757237653075394099802948892048850383446789257506402508414047676284540957559069435238806170638276372904664333169936061168396500404640793594811655921378298547062182155099722916633540061445328498679603253860712898920192052864876033772692422146361908109005043042482359069821799143138573813208481842571641746922488318005769234782281310735733305949840260794634923614614995877522764367685875388885554357114129164375022032212275561272514740912364481110125789803702463621253946114496859940354097170857583662518020418260539298847688643903628797502438458395248243366913136896430844656202548966469257876881019197097561230161514231016637196738920882403136550646990941988566712443799291786388944074811497648368672695837251026410256187276483358403083328711881019035875220259673245427743184329399174676093860585327097514294332799992852703366430115711986222950461322430008753205398258082925685313046575582583390211898141955828161512088555729745945219647807387117842104564876639376926084630109672410910074493655621766630720303191446382794040853999469120936752278716621593031202483701543947692422590358128012617150626356919018113991668865571758460234513688996888694085822152950039651361073168945166239477900035514374586087654231098479888215447279238538012779702548398567056581309873302154075761204222368205287393772084905294892158399083986927424555018998963419826673536168314160388109655644958843841339956602500082382178285302393030712916811890620821971565195145723255517679923864617421338012235582485481291487170045017594543017813260637894899513023526373412576817995316925961740410538959700021045257498742083158274732790992100924591226665508583389152423868253703182049380051776625255306148654429783356161026663618362538022709901875938814948951442156879546619855833162671227558121906575692087098243237738037863146132813558471374141070266458699666674373414687426751103467047205940704712707542309936421302652588493072245641730522969210448381171064194364104177907605846502247248364253970350844434614995577426852742375511882819124892068451220718169920172758678594045365727046332597700107461001906002565204044302250603624728376979048616375162644243193066951796618816749029536867022421958402548834220199409886538510631687580324188213319787437410223287340775407225937386072656011758453807385717599062935795020930397246348621215961836188925186752564208286523093276446738304394160754651120469078901769043362828635644176491327164304494462444265612152319239723053754727831887516081265843458244060989473631959924715939962261547568693058074641432301819535979221924244574190160993927069776225238458446212578590626626879990477919969483868849618286464855997052084822969196430034594436350967135357036826424888004544064839285076435430775859145548555744667812688655190653873034567959097629604915914810826622444389583175611374517860481570012873236665185326704499995619113714775611717532921569417985446436380879935184763804135259245441788929559653828924745534624588478285143374290309818521567201074470353921286103620073980775417083041460806720345245209433453532023195593725429254348394799462010147044366087721954131846418956664378796402485112795863124169472636166996746729591424080509918764508968023619659178253061382805589063697532555070293696487075210178663968689766653236094944434784851969232407757158977836998640828841823399967135138693307344849287263931606554405286936329625479806009110717642739233221376643011240884487802712698993941191344065757800159193605544392205885089938954624741295020603935095506657332332820793483375042002407071447381494182736717257477456225183079833499451363552551670411939763052551390527747365423050466587754099374933012737993066299737102297530674975075729232824413284741373599903190830023814469604491356006477732001463547199958445722519823037867965115347607104146535128600300776473462676189116605359326760459661983754575530442262230666950825045379150290604486902196977092941175699479164869219384292054718453454020041975600139015115388093025688606659102536961536951923814518909679104761597924038332274677491545834904007764988688633128899824889487437677213744283113902197861083940792253664174075902707831343932203632419982795293138149468017231304815574859523186304052299058785085546657669753753800097447135892327054945954328878294420239958350655878112988733005808837468427744907562473613056364098557984922194357936386992409008766147557438971248721892439689189357527799259938631987565060989047655184761269415222406168070837686543571092971464733984898689747351616378087622193729469477825899038947159365366101306326381628081322023955825154866745200934240905275553030705815399155799632018704496215267131039823134357825298536252345762725271694481739523826031817629177653977952536141456479864891970787532743346061678249229492904560192092328768210236423019883274892163889911585433344053418251232692179232709834251588156870345712431327914935891460227140535036890588935467692213943415154081047474516844933180833493715170344052824626912143407332497001822720316194890502037040663420813404818126805743903338786533166603560982301890682247762117374904811975607419413357970957527005800984469002043975685060910324294388771096576950047925361727880598364531753978885905468176979583816635100352759990731186613743865155622049709893686489080925974059380384975073742968810154678764229117838462253617346503071592440157955106235675845414326861587578884519311567237267758096749063436049647888900304699533309322243166850104378824789827657799504846454359708387493416691145093329864312187023525127726235995348268891834683359860391061725711470623764532729660756174587012267260106183853379555679264784601947575949049520941767055463568025405824590658574580362163181380478612251965158265080316489823898728464695838897025010251080900926807699454988989793002833014505131175669186031028008736580663870418811708611546820247695919241682927665004457289554795747129408584852399293600525024636096750415208714439042727868325717104526655941155939310070716455272341304061935077940830786846224404746018235386266183585844172182926891880046914989987731007685986730912207297262294270028568079030840162847577863176145872435389528363556194393891988551304911441334238304707171892520810716180477397004911052301759593041744119666121410957987391412869054452094438331950185812886624304308736963335993612398555021205641855015053510580866433229383683843592548341089988445803399581099275373453414885826651063494050993986724867776843357533363834451708573221888061774118357873479672828987818079153264143112732468687921033395896600416210060938591147234303145921591462957497530828473058220712805021984776625484925503900884864962607460729044732864622644050436782738542356543378243249294159122809862866318349436946430627435823841289592073662560061653323750870394868923206438489943929539667687477105701638382208640241634816485162470454692829777931018890400521299935742134806674167068038661467986088528810712827056409355822764569141934617954782394131354252318027933726650949142247715769660027932293041176059926830855635873658761401649321174511370892083265935656279564116196421404388051552425698581634134791775408249392367757037352167895431688935102275202940189825847944072211244828773706848630274195265423527449936408966298449480565823506701615201383863008368886254871872836329542435331945142889352634808655270046597033704603046349739732753562133814171484311851645735863961140512301906102174127842574379016578649837884430383668635901174148558451822707831663900866737245446091433387574750968971115047385111344668624473063176837918345871509813848368398855968403446753726273538697718762273255083502362449167422325430335007698559873173127780266672205757681542517728974168722693390378071610899727675062638505155693279451049658514905271746879182863287743407025983531815888495792454430484627863337226075065637591752322064731844190650961967960586330510821307249849221815981871963212527258532998148313837602819252345956522134149484177681016637549650387783096565141689031050920081678124249134626525665039725620416078865814427649378940355036463583971523348863515112067357708574380471400083275537464016739544508229388393391136500210344609920452902226842982247623029569934879228570214516234422683238820386552933110199342034461027503692236390173101887390509432703653680255134306236153794718784191401828397280457190085458095353869003981492533441283809499274014262208060198307104289754815014837517784681307801225107758676592848199771415560069595502494725993764820844291920340121162669584424499850648519889940543881399709170904470930775752899810335384912731183940436141805886467466207191998391666537133694511623483029019433053355356454837815967165495409157216936458584966561725092488520582490349330825153175243996533826705169571747246070358037942371702469583744387566296103159984756685130500924981312607058456929220202062862656447628491561955143952933085525088525591908001714554492003247467367331203303054167274177789568441008769480226456620387400215795120015298293541835403459250423073585143009862214999500895781289088573906034778992611880816555558432217209776843012533258654245791863031731494808940017399016861064160644791517721228163862124604326465777251726516697083269329266478730001102425603500856633455877458431320627579211529777655514604283353614782339454558131721060565243859584699320309682185891904575077872846396321246731832539428158914840597969184873479115302912520201690662978534046206211778534652159294681385057038596554534360552596620848410261970069189671432303343067840323680869814464482738282355416707117656416549943541675561708031165969588820220244502364841460401225998077055874929314578579557145075232700267214027261364470417172221207303800829359007922578221141989005902450037198984858379316463232537789613929380601010898206380792609330140222327904553418997571675412708179867920245202550882980978078836831368595585411382083043143893061187557294463628785256918380682846061484505682300092216278287990046376350125139698592242570212047473217436638345641717642971003377933877788511333508642719761018786877987492111621022387078470426506541703428398856750823124416172038656720669576740678657574254273602680330753069947255496727502287553801861016849680538986570315300989744443149144614166908368124406257232787151345650802513673148310991532390659082316182774341359401013685327856508174284555117123241411155759397594120081564317785047869334434427518105818217551763403677699542176305221211426303872694489050935257566134222706968878311971313524794423093151212077321875698584126137138180417896267971033640059986357535015340098820995293712140278236320255604656584524765065262134742996031223554201143086694010369537007946548237868027113710269906973940618705605068817451169261894121496626452034023639000201727827369835557755217425489098764070692927966890860878875189046079444463152072870581844724726995386243753243278837071278401547256640510837055104551347526497102689846434025818663094245424822772939060725514924231640263551525153555753285703656523619003399094466202763233035196011829426112725955584802845887280488305527134675999721152668276637562936012048148483153900665523213116161914416266968050089145984437327928457056166643666442354364811191211867490131287047820911852935245263468314582683074431791241043676987455105769643520627539083885633558658631083911299923777793058835016714411895363399498335601621202006550935901492198894005302980516690450290555326339322123276967585203628502785213439195017524444609976828569792389422362375226029527223217139367779722025557963226847495651830901062092487756632399031668981357101329899327704976353816640050264247309822388622674356383823354047800440194859819239397049255078207535411142519318161168196660210902207740440759976126179278853302781817035384624199196227348429808509206318352670235067129304823783685416527250223987898302405987447970218295378499998430736100312711257202082990730792327968219478431117781462869781434741574673047683091697088151124152145747004139601892451677653399316927159421775530698197121234526347572493853178149816550079661463403748177475426994864596273712251605426606047606200096186206007822456865911690076713403208364583284174437088898741774888901979746491638176472133164823952952542541683161759391308358646688755739027381962902739632934252486469220698858587730812849546633195428440492797716513015002969229332690630400820307866102936517021153147649599332523029056170537017607066972496666560758245411639251104074089122754669138194355075937989298862186571065267638553385236124456555793714404534131619720567228574259340645026474807896305554183054082238980261455657876095350148704697490184276772366273498787456497258129151252096084900204379625502934651008478047606653962497829884781047675939201250848870368819152947899409591560981312543631936721066438361964592160913376529443131073847186376738507311657324101101794434195735661805103146403195652560456296234543797866682095806830876325262772783388422492757625341425780063461360249899186125542485377432780832161513221246387265462691419920221161964121371574226668939298593232329812901348177471194019564123491660946439012638177787821140684334471652931975649763469390086198696798133838471847033994388598066191932257583496663858075201468532093438072162544500015912018244867847714748799282274873140886133445577020463296831161373641103459023835469766798862799530656964294376622823163489083603623042882259237769194334433315105617414046467514415622164446192885933725723215836471742150411148075235264332105039002628786434391648692040579161638054054147355348564006016201948841398748912135942036116301322746120033791119089585988517952807250791189443159267846293827301577209802171165920401893877555991591266298996369905108260477381607505653663627959227549382467510091479228796435899934989571207728168496288312927295656019046173925405042274019949168938830669501252377380138275528118302870790756905286811171347467506059838919400873063825318287090435882457327886167097088129377796434425718495075656842529595089332343726883469749100004566018080245790734465925148088504464099617504161867794358713966945265942127389358741482208512786034819097626445544493547720107870919482653190389603047383961116044431083869220011151135471239098604278444214164317323056468411016109378581520335837208929079093118597312638659234216702958480375300281159241839519062227038238034799581213119333877086896069151882515234433546261545150925908200173917560159243989386565792777967122467158707533956132573180777224275336665823453584698145169969128370073863071107969550084943849265546981218394447549029432312917020415516709266138309368542835001635015552881885142517056211541504644896529551905594640033101407361569090038692925884190521149610455365694242662537423312693646933953682915874780376930192582523819032970678256713616859461325905669766883896204117766936853426872150846405720194397691049177087809413525510861054392862532577815550387115625827387218811902925566842565125142379242322230940291186315620912975366789860732596549799960864138547750840135456663414894636689577981740790765800969614757997046396728681005649676819885707801394774050229405886465623852254534003122701461043547435532468012429740454289612609317986463442319225222486991417072403079260185485977083679359549540196804012891879008112467952702435912913223930718640381306641494972513388599973587266287692823967493738718825153511589989211435499274606113008428997836824854759504933444155430072498474278615632671994479927139253307752355199944110380468621616761662637704573383499816756544217339947531267155448275562527530575342292195628786333137188331214885333080794584673683551049307301929654007146534891697195953841550181334981225159127107335646477334789528488096085929585724458033144366393341300288467630620107734416152767977610899264588738826383099841066212549131431089806261380985008142842630258321051655383592312935124960263269019721482798762977579361627227286965595190368630311737437639949574755356488686441416346218926685734055231724303434989289635065620285975646526068786446436640927213732750370248976025533400054229181270373145524159260314405452738957155027951899314844389553080041322246687464642650967036336496064087228543183703124003137586548206012888333931851939573617421535052006501396311291680560619947821128269214693975391980749080429499447319074028287390990526713873493506846091163391840436752514261102734118889247190723768399383326405725154430472655474833874353131924791989145246636172262629212695543780110313339247761591323694591652408776138751861861580296327399608906191858111969366945111668597280768431694593356648356806574368938917924550055777812065367450059088898096010187585863380786287822385473436212927972780553885746974428394197448992429694713342159840866448709936035357789191568360449854486890912434079783625248803947561253579668507611327790122354509431653218828935662388264529328767721191754624533648930506642592128279502902209417984804034003852470348397279391932612660164964351960190187899448170927947706588967216220191873961830011455562742652904876028029964477351975337472110207588385905946709772385688182617748754949643969048502850450009709640602371751618416606534494927265711206561253573830067756820597690667196407519573878018948837639748548670266477446644926737794305916510425070734620824988773861562429184452476882626492780765343282443014768687761898355428021030759516152884837007412575860109566653539368636492303276121976199181119357376628172013808935468243718878572189834813662723394555633008179780157259725737798415546597458552380693089976085567028292888401370329695775822057276415962976809530199947364782320469542749382421205488096666651014016438038141989736661662727428341001972122763739562800453395252962370021766667518259504278380559330116257886160351200299665198383210577567397147781659684739862017658198726909455222949751065079330602614632975339729730042423968629304715430271848448036274155478892240375172749382342776389626182185497273075885719126385538969842648509054903269993713851802300985881686023285358478879176152863645426705033156702819904709745061214044779809609953365920572334621001313265504517743140353307783931005771887020115818014886369650620006711135890982920779387807920840405722170285571536525064416401731759995005603886896782179759806388568433368008589192182940561970147625368354588048227135882734389998253027997570827631540357054859699714987346155657287352989346290410559533692842243986856145507017092395311265634439393885438155890593128132954509217194250222044695831299674781572696139502382123785849874541383406997812705583324895409689862792039181823858213595410138259718997298619039665548383955379688606909045694313379118171233251934422784059179185953035553302622567156390417761279679037738636636923639273025310169868562097031528862527959784817798658479940644377899333740976765277966805201466235082328120922250307861732104255337359974518747328070408349912892786503281472816917984799128747012374398167620856627828679952145052882763927343353333459184281062930405815717542272011679990603783676425792751742893596413203591566147777551382356458767201611248996207423997424100171647291358735112313571091835336626021257881442148481272765757882108091227584209911037046687497521443898793617969449535143459797175058870264396443019705825829104045466072467287738572983031315594064031893387095851147509053182461797705801659236338531368047569471939341811542013981762107963471207597823650101243059446851382956402721935747050864693633094719337887216802065944658680894259861881474166351175667020143781388996802988544407562170485052283793172126146312409689417187555559121765983624063716258674547800562828398227848937794293324592552231220317697173646171114758970252337855075962825965907162505363464393087359539409555979706072900225809641278479857578264780787533513169222049379092826080139348118667855128890122639621456518373926551123820490164386696819789847446201549572662811258877981510415626154247740280185394883805785041160776185707085787327922826623711721453541609053065293271627249568619331580292600945275602167456285351640181946509301113906308707601613025432414058092074733964401944954062168718278881866504906213548401630226189122733384802635924610888610168093384024600784436957841626771798878252776527612620698942665024576603900420312980057372236864073970555404956660751522775516672769069689613555517707096408672274375471147388838337771485588567620201866435059572190060436777033222669543876078515683147001422103716556080182238946558955672542424802960342181640668793654663951866502494708369073884240908879872730334586360396909138234539623225806924699716652985160587652066107413462555566909315226326410375702704032564161053025744286059437190329935499868310943015394906716167809109117109188904958565885298193811607586291414254089048548503969798601074428469220563972293872145779593013056829920875486181117894132709666821950542819423745664827406738722682273604704316084024393879662063998147267052387277227372372218210608117097794335918016881144618587303664672200716167170932806222698285207604123694235827294807442952611805911612471969897840160042001051881915506819481514948072333713403119137652157490936461814806285790701184332927799531516089427790598652901258379054855796496364110594345435764333866787345065348157264153136903705720331298330548684978210938089397986756357900047266226464474598441193099970098643891216947455095937210245119655275781094043124626929704881020092130342428032977145917522830366474054732977644314049359625017106713119863355388740448008546714607432946016263268277248559747701778880580750367278308620431067946564923694033978449970102075601444919660620772254000223289945872306795113888285379203670267066253121751779691972705710128424117625758232737545089831896837824838555624133646091276268167636978635819864344994686755965572924888359961940910864334571166294086032949546124564078423862067485472451159661842136609468380610391531828477782575292878026805715868856265296071249764572422249706884942204778514007177344539785634103616342809520839321639092680055144967949320746994525881493858412283017977716866372072063321352166777377018799241966970003694982508241704568114742605616619765860152411929190549564189905940727322498191065961446853123320087774834136126409481340567945047753031085466013906665307286699478801402932063631969265055347561358167309481980572810873590705769743324841931019512252454965272324273666594769257704509586653621163580939024881440624141684127856323407326925120121540420954815270524792887490276813672633647881720762323908239386329271015818174978951135401686811584961903574723140188815867702965680830672102157931707890768452263558450415628022219248448583309467967556836920015158504838912243241042057502408690083419240677803138168271413846581428274663903483198000132179353449814569533831282925250690944422993969165841388890869044558536192766924116391825661713204517953511806811263442615171795133412406482226126799474862482661907652693235999971599650009338906611742915093904301562398941496252580243506950279923784363575678083793234976456401237142111332201823748758068763740066791924059139281878576010349709020931199998575970712118758112735175322009516265485150270305325360876994304525544772641362462135053983272254471225671644745171086566713026892106770837122564495624584385396003255513739187864746341971203142349054295992071558019815369009442044297954222441173365182762226285485839475356630721486862177172269570745057678526469320676271465943652319335412568899980290313410171008078603988410984495464514413480997170967538493597127083698205949581123998010046127032175230147474359768366659186019609427284641928101425773627046910924063957025828307714248863589499492647420107962162432060136306364579999652262381736258308634408149461428343721587738031734144762775082106748842572106651959842210905887803977147411435011303672472765289451565922005341307425203276880427832398604811760461212695491651746694911756290993180629849713801815292810147136660450090690105677761148799676013189760274576469209786234364835193496494141927575127500314632872064908651243484302030932854402366122313064347176851033959451205055775315081932702464709314090265422393931749187299588152678286662216938076095340033581438960954947009943132300338784938704689140228609953201141889685952203813888956619382178237267176849523793112818634466606577816692273072417487196292817253787885836079720855490968719806739280153689200413121035963644225649593763166717417374165892031763127482808290049672594492690782383087833221717861804335040845612905683159637404437488799880849933140200698471650339676836408442962444343793455436233477307346990279200306489724684386802081042356060215907235963022004929588088843563220916953998471967992887485569247235612961249306628404792676849920749578446441553853611021380746954313607319192340021183837415796477553999993224622308790143268231226397050780900776329703507418511082898698617238110976507931087735904345302822477721402101517629577226386022869245828401789635755848949588153186336093391415611520616751202240553272780146305460625160206287590705211462438061025120193748527370048013732216355489651079275742098304503148943687539424737726539005043905796938167154996617805491860508118547098131580641163565725084285166018807451815964285395940001233037974125950487169631812207870111134996151814561942864351369193855876868624724601383081452125872165347219396916035281588118145262363932316920376015013689614004334009876308728330277586409658980008747538579421499511658610098301039593487242187100105964759730732838011067963804476524204253371923799437892720375084307586572355796887128652819214733443610030655719930293603730396775837172496590740980573115891521681349503485926531163388935349538737573371025313708123219646584858321581198765332727869159630154765316132497299986788004792532647335512947609695345394593166808018703680710757551773600698846992552321502666369780030842780873755878653183096205060881294204379001941394250674726110726644779162929355760948100018597251563187654426694271912059021944128374323691745341772735719140120926958974597581541690853936136922395660418737806256618804361112523981981340556053691564169052807471500608764014871481296489916101147699315536801592252726193919957511774944074469069050135953465197021979934548218464098121972035372985380590034979009430240095911821407074323588906228182726441266066539758971266561267680381618153845199496816494452117742280499997801854574679532393609241647030369057172074018858110165435681870911944454905933954109671506449490818874067238895079213108701407128323537392564078007519471579443381987203131078029347294129564475593521604957788274916752736043857737528531514222920361972149246471960829089014967081336834949129762769159140488209308425496170071580566341396014167380258926781667766903461500110817212238494850604941863763587855703900707012609541402343079579102615889408102596325699074702140728994404766671844254902982918601825941302749013675818261307119090720074058639073927217634062156384182419584884956854048213871848330065022158597166933984391897247984374989619933607602204678737478080982661533309604752598125203976911287541565240552694211066920295613060089859478103006669225850531517624515781417500150865402877393635065196855133221745278016518945697892966978446400642625772578059794273617241842661319518137770841851065798507494975705680299456095039168697469461171322864696805475323829967064363407059096351230036883369116056134764353411044074464948557546758915224496041620295687135856344255654272956388570531636152833852238795204509056906708091411559139516416199576742386624296970984409033225627558841599875038245052541336593867593966853748390618252994031630587426336127061623691299645915916964852696649482993429879250913014705745890766634190648749695160882581628432611506158406117775832555655918937794237453711839494732435760449889816747680876247445438343364452056398600957254402993246677155082056383639530501895718779515450209953338756056573756096667931721788084437397360670686559479785847826358259869000805958019841451748379736891036132378089094341029838347955395001462620945170982489018000092834737272172138185145046353378194658429240294070917061025636449919342102692382193266249486445238009926539221915169055841729930982671994954162242925513793406324448524883070058544452132874443490123324665942775039818435183925503423446681620793294876077673613151376699151570344015303624119707686275434513908279835183093661779907933450722159085423694686877792659829565793368941210556672498733128294753249796762476577003158132346629428281173380694784213256753543076413511247509376198483240716163942201514214462669700763668949038055967213648667624775760941807760436321045985297106844084126327822456625893266863737969516876598561663876032718572208334132434341212597009521262696052058971233867491563043607760044285991251007175265917483104296399266783604915941360842993695351973443923034581573867390285714921822877981657014607884938958890612234846862375705468710390575809376026253032579662558816225550621091522860172846144829709931227156623527015854470813435561697463092215997505863473079803736201578527311530557313319549889063419660862573935826433521897278544125281079712028545481641828029353130978727719108647822979429248314738200173295669010696684293122145846411199560383276777261468554857633928554736416909446345616507898157204913843413475747100247295113554434667706558824383817998328672105219340683116649769047764794660812031538131009330509493113122509590784456314632313682661246970433127828788863667877000284543442985928435669826206017848744578383301674215960210421982155427867374325933317367182876017400085289066688454459756673838428189666546633239582628143971045843956898488293299082817237279669698088954108864258234775235794676228764310179874464334516092395136325370903766419806348146543138218311021689205849818039649348677334281860594011883942920750117884229803776701473018050842057570460747031866555206794896496635195400458388958003048349150543819434635976745771391911832204778562881895820001805059211074435304238678960139734672219405689580148165530189518215067616592403795294875129246712759769018437966459483284520927101416297144051205951279929077642307043763297685306935022499845774845163090171919362789345667725742915723841670659706599581828073544620408931829102333801545104256930015091324683316838412207048915889507554459907934410525343774324281253404485928594848089821934546028564902597369894663351985940779220293303546877845639465768805436880955854968272921534290526036187401082948207775087485004313154444778204811171891499089563071302401667154933219614925261836504214843204733720578784401228300203264082858638034381094314719079643634865437354712840799200174326989868184290622609655210206792237402998558379128205104584169655112614400930089729610132538628210304443664868034405924940654511797242560778519401086808567661627320245666108998377010856548013354884725468253786541080047889310268822891919679433406186179309434859079087397899313728773354574116093025307207277737805183064967819482389366622839517085820624079677634704443867657573925084324175894449464922641317173413151049408774332885531206981094428671045110644050103826055425574689062794653457826776478735400128533152110819932534486156912566676307842562864982352524390310564527320133060223578181548683522314697367763143942176015638724960465978551509522226410711838789555325625125911629252259531369646062601051761138031953291761061559593459402904527606727880362444919658574776552818396792226303126166061546786258541641645433950302543208846045985764650354991280138542991578764722432780532816600698859399650457919972107074857435927507193190158095809042843027564322211510152150470664598388556983006303848374571539912661628748856429343139558283468840420413326670522754218444670373555673994899364962875094427797187099732364142329667684366994530688844375417793919547112672524421369162180700653650559094759825954692859789536114720742979556411832102866500329358242327540045653187309406367993365142500164669601644799802878924945895468361129228098969498935604588576721849165711840679489997978193102562219403869523472386611080505863061741384231521993521607096481882741391507690411651766648498419562941614216546745410617085339101201122475861479133994903216714565012141892346818568181444288146147596947836662258154077889336771295323032491205241629155577661164741160151337093922032270777745119822786509473923423333913771271426698115022636339607464941386000316712588044468796672122195147786293139852995009928872455866282457759690007551173097075739984302532431813674171736498425329850676953629759965785522633105578408528630367095035104766541754820238161777051649490328848517502939415253716856035679516811398553354731480140098445109815034056506118885051246504950902085128548811416705271025521111744898626203034355249830835943636576683464658695103313917649745048514402575974973123766730852352444879637623410760977286414293060587710719634726026238942511141109180380322827502182115028130307332576825325090941646356890600454679189172260668922657387394205221876448661776895722199066150646298604745925088788540661630539452907282652295594725297190046521590030314922860374854820887177999896535612717198341329463064547498124652454116051610706771994196111925845672558045675774385656523552677697770368998641348891309679834818010748592890988407837856500766982512232308481202362847268659770202231337239854717914319362622955040265069455274374739475401680733534696027305521928057022484541488334991896289470687943175744880463652485651016526742577070848669693541398315921867302778017439649322191879752625435230893227823018868943166674590575053982416446017485873279314499696251125333175445151309643511659266003947559644638336904688697137607197381560308515195306748198937049661155130107866898022707839442883803843181518159131640196530969670737771004421922008718412632503141484480510104254439468200316013139379420990846498002834136618185988367912218653680486249027130089058365831531751619894022245992304452306642143611733266769036388117762248758490413448774534137437418792396360197910494175113649811532660905953469421115950320266688353128009410131509825306405667036152194811293156057148455863304293113935473922432083255403436048223608427315044429924705368343995159219849389448865780890646442521205218176742521399463964339929272212854665398030313412548285931385337906502747587460198731564252780196529130831595691355534972452468074386441596237726043558198335138025338697102935276200303715351918064268399861559398640339065042162719364317336003048098172573172092995888415872810978118412633592443005824765341570179642626194264748505303032980606838067751631582376602113772504943001944160158379911167652760855504450416163923300942877183223015952299077309510925758824537622568960185581135139434292109684042608341174715698528413518539166290495492185145492714127140102788266672137655732623604681196843265562015214565087512522759492741785191790781022787085456692003318167642530044861863748004082003275839612623976450956015025770053447593258120797299068119192363178207754004478929893213775939138303670021937218913333715343194908796666084940752739020801398040111846347837357039530509331476116462772595593348404595327493809281514823403181735090027675264980227504137300607477920722594774319969587334883924777038834459572019908750409294954976006771777968631891894041017910980254434122583570139691336728840712639485314661418336255746918612775860819573819996956012552764196609685179825219611755208890851937495541961791085082704004198754041237553129409900532861672317690696057558835738658252156241563966457932073441676023238502227971652620723739981227804546204120700006572394918876339391950316473629218756226675589469094487919326266837341142774074584016596937139851447380199191819695987840636006008922560322794672556061656089424595380758108468688383518726433149173442459376680083570649647423294758342723763600272546442006473186973298803826583964781361535295101744953637568404605403466453733297803881802791771123496392807701621472294780345722674253542623985710055640800978823628353232077748603000475808274339633929327504697038651196751447119404081273635572458217923342307093579292078996402704894602933545266790002404120411085689227325819192468802155081921540643217849192279147469849354598470081303334999160244178326694478271692725156835056347246134339262864209233516702359292868911962270132576008158918527338574307152593653987497264546166237952116731688922707723267684522714936923145413506277476519984078590011773338816798519716957083489137418875610841303577981785113199935337665101624843834161088744187252966786127184708457326447739479469551052183038937473684666430194080324612197313635406498468534465468991121484388737429615475987351546695921028691915174675929783772433975313367014060842441894088040802532732770910346843115482584827356436863755483153373823297419419164411223618766129160760987974965672070907642753511827250179744936166360652542926252437199555068600267971280225842556083826147643378763713610280761398112550541144906951546747281282890619872394037056015211835085592044526370078836883855205312560140454995564041124785693399944664506502449777140445056724803950492706097337692670921607772227369322682548624352122420987077463942898543128499104630370412741964603367066927627243176341044037381689773300059343424343980175248367019196275842410979247234403539820880583326954932164693366644844474307042365680675374048199689651205102034666056820275175508273794821120570796577573661748669061060043914517782299587889128174746644957914259367132504605623178302863195714806812468020239663275009987694481460181100207431780493231931371507906447321710202832840864990996389641850917354973315723700373440886947354115053604288493249112756201502589839064448913601735310851375041204389825621046951079878068901894142882077573583683966935402802983563675926545629405063231350770802676925833114233479037577435147347238531273721137441397527680081695263977489889800558234872731313453902096498811059514751628541031508264844342519623601287936121310479046791710433499621076541405732520153904131503815754323468672269598608818720207207964416954686490442459575759429183291451424334848141801208692534704057220659434028136598770732359839976062931943173736055685001662070113211759177769936300017620973072491025309459223558159974043837635841900541867237256453059073259852031297969618654183800899947373852359531531734452320912347133722758482020245606201204205473801771603742976963890412703717410455089472542615656447349733674493124392009100915475735646740477449300125851268189624428047400700073522415182931233896553131143405248787369121617812643724281899511233275617440403623028697087239179342695674190660402524646120320342353425379356742536724044693640176729194665940824759144836103873773924350650523002936226069959305404412676304693058446328958476909293532264513961710784596772373839182974522782330364031985893667320124878735312694121993259800334793236769365090230192502762581746041480808695020633090339809111630815490115246365947261295757419046986162124834207077021253033647910391726225921733500709943694344651148662224352132284601879962488469920689150243055531775254087953310856597045524791441705609709469002640084313124304472422336407988178806557056850149142777909856552613351572177800891274163361002200431787232743035625660848764861385080122129015693685225500768418110251736849041666280969994216267178472489720887781417641834192637918581205989842405436675321637243192736096511684411396648585215818471381025938522494168396259003933387418989460864474435994883969887565716780453751224313737453169368316592099830250380570801833499688919427306236974227643203387116872062748003326575925676008217584376008044734795573638705495914238380917944939626313302993120694971820927739930283051924203684330786430689597739878104911066299784758760675301168275156784232028361598872220619565747452008613619738393952144952688393675563055897626852621566007758508049015779681937559052666435452066529883698364380294735782510198558374271247634235703166972972706995554454865376023142136309114533462765931344110378195572704825473469792126727149160417555016554211215350669341570135811296628988658172428314931929865884538870637648746576110913786942449211087063335067054464628685631879748399338079830265345717883509825515330498041370695775285986256065821385505615435412345554211817218385051787840011510172550289835887316710508898335992839411168763318097722396620816182222180971483546214373639846276653983142270613653646635441829364736640334931449057694302701710511877034237087038034219394975840250494392113235882963037759888969160882585328274168991843501266144818483902723799253607971124717466831360436685184848094524463425602241471406612478349663072128760035775110618611151344731935508545906256179946395199867396210794914533936815341316974830173292673575658335766325809722984086337138858734078536357189598435475406202231181804897064842945198569597134549116438365582390611317746047792748557256734272590987872660840994742106034067298463696546554756999602565768957643186504281995786088188179190284491260461106837957273982389138559327597483094000352433938036621400016480954576491733834232302502686732118253827147563549302874498199167469277409358314921626041195658733253978603867962211192011545026431891328922786619757560114243736995523370256996125171239026268884111906506126277077916805640448590092719431909119367919102607898009918316678264510755992266448664088346067058412343228070349523177941267709745322144419094123788042047815998761320176234456641611112052864422786792274266004594891102042037392173845982265378450954425769802803980883633827409480594403425358949857052546998570620486801113930336393921016208042422818456783212386968257883536683957238095094545600306479523973512566710858628804852896715565009111272836348122157241164241260474858658878458809264447139980852541441853069403570807685350368208183186581646989878857418001857644351706535903970140277579844584010300615010793915089756636394429075024892187500148142541330211770707477913509984100976382910959368383455030271819541239939501115406238926606344237314011298017735198457005216609590244240026367091200257502599002540399467673827446569086214137244106825110199916753485106878918920592413017390296081713752944947815899100012502720652187316865852446481074420014617655423088312398404219008512516819616308235249004943230507502482210292380481196060472773630179530115794219898453269490099200382859131140650312771989921428680152677582905778090433502852675212112466630679478275024646539613320851803692757898207754103466316033438636925918905441627446852405154610235643188585021296704612788362251272383403696250146695192529823877010222597687315748210135712247916462100106554849967018220826987390247300792369605716509588159309192116207437384027511085258443804511402490653624311528098692948409309875956961044722293384211698613131973279969447793551427943552764021584712596790794874684666860800324629585653793463079856747892795092517381631119366242512926113269170074847154855982332472549589669602195004543971198702619456375399957001143759563073017716703358271220558009915722224596437499441989593697458089132994217545928875712130972281062906676024516608796897887464695576834421018274891282820536582098506028545721723912086452823838029456373081619807617641342662871146588719496692148866896102139752625863074354029273824720222832097378349108672045158260310113590435816786444020466618846203705115477728722023256007060644015291809854615040154670443687681937080407424461907443791099103211734066271161295572786702590895815175691262986151990926287565383141029063115158542179230944814496667932230158977494683543513781572863293352701581494332745298302427039281583990528709390122232345099030111803522910979659241344013410276676603838182774851195966978775617620424469240317743120724205264760751767696558795712592558701266727621446897638904967938511910229464123818839760790642271582158641256591365138873287798434564505175566548676389420775157417457744751399285012062153614896783158516226368969115348283847413963431238651194950671532387382632088305813723787923994746179086822130761637686908749223728449062799855933936631796673756901999506202390330926521843146483473815597103563265653739651283733676643955639767739653355303001580442188934773619195453512491325151775982913341984233337714240734502391848129636207616142619213170125977545432841570569864810649508943500602245575228514199458916973706640736347127955895737940539411205416657252396025974812715848213789888291174229471604901461304569155838875423396711730869505202998468836749361536553172228193736826065571511674539283493054921827969601476885957280410382971323462037827768415516359579514895288139710886037151762404929029349871659945937479639708754005348864086129539960546183382642671868973994471191084316332940698148643320406054993974353777222002360000616723565535410862085678089347872924838267122401790576507847036470278161288756113173442020852395621496572429828164717345799653000614762193368019771099663812716425834345397885758322820176291385868953256806629802779884963047938218783708647941001285758593290464277544293079811086977458784626692746760684637372967360883180121442722727610753689617310201162220416226445102437758507237539753006968704548773719868137280022988062802986908098991139160203163989729732465806429403716772280837805761317036896735937111291901540919897798333231098155511953848217783083262219749181467730286825042139125203105876694838122357464273028892403201826342390966308869789496423957093854235998558416965889831523909961948578441663462872773974939809099540890685585000274421094866556519670295507084870591104138545266598145981330982974839796474345657519480423318722013540246478626958260148985217401859203622077552683418384123425941019949398685804221702086033674384928520798793907600210486640628976073568918574813155182310405983819534025137129667141569133026518204471549972957440203996520265638046987603410789311999571062201391503328664406916901330009451575693927470265664291772063501381582313338280706331516433035211052625016426790002463059939480138778519930207194190071672920331273725668822008607662742841330939186890660342613590516989352738015200990930388212215249901250246027422913827266461363791471424828717290477770999658242832399919079430960311092787937413608112515489645371497444107207187178591132925909887639083608834284208498367975615439386820329194123458214765866168284576699934747384923237508778536604153009448309807132987424586587335137040476158849104484881201060725152904949046403466217815864413899041710105876657820673481150866716330739973588679976171796761910737638988028083859666746719487690880216584673615955995575351102659917417041022874377526339448610329532398583544753812612699655658486610541964192212692422673743452304102395721182337163470681404701817725607034166744611089966266393443336536870617067301595430674908626068880150899017725390636460531317433915297972973283590222669131709499796472078103025961264168147912375123912287987670054078288031631905355749892493102126803042252801745122111255724609203918425021512129870879866580412202473490949723935107960862986154742891621183751564005298527837869534226290256364609781015686519382374677183556519657121704789961955426122191919886053706906273623901518828440008521732230083858500206470683311280729703321364013894526822306766816348254386043970176583842780375792146797996105476637761390520368454558902272631317635178789940311453042926103508279301909111649592058518931912796493023914364811227903627579672673602792155486653670022707681915270138978337304801902033537410018291487266408751547698884268298990997278744668401219056610743582741664803737862181999967902006547819265124568389817239116840711242035377291824143089902853941741417286483585975083504063390265545552665864811246932490696285905328561422602654970638585889785797973453252339271160798398250030927304994151321791682922863976518123763683961859982518487502014828156231843090628739042187243558981788855723244179913027568300519506111201174973577708124715036416901850971356438805139073762089644437604636585618416342401426340442367547794936789835917684772883047135176139519335115236329113519616196152194145999628811485875195624215439063846306171616708711156516013611977138620448086120698745600474119752532116866455057926724212272543705461562484900807278617971491420181617488735597710488593057925715608437988164581634809986458880798455221103017272540238428435810864211378793236293566029868107374107129357807698583567606093152167664368061273994499126646799616236798160039766717338581947901982298870624083825414372543726033440040720399840271971866492482702572971442008541805846157448681712952484198346493118410183005140364088216066980841682253424704645189809279178154064992332895443305763305909471962108354698805018099971915614640910675691234339206593836982171837015746832185469752501306742503298031765373938902767393853996782223234797893462636885081313824314428863006480265378915279234459158073031688809470117983281311768528841484007406487277416526868644110886443322934927773500676931976162004646039934291949391773568738094500237929733428310061625847918698638002065745137106236747848478477600645554920398121622058837991125669961013927090729894780430589112163967055556920721729116895403174061224643974264005597336269829582540270152873052563710036964251438566461575017139170009696928249384370360114880776897766858673309568452238655469345658091666225636782789300775106855388646648001921507808991525103985822156907424983649245043488713606862281748205625070753529022954975984738659599976570801253036220861681381383883950607651548335265943228761497887944059503226272108600792909159937133257446805932852051718499012238596476918413212750699808234710780196385701373838674082107382690699871378154265413251804546812807397862760256872477977212576534107111779025046796508191390229599059382912874680578505035783079530272517213297462579879302966313444324571847457057723421097501793135962395793802639861517738173340702766272910695423557140037280821128781609318548736071410436683370795498395990125834629437396142039014836507552080345021947970793022376218001724778928856847467794420227063310677950417387141349472027440249085193442255918599832128521445088545303335305219067959597607351628943043225644248906557097849522830725060719608033325198959027679944150805419094942614421468387691173217166088274710074311543769438834535052702516511164972497926844105361157894501539442885882193607393006404401032940184818278240408407479245022475114949472453877648590764988669787733436738635854898040964578558132781624246619909004927614277743281713969408982379753000606706652189125123366935261383283070732471868913124317556487816369091376454050611485795879321709700557182554436599475911350225220254944592210930340144187361996174523069051879427100407437901539419820148784038912490798049387656370224844421409354384659288785798564088901015637070243274691435939993920561283924805321368763138677179003112277883724743301643163021348870274827940003045303928791595331116571282263324744554827795436340963102963143744603148533642495179738041331412706054858813176988263036571563164131022287599340083191184329252551142392657617995166492054995222502011503600159921344667028802042871564016757884035077532674228693769127565188499870502340210076568698928670284570485987709722416550799583031382987665804053761019318622667832997065085601455618152771482442732622919909846072463085061156811428111494071963906655160193658497722194195183272573319943025987610775918378396449996726119671500293679825608317063073254210179301129298541139523976321816018174106727396710216269986896412001973745335637497093762115840240103920252922231677030674053873833401553379796772754690546268912031071359511239800376682734429594965117634103012030218990156994024613717346595269919979009480379372957710924258202037577252172361013986149401146164390776930542798094073333067197294876317368479143782298903077164042609037700937965033390618166142327703663004435748497897327155363969120231924582321418582633286246380094643136111703602532263279671840077676360332944924767404143778511951118760834852520944875315216560693733476169819169032728349392210390164614468753500182044537672236552399676316860282505133515833538830442430949327774594268059410359252537005728372385863602875070785737115380319801314965222505420616530268024009714669452868055650269654512799211233123666392467802941721314468978802983212921239971980472033958085820144436222454201388987623986085263192919958502470593959288869584597351463396670022915228787682726174696262182032995472135962445078495851269266779894260101172072568642168399048341205311798799437858262858624904356961035839345269875337005692549578468613921194789572719069861071840942804897770278155162781492461096716566809724746416869854125614193877128146291131736128662290663198738009405005509307374871747373975388305270850204829792664406390012272780578395196759511147288417044282561296365713595650844248003122210462147691511889510384157274137574917211090464017572620699282719396886713011147027822207279797698817520602361381751895744483613721361629624550879918231903428691804817511287003525132526075674661424277379952606156814870818191936437628589907944303495677163480405122915861093426606963270813682222831135002763807678246666695109596164767026192201794433468877471753290792597408269026944548113437376876972801733862951360148025384765183179580697021754305177084444034748697298592362500020223517405389293755217442913614052771991956503486257185311110123977648138556585304898491695407773389037991645630085314574381510652863007683310036872759702012744664070559143649404502321794188387382067283861283762607071835468105112106126398414154210567407993232925038747340165460984338362510608142402690826456815452697918169324100813286773915207067237801853562300016073821753390768429554905481376147350523920956835886972859683914556512894988711776502024897073800664682712837405892727069905304088457489480532969641454756319381457012904180552213970435062397757583549009202061005931956293604477839489234408784674601251868259247689170791516957645608424901922140547733462779768620272123150007726819199396989558787943054477375011065729526264149872867670012070426766206693693302527827901859565853879586824441756873491723395976729112478022302376445484116994367563477560998468033553694590316286252803444731973295893899340198924425580756085792088185575888746825039920672872154579729377812760074366687038186124230304248474615592305543357943134976095158368254531823287218682755819928433985018209351398622759112997563861161635195131107337450838770397525665503954812494182856443019937931834322311180177924144139928766872598504254937206119243532780997104341908286846113029139094296585923993625320966795237207375566876303382542105835438237357168369725192961610276549210152959274263611342276957653529959805365740993578536614966096607268819100503499063456830534982462781938207539377548153534160638070423372766654757378544632603030537379701324509873520575681508513129947118516803529425706253195196466563403918978856983188413654188910882701727438833490761454691906453311772343454197137829638206781941432989718750164463943105936849196004261106275500080751741986172053307174323080696156629208147268509627973582564467376449369433176996770654230868918444338289202048610445927878450011486762042874105887454824396808373157672412031514849660185577928441423349463092359404398490154648963024364157061491720108129767401153199471077047003821228611154370498176875755950192942389247495238329801554664957882420713468221384529966806687015868367202190661536556571937566678835570881331390917578755086669864318870674745047577776683227683643991616751137740756146477756451545346461940315459513434205558393559910567563393572822617882147202881670762340769370451968083397606582228696897946642819859545799026402385696347548688172170498489127461072881472115575399755639598821616674623360061953337449209943920797163470103933934219299022719220152045907263325717844311113402000642963406472144883554328040060943457488133098333279831821516767034598222577495986483320714555967019136198355725996677779259242971450762623053335512797744325320849139862601574484161819832530065712564754635187441584141766074451760140073551627004902911719048943267466283818392167028106196623015960562195741451883445929387874669351811725481979549957200211335992586336053000146487846400821385852964156884100572142439134268252251386373919191836826320421435450428893038629529299817832905195989905363891166167023065616319817199689443607294109669891685546265587679267470165233407842339291861842283440276355183291557962267475831229603780684104132438730269346707854994652635471545038446329444076686363963681852850274754374656544535878670631480039241764923368666736768465262380710753599820463585626204430071336354977198073734892008779870603218347505163465711848141476420728285845918695887982033426719694083950334749496882561330867863611835747396102588392512711598599326018389919805887202351443103322833282663927232777160885422864156221958017974686791785792049385599554480832829083816360517964095981991076426202461167035459893198332507044376418885026616867613917132074465259443951331514802509284683653573380963905873742557419395511292598514162134318617343237230967187205979968228399555293537961418971946524515226944760383096967764345347094354514806253172179159092029498202000923190284475705041260318656855812232198682961446209140662434045368504075371337579934370766451941979180016685641253910432302726589080239150862771438944281471217664470489170494823049634524977447066860021902645589847060977140060820497099001359799877554882083227311764243469803161330436956263835431901301525389970814222273235200450271509561410261435273441273557460159345688601926899697300796187963157579113660883391900289075867105577019620873312101853567337530347088430112168693860857495483906695849427797477206013728411300399259766321853929087932089158257124021605903323104074957586085980687435768435639058103822180992554369675489535956307242494915175834499824201398202126045936200501616828263929949928898543962870723410995683018939923679417558733646554029045065966424117008310919810353965533059122371401841435362299332913914267991482715629233755588709742350353299488805953439786217547141101165114321804126743661934505326758001886432519448985866802763914147694136714779532647596426978492074988231308829421558404402636951533806233359224624617562499324311393056753620841937116825989791323765651477856574776151135184734541172357075330386175794471434268468081698391372556274284448536457628217295858446436282685008892071409773855663236852802162046923909821367381931020735933520892184178111353855418046054435806040142982232564500063268741906810710220749222561966697789576776312121835648242305026282270141080632416292744275490220751498311241304235745745282241359612627156404527205666213565680613515005923189171259984944222363252372072715840999937900505525190349792852698078776748050647142708800757848452209627976514339560395226837048106645682739885088013080314738640949756411371333557337946284910962473453335084337013748533682354319431572289522214141015305865595366625131315311052200274568941932216042011422073010146809120156661239260979448662410302985231957224073037620873199688903632663526532189107076098623045723171374864760181879579289833724731136488646945420317212058405681564610660893206806548144729810996856818923846525184765022752035675119376356965832948772085519943922465922980719504049312457742758033387699172958437166678434029651862578891663076476280374493221486681110075441808711457227809747930552096863800772639957970864755828528583996537234430687303068071678595258905873281377487678379467755627269562478724992071195162378002212862626260178185723230802375082411275374794999682922529664443619993836714776078792510818782956009593787890965959458834981522477303630130171948710225681345863828060703180113242433550217994315343620420351018780593481763311089616228464465985007250680567778436749929636603878161188690340486659515285546065695586245316810544244221854083549054943353820812997487726213694022421477955761383942012297808944793088428940585225466678037008392602894741187632536809650959075894072626276114741941080524125428503578952331885259005111531092801242958205230695998227507952880658657616850660609291405263872258549909623130362630184862535696166734207068332064773035849959478580526903409523722489713065913561657234513825736681885955024797015589384774497279634989187949252694169788805281282048991228484697805189574489983132170611698240462135794742059801347259023837624673456633404354006940089903048763964731349903382123438414875759019183300351889120878272101509936435300194080326396448518526984362431296497993690300427538238227064955821860303947176981806293119365194622246340133128871200056877042019891161970781573113531753017260091190711682673785917858604398577752271392539536142933217982786925441234909926506436700111971388611371389166248635109387935638043180868022386026756915783312371040091683523326597668173188885063854852790820448916683461750897878567723846685874502375482840869291596859938562954757576746791377596530138642335384824922022198445479168367975166191214438854769133237920163196522671975046618340864187015558858011282749312853463007841331048890956174554677313377702916675401000716241663559410449247246246162654751410535193240909136315042845984224735287158701696637015295144789810729280480740194290890551534847010618362204108522867679782618888362357337861785179673337351533512967071573829694275731282283652164901395015566397966244443846350131664321924880176377320822851285153459959366026122219581860953019970312242127536811660073202608785318487814543402332790991342164534027224474513801553210968719422343513316500531779199342845931793967369288451124779499966193022883450669518758814774716046229387927370319283981968747473788093653637561961815829923390053906529442140291810985450566145440933952332490971422624872281147434013565203594456353181676898749903936483360146084582266819008000284847927502547186376007730414225372946789831701671243282892861832439351092643365234441358781907611073412032803371737411621150216211958419770077761307680818286095763760350151388372191149858763250115522499683274710089083103937694381253587720980166853420890291514614702484655937803938695889533391748826445169756712815766881262589156543236235316670973494620159499377766429179107097440203769659304423917011630188412550607325625662820691603743842980599524767250820566633621367588209356820549979999493010185316679198897529856478133697489530477958856021992225609657942423804581691567890936894468197745312348756417331803239676587872031898574982402036107772388731910601542354895515548471655773149551391437690274533081889242514058772616793123381527779180087264527336035582716685968273722805078018276439423029948216338258480276459049626677944922635039381488450885731304225224387681736453013322014521350386398223685670068454310927408652707696642926556426662504387990781654802353773391022054847259322642688600768322715234504512004755018903956507217528991501502443145045667741376082254999052680899496213743136441250859412409616670646163194832316135358037837514712152066040147265562084917056210666031408320023218449353612915270279696234825342286943363038356697071507236699840903925434485706427587126548169007649594276088030957706240609631017142704285080345623501996222430359531147506562223460411814792669385516715933819181241006243904316978841614447903662770444952584552479635292202275507266964033098683386861977181412978663471147301994859547290917466762502291866667178282706779842423200530225686132404505180477557384868782755877136531925072243228416866761325375726618590596458200116167644537661924431718017537287310180304912063569911014041375937584875196495649145326538091215533400837474309662694976235010391209822098566250684162497284577829553819959020515832676751446754325936184369750967237523069019438985096059994098883356006550372993315433307225024609566401477133580441254222129985955839106658910279844372060525095057345553617776085289624419841755656144388067761089704222322746396782288503127647532641764618575585455546429872145130545745434113341974246920488148534352959703027333015867746225252098570276402296680346245205319780557105818942566894934960309708732852939749153637020009656354304108342294818430033849963279335886835977569919813188852534554821598251022699051179332302190071700505064090737906470103610947462001243046367580389632301826897314573282143421903575739070541363011169149968161836813988561528974422760036380376134928734064385579176857451780476933917968886542138608173772991473208547594658788464516565357168728237612027847724364159876418335387345878941178080187367255788453888612009910265396443763134669037753477387829880491785955622510302289979298961961082077880342639326364138554224633697721308604383122417441217553937011016581232552566652332083276816314947784667407260410121144112494913319527425306597308920547697342807989442955684811522670113523174403310636827259001531683382811526196210255103002976037803728801439312963431354442396381593146863277252583500291723062431022002370355131722198719480530540304836756993944727429486195003458915440741841205143610550761403125803562334806444418807110948428120686115300748401675247012554392426295620503855949910982554443795896353806705790658610775997330957032762855276430299323148652540720832488016840489649661642342779507145087526493011139804828111664512439665984154098855539302652726574570322765640517382619736536232349162850661602094566651706934436556833151460481576360909416700898111300083010221239347578527377038651575361258998950580918589210589245968766197299292702012714101879687172962375937946641560687391532818501157937360845698727227898731752114564861916702047879462334258246988212976721566098119833491798915157060769930815049083448482910178285272391663551134131970235280284847867339104949665747674940380984941466602399294211535884614375722423672761835949404465146255312204947586850287124499799750342311981416193358655708833440209372650337790231220679127249688190246557086122472747492030712420991828101680274427313538037328636921680231001244831938063525475387711126045719228655277602511692151562533730050344415972614939741235742903539639411746425747854602627736834976843756108311930776067815078581544452325537536351769863663646487916647300808435633549630377797229720926319540261811521304273943596361450317541315450160464215702673753217583499418481515115175852292648133440902756942139134178371440140527908854018756923213869382278442584088699574762285689781039444683177612758210352168626753254203809916408396603748259500601892522327446228235999058240490062299086259038965241939693538774311966206691284514818276788924001402946063769001684485415637125457002371175771538571408078640558844265432306446092588267354765849210400804441055280414238678797671213639481986590079231627872758453701517717786814284099615465636528688479288527580163109691312278855248508788990235529795561912716382999898662935145123735507544867684880674485704244873872391387311378890360256347545092299078826185966386876080431128097380145680387186401763611979642679137062178384824922197231883212527556144416881953227572602316845215195387795538372555664505717402735117806056059905622732124702960933447900510919214478820464192968271089870681483453669141987104524407285481874090909990523486873816981323637241030370623221998903626172142171827353049266653633344906493384854930410968525362693233103445160276479161621802861417776476792351213791281929619058941962188621029397640981056984590590359271789666681647486777526214480838065579469842049281471352132227547357617976334842662393010925368147202031674215788501759547213098981489664002243521351052243982716081014791477053753765745624068416016589855610760361075074438465539912985601044977107052046332992675810880171091600583616937627536934383756386179572017531513098514393115013461918552148276062816082953040030674963836285920935377148663636085803431962180285698243356562531682718993284213129166312086562000999583410446341961753349457166361789974961256171351094342897367982057538163261244797873976786308635785717131979357221256643878640727267876041347305951471624980950417090173153259700687709307826556659676983018578181650815344634479883489044788502589810596911444118961390078848965583872998683405136433030025294561805857003029763976878392457075302163349936064347882933904803770253453938681581795280869809418630142721035022288926185889428766652531018220526555953665631304320396151363113957940899657749203504663983960497444010932644103071867001331032885657586179941940752332807047760750236152497796387700325278729184711734113080656265849406309361640623036848044311160393407098939866349527441034024845632396370265634862456164257284059479964747185026081250597230311930406307889073382432436163287727535129314582904786991244776837346567697489997395955559011907615200123385077731650084672762868085819866259539443884302830284881767283288549554487920228062124968028375894264912531501431407644437894379179638116192874464007057527655133011482679883234518590442498761150958195286160477295654789281959239647845629373629678638212361976074773508096969494992970797096488410510380791600949859292612799946232769125239504293192242291467751065626732904449296303225464561449352024523156950771954697342393737408147777578891825084604874423274749299907014542954613445850265677999891076508497362152927312164836560508788444272690661293728600219723601683258721731523710612422589022778475290670024386704532624830590321585711231519098733007104583412371753156448711547086235478878118713761139584460417716418226294057436296887250672802738897354875747358237772973834707124304035593227117400011127419320213780856383795779309225798179672789547367885890823632939523853008724955850809926007889605489777425610365522240300609617116172554726404394025399665030571299488751666677398437208460528989046937666118352761164123510733875045838770155689267065668147603781187425820515686114999482566007248643993726986025142205011112577537178530392028706672219285778758660433573928173462749581578875607608536091222573703858748860677128497322967589720206799939317055704368378183489317648166090386735178243078051040483501685474800229215712759490415922175454272844817780433123201477074681640492175838884387995758245833085743955865625570888448519190828228362830523451447901701179354142791728054397076989109066202058835722514992301067402275410194202769223383624862016744585339949203864651400533644091736780042836251359164305310021082199745508121331114048301989941793978454439353293347603744923543939753029493643162782140932035118574833627459867765172363098580756902543909315744851018956911052311717420366583726473794399677285785784233863026375169637560374591907675754489456297986272002262803039922882695658054094485346646684289795430107819751715559724102082350193125309145751656762241911722839781356638684281672773639181766846391387159964098936021717364541441834862397050628685750799146046144477058321517936357663820996732227169821327498378817518541383564610414394110384519193117478027198358518890385322011432724587639129471648311339532095733739854902094960566777176494667240983457543255128183164494977862575103172469805858647022004225774273895269938275662462591729524709009107069500884827277670502146614513528830008657216917094453105988557733945441107826759064066919524331862756385448265411065171516317129678937455516538493794047339062564562759415136628647718186446296815647602721251122412755934522300453651736752191632830741465573078674906291485827249359940396413057069443950281555053351798447995466793475242885490500111098735468499458645070461559485949049951133814380788136875286345549634273530770494231092296876554709597971849156765197740768048471549831935852747637153887718339267354800411544190121917574988842528111038475248203190502054166832350249142404629492343273669556677595727870422009880278669392082332675493636917002891552454262759413270195803414983674094276532499845529659541046133759154367538884039287116620714451213748376039230619891944473991319512519402459864930717223790526973964442067097466286110598955866846204509233428636673762480793588065072726090179896592665317710053527097773925707124180640335020398299311661808262907326585311974945561458257432623948353373155036885632575027746179016632917539876841290400550998449801591842357429480300437516571982373201834645985885445676718441799662125192714891703035394393477915287751089664686163835318131564365720663309923545737616424242554888199101577167266599915123451617293292265172434642608843757342342871821089706224604011876510502851910475861120321724692106636097929789497285642266833211299859230019843121758887207550073024564231913644458734826382839046018741514147574335801495114929429157089599419070033210787811604671821500004605810346324073416512555246636905545421536093905476780959055096107992097857130909635677328282739379749844190407597288912062824112392517310205382937684290718164192012699757652448782842999457021625627798495820793505880451667279513148642926990987298789678447342681347880984418000796682459379597722324171248918729908961596888526042136853933474967605902001196036432469821153810616976636582951393617051000717058987489574555663903970469509452867992288158216972296001947908530811596565594347898609714311675937686621681541170373677725744025433239990440947342967151693993736307675448694284145971066423352521942655102794696601231351901752273873162003809436650729104908787219152674445837675991649325739565544247847684000423452690124426530633761288056525342708080945766235444437179558862970788916480580621668191105669921660524948374578438223958532083359283419897373872003099392299320629883141865568728778944929892386697381463922554984759037876308614685583994653785216269284769004851469103000038643111635031191518610476653315095518146816606747386434588871427039458174837290257573782233485405645051494534598084109344615321075231396377811852698015488850827647305681653791537838507325691923233590517118673186586692743327534805337700706331421009582162843897320802981071725892130441333872194288093718914151887567592706595477920740963002290241716142648707808925871825987312813321282607997644240861454672715036351618373851311456453029048235615516005088264119341550468925763362563194102596249875942196998581262334226982253253968182962705160511525301369937971593260231404277969832175793531339094045041327758243700755383917945715646916757534738306922052744813996415530608188130505557514949434980378213884710878041160087200929832426351133385284776659013082404362218527350150437171887003007526816339247484403962712400984382009734952647193866311266678531865365415883732410632018092923172025795612896232231252416628773568489110927009301307197987362564595053295486503035822290655920103969038491929636695236422060934497157039643236834841126080146720670427962791512469489335241956991312311780627915942066098880105032847931983724659872911383358276323215152872247277202647907598628773920087174746384253797191382207135442593600337101616653543568133300410113626482573684273077582213918276130893777009102844987867869419720768373564225740482373893533900333072306709318107364402127008441628273329541792000594539956390824937068368327381434318209535117043262934448563947657300482041829125989246578848779469380972332334322669425965663929072266363595523121493522320297382640393469977084359861267145225710271844193075100634792866538588050251074111224709077400870661697350929619488629712620284388610194907968607967805816881626068168911858243239255824397859215584004016082910514873930762851532354538664152534528031967143193819563432166859243896600436462456428049272876995258845700394476462251801343828537040955172591029185803301883847150205702846569363830765523613223836817935800503908965873737811656320635645212496969945611634404480667877300500913923101988488710937221260950203063475890151261018084666076811887934009804875129630022781208182627207985993363687225870857285910109571141234528254293706301175263745756668376267418075068768629268638101672781452179565808295438391364940791893247188397488812264615859359236864945510550391867197151218482521063978178392080428762355863790423857067990934477018097767559455421746732248752825098969593811571614642608329066538760575110289398093860135920841676863548424869108173659132289463488727432125374951255370159273097308093794167680436142566311117178212585621597174554883751690759048364860294643663912934449875521306820746654553100996393474053590543992930980975113669991208621641458351941109477268239908429781399594885696296823916727421962209464528859731374659152617550241727603054159870054980126527003547243585431864959701083268850649568831451489137454916621136300333400491202466340308999829895691774736612251161388471036528197531345341650746908385190817559598453338444418840879592006382395966965113940597588983377435178639163749136119400455510507003569099890344247407464504687948451340034199886061534043945907888691415759405431453401750335966825501577062776218514763293478361796828819908326258521178712683857986152326138452932751068896748835398454628235245208600375525016719668561925415187236603030455695179862417269175363249670229273664834764593730260942371297222384688531807502418716200627758956014980365772991423171735661457242564233057881882737064482997309180943091957018569396060011802043302880211229694877469877350832569124822052821926171063988183848834472092996307515921178513289441772241018438827809200704526544235913897315280501850478125241303854541385510431799108929948474746506213587162921805879974978846660009986628053133625378507799630605474974710296555487659878754577851978402796244052878256294748446457285369917350422020674077531590947070550514224148221383963834752665354217136138381023130846093764998649515614551390176217746774511928781030769270008843160100996212808456162085913157816811151765484679586525981017448017343774628666007087526139958397213932998947918492868928563394600055760719461288396446693981994490165400297745651805578439133822408464990910578669155668119429905275007521193983654297263554968390014005129752051904881671230271956696049054293356261158613545991808195276987387722743506247447779143305464064915378133432335321123774341607692006038023780373241763697257637310717101998163398105292168128651923511249759581298030848879584365931603411063149970363548766182902787847406442920049091513485981122251996654869090997506089315397943043588403469465800285392711517750538856907005293449170168832461669576449748913376248513473810914629494522698663104451131879652302815275943191605236809733911327107834026543664522393250378217236349952682333450861343160919372875888060093887858685339271850877872299144197667769917895215546763011605189842486969981728085200330314354973811420029773161590753552783145029133024853109011187777802782240448617092367605496012364888980511704003902273928179330522376902273447271405791318270684700755079517213602325821110224520854170394640499046561995652472426361091428380284787300220331156070055472234734623173202424931827863011074356011883200708312562149106065420854231598264105024311355657037068553532798784711535341427333881470145062277326651975289156417129540477038142664115285418748081046767862874054792858447858772738799413682751863022269727776244796220275387257872358226200994957997682857134666179056466915882595267219835748523279519369503914783040558159826812248058397132912025015525758049242463603952114981156996248569213046054482987858864498045363355436551340461755181499213931328784577514147528001050049539894307472598380076904411587456610023157839952358590386750985193421831417271474841695938647348931578287866582858316946225432339289727355792710847866199559833020554172473596014984281370874678151162292443535493294967454200466892405406112861927346792694819094395288264614949791193144003636280810415800000067959479791198704344414523700554921995311530087150808432673042510480502812866698994064952519487282287846932386930891699333603985484096541247256774553561374077196882318583326260062007612689946494468616150892749654878568730331671517227170027332337644352839931759189835578631091955348738112840937255377189275029702442178172217821687714221700288384126680208006144946799957855347756597476133082997242167470338322028705070596574869600083206009449669241004087434968643378546674344650529486351339510100192139624800338942657674110246155210246710882872975873647556998536299003698565121064219951680182849219996847533333265284137080115048164844829615210193256260392931610576168478793189188529526463690561082024961986713585473705905670702042121164378829329926041145917995906392121020427325313347339529720238424864354218009795558243745357490478157327702038720420454210534625614811181315737472690871013182242317946046348084933504529767828288652024866600799987749479127932321187489108373583366154280482600135591582271347547778469190850644568818215483175061211460953547235147310482453848620200469948295430950210694991216640563663930184078329270766065450145355737862369303882614155529693506000116452262115058902657467129404351015109480159255678650972341794777136861956112985091208975930141165120668249997848893818020269876317642006299291811408711886786901339948089421588339897717496183550629202443710386273052219628393862218081185854757440647571529989965470389295344879564122637219257758121318260422333205492203152807876220035110761830787439773074260950545286782776595070196061405472234521669892909758636791389927581127053188403942119742629627637916817443167718867062484055982711177841057142652682139205463092469679713539856893523069280783367712688708025321795952959421208047335052275542503028914096410987006965578582208406302273382085763109574916377164410254932903972254522627655913954348282690687276677538444461346239949161199056752920131373122405561721681907046973834708966874555872721380742906716654983358535513163882692635420145844683947356062877526535742137348476833249545046052426682351583657288801112937726935601436720509098974877074376053991009428593674144120265868341419378483191287605000675476445839592563364350123474453016110025989997326265774281967441545502691877791609941151203554417349707207695955785700895623228570168068738721209938059808813649273026772059328998222398295791679958262062506343240909883190073429362990817736683764283351878028667487574221712391266586197773293098198853629551247486817117000988120316807607642174550439441753401172416068651581513676643319060319154353158480529517220694024448834466773535869862410215044382330357138207157197505008971227014246572891464907344787992602686308349586157260300101011981089859458669437733293890404446917664039629112615679209445348964047717019592531507501855802140458526153144154765449145813832677905477581788967855802685610774028441521996991977626971392169439020182653979435669969990057292885376026732430607816163560107309754918858088875456218986759943722141570801081061938925550427048040393013656010079130434210390436457819899372972062520448304831788384929479185418091293610384262118874537585334859488552726840868157752091604774029348987514910565700620805927546604893099494338545698462444567543278367544339067379210505162057926260754354864095254810183941815284719588824164543367362793523657388135189654477182164066484797197384319894152499341559655776910677110379698906086242099260209370561700021784265822573650267246315842533305509459238074789303493923453280830145278968997767860213039424497207513905389905016721526428435286396411094494631262409278984000546890080163269910020843409157822308203962003523227986830127912687022444793267989845438613999267284594361234800037870946372891887666411402311003863243878159147758031278454554326612587548260357100623428106887999448326854074364284381247099701458200420100690188989963278969029667116637597975207467245252998109580472714912013509257964836031460011059113359859376432521665452826748015003561294256483731131700761317867527925332549603326586019407057705165166732500392237944970570695224877545619381470346904529362211177663749754205061763771491302263264033790561774272675151652011408379983921417538316664228551450393415405937963869376125480024082157062299011801059658342309583243837941169944656771998774840176147679066672318567101181039118781965494812995178683538908501631724424977906835985743193478940521791402643294346481390002991499791633084035900385799218824736467368811556469341120584366056712100787093124633237946130539738539413566440970716417749429763618827119403797320964785117441333012028991669232815414908276191999051904062059765154473859071900710020810749484905701361932980986324928408718606610340350200479057582956699749036148092691085909434231112544699535423238563475948091773031977146698838400046346079725949839847790011672757201839280352901741559715993563284394167430944410442382635369435820542423621856280548992546098387151507707481917555637619264845142451222248549535836218277929441374461767104291337031914253594103190069095525676808337327085084328560101027660055815412651299031835922610123361781120144360469810472931402504928987101767137075883610929827497330976188861276500495621509039687923810720436533680430690990260946179310660884909409161218909306794266340919109522095139884998883633972621969343227694627631916711845524523473203271318739368681501142300039353593652986855781009519417119388887900317918577385068347317233622387488296791676561970226522900478969190891359364195672800035275100705067523801219762756898495000616153678900703264000020203692838364575645917421645355189619250653465285602740754775299887662719960029218862103929023055640011721103531300895970998847342756969497923765460326876081953557153821388782946394561543184688034526973179404783749948821840839691419537334509630537436105641773193952878730259570549468321876048584201784975444965236907581926839770334382414340178136794129906795944335929452685527435144956796045352786165714921975836059100329298875101757474004223208621834373586538183661027085531408492132180843540424649633008939559072780803474775087684623349769547568445468807198946809518740114831136580302100283433987178783495362770103395739795167678362344466877991268362759400634800822886767608326699717847122515245918664159018041314995661581208177517975094331843942911796322687424646546361733642263412292256902838173205864290505670424378208208619867986691840489436089333285649476613104323453973507831346342456595163414047528480224661349758493259469152599590373563054333320816715138378770316973297153936559203502246999621063060336459705832891322405928613356276567902867755842940070029619007576858653007999103146926612332329977359202747891886419721388445556056263688871085112909032971791098374745195456347720521908640996944169001933767630349181393999663115405066317870611856586611929936559157698110928075037031407212511779499603096699498202097128816551960985333772425596873504601274818179379453158877885142923451773077046241747788586710907090613786116848362841703118171459334151193388601948579220288234647004782178325399310821468017608699049586585327323310541946612967217013706797508866174600788604359595699659185345789732481799472792223803095237459476496106778958332125799380172790833854663230347966621979259562438735934163417842256930968762594324837127188315311005890071084559458480798444470515083758455669312952391493678897879754979335324768843856581399021086221751015837054470284789014705578196762209298340108193885204274982222698252983703787190678569872639657441680313328703898742684112513213465116667939632650463238678249420466191013999525247708366942258879820235045710724650170404620696132046134747158648279856154766192879114021963468478121699615449600006459465236586009217706275855415124541880874972005783118258722336359858264962190204074809400820403719577487031780993551867055548750796453107788691439032358989277762740446250795321268466722695192730304065476604565090603370526975634666352338368923927696594970920371790391908547131410287089005501761613303141093811534656170946945973970581107206635766243673002160564827091319801685958235707369237229399297132781666489319593469403355329935875269801681558708767799813759833938801566617168503932521827499152591576991244147712299926437764257240756716418249581565165868158950423054722986820087702798606809754254279358184680410808919099169439425797975935790313371028621450751759345005495395681726417583415238513544946523310970347131212779615585535364919743917250236730860197957889145619655938431470500109362109923421418751532971560967382596549697799734210044294570895431687726500696008977163647814659831456231848899109934716423177935441864272466388430479661800900367602667863428976111674025721602317105606601601745375855092576745078715909519796977490912073997374422604546068451769054426792610792534367412330089514566112189460989151879060365404788403589054082425712565329403011284658296402243138153413604137492267027827993850000541080694289760584481226713251951700223174635619872009411133746776846354651413501998675167851317192640578114402576573767101248938950348077052302469502892451776982432433258614221108314959715991368120642868949061405977181235349571634134906319613022738114210868711675436575985062221703377679538201258689522122929281840770331620292758647704900212873220462150503260009776023830279837713518978173491869368578444475796685855703447739989803096833565828868738158880617039681018638247569588532213705662584267678398670463088981404194954243607306798903486270485211418375623362862247068267469787649227048289338959114607379312660770841270036063077446221933816292757036055637725676483983995457779007110398660778396900579886386538756824903659990962440865608464522564309050970568028401837573626947516064043623093723189832079971560813958787455230098318330729153680791562698005806305983726869828967723021341474583684042869446397571948973197745904183723428510633379217352601095033806861593555198344125905948695069503882911825983797662232992164724771216710491517018961407943677405049219780087203035774430875760837827109346662883913854789230594184282943801137435366507092824374739686602495536964609061425013120333264032790775770847181530090624714019312968943884007851363252533616384284970742140372491688809763235643802258243956685701195992062844173570698619644797084336784543304426790913484232629639954741951627220669617318123269449233102608555644832271427797036250993514311840960052194200295686721393232844110571560028037509456494037541563184538165527482932278027087498099649287148580316382678819230473291838727687618693852992111403611488778661734599696108946093368611442433907441543494293506011917340480268338734239003244028798668563527074876781213915678833455998042015010152781786398036306526755835136214840715639957582192669038569669310504697757783749647911298222300220567686745432511648573739616765476189184005973204850860489501989473870152040489817960815592742133833263789519858703248994011211673298797130291708713118357468217260517820007597649640074382201967925049712118027993420444934523857000698155314665277957056305057232653811768096805498019195176750894642062251883037928365461299460675418802877528753626032840296799717341139331566164344125011066413108705581187741185152970876474682484415144184489763202460922354242435508610866516700150497215356650427464057624696642968206253615967349348361000417596322445574973654285954432081032750341730990004589142699699994342291240914415775406398857902934850668561702831403965353185836705613563363494321918022598883714026372990974153579660379056313412502701264663309281709263559009255746178146416889333626803342828393088551395878687312207951223281594977411974493132458876143700923394244459254663220155198581937874494245823016611283794471226486230870848538006453328795266911483949734071104895301231072174658741477943633914025098709805458866171562054192358574149706167684161751423491002316842296206945230338631938757427794853392847046336033476117250243511705801505060343758727433653302701520929042478605553332510496573948617111489536548333517954243379079732998662716660541424028435191564304254009704605200066023006370472805055483076561782667536962460516053911182971689824179962591134859641362417443939764454052884384762217012109287441401780360191236197506561250152498467672020001473970320460654489788525564145515073831891800627458920001747283573400250142199322796551532358782995015060515133831434461429943546439533354172635404059858840199003899378074212496538565184874432279773934008942730212552843347713178703271415745957168270198803139086210861669018993086681776949210016680404246813785080957334282751579441022005999797980359901661664857612770810490111271761813006811817039296848880483773808900604502134307483805546540548106234214887444051888004400792064440842399732812873063209100559013357341978117639938987248382681396324681448024542706223100565444165800135551683975968895671282097536789515670046545959200349188989317775072780355095903794236375969034468419297048159426319656569275435128126861478311532094602758900872713861574862519507440483019880597326105484448975826602586459649550315486435662291156971763613882454754253231925394607666976475627223107590187825453765619581812711042806703494284672773840908104547262488317385810491071193940547737594968634179004375571912766768972122098712130409069725335237417339014186124980897528145122168999993043977558021882616499602689434307602971968702290310021685944127087676912113579582259603474135751614459061482448022902506503465721397154663578355575599884053276122711876677003591319689639914581351514701682475792082437625335706915913746006199221309838569460815944669818229618725098206500269141079391120476662707982954124139614144098747800845741560598417366098755441081883823125881730273992137060682411888341224277754691061570865151591348353391544980716583158186163384001413799341060279780898940809246426241504166563419740407210482748486240520781233775811939926295239121203758743163139496086898079731450974441934040759481060209169612684016211768437383864179342654810762682387321124998325619213654741139853097209373647019984314886882854759208829511243231919865569788731395284072015495517143877155178457210920493003305934328005960110528267304551026061857018220169627677290483968317090966240914996681461399198051985105104766884060076722827852185370169852387438999064631637657198032711528249979796890316783802999520230550879638185449922952460700127211120805169274551568662224328957863005062025075857971479802755845373500771144837768298606171438730734863892238245351013510470924709794652718098013949895216535912778975181554798977822946993374639103053124337735501892197660694892572109021728680635225116057498174851997268504218185510306608169403269258673415322581106553698432717438830137598395168939251824157114390474495743983953757461124304401599602123482994741982065623482832088885710207403654755292449607487012570790545131059253831589077589988434158737317541049219732135286756134587193186400243558167055500037868740726772454105061683783279548201947521037460543677169018887974386200411497380557413334001353076144993764645985220637206652158499440312319714471589204571872294202452216050788542990212815493825769549473121289755506500600978972872227616096192010604026433014274365074014484265162712664436620909587384981705891499168401247181425135209316342357817651532554994556699901700441533315516990853570680670081617983438100642540924196063069882915046179025070725486063511257447299008419636438139128408166757733051433019861654140972944524762077974301041910252679680603288979944215807951442548280500101338600141824137956721627513864207342913607986682557978965391385187380548194876676097173975492362378136313740035099067686344205531953668244364974553633464007098901389631090364886850450144465032413461315214910160820412336631846473431780888570509093802473396289634271298907357282110223540761493680868237546521597211797625181360542179296830037668441492509398014290311359500483129155068837492306412534097465168021936181827060594087932376777205621384136276272784792095762043793711134649590704385756252829969681537902258254108910824002763431303305411798923690753622482657682703688331849501174556526792676512284771179710604740554924811523383309342991482001752084617572796437813932064063377615729236022376790591167176785861631141464872994232473514973208334882748056206739726405223656408001198894930030032400351359765900625749823321866897480875250115249359064991326844683336093009444625739201031211773826799295514648057395625501161227560252915581332303481607694089618112991933112667978253685416963435290489421481126888416059091813615355023148849322179145042162212697069117961274777423440227995607053924013197719120144021873185905565389444332067006243288688384259328041383049771041115618453626646577172604169374950503582313890336309692095426210349126148283235428255640778862583889899548986303355153383760853056688518072403488933818254732625529361517839220907126772024181771004614930873110264620857119771689379861154723423225730965112451366044655572018054971135021516395569139762751092260644448258473916686575398627751352008697814360634485225773835930449714861190789447086450252989798480591644840682643109589832524319146712413801709871919656394459838302988118425865569457058996951015879205566975296584036666599977511675498106072647213890329888524085230010926487892816765220327291827000949174254291983317714102283953635969732811235245686211833086177419362545218326391141997652037590056803650276024188513365846968662195473041035319926492472297540606288863041663316032513478765261531810669289381058209736970817524628008800594849586456970230339144516673604726904017820807111896887182734285163827605369438405344613423499255123847946279526082369326316795368247899052685985766865906344585695574201159979522602389701116356860286623351625049984108790855114107486385378372173439371707295655081381080753787730876209299830148570256642373184963579823387902030338802133733118432800515709505209082887211741449847075790795896352492818993163808511738083962673820147012781434217597920125139638022209121632825081649041985112146813771376014931011455399569401716730979994066468662659279267878453739993386834508242821446007657323039990413653849687265754692934308104060916782042816420647805163647828079045666815081918408131919835631219229478169551092187785222246491005242708985979839862921438449986786916781294269456285589143287497464936166562680807467160519616474138037759999641057534044791173058583299188111239879519078138182721347142821800850624673222173230755719948868543188226185888343395799938835541880804184810026884147978713867629953026980234711788425138176597968417448766920349935829998638047372989365295208530102448724924506530945717926555464195178819580050877114502904847934348838529506471659840955994665904992671154818226626141625167223556912287868405460335188860194476214523423490108495900582556505490883682801658417133745071502989858272442191665352104827225461417680888033945812641123534039883895325468461919562955995042826127107875349308768027589384751720064873209144198872151572728687912710999902534744914422676435463143274067445372003408296144220155751787115987291073209617600655841503179199220124968062786171574269860121544617247172036411017637304162977244607505993511209698362523122048968177994221372609829717667493858657908435230346065184424438255134133874596151565689915991235029645579994994186014875871017762266706773529263102527230121592842313665403320840401824867453170180978633372060849634076534112999699742550152377577262289431856383418037612580329515000560961514294003488460908035731244652290951659856553643852216211139374303341991950357673573756020930672470304437554157618003376663485597162674505129529007703791943828048664703682081396596609400838038520326750302503842640359432785565662924225111649368998079027928937542673341952718353206795504036680132824661444243275815444183799967602830603428086365816509151387498370535082006827526555749496977380730948178902330509445579516640914624664879314742905247206228585177983500400579591719946808953607365831806111128488468727981989830303667928388256086070759980492314124536164582499522323399935666863121718254180656659672624180840685537435707486342401524247027609139045201974730604432036371667494685022673124417705741667235285920236471204860341033288537991725150451046908626287172334314621372943595190470887787214883644821594949169441593627920211882766362460725843748769062323711857024772625204960306509687529238393195411900703944126662259972689328278012455140809158810559935396628639745419751291670198901947589636041956104589796298318982431306641627428247492137030775528599153335388546455202980013645809976748510499907082478580713638152580031374665027530412062606839301971185619069294170113362289727112151767946115954264595959400517729727027897272971011700425079379727377066914267580117254913066044283949486050721319176762673124556893052917696012834542569883114291175699200678602354819006293206790788942567510716864213202282472461470890535094775319229475285773861392694080977208159107924734003386075926472764273342301037008380727504088104371632998180252792741183152083749811099264226035397678082180547008707830079656674733306770333110236655305835213665742226893075847141543656385943297280146219009202132949693707455838816113349616951765768572117050910017549225523905124280374379346028078965415680951304422878072286633012296225405121488956426790438635008784815422831220948612028292690087461609165598098952967415244364497891501603659485952479726375210328828010283980686020922144649519947969894807884599004310835537995780186028511782283796541697001444726371598381472827553552889998194640164390538521408833672552792946683193496074741611430321764383029747607950143705325800966954470328998085283363707306891652704690114579622238656137191517513490619791978765457116605606782098797386452538575421615320393992336762689212076465358470118269659207911678539731006944510782152976081393793893832224686087349681157935506872054105506346999524898878139970864480592539445208859979806277157699301372913817544661724016755429286233220887844310330319431191198895279360608034731553252760512214097559648317655266593402631112910162188878653389861950220569433101307139911279050091570653048107368242900414172284258565402688068238874811329148219295853436542565113910049286862368923476498068006669855414845773679364133966427834197267429996973591482814027006006465759890182454382725812065781385923173663378389531314464268951364430670854981654464037824491853292923557105274915810831197965673288140639175981786484069779208962338954482253133799458465629872157929486345927280652680324078316660217036338699051420650688326226135531739881576588972908796443793222453755680711418674344940020741168584764673368761892235398175973180092283546907422006958792202069859121902354249709203445288774553772336697708499976197876244654336055923514154903682839124132799127276629743721970512871180265147451424798702183469304504288795215227352293620683590521914970952511628260013290462994108710709159615628612821784842311245927321623960250422741773784599171298651977998581790307106544111427085254358606605042370300792353173734882395191068467711067347369887124211629000441249534883643445633987959572174970391515894827922718264670651934492706825284275788535296894411909680033799548195635259476766880488682451859383401582790406259415317747999007446631285801250193141893656983337816555670880226427956402622107240587818459121603582991152558968189365249552188769402377216072214634994373126307559617943366995272388227054037573659415206046803425836146810609615729035841463907545113602222218039761072794255191933618996625008531741273118345941936536191166201112166803409571814517786097686544905632641083357760868887511247669995738172217070687856881825379159641540145222717954848765489879156195805537927481213059946597682040090025875856095374350165407503268325168748910192841035673748005041870344856783979832259087057440406195353179274042503891982618236091321918225385637436486123377934273913139532422613290945801913967525345060281048602003428876462365845517328902594694368305170626224986595491507607099564060930023349061388798539786127044966195813539075090181551628220752940160159509309171742626037197670343132922148193155483255171684355559195476800207270715138082263694151756362383446600463202023315447191175041212776460710904704999185327484567240691417070995113724732738281357459276378485855053180108353040884777501070504777804452551659282598244584558141356697561364378772862442085884473623805795425707294984417334256776852560518908623157519735596538757293117413492139880917629495319141562817581541133044549775019628822448355880960820232756121978489592906799891086505683624114782534566230424033138740166678221366398132438864567989337308868147614323775421712909238218218294996314252293250299557351973980670116301758817409853417722145396717017110848739170055923581585959523632614504368212560389545288709674754465120023548780956751949326855795635520790231286261004995978129796335328725057642794230881075712479893694357519052208111405190781714001742548543104955699962599161433498832555873204448558534577229500509341695025208674462219616976786278573726301668456635328627784077905614123436725310499193068096103267758556435848320707065148663601460496369441208229401851748278435921575763246638572502740421449156028977644996813524960748104884523190645262401793365611718960439698415685151816907775103871693950496833812368376511796203565639087378127417429324192781754018669311677912512969472852275037008530339945733920934633051356090925583965553861040666711574058124355437083739221162343877461487986553891751602568749281129095679709529796316548024195126090101280124816853429227752679823980897255754616159233539995125143883434421871755629076482680548438986947543051113717071614512775845641763623956705865838469149992492829706490744611275556263902458451989861766110907969821586791996872205435419687691192734361849400397025243405542611353156179705859732130572265796826048305410933484907946573602848502926132369400978323579205764425027322962063187681011134323674736328040815862516274604027029891073873700652717240572931790543529658218458229798829562478981542642928813934092417534621766270045732473734123242975297485030990268146670844146261317291443073273871176541213278732732261017231301078053430226752472036314460682353603492277013664601720207605606395707967770531842917786242897451679373484420239661505812696827987527302763675469153536822459389305841355138479427144194418057211641086497764211898511359600188476067310324465150472233017366169697232690504612370443846563198458384455534244687016995236804499602157032612828390232383651250145407030517168223535653142594885252453971437302605556579388838954745515816195626071048566296969947806367283612305145530054585653464162040565476534747983349750604726659967590751905217804292399263585055288741808853907895513236195070271818656247307890077567511205209832498622463488245410610159162458026589175918176672854440335975640101059011514102915210106503367077863735474131544761528279017390376517616149591209596593523594308801651526231177033948953805493625627004934908332190157664113030870364227704166347246543099352711731438007641290209240212347567352611030020281197617640472696478439637396080833861743481658798773207511907669421485582662978071913554088874853515674223680688779871598522476110305563816224117374957189335603395878228831910428798025346478851344042233301131465309406778259362048986186871158989598344753634481821589283822138441022383580671111695220282916930236439033817584692907848869922426410960869889229083582510013992100059131592969714103076910004031617844549036761958889986751259296721107396550624049404186934262519428654313893023709099453613342307644649314739308180148343739803180556189914436258439015489077947375655792001260560801061907868089492514327233178721216052124518947236065711433997453459353179056130427835977664486511037675810731270601567220273190980973569314232225530662677727695310201625459835335097690531695269411710575451153734446516472763415108652866637009564369636223892224155933888580916734137967705797147793681184512938919747735157478142858936150888575610271823871869233461312899653193421693957275265858991305696888260513056301628910663302471631593679605228039705878511564877879436063217372574334084697415373647372368637421643181888956923513047152831155679684111431906475485159014709219045780506542458583252127647629401204490042047808310522292430631331063919681109608738047555988621916064315955505473945500454586563255904840715674378700257268094397814135239064884671417987268783156882782512365277213727561573734424208195652734717175816776727239574425192342031476372084750005180480375305855984440550517811529052469374492236207695746383387923836567648284204435527738393307334764590883353498057110205930361878657431101824082871962416253681548753336384688402247515070261911604244814702470226267969332768349921799535348066379994662273439675338812110509537764399578038524955133170966918653516292365928913582252414316249330885059636122895667205840260981828440405646832070969909871830851882457994426132881144971383772384031490661073111846710611009433064765361885753560100085087077845210635405331239175762883613627949325914412565732946162843951027769978412437734504986805170136782886286015430973900776253302956480293507327387758635541654102393167283523619776263455715224179172097624444464737011370849001228929798811997343265980798467374353581113822821883215774507929975953185211063812413927250633148856929238871115687928927696709199921336530531202034433820944207087985529460076777073004147675663398989051690452644943869253768034426857225731866386674942222748113692965299311428782919512934269266169110220018375381446167345690780753134686657589071951482184626283448898581676270682101623056257984368119708796923795933719313096206195022637279656980724435845291472061336185909132393270807940199331869532674610762893931071846157734909418426299989386345022451781845799245014938306531578887877881831343588291242539694518155643890375695330478228541749585159302960064107570271222934459273232271358656260865865583350815519228171923349860472221441529053858639996575096459410965219353174293304212480758218113049206525061211220636270796415065665169760439404415103802409910254261173665709477938696196839427365510730482593609719867040548541597216264012010849368561775507488637922355058483229662070017394226607423295849724449118985161635591551189828578321211190172654805117531588679936638673371841035964136214433350655391104611485110128747890229418437763769848203131823631876265014342832909156224945654196535729628911593707793547695581887434164530520571848988490578258810873830941805993278078520607767564011844125497808819446604151692666307526061934459696163266026358957282808154461885829190566365753660683615132705404297106788147421566075642165031117886664837122623712068053243104674155782743167550394207921985071891538449436312545261657622823889254865815171562484162137412368044934753019716423921234728992899996183031371547926672461426006348442104194767091604913216950668465704087262654128344719825315601217325770502128988341143889925208835009514935169438334997514655224969807215890126655853517237603887986392910802875712769289093385220288266983904390575739910760366051458651615717741812906049710525293490199731301671590501652614177714792088116786545138345665220519552328921813796264920329001653989845880711678280232834839307890334192368449637226365523198360866956091848293254743679998040870328145109703689035867789000368589683794202695610369597827587303982455291267920307374748642469006459211595835887499071666818822328314636541878876720013231323366547703528419737284666693286141274818735779756808883908980150857876743777667157682782188512372131088840220048553146014144314004202672048662381149686777029411924204420470983637949159910111079770688717248495396078710045021728015723907999351682591031138011908702962588325453584597324052922791998976829313076759003663170982394158128729839865472856662361875849901941021904994517438921080954410267819251331609163201910595208884217030027732325847099739998566601537076443466653170297073088458682739016940959811814529333154767358459304680949586929455680140973721360969288436831269039116084939938417956517680878487320059899723413926984109026804158254682945774575529285025367589425559090586487259005735141127251179403641011252792965583004759458717300860097541858867692974731071055520678752650225622069945511140677571638083964306736367579749457214356761266209348549608814990374879438234437573802779064024001684411130798700784698780561320509732482709743588885646556178399906019597588242298933938253113982059942475734577672606895983139172055434184639416246627011631627111582565202144557739495612313232419711731001396099852009540812535969553764374083551466857764105521257118059591526571990960426304062646106608494407641402928693571095123022426284842561450830685115073783135342196237856004669118775064674863089806396925452512226439717465828405419003534705630862349604878025582470480437125368858406173345607377127915814560643743272988293199563729488316706989044175565026797918276207177303808652666691258093152929423797577791965255419419039005533369425781224021002759678393526228803178617213935990993313174827738675196930390283657617140462805491363713809346064682128180109047096586596055211915821019452361951175063951265039761912371699167250849605023226155365696851199858618231123630513699531419887734365143867813245217083911907194957331742859427144658396036662770006367513364378437997282014346246837937071996732118338339028008350634593645086564665457110579380739857522487417179086917463722440813118087512312708018659391379304978830605612468915977752301629793435949544061258319129188967074941219794076185858821349579008756757522037217643687491891102181077910831413375563547133898430212522050358237991493202695763096452243429351220105699757915930461112412290835811427385077455715176850661963838787803545722410020255723680274141505303585756066961868849827270187587920588237528233251814516496858602755485210672741786251641490180533640910306630995871507657235088726320922205563412374133702082731398302548703827071129170014737794291313897047035121016950887654059166406360614884444926815456418066452240301960446358062821977056793069624343946043779505281520320421419832862675621481567929783921349108803436910403897622128741638546657944128091770563629867835325539272179454190898245583640434246090695695768374649305240296677177740656463171105859857637276537700454683845447518775264291399503599448974875487121429426700735270052593798430489199377715841716253901662215658966567272358599262283552364627971709336099078575876442155662610589888599026958618879505168371443496350802730965925697003003742681186892902568425234677042603065878892092836367541004665641664335875340699700996704078479258523187459379110658314942426668614059845130484297612259709789342365112034635875223799902508471136742017337451922257475292152658641085493149290861726561604111084718398048962036766098981675276928508395702064310725041345107592670803968627760569150284490687999364924791081498090402990861657542096514386415351462214378735200138822182094610932223423212766596086737286538294863346936117450890889559611317563839914457593202876393187685261504692363907926950834970654487062303131158342061686897130355938477761821011702986363101769679751281830322442933528994581908313650318142675455284572835813564571383476006388822241363441660028545631037504209570485958622277145277085796413799835312734507382418399402858861105717371757715887078006112406434651407555215435659509707887049667068104168955840195098694063947875291399626268330390074857662236416690066577410133489547408414089195847622346379016194121898189782275722366692286367165189631913548182924112641963088334065676025858407318155690733329607220688788407111940566083432582192854365808004842327205769987709540921437307507806836391940892465759750811436129698762180708548018829467235672311751447838272411005745414518415081158524220081778649244391413268736646319043675363538206537585179793819611536815273943227673371682967037708328076613837072474940844476830751432574278739988115600888771759560974901253312824068319181612628145135632696311542277489528428012410328018078223400372512847782606381024637114424357802619238850273121079623176607770631866053435912176520632906299787978412732701056375053131520799311216480121833426749285258133165109508717496077441095979958121491716501623162219663662285063500620353491860962665245062867267345985112512500782971136911544045177187674727918475974653269279804845053236295524374013213493939125410453569604047715916384419451865184530050568926161777657090957850595273314848434689789295164266409040286604055964418386506164587725536722290826218706577571647084024956174581396346595356047316999499461308810480044911847118750172710435394080912337136697607608151140402739762224797145397199964381812057162381882332585426892313105643401936717543363915994226679749655525623544809566063266072327396749391538715807154615260003652643656786524918071283361023466928816268838041521853529671770455145604425225319716710184322745573630179450827694521883576071141952686559842281076343230005896813412955710199670735448508938088492861549873991187838050408024067741883959615137846957614661971441878714721601725010182145822282549644060689937991158035147404495208496391666076679076029028346881231255929163278425159841542808875081417684512090564173908759422419241421015182971297223577755524905696693048040907527834369016043869308646500401524871595053746673265992012350057983151614132518759853891133411876570853305915558279450424262457221312472743023969277605992423414929495674625102129179977062456573903966351332545834621137731929232174652425592855952643530787994998287642634679856004555874666664967179938482570868977008810002910932843209164369338431557742629650404616104946690629656598098525488341663735772857022962940011870055928347628008816878678164835192546969508229025740719710039393603861143822454627456906910008401074691521106784728195845224058595222407984353236954345191556844179232653505889794059474875911461813351034026307158285733251072128862469893129215292374398871133902651333707183509963795680877209624299757383230385991723725440182874787411843413809140364231969810625045777001675227208715246676140584076107778039413903455766179410879178251281298956692020838351045732845712013696598325618690006927333118419036385265543480735375205118153032515738316753258555624750899689200919899969497952472232531502734798006919234970620855308412718758687223465758616241283428279526925615535183603667245628208795200117438488527214246923275441357454952665256512732401912509181815679802019413879025962854292092598742389824794184990734905369111925625365973333561033707695305116693725668300654124233442386960963322471961712316752968293432649033031858320733008609897213558172512604997914878922049708607117716845119526201521838364431251529696979133001024526542524137780012189788248199870550310520181104062493877278804574314861220046262986097251864127373889965767002041327119423233571780044358925357013701144160157797274312490975995829136669053637822131181735274628719790653126015708646762016456006895891483347519144444176455124558278073291767481469753326044695880235873455036170838561455317965928896150234404817006738172172028497542374807509494702664206133887371969662523994615531430100674731599606975569911590824053181064180236000561166472546217241983090966756088107365153116402053987132570562565407684608565805447996652036276948299188166723449335043748593793712881929620808772721855888056419397338679346462292025067822168264143206942273431006640284447810755757135174624788761474413511326938147641187292318011391047826050561927745975085840751456897115496422640408988062224094707790936134623204118912452042702718758812054798490897105806284836834356803449690364716106279413411534033600766861766755469938419037753982936287972138225299462458878642078524501509945006807241701550317703295871367779764764884153598094386455871636383590819701321577672251331009247032464731523094071859707456516965961345029655815115138852464477482266436411950841560412864113307347041345852003967354145783546078941182394303718606916435554004935141458447998842537584739011972661544751619751490793602594083729160550536813724842582143481829053252985001298092336598949465352972401392907840814533783773920123184088510870002184394840361573085411482917795194301934666595742626170275841907558392726019755516508120305711210633549279374436554640874795856425561018496418018372834648850719682144744544083048345725531405034934184394420550657583376159933402364042606521221089261715288089643869170228473561705134074994942536178076182747474487774749458941190185562791306606511527720339243612384101953844165675975418797628634839241079922899513385841175856010706126280671917413666533252976608528638719936063615135665957938953703957508925856203690815719521093214267050465473697755212895438977265946213396741174202087751814316069265244041554872446849253423968065236864176576323259454486522087194281122100695579293904768399276573462378948003855768773729727065127373812081262739915487214998768438974971100127740209241641895731210778494040177237950011636230137183594698298612583480805042819874161161261723267431050029108866657599111878511497607423026263183125782175142906766235715570825372205962858923004151964108209479883445382512890489926854968017855487061926245897337065135507009700919643868395993145237083483121817315316932509098741166699412570559486101338594185612851213950811366601631621494927391362913464277825094125059746287158840909214096395980735975429869393163678532557982965660432460528972086736803694250686979113411944094413931787907359007097920640480322052780786407428165597654601063456802664467937769045209090272392394641818212904935562653051640765637623548275954556502513682100153339081666750768244131475534850446853394116591465579770786419030550344468042450915439355239051833511658273143506641767519593252181153322217245556409836495435604170610436893274288533347281066239754636019272882532518426019369351297450287611325421482268910102554182161916504356699395179608114078823075161288552688268213204217961180147549349090280208037650945099664765779187921633390822773607731229431419043552175504048089209250497635760196394711614638874053883989588902138185152844913299986067587578327706192942426811857174503843117048499334581085224692507008110762745987195944177780290503431953514309300099896136662780564642141588250486761484009885570218050604123670041354684998520529005483540200151579474396493453807470122202181411412448697348808242878944104847632136652936960615366171664133039378100049650893155907929175709905002126957627127039943927209944670152788724533118743382326796629669315075682385629062777065405832773625531355711273309436336856097834742999132663179324802573559696509327325446073056210775316191187165221646500935992152275530784925760750034946088046147837124565390812804740213509960289712838279738463951508934866728896629272620219568392680504621681124949924923955322389408815711238361464674240542045272068708794773646004316157559954021605322319066576939403652956236800109775995230521772453624878748026614403852806558626213192099292752052369189924150915881846432592254159335191848571769134560831293933706392436063118132155493931639653984740880327104137213442993004868927934001851947707324245307471602654451076395851105456119811253085331527470753506051032522141912386158982923440263478773269760020753143270167959607761107578238249928672956539044604307267068005237040542317445703824609601185913201725152331938633414349221857107297563497774556196442167860579100762779226058317990805449446636929679013701614630233105913903006275968951252380590040370607516701483501529371319562857294749383356911016291380733228455469582479272816670394429081104802003737441576500102200934098777206343902803770344220452111474442906436634202078919425710683660143789175894865504686579553529089454145093428713236168662260469918723883699311414526397332979064502283555298627783077932788118987863389355893507770303138510805703337952834664426245073124210150570487731626668252562037496322725550534011270887146140665114876902997711541564511935953525210886334346746763745325611730936592627009884786419729645973003045808397519791962946120130849550796008544811969561736518257493276951465982359582806358183503827842580572324209814326471267439365893686200998832351407898184588680261229758899727044891371573303507937753351193826511635376076106881155156742705618906096657804467659567588366834737827976245414862870158473249012644384059355351098980345583185201634002588558044363817849496522833591470136172405593527567638773647035708832416320160220661212909070030101388927289940782411711457450809074455262829558934654157469669621772614912494684858987534486618574521901896695461894152434632795435402792376118758578422963349268063493505578830751970514973853352149754746358424651465124846051780809197644868563467982469827836852758700652225123710971176313539888354489001066121922563727640970006402433113154143128579281711909334931195790865600420872939474129250992374146664934198455837601275451343769614643307436333814257854240024010354493431914864791733665944853002790821133815180288760092454583438634110632711521666596187415666970415352796371999553926907890485200638838181176829134302505381366168059248318714774995170520561483868575492230093834435354153464071294656720306205813521584359914749057474335523856844566874860064040787572347329129184752626532153724949809565982128070306058087583531034240351976525884536052167089615505958763424458148080844551611259017231522691450042019373558738635090445541422157744484031371825383994119885929612367232709772336812501836017177175410645106930811981955228964895416129315309152455875866918833168212408336792416443820555651515369000822441047973508955826457571536717992665021128663383113624833548259874639954613019784480871608259206771097796301885662547114998027388663410811526447605755271256372165359327519059719479323715339959066880974612606576824412654903954050594379477188109176355574176768374385236234962668582016492025125895106669677266312063285349830237218443990275945255659958452084267343591700338369173674555796997858741311658993134089872188009548870301601801681387096568405354955163860152344578303686502541229129774019989524406620546178414423606001225891130667413787233100727456478116275186165920712158941280226194874764386596030451806903558428719843577858547243490547377838064315639759397860894655045604402830865110799736617313622588278281904933743183803389398571795031820743383283909218379935609671650302218020918840680233919610289908034858432872728535780869308920813376610330659235520343721942767997794543119985436512705547313235020388061915233268775794132506306638398445252771130774408532948949205338886120715863629670268535479134537416199788803150389564809272289382085149549493161888376236964472366546980524006008767473462808581329693565932241930865765294975516604767436769097208845230365607541162532912160400589653930870379234575483179400548442843729957375495469373475968473198941951123885932866705776236582088255898040671349231653632996841013427140760363447038703430082127565879769258359847455762884406490466342406191588107969611454114971425637223955291374183496740954524944757386816684499089403147102778671320080466100303415500028950423451514188094075556823994417027748430498025620883433622478014450006990886381499409972301645118104307206051688204023706485547810703430308145435771289511025828855619402171136351197368735009650919485014067356994617666357699751627191390594925926122644861199738393838312430745871484694581379939140820209507829251864446971510358827246167830129447376238317761052712406694743375952739906974091347784348923137933627630661864344376351534094900964149561199079005975352718447556462926482683737175793203276190053243731213427962708566682814182591236120022755863911717132490599933438559926581766939335476184577518587454470583286160126330769426299416755710683810478956356144720052324273839670649767594648778825254719289992078851341276624329980379630547374717398494838447336420035689950836608530799718999980456726682326935027422318715016841336588408200001773423775782378431058051749386441300532118499607181944187605866351916916940253661825856606860564191710082334872240451506774128063631247679660183809740626302446649668984941273826172250704777963225028419524104880827828073305589293487597142299585501041321382588873375716540465879052853601627238038170037259576797904950935799033385291493365173833585471891158985538354422068130673713169228518246790497152328955504019626595034004607918497510239209421342724819860119115325964403854026666781272298559920173719636222537401703372957667194677814335875554092874104994224382720731903559607001133819789088094576106666910275434765149592288849136198364105724180739296359211500432728985390406957039441884344670286284087712591801499822167660606713998842424178281869629734167972915312580081035554667569392167007077780742684022721003731180558623967602907542392154928149077783328106069552954698934490505830661494417663588790878117131220560605823933700960325209033539719871066291262898552453935948856724924942671987358927830489811122304252117674879941858308470084905811837786601349439980717310627678584835456394306944722558685513761883597829546149042916499592499199338890863120134264205616690956676550928822051488218898057143550006836329394449549799731402392090717407506560111992785072104262797149196790426829911600444672605144125127023505600328608477473752071656710752280334442805012646521852213947864487362120306232035607897201696797258502106364684988815704359924582093008689799754921235416319946696679606832815247894880631377436606950618251329825426706796803969277222152567272473408589105058161627711208048936635371261955780111617488435324394775787647631491456670445155250101801708238235367434544345798949566974566309001019269369455101509769588660455450212248183726921650488377820577513496496947198659704025386923077893866732448609579864763961211210960394482569322404110756766325394266751634703024765573334998007188126782385903197589818981044509750860679348854841624652455176337092908615919022760087733890442103694427942648683624700967270674889629861046159860800136555845479055635477494846755709761175357039857256513204795363708561404960056295637917170191699179584410279894821855312154730534552873353487221781514409369289792761517667280384579099635720412437005899092037341354602491628468094075843112960355682173666933915973036899327977918374724343295500853637745231260078140674229153121176598596458638026630376076160993912246655764400597847735996977253284701206501216416817408096827318748660604734753095334380894950355764279411500488840171502245729905211613930344179630115783773897770129785459175769813291601068111136476239371037759799148993139583759331041291927120144288517400477546224858724587131272476979551352034654874426534450389264245845885491261682342035161071225785286431457963982174108090925062745449785630505768840777645743909937552733860613099625563156318656075100608268076836484822164237857096050141527807014408739321925384305186927637621720021233980691382813898039511618133337315176463474100149426524201097528410161714475784156538939374452336403050880296445873807576621154080386631850428325876869136022996911913824340933784006349300218765829822271101927567236054174863645060365206575258305848745811954554570915073875280965509623053934659864101997162653016314018572913517939382573486659020699408340115281921324910581740668857888567232785774890728716602015763003991205985682604163246473423119015954252291455731114754150991487867961651337840881585890716054389189285983971194294865412264733713830767803518545575188546103490099728100550261925911259918335959218546836900815785391198529762514499060742304524631076973390739559765936948961425687821180415434781160951526766922082253978221257852272274845128379074030600675299262165152944689101382643130263347563512316189201523633963815971435935391507768416504206001106318349246537554245382405234954717975584588258818698214292791647278591019550594457532328993740563856370346330110181556322367013749905604495622952501628356988780937451405090451592865913982074094968442602705089081572032230208177825822613296498471243076760123927651006263619018216814442091237516527544166661628344157654874971074494837458039982068668036212122050279395089452153118206934932724270263808702346479236472964382621046628959608448055051581847609610191241259425527546791115246009707385174594001057281083853597501585770557509686280456166129906520532015484907304784295753592610639100037329135748153784899187564098015305049887203445493260526411714683550947460491936331448659780761413001156757571269904936368076996779565156431887779616656871218529494283123413649319733262767595930310587094514634190853882252720095345940440399336193772611625097440217680769181688768829723630179507349348921227345797043252134576532936600504930088528317028491236941179077837770852113565878914232266405767586384998606606223187431335063175751800701233999114619774733446875717320151370856752371245162279255749470156094637657998999220238193359384076840966283717840203633382784860390446423241318464442382700265625810456392419340253890822877704338922552914961461001460658187027560905327119359994890499685521663251806122883817486295701613616661781081383191153076431788751884648049666101417133622853102792824830467363790687014079485258333186200895361985200261254560190747317413388730390084100853501248258182548669817307576504507132312311945948208917149745032039895746339624138976367665815082089368917706997940931240275751193436662114241599130287270652300969040143145236969524587521436638715605521053350487020845556721416982841445861498574468703231476054526504791248491814466337120506177714166828362323084591312451620602327191423742149874355268297719264858874944917552417177800729849205610125882670820049907511263594522136290987875746846839894711951747505068244457762726658857928477529383125490160914441118843325052369586878490062379706633245500231320345464433538099651938085958761762243981764652487691748418971525111667085901246121317541386686643442281159423525040231329711809447476060886132834082513593263567225933607758824298288495575231523521467074766486821505142541187564833865363169085988610165582300108640405681577080051993392620380340636217044710082631963746822012017172590931188289261515445158591366396175905386893981573925477155415535627510282489034014291703207370392990499563396139589431088143084144029164222389606494040940201594569063125171565848237961250104179501551622806552909749294122039110743897388664579089362282550540162753539389113071887987971110009164417640331910811823626116800068984018570361544490158866032877417787961394254274393423770688755289539617519149269501237461954470949957132698817108254256637940623257979626330979545509316549237715933941116403215333290722393533985221666000541564824261483960345310443935802992330991663789441268941929025521002316605274966038462175543975007338036531058924017156900694577935148703205185479483593696074120814326643266269270290500618924611313599187353454793603786242911290154695867691054125816298186087622329065387249443688799036611030245219273854773456584370271794935926125405407113545468873968962912946628977831137482889668489112749557091674499415302854133275343588065503141091182838827085030344549115455387291551330966889699037382873570317457625901125672100671828180922808431614574226035386485532200907531219077297172287357611540502114159118722190361444553741671331012914271725711621469595921781821429590626244149961019147861681675556380362767425490007373155692336415226105447022526311489763232272569424536838093558627995204522145792653143298831039611968341926220739187622417267253955120845106646937881958055939387634596045780336483741414762121287054671218031715454667339298314579587475637119293682427572869010902814584215736256299249551547298202607679587871186663630840631282683491282649136096452003277335118778586802539369843899522561626028516897166142599941805509654582144439936910313968617567439444044077869634014565178608700143178252969293934969311726323786868579345262847574074822587717113943557271061329909483677202727107193022895925908421572473733135128666504355277281602998789471265997148506910134407900611193597004458091715526016427185613753633962713426252974203424424334503554676913966954304031065704594660978201420459054737644820937925858655859775056098459696206304034352344262226073454409126370430011357245933727462773392489351269928395393724326910224977382620895834946687672795037186145297565070896521288676154440099089846416830762300290715942193068608978912969646521401390949620913461288930892511281338810405809291253699004354444961137464069023781766584956939738750160898120633350914029161193514257601949702296466265478365404813938514172996135485657253623605476045580318114543560263896671323339218238250621200328882021783467423043239875649993755563197947674987424074594693885366627086167029672490092831697609052485943562210417541195443821767018828491560874745333302365873414147420034786705641994306097648353102031325482451555881561139338498077151831447673395435978022773406741067571772174865406337544910527685607815442320379034907202794272403684198106094570151872992324167923004390409760922561520678530435212439442363448808194074911478281256048748064456463627374854369267611986161946897739433230126701124069056525727706466113931727509776297145283182256669298656755590775358152830404158282949804711199265490906848228272715133706249949287251367265908949447967172152053488852845426933723188950774764805628226051650727483341187967656302234169961204239439073482605494321729182253239353398310104462960796918770126625210137839482626811615261104465452650800965197345662027622501291498347743555346962322549547274140404733514270696598752100076486231029005940029408846329910468249177943358488865255812657760384433226798322287101048127940006880494514934067829086228572697548177705745974384707193195403108415646357217573014484856111536068411175852864179828502343681531663444373549105294590959729859799988770158213644836088978687558001925879934598505357005828838861732792417592700131470061922776683129692562236481529144418073244633757260135954273049693667099415870394871503454567348224670219451377590419307763595293174336698832518732871336700505063801828779868058635132938359077206078871202987078566553556832248513539538185914088652159911817599285493709426186208779424139649195004525512774577363289816974477830750489295310938035310504010511586608093319139793423658934188241236499306638471232730003392077603215211487288384203139478637283624974839177903272952721367445756560550136540167464920677378892799428161229987808573593624867431294120618106336828736201939715359680989463911825834104342905228209863899658674722701292533388697283500822411509686345607033515129368344001908722437798457349840715283623628298112356541375493532949283790338500808914422024026573708562447385090302686503722169265659939788652096258200953838289826419348788231959358054759020687846136397790339936871744836853210240647978102711669340224156920103363236902058573455499237989186981489080153636614901340297468269006546995562847797506052192585185610796840281289142195538734024106983855602992435892968830379912937645685692478945023049824123496025859773688417417262675862269568725296450414007141746135158845746135059553368403837700239608999717845853783020980656025678716110969757632740766770187069878282896660673894542439241832035823047839851507276182471890078601768530579162143890142560219884150380312372566959775644031645109012660026415171963926980894570690067059064407733152408573045926860394552541032919718473688219849351288640938309630789701848471662703283198597131629376007273563186513685611400755865070329874183459036057467650950205093741657498467725227277195022669323909050827336822361514738254273925657247580514204810985254697208317484736757792308692085215992110851085288695923990814195614401051653051716532472872598325420487465635783358036890966982154771099873175149668852872355457332192152302968414902446550319155971442130967176108927854311741083917723778267953594613486062476620386689449383782566744455485368295360320103339077031490262431175653686699753006837865887936376760476856125809419361040572050948144953508099727526571159901471672402845612013418100452895175633924808736911851195694755047549337890919335491300471816628431546791748431954935610981152279535644992617288177963203507728461299181300702560819805088338288111421032017541233869697114550135423393556503568430381915118881746762603913799176605406418093418384212944405270069746105638079454156100110080455601313218192338884068055103450294120134655431660150922026260388751378618492350199410386368022858558132190169627233833245568419795310042932989284224407799226599926850666600618394135352405779555510474763066891962711298675381942166155614129658956940603107227850666434718636083042496157746548041178334773430690953456055319105440482071126964368951432343678435698357134324801643728663323538567515990814000198160741938985791594922002961673858182153723731432503232748359891453818563349431225585919685562333264424561528974795632559111542249198779272175171680480270834321156117417853148978777796689499636716818207934265622035266049415772691390387495962660756928894374096031140861306342098388513124839084568604311989298904521025933737606303137895610229520144865830744672808384702229033694002877965735729078677052420382955601900218776362232679808575964761574817861335174693037869017581909806361636422770204818920495699226035691724154638011438550915673072340638421906986106764321134880719156713177892694198935856804904196495055291143530827985701098333867628522473221395519042163024270416608661504503621982725660362586782031880649242255766422517689737883310498754003495735432517557424552456763062023241591058518972031682410691321410148737715535714712218215459147151086733500935602901760144589927229575213061314996296911870000729851613028431778938923599896207382153868920430799093411885145676131196663846079132898489368204811505948490436983865844605106438103334347306631767991092338872610507349748984886725278675433418508288668607469322401274021218653046847530935044224457585294891590301373789318135093680331149976497555766893640643118593336451318483099760252324525025931291008118364605556654373150781502836836913596625063339569195117506632899375591950759225549716972561347785007453745179496505587608494956737425059598467460421252203506389281234815283578515864788280925125267360280455120388485077394220218700635723360503218716340071964676314448702858555853834708505292135223800475233884261616281312505815325444167706629957627864128023414327086556188531011947174411089296783241645209751408912346716317748847395256480624805429479346504630077277828656994750830968616296774490271764174475407578753977668625390412933432606389979493868181726685027875434083176488832949033522017154947153640777067658684609896648758748708825954839739623668422729703014721683498988937904656025953102944363802629157463136935387184627793969788164890036748234859567533905585840834006780870284126263541720277901914561555257690615279693563537719536321179657871707054732496508672270988197026945222874862628328148309928196410021011334917132089235424416573712711611486297166250216916239387906692631561146804929863957576935710462027550334162875981678855729614963730199606639289092889011885117583190075073728040308015781968321830950056716898912124926568872948147502672739062762000822213548338151559719815557099887327139000608738462717773672846101724709838137942997432860870858422619263759777638942049610873807903774118021466641918994744348260231517851708477341433034749832194076453384769197635004985822283195662841514476967138698189203256164407227110240737360604091392124140503694371028627179618935251681241533674975259811313933488777784528947563184506397044296110570309109468075314341257635781747495691859708755043965313690926528490623304214105552114377592119147514023105192322123958689362281925192155821883324609906417721093984552516833783159964176574943838196819090231783642757881253620186810373358234003960802195568621614951242289257695835181538856921966812531559273003673859538394463685611110940169426597156198588843832690402509120641487076423964958049751302885335195061304073053323214659585627153699811152449239115287082281090765085814940763067335812075682114804271913043552210754507968384138530102135022544642765223023351320084388118296208038906915702397781155089162696010204574934457539921283283925186638146829912042472686157121003613638680663332479061266757240454093298321903882269789254885291307496990040638726905187901302621109198847406910888833340239759315346490978126494311969476919643405645625504261017396960484720149460007657417196444939803568457712249520719891686264601791473537436147904752344302336726110818244710998885513721306937284496826374308625623317364091255795681740373593359808586370381382061589438763810527177799774146436662498494233406635337104460348745139776372849928309883512304238322124855665200864079337331291676060498327436844885610104974395715772133427756002352028393732942073229755441069648103116624614516046624729913912899570948802645660125760604556366819425382560980655270631431086915101428925306988008989550571080361498271744915157010388088292569126436816808601434588494113916308044324674764854209639965192665011280763361229032306260128346878749052774310255983019086474240902134809302936054057338514344480091218370406069581699518286899218238621671927115534865629087040066333055221350450202578921802203599352999496096662177478492481085979951854330461013733293923960703718349935091883106972579588237716135113906696663869073310267153514487522563234079593899818399706345580895748693271006216348454024072601095829038626312405336691138560814929304016847071892055311038921466782089009288713177332998702374720397405937880341470681392366079084678600571254849097968169849692246442573510214346313677539577033535241239410686920849837802244696703503118713551573090962436314256209273174621449468145150532223585608954841170014687166768103020888367681836885658631766775224628396609690186044543518529423056063413324763279807704052622594458325953952767716460857632899520517843350141557457700013317568017444180945139868789969018429504525599950077289127153555766997944394875609483911252302504807037290143313395840468020115918935127245118364590932438260960534445232955305893555870838450737063131395222798957591592247203917326921470796720735935223593851015343118253779890909672369113903013214329491270211735484629686983837685034062478874680676470840632995996641694036522113944455896255568229598566626306190475237969476917094432892686787221236724014312523377462822201500459634249225120166241184427743340923366810338633458012935507842591810782672789145324488544344870114424486663353486730752198865027267521404963687805418034279657868575146325699627338248901359311952635005769419576983399282416793222571691925342904159267032819370893461599814006662293663958679874152766128176693619926298631511618636822988786827159751228008646837349667018367449231837668007583635236031918957320932302253762192486641604762277687797620064432154461744700991339175653080844260793735488181906783745568795369441781100894844263312127055822443286986869536024979762317735652010913877366848190389093607977076310522081342374080749493738969669515560429660413344257824451025467718622688082151507787180559098460164612042757642599375496347074239169219988698453287175547419986843167182528847474332433544819793455047194624075898581294611714132591021633093522927761978339955552308098909633213932037023857393744732920317456896312431811123903453401974629468150159193466226649811560757844659643761061115031516205310015849582575359657949848727740914568364229841374036484587079816590861169934413067207525009581215877612240304601743074727899005383220978430872388360809201893408320871463068862028737093600655923806341871199182393409270933906673430644463768603270926701858739112493321266535473270617394941614214916579591046352548597160845949367824117174334856395616968514516309566259838751214559969947294519636194612187452894415572118601382746721289259956125365994158593225439727632268595045959318328355688651650227609093159238725842310623679992809726723176985348982470419074523571524687040565336779125738933900065314854420160831601672194406267695900538751470633285777893014880152655629952325583077892093626753186885288482851540883653664973022530062531494009534719551142527364264681462381092423975516916465112460189307178643164129636788936006511793834398897245541433688249794657720256200788126770069591914966742280276145138822704184499651270068903347127774845092147343281086867463843661916683147282288727777415906909363495423770180629070031646246629557593151617679923219578247616839988313363717310768648088512340933860193837450887825832650779434230786135726397313481101482317007079181561329105272228238059835815773662849265058630548291138881445373619450532887385862116401350370122055684622732385456406287697888137455803030065808167733339519555900923256443404848780742831281542629678095426425922565122338169997114504010431518739239807254404525741256382647675149183739048608014983741565353987603695394157595379527995192147170917724764495086065552766723918830957670894466621788187506644040764454728418993712560618271972022919324467311729909606926317490977958840334482336193704068843289947948647966827713370377943426157588969243042882663883274253195931994879429016553044053870179705125236231091593941198392137123527813059985477631241483333711443030906691470279249810839470481522932447976821952567287297637052953600828224340191681377570724589085334650043932581033314251243759752448597047740897997921563902017364211860038200523584972128586957887935908561159747710370398993895753279007103848360005739198624454464554572455015735253533918102408063777868543325411307960207613027452778031873327429369758638171182349753749798042060331080555160690489091507011122678163630577255836315281020230385961246636373965968243284963735296256594415763002011311503556269967139771208675654213602660052627468389936257502444831840431320445635282502325658031116019413782029913054283738165506619849930800673624424626176165161127739409819786821920036715006595295473522850112008046024691814295374314932491263501386687139881753822835244383132889915790330385296978135153595108861812432781444485005103646706697541968383459229184307604868997663507830163214538145165769177342542072169527555679620822083161772868264089927688924941774708557186813220837075306330047223261290544611387799319764608044880472777585610864258162331198351877550468435858000964044705335401339538446970566579564165178829116476057129513169543412965380328834319290973205112954854922795782681188665687448713098316815806104551093664372508750621278483769397568243451374406583331544229966978171686346966126797814859197475051569988488343661944190958450111380109111376810782717179333005969010223192965789376961680861108554969134740240242877800130564399036743183531011432792299201430544003921976539616553314450320192939296969745900641094458086689798656419769265843787703752225976434942366593134331544875828569282501669867532964778488742500287880965243588000033023425662200380764036156788783327252465889771276644345575304628568566768892202983662792542627150382356942836721611353902071397520574214111066279783520733153107537683903044963459050017718530459228093210762425319019832644914755955492891481948909769387005743620446192684413131199454541241677892608282185978668140811709881285108203215253585744842287138558092139356535598632151558078178799030145375457738469069135945464031714047433922163087909924382626656359497945897321340745540177236141174393225238477206606880559245219254880563468639791600561857789010415522718947061410093000560652843862083849361101894339650060046707656129043435801606573707033025757139708679197659333625354062272333505634202554991301626918804958161450616190384547561434776425473080797356438331898051918289790440771785891642418984616399820807093760875047733778390003715744652145094775130112114038559930440607775843388323798528425524696833275189898396640011123192593975120552826212116384708597838368779655004687727243623712696702211391554340331076306756791814909736429777422287606714700404479017105652714692559775758349210280161469755483168898554800916387823464796849349178135135212949543580643169509118798996239689173260842731376056941026454274027358944473677832799698902860078658788337155310539113537084275471523485940479777482918832178356167224277522977618017723766051783361407736409363094063604946678103428815781130818603224449321641442904604675077431505632097245470474402718242295739559953579649387059932131866493877599163668638231247564747922951432881908952769550673574723298129770131917293803817418465924540145656888529125093045545973503205160348350025058754221162639735085431097092033958513764544001791353977078511814840785758117128525377598277540240168797095615528168755443878572959799837866634724887422816634183738129799755234235393001661120329041475730643351356559593446481074347940362455000424068893384445743612518776854654382705836652030489116351781256394324879670910586774133338791697404365882645535110702203411731801372870280411967916454281954333735248747428264571524396557842710916043577173534138942161943023620431330820656155641412659516777644332195736771947330715030367357919853689998422700100159721677316952908382260556847685159390073993715638452681824362760570073387579107589649407153165220413920073060881043187268321821282336889876183620847417114999794928999322123424686170023002785075517912551595867103269241583206410261457854713228627167990167872589135498767103009996433607042911121630952788348981693285214947912869820992299161115845216377688869278095780069579406119186011704685384705182267613121418456628462179218291380491093599073657277869914522447867999051694431749798470609497172279738773710184530080201656410662584114324101788081215706695957562286815070655782105843960631502651166026810144277584119544749215379799896003953009934145873465584474273494086662598477839447102082142484508723772525154746502357683810005713904330878827870255272799487206221518802465241460366915278511410353942334984982163593396457057558227866893362404055780199011202894940752423073208728421065827472081946745233293079140342928988593280692081718140901616326992808343144655494986557224820444574603296543632066138825030496141912121235138921197656076092174694934576133823782460379253759658182231289054781207121570764540879213272248481091170659347099622178060378821016619292695297086249546808800216562077690660864186293702722321100809296329592045472205097255807130465174416228682412080583686269962238790567781610859129246721090741213519677215782081164431035143042457395467812130685296374095651698595947595132487217949739022565100865764480123055121781451524863144518693487901838491731476225730595670353124393941600033956300179521944741467219144098280891982398567193032594223908248959373726154722618646053138786167494559125027302932102901604474823977651223826611733313891586215915207498252088448490707633441656805681181079152913218686670388812875202082835197774694566706155408403993192290625691896686137743906449810997665380740077367837866140182458313293757799020792754976153038736372805186153457905093989771657528172760242010317864555384003643611227620257239886032109382842238329885271663829824364551033035215920767526401732427837943381714389220544155782735308581935567513983205740268683457084014282300125147667873993329930138893391382605164982358618613905652896248291309679354452710712040697183633353830934124251015200014761717362260946693566191557224406921981424666608589311028236954831355117798008901407891461240800325461886374495857711689294215678404925489231625894312433994757075819591572481576442196442165393248847514138787653787765350584598978827271992709090200847102820431839423981970350134666403251135119434945907290710809113460558025573386379578756094290305713808352933653954284156987915187591381212690810286828318809324495585264888310452662122842802030317750634082086961009816587279221055868706901691650633378665506944224617127898479042552108842116708639883137473079868970807589385408473204033280409892914715122412270387479188521585312532914110952795116467623039486807130399202501707322354777926524450179745846521970296927463375610794649530701203164752220104404553589879769370922237168416770475242790039701538334953288891785564856861099648550051055348559827640402415223389972138180284843351157958209619775329055067808878952044133378345135500800801000221579042723584647946211493788046856236617350093852113448516808447131826545845318747192946307036264136537530374362290461529283602698288202039712364320716432366143418977637732225089366309352334000423351336139081328782415410096598883936622196006881890789522309001577759642641792988937814516765394612764869223453035216781102109445199013586604303556968795021387379509739674136076368003881145779269191243828855743494486546379786852708459046879601251574998429662327250887486837900649938013413007599682879073527263167405270880263932549257972908383042526281623167626390664454357965270058476908942313096441422321481462486629074147345562957166368951998242351906153965088323189409769692032018841311958717493949675322437479499017043272219701276183474177620984522364395283484467449269710958099343117530330858199148321583096175851066526031677836913053536944376418867278719345972212914283992574690641989437101079796682973177458250625723543632577647677186227001889916930261854863418834981733554178801622447243192615016788054845159274103205561527380953996847018294454620898813680543636778522270673149320805786872906166453263384339040491360671923256100240428160323557355835203871928650875801704498831475380836121780817968052836690283704477225162412116901960393384166081816733903549930720295912353042080207052758131017574554634872787669402923512413980837354238525478708022852917842665966696844861501554086226706684473558682193098119470649184473802934424377599963996323491488133322350103205806877775628901718828873007919071397276655910352675958783967351623484534456241541265778155116096842788235501488376169740993784897692909574242161385305317511933327514218878060011051783937449231263245749440807992291536830067121069734704887415733841261889942758502424438513712678163291951707511329069859259039995127648510813343086706367002800529749175581488028745007995549169846860867887012456002361374167307515358468681517580506726047217864432289171275720204841469163022080018314973655614634492119042976516682078353845921138352917803162741897334567594618226814924514565849578259041337930143705672015936020384998380824932996949984030580167381244586335291706009839161678065634776279778294452451441768373673418650137094873879199549574373330711561009515573732873854019764656323921592575531233488795641895040102968092814914465367408966204611284064280120775629958791883801639497718518945156447904925961068464518513105520434403565755675766467710194781702981547865977902924376705966251110702548141769105175756880776586200114677502683475482242906335991949421891715642755069961508963511345078197544436063220334604039913109574639000094673980805089640296384655088009704109119149682644351990685666514370407694192486905694594121436706458444922054952547205998707556369061443477108391998461785158400919082661908896879023658436420023066039791457336185542076853467270490444879590085009719060734590510776438811415883876658315999380578051521315623297828782927467418106540062530776953761118938327503465920786924936233058480504214067455078387747292696184804395042754496809733735178660835195510218661172796288306671292972739127284344536105013757038822783190465459274983384808472914666448079892167369659579417187563527016976996770722586412263265285956279424967996517906179340845594145154696748841422616263128660820387239157927503095683364726624850121623978756959151939991317216344021111486252411699659121607338797122654715259702864491854254539083286599866712635405274345423202095615888456674311602692832940786820589677610277747668661443676484484488696677432851877000611425365696971001946020543197698678317845508725062871817541345086652100147462261766617982229393377843025014701989150126936796823033024238264648997643155062413383770239917588982119958004974893331971168305467875627378704129752873120537933703153308063889243351895494975369868351280765550315924059164301496452126273239733579906042472948442246869528741392153633818176183075816365652503920638611187494806050171210821287790449421026624060451675465891825322105746137929159889910260987033381320712555877777284045180864438060506437619525324717370538908934812964339711966512376878396822162320708891281139933754796978550003282341272590611898736010330696607124355970095223145869112160881876103156154458893395383745906905236293390908975775248456068645813058259678337855900599666170987716473068020560739251904240514791563130685035751680732847286891472990977898460323601580206201203960434079889453752311286816252422708423174363377962041557633392055017250372922470152495037269853992400353510622615553628924707235079227024976116728448455708117204977218040011777626225377963076679655489721894749742085737577831772637818583273796977875330296454329911818990349346777144961101838928433321756168608344944278565460696844185189403210474485417004013030238462905157637695632394271308551191169556569237894609996953209105968525303813429489549958890648847104943165965534027366569284188258929237760709857430132851036104670279427435317815546611309395732622410617993963586904445881690907574674502363209281947679372253730416094362437830726256882837792225523182969509798115554883632758203838039839478288671789545748863940287377764380475808348156785555806773529902091671877855603177335709029251758765329554233194458891295705571641860630866826535735264707332855823771841545620320091032830814866737467075256285308341386652911976985495286917690466068958543786550212276336659153092808258765825366688674850939086084145833660217326155082626611294239472180218010528259959133345229665409947162411171418706500395557764235478239411711298205685375365367903002587247518831649498456547149748209017656802816608796012501061077858191988591621106235632985202858143548632287498020372215505853036867315381922491549333812253661915049213563374945256184005719326355263518692379321920720376420283582897988603761012112053130443349383822389787675114742053271722299922838767016014519724107015376287335489079803238816179307779103065437605465116331704223553167830476682067314733395381142493974719179771511859896177691130183894063396001560538401308985065551826989413802912082377868499558344438095019267855455572334344331798068412329377052434592228003350035875328942767605923067663701775155067689170950122034830312358437779175249777601873034217420128411326234298019238780611406113427855860386598092731713995234482761798253938421227439580551685706847583810914669998650985000532512233848039274181517486447651398240192593304302321241107990472510915994232532660313494273799942070226658239268574961931208626199266821932307728807532201478918662263061434131896782763218348049228495946065927233035333738045829662949714574201427247829315618796401230875725551293156736395110297286925468410613673702389419959896515498043842888513500919360007937689490521962178297363911016609037978397184371896094716738709869537960279114322896378855160689964876703715335548289663270678627457977620792034712001507488031031345509013725853170102926438780236634517284452720344615002009659721915741267720844301936013984153016657129588474889083684286411228507612737337675832555623807095443504159133658874361531463495381766970852084126392096935129605972993307464393538202945033200373405997856471492147722285871107702657395950307080620739952641815138640681661367188326782907998445556373591427950702955729597999527293402482201706395981520914774677957988038632826243717727878716214184079772300270517910946529624875296816368726829856732644851492949701530361761900914885072443472776652860537826257482015738253446344751198934882917281619209479856807483018772889572312457882754262693803547419751877551810290846263252481753895938875624352515459538122686427492532761311987224056519176473825951156983961248348749915612692676696356458005352075039013352216926598589454705670461729426278559731716990950610795450180407534957144364354863408088576014184818921321606308989091265638250543645838454104632722037026353512689122551607365141634265597952198903559645253820136411366090360184566007844870550048532267476975145791438639649074120439681165147408817531165903575490363593926623178670224684535199042461147000446016753476813056052862781492012653044748647904743350770356072577482109598898523223344039036498119450570885459927240871158125823118259624207486288698211984915621421234759565028490900498322435880166081913916946702267243057825118675536883483129862619777827244052405147340354767104977107788243144557725376475275636312252554931795572576231975008549194031473613819811978537697955299439842722029013031123462271993818825640524068596467957205332867068666129339093459409473796851496308011904646682712061097525270704243108988995294185302297407702268058171149242638060160716758715054977924910974384199505450781355047914017761241467378137404894974593179943460437055945073437548458344403930063679127145984651289374012161946085717562457686922129389773720148924326839334664336418116740941733958529348409774105969614625181618305718015296260323722876447095016641406921500369666317389826488132546484293469121623821626563994036754987071646604927385173985280252878756691227023272844236209181852250787632157588605828211446560944580255073683746438948386080403938247972366251168137087880668755331946435942510438364036427527607044880429327327896213369548163117790585033128291742201942571542244305551762031049732712565511468099452420291008706070033539571680795224312028963260648662092054598396540185200247184254132718444189851450468781438070764506872099883714486061638412593317743834779037439870530043903483654581008259620501312404239313965384226693142378006712197367066264207349430610438503769673072379168105085491979981992146910722812032428457078965526157974385008082087322247628024943255715943248942873149172287246262879044168464965018664031737606724191308751812599200933682617307660671230896935144036948685717821213407084459332641270992032011442018846673664694645765659664836161957537034609477534004312674670679207980689066682738172638484374830988188755896112511367179613375451188517341162936358834879396044290692157922485717632388664887182170356426853962836458256381086492624955219614983817560297372810982304833248638855163890037778212446400171929142929171836815551057027409089687881532433779574874628781810201460031414136629017178438035249533785303786029247753823062232355336131089221661686764308838297696779034499887297754901219222864061214800916568855103695662506859935724671776833740621912678487228122167186805379906089624372895930662251912755714694721145052263211510990312086120983998970272703341656266994242769265629772944143952863026264741282904105177109198880573060936047419223642780690978737350795690889056206363817152436247170079649280647836276708130754130707003430033988882756928359749659390475694038466433634831522846346637226499170142017831654072811766419385757746724151757175369752271655060847929812914370514013685535948617692658618010891565045114391740332857809239582862733614219855416234424936214869645191851056602142065173567986882533320346000408051988377518995818268782873123387019463934675393543668198655507468176026945791740939989226731812739775906785149649630535421610601069533131537410247467846131003850191601693930640568548202387879424232879554611284573158396292231892653969198471605419674445041160331233702028194591329126767704397681455943662472532654005151548596634469057630838730429256688655181912685096070826513311013455730502078104108852442378059928947310577682251276823150744696371354946700408210359820027633628486117028454845204710236966860093808527573406052206939859024269084689915355164635449068339194998383138357646472939691494792848751406758308916416606367759852499498773969872450728596657423426241627671048890567031193383714185303053350074377234192712650007849792563485567281344579220872003987718645190380690223759906456788687173714413308326328533266212982702361493197697470904060201420863725078023251092128010134339204241592930843300349908595593315181121371125339561582394531695099139507209844636901856468194164508108129845624232727578378816264134628956132711770455951456937034273972005332877617764567672657877221242753927377279074584891521572653701916795640018317991591206552297510880531399852668009906280095889461017338690969846684752850391565633930895024065434054243595690103902521145974565498835485976001641356896159596307468619060334028195795258319141417017742994379671512181633578258398823697473264851390398645779529009643903419583578981076560974235734555827944260952314268736424214106115189448472966504151590580361637259270429036911577033633106277923655851985483430117024908178392229138540885694625212637158088638806278889773561046292157224292729754026441606381592468341303852327673223969163426251191753216164086410051521351190034707579437574933124198205477580478426789887831628125327786889481645362451734948219411474116241207184306076786803280598410907101891736041957726823044685330890955866349149569902587584254418594499034460207940924475975317322331684012594591855828129110010488155759019217550030953633094021487026607277330480330015615319424528564494620346123993020731926356458064771865511813107823443952697523453274026047460647492192025929090391686527509625025467985374972333693602506721518146309712896154834486776243091364618868770624358196670048522025062860033180898561406911161087287027533969019393936334273999068531128668838279050129539984188739623820001873028309365320578611080124172448970920079234997593877745537806354058534827539995104314623102771057630425945504855658089502151285251944829311089781624179154168923159314229309326450585691551037058143351035388573288225104282832527928806762045919207206009909498110426803432421844884238986577499683032761194920246131108064724290310738661597546453507747792159991385824557923778371490258702926477866924233736414535980835086268945942430826647370586367699757376998710212807668433148384495107202499737858138443825468377246463610722157971671506985157774512340718894793464385644264838279419537028010682554005352181934982981846705185116446154686155772274832461477107940329186913094905047052493595829739198521644120411440565946971301585856417051973778007050839599785950476772696922637724786154979325919904930358750846705052280526298772536977287487143815005439093633320882814177076110311901191858622277032838911165016747709399196230095837413867368724122920577841480356822660281342703579154948178394509408516503093959225176548658056647844568769320802084002643401040647851085627665431517773514627384343933316767443498973622722942150428259215338821633095656530258959805011870882670073306364998674706585623843269423241320149794633321908206314603539392243519053257364757402516683014406916114690632402260802682684761432204479454559096077481471431987020785025018212279342362894239034567177178543838658948137495698595518773571099727256696310899234129265089899791137821602738584437186960384276043500261647912207616107294933938686797149673372624704688567270362888271250487113374079718362338439059205470237020856572713437862996549225067990796342547689943551384526757793034173431495021375327990123919782497075461253506938125682148042578673393295505950554344209912303761938344473019532436182057626602764302256610371277374865490486649365709008955688714012518968325068482226049843938726217810975183148197411277611992201191427518610252201189283182790132392542495336242147040224443304732956119198304969793251582022944604740387398060573149811092383818120634286566655777596030271961153250223727389672725243952483153712902350078919301019948727498826498704618557402676687155702429984126610866737354133536654390024920751546489181628848228826666041266102790412586480150007294104820200936399296991633003903122206172405054705821481791250732486427788652130528945962668037641035081688555237805132257970436246224862320047885109125532669385294089933782872829154455663385899433440278227209333984915252455038044056062829145421107908363183238664669353054704545303593039170612117519955649035004097729193886462806594102969631172423687100732356947693368719677882309986450814558932623364938791127022933653644897626413677155855233667448894740457402504942337827453953547434859747985665945647659291439216160128529215765783234263047406420228656755974060877882467052339528306228120689260183103495274506406965796476647096114831275047823459142307355824902875481940200861300973868798740520383500161732624072680264516950233655645471936799252997406671427550835199254086926759277876702021176076330459061902281294192522054270136568410333480516844294331863299416368591591551022626687066944574550060560204624392395470794229720352771502136377960704730677934522180470533138009076538350107650539121793749718895607392154901009776488540160589727177019173411866021856505011147209689550078723760377239408438221279301613989432372973264066692299395809082217599039199940361706864657265968093235731280399619414798486597681788377641170458383051192811731096871448658715762148943429903616065903973138402103665110245116418401945473133245572280784698838389615220473885514677140913163099050472256461224941647616346134482938564431598914753471292760208059551882223269855437868697866292139506430144504731195179398624190177482944705300999551361099139626415901181292687023830013058687961282462666726564012181997929062949217241405773806051922695500543087941881705477700929041844585604720937709240055733808907824316733781498680060302424078093799008845423512511293194668956068872178163743038711384146808930649066379184520388186703631693756715160955177496161414940841749777340133988641665046670248781858285945972992310296062793094302532835226711547265507758018262431944478915238447413250871891747062485461756649077369102886094568931374850909097067353821574408047948096069101155713736431680029745904389693673235236798553793056355218323833815983602704330009453747937528502841744613846227042721169566940799387157162362705381266920882887922968730046825074448576767111118982965992156262828982200062896781413744362713015284880743912556769394166990776729440567301083326769478928657455063596970578404577918762510794084631786320474426942716302098454410188708325927566638118165297574589950088750100503757169280415282728889072182501835246364842243379089674654950650568676814873362704486877950314949083509066611856319385210948311361415572468812996521657572947544357999884259490252979827971728819871075054172093093748759453162420848301042097161188139745921764124862313495839972186129180848864744109636755375124962777007162224789224008749668341957745946102480558062842594174619466808643229835779819784095346584735388465808609867200197875769392897431383513097737634409832074580499636944393213241068824984733449540494030907032515583154684194987110170954414562000412886676282066829798732487004188588729698463678362661935147806501094763347100029915036327156271811624277565797589037751865530883907910872359680031432823554468543960019538992346520545023421433343799376986404777423072352666755702849695963713511911731165667555390008215607951942302665050330385974043263116927309184000478002557483150822464935530688918333502012612987751358610414900519296986452082624526115784728814354482526053910083933852616565209269500638402967832209428871570390465978399081144388489222897736089025754679568764267576419394719556056140172228099551085427134377582047752295667764977662960434529609928414557622527283847988069359602378253859557316837340579815920839874584204289479028454265073566000250310833951280625911120019992560022053529732442590468634231754755447148393708831318833847530928031056260543496140141263497216309907856453689573203146502936107317260152728834734081879769502813559132427446675692435053890388229296365966700221025642203339372462070091337873303334679506648060604424300379338064044320553141116896096210560777529237669881737778235055695417424202095292461158588428935705755082490991192696148391834336089248069600594922607556515315785823561612581670966161179370799992669722071602930808341019332156883038730042272762685620282961218393432342653840529149792025575794268704900555714166298403751017045437539688802077461650977306786915198916121859338154701177677887223583735202380236726560633222824356481057142709458382227959875446981656488962564110886298323598830950532624975346932595234785226416371004124754636746761074699041731335490854711159230370918295838314421512548748942356477066273917254550191951720523518874990366155721018337860788783213962491489441692165195926030878296165592928037778818921111037712365677341883397566850737538505041583484591946882551202640334930018038155844385647668532067288709027368308651566198317335200180182726862538640004593890859896953467695991424549184250997066450695459846420485785419876939411306043766719847177705230097143205412590719221909590560392817003576125019271285531834748076603881194926952372667911621293415795353283025920300602154613424271310175152394521641884767325025591659668908312959643545608931647396595753382808744059657456807863249102890562639354392534500223580979306720861984840869645004906542373876911801083137911210359069294218052386035514337837847289522435101029104899852049520279361763401061940177460345663817572341200394182554400256612303228040152288977700852223398121173809647056612537510666146831269253561655200688089095228029207616749109575998265586387593298338904216371567445133104132086293093176059287546674156875209947078226184937213238023921022957715941911296776275643210644326959437953558412157416422267324606590584148977480339170532688609928024441229783214347566417316139765855498237147800924817814430189417275288775769744677047213356438876574116405658622646398663805436517077167073315198835987102088308602718394862550081872883568130622504202625726016463252795784793578805532401906237680834816863289160418529266373691112177654339185218118051740951406801829392901653000309420974905817396083166435809946327080460214215811019759159851091640750891184846942109918420756304642630263094077547683118862551326322278895223185835739926233462157382572425599023403993004071228114725556780977480701964626950193715673762185593727935589832329280849518793232950553107322286087231113463166230109763201218448504919061869322964249033885862352486866667463068137659519832458867970705015377813326606695183612410972600336393026629351803304758912200782497959141277887082568040697725863162245385339620617960900948862670977744153414316850116158449079636640111697357201061448875453121667186115725811098074624543424132204954412956169374219596594866866288813092056188241675008216836659005608432643699693149550859616722664881216998066647959912815524170044659384154564244671214231966154793680655957417662515332019582554447959337309454563315904557906366138170006367108674461815871529961102586213044532184152966837938340823887050962727683220251720288420058184837516344077711279068332705532737968290730083558309425315861699678946862322350844260109953501783061967199485933336086088540023035743833997507538960022210190312946188340459355027904182524665587523382164972976937720398346051623235585482980749838613805339156293683092894056560361502066634419848889744090318837555486077730521211873423118064072468348618115690477320223556505411372859748933290248502731821604697638815718931474325884758379193727332499576375306669020819409923998010765968656024380521100477520757377713813262048448484133011890739996274195916903897109232587866203826364129198551584529849108849317667189814903444534321164184062400476126095479341258336285047026333051761322988275281777201123519522436011891973557958028563079700880051838134606570962999739229557647478022479974211972415971829973393492592930351420037178088259615130921788031284260493260838656385040230284210942651705418333401311851948145789357955274284078766720876715382823972287424892196122867802062889339906241090281560656542936856310936325395941663684417061392571224609257927382834673837535827939713807344729383081810851321796140910365989346559274547449232557540778016370384972535810623024417691977072104403559239574401292613600030462048421151618587551389382747479078001973189267940632649747826129995932857716786987978111495855032160672462501938909241598079439849132770118583168101271404075673924653824486575825000153679686057664325952761729650375659748817761693065637718034073718724664320971521824445563482432630100087918466605260264007171790650386605998449952120180927649011065479460807828065602498642864686533337264006671684713425863024918860577216592132480840156561029962694081996949888728412491210160352058995264688672834640245357080749832986903126706850709197981573975119730651438961465476759302935239182505181864459715212288329252330666342962758818242647800062452313146690011940205514626264770921435133557462114704420423504967765700822100142474032408554067666731394644273996568303229797192914237941668748524612346230634932409999973975812678738955679561638155409731112096694127919940546247798805451947025611435679892580114081920142956703153791289572309089285667611355445498111836135753282980695222534081033916768936623615744729086859130661420218847977303775290656883473072786436580805380845529214707969168691020061458182801118495223478762853997471746369807309358057193058245579305395575647632850242245620709780774913668561334319159311487383101209559810198781239317333267969419477212275127683275470199032372661563238352419892225900866416532516902600243403528722113380493677091173919853198853654171441821200005277610448163717192276956837194109205043514675541977012962709344664107461774488672009216022607157151713069593871575494813688708768358853407965966473306456827493614297424832516994167635637233928006909408779606367219238196411342161256265140209317003862167819867683034425625500038619202016342482633235664630234874173174033433237614480612259282121024643432316160715905545970952927818977286845425926143056162608805804618358833264970093313583447194068368927383951271861293277936411185954316435507519991999984864393396072469502187281105263469086619877613297150527759541341952273491850246987201010179128472310646188621185811973488752067046127102841637266417442911267734003064058689799331307624809696964491514104562406277114341420975484839228078157414585577932662592453608872064800375497960227361813234442725056607175586563979163684245454247896876256749313378714868941638160458919703350148341576847366050571133521903072056022566989438507307856672072940763661948476254299283815123907735858778327176885178298528891302938150280824559781446572797651243939698374241753101035442014529514447847730283986891436294996791117661564487641868297383020573567754834145113507944245310530521621273502638497507267100649322795282104832435262446688678688250307127518585237720416397877512393595416176992231723852037015232027280254469617415793788581678976672313938669119455841150671576862469452009169999442880868312831306678635311513722872437889012209417019337315618070457301919250932635479570682837399665970836012849484652195573790100248038438538325621308777669375890394369037027730646216934884422810375658305807618993916223278934097307055933163050257181989738050173812660686148728783501531986390330698915030675925008168458050666722490078387213938176423669738349194837097160910738704796152264225165419016883807734511580234377044009575122100897241653968142197040752064562656072062030693728721611463248030004683778057715473725683682171869194847363310273707703117698172442068129399794126166247881708421527162056195136049533907908849057913734198108704955346742833546577951977582642136398212616362507601073878656893402858200122810207530697651177431403791559503577363820070497614332006564849449878733868505887698632853180199423789219408031548697819463968547846086788991982591177267068082179899274816577532081448511782331916743848707400965376034404083674486709058832793632892799649361338866835095859198595094579204692470513817629521508558785900961949602969653848928714432105511602279097001107290054577559339329845593380437865498574316384524461243170702654194547663596097518709075311179302397348082726260625833679448146397132637772904554028466248296499048519366858974406379433802151124346624996289862015260625706848356458129273872805865222791036832372734398806170971580755626691253074793474606686212502115629465244193175817545430139326479256641844783004007897807241668550807426478780199497608047034103584774149398078639142822197135232636697605870571563988166873419259002359587300888063283706980496547474065548760338261056173886949970265276740133042822189409884826829130608884337385740723040643656957484764088387519619569644289986124476763599395103544277004409548989541315458760994694432435090624410006400237257914282241475205662338369050007474511204600735605421639167543454772579875288557853354167783187899964360022524116491220132373188412969913425012003067851382262683536606264996767481933997720276082954310589607253029258085653559164206376342422399730852243232929743971476967590261362500494502503503455489847667254830146703087358566861207642582759475786603235317734903113786512889490415097874590802035811860288425223157694166721183096415333490388022719065690539696796187994465328461583646469061983431458690507603395337861529078534236682150316013923712567238375528556323310600815663047272163092710974448171714060840440106397611254340312641219300416446050359792913656799975406048162746186537483291602437350660361951226987236456783509922737180197038085627692578678420252934809760705966374609712521120975369761407473398152298365899097400548834600385420451512240664463741640875382869742867663042599966949579887411858255574153402742575212357659841037216446000219617819885276595075515493578562878365642498620141515802198285652982283528203014360904532016674178075409583545687487439083157357479081694305113275693097115034966861259709014999318972654524045085749908878795560062941056364445643575116756139263091428515319854924608298152398474754047083552289880679104396077392615410965466816952413442190598997891716499300777926729137387748962384183598751495645237987573816583193911839836769974977545828480772908117292998594233010814256362639251881982991439173672383468542602492559489279397207053496506403681845957510245607746181231262310394095795577868887995602929700629207455250883711993583394123679324627839745864463090287981533762862425199734593114472198417702601835748033727359887188041025430652594247201047993766666314169990150877642084796542194431837039889598423589745689072894319608897910418219376305975476156091563807743664229170278348992132112389185417925968681830094564650738070158312104025117406991217782663786393064422403201488415206232398799217339829313100762132932221981810872354942182088148415684419873608179399100488187856248497137751807917665468771041513189424716146537044271271790932978652648638632143090494034976962298382241714699274012514342440154942327527180281190784329180066868085572119259209132064411265549950636176429796052168943910318821274903543840842178078081296092193598763338634140907148168982209755596092370466202991289253025547321483488133134466852562470545253766902357327616299924556687809232189123606281446779004141154845291874671519712898866671468743941767552253308959098529014301057626548475354821896612229787537718549619934618135625176927746586853055033487902789370934123343256485510093693043387639037599936981800496057376286435831084856410203445088667159302314603463427135033593151619551764763306483360947216540094577566952117379348625497517562742195142137937289445251105972589084143832599277034051253480114186557422021989068889214135182828927753443171944583296936000124298368544708767548569153640482532590754280298199145851433595598674240420681478442994915725619719013910921804493351504088513171134316954622625546422743559815380233497984465063025143387225596422227324212111018509240265949090634914864950907027977218341941353920683367256993883103235024589995859894937730274051832946242928149530661236222113285384237133983412049825637930672728303103583485595721405495891790970007971427616753852611712813137251100890975306953166450072402673052637076403968674611363785950039820981929117678251123547393542752284010958358626082387228505869986850583116520821385076454037624900827608031863489485853233298922340683718765220480506593983835231020810545221914291957281371105989383686023064333788154270797371214633915361860539142648749235948339891035819508484209887109683070871630343070197260509060095144429544640790719590607438878318789614670211322319981021372758072850002611774735509665807532175198717182270597888058467127954683716351977309311322944940788259598396202320664480891509474355459448764967313153595314816932554590360177199768119084314937016323447974281199553574066019222728359522311164756298251639101430261725483947231514011093435178886782037576620873934442416224239010989998362380025811888653436729997438439311813839143940633178398551745432807150707199337066380819902491588819862755990645881766357545299638700760865631047527814081411196883516168113803713970804840190871569815485814067348204040295893346712736701831769477115954131564636973963846874958317925911967318682084671805119833814239062404051670118747823314084872842975654303836024156598992724983071878388533640706608080542112814087916900059944063641474910500420085395618564793855442515688463635380641389290439744997516760563176486636880856355780869566392097281207335322919843110996515340249828617443618259269740614756779378085919760585892405402501131753031176210436985414907820648029747853621893306021622388142984641362072972841848618759732119038602712933207997347099050780939995796062949936567141168584804719982347761136194326568135694991320149968023837962134904149180398651977119530879299685173008060319547790746298530879210792860033203389667762432664945429449096887200469134343485753831915234236358243778335337658964780838306708349333946603436712833847586624619017176264891958142426507834856264479023055053283513816166603598386403239394886014637812470449490634669124335647867875241096437041104367145521761733386098258638609550653148851384467070081596502731046252547408842132031777503221984882347947062865122472247730069310852636470997082628911589564091781263784509012209868552315828359978897058624624025034377449231479751789490818896662319710164507960076048759645260163424224260186068142897392022282223958096000978479220676789265937673595620438320722933517883371732668954143367774912129285441312443332296513877530788047212510844479177636131549508796842742581275508540329977024751243153448312506567787912577451930779615607621923504843421900073538796377303337611364735333912609274451139128685267012141644486475094273587164195431617392587805441248331745449458135377991622174109088805194257852491915552554932903360247607874243865094823373920922152599574103708233916641276547849301103361260225046138158429904048475185762742501767810102108167320943868810554441822344567623360362811887712174231561894510062792901119634751669778530938283360340835847849017827279849783982393752099801984907349814146732606104538791706936347551831969412555626423621969906913346629519607074781538128300337680368972725448313454755368410975615347858721379631796898823974248435021086607421445354945355145176682446303901565494843647546832079451997474646813250400647852471575315713541328251399417209902038525124789474394108135464439808600403517376435287362362797454059281467032892665758737005860329771305945650685372392052748725549891230962331821449957843875920737064462789391735427634676411338747265697318465935574818131501113384194660583188275888759679365921394600627098282014309046352944181797489298831084397137108039770043281319905094609940614481129421621532266808888577841673050944142456450156105062079541135141373529985951838775365459455281325681630259147031945957333345734478203663766681142568665034546812301204264169196982845371729533486491584055555106280369630790117421190232854404182965663220801377416234764815498057141019309038349260019588382037262456654849644870204792698798413399365136352044516913093894892108740603978058438389682071443458409622242987266955116227980628780387047452844133695420122176432191902336232881855770410178890570465583602474210102474310774403204189703955086005933356606536077953582141214665130762470116622922789516899273088045173831990472098491869479778000568349377737162201395337558238915409774955491954291674346966121821019201955837398844410850271379384256939727861898349075419212233336011528831673778296105228029172232405891962491142368980344299659189079653082195093000655326198375998682492751334435531701719661159152986163096057939273245930230943413238905316171825868627521730598974072320035644006512707024375854686531310680057931108805725201682083290060172234013137179217867383932284730004181370762544145477312028132169042178740952708989698680898396203454534198295042638873027901874170677651222888511708346020836211955547174359821919771699799083862713735359606070915751763793069989154221699473147252009229776576293804498602891023548631228557152959621965023029754765549745606468457356716295074283162442652763639886557072159585655308166811982622302056348926967294514733843080420059151670607406506402351241930758906926071508340160945738723033414415068052140679863239535789882781384232504407479591512370741592610382401028804858320165829710658891762229220819398126600501275494334071989378656516814187449945578533799734980320153064460947949985942210685303979883656600407758397766027220628747305519332917844455967593311631086201382076845575920113953363204466274779479654321835918650689294546345551338430508732744299927937581739789164718797194296708478652263587049049789471495534005114238039283249557102472129720575959670779385141621771027390812960264749143890489635963418869395319967573448412775416693722463801803272870237390136689282290480434707599323756282187351337677994406790054698830598133715054690884884570850365188108114437816388315039818254506192380905921598576427068758327249893617628422085903981380069182209731136724849873923931968445886197777530677434617944650063845189886141027484221951473719751753004724203851410347572073686868858918280521125776841057439284795185233153101100247095068054049234418948993498080685020262783802764538362297736573191359408681653259563612307638861702955814738583673834318970728776841519481777631006442069482952476966168662562092810896276374356887361148397908376642911597474769510733262247173459328197044856635741265478563125062517243198527872875805076895874842719876501791824372529808285079448275815590212833497178522968850866886168154490920446204821471988898611674938539109029123488843372740002055591945347909721229257546037541161152022776913321597464717719440146390301313926423412673736508053565310405538527919293813218423231828463863704660445199584934855669841716738725809354617086058179286648334617151973352817087527799309665415701774957427189273458746612447622310297484780008749012140917488351086053742812503279257483557762524248720619652904823529612226710640202169122879245210582483202196075841961816109673365075473150654015407395179830323450179669258909509795610866078850603866209188857161175643726019413763737354924793369339162432327716280537939735939833178950507163705124125625855106012835048461725392283704487408840574856216471265782838727117205426690149091821127885941739093035415600813320094897403493836923582870171512683686870945765940588223843052900593608386801551517593177625310394106238062433900192074427767935348790918038011871167949090150156721985825819673671135863718702531265593130832745829278748026433658890143160939754448150549712242939553680065956879446933468910322172076279764753060760215314442195243337392963725714479286762576761522702308351071621125985112194450827759108968650328242333438311339584804955766325462552858967580284593879755597498746840248514492655638664132272545758934587469823714769517850928692161804403752164470678446540180229643550723919571073550781536422692792753708214125288702952992376466223157783096567913939295216530480536270636503025592433635109308700229855882782700617316104513491944446954217771585364194628631422579910746408346011487999516527380317450559455925726960433109366094056641900339304744987133836761316776631308292199016058952900695842376142781796036409973110481092562162652090438374516410451012513389284647127831373154690423943217111791528673441316774717300732400121284262438692168717385282636107246964546050183684687344962077787915113895054203775180793381371786099351451898312453681311501000377241813763364306436279681057702664635902996049622680863090823137037926712354726093904192651969892282158590668083134245735833325194123196148551281996091846450326035826078174614016283505070374447480556794198037899257590320793401908155013383452190529523568275204694031262008301434878378121386854328747398769412758027170716427485590108901893237156778658656203787731536464258446619370158445206800285799375587740561250143911958026775647591691188412086654132020382490764950586417345770095486977289933163465642194948852127938304417809733627090168154217257926528130225889862673366753550433315017630819238570659789001306596919839618825231310924320735419847148650608174920944106484742609991843116513310881336021577291389156651263933979846308385357168037832822961397245162294442114717531905758516854623485987282103813910651267376955252385756380012253124384310137712690443279328741464686985819630307437287840819933901753922091778003216345225449985716794407462861429374172212309368170512963065214563345603101728067046024829493295061091384434570220545095756681642602651118564100823909209676369989474275029254108719498294355254995954850388941675134403439681281244670972117530380457035240704460649835079991542757941246139920745261874936177780717512441044944660962258740335118043728078989695552514421861959742862990690314499871205539114114919028960504509587108967040222142133628538119617384078961468364046638804711558339539385425213769249133233353995912755981759347067726158484829881938398500746713196915607273157099112571497047065874883918276893467184647703319972123716614444488469495137268115181619847635879800009382420654505883396359312359167773048061405558493790687460394867245039131851661190266943186219020878942357708535470466154844834363391911113983962416889719293273804276903062537729397512457682581556398496520381875420540487989058765755050509585994026957112229770169862367118132405560168596271164504133801581360520945737835624188981973690257674868753726005862481138305414753091359240400612837665309947271675446533983783263362076850190613868074500527380687399909080505116001951464799720224544165520195945602845916092526583731345921680358600324242464581347033556511840945654290813103682176716861521567570166954782384108489702565269980265916923134217233071090786526847517874210009714475942464549438327963596462456944287894575244979753115235485190825445837528986180963591483404890833737630295130977126556922200172341950552906392150690812739892765709365886197173775360995253938264727412937510806566279014047857955054124270129921249849133918338864984934657918943515510483551355193358385357374212997568568369936319804627067737074643032602268456754353069744914010264330647727658752549032928279966168368015015805509479305207321066496767798366868503054725423218782198275113316517126285827007491787217191501622499584595778897700908647742686739662952188135901472617442956170681554275300157950933126542971235132873505435195100052648322714965683636286721764035459093939698541617429874898323120902628145254152300417984505930565762141728106108614329623269747304699973629848443868900035726221559699667016610639291145041509435416854450029746847950161963978502226817710613730863724799243441502710438891945005825097379833231183905719760936895539490902744204259571446684354725682946275860903457934778362916593748371872722796712897150908863274164527158619796289202791967308491474695013207968740702579872239599964902443472478260624524537428433711698580658187552981856057145929044977681325569847985939911671319184242334132133357173527437006337142665541126792378959937092124238722322420087165818074727011623341926540513854106133553836638815670473579074674413678834334156418039981952663667192755526981760161409467282752230751167881760448295803397992207114624571071216307087644647435325025769830804963444564958693983886331665842089522600308361264965463500249297559177167529951692207320541836855486549726764431588988637183485249834837645125875594860984265083121007278194747032638175138228986163537368538409676904341297317209598954222235835332391288460744274411992167856107163715827832368367423124353260184368178301739693941050183443221509593265856995805661682164597942556627189336298565686618938276136896374859358695470719543877376071006182854121495203295123164705362687821135216460690542338740531836506912077416905716730672610901049660833418732362278695427556313307395954855696051110341392492887400057190669465815198161853982940510150010268733094790801757690525222154528722319495950740960596933191437098449468534160308572819330205932427475994658405689877497443662611708409506242495765152028860275350531070188540751252843641447950359057886816591809842688336349344369814553588832494682789638330241872723336272488029748053961350741557527091555350842822432034706976268682468724326299292169883800414930534268046947465752109749162272283763437823646670840390982075453843897561808998782106899986841195125288481452511935203985068794086556820416630559147323554291229674505855022526361634715012889206670095080386913921771100124011023054923986459854956470805575674664867923513066911311816909568858033050167325081980533664055222542126987994107705164835476295722268250262483216495979564047236909284959985523749646119907602859227351030108363569191845450162348518978052376791974814737142530609551952666857484123068661494264428744712497199989193410301968515622760792240771300499486209898881716582784419343747654043958643955639995228532868101742380770888165993678534738047962209525639276977007048400429941315551987604888427112538976819782687555090785541209211430523647838435932601285571271446117715462809193158008193912908525658601780695057522069916892038962817528411929081516170440381681240662184362197977140591924490933826530248358196700566473054969650591815948042649209788396262546982877448527073856895028310913345470010612717904400868243019678573151222614523588629967176157593372452879095636524933957840604070942034426087144771197125966933131455599756846398684541124229254350350530602129685088759775496768689967044266813538301629611603215753048715366868113350600459819046795984082590191052346575949637653655308942785637140151456811767644114799405881883365707152398873949916676871139012948281896462457600924101951289754196664290875014563441763433694709891728966732591273372789836604231994514662051333123558419737839948975012032994452691402254825888438889771334871886694320752017255726874172900323765053464496395271705359099322993085123178824767108687199761685568980913766292864020480435467785172236262660316901265011177661789714900641698472839986242868275899490599390924442971231820709407554452077205573577581647204857640652232433353420521475112097969757308972514202974124163221331287348093914101005661517988078588563038746953395337760987050121961723636053607100381487030565976957532755252718700069428831959643875458427343660652999207501811752091927957295174587342414159408221918738529621652360575857762860394512732865316894726591382631522230909259511378642326877242245424883165917989514038585574704532606687515190157467575484945294275442345549492001181471714207155119695482415545513717989734529878561214126778823760904739115695670409355680662234261782661721717292618940566080597592682622485258920021663171757946815193762237111711474138880363745841176595729591791864599288202115097096569712976770644764264008091081812798277052334850179086513352450888269460662246163171472316651688108686004800923101352449253336639918155604005476062673990830154438743504431944355985149631696155678982843652105582254984761953600113661757347987015524785095492532977102226465452292987640917216506023120000836444425412200003516546601298387010853649045307317629129504919886769959050320096710399262920135145950025518799387232244792464244568590927946167775055170706711438417593296453015011221865746214892742494136622477576017358827590685169157326251195654298019260361434808654203115335642567286705875060169447508936731402921298572320551023465852851686191775978103481972247252428346363133222025806740282021977123688117067722355757235588721464759181141081101279638666450113751969576642348486002121082229447903263193775900205837769880857703055162547699507037724253801875016193783906434206848492587106730997834387030522129245489970982512137001742581961551284574561448989223476766834432152482655547108896108668457156097014464295778856427120241047107755374805644174199899309704918731600376260936431167314341828091729892788553505035359131842279343985390572252564513061448338461707866042922065532239853957126562738299781491910288658467665869590811583549549654654270280415134902572918363207455868293280660740429609476082861391796323297011956398445722062901218722556100970401794785197994457174583780308416319555494402613070011996888445937912346720634741076329381804429951252462177237005247051118955488691272616454138125571064152718095385264060216696687330156281638923968224613541640591110079221246253916694521081128858879779700411462660155666273067280709147477038577744804690492048478943246314859131691431041095497998048162958238063233221407899747834034483365083927136913502785290413516579693329866582217179011763103842195162536163450627169577896355846190129460779476701470661197562410296304278463980751065022844363542934221584758445938734224526039585445497674512739802945870157569063110168058764180904530378090070212205396812411836787412653112381309946057042887699689911800439432512343707843455758867504245882670170144413219168963275384562480228029240137512153702114429046549859032821731617696792890059321021910984424161567791916873734532506753914234937172070875254472743789767833237073612911259347802803589271964540710486318217563936096940963984092002734388322205386966527770929239924721255023126101408940156335938314959392987257463725912678264093248630829145025260775717823576476665353776763006596137852517025717223161819826399302743860283738034172682972890670913435394205011559090488589116520171570123009419968855778971510819509497228963970357895508088630225951636819788733139451877981849361902780598622606383401598597948092548052908383811690975638059982520799524995444606153878842043693631141158312774876034813244156018057311177526853172484497483306884083992004558544979179003434624789372231036671245732657304263412710553051473618230895857251466888078979380535081919996657206105492883847407794380193254429954188143142134723224094332596581405289256688819499445651301463561239443657812642710503893162744874900166349663604802314065217418662720316460306688481407590215211721198611683850109878430926595360964294861472717282924610018828519884726147885466380539954347023714071124396788659463523377090050013183163014958671783854470457385860672630826158566801170048837083175330096520988599578984572696907799468473718357295225056026804583766663999523941884999496115084758951704822123077127794295698616077853948259447556523823346507297425815746705623717979042058806105461453637395143671566259764818233285900166415648155630748154810128869687241837691791836362973178834447653257603213692974931690424705823580509604836647597006398186880310207339427614315248600729852173565963151052520530545264208378764976252936996037485343528717270021127750972412433646077497942352783992827260366408411290004833350294170579504157456437218286343486555056117025535506623413258123321088531708043147763457672611208159449952969316130890441520537350052974669410583807407823926173511506373345714258812843335946473976441762482636571150595610033904553686228949440598862739830005885928649218304882259116712155173748131273961427081960889281284437649550241656899379403104881497686940007837268134806125486575020809559110159198802335769675602707932999701053608970314446365809997080623769042988090736382078619647314016200335313441048022100446075415531581820746892529565044931838912932344800747074113925650647998104887759332633449260066191205714460883757324763751598842982908107955706404402494290501915898439260760995838145970375461642256113004467336546266808888141333840293413181246108658785943463136815729594076110262297268547664081382393490523420946536398523625670485233269838449230604757359455480312807090405645831908262460351159876391372646290731026889418073199514392941045530672408165556712756541737943878615443037897711851205604426713648450937911836383121973989874759635525104659319674800673171097304053464527153130112892904378279120673866861504897134904142038888844832080433186480400572091388649758250517745213247703608065364751421505056902517410349533957413079374588088225902057813680652769038046939639609086097422539084164269932797562730305823720995244880847295387883777045485532200899449128490622117133967598015632274605574687698086482324858568245547855766709615734631105885331331455947491963252017618674440179142469318697568012311152540813922251596975019983089889935782558266512986237553959947671537158884873027743008881522321450664267006436643282961536354104607686661880204405553135838941953224951391754240728374741799323330950801771701813107816020190400689731324526874405407713508139274764884712259019131191690523834582145942927618807788177167149590701996138119775433798498169109636133691543377296164595972458471346120125055746996143016283886809801443952803141044566581709965315771425771933760104111040866835073325241028919193095766735302722923727307567456295705194836111195815643702667657350516614329349273724102202505269424137909557367055832247788741900430797372262583809195003146193086122619079615741802612024661823300636788181287399001648780650574455214185397005585650273120819449032714427739237337470563999004523216652447952756465607053897026290389526427954225096836504933750319190085321389609302368244816152692560152524619369351013779715158905271023996715911428785400835007764758693962701154796453142193961818418577867804779928102999988971138820110056843015728110830106368639495476929706812904181695501228930903960965399460802650285021221411501561164885691349279744348960815863341908750495952948093862907593779574663251243883265952496141555467023228010831542990561448892527020617278541536472804976304723494989038530971814046290712234904591134623119172805573461733983264162446752991670515526470447942757632700388708026249072003957518194161148990109579310773037875488057822445914327977233431908147720887558438990397223788004181282906842875282073146304077971489731939925036285350079163617321580653466752500679827826521594531123780080194330357895447708732856513606375256531546115547141297625670197908392841929781221240157796971984777596509502734532703051743757347757779562318363330713403664600989052115673362500902318185778901115326959012084511446135412608122550000881231770530370998190595220891650553958228884428446861538346919253204693705924800255360237873464277878891670953253125211192529298785611589251784934881922471094882300119107730203262468365168566131996285788583859385943673308961152974140387275213570050867382834578751317232610400486450352383092990434967721515717695590884203734224494862473486431904628257031059346709115023982464629000403180322886390562421520553548859320948947132549859817172639163021400528337048821068001348576596468054454855459677874452656193600702312924983309226235691255213239044503884214264556107412004673203117658894859752375037920467820617321578228007157655940148028405924114031052368890193005486375204549027865010720278222358538810445266454146883581610910512346250262200095554565870093522001902941077793190690785166894060535000151009058994108467973292509240948760218202254517177969045277293210851956023493615641454748993202243087112988679635542710848440198715423949172907336562056078886681425388477295729862238126589388390134332776905737860778012017081057248264543203620187205605437124316450956834626683675797218084640048608176879228958511370487993742072568211267951677792533008790897261995199758615724041994428015405634090028557935624821030089583196201640357413006116861805780106861231443368476566915610365391186390396487325611470060058975089003839134436471903848773629296886408309969997240480093954231895893487936018252452888136874738704554342221913414720983247906925668003884005357283668659859950854941423777340391071299990539195568549584171204172102485469446189505299591564567523930476935615320732133221945622223338871687694595744075355768828527054761030867908713764498945165292152930762615264475502627730341619393964649296857825167164664644233885547608890450876585607475292724804028355463401795483334775879792729946202247542090594920029088470752066966474354266581560243939473973921898602304978421367083966509346168058753358780895263103935747992590686213989449504127792650454237605876752819755650836004394672565933775488183934668108217914796624639693962243308586745867906137570894765592521889018124954019012568674582931925591904715448409559096797778681915276338324830007914768668332615912762838824399701400809417588938713590807452138995717652823169989197387626214550962929509835788867039499985749759217012164823479755827301757632225432388958420717997661831495977501913764529163904120405309182419269366852198067125419809440027907597031788335871931355590983042579000567162404411023040661638321631279647942168777859658543608067525264805343776947921671831305618325102291688027664314273217622991573310146407605506083622739714793022679500860046194432828415270145406451493417361062981988163123420585265141949146098154182542604863236617171486506405068820460469263693349097616888551153575195578370892594767220235006949524312545965675841784466720220837452683164479936113415093490227075320740090558024893039795286223025503465107902186809023307291056789871086302547857665223722732941126649742986225164081914241728651571591564624296655588608143801157087946421725721708076987986719784307226931544690999275394140766997453022298338769171569764114122720726136433111358655381780279867935471842299105739073727003681282968107666237698948307023005475173032645773743135650441368144505195719447105383265291527357181173571702818147122687812951355181385793653690519803956650928746597258790447698687310920373811238399803881437064051399501156772856310834761699648373645399145987109598789594494882360366030299922282283943041824245815784299811708225220543890035401124651925114033724692167390569300839171633114377546707950038650160101354454050226852710579465808660334758279049587440125159255992569588190831024045122898324366590536510199017939594192298708419685829599855737456017926267882479233141473839546685413724647446418521069200789063428739352696720106962097734407079576308893880028124040717559650828714390840673464180334109257367364476349567252460954821211966622218103634199159623445001738538239837006530531478472169795918725972562724391328398106143083760623712267571988925889217249196375722382444390201732781787346026295096775581488210262484363744297711172229533995832187522797655542837108169326337237748100775026649511388829426660179318683453513059170620169058823483974738111809331934887703875453783971798590745135518796801586214589111968539244880939960261296028771595298872784274729569082875519707642860687620860325511442525717238505064292084766542850161318998478758979231496068549802376317441235736169661344478273125238451724311438207747488125751486588132315052091991899976662914555483524205334254458496957760278869540260475722764442734333895216571613481165786205770310384506514319668182204019215257901402902784937983626772789953283474518746841393674099986783982885248151637559545424197774014659260930038819027573435281649047402253397474498691274250616839085402269878361612678944422611909451239025094573018808732408198791269714568005567370445871914464856971242644705970729505860820561593062430666924457230896263291445958335722909849910885193797436951367795048370657757078713363662863822473278977376416835368206051174540937950040995703847147444585379161131894689001367969732545548805279498870559458264910921573191856291597373252186615160931952622100043478686925269569971355504218887269120836761817832040358050803720385037200425123208603119500587184117677394800788994220880698109196314954419713039330909528564360812966349469929363557593651338286934612136044349971707584029909566678401419562140823280030797935215559049190071227913174478830980649901577939619344062401267028403163224283465244080269466175553230435592977914369473414633129218887442947212174859342668593791118151777088744030332315606444934230647058351903242575139775515542526181848916374293428456392848893388001058970553066095667946124153594606877237352328644578127614266116995140604531774144493844535027039426170956471653249199993521559105655043228093304170299429552801968330031094450992815084340509033446055950841172551042180840593074322586840492555005141375515755960908049703945474862124714398602545241319119355954399083761342893005642117592828244334265511221658189109291353512914721681977637647888241022802969934064918467830083755815882096329058334446409805942574515605034944046256829940523929946718861556983314912100084932396424249211268852885870289973968057398675338033392746814064262735520451349666348493917701903426826602911244466868107255722265008947604077905182434801423497556093845977590377296604472120589060085199383724564198464729171947670693838991986332854859786894500052266860419577839177265565323888015010032908611379677889369258127816109221102573414978498904637955676831379230722080248081601718060098862003962636388775690884617398439229181031526905129924706285140650047359423331440768642487492279406599546561818122832932018566177373321675031053757855188314535594014253041245139353305241375299947612482505945799577285741304660545786330829489638730537371882756229154083320688156362971552592186230480520944888466763950403999479656235387690875942902441375526253153083528322454389753190102167477179722160731512211581372234500817733271284128107047042537465547791548919724263795931343794469555878433186309949128705370206889710952239970878254095082627095563803981610143675723908643007129999183759632456671991060941407682694498421395821271165598355052048180463124969996737440297558555048904504168908650143792090027701262210250822205910110417090493038222371547581264972118721152759876647883015827443307653163424143672014401048365872894612523906671812799362728690039222462107932607908705022667276661007637368498647315652079272884295551247358509170037626701523959022127582832069891731210455693712419779158042629932235878668131221819736058395110403093467793861557476490005558735063062841483088953105980954765473070942631399183403265010322446831194994599175550259808200898746288316748719056982292189469714206259743429928299359292855089075531847044701539314176696888568771439652906694217831672783927238061765355267643221223294396958519153015034135358453229800944205327949250123933511003173655527846866490181042773551507765563924769793126550125469536173259312018197346420373243173579341642657651309207605242460081378318135553924134455296115655876484253238924435722548056449611162515204632224652291421094359785124988206340845616162693397198589621651611985331519541124027563815929237333699400057998233521628404930497596492022125017599088411940767822023444267086875629821049830754918986450691605637774814774621190295115057076069311502337994698882973999144998553159635311974290728715132243311552045717186989588272773062712311492835389206249242182204333426199841557630363243368599418585956853681792066101116358547241481578766999495488852594822530998309422068872223131836546760510912263557395659559099734437148820984559123963837351370487014891008578009711162569761772356640290102892372765958870414726110457571743976382618121559058195151051972714591721608719416697294261157825476412894900983486524449924908024273470560872328233637317246570573716695871887299427336429428318953478415570073687325861004790118283736781288993271338927010314295843914215549005404335726569577599294989384520585803161336904270868912260360415929116058914319727606034259317777118329163218710802086705474756038277514484633608929032028720440057653868469395413210163559389637359909723945449161171269493363283146390640731715777652101247819864350260059340175104426922399806622610283729979760325395659874095610507421586291005031857737497879233769878619038868434856112703394920220432987869959737928185492558205571296649208943507759770503870415075472526878545022806267604860869289295764208382383867577749873910112119047148490268229424276602583414288283475676380966541994364744331010910508899818927348815516588678352086062716896101600124198557392248574494478859863727103290360790374214047532039299443551119892513350701672049037208258613629690301410199542386101234118703340296370761331246515672635068043538263019590947241138047041855348162755597525388468430846064140908929972293810404724999224712623433724439452943244700123027404227735476644446720427962914336982764527643100316211643265995354834971188906191544678882052513645756432136666210315159059332515566739422693930385830010571961947661968381393751343351726343735180276581535687710694145523698615498611881608739595394915536615615515940490154846359789666038169347213707499698722152770195696823356689460078846442091356077679224409199581962531552249817357852145005010320492433607618023456919758171669658095529509111536615504627628034741544941441723301425212139982240428801866464962928948024004307544757111860179250882885159436068209992070717512028889314544249420272330713431773599602914950384277477609736506442526665303599377246267468547269992557088469095789969697090034562208936838041414731402862897606590129942118991298185846360504226341783872279400500471588857239646893962869199292398206477219962366550869669098473706833971758417676100149508179232914920471105874278806640267824575565133619546929649498210612973695784162784112521358809452275003701445151138476744553708561023680747876105379040656790329544988506908884972634511682131163151529548668812602795469290002222695924585944387882983802258821220664157669087178904127570690523270184049731625858891810788727799092079863578274788022305268475204029320560856203927398029480128706223227295713618830077967110862332543557155646413116342339509630833465831813431172420324438369559675231787077686429683439184199904592675351159794770474967944860118310785596253721730350525788784871264543772621730974809593438588560557612343866581972872016119224343883071172180713608144632749689711051094968967705020546627588483517079055300710712790906809138782898781992993475257574557617359846828784432206247420645149831508460283655547579398651999753773415454946399832218775010537963549345335421291326182993432600410423728429683982842698509890503049991164476781510097774358679152113780267140319066733917153475946290629498551140238009709546390478728607867914506110838102171511351452954102764853580003187162300141054840107642796126591143597283691110391856038762129387499813611786950390024189712574389980475510761044176139276355119226926601240107706467423083743003836321602546943374548680030287401640143229324164494753301902146044075796511957207623127366860798826445224856264222787046045931589559420367908912103167400267033149797823593414150363700207966675563530993688976657983505064170880750773137887005908490849492483889017730519178317529133569839730660599451548053639630134681332203216006940745291052674351611607005163161150452604835427560288080949445550973610514185408774382851515563445955853284724298391704558657720391502948417833926516639020441145613288698950815995895850141813360733144223270314968899563144210737648284265341877271911686852364713409107159483296105673776715720324827886705170463697284918312641730975380934222982901598675271386664336989136082623565075805783433708845146784454897384149478565919692124779447240723336136740256320974183313424036566045884721008687327694518217399018743010093457022308638080345825331419529847580850100661076694600379554798538724020685470369382720177982637082634607886129190309089990731569279413165932927569519487728356559228066597667491055059230056442154243990644270876981660761288454637531021242177865085880629999827292064290872708276237316450265940306103706461814734234204358035445874663746543457659131792583544040083796775069018342521202675084209761030252195758463010021218433855081889157657504085562047038799859735841716056893518501011008841111105383208488405145383614268225860547596576900641313994967506893421785109481844658317683789717227049116527995265970809948819045545094807564281143558160870781421374806166867308340583794826108907883417308275854656110042009279626283751193044737532431378097939530255036464639121129726558275913764358060824404963936962910716776928145314128710310615084632861735767374011904712600687276256133884911562402602218829784201314710290815802389174990796428550347011603204113352004110047149854948072436026180795692191137032395325466440226240860536136581465841601817481820464485643055451824842344512467016581764528202579470488365193344672773863560772184232669315494944644872892335954646815976544633968146060959359169670103663626645893450933995886117208189334442591601467797316951372895632398242615597877270861152317400799953019841101870805570015650405857236186611957899110801398328664832868967421718569562853988722335859190779979335118353224042442393101284477217455610782770000872838705539210820035020871037600774484814788889328548592715876042612389037750878627878035984255183780177576406804491967435322103764647274278544806773094890597349774506040684727237732875732392018907241452696307722181864989618395578972835582258065526980863046685307908448162335241779988845113563507896111099539166220015637953557008245672961697527321955893346792259530515287797221281714296190964518366662614797485470188960344986214251509279391723717006325311095450112126990363796758886041778146275172230123806153503943233014660187984662664350186309034526322073525272965781331972233095773838107185776595901016965119098222349641241121916243830608049877888523749417519850471725926836625097949021019671634328697647411175554127576624550601338762006594152804147970392350387122991542041884794527261030713175336923562295893718535127574412183756233307863772060495843769007686033521212717511734606820193027785535226711567075083264008490201513897407279647435489455851996183782074089715742604341522259099424039788905497177307686753899251151692544739811011296210788792914540899620078464768611226678658512180500219410255492354775142421311371917819506046770203928103353650646147750695874253863967446470426652317213334046305557019090518872568900366298452693582694679169773314687429442512418002858469954934613491264508359065078202772144551357322054748985698486862152257500818919310370681786047827982646418007625731297153690535238050890154318223382943069156178826515421671960918538874874441240175660690041214060679169570060798120707628896269658204953773921868882870747579155556924516966935379179925782010396655497915816162165802682978948587557005601750900421359302045139165859946309301996198378500877180746168468984014567824260021501867942090259222237328426035624320035841211134654130715975357987553599943296147706200071652197820837932828367987224332414006248241182103082496799492231596384535956183652100252838946139900058969513522816563334246264573225341248077543162265496261837132366563750656736202776813761072296899541677443730230702457768495977307853892765471436020728229051410074161682510772023858115376509933857104932716343957797633594771438021403826210256014373315972857683405583169232224229871230776401699595487637280254772233976300457712399329223163585018795630009948965908980922469082838415830550155686449342199712175529282670786939466838746342437101651230255659653070661959603278982135685519229030771591747232529209083507053847814518495831106491036747115362098147380551731150270196161847086939926093599886058245812118095040233448827169581490423063821745572576656168517205038560891929930040223825704231926274440350593482385159602879271734035529281634875329257931607448815864411520962529811765754758555422605359254608057907353166837594785400117526502800636221044461937539567954175346708281769156483328998907421730677286389818221832364270624446404885444789645077763240803066078429197570349445432535037963153257939267403963086387355668320530024909554901151934545643251702884164772961937578213769104923581847882885862313022299469022765035043442391500112247832870846264747373735867640267158089231876255091690538707914467038602752749985201622183775045760970644609516617050896843633760329821528250783510273482980121935519438614318196082346490542528879763352001049420306270111415443666906522724931946675800174370703938445766426339908567636351101576913815791482213197719854114470270377279315305786833435778967185654269891650387324169398904788884770905645214480332825658748241850156936118336105593534552285399231135078876616274938040418710902105305650491697672560318344201901603836862807222865963695356205194871784720989290106634199027806989239941768874821311444169705853760476045936822925975988817655268017866058760160680986573230865163490591560164296801938197383401699865839706462202667506296057041583806392520066364885066391557410579888219434404268935521515901871086041659443380052459151166729901156406996992058590962236806652810324260093579680860433135606362110823276797815088516498019845858375865261554382349187201280440611963222333493593240392646175593484299679429426079914593842906930739034930341750496237929388102161534968681359591545221334654593429823344206522930012266766245948589103278504306115903556682680835994573110395052641956350302030998696262125974582405945243644558831721127971464746592807491206741821989542136146077998979367914896696970486615232363039381992518421454046146109788906321991824901199849712784861610651255371143030974414592309692675741993314104259575581203422053871568792210439645834191270210863703291499663459767150073168818100375137425062975462848574424955243665152163027507168753911175147901013611934196838774008269089794006508050212433977431844427196937496972889641243930426463597760375061879598985213472223419709259559027489165331527977224505721791192858394618287452752731386323291451305570429480802126100081983750867832927975969408674553400743624588698002457837061969544430781416023865930848208247059419050666607667292652257597101278179529182212355583765042682064964559931715026839854350528409665261191138435231977577794935031619226866842153703548386119203837782734664567839571291123713570725416442380830952958367153775481185881656155849870688869115894245848875446188949480810998710194124752516358002969465662673854034726803191616276102697782125110729314025036895471151201792111473321831642934282589396264459039129925033424959802505783042157798722805148816141723470094746559875126925693443656852066538838511988396586945005485228919369236233076992717031458697530338623890016875530576762641979384703001764776009769255416202445915280610228921127583560553301421429228021205331191250877937762307279543374255449557642126640213204861544842457984746560711665922923118305993641947931984511483419018893885173931804675870266936203526544392435222991947326147328316680639522066829677309202781862178073282138014998514679214377788903752287324221116181812890645590653746820034804360794267697750467549212314336052716261510298383804023041221186180288784205565213190575815757168617158685701019034973220120008290622588276601139245251168785009173635618666806482895059551092251586459817803335578154428391100828341206964310778890867441792842312878192553153021029247238012539522328170169871200161339328995432679738041851054873064451055922309153033833556865507042780204829836374297960747064278448513050859721060317162192198110952990100221038289370670305799355028173080861765270358385555356064100816462075423788687316484856461571746262445493234426592888185904798809615708338279563064616276383220073726200797410756498443219280925775435029950070596635150819571661363283102736356308279421400733040164106470280416238643896646671941956233288629183772500567126561621980635586384075359323161735150455271892373792634810299420189618324729260913510011209761767800187549999243300007802447347542411599510602266490767842166756699106031339753010371218331084556955725682910874479065942444341959199846671121155993530610307652605946994283067695878838715818721878207313396877435120154075105942137192785077922177514043805434861896090645665531014796503282207972477981379704170336445499710664934703718798998090000959472103380420721035560227292163800904886145522717620966475560592689541596839151628329180364118792097073183752899918199023062914556868371826531441228135588739959813236302129500239657249851534696412929406147365665139853908750589824306478450057329180251192244606686354564715797243762656869333068280649757568819075858805388961313369668116066155310959163370762551734986688054751690392107852703579366931006180487020390470690639330500968514323744249706326861315572763633745709473039198264489533126903940850886095631298431272518417518730391480988558017965468627232240075196663498107760771899570935201392001449586561221255874947290045242250711336668095709890845487729890759409133258540093051840650951258720614397585275285302295715609748985089110766080607781162166844768835195418082154062161470273659123444213201575221684462054337291376778420692308488182924845882227370289720436272986068192180993288750976239922638058371027983505633078668521584294737242068675925472358419704389578902975668587228666061387901436724738254669151879751170920782562214964854191245099590608192075685474350083881351871102233773485165938828721873001157089562504608833197847797227739863589316323651378226546088957919207791996558199893795704300084158954753053535141802939916555932102808233781972801294022920052867065147378562412577478857516679877889333523653835856257743255007533641025887371010908677668321162266783160081512349284697438059444861598922124771814434807459075771969279139777291472746647501593805931222860967004049054803979419276581562340734263733390959967380372518033293544100706062645687933881961089086811125332063077636321486699103084118141258800033116001756815059129808600796545160612561230750179632942283992564753320208180675883298837982397878798495970740061737619781433973353088175770752081351763588268921534738169744219076867052957324430118135447901357211300983639432681942239756758831021136346089916861366210687402303489328158056151280023535728516499048372433269830254277178965575729818664815741911136312882937871307167993453365678607140044657254855309297913216349020928952788858963413193193788219899179778380921620143047562145184700521734465765350929428674945591347129224489693142979182887510889949370491062700061502715713619124325709195877019990829449909046670286332320650392557809211039740162485579396773035129196789767210539757889971633254999983507570911476836902190354795840049342494752599094364860525675410718088614494450674637516046115065856811973955544451522628027695574176885801442523420509109917671825772452522142579574055137275614902450693741763105903249578490350578289439510953119357636539868532405325741922771661263116152080601369583186187377502161957147501681790539780854001298816244475638335027202912210997600705338859956103761972085281805637275970957634949692579342367381371408542495445031649880070143326203668933974650282190083449626705438138707096934560005613417021234233431745975896948146192456474116247295208204175063259020327513399935731631321226814774834315378249663476678357930756080925625591216033460942595671165102622003098084062178764855958117559621449209991470687524411772163299328970045634150124361380925205282765313689076411117274700196419214227203174249759265854342511547765185517005665395855671172582308836980131420694591432312760588103200239093129197755266304192005352365587512530709330984519053224350240376131539064252112106389069801824930765875393147797363362274728037312541817910156111831288937820826455574515072073757705011090135351168447919939936504151198453948297890094879792536309327855750779732822950258243846074023441143009724496026256878636824485982715179534973431579602356362887587754589020882349483960136366917450451338544715758230948325941218129342039379955680880713397944375418928180331698490348816780873022629439418522697394203976260367014676042830565185553772166594622949035045568330319342775428195848867509128432254897565348777296755857651649309891036722742991456369070461711020784147690156473827333436753559189173279605007402393802754806915559088933056136238513270625361766773600151790231989386674739925840325242015921458888565523838934556884724608193127437711002214878748608054114928147049739730138871328033986246102762626979464818077396884969139233414202489506340274613314163129031813081344084848780074646622680071623941164304056936343900696898265200326240341969472455391062059158903583390398975426882559787851937772558116657487742242629824957989103826277634699825690623888322214932225560145483560155257850323990622245928114475228673291193227895628361227911959047121482733171888955740942734297497732830838600624389594889687626239857431324315042103974888329280287882247995214945464248788182094198042456684309141572003766451529537949419307612061546333158326884346826690768262368714800997938426616031630229757184509299700911092581469843435142286355779088628525086988953286055332622944601426256569670553820189309966386468339649498577206512312168122673440987644457996288191695175052403649338156330090238171591951662864786765513705997508876357177782787397079239076435272320878096530846711505873078347052283542557828764134509581719589437242573522188010196373565736134310843803417905076875265608653491229243506778149655217593601824614375902703583164657483295579392385496908994389720121282616312867293444770006422479432014131365230207135305479463136402591714953788987643048674501803080642059907241420329587106807128598372027880331325448247648546894422830911320158530538689548580166813269894481989381359166394319739953920617086409138162963687908162929372941569472911071537107899659761555168923832039852921010949740921270699485203560242361227603486840863653015312901212958749717353372267175779364633451205146032373109983974500137705522152876183031896514878150144185563010011912165270702105421180799597131773796856554850126338116987381310596947948673273704986268569424705741766448598043697200313728057827944562134824200656795223977199156721134153046509419812687065081549429688618054111622129885714344026461186975889046277875591584255670603391825067016309400709350284447879116008345862567613838782873542405780953465181529553443586736296241049630767479555510910432645104596688699365033332455590168581610436758957185052802500952233956687221817845043521306678044807561805900451963068638395094658958899983169841191573271996160566692625363686721860103107080363043599625354232300330996055505556131768916848097430696501778632628524171098282369571041797957558147170937863319117736752585730152154363968016459510014084466618688371054318751559114702514767736949726221205545021861492509419257829164608859044221679332952661203029964815378987893880974383097388180145164787021596706440384944099999640175143731550672123129872857937677979515803600010538348850180111512274094027507207400758121901218275967107890936993573411565926199559929381654276281958390141869803918317634065343332739380160799887233897634445333788802325820679340024665980038834245873181207025025892626716974719910517729136555127688178735502704519882925177144816107665779894191539258185964237095016121743296825377232240097557844185154924542996923734369287754293698242096977203705428956308627426857139927937871172303330974545008344673784560509011009183521765088854797900529653412463060461734710678896750132863560462457232275902822167250837926834733974520181010741533096823611175845678096184977588163628317741769795147441141216047687115758225880364957557086495998162453608635868100437570354168743667017861869527661709266264075836750019265554537555753989706280578692960274042053111211043725135143931762788513067315779135260869784347083293857206081890378266612814868821915767443621847481480854784821340448937327405916102652734291955661760341118457714063299031808504668337025168161695438359449613910713447947149976785996556088545907667939995653467881736402369783583615037642792790982460249428133671998489103381626894825918301969914661053485118558991875380854583416936832720600094870858481860826682736038995373105265030890724805606611452202995641874161997687294870697586211688427335653649186177504267213062471996284322348806948632439851915024664748782686078295976180920067656385458033894818625193751407078962698231594836067015845745636092682728606171679031830658771774669617879069659727879493183648364791292249538519224944712166946946030259248676080826904523789271708245461988488511902847987337265409039156604248072984600461017563777548316521994736412032265203976544044831129253414991725707496308867716095601815070877496676953486480140048903175492806566060156292442628622845980768581844751439844933794731436326934427587244731410488343850958117253530104021681641054047892179345649590896814625148801932767486830826481862478971779162726130196032139818250458424531126961965978448538433650769588589743129092657250438234676949340980999792639679099238498375638757508268578220558445763276491681651846317059436249884825148833500309858142697897346900675150620962922383114832455873515904611897742359572334060391951970428407647346248373251076025540115583995830384811383991375754636385575010642739395646227309304872792665321734204509660300010398554675211968580663324894999230867312898375232301614887442806288428333680877563232246584222978509798732128187067930624813314780405528398286281876430494438260036318045225497829657557588860271571699599593067489603395532543327403859197505872667481441314759934336987343819326425031716788113754185790079980044552558901677373206914719029004688985607391524240109494107406616708345213937110162421382050467029145486080735810414295725493378879105688551111123810918322188482719626708002439337535846356891928877497472712574785950296606296844641899194665807301740975507829559361405951811638351817117087665322135731557982087908609948586446619000176984310702351819423026302435719635745651468626589873672624470145346138481734534052984783154426578354477575969961971250017604177209954578011848319875338392062090265241045073299393527312190964835636067568648786197452771033309469890673101130694939640364643506794859665815149563699214096964088592926406269296471291879544843778135738304531822313612584634079480007558603739368473247723346205658288978672657922909890634999180014362798018204634402101159085471695976816834100573937581610494044971180747919520804774267873103709064174305674352324080436560576697492141023625669788171011041474053102522784546969859299256536666508157348036017679053734398152052351260461832535767650405106675221118771873129940878146508829208105346848916520627953877945556534003377340889595635554697539210086908677358225858040795610014520376699751078940484290830584694453797705976139159435972184550067846588661863229648363243833140101814795393873416806079668956589575581500788764856033720194230846614493669973652327357613481278664859135838514034424367152191108967977758868530066705883589131502601960772086330837412926335434947243182080489737863821018355939297978937146994608253425362009448731644689495460076223176092666890007835791927444287025695991212400033334024550181988311607340834920478100593212389074399434570811711635618216375477809424570728155448663203043340130748190219569417183030903810971385719912371141886087819064892590172860954406504363738044758724460585124874029556663949904495864060312468946094866233539566307039833532908725015315497945867918502894478221683790245237723095688225596988481016900725951158759543137847951820163630326053431037352980138112094112416811166337315613328567041006161997271599777948217426625579706794513213642731523719305288731344067316494733222288717461673134895910935562621754113143550329053298024713482490044587504074208658486980887126461103186588667433280386590392464102581568615542729519352770963483691202743744416438410491413030156139285275522118075496692656484391598296531929069563078837787192838350144023408212312371264263408786205608996252657782182964982383088366562380294953788445308721584401588636060730912572093896838868938725753563284935756941936501316170086099559378891208270010386809960202796011889693942704833918862112355715497587663293897396352029757419124444116312713845674796714892153542402904247389932662295439934605396752201789614540231312371745887263984640840416016509518531113833806929545995783244559562422888112119300547694683645055826259008103912032853931559987791290546935349555056416175771231293039600366253447196274980032595730901510787105347101583682489594034933792732995407970170767580800411932403157697260443294519082008335268886308138180676729574976061345842480264859441722362717637420655120500161682013811204457400900764647871261414246811526343506421688048490176180588970334488495870820076348412177121983355082908982227045009991905721672306968557344676452875252738365160144599180848900725210516481595156287457966959925663723412842835739398516662802856544032317821709825388225543168654999136804001212325722554723559967626545671080788427717536059654588551561578497215601770851676269680723549682180117055974319114817114154102405471992994476828071727438835858889961172692895770672874210894239906062746837121476977329818476627850092453137004278494673108268913044693457748036194398230881883737424234276651403389489041004915603278054514345006957919070135084308846752598185830757586373253436962342683395378001760835379555690860414838348949902546581417742731045345862097514930833462920241738649166236427320056323439025514595047007275693434638768635955262326121374173541702571613434153765819681204410653573790655368893776741337036863526219720067191737449940289943032268333770103246385902180416756226191764857950042402967352499887682674371937915114103741120549177090363597511852023527858076619906211213186327580402837615264164736170782711540202356414221859281488240197230606311877823745523484952867017781440122062267167470523331772069942361486116827554790912530813562745208116876897017010643792642883020748097592249330621695976361876547284574565295330320427082067807333559668574400044903535175310744209011930687727841521206870331268270206951398086568337411700582696527076651569720703834042738851667085758486311077571526697756564710926112242172272120353925285553730578531404868932148220886223859768140445018693256746594597758546817270670749970476850050941248732846486265166040399054210812723511073072380907572510574534023921229979774008267512568265399511290767401763019971967710665459395919866764404544065822471013109920743416573167404309631810324553341403351054226080388950017293805347176298756364331843835869648046807412766852910038297425316450144117524803610367010767149884571596054973771103755765735004150724287460644288810249316260561453303956148439700140418989358245220843159382239006738106463369683253855761650346692339034601071680914689577557121704642992860964589872805973315665683757994990725498419879602590862584061410978702282360046858846256575058436651906645322481798535123961440822067856532592613431634403919524031905141775568876516548299671225955646809207574390733851020638748711010149922128946589187728320516505424227742248832481809444594148842635726651960995458999744043182587193731791522219857826741095725197759460865712590844786937597855748111203313066069784519482614678350897593366103386542166481547436586803382555952875870359827257464830008702393497316001016203868829615425059698543547238899115742183329507485119327017718935917996036141699293232896654772048117650913318033432561875108434613716487231551048714286675558037653761795772080000874914944932619394831864666165785546322844275146059586731295910529554985920348650188575423288931381339541777167835615891474162243511901098993823026223088706760808815656020833635866537825991578199803942108889143937531176844632328821256913606567790985622942365913054815391235505724263769639203359304055793968061252933821053316598508445808259893565889588544262257693922202656474591606471633510521627429588010157169454230424662264830341304889173968118438412363088711161389744936014253355750701294310126096353144695187600374525777829720318542413924412095313484953045705189878811658652641918778924568340478264430230793682406941316782121391627626952013178349544964562625390976022883015351503285240412640794430111898965428305049260261410150519619111132262294646892345136716186013418630500638046128043630857193429502009938555823600322488724555342175687239555575460468601301371362161937775148627445326647084127319682580040385086361778100071431579691100227806322857313901575636501255269952266622515244376639292109602165987521234365303820828642495798545600154743947129875010206343760249798960247355544191145858770725051482832886418002389532527895960786177862272915161748928329103609590768866203567881998175959485151415884004441122211214610813302164304948728585299308463708585723268536384279985663393046566782241612616018639212183987184912804639168321892864560780566490822987748213413165873128557839053319130245937237115218522046578347978921938714421778207529980289556517635594296424935566489611601975575987590139925888938154099534148642628116475777480437628075141323025960002322784554996667798225415226459960698669178653583455696790711197329198871768298108873935474427438007044135298735097336769424920446576963383487481859831007352739251121681790635753547547618067679113249815025523620261414043944260185057776436919383090149140371581322566987167058033058068746507932160203662749003548917861692041455586199431572835154858389353406982305683376606124231803304102234223712466729291465124479870305821440528532859660699270574733596976208590575873847832736491485050581605850793154326757816070245955866156698509929799516912225970476630180696641222858915533902341384673839456772067811444173557799166980335616914674002844809363500609707555425037901613426698993844220396729644404107243024444160373288375814405720889745717447886119944177465739123867324319484915977081168787467169842003915917350099504347982434201666531728323924260812526216672542170378646353055994996403447652942859731576378439656703234569838045644691479858984855249699666773329955861756442570989314496948349963118788814858291679523627307260402661962073640507096564713641185217626475943882549900806321530001244915804564227763660805339457365395593113699208370039016384374663707039031309639682210690263792048190670074055845834175861852321185143440091855070162961436989865977320653098724294953250921645214341663828649225054636990280461900814827445119029350065793237219808036067864404058947177036840126855069618134442227227646321586664122573868042990796496188472018026495134261823920412245354101620628915482858004730009369158920927028341972841500475465900053078686485598712557329912108983229807257727748549568243734253561728166498064207740351008359202492523669694318654963867585171823742588384102224807860543695082676903504317533188979379772724898515506609788702715844168603516483326548571066760488267755328513540200216693477414082141359471361473025472893243580469659306638710168738611468132204158872691003762539969498072990098090931465225510532685643417404585900718417962320554446994854041320146447916526663290968655118267924903865476667187491590873406438898206975849176793367618664079187190422874828175812459975305339240422590086553114703545056593512588351472486514182700856783104065976614569675631146951312213833086307039324330092694672248914439739331863370992294267499376263739583897243593448354544063649424583127962848396096530679588194344907282360555123254209582655103823466496404211849914381422151151505775022448477160364390942745783385117031145696376316864258628092731124778901236517788617366521661292552031209015640822634948601266049146261417792122161198426827659147072671123056420613053069153154667654815144686890285779889742609120632359999931605027767142829525072448792321769134189576967164151669312864588530284109985115002735547032981563572779813504932223396687975582819261945780580192914089680839932176789443206477689062041571580787354193490758401070085822464062950367152816854224083765783403574432255945548316662770117992480178690559078417250916556778234847619638811153855036394084617485633327754371131341659949855285680150274836619309008356016205826049693550138667565776896863350481648669901228589284839425090420736434580906375717150965374262671067269272666711025205417992917627487630146212903603490712399804994194588381991181498581455870277100753363151604655265985520164277326823464684358046996485720249241000800331147703700572254515213171344060708579583726677401848913983500291039919857321475735547805874832261743154001875478216574177215251461181065325396339510997045219472727982700296451423513351951942299139809186041618808756385603317573917828955094463218053219840259440002742601793052838479162391760817486765647004359092324544295690344578985504901397137759597495879240724857522893238710803999836467093440738693895509566831414672387689695475930904217860350485729502061055961758441798549217312232095722810932834392641880564065986894965804531341354035662037117649441218923267094017903341348212209855230197408333491436508627829876235614687250315814463834957502488923700936562489350527269520184792776298815588424689718455856916624504371662377895002790682640836405105090137552198066657687320991170802335340218287520448690237648432879040405486983388216538347146511242286246286357342016631675946248459029688923453272746809683998219475100630002706387851427961709696654619900943612117227950736449173467260626642406814731158160461757483313436684849478329223078885681528677345745048363721095575064194931953042141382012638882265353589760108691534788523119840751563775348104513829619043891893704119125541682010785872783846090051015562284769934796549493749293344808132454776819261026864183053268897593192472805483449712786360625399552192085087949918230070918997055005048614177303578951190857408982866621320106727680271577792827188925741056944816254238872262753935556418715096561720575591738454416121689029529524483408630480070032310900292177928723224027378116598960801054266437324742091920753809138745467344426340326071439310616263621502117803767067737422771965545546644525286653318817937806600840309606413540918007950728496439927976872079552966708777126315439785447875997845601622596122124808383827621056666430477920776982365611598932251650003085342922323497262438307706868710978127083627003373371474573111331338657905453336311336396391882897009358044294113226343146195364518829139337622362246424061112205677251401561072326658248314759432321387156903050626720363387639995270077794311474920595965329225259969066799223934545213099190006624426993845011044493574533569948163654939996980248683345565537073512297160372242891118897838297658109352119201058058236069642452204685295032988627719498413154298435458216312772475605330547454619182700512947389675294741065024610891792039081125464799287097853520254770208991034914931231050841397510154447014807752022085261579605696097397013293820774563056476954664145561442421430707849226320546298064943635413409106901641393656637045784818842507189786333400693854977360228666411369537235413535994241094486818050019302268777532513663254020792830927737134481724974943553744943375739165410849010683668872875814942618197195101405916071430002030341696995282768934279566984883667815897965089984247947901987363294955870649515858134770709141485267570762431449955883021949144240008023483863187581432146573397687790052040196840242202259590986975249228031872253217169842085002032542216444504612993217443707473838150827686523542876002256210470884128634388187183238181499424049416363822133845178079163541943343644406770420266189462113329709607668061719071546177595139531641677736801867825498907391887987529432019729863104766950625518756886208586084277536511201337487156077560928759824578403519100160851041899771526890207552387355158540739861584592047447341519846929075843444078315917567986540367254075697271737269825518455490568323151925380214712045466565066506001899927412330502947992504355932100322161128433464550265941010787240115630267070026805810453354283480828881525709583322938467445872589436999927409497517211820618437805274453526585155355427803222167428655410486567298198804272176936982183326589208433512543963923435545847975235426960773932679365031335730013400808043849604555214153684019883100807324849441057517464788185591612235497480938675338846852613897203816694811330493550285080581470847648720238837501776638976728500215738205725678147868809267449032637861126833385342861574342751737604864933290264092980784896939008582965841848222064065776708000276342820044718404534113734005605714770560772117557724469937532847146635219861620967307186918660661657494544014515877823511161090462166164456530176771766574538675495693745489487706178750411021374991798415993647782203195020698485370905974960736876324418350458689506101986715239498077009736860040531846871366498631046554268199869569106376363885335822617596165039209904489740739374489620820702546171014497358337954654189049987815199832924516858334157483701435464242589720616512695958752562740105588513556841455615129230042865265454007155033485703197982484655896130118228289695768265443778120012677426775792805730017168227118457965106041087251222654800152119504940675549890125809017992584712115504359292100757580624441887574891670717576508130160748174553637687479241126757210280750432020945581089414721281425547712740911546840745432002455083640884173556025907995484027165928410933253377331886045933014323396238604505608817183780773207573091112440441077260014752012545981134470773432558152822744321021932487908383116919214918924288821420522301670654983717853346069491665652493909145228373780875372011777484467716094830859645184029125333491563439481741765140843199822571690469999596282927814653442500727818763755302662657734457867410762833293128066331076172686477987730083030510705136736756087379264751386213725047449884453394889081010990178418744582131296388753163200251411289448386704037518595289920526145762945891310105961118474453237823642160244053514128504002837631434219283202057387633353164360733874300033592604864993198148779259983198850948911417447758860466285242259946011463745268575040187807130483903173281071243148887199241456331472125313627220836182853260449026211300949131798646121003731189141727540267520615443747130954716780705066224901595878955500509452490348162694366067805138211640874095511302219985660074089454205156494495868467197933287893004429037379931042274545009918036623288922077819480357879423790420833340243493227447999802548257528875340491617768686580447250334718035975283141291961218157317489337014227105501448122066301861983626791885765603727211624866006634639064592197490693099617997019732056376601498710364879595851062401801316315932004359461772116541552808670613081256819315622710482877759832979364326686850809525754416657533728841781716145704680063757013250546549258113475565944968478382120057802386077689380232904041501263119197327966304114879871343901808402389892459189494019506138664955617109264878822230646254102283062834331628127836633297987666091703881563892666729997487501882978245204724823219003349149737972970074858479973422472852050443656747203534711097209134533579551688155805320880051679067706060314777686774742388931176121405294831587457995634733147421086995078581477532847878168058062814041564808581696097672782597615346369919156112760159284129856692803508728178980156313440909816673581999665730823943177908392981398991393662259354618843221174858604937945074728214530342527304970992262492449096960834990157195357829643828594220014570022548033270544550003972196488897812144066324395455648375732511549153098739707139545427525980048249604198212324323685018290758745692503249064597303311707731692662674836118850770792737084598019385491523275193178303453037145235622759636827569174358992236531538007362368789635893012044703321016583786640302471122569208305426596689716831450712026486538156537590377046508963750583224169395932870201755838304054371862577147509236471300039535842178130944821799786724672533723403086181438651126330093583634948560739176998570512198597722202947191299526996302776959887498791515349010992110684871704786966875053336787858033174382535244531003280387672273120501386736088572580744124788224435059813745666083965450920028767542966189110678444122846558557844922271000846716404643243629969787203019559834514934003882369740389798008186765007189345011175384762703465969180950918840300783679318360664694144076560200483447092805373250572968798964251059892709947407210020639115942151948949496348937410592695726666748289082366517683834249457650558498230174094004821891963810778879469105593733525544037369617027730774912956521110759005487541622741874344114522555876342478993385216779977073341138849608502957935355791899901294620873019727934104617116790357338169358366551422425930068841485289306772588089099933423554724151543141622810728366181961972832852334374424198650094590030337455546851341706984285669334901432577873024289486642867231645251182565666538370318560659523189188807317708622150565322516137625570627137303577805121705497145208901149387379104796816254251746997133063427329878417388769371775000699665674062243081392183105675334999863057349012128392103851434556930788834202352831993783871670145357313653344082090053900247779853367844275155764733036363694828802024980734060108419498385415285980501549046788000946372947888328474086468985950841840807901802584977455822095682080422207573254107595839015777750444842910862653464974116670475146653205440503264580494759568919282033830374030810327926705400986321777364793615340489045217205581007456636828034372023391856347786912381660837482012064103516471932551990356442420462082365011458848035700901832866744888767621424913758900137476668813556853034342388598498877200082157511900230425923998415224251115205383704498151932913347717845234367385971453070103107415560191870051965816007199171227356604134816521996095412360332605910363708379898254208625974205174888195704410091712374669486650266754047822865399834834766016810585027949767951344314001630614011157791150892963764554097135521804856013379913712864390232991651059698264724051494526614091836823754197915449330280379411064873623466780032097911566912438948406626252088217737104280075881448004340624286765114821639172273793581693256677404458340537680200520322182100176411095562145251286845504232743965677058544716241920216739480854887854872161333716647003282919368865787683739904384091774392798702449058725841625141710302812503066160508232185182633229467489221809464505467464033486049143202949264897985689991764238186756395205212794781930117180944846987133868740832531460024949952633973628154760830285809925618558444312906029734349849811031876721041471691296998619599254207617413013904512973779517884253158921884585928236682801940891304795239430104042264058048959185593953860774351815670671965048619427579639904689582107156456444442195653057449434858637869397295909151966167210702307634292925728627537802455377310089582187925693730556794195125794015731925130437775312425418640419645464248660686942088956771787185040985945304958753217734011145894081511202817428865477709077609017503532143855203458669056889363690009043091984465226526120282736289166972672111674363948920916063990897338067260084141592530641141329911886018677990324052009010545847481352851383180591406828251054776404698270664643071590362185905586640344667140035278272790160810784228614019028816114984961935192088437005952718317576294318995887179440295457388572252879604116325987409638545387264723839200247121885734529995053595407566357323213168641824764049460584801092436593808614021701350049776214667539792192517282138729551508041437591125091185594663930295070356203049996916622998446177270008635624950206455723524774050544198442405016201422765042271562958377601842778271294379954869020806446595337703177378369997449264346940028515423076311194415005098652593946740170317008403539266346504344446323850928486384512932866202501674361962316011099906372674183285241107746170058725933887757035100517534963997094328395218866076772386682969989621155711330160542598974544381471910599486407010729647167449899469851086115234800554515810490940353854984390235128519630879544786346800995429761672179773916779838529611387158154568942964954317103669467690329658892020170261574897919100928082301339338873382646281265914788701114544704125518582059131193980971109719768189053189936121014304114525739625024044058460549571095483224790267247773303866504742999211139091663608627732945736895340452697547821878843716481305774248205870886711269737928575840770999964906772338299968128467042915843424396711466395761746679126749713389469820411691975394996417209437659695545443832979748048049511491456971160932174436651056413755835674664501372590595348343179744090359637628833315519825618972621749523117934504321293599698817847487216330436798764855358747186425306202481883589709467670761571635162616360889662602150057126522747846638500106132499360628783475415177435372552046827813911893965354349550418674372311646954774294178868079166195145095105562387623559477710102542040060878659710183292150618330340320133151452601411002332328398699530565897442620396659475242860475326438814964336641393324561841381201961062266517658721881454382352956891207273826629742260990263832041629857861700111949485285688100140018099249315149423614488367507263659944360007045639310055514673051626815160034159900444029825275389140335816887192980547735795867876293647920553108314230525187746371810000009450926445142221463090829223916892391771198574117142981934950836766575895597514718867619265339846149590560507024411351810114359184981868626389183177578415317019474069042476907083961717968249288199994626591500303000992240522745622903051144785619775936768578191742837729881751032791814580669649186115082693661756944687381268303067145435950454828961834546424980552367397525657447741100467556814101205185254320406065027705692915296435062142960342136497334693645016740849662640020133959063198371761583490487617496739056066842772352761579403337108616603620953565461414469744263779034035429331048555262527806788346914325934312606741880075772561091398162391833620141312649609802349434402572548139455962116275663315355623197602449868170789831599135281867708602425983099185819556989335300880007995952132289976120788967294831918128012993061788881842000570925492228545770691229347857879695681374240382633214257128595003275864546843720107715775134847083679615979581233917791332305320501136482727418100482730018156647894840585147975801035590233342043419092972649129580571041829536638750313982418647132047275686413113421689312865839381365384682969371336738015636945130941759977906620842010962595322047292693219840671417947560510595821014715250653810560765659978251779009498511977100794003400367123890779144322789993612348755201570755311725373703220485121453271356791404175884770701843135791024678901924924215649003721035687046646797098065288088355745046365526545111565075348201385873666204566550393987234348947806600256059995663958557456110248912885533243228326780840058453329602215028726814816153849004033497377912733860745145938606033000352763262056653209907658911814053554977414532844729665729490000348125402514261242338000848222835388059831577837536974329443336976566595505597686037458578731542289031156234060441687391447344993413990291293775750933132950274132924178248795632312977752985425735027273092416663800106273147071351760371911833012018566623870090049350511843752180637949956069927543625060336398740014600825263972037764331386254209310569645760911687902750996615343144954509574408286585498410786247879439056761271625846921992838411650337166839414474712465261494888746606266640024234766153541424327860927924769252468768806728462344260964370229112183988712347872043073067053976951818653193491370746963760121060164565396879345139950486169902166207766746353391875090591155292189689307784070462235587157875482886501605298468433567202001428351784093199105978993759337024689398434342285096712372755509224243258240005021219199509676635907235735024328016039596826906753549734740644260621709813694618157533661615679335858227736234233196359067315615208329666799014426371610173212723945513575380790654723785640644461689696008916555939573785679156387181049101382480889481399030836631160915537615121335034620899842303834013149297232690811984055803178647339751157774061672256937475426425465697741588762059744402427367793725853137570694895585150615497581008257743462237216550099570169966436597473668326199224202997051283816184369926449288225774929753985338633180388324117081433555794352411864050627987928211143774888055059105303188969573638164286980594109447674355829482092537019843667436798698593155288290059144670970892236582847525605760706869647885972783128598858474658466611260585643092527103019271599341433985208099545868405635613285834554502907783434557299469853197658164720478215694065443076583304774766404323193961764487204780029035142223343591186715125684167364912788421539982956541953154063897489406157397034999330179585869525469908124202197622703140023727383158988326271481501577159634172957412549239217917513356575809115537657938661440571206534603117785642674956695569503864163425759757295438542286707001942113272865043896513999243969441266903006297614349688150191772616660893137694666170915521566044853089542744173659952491973370370882475414091826758663462957892756881065079986037210514335696293982409549284604662817843546101166229306117973292361301141346025626389754256761677580340121801016160301794498882472854948571132568948287742672127533383236281730101927941739301265962259658917321746643798310120545794379558424471924773708290383880020913294722808966511656884156237048239892736905314817999798291682695849931362337952280836876514506146081567094621176070450388022736269821113848798565606856070513888678751366189654055105184070320149685258465004596179416716489173510186442927248856575819772038843790149852126932248091506302646820714874314281459070400822341761084184537014487005406677840203526012535604169637057227064017254174213982483757854131613496596602115844618975734110998947867285766682444315591396263410116178277953577107527662639244161246413887580037192102898254380968148221118873702800350212722334939372411208249123596701341067303776149342176100329724475325245877992014872163746015054062060090781579706505134325148297563360601853634037565849285410962584634019246233907548045685796952864996990659275892135397358281026931469203131928759074515980565859982473998808830531220071067970959195459385538599032906336991176772318736819079363798538026543023577467102819992591757444307583925975391556727706459380181474458251749737009255820954479443063098124854389661517544103174274060609249623058550001901610485560244218048327784071525606968647052316689042250535649250032353488848504977221650752645825334870959893328516433327505777032322487545803122960772299702605548663863690802317523427041893569557202346847731270159747048828266531590707275659960365015703111416017457613032162416337106164635424955546727634151498553029647079702890548495484238364642710432076086350197389095475970077341897704237965869474692653069581807619423655296923399737730902647430144458545742473169576505616763116559023103486334292819284843477717648308789772816814400139119941138281962349594927544399883321906226976643249365416630190018961029433340098776450588771996066312231189570136117473047080930167905053671268517005737676987999108867775053431474717122257633295670857588993345480210644081007185180150233093759094586696559769718011313470826586105330962490730178315023785063339446056769642042715650384120181293091652575485884082235804190770703526928199727006887161161131246340092513528793494618632125416463933240348422948740790472247563048127840814235273944943904279245847059733936471723786427562909623870402124733040561320154791436096064038245299706860372568879260936561220000809277991149948527234165070092805704216645555070711291631209562692498402686606056861803132039677088049275714511085806939446999949070074278035747113621875331524340615499371619407859290175048307411724112584627766315985542662976342055509124009619431842654266226435233387891825134570085245073613022330028590414061979838905386399431405391269589296789677049552236088281585961596174679526735780260838584631117405299267229176631569438300629591125086488183089303800169660087706371463842776470953728964232796701746842401565829559569425593849582254317168997206837116343870241818705171553873114533952769827370185199174343756454850723265710800812592740938179535934962573727844951853433366983869468708108803497392683330118561444958776529013724098924703028075145977996066793790343696761164237241152733939025171850630132350656804234470424261543496238178848690869457760930024030073374385063005172890156457510591690246871324673384909913433231012394568954916897347863449393300932816543440074226539463423810382492695222024635244285723980867573440166784869946381743899021919862181270800650737736623097159433385564969024617218340120533391378689291183975037121311144695749522560696589984459030725907003093784117963668003572488294971083551444886996393833226754124342230779744635650805837326423981301789378503360758593784101545928884654502841111390148758237618091602070268360429056023680250948963625008874298126752669695719722990541036372984525766411156023960768883005314279950050366364147816068775829402106835693971494277105897362570749204238945678663388617127106469887559381758372610871323938714557105043967541520317629145422835006062722356043823876008694605242485692569799524069992623439004295993624238210251626094738640073487549957911946061167977176740259627082126574723100794581637427757909549399844621557796015167625127588377637701988336967139803319247797423992485545186439146483866125313887368400394835930192472375694726352674031271496587172781726297680708100317245678687020226899209300699106664465063318732326890349225840773522714765579667800446650874199307714648084275248673238331100416309106314621325782780166673063780007669718173351982551568933234034678388730880468199017607605634941967472341712608105459090708086622063692328303697705266224654457697291171698125295095957866393314577374121742085135332527181480090899003796369961139861931354174529822475419689806863348843067868635595602973639456352132935134623485241036789875921642724043663414006675652586976376529999956815224772803918842516940938792951311274561427376916844130733511183752092257013948253893307924332029162516069894048308209824172475202314888942025607948105832473497980330549371304649177540079129021743411210135163323847768842894235255541919057511607978545615580525943689965977557615173323844473438683318924700809468876646532131633721603977181100888247196237362863446606244764177973701765930524692690831696988752699606155014810636272625546667252074671314734952297652368627055468693754613302043189588112029224183996239519243810875685780134370959203914036428501153804039438785431534759850209757525037863024416916206876878684633197832305360829062560768993840068438854664395033932498981181465279974781778342677767361880647885224607861189622877012000065812680829802555919286931376579756735377752390972351367476883209234946723954264362850313894690681599360487642361604427993446555868536893117039002085248022895741709573390004304456236390412179774980389394079646113377953214214389442085562719429643351448311821207610149383862496781062854331232856245055322663272443659325434762648437599997450642641894082496130108190178372266448682496988437068220658001728403970229218754929794610565949869216035493612300542674098211429071688053888967297763001779540244182018327163268869482720193106990922349907941393824791236499098352976722036888442998796146113072337121618342530459016983891389842806463996581186148024326183335582030486020041527736846710545506692572494327848602609557003288725397336351453883891872172545081690999136921469244347100206853172458282312722278459524623262532765420063392324273156733286607590423241617097533190097079956604988693173361074355518391298594076887544432478693870912696328891955305878603825540011055747888524112271718260503317559300477001477711707486765813170891903286580211887287359962471594247181681964030205535993162534951354464011465994437748854984152142440199862908487860198505990876247773193128199907115131711409642762173449778926823529945054245186939135027888237035236886799138400352913000923029813441764423246991804782524063412153681982742477766011372710800489306175315107537418232589872082616095171778497387340454437598393304464646372067132690460938987552546089067249372422673968047971374527769882839340126271794749181737167796365151834862859406027707991043450995193654844022547250518508791948989263383066698786153564799103682921387778622293937334612430921528638275244815262319768418744069149900768559037806469053341877432475033962351044578276419079320410274763807622852838244261781890260658842948693275955863347009254644277084023428359159136775794492217029112139810466787682557517456247654132023881337306646406570433278576118888426906694667742295990478349765617511720172388262700531954590693629236266417790265637208575826795597411647275454867815666333776759509771145183217072599371525076146267264345910191680974954958106881800817176906773376206294329873747440674707040235516586130437006997913756408692797773159659149438749316566255992678127552043123888554407822785021147275045540761835692644600240409530839884455416561994910472166646512217969691741066637390832531433546436123737847237761293813312909437667927561630881084738349133163657423635669047567927241151064115140051120288868573582425209775991470250135739569524456589317476354933224129836292234942275794915101858612454848812949588782971304435375053340827090991611920177241326033098640080429777654249778148511769656177413706147164538740651890600525853786418424567792491741824046145175372784641997594112103469380089992116787008370981371687951007867352091416239190249486379729832434862788241785259327295938034634817501742382804506454044143213838992648521986365786093862836489908638694511778484893546840550819512160648078741764356056905988345948033878465717563800956261108810702735725073809506294397129888072149222685451262441705564826710414581890676863125123771972982780163722320522972708174035010368735195661458273057445941236261338286699228591029472856191928412821243716159444812469095756691007023681707717089652581009164964429385886664526704512343192396847162553515594383813949460520797429953704171896066235837851663101430279268588671088193563286290136969100920279481788850316562091137874431132010978441909450581259395358454217189497544113821340536354667104048145628451362226939974927888340235740547499306850431553824408844499527789820526402412981893773365493305999734211454009243616533403298077812124128860783049387471757409460473458412620671943485663805671764869695860325278653602632088455471189541919352311864438118613476391874849860089672457922383529895042296173785458255197017529659134735556849190818053155464045541127316539029533277733251943218758615664158762444096234904093753477933757795908508850018051585210023255025148412013696954151561455721068815110015463863633485458732588435306505839123103084094171067652994673186795374246748264872750289988350828023805532892271352772816193777711344451256668843222605093688118130508216013191311336454055767921143882748814405578946388103316307112932121387553831845772457994164740848811204575329604481125160497153772215863559154420252423684503395743025135916666271140025393020842824846610132050295631312619970940311927021162353788994566188533393362185800810503029772571810430413639468755865547890027505435081199377315518937416939007640706033782491210680535829796808943344031495372385456935565434180312903922400540435312722646751513203980656059530953395359542649887685606971038328688120682329744760341681091986244352980384479746075901761441245134905930690223009825990659554722022501643511983951381562311173181325799099410244973160047755228919457706205415700571089961989227055881985466087212214414746289358616089078903001116482722399712518079177878737798367815898874337991085467808905804884970225364253807069835510295249353383874009004044509730660161947383558576985924888852438137492139323093468008564977884092099380316879224040052801822385151672953003516711812860106246548029744716149378261023198214569074694556545856559304256255592039520235643134086584966984465270613539600420824184935737697714211814770827607470182842059810890461681518786066031153862055192799243513313999933368314118574303492237915194508303464747315434274824774518853408337202017187749028308171274671839948910795513921409831728724985877360288421213518567450670298908189360745306396157801124235386535370562564335383073194685289130613284685060901718479530341520844675074543785714885214701462710710269819371137152973260032983074826599686257789420495782416120353082679591731328861806141022208637439300189448304067748325772208234253235126446034328706860554711106949569450704850869769190360739423164525557917283837735903847173134022627433289848522148507620276582398555550619397394111783586350216678265855949366496275202307618463148065435702643273804143752623283518661575262691969410273522047738739912704589311225394615090093104519523645732880305525607466588362407463067806047711679793512000470633239014925784367220881173112412407594761093717335795137379625714907706732737955528323953755849449781241510583766288575284974588925393285345246093791053060338231163495245452224234070764787611891298231230491550474924585373194633820782884028232412248581278107872149116936289037341834495364728167372294254455596853544210305949775586712184667647803501152005607899286545945056785947403741530832679053848136420839702468562197635916275700952874755705951736343006137401028611155264404329290455075773882026605299756430577258283835437537021634706045816604576038137353118682448446630383629350943716605757012286907498702673376680701614185057416033941742601871842862628630387571099341931382189017795590898316163259689097284800909815731322211302819054729721752897650876000838422635039956473968301139585415285767083029420211035085840306204909127957845217321807677922175374427779519549917517472313782483650340215272095407211002335700265006343837578627496428588626396375728613824363040791956433590245284585420058801018879629268306342725964300817207354658599053803980611419716492976791739829878501531219504922997443467916641736251292587534594320026940534991203709646131927975934026408107345450404478228655015550892345227796823769059916224519020170946661244544510298032252458135960443754044454011352937998661810604627638327896692774409710566425630910509270931626078098062181395514125701320391245572053297530852078785784237366498319566230616908144889853795553753145731370221371939670485317563650246244610488735094221356312889043824384492896506275506645791154476406141061743946019292063518565493633355609435193812126980901015616182860725530130295006805274294840845243033036353584469564010394242032508919564398817588012832618909465789579227168203093639116294381579139563281586164292148943879099344269240185731377522105624959651713207256044621154977121025817299248105355784120455001736956956310949220168840565632164080924135958035602204215352305441762049329259429798693099419666137971869103059856077291553109966746852959472842686873005836904708534678662645149907261505869983424001435381979892932608158963122084054622315701395743019618389668649798710857778447511690210406851868583589318134660675869985319633300222477075105507659112617698891045151873175148576431864082400352564445867242025654590040990890472743762856774583284908827360689214185748683367564670262401637081532915651417313778467512433975690047811969754570743341643702298429265946351084274824475038719075797569509049765131101869957871433993302139496398832855152683861562081315685485962547315599829934853013905019578684295248081121479828726110442961585844561625893056471855655273607192460475117811234685690858117527948732988274080513604054858005810121621622408237655951803618884108308348141875449366194283129480428848060332275070231569602904581060173804189031461984544689138083648262629454086284873246196118859492532529212137624317093903238559169190958121599392633720357046379423563701509580902744764770585635803973979921277510634593106630909129973021833367941914139145646259726089126258387340732741100258457457680775266051666942562625595127490183175868998827681663548430353415723555656281511273734224519387629582354243040208897698698805544154593948621940345283608748171779795968479965555906134230490269473436980232861279596067147264423928342710572275253729010457969704744788041758277534404456816185692774564967825632248608302146108304240670098797544175137080421218535763717841774605838290767695052081990811287167354927582411202143615479167322373011290673782547363887518986491757114296512588906996629602105461377391524302904628138036783179637388711742792272714417011687912227970252563745895355165753074831095964452770031268033478537687853461608459157301568837503239455343782394255028552797249540077124960084764437078574270080308499467195598860550799012751785592095737954890507693133432482898022701718566874444644329652532616564287088229182066560521517345646178371049435458492231894823766660301003683131733058635540686070614194552946424584508151927306647360426113376751873336046587791136383698557184100043877853369390406542850029337713978456981873263918179579098871129477364448331352241464155362810168775493944869227464286532885005949076559467975911251711561049689530829022008332476374363732011964479235747740004103505828576960894471801083277132298048265711702556872200830652036914040738098341214756460970007974983500910723037441203950429453427972187749719519034361349871976263951905331875995684513148420979626921089826652876871391164257766359123622203788019924319441528520102373045668825633548861203768886613215033026508214492952152195119353353245577870834551859570545744105730375097200270265282390701717857424786150439637095934020793297770319304500934001568696090128345746067814842910239188006570341824615187182300407987508225463281805105599163721646894703208949322038882916668259386375027721725072643596638077595699164207753808211655140157012214135936078889825720293297607678806847596746055924463203247307147044185232890505109110969430311806530501794090078176527565202653135242566838271590519235769128463344036594346904378954735779282399685660460728990605471694743835462666602419580859724361288554486834085971034379989327051940519413945531639360608272763518445303171384132301554696740873690321696628876309370268851416143050229139445829548425072839286081613794824831370227341066231853811126893689451239172939177916762326096564367701504675575166984151414739205128938540585448732259396970989383231294243264802017865772930140908637385428327458891329628092531189627970375822932379431072080483364121728323502768988496343620215723303236312453988882855938581557260536853442478135408786733662277354193413252719487878636860928032387180794518750082078425014265596970821497119921414392332430805700466990819006594408233994582235154146416936565860391369153550380827899657945270710861431270114843782244569931511440510440177298318381720075312530472144988531225003720063886296153238063017414534687794839907968009389655155982198928819870573423046761370362852575462556045743092192296678242847473243242757619564429902932742288664416780905081728627621838164125288710237480681199027967647228511922742345752176716521898453564545854276262583057231887713640971139995859513399691712799204130061225759945848553115472619177871542242157264808149441093770985727975325748365261493671636460021427107431467506829779191277360642276504606581568107863390204504498149142247324677145855962319304506056869284900015988367047621281822456192012906746578671433519708197740901214500793142987305080366844908745822878474213952348363534727146008055148860533483624077396885103487768283716078302587357806663769518265819766124124962532005683344232997704477036018133002474745776109703239008561837852692287778797933693481348169145490748725678593083635610660602081447918453945873595181851437069821034968234284014817791273839536033612166396132373898576651917080655247306298200405153916504091400964793853017900885045947709048781032641682480147864762873345804692527773316233564054607719893238895432943706485234564319298749059682660710096328903946730600268540746829910096727137992390473743283400490863435481197555209692076182720228941213134104648910302444718352398869490776059374288339818840001174076719766065810062597358891421984394886980474791638976622771643568809886872297715811756976183079368510773518069003748795719688469747645864615875371234931353424432657217651493632482811684196672674809028020741662607779782475691398776931749936790181420720879610899964684997627733643421076949423002560766621581344680768991571940613500588607910631147544266911534145078460633132399839251997643518970764199353914256812899980455940654767701363900524278173295081186387494467925311217917861854680875408165634399852635303360782535008757040406302198197232020716315458085011265320061916423243114742856991214321763111739872649825811778359803926231388146123062036248523256893964124917599636644537229819021832983982877759218177990818192025942464691042799075514988912562276167098147965367964275324955519091596299481563957204722906311926877532605435328631439141023390017651374494977998792387781321712723518768957361581791428291150761693993501026046910099772244135806128953757632665199962916841527152295503958188854186394091006918272103780978296473190511010269522044321067442351211308803658764088382358852809827028963382232335289358258083309235042990873468633047709541134357191382447066790639023056292245037098168981048409498162883808958969585492450595659683446923048441613330014666476317961834237508603517532051763531220797219511328029124805581560210260041874299518239086063739029929183703915615534738691119484965309453022375272063762739518744282053816081858767171310411217666038556278443489744686668067569844378106404452431536865068508628879314817442036591960197630614086196276940312764762234214861829782302411319344616652711171317135597207363533210407934898945379155941039004266706768715490004646744018741611345643751718016653588899424646502203566615260272760156041190652100448318490103470263247715498083515712286214373956699947537977536845717381165760310398348565607964836876839330499190181271443776875780898856223955504980262157308049863761054925849129035738009756951721262952656037741305693993519091807349941471715099214324862810642775238054022765600491457744592888693124831879859174955187365083040280312336475552129349951957047245249028628054909409481399592297768532818594487388804930845375675886218507984209260575200121415981732725664532480478244751038515580195416003579086845916420617285333504725664943882295355316454092457564835537252339847900593469572804101783675878494503771473825119365409406221982655534285930216600610881096380197612012870443831753593283492975763666164773168732249056216020757818329447790509608455701789574656621540970086243971770020621017401467607202333417475545668065801815473426037810555211840556609756679964466821722150648479707694104899531737190842470263818080742568987425983200122675940088080736524672328587957195353647743969566922727426733133306738207106751204395566449866451892386477405889664238426168697518001061265617460095449736216310846137233890326364279643878870499320901929220595566491917690004734177643579295420288388195300338273286662383788217203768493361675835006335900382392541860972339194514954769530255135664180589881332841755563204013685662943008341923845273268335142705547978650965036229190317159834377698308221477257331711611083707736925561638201158092334612822453433294486956433428941729646825001333590802033859324115655347558785177003434530045309799654415240287807627164156153208658050854892918369156526463369835667025984074420747290082235120063912639190531458002951313175143885441732284778433900412675841150848227922957792438632757054934615434709717601057083551275872304500145789940548370662304371504802533517457393126568018720605191719012454381740583286960149777268379201408872743889964215507243765047493090601815713892517642080502887185481479687155957092933892326347378621665587652961024076371148195045316903329784096698920880057429721837789629848250920216534192590949135218332458804327773825151709942931615962390458034932317229974180661014166120675218262789005830045158563609180657419550436107147691362733035648876191259999708297112370320008610736175207120158520958760912751323360801075143824845694159776140023003788186399276772437085819612664578191677916289910465382382996291755566249301889995027895479169627345976510911585235993250258909510437589301293211635741904421443791500103911809704177820023076160629999035719309170978669494003347116416392262280635361232856136449820045731486439832635751300040126985692652152333246782069702559331904538740917320672307466368323673030210950920878407228263093221945906790433780388648052196036364172413957132709937267648673043276078988384713600807902052970986600808490248271060037969371820030456713991382765771645639482242137099672523585233862728127666258129386010669334838281100507968010274563038014195321243481353902724606348967234874210276667558659548776093117203537544408226489642944644504421079069073448207639580666470695143555469866299587535906339705969759123819128932243930018802010758864766971322299593118997366455185652899551679929974682331380834819535837203497520701920667559074841475328262473338890794714001723746723428762942469642384600194820347242542245943727557953298548161803164271854684685378266485803449340305407109566560691101630382183489616923442157994355953306001017782442318143985970090954569329907421026000904791665218251798271681575615150818035718285709731631116595658820451915986236297831843060990852245860340015616575350864681786137089821936737507640969693609902555727369259966064775841423861869044901891919825698546785324408245239145075720712297957349423893593830597935474594990558244398509772206516254895522329457549124122040563829800757258233118910077499756753420259954801548425498476635261980849828849129432308751503932128575954570481562943302320467637184816657741580871219802073761180543059639710567888967091222167229346550020781873023932380920467766500693558873018992884622811235756045048954800710754237347001094754459756380329352509977148624796366490628724983137857451233436118884035672423767025168993746745254955305866615948310324819399465859089292215675256595072712997079472071398374071931699229589142232971762202599323589089817225627377903524154336431858385078775146752628768189366630204936013747552825165124980262741206389932389911136957449980163487364193120931869009530939858760118393468039503690837657596429201842762776121266126031778049099437979764153538684723016390327018478169283335852631138003770201993631065487223377621562653073218168942633146566804241411355915273903173398066228844345898040790037775744832157727839547828331576756682775299710282056574880721934722835653445077068056945723958026065957147729162805292286944710916582526918647509723030537175012427477092307284600147119709599777144989863189502101839902366418878222193327073434509485064251892312467667421802538368499397115642056106051265354808924110678225534702630696672404914318912460917428261136911306612428947755415289704464119946514137837351229738743006227974194854680520159125516946594433127156736964955845636696878827910474351369366741924402486186843473257141810210211031175831091859923236068463928785565768790258886287937493816343531174907108080792136532808617560482345817302127732235969461657329229594753579217394818114740217484601128358381456880292547620148441820751897023306888346868201554350662501946416425420555282045942402431274663593032634662862896386862570224552277138848212272380278879449344273641493488845175076177899964960242530688228323662825532713317576893939393791736574147107985420539759366727704692494625701742527752463658852468886842557038835525357807834445346999378155641432153251195654298201437380640848224502239515730509532876807351117085291670983012956660853716622030783696535808354817505517472838999512052822876536491657998235383806571249049887722845375274491845996063989085915231048305855192155251390879411097598644698560235823918890534954215206776192726284815399993781966687077161762154414841956340055322980301412255967393058321272449948062763866733470038018572363831713601581244747971904756983989756294459587048242922171062183177477930728189811307942782820878528536738666167885648172204656705503010359349440145354980286038926985925060717793172247854301609173954650664346605387862675378548814129704658962691483595506800199442671338570603095422130511150539760009223773102827465333752348031229406700611347315381133954227971556542734345959012275770260756739937185472528123670381187053951861704020249802141901783131608748522683095494053023598185480018117052635335574267601652125605252802286042127521841091096524879672909612642433577228826787997675508648382963148957558677634426527657447891979361506113532057474912755625812992385649029151525557649298048129229059247987242074886494118664439224150798750701965057582504383057330509729468000478531425102806702085525226323868174573466492660909195821150298481218531787601331194274919483221559861291755217726673518392351907502675945182947124773989438463705883569854929736036684851761091035679092384928232981766436617833245052946271594201704743536592112524014338966429281816853388323976802922068904023909124750058832605779729864366515377832106778451837723137113692178930271999568655766179138170757623048458183736389502611839917127951089258578644188573128638555027497413328918410268984402081765966386397189763015098776484170101910182181378282783622649544984926700543133668062485112171076529369591081915231455358819089952534551233229598982556173337009113247026790631091295131892078044174330744171519737870651932650940694222133870868732112768132326455730222094620572321863702962477794100465065901230317826297752999807752086788677643130492035882944896760357730942773734926392857614781878805981265094234910553358701627206797506016640521820458433945626653867921461480612874167233848123856625005045307784057412369216972611090777265866733283848419771965851557603682849878275037767414295587598590042184753157220487255595898490505054916979026393094817096775884670908074792082479407674479500603531987294736906018353495426431362858899873580816130035520246590520919034212365482692842181428694645494229685520458574652830187222398778389842275696728959160025206407557275305848949209670136510878158179201760526635315802552241772438169540287442447389685665779862935809679738325985136092444259687762296137394563680230858514351919016614551216405420311662600295099671033536647507103647204686627890173785173401052661790106327856969188141116160518671391414454852859155102446197437247097537281337966223838728206315932387763240954239205180738100026670671055402713802394104684193014832310317743143743101757335028632085242810555101092152493070884581516775019931392332326599579895510836800947091684050349490251996420203146919973158408109949340425962023696927678792414325041622738004206137029495691178700488913970797577455509905799761728825358015677388997251657414683848210645672419505366305934243774538502737820875490730803036999964601396164004522772903374990157499557782483465441436041389414084951092110001252567999847358614424780964015180774475517060692569794334660673706051186101638877508974589226047262487202993236455273657007501509496443404364262866498123765278826471445348745465711487201420843437640968375863102331331046223434318939131693586287759771975895981652422897206733687258290939437812705772903314740701083873237130115285712475141492553018875948840653437033072769705683313408438361944341399035003315576059630835782767257087690162890976617595845545096767951133166851283770869878731533311518897648440338913982741234419056648977315446270820722278618875019368253362583161300509507062407627198009073149218241750645452697245987508976764079109358458125454505906348257711869559636779343739129869448878052546923945113217351024638269240471053792316615653496285341771298903104314001538641295191121847277098174211845010288958615135534376992598217847298859456949708289809711448159693348423854588752381892450851039295640071527793583098636362791481450310469832315043146941464761108547781586009123412996512478715600965478312847999913512820603613861921624815195111010008156799043180575808261473741190058347385701170475783040284339632199274059661548055479186341497730723280703337652962329163401789717581764250192904415742818025955664115945487927434972568985340657240739838053791134053145503695849903962810942978661148963787242777479676345083528251753357532141108896628845827858227820368260958129178968842606053900909309638400073768139236967545393766616263526792520380907024403180736373497897651118012433518697574953890863888337581489398731693560127925968077735322626074733346127365558039058594712042408782409726327220903656391883491159913364668353874779332153603346202386440635207528100481030795617260463165709071756186601090362093546747454160959854767893440338458866168574012880529415417214834174819150022328382827127077357609863091346969485532906581501200505850755355719585617732803762222946067883195080457486439014693257351130381322299175464775864899398846476643279319175104157165076323586554186113089657493291316748784955115323619035125244569096545327610089004375679254913011329351949373023703780055473577092787971909318993858740314482839167085672607637905002997559804115412534237095878483166187228433883767489724943514523690008629682895460951157560967506231848265441381939554726923644094802778521656241869545217422674054526017778081023195304427510177682274510370468890845598645800216465359743641123434797410214611713593100402400172947869447644340670537760657251747975618211749116692470310390810430117811907528185016064608637467254938738813939786965027332600810670965460771829514715572026790487531236332312995725383394549703251278299406655137623343037670555687377327067116984758154822753597003472852205860738709696651917684764290298320008077744146633825215448128569013615120413153274727098545621529514951425080654668443581225011974674682739381137359373331384370406239019782212328647503258072672231125542455153234236280623836272521136988520927232669645879229693266994012339145719724569051099944747746889615624446660510386489234389768150290519506028731878546933477619322983948210566015967502600698871358805035146961320659353520124242916237179737939975112072891080194754135912843976785369902507875823521304831186511659064047324311909947318602243713380107986819923078905121444977133030496449085825085479727673323555445145457923394661373749808938566212294266650283298356794726702698764238156650774067856211559976345346512085500599364101944714775360480631936903245065682011653190110817202729430504627385034467795871545748393142076909172112524232403911987064962298547464734269145710134700227451209164661343762549205429445829101250375123914077362258425945124096998097117418287979732441737884040782220770730462616740972906584813921142294140190673519510915192551060824444968935672775709971855093584235001811509927067841191114507871448186591934317116028190454674580777109619917675407655080064900836164831967357700642223082189406550842378506032110760041131407971778908685898061052451062224248057192083086628867109063848671337873618322668535260733355548242207509205319476611365138656220381568652429381311474140422364029330657723119609401538234553037280302002596939701639119908322300438858842032177607669152967833038733815429942169321022165188839164164026018264762134175279098134129237645981532154169157017874907495853186067761187785684913871737372318221307600731913762191034635588695247586081911921952919188332781459863945338995563323787406557726729206338391328440544857602084615330185465618317518695272680114381168645375073039767012167164206558337593969762429427620003271675392294211913427719535880899497180459487868182210569565397959572158010277330935768080799782239832236303128814480154215641839107659640599562638430592182037547168978237079514099771157121167437977857847018475044341173712716709740831057444170955094902456851643297325520828226939466813770548015641925658167477091493781207867373893147248872058607029458703723681967875556998568653570691284435423608472129875832978088142466447708274582959922736826403942290996230617420204135762237634930160139669470377557194494875029813440598267683140395826669828857356528919188340485713830807122836066682659445189492786960128013736967694503149338311962540128139273299338245980545389793021866428939812466611690532801932755609448697427448927539003306683535817759245888166982365839274345654536529941064873217060133895534397907089212512618823639837590067973963824900170444368299459714961032519964008130347076138129292801157164613151939172083401475667549324090749815540810869634837542542366578917111056958856813641805884898321640595471766533724942229271984995426971390994798747052830157625472175499521473834562841912336733971833017662274833163352266999818368583670012933063627042475313912512521466858559000943824151864755164805147844422730767075856016590679153778815118439192433371645779830042267240039744137192704346340925839358799482917758037842157601073439603563290702812100174500365700532254929054613481045180158423616131055929726075920771578010362526940597052489598669419596366693868931233613922623650465842802042502585306737655885597423250420560978056745782688635871396047899718857882855158742599295283183838856172663784195311437017340842063302869424062992265119553261721866604951669079937565865736720289195781114804623652983152234913687994713437360469077103115608587076095587130398924403384663379789019629231132701334064958977285297402873839099011559714791204247949988047743238227933217569306731951951867314027003973292739273749700279231098932683928279319426964426090103497304096280438211962832415182395708096768965279419849318259791985363397489844312999543858600189306118226324885464750164963190977169750701092666867332021373471212764652604160831219148660252232201470335791290219052623853284727290471043620841483947388640775821427241537245867894862946452906284082101314864105418573919891284773589175351456309630130637683309815127063005445031722457943893125606036408892890028905983749847378277274420776594319128806392180518265457162158399290616215175559158639786935017214567330543381067734798768623596852152257658569801111258068572666102570123811836307623005204075860315704619677308019091275120359184748991226371299255445485503101035868874631856081343130970032953780846932739308825281306962814025866347757610173435178536253245099376290024989500248954328893784114142516280300630350570830191109923200584784895644094801514789044420671456933879251687338231856087384139103238731973823390784983777997089494610096611251056064477415722667709975194135936404560666007615984822494549521105339737825442673628569099064012055390889637381771426881185602552696499669017066863244864282971381115363261065610674583084190730896423596484127524543469204337311922597108931987241288963539075828538583518664898939616456740743898502809512661250914093129124434471401571930078622519290017212712472744924284626836526707973250963437858181142610326214171301591930490325207592665313448632582842482675240283222820524587570209029897595300615602842412744644994586939334458242216231745321911347077081750254280284358317766395827359093462628380675264340518011663519237186007575946648837158479260027922878042149043940984168470077750576995245077426908483843824820602264836237373765498974361924938496570861554701089422288931027134879170014250018625673485603796327637158893937582915801820271316514833134169173210813501637759814988267266742752448814164800356292231418330986558657748613647944328225686224022779074737885398508963715090744144926334488643268095488196049952169276837201851800045101350752679374911656380145863273230172899671757404348378093447184600755674957195175470122087042286017327979127404154143210946492011983567915718734159323239295869194707979834921610769518748393197233312824658052469159791246441030697732850470166234845186629661413400373672690963925461811468493307528954289002054974690103629398343535511471945645463930991689490035353444002101318187210112625691310335462999634720721206053194677789160996027467843070673946453939292529414551488889509200708585963484966180432379680448971080149480992140117347113232186237299478527302718802322650713532379429170632512468648141521484992517351955910694583659244531455516735866608046194169702329380383550087336666276943858070765382931294526131202671885569182186081043813614431364025071193805727626892103728121424661009680352250583165255936948884448483454051574884255142749419124938553264241384218909712513171161122011434874908556803637086905077434597427948971425086422840427651657649246149829993809759167397154067064670993252109857804490176775487306060935349010151640294655991522360259394620965477711862385761755894493243155384932924131016887656694231845043792051022629308406014470591272134118026374257413795269804348220235616123905129374518150258670667313013252230480701914197233014803424354861380130224557573081290687411838399179080241866610607635275892956588461344585116234368320171530314078299936953467428359116020359369925390059482339019885323829600561291179890351932623318658625198987071397007643837655278820127527244379788823556474175308382036879453728965000522596183970733876646977875919316507142025160181240816459531728592879259613793167649546308064395666677911450440825140878394969904696306196133926728635782873925727079820918590517869190757087720751394733404213612651509492380218841695615582795785794988357101619208328718753291298382323970508926122172289183996426357297580376043158320763810111319395177624769926499413145392786173385871845308107737187948095250306849075903477073985317539795153347537589479856458061261854481788422811180306871788921224902205398434233555267376132193430101871670606930538469969448032544554426395938401109873023075733570898592740602891404372942637158908598522412719989216638223440096277473424451111762316708721256578788557633258913568756631193133315776101313190862665684341471918193785279668373092800860627732524312341990628267358666197448493250960305236672012914891919428784195634249905824772402215180677562871629027391087886508082557892159271611150289414310694654757462397446085194977602495055772537644238748415101743622402825050575847629586393016589305625917559267713204050596386093424105502318697299129291701325016922289814369248302216443242263825516398359594484943950655299922786835568651256187689664943134817888840346285867433279169399640087349813616566848955413421750505788272974192540628153602298506400495862037804011372566132930543883671191460792235125242941413433633528388888268025583630910980877218100825196609135488151243079019105078432205154266420316664573849617827690485004683733149421867131274014380980911171969948172512200897198434020825270208860309402212909958076751025598228297415197602902963285593531055992680551296608330489955161369730006765067083997413287224449338147905697575034161967687795546655543581521414673453590270518818642945972629004572920633143149102482429718722260821178514269478258806918144723011880646217883735929855863433975571172546041364076195114460743206634071672690132714986149378900188689651608769497465696645030102560907981176319168216867062463223364487638453274752448690007213931315147469812750428462396130619094418612190324376273105400817005181573121459528282528785697184179854684580385035749903704373179226635002713988726332333551819018413219250580400421672794679220195485994654385689282508659497044151593945691012533173732617736804025353935542867028260512007559676039316818771031321182836107569012289144111742905595267034767607131689725880274819892059594554914913325579648944115824229503864077094663567383546248424040166590906951104443800834083971023155014389795881358690517283915107831204979735312522605022874320594042147037386402014054274061083410163032544433405969021276315657048087713232164316808927261394882468698940884395289750376105850100690567302363725200167333446919351056601217185105106099139141903878963929622269889401135466381780210870519215040328025469076528319202626865448198221142966122372007224511938589911675222337456004281097211666462232631196468888916648809509259932925572138480613836417040043310560450837254663895867733125238801751401354449727003850262315892757151607747210291491424166594796273081998905695653342930090024668745574150242815529327289307290822041872171600224496779923140679261738189872415591468764871900157992023019257214531530063850658182527526855396943997126776954052346013476014547923917049574663285795291739717746014305494517901965639073018915158875847249896918918997582257574180509492931452462695761959804046234537571830830967544424346597963058619696324269098325648649585594482695204385165033824218271194377264051986520039547260884553840263824980147519352181179652989813276421387718390922356460565479160605580002203619943775591264610290329275646429564478557831037436707482043085724832313275023645702112689766721930495773055988465751335768778397283151016728912659736139267397877585626919968039025390268843729554158035615390804734856502721706233235107614322174469734796278322752086179943663361695627055618187960547994904439209037993719634428066245900858459816997070396023425321235849011882268168113697190779999644953927755741276952283559292976831826997229939562029664070585651604064229217677399095768776592450116544030249729679487675710677929244701202461887519575813183778172539086258050561932754173394383778789570622575326667527277593219494607060871701229143484070944647262725670477346196857381404412296559910917109473990443540401568611330890926279048883285448709539922526885670184030543272548814097881952864029582913093049173801090520889171805952450485160897907901394755095459892607662405725222301170643199347177247018054811439208682632724958790510120388683682717576294965316265556636358462174164257462072255469118158516753246128365628411267636014128307851004989497452909082138630016338778691874811908058200935096297796267555911761973356294031073828879689458766384861063868481619586878202206104998139384594114670810449618733429347048484088467609725775557235612969626379970346885498968902938545160274327828890149846002182751252562629446512396124931323203194547486608448219633359046809387715679135847376269223587478343749018827384294122355805439381288964189148826370712982715378864107756293545952856918840226243086548449835753836345578015348923813137055561224784643692965578943071077761535347054489823994967723633455488802173346421968335351704190857496957885084284233594766158327743849901978301770296622304798537920113662091161872395722829017568935899276231430784189873897795366760312349317677035482855372304971492434358130464059151810527085076904573626457708738878867648787208251215011285451112353794143376105407917749395841932991721699853214301898525574088938126426331253037315258012061405920045176260523962028948202805541844070650547593002837087564851006179247052643066650134068074168389932714335386862152042296027300255609118380990815120004227729900763183257293931372528460166060949602735378423506666228244755259900334546843012496308696333137259546162341811313579937005074747235881152300363898841660709527485629650835679483288327884397999346622444629647309645645828334117242519933027784212488761320900706057680948095667691751923261746571004939111728095409697548157313605586095421627068309647924870353578148950335095734487491114473337147843509459749322828023950897169268012660404484414650845399624449133372273119958596027375392163329446796160993524114222242865164106923387212836186555221161370238822238844862962448174177891168523017317888379190562470319761186686150687230540278690326998333053715498943511887766829477068041972290643824347591075711671104991852264632476356484700737230563523702923676925947469165115491270445985886997103097548519825413308361634869489985346526335868560525400361655396224631242864549206074857714325117373882691440436341663376944548796739436061042827981280548236569940824930921666936702043139981870541809596141211681928525712081598774598813351246215283262358721243653227595209559630944384130576423642727390851347454072522373053120077840261428651949785262571006969333930668956376958808851946822217289845727265654568691145095292741142704772838741148128876112360239339783885142467273255857730782395184499003033927630704354557846179336793031553885598325367714784738700070934383457414632179220041226873816395601342798880495528613426536909785294110456897833470005945167504455874207532448757419903430938358634190064304426689612656013851768751544478822531433216969059887854341395047136219682454909886177997426615329676142340869995942482620306338395030201698510568281761027488526026585121306915888893685811792178128720519291225414593064136408822024775998698770599820622015724567055360062505633906905748494509908313815305719442306462444088627050995085167253922376197237859022631685181501770387730914491790410308807416486378187801914015123664205565152317207534558060130018094075857113658836543621332769912688986394333914004478178258351991438152694161965220986721694844737684425846144574626711890687672769147196150819928707715105792492439339265807189538013061922263269450083861863732706814886391961391503210329291090931766090707718202977681000718496951786164248271914273056149013410638699758811246694960626406999915937155284177654235906733304845729149161996963225985243535697578827016371047804678216216944999203357372837755494025606049568496058376850639549885677613830217141369113728819571938120955044355264497233630576823068627399759057773186007206136823696835257996735138667737979930458882984456820972814564110563597794015736685030204433176178644632463229244046559574181491494008733456953617317059207909637521015131016867438673579124453353334229936227603050252765526272023905669484526371674558852808504528458924594112384032451469116208294148685287475431253021864887294879853037261119169061493213938575028786863700366255778652757584140679029091607071526572059453361804727037823557232200023329130770218460045994281766519449030443089824656046427730265185128723861091404463843753763446963470304136286687348604519218587489783627873111717660703102830008107330686978873355356631432865784691142424729299766191209618733416809003684536618435711408541454618349492702340804533557287830227393271905467554821772595715806080735607173729633757208235005858943171000939813265768219180743161977854453070253308775900355239097269261185161602993593446115938790355011160716755372915117691185026766602755662694019205099595468076156570996944689498356625069117709990932385940312283505904561658134322080794631027528847262065392707219128474916205790510614122114600449259051357257880807192964937568838328069512937091241956551827544134690361702294488829141445980314460171499097855849367792298641432576482481448782190559427317555636030195561509859665902933925217424398508880220725984306561457381232022117284791780511444526263834423061284960372046226100413769990504679997619900329522876703744611955913004916748735131970550814518450392709523161576057438217165209272059308829768822809740020523985522992260698333990048472342831162939261308753861892310877468060159612420519726663811045192013610143752710407399462396179765135533974845932565186050189475607368840498809430668051831931520393610506222208395540436864207841692362739125670987442197629258924596470309143588288413178252578361125259051873375440728157434252001739461864145023438921477673452423542718903207517238418169371439064707044603149527150598328742258880708461025362264417214413424715021877023087611433916747871843432080138349526030024718175910635129061328648044088097500923521863626957605793215930722460584016236232407751549969197987213556582067708633219956637706203332559620546872847191080921899210646995629603053134780806116063108515117535429204660266394069937043756932630051945530174958206113844456085260072955219413376593268586352242740603621489158646260383306245809877227449934579845933002382490081203816314228712947729377322552677515435739505691426910830336342552626845455581452769052188368035284413472930780514070152215655257230217969384821766592275883101601161408451121777428998179648839912480719521505032033480850526898833264332588531448903139043007475309470715264898104005252460612986515306289382731269908444526711161562892060031593577838144012532377021139832626710727328766654706330918434249956573496254069016819832903723566224640409287511565059480636081510115134033016692683753136391320705593227053220649191641362132612069561908910170878045420277582550674604322778909735759653224985198198584254171230557799787869241250193146022118791252952558728341149016223485401074431671979504007140900383027596393652303089285643926066002580609781320417862233966132124559278490899257240555484426240168535504074574755524051634658552307779594521674089974377919469551944153761707861882347085408279020333141117478041139666483756515014425833059278630137587252200391395407536208382709636125004334195594521857651261153420572437979667377242936036837290841901800006096405537992846590822667268327138329851392980493393942703967404972543452789469057434429288825654498323430409617265070934026225025844665851011082234926722515760595595630041521721002295156998467958298004114253399950241527896259538555063114561812954389601601276559843876403079633799437390297027167390994475182946762378726180612888480483565611157107377354914194246629725009659943140657056602640348004756214242697921316230853148206071801048193595320443576613633120651866560260537960681390286224719568263925960479604601557378535816085499416808073299530288944116333649177426898224537706825207918205108137675254365716008043643270792777673047563868144806339860527104939422078007920035947003076290623967683140070488741179708284054697908097255722555070130097873681748973040277139514641905704142491427206054002834389706356393381150589793929365201145318929637101663443443468311870414569285749297705857655211923018707008653637562677495450356233304603929339016193511492595829368403326349121215787541482369316379929080541998347992129228915225404405076068048382817461113379933908211046400097572158274277495598262900988380422375764562162096615255635566108485001614771211348026943742555687609020303208718591946028437640841682571899499456996201283238123359221735851279048370177071078989955840832882375696608651161196790129951601901920467618510648494631654391900301991385738925803360369709107567651066669105010075334162464725211096070300523317665468678579295536615588831810756094953929203914919425572584865024739173954179606487456174477831051255676144632006525644924727204888326820228691504461765740839753882015486526104627902282643402258077793396538525623136177890375937797055092909579101944452296171089954587253004557709956731188161747871537707835908883776507120935015593080689291506466191057105244034861291213926748424589505803488843216637806662093045171650995355321124092717537762352696020410890605339436536838307770019703853209830038433534181878421363125904963707127657376804811949598132422772403958353400915015357569807997558862859645984283232025386687161003483677093330117718841825779781540314287858276601814037428055735622077613293729961210193731046949440371205506998439367222672321515360619471136506320447614736788996322139344656198496109436399110186221486981903337005899749791689846740987151393622952691466894229646183034323596458819215393216096910124943902715561128907659425803310410787400316493439004784714085587202053954942968018364026060035035606266902725181147647463912342972168348301264344099891302955840492898293544035883781284699239600553346103995073615716826492835146964384790316420513677832440395153053355265366516583803141739828326317418755345023424138615277229388917934208798342687764113193910468855591287928261241072096115003792948499351749233225522502195116679533112117584998713581563953997669448747268058738511994109583298397651452767475386632420018192758118658882277989350307301869519033971222155135047694661002117691187126715163687094876110937527710313043956008390283439544920862532677803685872788954251579425963564199388537400344187129980912457591032860946557613553048849291097265011528149416626182838708891763803946624713162682250286050977499891825934804947954388852909741775101359372437801361065869043309396408823366751925358683137878621114925690287651926362245222519211281467623148622883725742808182194103115676901665237893462659987033545933334081035514798833914975808343975051482986912859365523015005234756098680189115700735457689572245181771766726123229308205293558871761246670228884512859574286895387530254468549516474365164256716217610984986989785796816470054583538941830292880235991209695064258357985327575908379101134433444893970193507110048693995381969777856153169319131067812012237206343418609904406057836545378964491476161975594382859009834523568524577745384211635000388666818235787214732948885760301230554168276695937134339114886102046090823190805589317183612199217609129917303764892244905401660029430484613506717719151793165081661788475941114189811434747984133875024196799665158935892460571809611301399233710261185687034001097237608756630300942647969246445884326793558402142598988839080578584410447834770819101197550196526550303084474627075672928887881925079050202852070190237188802744519258161019499771408438159072639887145685030587690487762252851566225654623351498446473451512617796169172941660415253827905050226572158986422458627829445518242994929366950141738841314046064244666728179724969200689065755200903200995115834193027793591149787374479534638002753613193348847540577324298187978768546661196602368323400051716817917411574049657138293231626722189048286776236966432380881283708374262682648369172771384517235902896385408044254521778707517814972518055413450914370785639450357584350379697144649094203508647634433825164277811050261071620614892006237123434254775656115022272739650854225475425092851996892225451146960344672740015353104555893349754751209499515001484355898980856846144835862353556578603108810432276546666171447757690589161513109038354946588599940125759321003411910720918536884969100905748407596492316357830289749999011167567602401598452198091602993649631797350034904923751411263776197529567815354846409033780974322709006949912798774432813297140887618774701941827102221636997360090624228747105418159319185571876106265557501688647972085666000222833986657235754999400816094253523804379443673364572826479426971760453929309327678336234133616588731471521287754008649231712804256762711514562272098262509871898310446940807707210257321991855129050915375809117757526159456545781476715599375426007141234255754449334788665525694434544630861231805161022676795034471201421400974713800081341066772254952832233675659642702970221106961663606077020301326726104090657244029770277852114026156480226180824742322509154542119392795192404750986622953645207596367360739799936107215184850418293052257226647785070789380670996176070018863890480922102173171731977806087689806836997992154924569290579697756208128679208526354156020355071972354484195389609333633784691495086983747770349602012099620822580553064804554461645651893895246874964715893571896046852412431950472214256016031172099044789984335582733692677771199036999239892424725516054246082314608116443740193980397369339346083558652823436198270550440394768291726366844982546602907819503673907977250010892063792774647925625191320438474744319753450022620203052006771535388387763261940079743535048878916521505778420993081745803053398605600454518461605492534087377165442512169845158281976989954369793892240147724776469969344935944186558892278403644955293760766478915238904040201211709046378676750472930460404594613078303303078989017878902705448271437321656481860541157674841707490119699028804719362610634106280555268279106251693596270121366305260420911074639677562778785730788971626954341656071920454115339816942445837590234404094321827071367909931891162015477683235649608940650423356630887695632755715554183093708703638826849424966771370187800639674095994191548790914746343244710931677615229077322139057741534920769306060979122946189190280389220709227339203424868803308358340253673760034117173066774720793324032215538194608734388771815768934382713971815787105267387779166321686112077115578874061181652491570608787558431805988212042880194401706841942311245794813366593768529234625572120244312796187362548982042607525281758456050618577036082041156853758422676852746064762373746789357824798268844645139681354506237986948193466286314707330566006867336692466529097127068715102499289446746380007107460606405255489853770397411683212399522084605557078114272807280079037691477771204452841365841259056234663429499142937861296430421360466528497286145122845753374461639888150703953519922062535680336469239261106582510646537234752518990804141750397126677978189234268802843394617031085792683083021208295768789440567055057329949309437288466642918039749305252621980269294163433748039083090311840220321928094457769490517052064208161166191673481377312260737155496395124869663221771358655646610666550695478770321824321510478176128593221888983993759163620359924864834972825378741182873854199940105014262637816806612227572660733700851670865433005648245075107956924969675949470462400179291025113670595048058255437790435233215523163709852269951481393088419064472268885816428093004127099756315020585864285485164049084842926806806785239142580674737096432351047130268155989939579262128376636681813948797730733269726634562159172012774421506244109029552140223344125146054302374908791784497587326083041433365460416804699488946836677828872554627859161144332780174973313351651127725376831767034009008068334519003817406112559139987969289594239685819600309172976389963440624666934403818751692039775672092288045032445389264515357342800628003931920129036241960998437237168314295366314580416937786952862390427668679722741055103962389286249848128612048092957185120209546907140272303160483225471610766224067301017166710759381198164819425773563320708233773689848059470408086545161520096191363962587139044758232085439225831655773702596783097291103946975913116617336831133504648970865763021502142304393562266461745816754736772103865494829725779749813425537304140818990614208096807232657479872323805089096801414971788673694480390662966018339510308836996631199794549188560481582985879975522934794866594096684989446992682979295946464275943383783999947001853077968575090338791980136498010101099688762872920972923730711604324802868546965015263682304293955330349893018908989421538763111987006537003836673677594606449295022626540698562067248871800731434539841406915993917333544677620742209799030540325866322704437551712618545530112039996685943945806188086297419059001234229532423386667930470683371656450252852959654064463134012947618328168543395985274087431749583601987742225578420940984017996214970603435673095756619622457026933936528534998955486489166169404327257288274715294388270356868353797589684660755995949579809121218346707587429845366680678991545921341291183094817153787525541318124348488814095219280255760718040432888051893056292895318243963934036525038437372872230332701046928362013195684493794661774352960902773367142003978815533022025376179453771424818805521567099312018003027804545637037413488072612870383740596385372084554817314876378022376687822760531390439197340715046932059841676746913847760752033733282393919618615886408805718692712610635632405420145380981971974779995776180466947536459989718706157146014807782128832047169316810570576419297638974441909657510412334949847948710425814352353517829290415299813705438937450478498415727551653220187284541761577364757542220395554208070350840489131099520186580808729448239362075168511398439409916864132771240950792096051062009424232146367899337600457959758457665052760241500813161580053220110285452976388254149682546651074650295739424341187871804069752069829626987060098225098891596463345864108364554886089356935907909292106252136598387801264385479901307968908715061193552934206240187326646981347717382584870281734852732401773882149840432377373026538183518863763589746802297936501386450044359512811633248074713824349083565732891572086152401702167675285056425827017969805633125257046607128990771325569157026106752410164253706566015223361237074330164727410357129806966333632026686259887022872573268181645885567820139290433498021645403612660945531294677227303413752911257436448883500972171418422587947935089430701275117819140462363351971002171866823679069582398699103393284083439462872650255697953446950830169663508997074414300331097672786414443453882237803209841937147437922601944499922538711683919184894491530722504848544151355633102268608183076995970803297831725810176274683198028291260832001233731248642692071111818935885102899931662170844724310115572576496959088516273086377686129325741621082149315247041565010069423615898443194055422682697329487176016336124827666139768351955033723899681987049543548566667762174978901819442920763616814092843749170812331612953484206001651853612803413617764324266771802466658936030604652968945068710443483343871397198734755401599029116709762815766086148692119470090051887885792346774218088112205280816684386650623006321187500853068625172138369085495985449021791369251420518759671257978973621540322122353055635127241372987920130702192475526394914861061778972315071574046354606246088358963404834987451253683997648501764670853738103234786013751180022694561167531983007609688619476939346781402516479138858311735671470816991328508619702097971956780810733322863572964701764502046019863092247641469101569768158644166926904769946328976441675572934539878042121435706652020562759547065089825283797604592815179229545156898521656628816614565436560654042976478857528818321102962781401255057486213840103076047758729440125398770781146897511454216163566288919632442676223506343719692179954224736898219727232577503126810931384277336426002498169358284579732302813782296959782261832283799310371819421181886071937333665765615679377496146739362724831674642528163304052392152612719479673372165230868543128501023407940918769537586541469838206097330398371178658656173083798285992072990911881158648625267002122223510495076696349131894787098154137716106689327088501773241989768547338895358991756751517067766204412540489870765036820718429613438534242460166066391931796535341731870837242511413508834875017394265881831228593523897954069349413199621210167563405154397836502612542239432934671692880375155204005605580937024638776669707580957265509782676121597922509568337841468652790801203550255569426567519687873989721087431184329158809867392889119840742715810962998044193882418278491943592336119821161108777702721296793417241452123057000392066777382658559179466178481958868519568255696249532783825160644518295558706852609865957233285001107448549381948171868904914016157756949143644737393511961094326429597222004205201567226737009109970539352970720276395853985334466870625382301565067943078966072001568568769854470140009146913470773002086658228481237701673158101904171394664154289152273031069386399601329425567912648309368922347911395781161282922849874882522307240914528537788690312220975757955447676500825500349084924168859092072582477936325104602455681502666438295149862705540426181352101198239929145043779142751957258412989018000366984041329706820332444656683376900485662273654988830231562947703035312588164273596724324780248510462348492833552733964226162766404164725668455434115630676668409059019584700831581906773124954123629015861273459766368597267876247997053764376358709859783834013523378346876795478834732056053246724098009710003398989602441068722206729236803518815566978553280119124006235758758655116930596761136111366045671280133988490837741994274594879167015961259012930029607834454508737397632848427538379585086980272945019635642100941744299812270331637730603445300230912891863471954275261907088336958428853970183413465611721974079099441522630108410259230187836941131215359795490293694596461912566995944511223587422207981299259038887752133169711475793315084663626625606448652807217492174521367229034375464791615131117106194714159975328505413645128712711657810746431713343938654603195700103406729281083757876558240274930186325408050421277454601113837837190532334253747217363768475084106778543010620972553993372527992513312213290158922406179075437515317174843906667082726247672989067554716662129769961998112378829208780190611438840499309258557197522655069839526775471745394353390684394066256991535135832794068665835493910162770352187592851144285137091939148395445362997835761071535688363007851379807647567126003119938979632013010083030564466376039838017431727423351031246894952990429987171281551624234267349827537211686411516944905579267270966983049811209641072463154558654742125975380951535419964455014884665222776149209219681593616500129998674617713782253121297991470360746898718212661081584019621660903492755362476848545148502976574281211295210472734737725164908884841085023117087733582045189853547080386365975886119276685195824880231609753356913600199310671040653405606471103666376924668004010969451271965287466213237032101961307824541654383830528027304314624406033139476792960192736104004329522712318528410587290994979871687145308525066227784806447110452219070696498787744773111940019662073885229033594495862411268074246042840187443721441476422783893252653313255962879706791682899454029679690755829699300249294024354754023396194758644371855910240133335744791097181022447872381947285071510289202186288721895419217680542894709139353522141298812525932284650382502020581072748929579975967146123776220269720517244956806938585746326960801030765693317949649062033721409469195016297882028095644528101475462485215479687389974393508861712787201938773604536218016862292695901522485267793254062387117407459991504252079362025537606033337228127720901089914202227022818674870660654830993042164849780340349628373520255230867321211446703640224182190090668901427746506106662490319671766893780558008892141148961627470830894585094864892546708617933578306480469417098347718206916306427843913066434816473757040616312023660890645167568043461267903306113169546041533103007294864288943984916520722522962244360106923556545804831895411471643851688424949144251650646797555093064274472747854472939471239268964076792150561012596687786184769881705548358838846276377238328190571347749197855616367138984952152007030548038288330126981953159383164956837273167615913208203617580997813405107698865158374328031741262327864264469689898165416194460253633650503228900872461844258798015997454179223509518184457006686453174050014453636549546330977337681540114238439947127882977503972633493465574938672802586752195838249739476590984985681456561361929048493449480284766533479853858848185255275161182940547963115622477021382436286717884409904560461234485944141636933238339666342220998787297368194801949353800794734121654775062372844383066271720286181154816822687343914243511941939703079645731399626754217174517762441970370086268844059870298133009526379389486859230323753285015470529284460843657632128438171834965045891874233181906269380745604049892382004724953282779995703759418923556319589191499435432317773040425792329897607841197036120069281516319286872761998507087892501565848154268517248444727311295389788912064238115124262543298808495133354629028164133578290496909787533867257893735924369693803087856673679189710022132944577241105511198630032716837516533731528352269969442900192037488485519167408885615440957063054287284703730317384320420827123106164934251761276790286525099674879974409667128614361872692205292415915669154645405205404146338929864954033836466000798868178056930996276611373265943088401048287042726301960559057629453111493917473534153034305258429089582931487117469670295055579967924061423085935101182473387524760793958513361181669806468074463166450725675352001701104530172731186459682241673704585820531738601005575888950346120447556539131720296953599869053445832858629741493357777760163635441998520141544418238051498663519880848864543023102107300359102211360878337598261137689219214800748257127340659633919193173377134114129642460246850548902754428562640213427349876693261073069014093524580119661336531322027269572852406783292980717220343191440888887540701741572773897716840397349931136209052575365829362940813531187005281624130926343055148512446715002828680385856071960775298198914693571684050502225269004973357399300233362382452193811239935774158308689714305890542181854233615069832686472756788151242855894578408646111059191529770793063324586657732866593257749113461259155223883604017591705897070687398295193991861554575131450099706580048507482453947299421260430347065103809548693720290078692145889497650304876142069220308105173416575170835479555189152177582513795333761062802243953579144112690827935463266719013509260374621255617005378352120110494281545314055048639237760394734469726019547338219289073611770620097367805099512727506045439557074249528916743210126480253744468432320305559149042906162211813558462542690505918877401544908975057508619780193061753647422357086508044459215468985889881623950633895026477049941378732537323181215153529695287079000734706663149820530109634277075968751908003546759065805243728814779380012848875338950106460541189398120056057116149068917587992421218021751958512434875333661356605499626482888652680906407242593072292547037843456989800735135053462810187360775495678007695129161294831333107122063149087835102483404520384165047480786865101016640034926945368640906061331383432222391911541108989544397329342929806832734846825085692322186264055227467691056936268433698239390297295620454969862321640974956580399495057656582458517550823505148995958624170932406861256219634850387324605234190338414410108724339792701113808437927423587702922036463329033749352564127202434832261581475793785798867308290207051568438318123135600104375897067185698784533746494283822224631796235251183184054548163657709526180453409483795805605873143487057745368630721091121528296333667461489673485431379487060258603092179823540328342485278815845338961150488039428079476470341874892968179500395511874231875375336218681724470306530763364823866801521505866614532157091229914073357205320169861173848434611941152491641789980484930259545433347050416864268252662825431831518734798642833681578084742511962035714951073346501517596570643741444203049251733099238276982026605727350371859285197578990892878874201004185141573225670305621660297879148451982998666960084392503426151581711350473000449884586303011871892114040669143652037450754152559099343472763618137632249189376038846592930822307519817167794202859565178169186873098937693220385034750063827533814760987969544351507319384959239232195538011791051041286617394990856031384862164902483002924175782805580727535154812454695244199066953765042882860107390668537328882724469602721783050594472702819212353699198951888010981311842049714812604405400847056674607984044606207501313554343739585083664189399818901159935283505236503696113022972256670229081316868216606307305394900959689756838629990832018075098131098004270217733776220995111527482083682037359032440025583158373084943304907543494121480327615812434493355104708698805781432133872470091044388111110348213949607533913042030701139016963071026303969882570977407353622783399049377441518593291461676745605961289381883737895939279164505964929129826629421974571234044707786019079617454379668720033608639841893739918473278475346236020278129952094406187161502152613571610616386690596635730765241521260041465732373591722517923186353277154258887002695559731968699196679278568963526458382006223218155775161579952363213171462842942971113887824695750182779373543251667886075214526765903754281746547776491383502769474106001342137262861925729690877390649353775203460285102514592183262178059809366466207478406710029304191438418114067229346488513460482277986560955128277242810905336292553368313376746961424216245534378867813174153257403323457892144636915140276613272260741482467274813024179720887975210076002340532401811990430526054054312398533657070990771984313387586812393915418189355561181976693725083780304141701004763764121716371724226032454049851739381701592246422235776223754177358050154338703361471172567090864601955022270021163597747950163992579877626404681007421216401783480385466873690699814335841838263967405650383139257715936226366291021020652575354226068623284401155289862051496660877788203723070460551300448447552699186332643047162223134586132443097513938258043484170052902203406338718398828814644216768701457539591665637952090517217397485265835264238715245130794617828662640782405043922969373413975375398918630849211188036986050769025185213559617231287970676589012061347931467221151351406621675449262041060881366088710165445454248496916639111796171125447411232411686881539264853433734691843659080648457387257254629493329381183460498854586370491839235464719475232784253870586282447148739785334348998207779464346509742235344447523902818508435923565246405243303413021051952131077507861637031373178254798426115691589183079926447296189696046207626683183305755646549990329726014770753155148338301809025170051074831897072959336352654627113468277902250189086839026569569902255520308064287372335866414848656175808186335873989838956086147976216251101468351886675452486988138687622983542047222390860158267555081409698641475133210913988912540900449397563543338166662903821433654217764545416771200505453404509258266970929209356492746200945948444920686893605536329579456693857657231741681539228937599362659056146121185789592314186077784695326876501740204696272387988070515870163710303166048915313691385153644477978801928656068548382529429575212765221864668150537150056369933378716166621003012832209407366305177197018811749365656804623897773262946699230492772785424221299272034656531533804893063170047784860579313371307414984681596203224612827208265256772174452344331829114631971188089846093998541818632479726143059636155075702460986791401177309900338698112078790281810182098836634073084068938002531044429883396139881484832977110503058252164913537768871768755003617466447581934522616505555438814789394831704420658973459154744985978130810275933008802585094619758080573956146243653215794871964221863439543844199780344849184827164439918834098742269834835897341952851878311200780250974382422425923157995323789978883303173048358866271841374415527007410817655837653464038741897766069372750172972156419012453222312407441940253556160673105415461359866062451188950040094446323925009191096078076015652710726257644687366149798453090317756097883535613107743275011038123472020113216162117332738199848594165582732716417129937720785496797898114472373590008175209233587731730397344176514178632204375238631010053220072694750212899928800659792753792618815450796859283382112787200969070584763104860611590882671277735910751764959729514045471752250950035632659884926135308149774635426973935336445179741084241577080368667842405831111576385473688191617450642662689609269475439863454511371229016670987781725143029322953945193771241712100239781575745480920198860169485089112431281147320615895330397466246506106996823403692451027262776804307600043559444434379055911628813494637619067157344296485215842532913666809257096860981512567133858407447204116682785028068123740433620519190890182761700345404006225361690116984584075115973335474686609984246831138118589171619606162322194361768391275638778335574651617585158693918089061684116135009059705895916688515839944672619883182676423201056968799222534227414493902694589703418415080743946293832913356982839315434665270995964991848384544660818045084661256462054113720182815071811294422547897345239760350626974305759767422295450405729428545345674809137796408466467303288180028610064140024929396925182377506170556539144528759486551692235979468414910803385185275607097022254664025917583887578921498527576099441675471354300035645621784681280293904985230615539628374173228937859238329514299106013905847133067704894664130321524885604775847709035707312773912674543028435791168734325951776173090100309591856678523830928617139754424259381078014041048735463398179778455247701155670715440335395111198507870720353390385293515524122305580358629917065777853180989661527923476091181331132234116825642161648344108044223805911609519621107254172223519698889352661385746725236099772152612563488415184799026662335101112458444290788548400392810974549176652237132323870855058753932803306431345403209275146421471293016188828149577093526002683667058230521124761758853628109848902272216806437748921122165480663291249394131531469663614038492480697316791050905494111254947089595086794686924884446929707709885885302972491289580268524503388195633282709982849263857474986747676116466105024061780283576458533630999676363949336519979345353913556197298386977581590711426869572032533899990070410439155236524888362861621744913887188091575594791426775836298702095770307928264912903521964966044550081680433933053455240514727202629516333401348911054780845400246187132649446847933937253912744192590807267299087759427770492229322662078277332659104509258001721327261815151094925922925098679212663677890559278580776301798531055848950758272591360365522032345311651611502475108765604038489530701224201475318160933839157618199353383327011068398426754799196936769193284517184592283734198206750028378153695070251434841908141512901115772634950205943368956994807254371920483228131626961263764796595385203832290013372931931322738461453896788035602730997007420826054491031236965227128359803082400990203698871784145271463871920693712180121747979382149204294028890101259257446201365761362909391322832975019676117238608895953673195847313502810917159921566215482133792371634812881060667165613343475959490681159894482209748983399157223252851893201253337910342676078432786699290207445592491991569745060145168549626311954234543445660320233618194487490790892852129447798310411685387267757402474530136307263743996442201963204673540356362637763899693365014173938646136201486867344456272213547517715891030427816945428864158801459645765635641453475383777377376978676766913469346295513064363821264532062891828927710358431920011145445093272412802770201045757456757477035436618232597977553971931048803350920713877434093686536880883252024014051177531559890850813002432875136131696890948463052285066401622443868531029164877117464420520006963692291324579431432945693104700635895646101523199916382899961074355311529244434799161644708288378144032931142524513754075520570603260737014807940884189818136275024763858234268968946872149751668107633565034886983234560015372987440221432656548685257803489986560597766789374272600150512827228069486299953134982075578499906883367518447281472105244131780413341205499522732944526793801848705523632089063892272501017927170424790794612661286605078707287918503737260603042329119657199672604093413375378650592580843167766462519190583028034406854987190101566193762592546359701680307059140555348829820257874392714073873062758614259790792724568789066406819016154171743255616174436270289417809872408352975325451915899899875740156507625568355434918069003718617264029704843832216846932660736728578912406497374936769562340643278531614599761997825484566525403765016850099212328980261019705805270209371854066696956960066435572414858201844327169100443150942080236356651036708712872191567682586838541027364432679357899941291379726431529910075759978175187040482250156358620856160622166118843563567678631215409822394486550615844021728615248704368707961264465159079197862501802301343972447125967006642312700639380407970250227309858969936820465291922985946144782660803014790889271854205525155106565151802013448250613730253793158373184322400344199705153183130731163703200081635381042644595988357495634308238497350924038124055304748476487532704997852030734166462102164521918887500609985935561169202493948168799960458912455727510739305170864589613052224517065589059226634317448284114704311092497453568951829748266801984085739229930608817433102472299930474304015289461883401985715274143392068526285714708230196425582377437627783624915329652886777554395594352282103632559028653722410341023357836202644003701229375255652664771459872143158427502582457759504515233894157043830897214524434484045958559417882736693483264733784589726281729564606843425995667545026262529868895420649664945088354276321058649694379868252731775130293028142929709396960277875376276658152210667105321131237694327066780276390120121185193958707477251520932387613911266758010696211156615123155328340517449232303387614245293705487965168652714083949013226652394827979215167391841457901276198431890786130777556270287548712270601360258440008518002188463483740434605931098884335768992047303396541664663600077042202835053076576336389468266099594551361263991508723153954745756999068461198343535372089916364020984073381271366210569107083911267720428490830919632812213094596937385673735224380256516388564590380199787170753004752553147408628418180822820190025108286186094835936309900627716331743766565444572447287693306554267102267312724244244397643792203540235246636522975034191193833202620301481761472608078495541857102489665695611913112878679302142967483739489537743564964018759754648550809504067720397474611735991583090420400297003236825257848109061498289597157554409203377858527779170660485320438207345097918977242681453365409064379115791027138575075740086364158505824280159561746686139940832514920294279700315268179041513329334060205515268619211096652722490832349112640725640874002879283117398222819413019129357361895036696933179665192447545773839671080379328660453987113177652881124673471971156736858739380560666739063622829089369859230011819249724963847742608359619312354579232568749985578019483279397332051435908724977172515305017114059761019482380137313182209504678784179099509300839013239967177187871453965225282266031093991065578909373130685186752948067641640970124864110711558055659948889251861941014105205918326595833617307849850686286452918349603667033002292962907711744107183004313500217781616651210405364677284616237886170491789774361858242152669115638397427823461835396169764907864726518766337467421391697839033717646689472842860998312305600194784394608866382008335879674839297393956737556338388694795317206822023819129079177214914866825740129150820050271967056700673994784763834513651730038708695908404663101561293998642399030555132921127547297511628383513034147381434678300393166535502397194946864284627665928220558747640919840275616637138261673128459594129335539114358379399456201295992940129664342402152543996172286170797164024390216173115883540897774954729977242578867982978620933672161408708064928008834277541558110513672264290316955476703030958844665966049560792557903293461587998604781456578325464498558843123866731251168622461363885782307491838670449601527750648986204154997569785965354730414977733324094451888385625114951268793152277437754639310264005229647714248691576548969828877509338273114472657414775971494638547279957861226901511509352096989391859874974639217960036861147286440154897209190718165592792968108577190448449822582385537124244242250736684565167872195069497627513215548913600530174794750061478885098823114493248863407273641054328051823264938467731509436040814717434160175905520854067703994480292122787104769601649110101439102979571631270368440931653951992642617288463868080035680251345436716888934546053248708057175296437426707425077118040864600323785753769925267420280904226648384658413682248731701281966682911682629215456557225425594780105649406926465378350482713250800604966313740702223869447209026335342873154562059534053036794619914450321380582730951165238725010041065862100026272681500820965350304691228614016853294917706683210651624963478702042084119602054938352911507345605987181584683462103228261284091239201397005196143196156381643254689472746577648392089886588780879868401381649188841996436970072124367416124350017483690819881759192367525239055279400932017325541355432179519870419783805625146133100728723558606047274555219068326987185219794084554809055510599345612093459584359950132348419765958113910926515701958818499470372750922423023961485573154423668994211490048749846358203036678428370502976746403543756842751635598723948855737065893753391466863768585194246502256253917008635346236340459245800042020257157554703925847910015146387347649611272937254419882941219971185829941844050035776058630138212071908781540780410309729760127639026747748204532312028184580260621914835249486733685636442620273114583502154649284238821968669260297299759610701779331300660417969171149064602764523312875244047924501855955044328916351484377432570656713339075072032621545443548783456632446794012542172376233884021104405379638340327445198979246848160267911441016293436405617511078859740226288122222570007114811485935845313853628250099143129805907677570510142251762348443478060962835365186582798318194554826286702539392592920766831347558136954423656979250251638263608292487080367109839515734781387583945223441089310722773542663211728791754375176843277936327237343677663048578389351391329871324761036981113117947675308111241902686157288481831717776341815889294274594824740212350219261343380197191258399636776316975167509877294015341467748865131417553704533705907607231913470576869036596514995440084732158472264187235018794996063164533415525853476251157734210939525125402083495365410174600346845145769548846308635688842228473316146750195398632799955856315745574305682775889739296475964285832091401872789661086191277007714504650005178263852134569426379267378487732643990361536033595684612856259309335686039244441781512511382268505547475197289234807251047265880153947665396071977942534229613955057671040002122016941394259890769362359553644433161603629384176680100498692199153738829799865538225032826304812335505791409696340129284917363471033873921395590982880396432868040907764466819416170073424191178591604799073210822427797105184387335164400645487797182153098834177656649370042150662180320524791770822203643677676247524565909749287115418190207397534917226170985761329680398056042458291822521952917779255760032670782023772196475211102345305515552335545275477528536688537177516543199549126621383274357659050484227693551651264160666382055410815641647637550034528588016641876008618572439121583662511632340346407173250789561451015173638153169617488629344570570216810520277319434752769314476319644832561006726555401873039417190285597422987851408239722865569924346920271079284238198545574472178023216475095821176931802213927477075002393475388977795173000235586143497073430309601920626004566024997192491969670485754356977142245317505242610610299305637907459973682899388997253385640518655593488610063380104504972603791305310276114836171378271410464502040656089659071514401018931608636327019962984564460779585987000325565303503026260913460622202379304206721344178756803702876980544964388132955667421465004992091517992103339675518715312803751292546151830440137434865858909831049993459148509067348823388017309069034097608517558084798563350795931031368713305213829481422222040133002329554416108079993373149149645989235995255160971835328359413813636830244087352902682908513379931564181599848054639727694912383038082287121492552734619675448800936464795636924623624857314855894743330100623074585904250169277370165654894064610370823962732483893473490599018225114633629996609826519401228311876882965329399924833809018140267499682196292182454063697910050606382360566981431147238122187385245463081928451983361852091809412930713108968278773669401955110325736796679392014954639609886460785984013047696039320279809315464827414682332048568406663312765369116837735956720951267249567168467456953994273779676211130110607543463729718542942152417182723378626808700025845745037260808255023808579553290191614495098982910837597376832529678465912399503971381034071752481147415725001174003685724330253677987058255889382856196626044318247047820564662144408639009065991177033322001695524347109716725711397422789714402176653608771536155558387020701529884808858101624965241887301061213635060457108357991597395150887663861574632819005946666133875189615987775192421256045412347309164182473226206776041713282774256224826185170406056448826072628199917733570689452798775766602738297563892236841542356924393891000475600666574902587794847472865248118230921626862141702843894991395081702384349556607915205763156423460235048113064975945505642447978004404615297444962228020435170769776043656300902958453444556410744875316368967933665630231168251397628243233097542031579398630252881361463715682578251486823118345873260449108493269708664804029587013794357346811952275004817515715922101627920540200935331015954853933238299092963677304341795975142923598987654868536672614723205649184016084494545610536804372619598991485605535979150864830895969852976148262682550454944355227444339882431068343782008999842261743229321672595076825472400735139415744452801737150079654403761294780143041314428458627536802448830199822367700626893799589775365741878870693909325477754552502169293639215462729162670902213250410288112036656018586011298028170475742361846235887829636411641527759004655342811341828131103774284961296770132200953546268386317182075062641004690663487574538376479259822009134649611885529634658046677677951661114369031502923362794892155040373359260488183726930144632367296188156159924313998428206826112834520348311498392420780108269534891906322023847120994177672210479485175968485587331620627823722181177968671314872654386920533892153077620084744009068586607600255644574401209094708093702999303014304086175013727605297927367285744008180835525618932420940015966113884478916104469360283570231525733556478470830251814767229811286539537149385928823606002363504363610015605243508466605843043957510757865154150330238058619051799136572631714861488973771847790562893605661704485594601688312646863332977170843156769271261728483679463543014242639631719085463404917697215320747076422997668052421842298058211716744312171639305911027780910978373296325713556012578096709280484965785395913694106126410700360590966202485657205704711708252514400377343915368446998746407119473936256810383500774869148084056660912683655671663509047207414680006115402199857997394527603926053138530397729866753980464313680661008518688531091426198424584328955381728973145297273631842765676173988039361191952257693780189367606687467368148703930155749433811192813337408478488299762754695495036288231521799514679703975533398046056015970385161593824328500045528543615957293938811717819663771685535327654515777985143224182708244856153441124061093855057210966055953953609022961592608125975581690421966140327535260651988058702234938444443546000979552534220681937327879619681600718192155115773161961735389716831272050361744693723636156629290161837350492772426831659573908680339264376804523709609861445818048691711778408949331051864507308733117744966055624726812455878267090050156640201558387240215116316150568948678903495402878045527827402329526289409449741632349365270239737374706386729175125464911877228624142606073016969538325579685916370316944578747967718103774891119855165312677125531604419752005978512265912832312331034173322221912845930256188378115334070902415941097714268841131285656407198185084870828921320288414608441073353257640121205042954229638404417133572114125285085312880475991456908071536096791673901107815786433567714980501879857890857667246534563292539717581685468905226942958516467698583564398908641264694950911145072767615617361420529039350801410251235391242839710248224065831798909430983772092422566379155375163665338401311069963193951397317753245175240170002916886008455223843043238638027465036413462120022694814067042445817440101242013710233485776231140440471972908181627832750953336303309469475957911020537717727303780571281712839286291852777245590214715649195853241285441972392480307918702826540987023694150684043153484887717170234289851319824951263460882357203734022344632676414866849615525551352365139616066407309536849152545932691129824559539729430376306232383217210942782469734553192227263270075689892119042285956306446089227132560204106341465014845902922317009153952123060538564059980825570417507378574894385914141392160512063263814589302327157045343424570661812993385697229281453451476169501584947167453548554399483762017211126005217725393084601374962214421314298714530365680219182628850421993566535365792363493318347623895348540691397031825375022268278058392177279741673654466792994731627671404725126651651080579811710453251038421051341856212221305221025004881003824304419105035804105115553319514955233724417089228269865250252213235927402195509125906572975370820496943321942808865615659249451349336258518551147611664103396495952454827875228941170064382414047446728839451081041998864519540995793180388472026737530373923936676559013838156593927050591644590976433758750781764400576047074209377984035839605437016745154961444234619864563071519577179233700434834112208616479435235290390074938959331554742684090410926576708988666590064489207132391375393809815442311549132222993176018000806565017861922530482509588559283241699559545080337732248705918701384183616632511940607652292261987582246155125898791497143182346668606652173885426919637812372174526726718165799674532659227066833267206325955105743255453741498265939865646127789846540521729574565272421213489029219220089812727675152702122359853009647413448129627557215674365540802907467033153154577164735317111692433782109082419319882081596997315928760772697379149407726340683149707886536668521311667942970596878045938279413760323143646928029376996213925648731555990191619586050544061578450927300195894846368733865419681985920386753235429151786153600508195732173173582567186233278394509671010317127998112333108547120792922090035948846498574476391070439447453380257464698933031012225684326899006140318849330943539868835213852217189885772366935515573453456273763075799260908853427309294761732399743257563283485364317163880365897778417257743896697927650497743219643675587910556237579294958807313165224768273167805742602969236570934473668974942805674742630516695932418084847096941997619539795942313121123900252760577303924149254428582598194283075262992335037269936874460923927860951717839587742535950976369537154536061347644860081671572977604313076440052787777007283137891739387012293874538627273892995807753940486159323849759240750774940288039781791048442674250411006651553160227270713945581901378743695494372625740675125015464052244104730467967935772898586297911144240704917263311041481704825432168426712155563979761997953911267109515252594162856354622041914734372139925473995552482897442918241448451897354282710847345640151303189650651061146657411699494844148675479534186278505744716166766834707061174057854016635572699458753685645281996014168539806276316669506990325306477273428272646997659827855080092582524076752941908495839750416580625493892263416995661075002916879847524661320517039928577337907560760983352824325421616071837150391518510844939170532317497830453690044627544213639858005946871147530636378257718791492003079276362107982995940520748488437300855441701587589791444670086606833531578729379455591619201494592640540846137051513890621531211738428838385655579963667566222163957409125191952275958851577383126937159157705119019624786733858983203728680655446047171723060465163320742244230082877762770755561280004523669436256403570055051212794612666548262726179695505391358948235426565132936023320215259559039203605544039344830413720363605503547144523706927040598070817651573788161278115128503865640884290076811371924437632144833123935965000854204361669564716400084419062164981338137180541139227269518880268308469131525675250347043450508105102142888398263925258198557307096803302513192279416499993319856192692412341008406499798306276763121116730962393596108916166395306334462554439578439636653792754314419459631907513552954528620462412252086086636706118894079105019764579367254577970617909712442159780179391445041966433503592170997138026325928313031662056041986088379100103759725754414744210268539949837552904892277774877012990270826453113988027791897565639798275378387133590482148400330074327124203576534977429790426800437538480572558625511689268132769626058650314461611289410536647711792430013525356201928215976626001521346941608563182487670951592382011856755236274901436385955966475345261057618400453287562737947820323802502143199741661888454905923510221613030215667514130448563690379762552870152703726942524207785800991616288682465023663574556305683958883423913877767823487985080887865973085661475278811247006402747594074398602166251559112278732553930190995465961104171230897445138423688004644194754162508390738957685847593335235833829746793170115802048770799492166497622367152297914570260723539581113886857661795141676363021942253472038831178818554323081089561967353558060345548319945220568668577879768293706116290865933584171910648818409018978240598514532764184648996431744752380681081636264122531107141077827682567766129277271721524165143653854413868625159037654437825877072395872118216652508357782920385229403997865059667617869820290550187507440772520464462958902391632386764771151838973666136367597727008840458246246819251964379124466004795923853037955747953386279786967292447747538867863199138246279185176903443600978657660026619222044075641296215435453735689855018711735409964885576057590647771624144198063415910616392773435749066873869279508423017311100632063086320840485682211011763119291231317174205975415838076750247569489303883749930254794954194698450657139344935970035050905828383644203371518212330901892379763356867621224557420596301312244885937944969491761413263276843552251554604584240090809206929075640981407427895885235294893446955747901499614652666634127256442889059807481240547688411910718341405589180721121506313254384488747779103536783946356988353425069672060232575321406370822567119910336895694638196593803711877522510100663265115420390868084604704487014624372684192916680893949250285914366474182333467769966688663772793889170014451013222343138997772475830662386498168385967070309527894662133732879389147451930745386741602080090216598925165156738687676644037058636486577420772047549419922224378524015781877886557476981902357347347072401663136933429737654649029793468421993418274528088196423121612206009945784236828668006944809164154299322092921485050594942454739805120168334703252274169253857578828296210995492951044500913117039726319603739720153085642832496589272482448471594153207498691005674386644560120900377350161727995392596641114084040441795791736701493176186038133039686379668596669907212667053620529599734757922929146188721190883297485929614188718338866777512729501947613352872426307720878798641470922075316197250021830763699544299609653828691917631034264645947775292213188451868184195424386111832344773416858326006765611408908639632046234769718189168315338392657376410782050583538761493573693973624487812566648685557762863550494950550275382869806958447841322585761555698259883710572822857969930886955080762085441431128164969011099021679546514816033013146266423636509608373071446116392301865887916280354667111957334635250724664255187027962277668254116394897662677330155730003397339189739419788772521342654092742692939532669742263566499072335318470366401308488139981710321467946829683704339724080614619535079317010571138006748619581518107118891631226928920214533038590439747073027006363873470264868572306421492271069481598777217668975427879972375981567067262954057020405989311009764009250248060652646732458642559341279637157556998246764359485052572737521317326026008896136347171642301964189771348784313651418700327605046778800896249664852494195739015941719353391067375292082537887133788588370573493785826553724217745976436360122303905696918428589331597338505411976790206519536068926745624786960479733729976272328621869482224401058396469491870387629581991783138954086766238517876571850418295505687230418062606260054877429107166929465108956451135203046198465728831587157244671137997964873583620289163282975389639445286953221761675569460579086646005527673493145901086719140321589540463393533167546137663339874705074278378138569407533885966501859541784295159870765832493912821376799196020487767235170494866051437213271735278943352834487233643731088720242932375636491976507855685821779120022119684803067277299439212344848719918315507370376927676150620891801469947241809286413665014245936867927684346285989552566403967667452793101052487919092670574877671479489863454719225775186585465691184177980911175348963293660498306217853261783969505307869149301431411272877209020519824968421718843961176308787580045494249426663511873654651331903215581790087019442407456418730502798280663952983502302251676145359221994472245446685423824769033802845991218065886056612770507064018203265111078850668796093961934151364204485959814000860978671375597326481103148538075541357916770868624646417921986252459876521603225750619604875182397457339232552886149918569183903616774772812248182486048933341890045263691680587593311032639631256311808523616094151765804113003371169986784414367750363679532495016999041686928197675670189340317201720884551515506668194184320003590904164429942489712929625480262755135606582876859455137211984131858985035271997163190335051821573861104637282150734047025446554889184550247258372402148783759274048154967417520243782150243883549332732478982093736024478487828004860212620454827758115376185267035393473628428781948646821731312148665473197232783484168944995267673218887809004446619123768310281140186442210569617826875916411560105258010781635381037886439457196386988635797325705088304142992969268329380960865816276584285071992443885277580561273434849538006753309755099858748743648663665280823055329125494242135892335539031484274840225743952836211520014746830675019992614275077621579057780190994163458142408093587081976975435748923389888615731407396833665781867665813680686679045050115960120182752457505852879614188385973305641797744379115654992624564514690893781293416011394815959646170830913407870536914764636837369724961749663767284266420389824458187618435083507459125984106481381898618030083595799129003628968872085854915578723501536177978944676003278245153046545250394070495624897013776243774601114328455728346672551130635855609526169571783569335122402147407867602406225365828995701554308804832038104406742019891950253822177843328539782084515860298386953509956929904391383563407062776775422543799045498733718283857752380084189144294269371871580714753124921758415728103599685214687050917666406384230682658618042921845324284729023216822750600568897043666277067348848605229948543030534362015663357900839964448707772568134850005589097463029602156527217718749163347400547281775901369759938852671226592470786701166196659407437767153926395918885696724485551806696493994697235025959786380901621124196980921435148015109763214632952387191647811979948628807023226396997633978219688662595849366810750996500173593887742607381505113303104997221804819916972549944993429899757534554958827637853351777750392895709083847147450640771850767774224476445074041355558109640458432921464723696503412537249162071907353648526223218904122348654194494961301485742152154504323069942369815298940011649362106530826278440896339127339122693377647561314625103698173193143943715068170928489240846425219164368811785505127491386423050933675675406584238654207031646169384623513255668692148654970288373096951737626133624905923224567592319418781252646170541862108642154119407340547652701829658144055530821737928282897450600700675886350744868268618136991874823953457393805019260797923128037957267593670709768635245303548745938613121548084976248212190151275971694311005480872728066983790845011897697920666153273480071390218437255407640188866654976717973355218245555467105021106935591738341908605433417943003954224546423924550032414656728957472550956858653433847306428173210326139009251383177088612998230101810229827829812208877929195808069917864754260226144252699958448263782241608425290659951560316100703416054976250870156258192485907776703085477278680491887530396989149360250462044336428256622726249124820601589473810676694810838472309413531360224564455789939794702025123320567811500426497154781598748339067223542274890456429451228212114747685476528890664131196789783117674274004070203186888009804059002311788661809068072187021894154697743121286782868180905095517931829377920328224954632032448522801779482440363324101273007002261972263770416922049652733015686254702376730596535352179309864507815535806217880422282000108784759186719463555948659970477645759556676308142542894754263223033586003932888049894060779703210080590549479481534223179534184039260084115377688313655960009748840239279127859761662364963252644370446792276750281766006405199131630051464953297118078363606947658908842008502456089957755361236878645840875954706383825441346849616194734098611366477352254701242420670267823695011037533058074590835736374794909336860903175159176543578086435082593827652288651943719709570900666219996610546212626387108901209557101420277448177731737384931219649688155315696294063804050090901649874497432035682712178130126174322817900391206555568457336225152421397786809590326176810773023077602371203253940675337552259274012414414980726005004032493877117939798392837210428509399928954889902528931653890957582616668504411094651772702639881979564524114761397547401481267966212318508558910138752221494899762931218634331254103697647423999887226136678188312223056004380413956544824278568736072782790668665571607936321212275049977222890114565200341514067185196396186220352238509912197082905937552098743598781465214366929053558361303442931710836231134218313461750293872519695532400869252904113556018794092031206997836436052370538367303258786386945343905126690838768112448771060101713467631493979408340009944041947306775141078377497164120346125485748081846948405098065177638891779893184886507379206823330259842504333484512034708407952134401408002231087180018202596414939273060054996379016299099920110040225181689919212069795779199471783153780970470716658866900634414871371880058135246722410330477740281451324513198257462449186671221308710000226268723715984333073358774578808364626318211049771254159040276414494298508225842248798071664341091365660246969819406119807318971703534910453477992110166107311204506640816499334568495543830968303616683913894872889906745419211666131609527613748427824667931708417141133960589459000377430261770599544790323434381002958595339247549070629194148879233911988526996335047695851664435820201461347024804374081207497785333695120020336198515494843490962454673894215005141374439682941339376756627737725884013180090773170331624114918893361549906392973526417486142426349506348751000464265728934904323282516309585764474557329152521097083765792827868568537513379708984596899009154488842214434029233333402848472775240225993147419678276998184267936974349636066646890216878605186341373222155319759886503643856249784715852002289957305249679895892857729700023232742185714152463059877575062126422811192518244030002783949605226401388755129756657326933051139734974187104324656562897205778775036442077966390024177456561182326380535205391572637799898216122872277842226615264561114806014186112977616596981137699049639723173787839216982825777771539548848846384275257793032875832998748796904024617552773688870696494462300029944724537795305989262676586392315200553299032632399579058949555279110823132443568880262131730512041594176544482271816305905034765941607133118273934576179779296076382687286763692594042297872278315441292912175292865792517740174824076756007889362908087022593107052367922620789185168524836943724802082115604602724096081803838325717599786571081680789107611606029372189242653592144837240486877132830985067453438732056009701723697287646588179722849935285163915132521893431822952737084865244981501561568025180494834300281392390921449373306803842084519416736667670166487820926492868132757056266489133910057936813985619590826592668684089623913412277881119377566741033805790921591598789044821047685507770038228867015817581139147600736842665435521823132769899476150934726779388185648964718235767520399842070871948950641668824923794468848471520439572588840940381326839588080751469158638510791104817159213085362218763175378133165542035116448005012887565164924695837849188834130459226468772882882435760133045383959854425296210692285263952879876099000285440793239129831364530505027939149881959287617512382623749547074087855101970187949488160489908640654380788805318725338159245727689818429703840549523402274821176629202057688032892890084480238321125035458456774870739195885896886149336540674616774966619734067226810698630968140004313044916409527048752372212587413689748568205772575753853092480522461082138394168437642698748659880457053407593465344160847976402633090960136032943284159954352927251948325880705215863122357449329511370987593419611525687144637924302451319803722919557106489618573210329957563912461539147122307385566320704608909880776575571281350820237856346157038364900573812824043648843891737147631258017017831713553471868061629824776037901601386470500109674978569968091289640262989722259469525640468207819616776758412266373331201384536501613428864582338216104900635073054648980663426732347687359475286933082773011619003080195156385045753442158686861389880681792114940794790020562687058464528471978545287804908251406291372407693631467750254824923978708107173262346761692974554677286115932730148216117438145683535971284346050632380983623075009048668599450772471335630347749303697929222759819686132420809971664726306695786091935141497711794366322835683831684911913912968457276213064682988639672709912771456323235689786325531467609012736723983486874706338572971055245539982879257047068033361245240761066142351182244550505772822341142036307249609163569473476660004335733473635335009593105496495168321082651826519722844023043668855396399499330518159298452031203575420724933537487777524669495635411949899089749265428788210905379233641337714048092439299683919618224892967099890458342420950409530924150890422323783856329985366282807471808270509558032275683890588438154073240198598244849520318014002909247156480378592779681643681431175441461768999460593555548840399314679473385534839015591857138608196984110042647796462064559513993771252162647283645617855606500454228119679454597427242288794224655963942813432704788297562196242100370515091012396417670788847357094705338309899056677205081144235495034885605047984026567754292190295656898446263857799463308998089433846719786998382905523720439927048724964807328297970013981741698436790386014446713077282187751088350770844854387830982967078189011686197727667850966678872063487365848940470520779852069711166351334195300450977223294612391020750914048570062288249107627126518919407958783861966827639956668245166139555256923509570398448508150550789287605250560519056155747766095106290590290380208885078708486608097041722711271838746862668487850078046733262699234518474309504582236615229628494626841838135980509985221868026515610075582157553686444825327476109802141956716420285540653442120832934706646160036487007751065440745673697965582607143983436983586905312150705081454594276924562360676600023041908143796700725582609639074373352184713517282821202439768260043806105392222679579258984685111201226444895319466034128246304618025441757107563332675364140790465688395669777054289314945230721899502439986580623039456549591699657672008424914486667095679623792329929268138999789523032749024672729733932376524388883461839233780889751934118483187370991641850228896706413472326457547234367837622076629362335425464634347013799471484138549524826384222525035296579368882646686754108977988875580937905973572649281897605988518886705376241684087393238517512124876446892200386042343853168576476672875304092994908447173031326960841141288105075998490049897766529449444264191456261574530032364494234945401625743423036255108561861482429509646905878818359086088139821472333909184160378989958818570825500620174906851612060285942051889397876223222313607643585748216445994951218590398446335545758827075840777721536494187602194365434263234758043114992368261074319763861881691936862339346383641695208577534716761551462605562735989747196948610858218307684815625635685022012644031271108900581643853446636012589577375073024097478259715309009760930277496838451337073605313479006207719329881694650111719307516949751036410671795295850618111062579437020065268448832763688887582315921537463024306752517033655348572692718431155648899755635689563970313319858861960662191299230496930258768511254281185727043890045938403929135378831926238141817311053788554848766694884124910375192454048010337896510230515656803852145377872046269463171441066506787486589480544164068394470901772043904917528906214363957552426317103647575864682301784484447533783768567763224737261719636836009929635486608009584506850366437412516037471391236824703675652257441143320519624497694694780675497315511540903321888249669297756791452623715598818126073031827010087222303363016168843144930314430171592537935747060429032580512855328908636323493731573262625832842981736626857953948853057948778966745118176653836664698900778423634076790353567149628622088891650250602000756093638783823967739358106882184780439531041134124471573376483534408059887910303607531370625417234427330448001140323027029372650704584158292291227727311281285115726151908255765253560603634610577707466381128529406543943581883764514229046011114816891416191358675009882053750694303670280178273434676434840279099105887152437897924081756648494420339743453488619444899123095388540047408545336693653575227747676429572430811559987537405136048789407029644514108865121232482913214805784840611867427651097196543899494376509059075109059304097244307166517317081973587865104636513391647823473604757029384019529160201266131082426893228226350426723526948304907749888463253727764575787096789982152035571892792125195091512875366868424289406699999590362792243515274989201038692914005494225509447880140086406345683489263759567380004942581343835260223472136668625331782063281262635056373101517090033947527828805242460089376569145924725424295723331866521602156823872702950452543213499726237507989827081121449394676065412675852906503603756566018454967528465697390928417470616187116061412562944262984130408261615327286043530049248968924272994240304572267656184045419347952955311664229911118204843358443032972202152165899130694593261465556138984993787056074879515305117883856423528203155135864092750292092346993486666601567254679380124749585504077976450952424045444995371034837338854042735854955755254000763035707035125029941121274724063893584503754965758985568704735174191390280756876391711757157966234251054787056346718793492245700024713101835041172793990211086933771066315146372166938117657651627363855384011997172830712382469162055943748650605352389539134688537847109452652216716690834772048718005111808451531491949981482831770466966487808945722022401619627885063872551723770391434619388618658784311769144850655191725083435046308941071558835227373570117290486571551854918118977105423779469891258390958916153411019528550643616977423417986192784805373784704067935233120854503635600872576244798690904162740653204821709035945381885204359479216208702456055537399907367966086710767920524064815639390080898309092053981411716180348978972013913720497759172348718498328640527961173068985280410555748323993259639752197017511493757018857907584229975750097863863598199893304928335992566120164621882174036216006299578039611252634077275264186369914200722698697497476981851483781792528682210171729364869545957564885346147560780079478903586799682295289637949052964176382530547872655688510448767566868059349622443892390437992892280855756032018589865642841915028974623471685077880694033518282229256275223273213397121220609366169206043623968571197065508457484039261028091156706915849272112854787164399723513699131137954421704689495184666009862150446243788206051190094833047005061766670256284348758070967898194705484826793236687676268449379575367236226340985518465090455345544107995804349630284200659193438453776829925830187660748898392022748618700906567490605823431865956389676383244682003139864693001834268060264491209852165749568734196519544689115013659889090450076969836466624845200798097090961736763973120441223112313088399531718674600518753194579360829197340973423912008085669971110439668064173480499636945083987839390301463467550657606874825096997696521628821058522072814728000023973190094444519802869410227366259802122410374246446139386380119725498666197285395315353588069237006313160551967330775691134540722704102144123850684453806517093210207864732264783713081978570672074519514911048126498987607362743154902341849513594124824898150791014673487733631477782439235514037972334698551014657633462025892863833407251235991896335596855090369685369296344457610583459037283604138631126677873761897723789551478854361064772485212196964218118238115666389199229709391568928951768318041880601244529449243537964443206717029310597584375322288624837128825303824443259775706601758430898888555366926754023423388876543667157177527555186271525422125800675936684017972443979058683155490517974168289463231639028611437175296070629303383774422032590813563651074376284802658969110593333111013944060810833735519009148353435543162335417052920209508320636602473289411176785846301560640560857771440586248089021911317587035839488447977643498441830741631769724993323658355082824848088185421904043252855349875374527180047250857887959103673537075741158134327430713588205582102766180083132301593379577724208130203012119325999250119532220559990505395076133017473658160868870909603594656918557219020605925485760311902877414843812642254241628516765710297449080584235398861602853359633592844172835571578582035474010349287970930783762685466223010341390112988811674039599225055441507518751148542982797625997022936981312497270815168551953275068037141788878121956428336365301956595064664832373555174040927132508673312992293319284351264088162764577467904849267200950420536404160350669275421029610940639269402500821371671109883149931685383590144301181623513732362741293927905348694289048629540031915449341716296418526319214998152396462528023871210624124482897142914966435168718511459566709784485760450218126626556409161898663905498416430518183897015472303670175195551181911758190614566925451298580776317167978348881437249344386365796097610334209930550675196602212137662970451567916957011236418867496499128891042464933055491919558246777137455650746801442514725373196167108073159752135519947943395895376450643743490964822722135021263503793107685573064974890248669585640308683668678118417544562578032857477352111210414479035815198473111970068616951242143801772693734990167529036595193143978077182881127109782234438016933147664261679793319885387171820159762727112573321841010437235385183195756551179136718546147610989947931534938513011849147109304044336042544361058950897430746191202461731530149815578999736114723359259097565940258503182672605544679410249953103305164166916129505838306632777973454987086216872458140376299498415210728711845541229194976741476519867216205888895514350438498119632364958559278517599011829018610778039787360091313226552817111394925412573881213124133687534321451186093531649518102335198874742866937607416570479165091086205349373098624267834042813506568882863091236572299935581631697643759960680535864797464706900847850197760904306502549857232376567936584131121276792905675953460583068179771813608183707860874879514258160225041948802788585370365624702684140100987881932474091482366512096770631963382402410334300410294806411541455855640748609322647261785703337941151885000382357441430391560923546168805637166995967083930451260280899440750485664787613730521315174516087936185001053297199471466528339818177092662048138883725672134364244353046431757509312407608788032176637744423751991738305004426200793779593990987819314672520488123426294683892973943136302430196273519463323316917456742154627022551132983760851009317914300843525859898689320103412974462692650838623677381945594819255384476416307389179696509446429168154972036005005258814791392914292905647628617461416712567528610781259279169678417587345779949028332850654490321760370902460921781171301419964432171844179779370942399307143508698915496538224300356648205541163845003338132432168474493786950646197613456466110725733609197857916444267388941316706419614197003539462997220227311131411545877170842752328965712697646321696618816353640511813851703208791321689121238252615463599083977777195399795869245192340899689909086901515122830545480148719204285446804099118693622610534844415566775759159603177191051882620414783885580139507771506279734738622452838155107872006522005378809836342019437039073907299701646900002899285703258311502626784851183333984628380344814089505210208727505765745503233063441937824301257718014661935923336386834638778106239512286520878633675200130259941323333493103842772236269441703282722006137778954968376456710879905493614806778507607937683004600628412116060250949755678374034086760210002579275712164298429543538934455843331403100903540080544272545479781183359336723421864338251951836971711903094937169846720284137778636001385422262557072917261505676109606774782433237286821637969623576443342872844996533752423007481891897608285850127711377391874771722901821487084110006010363355700383113625975355100050605636036859059478133803368861427190510791869965924900947765208635975987167554824565458463685367692721909059393981514799655258493209396218057089214353113828749701580647614471133490240174896092021727777546844165192392467992903172588141886371645013247715969343529466616826452944832158220141484758308402317531483097538389571342179647845843620128417874451564803399058853961581773852359570589207938965071631849914830046479355160378175175313955674099741485378814945769724418410278282648983481707449101467620939252534694780160542544742072833725778712298145038475484047044444446795315372753481458011516292029617087487836944549658856713035269594770590353320977369054867224913185650782305014083808272101601718991809596663552987529555573619501074555915329689345659395496226348068732117140521750867801916719877628910412731351874579480512631328531751016231997853513545144221040791610877768117838258602742476777495099397782790319688261493285845913101137916892080952549495585324673213592272520761005528746760549759572727064592762328089588829989460664430026865414614741442968363626852828423225726074268415803845030338809996900587283625367339744898045090387569407933296367565099195272124397236829737866573381441550852042862945978166293021842834989917570866988372620465305079097544760833650695719174711700667959912580637544546492922424031060467525461299022990752464004415073589035155740742794666715807007884564944977059178315724340260641698475222545389517517797758449470850305675871131517320675836163439543695139043849318396987282008401914317486326761481003173727531322815247584168533382041611259602224390877829067587532450178164654125898537594259520896395449367326019450886058873505079529325434735504652663789552444017447118655954657619220161452172746440122074797236819962988143188172732925396750898750446873421367541481837354472470874340295393126097286393963522319784296564002670892046190522591997045256706878380022754521546872624475753714630865792860513508650342963093704087346968545138519416602339501744661976644263000900693473137583152346609800858623484123755492229000083470213616507268275307868584169486177325705494427843488177971348357672968473344732331057319002272670930086389308354098259905941886282634572476915127949057637974662768657649394499196906263106250905259894461640938093955563220692725997931908871898661014172937415221265765949832238319615925504104902106337274530797287006927325282949684787901538200557868852925892056498283024563272981299237286575531569022495231672830709992106792604802542363338635436180896937464796228140732070039019774545720240929501727725276417306427066477039951368405684714049493821637031897461458511361955105185386311846332877411577339488144819959340986268726119091928524726383644452917647253041434741660306121695154743621498106606858072902736138852054770855189837284344273038777824608688442107244415469932865735595323099665062184088028553028879214970057181822294297902254917058767392113175201828419004350965548847545527557119489474495290447219031078511184858620807378831426545682179245655757016157381886056469027556655397564875127130058164066899597037463100697700013648433575338575576244778670781423115177170329782740888172472829311957846644527629139934107800112186445708572854871972172618437669172135828273486565929912196856480602502521660672920854171947260328080287740193112038259879285715938661827357719529019648191415534881080321446266116437153579390852280396751156132409981186501657154252814770809674697796805227186171857006121123423040231301216460837158683898652055928926247492603493934286083818898073399519164758482460928087603483826097033062244009849223436075304237365972924937154651707777070936715105856523524207178640583640277358389265914099447397337247332619294621030386737327869894534600940604826009824261153975996251459567905970177147636589675992715301075997459780442041489086656645553793483380184504001955247450641468957017955783913339085372905723870796844461583263693255534579720851152237585911537191748251310674568606007377518362430912003343461099876795352882964064718638717128145893874143837448797160337249806194241457182014198683983698103251779153184520919547503357437665588301453964024166211153783869054415844672927217994983828221433951766281442668531188509496288179558253479106638568083560556873095762296902983715054449958329944831307862039131893846290994808954825801331354478155567497639063961787215468907208391721145575231416648369701040766181880366599590859666806859003534017664978866692190186706725285047279379790072226174110408638179027572068474278375130757349421355919752459836063351727356092997051634005275925471056582969522403068835977795005444849258231456696470398405788927652527587109175262259981984294261846206830014641553468938905854600248672327474777931934231981325989522937762344718676558014993353433030664043624886235370923810915023749905063555087879749526983649663956181894101419438635840600375748274161021679607057609891962206476720662556105409740993702947144564124363015863378590558712073212717550228055507992910173039491309526358090874219197198957002991054092820551546867282837275343476610091864110187288398175728386922300512594656167019113499700525398563916236066692223075687660657700003616049585217544980554381925804127927611473949701138064177584258688230664803970311051206966171202384185663444663044267975414731243922612917717551044715866626404381989746510828311686707657315067118540470173653964760879676486043874351777771346392821368230605939639836271462026595025945573668549101153627725326999077255288793560193700197463554836359926937265945980396164731534591236928638520485657708457318234444656621730156756069151488517292608277756207190100719878736421331362012865970349090636555363606827595666934026038315334365661422525319179759833179117596131493302589190459945735563452595374850244190714428207246172212908364566311667282141582493914496182647758906151314835809517194405547523705707412414931137971611856485742818552305577616979271765465510875126589939135757421967385984936179666961377599704707528672903560311823514135402120306691915136876973504841938737141052645774039755022984453019488086708155702880662692533599324871176739060215070787868476095010243555362497711949536120236650533317737278108779041742968754825164587139020858627530962382766379823513087159346316614315877663283913568275107599693553252028085672234543687580617277445209350355848157272387670369110754664997304046130453491266326729461209043803849030530368661291566371551569776282839543593385167516705728315314602279498326409281842834128853602526370288899203254269213761583020424840718889613567534413606940514842250198034908001528759442605773137205167875625132836721891379836623791963253092435634674261289852792859463050955244070498642144436312998949640794690004460678122170185354549631685133401351699996053282540559227888039117936590201870284353286215105958328719316944081903942429670787584401907161635736366022188314801623722938176827430626612427423784564198608873574964737148969291481110728153478190916567469324243488948305912666273167884698597979956126293882892184291277169820616055103931618676334428991806159653008380150677111444366625961547900253537403299678427732464622893582463350745995323364761875080086753266555624174637245649189751894858852656901602259236055082579325894184695921336330101685445748057316792220158550072586021973735462070350139433012258941908802092749606488098465798189045434857305330858228354467248147277666193729090216710593373279059215372580433391797437589760007534364776229083718050152599757456769968071301534774656758708253719988825908658258226339384431692831973728280638372063653656884443197150089823569863027024197912136308515211860996821495183206195989096131512216954635019286884764208818438433008371429330432495847412712195416936342944999490363426526473815812039717455592670191987609948143955793243574907325415665248845800752657397113153085993954576161432825358820350436639368230067500505391147688298987302707895610957252381957898549877840717069217373706750093433937478937945317174570300991047909451709059550953087223934230302459664774373157266228432299004509281151068825414417210022462235143624807338683306514122600564686408376225117402155505721450750701106816284157789537032181174613778269822393319910311773604193067465570982381306905121764949798718116510398891147094538453185266201095816389463063730382566770563559023445308953413058650670743829055018812846871559685094323485025556768011083398253628301730801820959375032843416484654322250201490292644780482521378101870295388958124121195390994645797331398435228203832948935856496985793109030744267555731475394756241153783015565338178678867272456428655001068393979235995499445600309558900002196402339152768507424874919001152938455209225706276705103181092270487528856014534952436238354995632336880903768176240481874589501974749433211015176505836001736594727955754622997293964912525479601324277318548248689148051454967115667161948591980872530790803543702856858152490335886873716756636149947317738442796240436724403580022881741504972524038902079983230441958102211944039934876961291749959443437775534330099015623086053321151259124329918743085524279428959469247561723584511706919437198020117988313230577775914217474204410698534340974495734747730760187502690061878719841506449182713117794073501341202403170228031030338292070352723696644719283134514871240878821814254788720613279435678678670713646360796295683829830101690739604515126952393930871883616458326270258981939408818708391381481711198568757779380153696196361327214890953237422959084130422138465161534782187447108487460980878294140965235493427793107327825481993423789128680583892175686383961082219568784650466392390771817881025843727745838304054320923343370430041102375863451399684695583685893215169472227442963386730238202872544820205771091588759443743671324348211819639097598584012897807738160445654530008482953698632229182197961439069363667695330342103373994577838232507675477302611016732774582873239000170685053553767915229010106095292950466078790702221423885518621749159064673512120873814173032769143151468784064979841332223299442454403131031575303830839420844877195109804518315105743673605031961871094784116484717879337808092610396296773551756639387020250319120942041949710867222346922671493822430385645367881623724040719227961151604790161715313173797656861542044655516636574444786105640645674430275830748926946296117145062159872324152341376885284996555653287997265482762313523805508451739974653816591116069998084172178224785046559152666033250965568035377823307737784349304629309179828610609334848992598356520927700818492623140089304763603371764028752210734214787701759075698282273518665350218948950472973898987473620596035572689625426355282668572557842677160672887548884036814437672236586450599877455839402903881398477470891002282474174323241069664702638756350506695219706926500075777483488662689253322568984641011140463668398646554165430917741247911802281458209014022013050505600950515572577293780669331735481050345548298633702490659361405429826108250051965587926092663501477390873296520642497947558234637860303809305452595822899414029860137915152288167645596101348540811953058959934272926160920373656642824990868784701473141705283177412964946724384005684498561623680292813385102176051914733827229078402819802445620183041400251476260270587546919316303898854935334379062057041603850827864860794542596448627396971508115505285947585411306961624557181974839989803263210182881736957797515561383214393552929763069149116038397991393780918117016158970575470145486499620248411734368860416715766496663385242861724688627242121273516261153169898052646312658399783692728819715820082930403609262148054075979422909193438617238151667434868414944977486091440346619133966506415551748747570137372722856929686905505455341863640887106989545672927974256282372873400321468662048848911531424283891758527489469645711872545630486984957355509983028462769665587169217177131847394128264424215768038805674496244871515848060320086547776258641432889494075276285929561419754449133282446414774652768974941030238614915138802457073521747316510414433026432964302401425525881669763968560462137079036450559149732549045302873592925893499701030828300543317188299572559486963082362803066377364139003495829565872475837434166018479945302016984998694287021518310878921034970998217903497466118633267212964320425612199421787889048677615122273386569126210209176075519753180520073786132583787711152302943025819109117863458182959802291198946087632651609586308860681752923381968052756169282399426303988573204088294339029326893634350101729169571367269462693952193557819420102301336793982962353571950560243895149271036384786274793849675279715637558307595517006007183649487818980549610102704433809341078667603580111219099518134545692114609270734136053991415010997836346452646454954796661242616480150446295893944658808971057770635582588993110517927613188925262437920311167238883555441884793453089926832612036306282873739541624738775481107864072375733744337249991560267770573440092394275902777014882810206942499348647834299388484916697118928161995014588792912435400009986524494134641202065361802974867808588612369955929556554175849622676404331237491271836067413129223207374065323344761097519273309912714436134027979967620117708519524075256992967127314503321680658019336664992651620831533682267208382644744587716892980188825564164038733877500794023558630041383339716093206814062772774781734734664964204738376462541255409777135160505215685531237709737042903750547323274427981711470410667580961242787546509887373251361728616053425483947394627479190452498148160697917193813948323766214151383596430390784592630648417457258540781479755122836995972397915760449713420062037627871094652555254905166824845265173880225525338258044423472881761603881538288546423540104385584957100295326703122515850784295796699059161400495169806705719098074379905403527045292266600456410299080407022746141314357310296245684856168694519446942411563197385615378913940462912534913577593762421174936832846289420385547111841927073527153775980638000051384966011526482693004050289992197364294576283188922542922167735777760687011021490036456367119428588315210902790904845270526951764602569069194664363851064154089464032724454675113751683911844635856064404575460850230370388759609474634204115970328147687829667086787346533545064003857386263912882542067146998732013325244027986430883826787690462645709324792382108344894077694365997935222446177865469501902480543462911236480960146034490747148287802755595157476514437537642493456645971581843097872173346068923271395597184122136150939097712713846653142826606218484720015529772320821408174194343640424496326076848035307390981118465213009655930754533898097304388771182657513423105201477912628935362542279415927529294516756149175231854170810885919455798278679986928345594940725145208521492361027718107006270009001765101917505388819826213751760985003749996115469062315555121701806723591685855333733858351363721962537106581373658593263894343631448574551773370723907620625091516846085835760878395641666300101078135129047939659553857330806412492343104472389840050910280089054266841887037938102353954657329082625916213060718016843290618566824065512140183581517544701071745021887290416735143601629925909910169651998249202371551077454247976093265773572555642985570022715177510864390697651630770997076340850493416717763464874365358168817721860848828041288457577763530208999091814993186088996183068724554357232836801691410150035096194196585449282783450856162442536621204223276833041017237856073971738896232365687134504492631003406945023932309174711104260438213772710683672655245214258782120535747748400196661931180494644825401603438693920661551439537942562011665864432746500900831965457211995689772881910934900740297345545609474653841254772889059827635338642227283725500837963056901354265066115708125491819252235619024868530363874374189978255942629196420790584955725231151393233950260928425158931219813443208260328133998733765824042594044642207444787205748934684452724598094331026485518797727463228366516662171338001604123080490155484359737047729596521036533456856508172398743087005404083257248137777065897088300252412110277874346588852560623112819597497542407705242659020993811493115928692710189512809026875672599263191457521550111461659020102643426964114050841008468835106484113672306654682677854865756465817340468514882960875162634807036163673540175271598599795687497411259744997721210760766706067422007149308553274130139425945478456529707371303355674087543085523813068664469276614341140355172652502828773325992064313689098978281382173240563953644851084590628008186216142460363124321339284558406281998350320859892859350410099185518695915323301177106284872177330513005996495388616459354621720955576971888766831548874045941708148401340402270671169431241054758602788367510281151260920760961097497404390866310983693577088409250989172483418842686535676033558052588261868545011631280821744071291738253231787642759599879763160107894693268433843009165755573496573391561990184724286770677727438635148978553123879273647844311930246285058469234120644505443695427654384650622845904419937074086687906868583521953011031017550943813552191308892961740378505620928643580959774395458103890635004123388873946893285433208051145512602428112694347573573796206083115904859504094113926840489249677957952981234507223960993125344244699393441700708403568853763717543517137429877046354345980531337902187088696456335651881818890332561307730754020938669859470900204459665732739912681213622585162661797649551841002516132872889270723330503446657559581788902353841694660851581346788612003301407009201877141561184232417163933891045278957445293865011102563736646131051712472265167359775930705289503479529130535941720946369605404652036784025312571152726753973736684800369540424391991470099860896299645652385440908530911786670291655067112957558426663222313304679191975920533342165790443067627720763614180037267973690548338327722926125067071743834921774871440595090446439374074376255649180189375055050069348077973940310890086887662911294004241629920428489795517890235211894785039136712800725810126880649589581735738647957544664871663270140649786187935909551590058941331814230193389529518145614902374359704011691449966638271845253993118726023889570773776804334891380668589305696246939285703432385782990223144491738426644391049906989061661730767871099551674336796363796466030074499386239743458367086183242712023589659963761783764936541125600764111984616481678839405231040100557900650595799434097199902213335578849499058684137167313513114056106443681436780265571219914585207455687479406529489468849938704756627139581764884731784720138414656839322528405505758841344709426908156349511170070174264379951815011834281990295465771208644300357781879667804048096229069349660247431842637338489103518252961531588782816635817084473547914015880266154261918000909363751362994537786843411114941710086527870449550640954324651886483104896010494704523009831032616475176193786774921068258898334637131663051583223284377845661042036992171551963181644817783437732342927420974100000489048563670914492769800758387788964074317934306423591868906249409255761768024427431781322849612138145018325642859861692134373131915569881719359564832945281350918003974964397721956799509968371777679013010436874950947620620496889467258172325635246288787267083394476790673746325356635578382314662139472032833219266556891081547286495575258075612037989357781704426613979443365222024267827022503280638472312974432667344098026510340995764548593670774525220501044319823304005182610082382012513623258890705967468039885499693667250766751169847835819551778719939067622724630772084644805907585285368522828567786377946433748319440131849221855960755027494480884129347147003869563627138473529453215826983723995770314427465821874264273290005669141529526587804589422597312950591104382681508804691192963708664441438468658688542279242017703372230084977291335511708698557391272310824111073839064670027677125150220593656570422473002067426803765451938070794290481078050818760774228974066843069165776017704869560741271159404447668650599694615983872798918445105141082951196819241286239091617379471172174070148788569522842771965993067204740996662884339547831658822504422338063033928519066687529385268806771194339675570670415130713716646235802533276907497708432228125018718780593166454928093940433459048783056566967488735643887336979619983408291550310979362615621569096587823705799240349416636000365773803895633371475135915374452466951116425250386354836620576105204150039599580696303563761601117906633611547737237502285214630142135386962456534420830331223458049670413192322564927153789850614051936431614944953658534880977320919044036963313962630716988644080979189100047926643881005274280685882401026316225688307625142730326969618640468737608663162487203943757861830018395575595996885542936919227938323988976830850027155060054003886539188824451957850988925597434798493313658512080435244620498915490134176676013207946063278036399048052021396511654255402224471220406588541605686948827860440198813848416577716304341974829155976630673894933868208457345053095109264448217975041656587642407526594009898146249980032669794714095629341302079558462853920493802586828687457918968699657590822720893767260319709023674802440032720174952906306364828223795335525823404676471366060806308535467470940772421745176104582328068395679973949622102680091721446864445466444690277325523033535818800592609199198566660542257561634413791309552052775371660763206064661378367180693830303789585206698498433642096154103227521783907395956838859387478296771291796810143570853194738753258013707029756435300809451410390069633347320862278322436030125403789646489488901806863400596454158002420072241966685702382990798387183616193469252571139546319966446581840154222176517807428461735589652992333398722351424131546746993099723610340275640132653195526871107749940786036942345085318253122900409869762542604155761043311094967771259014801756204556689936999700025658355423489565474874884789183817140668521615966046167601951779036367430294111677792191085729138324659337997805419344749899394491889558939144694421838915632251840634939643812700837227205509714481421115419312208745259927224657005096323863392561724330672160134960750363867873727581994867097829270597094330671459531816339043602918402700973594983031969649414001447464186714693807964382246407882988533795232359827714521970385163893901336722358139924575400643600310162760396769784733877030713652044642032651774475065691008438723606239484452142812778361042752242949801461331392488793598389476515542106087620000713180920306473677877975131718385884095216925100290383842497427876979603605410108444962372494166939409334671961407144984656239006831718404689275344433940488868208952221596670066972886532448699269715083161679613268637682083496748418804140472048497763776235217297778777687388284783558430075278212190631287359288614859681085333889148464093493457801894943440607916804819916818372769837851212587465864160014773356753759989309412069533495546667485106206120840346385790263343152808718984781365917325809736623922266156153291911173694625162252344967358003665467792306483037324778219083001779486701572926745093666139571526181918269336081145747350806913312832302612245779412698815912854467002564116395973551798289968077533754081298376593251534065639851032399279477645907734700599442832095488674893682552855957512449692159137379746058190030569038402950419472132958878772237851750163150670371548864407859454977215085209478793027694162433141809042763698316319761975342508719984296511393728757688524981647483606347910088701687994876686851694862091357627134397580808032843821274384257390917441916659406070793749058578308207358983092085643710450407634776616037113950843179400843574779068377103621843102821622397581088052591858342026760500430441951120477021892434917807342013410579190964414131041095227956023664165638612936259129698719397295286401675744391184508348971283601434299605582046200518916905321897516750086362104963721263345120000030473567997798013993504593636907591865616596482169759653160798774138485733782747939209417425056471197066299395448575862487058413972963773413392880813607808228892172709934667911589544903711981439755509938281971328780035538394430559157452821578194814368594786126658951480415841862523113115177051495195374704953005594900858888002307760312783917510426926001752023223492754565485598887312399837833612390195008371823749220704251065229113215439791983556559184474532396085968696052196973067398418930330042682760477884385317574261144510177676058184644132200471126360772742065935754253992574202951183780881695948524978608275423784584854078863654348828204288012209356549579994993922083811775231501152424076453692170425584376746571141254024753256946165883136815257466913445279792457597122436348214832544508569693672478181306562301087614875437627384874534141100959708865381529401433744113425640046567836995484284648551767826048612819746268704351851648731691620463747352565413243544903402344496992832677648849171430576587948711270064355223273140144749332972872449702407992199160223671126381076896382151039349177631985397177151677547169576383113893590749017531357081513473272829423424349656002138982046865886732970038785821472590784464597361229588228155462893387773812627418353348619034584835802305647195993562005851121065810398143940162216801556186161278430487380730931787648783127875882162732349510398468446501839415295802348664938375329384077899938719802703849618824372526237686173734338134648551288080417638503291812615914039524530005491515682252547605651961292985862453889338061286478261990638470680922622562035346342617225256572035326199750852526018367607518400058644578679365871297994798730145761238898401128391686533871584205168734525735273118369208817740701899255407219835645992920256763303701116583000169600019498024556056396762565702793072829027592915957708933707902993793878608509966025559923109231579424421389093023773499996200469647967596707460465518860903172610231779698726121708533150996807123443066068475102863941943204279828416850550185469770174507901676378781329241217752491447575064391854357290843974009347765343387315296790794369537303450291748470826869878257958101227251363863666699136423122491882253248693366528113463382296995788501239586706261932679127450859026217338834511476970541698299472961016952252074084316084132743556701365934267200963099302475259402466907238503505858884715422531265951497844026993665079464645602439652651154882066473542228375006419949381868558171721543519505759657317629257472196447990252466966874630712364086376336666440754681748621531803723474537350221479003002240171835493575268294893303741427417302995893658046063660364381949833256655080346381651103909217423729251562452937833298560997704424621953504836683420724882855894605954762776256966305447808746359980458426932682221847436687949382731609538510330110802796455104641726043460877357031954474239248903401337241395105808227067277917434025583418431832482245876612224421429179709653938329010382998944591904690841930413697638235773423971432307332039453625414219038392435451282771789567175007690777806203043513382781354883124272471299193737232285462109930769688465837676345893727950289023555824009503995533603937371919583246220428755216717426368065012356400226619063448962570693650452754801574050647299193207542039857848503582487551373064446438540710088932835833860605164291012981115107076632901455229187080618289639174399496545368974164015342688603372963831095724303179575446733537354142649404304734743855499158244805931282932653671111108129359709538306790476700112544194653261389385802557181162034467527840021639206787512354506106825282597755810910180780692487238045449752775254418140474147943132244110011107052212707451257349607792583235266698316665694245043814918547724378886872498436889904873455590011554359928967697202687609888379849457239839396296693923823904393146241852230065732220846066179297273709902770881242613599704875052574689540805043080392853177866569223101806772917420453690423033617113574305134526795490507429153446724102487819131797064262652278908414242088869090473053717148579841256550550982366054491524414823364472853661461615262276309885452207933802061316683107263710492120663814495711832197601650794804260943876133273089807091670848897183608831748841910935180696078433658001385757105657973824552907269585275500313285621307977453209635878414070252691849090692475633262782076202888803726118228769323061856047739143701441511522544819155677184762010900795489442626702716969589889957910230421755098247591135838085188883382744083411770686659338100145045085924331829805593888018841136372342812089428038106057989883816466889739349996339807289077139129920963516075919144013858495306117628672428243955259720709698443709979200736373807106888458987178397319361638779310773456677950332315230446073070365412103315493258071014481950552695680785787803377724548816988118960146795462697950714048113471087264497776432771462026563209941603070201033439555293750079735808403817328383284736549269206751023029386059938290633402967380051522703596116576313065098290025839792922188999244147911094818188170277758436453914276792101323237279375247341438404948372401816876472555614688198850059996967018490931101388887874232916213141771870385459901836853525973293872760808025935252452177781113273645815923187902365591193017701135616185835755105266447418441180738011076979067687236075803156788670522183116020368681006536405045699734071457096462846971854628281636539039383613001101747239012931322900564288143874889502425248208968300565767797538339122532009794217027818091962972957128859280776347747716008902570385516158149392093811225269754595978424062828111314560947614382717703876493221134945271865916646433149479022586410579229456959290033877870535933245233063930028411478105415000946162260438016951693672754566391408291949588021781254531279724802333777479187505468659818781344329939840034988313906537313521398857373999963102732467304435263338829313464435265408894922740920042720524100118176120366460169294129166373111759500854415410962095135299603406314629757415297107281221428249946774914796576665425899669237506217516455083768320412840100736423261274389982246586772515314604106341970037741269557609145202333380683536666544271462124945882065819424660859765983949203624380996914205917562447808453429667625672104890677730535609098344515931910128219000432411099401357570363054208513026556623683684861651423740445454458882305863137100625307683876348754061862408380967940933892669082521827760894309357763795993550397832690546743286159544420456898663668900729819533005872365913518581518238698341284180447551714689674379849594157708071666945409363782287372956626959668051105683896064151093379374132693765393381347131061124405286382226043820769770515122319992237967943748855106678420495113053212618898131025625803879167998475535836265818661111412186597007515082360853844866190956459682853436333267466203534715951913625756368480114805106276451031001027981762031656816288399411947837321166748716944702878739011470474601402266772356148090793205096702635809109140928255695571962992720951936719617133005401407143306109953425882759388030239981003967514266180831762698007740464720703847587871209282730098718921954191144288188005793441560825112216508740462547378365004284059576525568703902398748594914446191243621993893233121359852450548600475093226304721463063403986941743664839537020266737354562337974448765610321814075585582236925146337026664390621457716759201667513361063159448227765858183577200467367621802466408783930652038069295859245442233349058220501743218374815966798207630618204149860927386680129487712028492597939958942562889519854818328207455520448112131394459349097438792687935199356141104184524514650420485194858281887411603291411179196153587314894579025456047969126627265385554935169791404879618608925656278762947679305919579333627956041327403987379090504044200900437032673235125899863291050018508585505064883340109096308890001041431689578303019304854572554983720822052358769259102918892535065407239451605118055927345659433327451355978090061916271304508550127371281541183560307174185582511859530905612345883304738215591198457307982915211981814652166607862803669366581055563719097196708811812154633258869115567388812491997374642800637068487186649385636755582209837903989150290833211491974264230936921724109807440715575511506011586182704137008701793249291448329087981076728419006903942770637265953552633877100145355005294838257105440315530158714464853345359846903118038009876861520366079587673966479160390957870760793078554036393053489246243285633815687695670545063750294504795358270509799320707105427979521706535718570257514963795118066466394949844306567921002905782992346937009625941179789348788577597776326621815899174574102105052292453798658968376033562650857866838116369665183889527362725412010176334598068392956536523733814987930999535069755119938240205479442604921918965965632875404811651882881213061872774623983047441299330837186941904429087049501956953371291554253936875314039808737776436280094502705623815002377416583286599736056532485126114719135519175528155912563776152677427744889680186271454783380822709535466969577170203848061459062157302533128153086444503863153191919100138536390773690707393439328790047973494399710183270576189539707774752185212228141944933523203425289377376445770466587328918936627785987476028856046831916080242705946061002404898794306531519785517596279529449116938141352900186769482465023093986032683941837932768799402551646579388481967943769319462935463967853787790443733851057335012399885338214898084643478324041203737384839799948314719845995307995230120649027566751975040169960177964054025892293804319407167635527098194455804520582762342468153597672389587368865522777373105054212578970089637842888340411294195083443163097184116374753151811098388074260919548644537294165408613522067964935561949388102488174319365615207650112895466961865994294759694913417555981652133904832327101203819884152145346087342849185020230879496079140294725724543771440300811936641293242768070070110420808119192246315523946189484681193593192455589571410004430841439515641885826820541757200413220026190265364395520222744341414666578442695936819442525900983695676350198220916617257156982933432744707154105424107257909812906355953522649460699302538977699608287013774062805140931998942924851098644529360524065460747281145075711470811301668886819499359817186102662744497101863215450876582451352733387084319838939588102826614654686063123635376197424897546680955806741284543070014735946566120978448726456586317182948487573784052164008252354746092193053962768921945843426271879425823741537767373221069250890652520437142750131791682532719081448246694098123709819896036836434219295007489825938276626637302441112467097502570308906280383611295813686491511518621772583824159649601990018167505136062403532943653760756979228944836022501265884859288631579035526674797564788410169971517622531331915225486500642154579820632781091867254108166077147412751495440893104078463197178607260898833261024806578159496097673026011475865127223264131735303706402699422838336894141209083526411550243721204511632678129529287917317176176552425935059637223237964469541588567490127614585953802578387278895289903378189816861408145397617449297380164907313453468803448682172697758495636392066841143323679988354449665400577483611849319539879560781105510042598918628776247092825475065568581770320684665633719883725200812338772166944150175884121408846473195963470215595270472846554274160754233628414645967409975853758277838425325909667534516232646372412955534053166785266462786344214714056798267612343753730397178447064249719410252838052574538427314692668385721165330772317189592799284377783925733208676794778531187076751299150385487118244035009196999600604819613440624781686214194296049443063129326839806005048195397679918584620554720192480443142796632078016516249211836226443214205268469608132881256410632566498856294761063234825531836722607840890253138802878166170331996703507416535580930825632604270252929251129581485078231186488750260837505723777214637633277809802521949667458813773083067634440713465190759901386475453323875653563657676100510606230194902625536120384368924479078303008359453929832402653374125320732060379243450008910747947791225824809117014518081171090171344311994163501545737947622097573895793756834368633231582408962835346411894707262579893972940785279823165484865937349577090873141221046149941436877300889771662191558964342609387484091428161392042078060829138242588770563011811454181057564335828095481641178681838901414592955784008519389218360159239924182017034068870370257121754229931154563338069564668220858136384079648818347254387213005882731288465983744933748356716847700847584404512997426134843424074133247570961779475388123256891360453626875764238899765026696539494499604983378401897163103899581172129595039792943432291265499989805505396638631548092560202184183291676906508948905433364003341665524342384308320621743366543301383384686369495436535960788961130078953777828707100544034586530307729638400759905707579002214797690897184819414250502052595849985431373206488792390552022094224545750529624528504819605726851153442583537917106144975134980404620027682860633230344548829398202869425059223171039072921578523331041092139813521604196128769157003257744539067378460713605404554511287828260099869354898224294928991446769223091329122165026093060242896884249596861589359557983522056886126921753806531541438834820783335039356992956923848157314241622096981864932672653679726752578103273637452615180532063071964412548227036637356624299678945145801806861248908450018005988834028032123738782160507030959216236189651269765319628537042440316227901311536392335018293192254261682419813041643149736052272846327384594350161046209767417060886560638235407925222312128627601564747469197994061040268437198729988492532711442479557065320749010950529694143949755796336037621039251293889215797420830109441749577314132645944392652525557374708930358541667118666711733334968577361097409555166272723046278726816815983513559818838292773376845644900575685939961150346470533080206449004484860095995912241632023013756095586169179605469151096557016528928528504917116762072418845073871454680020295596605724681738954387234572473742524823061559644183292891981938713596896882667612155285592707229103544764981535395205756741586480432040134601200458297957999319353847468716422462104532754529293397947058417802834209696776046563325014812181858909145585875095930591538706349566327371736274865462966710393522867121442904655544894848877234985493508526562735305347891146253083343850446177546254898161885333115907579216556797996629916837854623357925826816006017477322785290929748758871043826799403764489055739252504221804577420886011430610810881222688813489033930980074240106075086008324758072433277952641729388826373487701983933700660721410948254550058366971467316773660102038227729579273424068589201409631344138906564506879601319552843247080898076819671401486479352064826150495225901077233071522249966252421198996600504210700745018596316629382853907113992072489615203589205002541868406334344081717265681011777593415814069665150546710263415284036825939474594077986018336466330385295151320355151021156866723757686672139063122184147418287286547921939933717912564175977582071618759032424365717794393562014927592286946913335327161963097471071401708922991858868963118958826736666390092962035997246711875455591439562291095725099041225558353101679961525220878640109997818921728909852954469223851160768538101730295265541332021445447837875354379244692328207367855238743469855402678610845521708884061526558600099190319033850374662142115451549345130580639890272699740841364639735469804341859999506196802842552641813501821536139877748449595205830147631544046957384210923433796879853126625239053486132391345777112663292701758666696137704700265861500845997256538922941670236715262569365030418472566743346111401867790532541973642275949156371151542149202915833096209968929127368057510078642192623407710062768649252496509872323081598808291189150985912816344063369627790665587016552727122250775355517344157811880677659577655908407514020811627883990749713037316191863807402062792431734952145073168485017427331729283704104809783635940712219034555904572951178825954176406344639974245449316848258231334666879478798960716152959834462848600143485400403888981067308026787021711765535486146882676313622525817226311795832860305988819480572821200311358646005847780319479706000129247514387260312710067201642289074684864330240362311943702213642341858755918138402876050156789897792931389898758084512929398749534191835608212925612010352101760563769449510289060836371383123424016068077227254407601544491295992755267515331691910788384114201916342331660959038546300771366301612087216193261133383823007892109020903498829000006289497105061976536357936384160533631533388539248595507677982719010720643726609118517805132273200871737605522068857312701377186155430291865420217467828039370137950942866666961630374378818507710019552353204074494587794947868445677229402796174346161364919357616114704306347896432134017354880118628816405169330793560708824896871296857263405965618861093646872555769421160054011022993891029158693229582424926856269275543485071163395908347534276475581453898755724273897223384908526551043843293190233152055742569551348520931823775504217811706674227654844514256778429865523399186353413241807580050730993675532158856951682439823175782801059092057725179004190470019002192034771227511540751076802924620243602860420852419223590329432368362263699160264342101656230202555031267031142406177479589255302633802920033624881695700017792844543728969097323623563272278729095086673949787467815814344057952255023769607901862283713488973997299374693125417170275755576301826104801580188107120327083679054611315834587875080503762256967753769181826984027798518753680656952320772680895557681678567298861293732846899752900849045937125465646695595671484788585223564385381465086821127142578201331632293846452386091717730513512590233900453620085739297704772405872904489923370067744255160092265861044297893422008165597744177489089022598946854980046175769573273193928316599700287657813224019177255022510039342128239295555253930933772699593323314655019793437304836820991415886243944181760765530641335013558944522746979670069999589213287688249537835906225743716927705143986642466323483128652654665807305631816718100792286529897303047644524406608675740228308746162404810976455427170063424666885933670253984929785393153612868245354179894867790924625654037139689033651421003962668456916813804019376177910964882603982795918256111366182592940675834867498293190819633740673285057940362997422863424464396077052425289066275240614367045252836439570991141869590762382948954062514287162278475259657839726813874989077355993604786797214882566740755840580840238171926466357266951901965475156657563914000802690231209729424957189385761192664711553721914610293737203513599524650452308514163746225046989155033739132689108111259073270141815692657743538204998975576043015646886540909511059994807330104867468662213033463973734970809618301243588646804626851869293483314883988037275004201508866874867461332339031928174586243803948679347587348118670329730346043482849359608580306148021048564054513182556552190207035519748742790220602993664896378531024915715061716061610272025786443575599612355327815432574862383672757162299176711875399489804634477211738548662347155911376413037162249208414656832678307119914467710594888128414935234134617867452453471187036397895401999872358208662951088533781097767711104306728544229727184479822164004257748378268204347206971883143840646851206907430785905308775512491207017971031621970416127746989962980278272157774764986930146706931817145241182448338481423056137190823685786413468693304670361198165973687808044535135049598297769972688104822094033029009500894254645826132276595881956477983960306355779931775627182091675260589907530983017492192493486156419534826287701113972911514901039133427162143063345991687154728286567987756669026766361454667216574123514966895237855102675183261365468849726633559604879282894032199993461807436614597905294372535901863774185221592255613231595227915674991733620293366254976709411739010901091248062428336159944515311983862584730999933762966940558931909487643407554242400074456724285138150811156280952251700754185538662082742737484752549125123105520024859315420520854544595748836052300014932696279577642401586680878087432471584658436823225419402305425451792653323684337769203171112805957815562217683430975037272166369257151501252441604226806326568802424182425095280558154008938444728892610507022042701341183261664007925328128314589507941664976585976619280376865211264249739468859430618262234463974159533206600720263644467601914492503964866400186096654578034696640421007401588406721930012684951119568867233478083951812077885271695475032681591207018992105976102912753583126974274314605263989955937879420991321616960275460266994079413377069092949176367424163936798139608931552308725326109550429955461978516645684977234004532063827818118290797983672084478454374610351159090765777421705427629436789799244662614584998188644580229960678587999627336147153611165188930125995328886485221273094714110868549208495382468942053578682381314615825989455572013804227426556941814465267711568542812485985517522536823012202739178142877517932017387563773861357855170094583744314041251733583687981854580007140154195284336642471439086037015073767689455338813970581722689131836700206814921761010192951832416988787721573422045721614758480250183453245156338340399181520706589621688871250188812337883167195530485985219937141581989776918041631615059660968063677550082903268714116763412579961469244933285975231574833365550154331398137630604580996449032775434975668786728601598485502547152089548211351575053682715401963485660414555672389756589943799109677030403587831440297800948318956684212268206105951689675358923448542707066981813468623416800434595652255506266164226936335786670843510405055994157053180107614531829051891790029083832440988699531346096509178056917750760749237034236353253783076908519751670987994792025350205967980175740594547068144403303954948702380451171688774778493963290554954712323551317184738512932485485766873411166097666815883250990075106206357098341883019963056453741501594772844723118687365691311436575150205504915198398948410842353995984156963701474314628680968198976012779514480111978614045188840363373529872983730720701567513117312214296790846692320750474297246789373466539694220369514155958342236086966917333999172012526081376959975414783630961875742185604093402435616005844578767470115912868587469774154805878727979023806876988089997557994666757142519229841375897923837250375857198172381441537057000075689386530824370041125359389407714752584719987937902692192692569841102848274339908449225903920275903012576129357401558641860386872151498924434756476980130562321981729114944408299811314050556559183209231064922774253791669206732576184401913353223839730992601996105827499569299773108863739353422040596226852797277412671682123101071200426929473968853815375512132857086802893472357140064953956513085553723959478324258707446816740629019421548474025485059272706651915532443730313267152968828903233982499828829281563347863689857895955048635665130872485902842875951890239189777950999537553932968017522949346004290680330197136595296654683128561344951903601567993458585402319050301357956400146486293472490407887271339918753996069616954315478001686715548527897178032926170716629232764763564768800064324471177316951294963131796842971500114748846273236487582958234936487660897958273377754452919866359245190339560207827138654401894596873820133687502249298008326119975850032987674780018664352163503938997366684923872312466878567181916443095665410166506195844758300230536391513920536934071999652684349030621812323000496049574418022444412437242871950423024090821671571492498220810857322439006154826634741640263718190707232091696403401160576354190026028921375146477000291629115446102334579674953031625733648094226201609335061671384966446208213015408859856855388380245613932195614248604810189022522251659764527030788214495326337638595297201056667029853330635716932654509346238129642659226578413851418000166286642618248925712045803629824805839105480168255052162596847710932032535311961396962421330223355703761767117448714264214791084499405706246203660861651575843333436688344372250995393161176408490671798677459024142662569023696414749609225049321868671672343165955675139660524982527673393174906103634707814773972731891934822097629794894830647993229164183339286769025499564860015808130272433028286452199308814741760147473776373532483417021022439484005572941332743324876845664455745021183514435464225654393845749113489284064595691538130203601062202966024320584569893625299309130610749655570218048299985498154660936806917081475048320409294929266361693825762480147397106895564994750038936811888243717932005452807576773887121232073649684015574019623412976434880578184078441212466513186074065297050956671711227216296092411543159930797943278484184256345967869597117904401295117779656789542364375103059629334805389490748868144115390403561892126330712247697568533642105351769087231101097277149124741085967204774952515602490628589107407837902822523957668987244493434631886499501972325281977939177959419617690021707674119519359021007888325568377537768868630089485430904714116197126608627679648600308449297577783383035564434441342637250700517685846250687866612799258397308259667156219621231171489405997747204291409849799453488284166688219520533751431525927133967900211139834218971371184477171937025961782857559362255242611004207242252191137265979033358496492395246553564143134771385100352217580942160965300454056012887655982687608313222172394970863718568928818237037129783800422768727572569417853845229472875027335493381192635221050253049865107746959113886401175719294138238264346541584120156395293887310752911058143601670156087782315151908039725715851821287185103762788633720955600730786676494949696697411199080680819394909876408021834056087505582783787273013406963921939024997066013283576019289509058857979599628861706207842373228629924582818857009804761102165775675620188172201143384662573992088138459816448386268348653204235468449182429862977757654265994826525388874228433349346098196672309399588394438832134534851505342237012376213960609872372166925673186905237194668495084982120548714360828395057835509836952818823574353833796723012117546347303615979782908436720088110973302135863554281419096903908011733638126598212127752421039152867861153710422523318448117570737180450066787771792374996255663626706611574474486835932370404632748044172224922639289641634737089954868377674189982015539837585501974502035488350218764498978803956702241688202705649133222509036213738600647617092318260132104516347966690332997680262099729020746084070716538436641420019699916679566887041282016675932596114542272277644214622029952396402768588828311347669546259241229427709137666732969602740563142064577773616929168155035665546308714354436035775140090645811087357931031079790707460065453451310337581740096950693544860126282842390913319893415131181127628932293953629532459988385500843505700034412210273062174289225057637885462371104542064914495179954918619027557174041990892805601614514602434171034636412873129170330538805301012528458736942001036037045059880675859464478505218416799906783517252926642473054667621393117856166720284353279512043220917350230943779787272733300797106733946016117130669782004970017454196999400187427334903180297072429407179326238943632173297610074395624659964590303469569134931610826529487381945341738377837401452045349902624808393324225714816087364762123116681107174366750404136627682569298944612298798690455468926421393404517526000328776553016768231722903727797439859787376914613398244019815294855859668259914640141143896979244272523114397652277835367686393239661789191604212195672613785193873347746261808453085125196092370282691439018243211124028319848136863480726707117083059664635817178669873224291915689913767848006536706265956270811625553048386463419917655724599446844769177192843265957850414405218057035942172766901991898583898403878127650049458492707327504485962639665375931590761963355175342680703509669910201369231917152762767541896454574383078554741868624574291822204013963835722666353581080001856199590970540474850053073531140146021556879563230570834768250797387190937087997167294039659777863545149060843497765267456009544988087801834019141149258948978394794275848182949775714384645584628062614507633852920512519361444650815001028403828655447331999024984603244378531585722657466627053133093407249754558010971421847855069757314848416474678810088248985804544939576431491958615127032181052674783489639465292409614823811810950722551026427776529164893512670477375430530545860760463312337412714463120303916996664718009362818126969186715829937247602207149665099277083467189519060716594909770520403845579578934331646008525769605766786614885590118827490719360225851161790016593584298965358462291867105925364931180447190801389395791869726208717942748112957805945966440121162095149170467264071535422575939191160260060954686193171455456253383645667199115163057189286722193621555759883917532992918314731110221707082909294822558851440951245747079452137620067480449131335251323483467588314602399295758401400773223203070668336843292858298331970645811571900184797419034689072012465226001939029193580150620985646408775945633531794018112057284490179348260745140819668563849262365681747325939115407483675369975315873575294289747787387609172429835894765726662856632621720705895510540369394660495705207884014085674091263028635252202712770130151947318475083049910701522417816483250879545396233398485673601888767075304537365206579199193177367563110789789914207417848457852081404765019646058491295719419115534025602181074864867877940101048974902797758222919583892097387940825447404223963484281591920186880363528752312528546491125858601235942403851641261390872458301987458435297163913700296438135348141481925159584491925712481553628376537756189935712684152323234934760240548077828080692449353924147657212833680938218306527471635903249765231436454255046290895330435752477861041588024714144767353402650550428437738374404126619818995975852911857112956795147232577725883903224318339101368398499684004020350675417397316905933184915153885238867069761669373847453222601866722561837343784417687455698698910776105595333434884727027065595386736038511138752995782206681276635163912316703048349910434199230140905045570906002523793082607574562794749275717936421262551925220250526251596036471554903148420427748641556217302466344497345361596489814216628088041246468531178520685947942681663381626849748573545486158933476017686292257503952212702333527560459045846866102673051608957577478473246689834941754316305354487539775734206432749196787250387419314926912788102658931620946812132977151176787025262089045142184272387607283346947986483768021705421671813795956842900516167183483732170479922800129254523033476547679617830195111439925643229837670222483692385986004709001059340194043588630993531821813243631945233487907936183938997238198344428171642986789730252668510151654643931745222542248903227409154194986658725935606921573711941416798778311147653347695809594291177970337367869705690882258527639500379698573150439112007639935754677287101452793989012644502356034478823583737249962752685178090019325978168763788685919190318830124939367534647128526410212978039620968361259037981884639197301214541109351905392441575677741862508525913335898700753838733297383388221994538876938819528914823469469177646130532980030233067336485853482774684493365601379494659172730701265822787013721308929144828762255384084126505681391482987130240061249909776507522072848313154929282408026947368524387561596327302135167924993691022695867531328413093645514033770777708130598396342534637345508192378033107284162846976688014720405973734394834265157687531438385071229799856983618280635097777487520101750618562383605048330225286587115545856443426231482729639534015809604266936754406947345723993682563301934630469477726457716910680348321124526144819069964022633219311156559637670940763283743213557850578928742470700879393477192250670671616817528994237534231233049359390493912397284589209166181327208126702430711230641414351288125991441934976298432274469544549435487173458376932850501371767520616448158008020532973842457348668316563962179728983584325818373362264622108112638352276823762796087293221400689609830694901257860003845955289872537656125999643108266769953608062157925812504355837943892773594780377654392936424913257641232135745186089463070682566328663362226559649739648998279028462291989958014846434303174231241611490595042819000464044496456478415334578369964256502612050407554225585700624890191318515315756950091926829287756974254219360131798387093860531107948909510265893721321955103130804164668598355887286445144242254123042529517800414695660949920596096164432162547158389659653669343489987292676129980491160972373634766836169289381876650681488154690195042284568500747596181012093693828796485256886438129830275193764819638126752798400806175166269470729052185700679571160669827793953627296799606245164268044329042732455764605587576204817089979280368382471722098240519774936681295773763398220056168853495800585675413965757824719503989872105458921348076311509382399926532502942453820128005268465031426846571432475349937085308422319796041306719285496617381362699792899715965557905606752646266264378204154335451135153499188232342101611199118906445209412562503159745746299593180067153271142478152952805539978671871278232012915332647643293057230798609572546727421092144021226305193900894544453578807281584242698526328611198009743744493320269957084836791524419495894539833923842067701328060453409318581310524207995639590845355869985316156621924187420530891044193156157527331061121857628207909162331521676715211004895480943977362269070420956321981238502353538354418051894585377906077761227783160538758878444889959461845111522636769607582706626939826174176700448180725397074129605787490297224272508131512111709301730905376921381692594520868755219858557364642612039661209671433489233772827365571797543562101990456757616161604509640492890114136366047079547311783473905409961579619373753093650109636405943395022066218863389705303635579644680247207608310390768064351315210234404726492358231750899582006934505156380359095148468120985410489852611890592994251926143198047724765880778487842338311602822223489388638862679639613882111949173530941127035638415746596567612130404810743482244257850750002564485514994763666781722155180277928337398190272705207357774005555552763686822165924221931661621841040108106893754962762315344017907517032312600549313492519560331102320192980120012196651430166650006946760790261980177486908190191824961668646667697131078040252662720621764717961512937741885244047088273935047403437261370810557729485324525561202748664205352485925000275565786547890499614744240243622789476435389151303482474899414964992138048173251726986813188683312607330929356101236227423518747545964959821114148546011775072043306253214722439962107361443409540573934928219793704529852172105904058898871121179559328748915557166133429387239151200168398503693381766667380626630399422205885720963379787785847028443301191122179122227114571396689981692445172693615700543192408924048363164135691416987527700804471869947055191142818817159230193011042801087480017069172223421577765012330534958909489253051012608712736646442712189803415007606253379800594095927099374850575982084178265040899525448586178842922521925324012819778736326419151940792981407439174308330603190508061511840805533078027638178246171808650163297691327150134245780029169482069214629523951536713615856296780604951751550708357799539863189236815554979071965100960182775848116014253402696237369533728489175993649154120050889854007933080356157359984285177748148998912380877936617224518016391907013472934274505514506077093851216384380632198933621916132324352296512825658169547812893533447140046353331473028786964884041357041895258358105785260522462304651075202525121330236902275359938974605760092635451430329674347830070240893787951281785194072707887612737300327010608024221468598515228402006780904052940297548991594569180183984364263078716291774195901838850441247767159223675212816916474667362449924445808413823884245557557535050660787295144511264287628467986639170736262308735532166027708828694783497187703532971048244620855709873710910684770784588989112873906269659418309060851969799820996361180318245129441150683516566659708017727566000587850864016210016376698968503605729384068213191919058532302483276341922983517367970145163469753441458278385275970759757545901003790978907816212726257713204316274567457112032526360791244077161292247304534049236924110339698496922433206845532204041267823394861128279952667426483846158828217295906740653864525283646973674265801647960595272275528115448143227629076507831212054798187351813938958968973245643016238553463312385175605940392383143471533969187537078607212541276158263253182169115186305684345478669054000383136351357697111065962111099527211654324287469995534796464095752479180760846742954645346428066342421588619609964005668271225503784335883460841726826080406432494674027681862232958143046444088843179828032456145798252821625832787438484918457226597623544121889950651920110343032020112609859795974622589856600451085712991020938150114273774740877648598918802459289207108219747923425637865182199684328079335903296264575050780031358340111200447954180330695516103293519923261924861923624227470281960382533325551478977773166360381497567472512262532397437354375294123002988650120623186368393029688197587034715402381731155809278459707871818499160705271032670267135239161468927109038720806034369289397703297803991562644530308896168870704547182345747769084803327502176345714040948479890477602453331740882635303635205358550449206060229819512588274772712227101377232565715713848245540974068327173696824119273065555241343434509159877275344586245682039318059297257580383242697240720513150099328598298351570045432464898649699957028431781567016859329561123192816430196544924173929142491311333880315986376297957539703572305994722224828601460568542570012693627669840517216472667294406022637976566620373023035659870541025505354605239749310752837250405406472575804222464039966371136411357687429356610812434270657051228171085241054029787052016529595378580891292196440794450983914650933877029968571179011052950480615584830205328040736601923968480723799179272958266135853069853806664614965111180845643552864552644327525030954578273759401714492068355169348586117951543704084247100254538631257793717409437942511902714406078928982096549340994382301950632098687105013640342448923472854847126303522742621319612765832040907633386920333007270404941780577751253347646898931796048060557131019723935116907909656134745280329295560503799010623286698850643243338486421250517070864818023998687673573501280386167692637901338817604761553593404273463370296659830297487111129159142211878395620200060225855522042672393283139986058341838556542392593942143850640597446413387055700759725213498332908058525535462961922819789853784539946647253653625104263635508079011584649242257506374640330265765480069925665949741648213533050379250716186678694748636213185823127790083918292790753664821771375991198545981362314620978030278895113279594001343882420294121727152021327328884567247792959167697781632957633424592837418546709442413158783641343599613230964950603263481160451377855121912427171781362085819618401336199009860436943491255915442752097267769857304562729974382958566497491527557731392758726276231793236817099518017868344899486096408415537417914431903109793056923504972446587024331651871792204367683774618424797729399600655286410252881130984443975140225076243940353149894965184173683686339444937953945719884976948023576706125077180480421609009448331781134788284904056558217945147970294957466577108330665407433701752059854890257252559988316466348697632619464195828469541591527043192233162375805547811222693003126230126633674024159082690077038826224657234873281193800721082915787647987234913992089476743950279546036535069168633093981170795004633724426358136019952080909763941615798356379626215397920502178116056138279032711710754029913477639848219714697366813938441144880127401382903309642516039581128153592197641888479628750163607681737714772693386560424386052164924497972924554550378065089712564085208279922752516916231737230432855777149644362542909967965320252371991781282397174127621297356244839629699919957019802508623994581648941795979898798057230584249972185813152273244851154532109000711819108797275938974322785094715171560875894411924918345402739931319165829772922692663831928306094982503770102579626545747229532800449025035489799051610693309196214787283367305067404343764033325418616060179013142898030510723106883681124462135179615081113337380786288570436169897739555885069031442097557977885400199478522556880520545923377647538763664739674137613083987949508292439568831090462171173249061252173583938285991619342562742900753521925352546083614885779823349753499506416198689781850010385941665736883512834903472940394760338909023305107280668564857803478790540785506814327362061917250634213675999193445644876726124363373177747558661966057278890237778463058684164039302398880585685194209749238238979579397179002494630376021135040717057368910910414387492643706250806553683067131385110063387075707788703795735601445906399190675113543264941792229920794516837542888508792055603311551979426494918813438645585023169072421919928038853311727119256501081025928051560149782063593895013389432446344178184004056407288580919371527146193539614605405975131492297133904719802445109768196448136799278557984253706246126021550224713589091571455372590961070625881893787998528918086419217339839224252893952453331618361708282114527294866010095015917910631005442317511624076172550229270998253117820430356129724916525287346067292233361823540753438491647772444868570457262039321781374143702768237765688858960817283802154939705384211819119177222203584551813285854722277877496595231953787162113634544996235830397476550627217475792202948781112781788368926503317440163015608778763704554819460241633513257768523665177330712973619330318830741763842295234229057060699891314066587159349029461109347887302767943761026259804520304125888088929912872308956491047732772051283679049093158007265857610316064511137523084191230927110068281163739216994722815210035445043739789546424811287394157306554865127157867113383201618583450478357391910762945266645236927037478045809502959220686009810883572831980193012883311352091425116789718055264843687932737421573303186870518078690061748380007395771474244926028984546266442090869441955002293496027003285845003583384169410525764337269112234557960244441025202601539445925583406123528442211728316450831725603306349661715731360715211301196578140295257541030004157286525008019033408064672807107602918115937003149478341958117497473199517706318033097851877041275078447906934798181894879725361070126517384430878442043005850301745503678707608576301703156962705979085072305173778661848363253728793169297536589865643190959304699825087548615142732980207460598084382417121448146618416081164198968813211596761299662512759642767626772999802235757145623534825140227491203835490334612307596492852419441274587683081467348146728509842830017818680787529885095873015291491099691505789540443461510162188782120112856306697367773269730526772495334405619863349033249700292748861052932758129258927625693747962753665365982152199261573915351908196068044948259761930792671817163100548467732173324598252162518783933114966808570153653333823613305048310827247303426232524037359655319420301375424341063556102650122074424452420354188067828607439336630292945311578184735567946211870183504667865324359668189566526426392094102853204690701958082303042289923113051614381210188894965983025606123075128780478864843432804016529322330149796392941697342289256223877600200287733873536302665818194625973924505233123199907870130090268021890857461327619068074077584396228043601856279857224291991543632713411007271074367076339976924501070621451546352685389430890122602240518564849211263453781325422919850246545173573020150181796645386509132060319388401738219774330858041956979258330952406925330161156157664822077027091244868700339387631784148368756957740989845413285124203123925578655347381492972769032871157994433895377275086142162155533011113417953932152342969838115350523811427292050382343327699368458334543735987992355711459556789973840986718824863206722545086923293950040232697255144911506273388300235672771143114426706594787882967448781862425876088877928234146410733796414693885828485033735945328486794010829035343840856066394277754064309032663356299528939902265579215172983224639008084636387816291556416659179373273980328122070633788922396417763193711497268039867649592086997457421425379534143107508927295739740707011805877055436190397895269437140464964707548131864752719351133598370038145147366222588195380052074932808203863606781746986402372616201771182346258575876798167149085103379795853530380302210262058614478007977878544539456768665883001312340893514996466134595346353032774593247492867511752923979807389880103796685132237477516137794344771408527418519293103030599202275902871481099238310296703666494195247524103891777352182425397565787904499416787973582808414041466757741562167171751459461179339548772853212884965344868359230265936410692254778352813009196768068066012616389438586371103358170681025387858218260304101926842436200507944907684751330309269169984146939033456165671213192911754454841380974122910718007264318812921044781545219219084884695752270664898090932910676769690657997614669939327256528195269965461445023911569714727085103487960959730237699114677810408521301845617490446311269641976759421604716553062046965967029956982889224949508339380305101678156838993088758864914976100561629232349022128659259013566261353554857237841375979237083403106175496606958687886719506457535686581390769250972134259216930616551862242111171488056915691719848157507846473735441913532772021634927817664402828560467923289442859360818200465119520205728655238349453474828650366641809063623470785656203500904239091606360374944128125575822526123443556312819038965548114859287268340815005335427701153901533093676365017727951849063059871664760776614778859212899076995179605580461323524861889759889318533256970966674290071525776637844035000080666682571356768886766770215514075647057016069908173545033339411269094126361505556825857665279743392644308435645465027004509177542560017881439396644078260243208119121135041231369446187220270725464390093174249482300770942162373718712880697031284285788926303184088611345862715189421291732197293057453403671641965330268506328773865773400785808802667747897786244288488984577858184305266938362362446792051066472063760282172063990296649067004979889583604799530019693576930697530301221757778531298047958910503016179438414801294307029371662501426290612616384597174156607334945453241894304382020674095555619128728973312206000437555678431565886413121644453120355729778007533710070847031984629758822397304311418255801595218944367328750429829364038331679580533109425583651702629636666354066197324177996632221123293932233762015848366865547259007482271364367952004161078791274939207734617330356213350920234537210512928494907954656884077223199390169685889121106628894140437132803246292960741881672006495733454675479770884353757063435800442792797886529223089882054850718550399968375852448681098785192704534731723507385078508069257697740895750168264457562222881867021543437664722286120358386487742352865684017088062526179443934170787214678979090519621206396149069384344183577714663558128061535111424800602103312295786309125933633965205472912676738003030137314913965616756408713256779805592890704831921872818052055400478838676492553012922162820077854353152893279921229335628045244423854154508575283306905111280306630184193660437056545418330581164814768443774682224636489206985643688489197627488060188255167749362659789739936924686437012954370888064977969268883443111226437523545715749722565494849145614625101593851789412764718087313204512847364391463792536346128608019181762034739859081215087407636040614815337069758602690003966373093943813744697011870936121054478988624122991498257393341240290265035212350482293390186420437448937076039348686747407421809509242862906204449727497022642550510454370056574586205765079111677427824481554721711038281883602137235166482429827805537806529431143430086813498818232832703723204359865062842477217776703873972350937185497731281329459562609701622624988563737494740432278926021576241914598182681065887460408680789285681820496884640412473618740887995881951079709549531929573801262521256946072892123689638817720799347084143669232634378751450171883905828717808660271277028726882268521542586543659921901367823212466930450052053709322677029826443467487458816907538519861971922738891742628981388756882566077065423434552637815801908918199153892577337218872439345180949064499128011084344517195692473933761477619854869774525825343823786055013604591511863653478284524115708691362119594421788856549760487615963604067408915102671945440109998203790263976275709172661699653400121656983311298536619963793912369223262651411647999380334388892770677163864693664760293399855120943778770764942282006892196879517582212476708129585465110476868090061490641787680974473038310687990619283394659777538851616689948450265783866642998997121793239984853700096570571809930097465912388141077107607867979305330194350034370958443423808949242815883198634977047674156173836154681282852022680301920392042915532647097940298648177488206616955201166075117865987483438724432792275639672828897547936527966338895847321302755854527844500211266302068954065166274499131983882846990703218341631682241043040349807584361423047094800583267132635546308076072380695264491885172924171390894255546730591376291348501575765124180741132458340657175943747157120409068640033523458729632088075658910602116892463332990472467869237420840088873701170242854818563112468047947551426144091314809216555729843635588802719817611332430799114878551814658823779598711349103006676639941275762780099203335084969933817333673458705550838515091508674553942233388170659946232665589811654596104118152042183130609053060511120477972008900093077976928962730939452583279749456629948722120769920215070507467261171236479107229985935434928817823184997211859217762125308244908081381866728640253619596949004288841018804094256865926242056615864796218806939037768610994280081274137323054124754866718168510069371834354460285371246602138414197974906316521071456839233559295050090520005167946686862316935029116987069781224501797196414492011299322303873051891417357909909283122300340517669362238235966716590760256726262731256505512083116411872028708300443444839125180060784936863488400737229248579830270358859019432675673130596416879116217748798163349039346916439475347476055210785020796608896261739780846869129321531723164042398243552566258444589410454626561543808091151258881724733784403634503573125836724044848056023997823952252997106285271031427259224372683980497516349905681243486917650842295962062804314150945876218828130810948405150418750311534125215610553927563371730474198418062423337869946890674186296408943946542882918486373162958319410145411243662500390614611382885618834354999248733086738035043963247002412270095825437612981480793229614059269406869675980757694277978115172188990553119443442467256533327555590765872677291888320623900778451330847348234494048265759809723954295183771512287020589558712571246732658758716516110125936914254926313111392052878494887387368346734950214749357907209355271054796832213070985085925528903515200194249842521682785169430883674463545821131662905897081453723474245303995441562368932319324534954220984181601206025915648467397018466579030796420599052488120998049527551521376039041830811506295397218215033001960981919253506622107686624888032634851026814856975871437371105999008600860351409749114230888589369627461535980549384135664308722722085466993223751731970439732420171040272194901815316808285162960304450383230631667865407208699842304459132871966586114945069586923310024141762225542235967430447533052418210513701233625573001897113308679165584165157509264485907268885096822428556935805597491662831728067118773717016211261496943563187098785787941969227923399996947872063494628282331528261232165422635462623416878106345369838327472032138938723299019994634091735215957446217049686638952062051132863206382032109343938588612823850805405460378474808510195171600276318488168407710933578719381956662771935761361950281177942384187333919413343339835747636394538385563878446188967709044756063726084494808739556373433338958374020942943190977938908588513035086504233983524808219027941270051828163088181693886572409829472686203305868910959151475730454800231409481217776006194974963201463442714248248061769731943880134768163464572073579604358676448714263505067978482238735444932084419109645540606184628516374886816547868887726094796684314590987475907594040444214109151865384744089316992046823937171540599970231527780908727873381916857732201051168648644628990490480912006163897995465840104357507918522530602682798026141494544515256720328300655822331529808559179688187672271564909335591393819271111211054987849264954949577878822817256731319353415111682421671106862767852247353881980263838934983421782903552740106977542055647743673197322419195395834396923656539906316663853056308886045293502817325673515069958387860213121857135618366940012904117744051811000977881704611205799566209837502102404401274480124343256591562123718147395247242281141290641316178348293700149727416683649096654256373092118677852812750557496140963219105565134145259901142013529331811603971991433210998462456238774948673454318351889777818406772483372383304761729267166820770804193372768173789184752045725645712839623171992650873696033394525590735639284881573022803606990987339499367703001803626438397861117589366774291245653734462902192677760686475462004090089928016784528039899897313296974403565676358143794249420830023619652270883679142134160500904615830937422548101599178885056771564355284637953053036863715234915962454235231860132834112355702806935875714370105507783727818795180941968233016032174850658906594723682451922670834799777164094809374317569114583569807206370448575671864401096583401993067322886171512873038254997884955943456148852246737591366465926840339376200521092900239489613293028346106588347237691769675397766065695821941055895094293426597530672665255164024005737358165684402712720019404411592417644015791518507862287943873735735267138938555114834314655300071312443050411246934614717444463227546414818705585527978321142677493430917577953064480553077251955583308882178972495339851080365041156932358099141938066657259224037381905410625063156869071006841634867797520458563380942739401744644745500284445124765593593715600389267037750192479487601995842684549726125954001969340988092863749679669428771369320547499627647183097440646637754345241341195603303524242953361496330791539779932698966222799326685106310081010310164266831936877548511114059554321768739823280366656518297661895877066524172835333349148048508859278014012098505469611747161035710609748215424023304003593691765795664904225778541816073066126368018595974059058884323954732260969441703493197462201281918652315013404190477103085625878599463272418769863695931038468113254074286432387789023850424566009421301572867124914062556136468257035576244413716639394673918351827292693515735247012468379305033257617537371914285086811502959894203004502079033230411180616300372863875431954337814245082476917222634191337215732764469271535549287506662827666773762803475209779578833066794588777274390094062468940249556681939932683535524408596655927085993418361880202093230802036893600472981998859410930058314483600173482410333284721178200078020356272906394850359689290353006050497456196171206113485332689988674548134289972101720282084854466582275795663585645130003310713528321412891551447670575771164958295208538111053539062320967482458816466190848932345524359579917116955546076669977790265568869646704423585901292799100424467678564599421536982650642584458573746780692842702345119131172397473466634956209680289430982353947932624589400783013645069561095998120453877899546278984565744526208848995853757542957952018786146288047914014329029698564431518294889485446822395309515000782836130584659930217786089827478459015643877169566908942943925813990574364693062175857908479310603083380849508510091028066804108879717592588856940356997732989485179661855598038754400058321936476100707498945022228324957410603033369916648829729293553691182874489707132412341561368358959867891224191651467918610601990982930616528721549473293098999275505064576299404829904512960514464511798013489786111523603749938785186901432918958383552178086585293667172561057483380089854456019336945893599792869856955794605046104797185094060773621319857696202311814913535978651365549954669671327414820513151061102959570514071329409493204462568546441258532203176189041634092573710513279560375230424707141871383898589844266470142984725842102747047267714492857420747295949469509985892057680975652833080547121766860651135915000627308344618118198590667590796592102772239536465443906216824636568746139106267572086477293927559006977278140388093177930736631519345609748598606704610863326498346045061465023663450484675247210920968521451996807571068417875159973180836471645151533303906978082751509024261845462679347620097656719041336598532076479820704785636219164259955807287662505551740818102175783202676006348272459084029046679212195572145497793619850597823041461409922245383964388494581282796098860032761553853914265017199193980383363458910496498661891977520909072718520302661661776808542567859857226278856222200839601245114630746536925238192905040698080797940166086397360436671654085050281428636736151523594278491635105862374079270754855541624837626849351110505972155416941479921452537016879850712301612988795545122294999874772764173723582230320319985505819541064812980221669339390229871845716860226914184989400795668878572280049689237180649623185252482725959719917817995887576777256300345447579895618097989708150764162012646671758107009605912947869014474102282276402726064097676602212597664060907010816503204468064434200809781554578030241480848247827905412866676085638926894590381868615199730783609842952131147804259886771157718040553795221777398058304499041171559615248785713825100596954052137495722766985370533932555603242237685363217790061024060913291547390003680814011809033610289067451134499836693878804545750317886959268310118761955562332173523580597913712394794897638984758814234157815723268378982948961682719362764146278916226795639097006229932720830138754885484564562989805105863986012423774865500236886151330608686743699765594502468309735956935626956324447644745689287794878659513039771350047585931781577968177641749531611508625963191946831789428409188464489677793725957341772941563181164607588797186202468191936510522297119512783724094656341379681735640026730006182893104820204578670965916681047715700158237093465678014003544689278721520960593740068812998039815004172601574789254289052255333405270307025642432358927182223387630710755066941362023066306813655043983216883968991074477747440118512480627773288160998626088699439078073149546183556089728490047132269830167981901520249238243355324034200604094694331134947387919826038821824661352759127197909326861752100767360856039333491053637287762567219347113210089385671495771068509871630563426565487673134526497388880869941407713686436711994890678492163889510043037079207367466300777395673833237967334808816609293012636433197337184512267086351801631037399010868819590359854639100963232830325814394456986263257890011866916711213805077702314566712121833291513474341554748805223867628348447958247882813952170826967043865130848255620462528766522779285483702193612466713472379722398186943794372414272513415353808415664162614281400065887850467239572371278186070431028988841689354401689289254085956405405397996659945243777405977469143308682129176741790472330663850125160765540253435377320719346108136298493846616503002203411765925726757943815059108719803770625889420594532473874709259935745124710890658387014618782154512217512289099379797790504209013250532227349773395145676061029868269277986358324079221903040500506768139247967730040949458340009733276656258179174082976149993527100671064510890442980298029405705145459887755908927561316263763321359943677886469889805971675890939013749249629993176914314824451134175417423663302839349858857736414779025855430502031877340156825541976545861909265498147801319815170440695079256607180646404750084927494875595408441262430435171908804908939416460365018134410744086088940704732099685371173117140432871131096725887925150484395102621976105591082590502966789219954407032660239616979394225482657631977367380385453468327993104078521864012677723626532978815384304640044192681703263219297238615604589094365755207580000656773565752222980584576325068382119733772333908100084046793868558688043700011357829667770354868558302323559046787771917500646855384867966390707505833108059253621682085153351460267914078220922681456955005007450233397601855442496052585206914507064149243308475458701200849571607601437183679458508768337295455682122048558193217413192367412091493010390152568355296009255122025289564461248446040118064162851481347870883572330861034828305406438315838483368095116084073383106715462627131127490735162940745959535209133021334716592889775096545558713993916998036771231115294896515267224581059876107893420424156560161889340339930260092821479520606544893993735598009958113503462418106008063681774645304587786668584051461453554678575669098249908047561924513181158887283380759367661580055036888066747382828804179137602194838157430126674564790468765758946343868653619787233596209919934814295485709660182720314709417499956484145566232463367881519759902220223210869785112046063393524990695679760965143582853809457249795841931913619369684927627900695490945047910024898419318045133437690597822143667646661564875166805061721167364894163068358126015167069508277236185516675854187735445136641553438476189714595196392736099596944762412367482520293715257576127781120673669481108888143268733571763826768617198490965615228476038508495616784982951908156915286073990353411962076225286722535610781699943382838384826791536386306456947068596337857371339572066397379944975447723525135442304822303909055883445948812964591297503257337503935180687368932142126782761815238930296928409067849154278260301728240658098919914573440971450861209802015715303038125810468069018504127573947775150281468041916922804795943452863822493672090401581000879654023072006864731719952730684256001905241552849395012671107238143500606099413327943829680355693720300090301756888662017567783569024891228202569263101703370501211846863575847897887885185944186262323519489380992506966559118130666300185205503859331332595940436967951689070192034665429962197187225875658247793801043962920087272406380026409977351749212198651097023147698030555034906284128257582954689004965122571357729443352128303621006676621094436529520548640871921500860148527241614223185430642264314851917453412166238541563123807415301451180196323596903240454321776275612494725501202206867086608628856258759108351391999262852041201260828296084579740721182707914340549215879729485047068646169183340083031190339121985121951457734661649885180892034252122628758203822504096112836407270579612867957756650778142221769020404077754652652270771465582145504746924091722146716501454751273384241243836518399406124613000008898983748074457322532512859636994746958332067306199670521315952151981314939444758518906735088221892422518101180658714764439481801154492319613344428109007746383370587432878694612500278733857648407064599899677698058195400676277715393461275139916265797100611932520270704508863729977292367811520940345971698066291183849967161691428222179121545341696171164741912844122975960705465836755067907585688907807529490561268955150543653722737885548120086063154118811633776447545941888046198028509945040517160163789511095806427757716162881181537234596284695902852599393921164423461795218868573537496083852176877441574810210978649949612352892816083321727675295610274361385604674291609384506052035220865890412859918756262342594206733070386849120637840634948013758489090574138827426968049655670306412225505195669956633041550326627140102537497346703238926572736083274420932342017592113423100765349080155730380817462821044633713796690808701970235616440379904679043579263968416550699559310073972190271255634018785480635754465684542773158825828470470704300706930626544759708149180474886692713818607208810950858593517137526176205990313308175021136636599361882151016517541812915798902609980053405275303197395670983249941348876662091712088180696704977214171547349723791274816299432620907290890533572992993422009028873699411561436528457029449615576117158537240304905789115031759583347223136198607959185459455381358821229666997150601567609884413363663966517920267549315053504954240224843003082593530855741895169774757201110877054161594623564034239141656432346941988300263715801443386328994488735417035857714525074165338922645457744246861103513898123466627359774545435335421710158512916956096385035828560677974381817287894264963360886469564855519656966124547293961659321570114786045351124031314138834485771650954073517951846142036310519794940730354186073904608864077636938819519623937964346986652480579727314613827622508045921411633084036020959009858471965288625910991545609823626110723830103125475471629466520415503739010063159240023378839733900415247186814458518419881216877267019488727696534619554760061988905741999159665305404435319584523831865681686308988506320896000346425092268146021200060309142506937443211872096393553707944331424121646529396752087380243494552652701562230746951860465647241317276706071739572016027594400831704761507160930300766812222641485817211480197882136001106487634255549987314863316647179116670993161476335002247746525315703360486192133429838143468802879241162547440478472257764855748845924978564174124870368340471164424548400220786826546330434116626633487079204201707062006733134895404622448366479902538741657747861526683507956641636042102449515033956072914094657971653558698738732025532680726260307101291265616371792345131557897489887574540070702116201640589850519269375195416990328778908639043394373995550386352610528239717806721678316731396266337548290884932044030617395615809029188055062659265695496741305206119548049379713455530760475948599571409586266543688036852890502874387821462703079720351323150240400777481924295978112143403870576333951856556870439115342224877955210821341787789471972500504240611300052748990315412448228131609418970131895732396416462158296632475102731594851431947428556936212358685968600366395684525447964411398435757951293681062398976038933412871419042048412555598652656734231491883252951950740160593808011314438395881982329155276747964995357831617800387340788665615787242876271301826624952981194319163460493237822991463355243063957419139901447418606428094972408768927851801307393487321258995053090543372279144500300385664973615735615753002104436351487681790636770593907587173749717798825260718252681858858256291172521810086247288657790729719415455788016285218636892380666805371984048491127898241309922854086735771868506332662029636502366289888629221038718309504251136909846463486462825946720275747581022039104711180744363487868801617083317548110930184611032247837117588624997718105069765658924288309525363398422608325389401771720582009312107142956753943799492433252705765067992107356367527114099204039332608888344726491298500922249626777155468170865027950294783367766714437122151021233724977838308444841589585047153070705360699018391171628374524574977959313124245475037942748470865655954732201003405193801912095338547865196949765090642247772628790189186359856807384527306833955692465379764340284687019073886144846724949062046235489665393529458172845801872616337383662610609683712391060672743623691979614318349558135771266171501313068699956453524815540563780241007510604998825300299943597938758875943190003328473683230679865247373220817932283677763292530321506474035899171675912505558570436653426940251095950928239634926531061958749483629207600489039884974900513205133467926709335141195442896767171257660067745878794730871257309699984723420314556359303912601516414915632108057343104380750947193372257211748416455833944175465823232265220636339729333928482918907170069793380241251309040477206546949088103962043860934702245318187358083199736418174546380731925145535553929680909818640382727736190841484961398156149061208401651396364560211985519935152561772391590424073205801528073483382919657986453436734835192519947266665846429087075393743106490573882049059164184931986760236101359347444986949231338744305761628390704777274320202816397806425982328412146569201096293547502133041410498397130306099326691524776776384018784175058057306539462833273887388480553086399533751718969812536160289794209490690334747341144575074189636874870305195460299014824450080952655375231733899896732895958657789506527568807848126203621149458638080335922756343093222502702779314936773730333225232155949893161443876738867388710103792388305559241451506862742745970969359929919384384457436793813086588992206087209512936001135541536749296703057954029356415882513956542075549554692974575684198291745620831416938596686004642435716966697925574338930099520120059791184797338522851437143673462819272224283539459152770418372912632889556338779074199781199785750265217434161343500189502186833780438332339976548279806850031117065770028553896428256671858884645668320080314850871707850013353519988731340014888317239898333870954302208825642348053234329030344191876613132246272579235761667873367182736541765664517482690926078479939676659319498496935055536078818157570929870478968419447217038053101997435665409578831005156911515039438617595828809319723253918511279427088097295403907935834943657264705136804111214104990923177981246466862590171744317020387551334624394735628900820785495984437723721223988723390935139026388696100152817994663032984784514605551329461259550808729879812900476088695845958828585957532957426544664820360966788036737134997325807149561142098456294873391421354442759134720774172351879498861894263690640605005068269636563222999311085508983944589710172557782876444309492206366434822755623810259303323900763503593595286849938402573500870039647139173161063831349546397704029014627061898860820229940564677041135451138491910522463593275381616477805263318143499922501061765314880357243973374409016300822796328217136139865965277486992947074656980712906608687441432995485491456820755425687368001749638720040356471939822677514934029083762177372234846455977851627847171875295908875794236746068181381724586995334180759032327841634470725024728006800456028430186735366446423265748077540892732214365608990203751871344809310846657687204645613146833697967263918872866281145804588606138100290974962642744906945989206755116994391623484502061551034674395829671681353378357524089447499310263050523309423168410146006907990042985764665539647854713498926114066726644360072833110289892034218679201579154573360108778959652161025530225294475409216303805703424403212363666095148035317214110129436799710232102767404965247877974334565570938347013452560990502979282869342352217408555625902812553052568538949864247406975959416494181859797463653390631970568591502214706765134644236496681630152241872063840428756443067356490909320395024282486133978730730192538129150413004105593158244611125038865629557602110182929544318100153525062641942409393438168970042257510213774927996804515456576300331607683940717101791053168471331538761848190858149908606022621220263190313071150768652808679191839062133966952981303052604346256527843452879914124279181115027479652607795692736191875709307082213455486891002704416256398254432284721882010621059892974042515982655344705310310216010822274579160302973006741739397367583589336349695034658460521841891075551323228651341039714691355050459138959430724637182258705492882589706368215868639949452236966314083594583391657682422272767695603687834139895952092698960068211453486038859468300061984784938070113625409288629528528046512421383952852395434915332833267550982222543410714688074575593037298856947964497194163830749944911444918270633871463524188337710845402569973940751278313789390177647424138757945242430170365958225175983735436301174126722314287298428086476879998334911994286051576664681435922860525921131526897856383383376294038763919281705772627683628241666667674687918688667962780364067993502279504118293316257277215116926097007435493168665807191100504241357280723683828654191321832447036969610596314607756130942145629562151442248437354187234860204668698247180736904581421379947591731343029323776594518323653534282126587470741761342481668095083912795351128133675392203322499673269808327708951938937094572882333409382218794912403773881408101391935108569960867851059923986751448969055681341979703031280443690542145989238034570872969561786144727450264984799874039358777271590659822185613168706491143442782880668494290320906224427651784681715220398542110708386529771808808484870939456412822239069519839508149345231187649302555433174706361259300202559464661069511825396337215327599738742572178936119581753364859587569191184684913730037144282263274070899113806786898690357633113555838814851498922013626881956988476167172533284227556366633745469771221603146000786223748368336828607884967594447998670484668074524326704054279906920076613716899638176801674104718082977195827348071858722314979843437435796131927639112504704000729999367617159401327213406790097887670076050978979951718591911854156578287005715696843320968971916819775437844090463077060133349384215549186303931319462773286463546151610510886663518872045644660138248600685568560651182992933058519973546733380883664485414389085770270606967713688352028308513922279188404524889990315576116768025642490350875678422508009753902227542955736858934516460740509350855389708000021274325173162162236945448267819915728038867751586227807350117475240737526464407010092134138885910811291322322831963043739387140973275696905329545725438737378193905475174630926567261797991157433050240991248039321841927213848374346686246944409840469273990294354700082018943788328259110186320318425707626995490994577856001186276586777375614502588167364231005068958321465323726520170671142506338466769073853386512119312846072557980437110907156134704968960884380061260322166961525783066686743117827386328900287430076326219853078898823082625300833627116296970728588387353195050295243343235744739726538108336746405399310739647603765171747349789182767679801766775038382772195289066398329016755075370900564682942119774693081243908861797476414549929632199531291067658659598301086313867064721808437346921852688448207311484508333239247278610076668563583354953239227373042009875575257816199903138937606467605227650039048821335604201841104624676683952283045882661760352884697043070127559414873800183227934394270946368721102969223520640232859368395950074956735566110738046798487590820876544459449635201054815340137235173097082445736120102799799693445574863454278631317923215344868684583209563114509744963379682554705070890568958429267582249506715678539422337080513898132318324367118554207696143660116950680654697229918740284982483629338372924880905938409515175045848832488091094838853102352123937448981929859170474235870114633868852085850972008015173536644702334107346614511559879636373799256725491080410418368967867894454240985168895072213122872175061153565469008487310854241678653761610901710799543428377290915744276976241519197699703475854251065263355520354223316819107039515262120405949438633905387083079610040337850125382788393022990873376460898189797908430963278496616516373149550153544550367194858421378404758784773124868029984847588737847462603696364872665191427002992130584486560048813346986671474405948341478789301135087413423251426940999640335634829209852147463014984424442523984817042572590222602026363867849372990730441948298727798135932324765961606411879250346779164797586190968149105132043536257989240806682791851205372758285295946554191569890099133673310444022497582910200361419039369454745476800878234046711194967912389356785571645938819654595113389269313108535183190469466377662900349218981031069565077848468121301858760125079123685168827244020737377282266383886920437727654609083430073463408468222567416974994164749404192082046134395909955688934147552686423529316895796169364601166189369878028540352113136402153434072097106543283415194982893688892041571329332244147136194610850618737772684185766192326835587697891044134011058793425351559866185660311270800333964665748841326828520763861901307916322764467593174646965466548346018581745067126461326731724948663358376563804772563453346252435069835279487049043654566582348997705264346064511924357848879456533044608965870184690479692263507032341997069820290074370822005457852540636174762671465923992315118374144640249466168648385800293873559108371139984110966302777332173457115733771359333232314902595814231119795891785069127894944534379207194379502781626800653626368038031689555776945965707423727040123602409867981440320385577729001526277898480837787640568415527053143114800180785796291097126536537800911112206686562810434970523047934157168862684570434329872935127641888967747874398236298964732481537654311640897367198667826579114581952142291804165624947264634592678778665251705872270248669319405191023043542701521276058293522905348969088888432452557897833323918153078792648349532518898121087792227624271788915389206518597333039516848059603186139935866432908011202246080297471483206902820531877739882009699927857573148170510180528939572923061850686826750553814504465451993710669951781444674344730040730292505314702007029703234718022490737000670958514005343019114966486025733887825167115227884494012225904837521314757988985297869869714643808989275749345113981763973183611300030120289675228294527995502685463896404656501651060741950223438464335694272941736808406184647127588321882595988370869952917581407723263831969176993288703002664961238082546414756122533640154853380136341345968273187387958368990563064044124557700863348625020855762361376912743274951759964087222668112722533716411387685716874764821494616775827003695418926054974497041654358779118597342429256819181844650235956332430809075320465263656672898139370779156953700449167390475939079481717862726967866038316333582096675162276444408978572587351506672377592235130347659471178310284667556119933980858754401279311341693620149153996266876835537976275761053248658258522769546978424965359345853888215566540992137390236160297754961734843384090842919387037943611392781546408556861217580615413354786251158567933623109155369157795951162958249291781478746274841669478942957271684039785209372693559154879073300968006020826175597978838971408997179348860507096020784478528768873767144355895512148816562323515510519381917242071757396342671140898125431530742680654962552814074692137814980178556061206739975912569901742547373095565610387225441129036863516638043063704121528052269037845146937619084269279410170434236047355517880422524381675980945572757192264596795995943200508708991664199808744741639873313508594733204473984590358848374554778905545789857563610745321916366240491155008861951439123560664344304847977454150653828795181527469798361888098139265772814342943774229993250491669641661412043731181370330791660085066986742044556412131983455753179034808611970305071670873843751913547365997130560234416211626709238334870278936406949698471627418073252067574442049084246393320773643284361410787467487318761186113754326329348095377155212015353693698062639545173212908053123466134721111963860595195189354746587092362065390734639058177947943000364028497556867376116965875416329862643915045475295707189282169202807598322057690501853758128004133330532129979220805181069385687866560358114144436604912624868013733395276373289074850982399293665023350162861181800292926354147238365903056720050200374771171938213176806998527204004874772368860797450357010951907736073900792702453568987609083258938942597306567964041188326349976353458333220347549459558155667989439319486412065424136029980732832768355471164993769518990384675684607935370863224492675165307056333515315197405564003843243926423008298798280451942907523254173582156994977365860543056960853478025842869993685485209760602530526507174279917970922795187439731492094843585787056703901205221616200118299992957862668381428131830830365801201049388928650449704623930775138694852069169923109234176452592418331990505628209938040113880032769171548883035151033034271051578532883091913707442395104149475310800859853727868587475180194752850433149882442955460754869930619535694068625519050590810759729907872688743718718268221169332030273931568029670106040024865775383751700028697338733450051542155038887893081801083718273807932915775803445579668755579160543020942019345575897285169230680277609505542514205954829744307857013464505848764031187667502296059318561338421569588388081558008527648177744184458150172262790477544716767983030194536750291756896892056656318446668613387304224805832209024095430825637919815106636792612494532252005582267718010895605189960390799467609501500682597166234904662663769929190988751220640410877692215458826585034787358485258699707836498354003645455602143061049235720005850089253225107787214786827054217525658394232838809894084832009483134731812556615058082048148242947252848805680111768613445524746526768659066386368651736417709858017707661398975114279531267827542982585697802613949015043232402793353635558400317334166419346171952910607295235872457405635034792754837831055534185925104484318636218630204635647052047992176530891560653101099142793944305702028834405474623183648885184648408443984202640270607579946973825756091367041876176150487105765200744403288327371470379471148597968131768280297158139851066335998117442820465913117071034889148717828614034796185707358706595934594390989148765168078534424149547650353431659041826154788947452709791546890722678760113369384298092043128638472496851272851933925653039489347597915326763032793418943915907100532008370804144951311943400431704405504827530320335319834449301768893541573300359808205584660101652741074004417213409019588072587938004045010677981137677413975444971461265816699128778652781199958746294884478108657641858896963417767560787825968848650211050786344326571698230303621713242739378705692687283322663914221462050753710455028677276604671175730862013521803624816141038722058408396904294590013953323644145495635962943262612897916753541039018917882955477565719059726640754726995624604200136969964055924808998150578660834965171142198292354728411971785273204156126517488909588093387517312991940324190486504587331937430791918296810630810050398776511403147010533282924097827090228161156561579573770890634631479079941945673825339241088520050113137219133600255903962693783463841274271595325041283948915310217239408028330419106532358458299187986622800515859161717234181736967231101891720393078312599253452437769826288218614369811512747371450962794784368173478706824441689078365342817687662328443783861573598721236218307656925258991625727678352716636402180436730164984562503328809584376895208707092942157042652220744500920518097568337127478673698770319459027373425444190718431855104772822565194264561132731361809546771193936419820233062655443365358052993577538175877633372618769114088925000295920669102838158391770975326383521139879151059560737830705109114399041937236996032655206742563872997998679801833929481231877295371192078286615084674605583480999636160316812644086494090474363870504822927708522333911685582464497921281584038891425044601342491015463617283828105172363665912202704735252180869490437343516947851722472665926928219327847756507328971943012694681124221362962683724724084883051182816975693513543599164126759867546510281841007015485925150200341818694699013434862308636165709582102384481610324149070633843962952253508805935233264143529326218105635327978546412408245736063302646214700172578255623538514968990119842747465546277635295772279358806976141480266373038484598092309047362490866785756950313382509758810628474506609181597904287343242441231862921175854660402236862658224177859849631829032008838563134376671731840155832437717274123845387121750728712977379864822968146183980894373096790633154804937671892330257331892735104112427480445743416194218586652884374984549991535528747973963930174698817252936626078999772362661053928597282532937960501293650623572562937244758424444343281385123847296315181130163462970919489910720473338519496815882718390532521275504606941950036694189558644624141304329287444513735117472504147488771103932493282300083578488077369673906947533412744803604899262406721144978450753612195601895545145995723577342991921623377452881140243836555647805307322884622192238588548480038519623074429882995382657150355796570099308853546320192814659452465118349434095261202217275601666454313038319574431833356936209722733561049270618903105968837525949139865177628217311126242893600914884290949774665267094574015784934487676265369736799971379780452967624158547525028948295829230136571971758931886772467173932836743675189079491384397201172340283688390782405904997326034206495878926224915481075368670663161878092307169855064552302466685009962856676359196019135145009080497922024486681312574570865540546760900465140861140510712027398370653081080876930174959507231423677494515767267208648058116648691227543786347992056674524547516470313512066271573429465766694205372749877486587394755488415516497199976941873846672413346595322600814968575025798584747147572223329491851493294931877897206443353526900596809909581256572970901386018629752366525543850425676694661726962645493093696101033899982260831536756955120429287147152992404740632493977365088014030150794402107880049812386449779586617214265433436873370758675805678718955128801115132798668829719764674361685921078025902789494304360984287482128369326478192508451636249786994373836497609389407721562270270672967537378156045717973039830339864457842129924314214807599800476402560806685406428919499207378894735618839315879991865342106946060987599155606882425476556959626312312895773165590534768622818603676699942722293444608771306065403137263678107346882574442882083875496377180899849206213700962669815417374175705645945802416474419720218068650798304742325558350734981013665894367698747451515862282483291881054120087193867209751470854537316696966355941478780797062460086310332743337495169652070568807187515958139684777810085632626010019753714636916433520709469813245828250164366131318927830062597525669035701330089920774703520566162378113932116430541058977068566479968580503355164945456363986143725256192778936502781368758756595554117856952362010509319834212795288532437505555299258940084935672692637928067775512790626353781214472488084545655737621098143219125677988457130448489089115449420728383612788329197445230520374651288407835899592126156294605238621891885507933331291758308359843394722067150089492219781602754628264665727037685586804033031673894034043899675451386951752016714708437935665806521671746170192097852788546258916172032004427037226986860898332936692374776326995013425984607280751627022442578922389663080739781181135131126646558925762483626986243887940229539544144453689608982939311859478218109305248898936735919965962602037359264013831862916103122263545408158214811370020727398356199349486672351777305284783303547609945635224394820775912718621199789577014783448613951684495435271280376390170112794396703327365129441040485395613588801907762459726754960276658976357502329444937447694478794658542699666302670311123527153625324059853698032982027509999188803080768733190980368029881893537209645654651729337939005320397151304365628651654510007403747722742112206857319503526480876479734919053775670469583825802759363692895902255143615071446022519367266947263433740438937793917212828408562656115526914462127322767734687283988086925318571851756125937018704024540549047261051713748933033151829528495966761072970148792635342516947325880467712827965538901250324365136932378275065790278103919919802681647450098328091306793021438909861401132721835590850138207679935666017539915263461632546050485231914362805549558546258480877531106739587070268231735045218718756864778935895142804759939299396041218054134918521625638044525766460269251258641796048349377155289113682689345729754893448490050778510571774077104097459221865537025962634863030550702865330177751077477205127395482551641418955659889580919222295566552530069260200385189519793748582500174216827035604943866700959338649854823665893278838895882220737658380038707450098851415181335715400691171476200521981914740951196791286319457288396908687725908573491043496382773296211146202468737352194070934658760397145484132166745957646075925568726554058519666172482099118363457528823790238019223022516436399736737114004009284585739786575840829282684211438864723459294823222532192144194803130757666822974631638594089891635993353500965662437769236662442456006097192137954003852779860412732566277158771559083140297162210798417876417141622584835988604221997265079085230022801233505589599083554425340779330770857460184203984950901952671540434751982607452551034658485530079127606740689820664055268752358264249397426200246937112159588427217609733151729821174141201897829734561344967963633983307253256759201804916338616258633458086022564831560697487488080889482203223851979017236977288566497186311839682713861627297912035238722136923658886260566051908179687230745422802275095074384879115735398264898191650089945976687807008223113887829621867080423686946390655416293065709469445920433703169202181129169614567141270289305414989093638339951572358239063138725541460641313564730382383501983087991313711756454104156116300878722410743217522874892557036131684728593214841941649758430586498045332457053846515590963089162889827922378475040864636351157101774182989274858279445548376420373280870781314599182677942611808838005031586529963585077899901392556765663712013739464883130203722753454113307739784703991447624425999242991003676823699450938394619944848376969241204523272538324823972257169192199306622822559338880375069739171865397391792275562499697518004933494912767453883719969851755685720330429746860049183287355091311711163410674247209670367145579215696440947703326818092965538037334806337540051986730024406161705918925001056010071429572364260929882555277145598724780933663615167957287374805171647650974790824385350244067773713723685950967100590471368154142340243105450338637668145329702195140322358799918476228622410597510394767905997617005227818358365636192604848321427979748562003453013195734555357706441062272138931585553561589726506640117851118971185868807811250442833112543187683633907045122964255823939022049496966134247006629095822962059640534266223701743399582916890374031781404885432145002321724671447058905241984344043982389444285417500620751892557945244588515678801767161906322078788822348634130171191281598614182199947167449780633239805938300080653752153613138587538638080376407275005515416062886547900419365390430909542153230575027265786846349636777079135729925412859930268110582229068517855436469913077799379803597846520103300712316984953730901099245652516489182368693455099993517039977605178269464324065174741194502312987733544037578080212744113201853729748881204783430718505257532608549328650498955047296635109812653325916124313342608075748946970759507696231286490508726266272565325160436523459599238238624819406037060845087214025375602989315704639329846479680797064546984501827400913649361455835751173859818817337938556725654689489862226851081398206530013473884197252889486208530854970592821064833670814974858604624012320005809288625857481521068161208833402811344683822724809601577784767351282355299836071884383045854465618673767595069908815348013697474624719106109592261232577631296935000259890884092666592022346529178741077656782450743054350660248318887864385724818392743508197430706362188354054982230076158449646492715440793928823205365869571685914991079805314653137125014803687046034822014052265493316567565620370497955386921861743056582873963173466138260386436126523924790252779289923027674398086954098337092704803963178803485125455585448837584652001797495663972423416816752687626508374980304078928060490504781553189757036940486847145262790864711697644657623651209747220528555895244247836722130567037491196766185912045382017653210514996248404916322631166095684920335086097310029635010833109431940948394398568502748507898003284358627261548876107439164813802856260116592091582223998586846265444640219891574683388618968746911387253384219084570979158905756917635557461901923098090829015843921340178811425202690831087972516733161685969981668812046044999598016351626833513056507661881138722508323175661679116191464910109945572620950234987158897425134137264702887906453903122476643459356219657200645201709787753073915446869790107082524134627354238226541894352070756224116306310552277767594417862175024142376369525084724625889603744692695185564384861466688351395374198765576472596430655200714507944675455364502511035083412013039802857377994311862936017712198430663108701173219593722685299176173983641093605638841190383085426879347747307506678558459894789503134214416670667464094741538631033600344085117997762365138065723954239511745958276560927491549083711254061760047134738939779092289541981813677309493880431932275183469734061127191431742167183882744007477745403730442139632197281845960073533887254368718395307156493475037196127718670239000371272015047083912037630581840414383550883299081633052073931126571928601814029936230273710990320714786685221076556399916960136525641469879454813574360902851625930886504973786207559310219660354187992512049788311177466644567534396384058154447178218166308246941270976649216879364436292832967362815440881539886978586041911913597394330046834229180081903709449691940373919045907392898702751246682248203853536178925241692861658880703084642546760709326424162180719464252156839191452301370334216438177257500055774215729813203508138795788328724770269562183377674034309541329017131971831296692117070918346709502534965994753640888328902115428530523191337735782831232970551874145803938234441172478614005766266079565527517583621653864758744510345722570227093143682997064647590387273014673284213720164947185374749889461210358413268539196635638711424480846581997911316935780014737244987182495591529979521418073991553886896545087570847249349294084534188273856198647300018002713832703154047416058459173187120522557294755404420650379548057332673952491984368935689203284793716600262644020726857740707361807509117617826385415179037506537122437002864713204521152256283899712488595171597936414084513676947938662150488914844769470052417711442993481856549274666810606266057085301345697828326138092367892543255000213155467767849575779914774644080651859121436331455888118106795278237524164512368851932829612720936476482082262584954335339157397828215451977385883603304158820022417991672137086865638208772033070949123907008792493919657631038197842954112466109172874592333819794249884642920905780266291701198513811126134453243213289349868851462310365356347381715249005924568740288145958377270159355939301367879771300201178081999883626594245660574560306979751317435044331890916860387101592121174300755058177628389638239850818716791588107059526565361988540218288426547559754520753322492210842796386866540107768418381423687934144703102245754589188786358171066368720740807148458010877263405246321530902826049423652326980005306766482555035589004270390245400638966230678931151064242706394377636158467147453809976464649989479027295963833198386211538753322779513412145245846607859052838758451590982130081744187005839064335863006139796765800073916652776225557992378451109524857974434890539445667295495992630114457538991189464031111482875915332511446134744985890064330277034839496502006553954491366377455721798302541554658398230995729474118475120249343839287738802836734720286094623836434671871455151680160132065269705651792873648052857147960043157860479239972503165902466931285032276636557259742562172697566970137660682269372131685011708538496684207612134646766191200266209423145372906712758479429179886945071115609235837545380762911796542343224059113151651554865393478440481796328067455539282962963951748284324203320625107999952943937067288737024582519045420100037064393549946181213825971076013378287417029529476419715384089641039583918862735931988955462225710619512662396093906778673509558834841629436389355272829137945014643740013358348630833908873145498682665217647360821203675470547341015835904739080263150660927363782012543520000118135293996301457851879918567802854382107820409213361046225470879676408917089908712545187091008740719920247203505465471679642614135958107051823373657596241240263777634332064119121467005255776774046918356003845623824132557636002522489446870882890594896708722312574960945377720917125238285286631367925346902458880192613264371768788610107323553553542264216028318712474946917826963973423017946348372397868658148594626870564998606874225743043215448406636989900465327818664125946354341023755099707470219048757871601488043530152076322109297877150681797589479476007276460874220142936422315293780042462234089796431359848805100541679581474459456611370669107218822090771558501306269192965939888064895809830889567529825980723997755065154132161008889526162068916064403689357644822503170738925695563751237658165450743508737185329666159396016994286558967191763516268376511868604956250612692462291973915419327165445855758619131906093200310262731576205761763074820441979157435499113060754773993379096742704897834367871001649195434095185347063636305247468298333479616533098854256626141139065973035549707139915698865739442696128553425612670213075885285890831980862395290159188733904801130747692951860013020841219975010573318650450014376756605976441456778634295693096693245603416264981615274571083610748697405821459992227604674226740700621147374222696494021631943211655976119394166010816401452037127854453291182150166400631006325414626476020390410412794650054204611689811915638530266854400323659232850712195439925249925447819382606137823488170540331720006056583485572355764237492097333809503720522002758836237311697250333208660205146781233662643154535180994395488531379397624664270785241507560094590096656465436597992034196177969889020109500558579612291126671000905873753962528066375843532108529593490284896515825729342208457679664858794391589838518838630453067950556752612716863122813258924000936042229992186686689960260028830621869400261402260507562230604182391987843362819420925673592935511200618039732309452062029599534592410115906090342463400497793112351360534326480101928674040492569843691249194445040317069351311252045622827651685040749979514729585554842348448748500600656252252488000667858382480571157311934492572196409495116603435901480574775645737595095560514565679673095291363903480787610529127769124661709982385514868462597765127879295885439338475251281364418795256167476123236640969196483032654274734323491510030421091174208349465316123231435757237307800502011507342445741870018846623345679720330725174561621115466806208324192537216386224028934001568879985463655943474729558436242903958457411163271240954653468861699560613130017644578480519122848199518469946489132197308913788337740777602901286889640371738240546514485546434127895345951215637663973558205417565777476524908076786818203346521213882501265051767791448030842972056768867107145556521206669634799322625758973972361702604222977420498150080212412620612028749879364280062514232982806521401308598853300927275451414185738526835910097972763279984538611327544814846616234691449662678276304997514156368776099855351248568707493481071638000598466732878939150685930818960544729087559195970221036569671188754175187682812716401741208695241629455045205735477866848942787425085733129131770223197094813011235539079487666656632854566224457999229609467483068359901348464080054091937187438109365015308458157321772636493215799468368900814558773385916175416519653235638018225974807569962588269831751173194963730231837942682407776428227422197058229295931445100309354158037856077880740975165800028959952081029367235437430620697069106656212367568942800291375098985332846505756306744523390648477084351798646415494089983261936317458573052262371777070250711845564506936048849144829041775595093902748892259646261552870572738773429633508218502919586985707256220416891902337526626720841501769405120765471650325030350297130355695254688936373365374256049516373165524897183176060671974341491177002759733255755611375106233350613516183394943029426579250628426492076376616861484011736772133797136357809949034938650972026994576577838091865718085227488844951106328934672739426837693633137377318124482020316948588970354699764697789880271664204852676836904361216423109529001802872549917866293652463270789603946808010060664248821534798103550012525565699676711753504271718973468111604657838643355338504456307341854024020336001896226649561196353998941739427556580730351877364880052731564387176121588652273628258394901924963263609793706863574001104030510948100715684022079866197384229518099380471851388843976866571127543718393206726996263757318523643278275159955368967491083605492323776381913259331831249271332216938981839907255503668631628129633036830309474515900957971693458766448050126151297641231438527855727217576089231574579387232860163745756106498191064623452740437169574499029603905489675664739800930637031866393249634131507236719727708977474886994556277400941284089545045391739703596132273098205062023390753079354999046298496115183838331063165711510109304135741302458181595697451580636023133838382998709096652816178309055300129582712320774215044328253593419987602220717639724630271628959112120570028534782993111481822411539782647361939066130348122033157637132189099962819749026521279866364162340468114362878524481859315540082630431101956954336626642876621892774871308996809733875943884982776903498739381078655939972940951028667901126907793363797824043034634588646871296104991619987209123955508996012278455351310674532998484948050013775229372856447473726139057384875659859497881208921038762804879647114457045013016584478348641921336877688355000488068396273903650483208207156009937277560930488400595608660358274647813455372521348182772852356673278566321749712372794163596728084255221920437616599927959218422188110980107766538669875599751569622749835351642852130578626970946800138475517810302387051631468693350671437908915693378215125765967166244173367437023732732486644586153663925117545557202998828742346637854857202212098138797083564252634013691998147287630159907510020002881845631256866191482327853281650038992244777561300307724899762398231524896774009635309632415961966116138369960857837830901555401827430909138599284324492472446482363125440073921062259888315101020262672231991149985806120255261230377885432600944350128663764655031620165530498189519853541468251824982375418647789659228241582301074271095055680859507611376850468179795666167054030160604361188509676046514421493570427844943664404635429304758745571722661615180827263721764776453067104716354962632061500201450339885644275631282779822366675806732569030449152001117980999355804340235829304238440827639781424713392719234168331635463382492736650921077723635846208299690680115193943954875551143163393839663581103091691347080786850247228400540609068926241208391305341117554615112826629041876529473857977849314493869110442627099715747094798578830698815278428604766249133387485375692304295785385742195193337988710526087315934532135965454767231145103159477451082277915262076316323856736584150664225857780469580853977831447946693523587180080860881211365713745087708740660143621442952467546037501434740910368884469403569209879915351650751151593857955038912795585592878164364252814416989777100658029545791345745101370141470008789526875192781233150505690764511117780827055981072004599644488157864634927447666248750951259786714030168827682241310869068134664908720135368938996031713693636713837652778897747041054720668566472582447809598854705631865705902106706591886637235715537124461129000203908089014139055279826448236504396155945635111712411421813687412277778886633615151335650956492549880203694046302906883912907801204585288847296592582403997360466314174556213069839255283626228121290582217779286400207102009948773075846072325573995627732142173762075941679347213035219942097646543862865140338873166543706368425732593338565025672286503112929789946910455870406413642290891447712778753893018460513564228335112074435579602026548522237845761417665463299364433153119733436449649507649626796966162932878836840732310309950286840085625783430327099662139523441384215265041578697429233965378780042812971700700423019811250757853904874223933619400183403526179128646439192303049850424001420835587475676560611024065040135712141207690834408359060161003273552797269158842770859207871431713917865645043761612608521944315554521567243125915256536991299579634014435433215988186398940555609252693039046443168946568111489528944542688608264745635080326933781273172294448476980181923043852285747085472627228574368963039399602877350262341256212458940832636980622785587585476366188092245794259662491342864185557292418328765804440280557278669685606931101595145423832053999323657940957705747335649719379620231066872713198291040648805591550237958746495425133022737893820596855003286641838477381675179236773680076152438818919369106466280340598644023789880210663320570349794607756379495116630616188499427220710578325726033844030478107172833175748027829670975683301976983105987316168523471993775708714519647857615873708179019957795095379414155441368436274378723091290534485636046671854393481311218768774519404250895681316138335998375588539183928560741192982229886041935177192082927164446943049424524340014217850036397621182286674451399245108784436314109630262267837527497906762235464209803020331683404089456810986810847871901568945136625741560122419916972042387380316574556921371364449034049409228224070826022190959686941106728017910407045815172128066622048031559390738741847830021621678576966584918161224332606440063660165190734454131438216708237017516572919857227495760029294105165668209377654442235010476507192154505147323037456111855412233635137178853820301357718380477412044190252246367684914199483048992982911686647405547957400081392081801161291548809663003862753354490234785643017022031881918500736698934998450959216255473885429790582793957974361067518414151876040829892769811462156794824635309525402979659116717755075672309802889646732980835378676285967350584661859861819844817262957020697235461499827453729044884006832957481746693126627264126816183540259910271114091010155483998540195828015925873315059828894426512934627255848116996768545446303562014587385976219174829001911809873773781615466972830263560662893993270693989818392421584662008464710228143242206398064189472823332029208965716314805250888289214760736328964014645232589742744238558272337692184664267640411721394448593739353206657707732585254134206539851917817822998066544087886820957070989721215319578101182183142567315456157159770907144872014709047834687413819528247051017078252767306834958942597338672704233315176438676816394984052324543763766964587463135150579598355396709528255262039038434358593806416725396011519241654011692844953800775935095786077571876593932509681432179059218727546240581254131523353673415330786318721862235119196498002051589832505022459752217317811174852232393140742379606135769934453334011971059012563387344254057292987741430033556692963986654633196280465408771895230199772810059870230475708263408119132665035159634797679808294594273592757976548321454597624332347553804548775393238511853902291700292234429348971256452284715508182132810552221274797776379373886629389107401898546219593980175369500704609221086539347106240996432970859538399098692593558613565024074368702876737976745561892006541174048197893224426658085881815136034389816709706782537870255819259951035628859411685208059917312191306702186958590129703931475582202980411234449866328136372050817012518418567825203825258649875324930895342737662005306474999905923542393388960495053572814714660490218298719602622460164515770563407581066292540367479086761600067923513095182668281947603464986503965555698967661833545684643913923511189083482144335834339344802067739379628245901489919442136922876925374809522694875970340173207834894089898657973747069456051959757511653280203482923713904766463358504146474497172404392882204564999421295152523356633469605189293512848520979085005717687571192040668043845191155148938046435563381078402045084430541967698437185309793151013730570629346040037599808203473897791269318547874775667132580885443999166920459188545994353069757223500678666362307194660637904736383340119316792436659214535084976910320663789149024231282894427159051120112078635043887210311589942348769467521285588019699783863982213436197923483977885896937577476742879693540407265583734772106190078634791295528542038913795201750814656621163151968498872469713007301030473373771395440746936717417918449893363605830273829618884610367120249104062052307770069726821047802568932264439860852494564110861379377184421624049404729635873480345681027627516343480286046896434147843180343540022477959776961097342597478385206676924217313157101059897887861894134625527142649511289263698254345608092316255824444046401550630897544474097295363508083375878971806049582152493235848259997888049450408476109024869197586070941456057112595778032885403084608206995087365005007062872209591354055693610103031677992788997993199222195552464965851317457234400904666878066917435173419518480814466957818430571497373212682928279920201915231624523303888171205143746918227695335135304619819757405280589269118156216112049612027290031748061666671533020052339317869402236900280626474035667246936447433084420597952416417634364020639863682563028508926070331031353740586848319023236128713057611859708637292683804866827910333380893339381892628154467907845498551068113201631619429602151911802664107524335485320256180641366401715330286666939384622724372527711226824679576398561615616977440564879110575768572110189472236859286280732045736072505755873371081391386131590669734966206421130971373915519365380178000913878410076457743783999741714959283522204624868244930409805434822229440512395710636113382614004478805579205968657883737671130126760628001650995000529819598511725052121312504791436028630400784438205821188797059310597160019432676766197095770941824697518164691827147387610482332951192778461982695156193804516632003123896081166332446862462724878327228287299224335952727781654256440362703825903927276139705447942826990001038158683990024123617022281084689342577169563978305139654388488504912889776543633220856716986128047400492051672011147442182450580542907403992456512669349098942553452361047258815749754006561411600246528839480976609874282997674287758755921865898634387685382410030946508807558071171540893225485073785133828523248524246493720436485055949603664716339200450574567065580696709546840728472132323528373281342208859713213518255795982650517224394110003415587005115747484422639246577602237266178925279428372478791628888297237028716550221700371258643793309647236294117153018082856926486448803549623566965096416628376519936354856074444769419520406094041102493736685390318112273358023598229146913274241041282138992993824352263228506734334443716566100674155333088840822354215177445374662348188190915872571290971366891577785551967958575781585451291449488615384326585286837842269492658255332988241610719422959881870685664418241695232080516152042874417576229101361617307811328342104038242649573665783913071925117676844239726886204430334067942493077243240870256110974187577886593181132932299169363741513368289085008283692323732454043400785750378663916652634540477254285157353113025278228893438009700960987141755087839566592894955663997821399480781762384535915799511033097638121538155634340674818472399608536325101829966866835607235032096547416640759677109443023996180236246037954630458662931689879837629203100606620741989854417858439530535876369433524482005675583795075658597713803774109103291588321843329936630957444262831155723928874877709887647322397957108907111258955743666827016278372022164382295700924480718049016267874336573709975898281724022949281101312248656722461034157057830323569378474059919330700487893673047556062883212733699392981187870506720858731329588330068224608554872848697634402368279948963484716681989855607637165955080570771431718175395273076083415780340864167280951353959233383334318059539668284684838448248467227739984072911199012366322155608606829945841482561895676101095964438195752772547479886146529149864695801953155566555694281022222391361723685218138137776727131812694573801167423902552707159941004383715500809501724168383548315828976146211731057016711470637911972983607405781935098318925497059047386439215586888511006824231803938675410683080058515248314228670285336186180430162041847901537205782098108589995734204418842202568761171349804564394245195290280458557941007960146582008778786405316218275582972646000735870869238080463359344769144214140520024391927897666623085445577363945357013971682657040161425955475576494034677916306337147464664289098880768293608257400497288596105005394033829666144832867655714862981612622313752800102765701672489008057616923132638394160271559410864793487506655207426827554706718585081314131413786458239731433297082299533327341082752082492008493896279169802261984245798299593657294454236797701495335054470976139037292915019953540411377327211989067325880216225772915219121207825108846358859626364788030244781892081175861714485669674163231101364273546715459069279029210901504612209563533373067869319001317603343770070827183535160804919879811509403672173990686448349262594431076038144786118882337024557459963958714703090973195258472329133924516510118543892948060310765681984799773869686947298134656663205901226232906107054152276783343152207407331394233825392425389923176327434762621014007839622890494022685029253165240766877152300760287478011998452730727814631582352971070831486567953169703383256062030370928499195607195738487130925904319688296640282918890712764558056760778214634114084986193434508484864210834318552593473637851655470744707866680402006901907287420766243020279378752213191006074664666327604027746775854661743488953270171155617071706819213956666847202782829814909722242058667929220987820196746885648279013519907642013099440927992942866684343281503062785595230575539221663988140736370035566127692098514929225063184715150665881098951351635161993096026139056963307185521773209724838550850415840785080620014939991216353108832501257048409432018173786353462633904115802096171352765730204915163726961989725496759059711019312743967791476314536414813052245994958162355790391019840808407009351414971977438498473893163555738900962568364754990570890209590676881386301392536956582453212983456846068488740966942580889640656893964806504663259186764648918648840725065724019502584790001354960381723275554543493893661127525340976663089662506499446621462613454044654997099738012423879947965620166284847768737517294041305213764056292437528566137003119544628978273368774945374675536922190553480733729284274973608648835802469467471053413970499277884880368338544484211446966561554814768725272881942571840940451264822600078056314695933784244174032812420039585939230611202660741900938291624916591301040086935309444191337808722757604550089748597252612048904707091628374383823543743660705906543029160217508751891231178033211516925020844936489972912906460218603621423642118432171415974992785444875490110765606869909718161407359815457885348623695741616256452283260777810947528794565236897404654161038156850559131288863753127967839541550147163671970127329836176258277069834483208721237484004848982445499816094180178911581873707623694363251923566107102911189342056359874622150991940582159220587005220010034454556970964822509705642830060131254234415608127400144289157313575395251861406211100425323179317983984794085492263216236204539479376020770082726988744883361046279366646218945720631188813962592666722422833176108288287778844735443128420874764285748869918498386885186198074000899768518652060575293809859936406928725967682476844110474716427626195966676027994677823691349789840118245504772368305850666871862058510554100882499764982102159367908645395483382811850980854424173286218483976367274348833322237806998169610815604946512645871743363409199704850571310706525755226773868394547198887634817324587092023859073497047153526179801674325542999650311785922436602809818859016513364603384256650648712823691157011201979687529946378354276072024188159339909082836145665005360452460837033895873935839007529410805043670612027899650028131719277166213008551404583307715833607573236985756527091755691890988720250736473917132956288825061319362221811659861897874587332416057297391639122475459175202336033838605090140205551727051118492408457408187693167810611063853458918853628565103176555084619235545225112701429725856841336199189394750845211304689716384541752716184635962212508354544361810963189082640517843811158524673402827495689618049864548820975331645941309545678721447443396203967893950381047970292118309756740000561544472537015196502752980838153357345867225053037505031913852397678889823168716824797226114595189430204336411036386505977154036697928304445350306844273470764609586789670422483844497474718855425422394809980418377313407194018773352686095232644714218422543852890875097324403844590194815812127937538848583702573543001594373126725355209171093392617785354553190005076027698297937159850274501844973308388383575170722921627891299389393793962794685803629838623276750463715344024746993262417278597677467771153435165254603208014868483028608973750574409064061167103687466578689528996687744893937504337381282358327796667165079009701817718450466362768317482573698361292924461425201657316704412006068847129039525470863239614343274867288321768638416930562756380942096270242667894334187250584644069274833579610608727390417243402924118328666555998628458560476525108383299644606507796752754476009962276325304980269174227660579278330664842033497140148355314702369054928977122812471288620597937450825548945213009517065927413419994219430409376756721935946617731996711053681342598395931146807099061495845284933055881786110604899636893596262929440958848957942531743823006433996495064599179511068532051508756013632982464055475820518636831840840991795283282393768283097478960240353788740953330311455121432046144602936328429328219404760092911959630536460357979330341443265225420844961878458287473296833729223511039304518292661194576813501512644544663023006482242055553997409268948149720692382317349506465508511558623504278633606979365281272622552636445041362802655270179087118537970787493521762931439810292189937653155192023728443994957074124766600854166036295017612504199638304222170458550098523877785057556238992670059006351398477336737114321243550754050734260077092194233054726079826311923332784604135359160674832466319622517043243649664376243726570615494615042729366688310986173258281022577000922235964777166307909570114419589949953521406139558358235153966178138051217174644694073395995678970475699414418614142957214310661991933734109252740634943865746407374601800651687706208040426210405315208616527305434531943415302822927108999504967960707914975673921047840673135018582493432641555813715630141538192580972825899353552337040370560845104064980076077104883045151790648724849996762174959697321612844501969143012406385554685990861684072469204114965975208966671448880985656501499951074757176537090906512065696984576793111444209180915254517787849973988087458031893060489443619343944534990033514799755470413056691785857023070658162993552209547504343381026355694775796663256580880536964041393155165370599407889504070179916907247844347911595903556308087502623348395836549555803694433359215979941543585114357489641943537134340546348748315916540838781981477875390214683078025206904589261944525289927744310937188211952030793231824661787179006108813871801036423327804617412069624316414554029832714626223582344847657253473658632712498751671476727854326322366422824935820322482647788677047040162017904054520864405639432296748552486411463288574744977486831603800397496599406907013356053973331171362211967299061520045877642769207606002501823547831683859439285048046737752578666918725887480107060076366770436314313154868889258501136669388191007752303820786959956421267420850009674275225017931463346888607047483241147752565238921419495750941379626335959970538496337427561321119281311104684501532495297775698051339680692198906711079779642509070526865673527207527261003241672810634229487956058500031082534369142350868595721647410353729081627024949326131513296591350297557098026585594051077591407333986960117973207255578986254662868632220267987250520308196216125623110341662523081907205823465046953353054483301636249243769654226666429817325990126873322079496407757583521288386471052433317284016090220183156898169858712197494721290353599419304798607712971783364409154177543604933533715316654521493254541072586429196372113305747579450009516828165594187692644015699382771694612811340532016963458730313331351346679454749192408071649265864213963857697216681514843469722633901962565618698618461715102326553463775140912291125124765605730684199727163710160446409488922313530397240319795020681430683018024876038376762882748456352349589621821919807035986240048060989230804917705933729599297268796244465353512710964225289691167361088076880857581446016032270210258615626704629379412355082330771825671108078658571223370256116813504332838380633212992893071789700099811138632051182812169004002567871610156053106590357598350640213364041204570395545004082602213399016771138820608379147326083963471529998103988835270513834597515734383838128411492946453462062324804725339739014645497765823412890625319304655707086318737367460588944040600198670584517057310397760175047247578918299629285589135734817634325916476915796356148498538845152319829745329931205270105291611151886859619237271869851415631384425888378839825165121993405175152174287754560387195090101776841012321421823116736822578334167623386117246659604692732363085007341947873670855984075601756753329408680943256358545638026532085771645165894351177856967638563529948855803189557561874828457436817166645338680396083617283682542306275211078066507934707556196858901074961454151629627979351875327939453942085488424677370834546908755656138664606936388737431477341336247091489567039771301818905986508360005630104603434800947686980134470716736528684722185980411010671573289136285173697251455040039822720711730077483307235642987502733224312792844903083678696720511591310470567855921024250738067043914617216009655268815600605112904789996512660610521013851799125907526187137325217415615856501933199650838077743400763724787071741970927781156587093095265691878388326994449288866803203241078916808864670164969457004208540863303501530551195584900476096919414048777482480107824239833367694595794162384800854345030991384049362708673403779914719524990983020644735292610934340426516664367703283900239014246108528262508791711857179682087758452871552776938878076895368262280420834851987854008000170871358914659108377627059254629431663438117647268487681196087291433862797949858549476314450971598830659084086168174194102740604529609336213717571760545180606439891874773117383952942336532486560033576006430969589294282957111909596018183285202050413525484503377553560726357196802916691098252712218565477091088608366806733712808780463241635333508481567495800228552499304995514232349301517084854416863480029085701417674782100724432401919839862374672692605742608080595003455759562243724560543414403977285194842313358582598876487761604007682842229897675299854053152981485099693655256399403394487941861421283543913171440859635447212866208570430657924100794077450184663722144431040203444900913357945741322820685841061793759602014772856730201617562066647736657747126420907149241784902950214612333073036968364822619960670182849018676195473711063920899418928231872793672368220825784818987523049411805312962280056555714046575300662607583107933219075233548546753037209289551525591117398555916750429714449045601672805445883011115803213292566093797842656660428500521562948117040537273363997526831546135588514738261643798274236772479229328588631996175209276641192293600028726169274204396748482013114954321634604683641595906704632864852423787955000599570059076564865508079135543033907284028425388980680702920897020104731385719302335055434770275093172100459998688872718288637821525669170676427804302835702491761095522478338827557528574793096126873563920678334696935331460557432045036263504124775400887400241577621871990469121823578314129877870998839514314261507471475453867726717323087680403109260479398800260749631382860381324609909651826303010206696939495155972238942157407247843537588397543541433782114656282364211829150921185080698646696555037819457350626738362535680180099261159713387904074906031688358587165967151950029679770915678655411370968110271993183615889304669122180185646613398127331162142308052815092802298159399953132098881458833084923418328308011156606787391119317144287502898931812305796024097347063693803655884717913407129572603641299032887264890627383857462320842686794034767890771927938054577502522904013628356941084201611223556753197380280330143966598068546905840312896026567387177489461811669815019808480363715515786291154320689610537779860539495766845320471912578910616493965924336826931937414660203344205255279794935465869662909153516785264249147464951440291517477263461730082001115414941502891064405107807394931454317624509958409943453187888348869928887842558921282205639868294204742454321702170153587756757845718959730682330061386138728061303905515504849169496945538976341670930939673009920176123600593959822205389799035074702917432365951608872865396698314675226118054697618193795813923508260388594991053512165105269085866025910222260505280498890402400868195113896580144794671987488491272596454600439548785653909208866511021191702124012543028936193807426267375468362629841458008577012316734805589463738451591495056900730842501475235270583367233456341019072121365308746983183483496189346232855329709854711076441745599989795395815225897547161545516418613023264843644329676048368198217087472288743663977085303927717616287970646819683176133936159326868589489625315400500757699999513573463888034479822350875578074248940666048394714667681104855054770323831943904817024634655268181538448585843110842651070568481585703734070419563924617262435462587701539185992772210577424053374024659640919684637656721821177380207674606711801280227810555954077429332154886957316107867532259692139613063348363606713829702482835493767996390527605758486418896160846720535242104480373484349027931403360153516046997891489278159019941064431703081058850850299107233934956241816131566380661067645794270790648234298501329367358276972682456301216459474999878835969076776646987285183045443370040626297549666889345531941307282119330397971034893032651876265478076222933820814103922219973141257057733638448467465361722493934434375504965419812014777240048385016593262519115604045463340612856729507275625007103979483378281224318314848396112807049313048884792592500613009412062573379783299771608055969172341405251970704733088725810303245130046616920722153407435347665088581840058625146033688145028483069925398759280139504877328068337891873147666597655818999647644820983404806122785921005072318709948059373646200719642847987111812185854312454658613236634557406561492561816454606969438263172108689615436136753427997633131343705588451343669258037249255339056204882131555390543645932655295570349829196163947821273062338617814107289093082704582189441376939323040006860892580529382561286535263152139921223277996776216784655988863350148577900792380363896851486638444200044191108745259493475201961076738151302332993273707013275031600551834755673575327223328601057027712712181334758082942825022053504572386651571882133725428173446437094206114378344446129799661296166323275005923290783645801241780271293791286057142926320366382056575303421020795337510961145071947398823809718431828712706848836424215105042804441039612302795965025233840758437852539496779909830848938892687808737463332299231754728490849862315876754136502953286576403971886011504750978238426233648412893124074541496403074565936270524833567747018510950439792382617426417235558861959938397451577854828198546785144567239590183764216003294879597488933777495146001228781534894522293339779119192110875688106033952551019640760066210758523540435408978538673415897025772833489967342746568041323449738565883274808929496604352913560629739899763417462606495785424189528214062867641207727938137486104780309746021316420008460903394183707276492390937803349476061599316378357277731364327061054105570172210053315823883325560480192697870788671833669771838437023025572583950150847098443105214899899646981664324082665962068366977238720103842672180650122509748431833938489713125158182648904365584031586863689583728124584874201775802172261366721812827347793877805952676697935441892855073091045078562127113748236051092256051420177270499812183056646221384956409074433334973321758222904788406522950918210685648886091302983123350322461444992994042793653026175282019500860121412165197123213611299847323240759469700851056197106224184283900860190763093841272985484638154749815012613586950691105951828903278383848716524407688585335259739408199465974757983010120070463820736899538664314624051044891232864635546042993995455342578692472605907063206108407094911482939475030690613436989006899262306752395442757162450371307999526348973017245322763234628106927982052919214884474003397190929853035365702456520440486462153941695519964487642402047312245130511246182660493751325720809361132578435914872605295885966673899852694790612212824056626240293141932880553001973531128318399751140898395353077553258452879988347133638344705117116400860663917713458105625522304943684185553151116792808846687398966792205165315424181787810626797004756832392439782100629180060088598584099668949041362427538771140618196656569867457705254452199934113316121273725398792969244622336756848760313248550636183812810962036206804603713819243661428685232175497880714245181569002926183879617508069234453472223899625973840163837009278782032883230737825964522691731065824736819927748889164079907559438710903309022729797015140330102831410709163882105888815561650866307028989144604000679437506272554130560681838863262073448664888823093776793546178819933115632708343058664956900155762204523106422930655444987602055488429565143809714036556706838333080461725181085944895653290649359318520254614881807850313143940002664638721449889966636810522879229299342482566267869703189751401516230284575248049028684017450058727522542004633272887831579993223633955265423421098488284525786792981451564968715672701821590801705806234886553294695261896924297596345313189178309791807301627892511201776654848467294850791280747625037539797570934975747339439174580375449384352940850925399432849505745843518496230913284411599641412709024342884190399504589336371751009978683800068296461891062442501916294932465434794764322216019981968726494018557734916902993923938523834984776345820444347582331320000119535454317268330237879645976220629733860872534015208004442183257962334945227952021347618897241021961960127395877683932221403917238282848302279048741374652794756640350426768534276473305994612126259124141030718459338640005954108249346661621627072746874016446898593209844421940316748995345506814489672487458036690927019445254220915960232884090819440136628756321670411216700628138014093162374806816899013355897793300551766739931370403748402368782200723109567615351870729882640132116273667804083707091790583796942904317616345830547276732736384055492515704971055554692511664389230548947310168633520080789287763447015178062997340300575387304515663029967614191236606884949995941108034502803361331520023372634343300835210303641489518448388575335132048310145956340708667625765312464274210646753349918990693974158664157821616278323064330790356744156308674866329566671702776239590809894868482801045828374827648243337314857623009804405841006467602021736836277640634239304995243926070773254350520597188908171179604039477771006596588789326827691776372702513276872707146282352978373777311336106669518836615658226903017658904681198443841929606752697917094461299036274974096806734721829085177997558361728301284754348745100733054132905105461665935457108076251447584112525839074141305388479135927355592829666096764509338146737923146329126414462450479806497693937342040703632940931231587454852047358228960978074695720440079869642729098397031460930407981281660918184673130323382523749030451631007579052950648955285542543383620318834372195896909108867863975413510570597004103251806570107012460796079015196379305040992079507044990034450549732815572592559302540526121870104197595143183071868871327283330271945626120019613591754971994033707018478102633606521461159690878257126177052773527068597475031835341685720340270587505375972471876138014444352742298268351876670022729346513370817585537933067620547057122740573457650528978898852615134811240456963010314282244787969007934070495779727067980841961534197443307838366480431227937737135765323887091954824910061214571908164171041293824647717961254289764912082980490743993444251046367479122320923308692592449881829497609875726988706258356403479651566023333972562533513775855486684648174965057840673721887223791775391384915967395922570897655563597276559818036467653305303727178400511139554017422647544796998413969115905015914061370380009230634449551815147098555698520152386116808392283163063838700755003821303026985905390256766383164953816329769934078264082778452946126883634262865968237001449242681866437103448689866640106755044764775995889978063083827145993974597509803138057775301499885050566308008094209563566447505994157388031441995427161482303538146056286836536215000240688059537725677752700165149560776353997388574924547101674501393082780000417056453719388916760651753705031523310014671860541486515084708421550918669784760604618163408100835575309844566722866900252748044393738079629600179323587187719692511109703728998391721138011968740938322011569180353972919197301222006341658386027119489263066726837540719829658502259445959820592780583635996745853309731141236224170500814044320619794127958271480645041924685583673961170434029007409929910579514960667575319311310782653138451102364189517092485311966225434551911816197833684370893465387033463972961591287133461104519681067169550309951336649580688084418174113970329077558602998512286177529140401109115166672433988838307743561899801230508784495497110618968065892199215852136004308541184986521467723473169611910643458313150879309837546300060776733726336403025700080195774388273946459713491395332011082091805109268227592492896343413850690581767847490683477967786745952805961345618373992005107104959544783322357843337052569773554701944377778729449230896162963826054446323191825859645612244785012495536353250415438473395053123604293592914214902516411181796729195559565027741376792582169365158121225367398210192866540185421443460676000064879981962978053991561424366551511925848977028734006468039804231279800794051339478548465121177457576412220533316531012034440584376753336275220880386784623998354253774442970064669307725714799205508762621915266260436432080816152103398891254803258066926006264972393788405285127553712064607401678005456851435755720085617304883650537700559492906202592594401658906502055376785735983742732529094380586451477078153851512454691820071420047001853674902585187918487307273676865087415811697130146798984101291235517150649926626121670653202342550928667948517147896415128726643441361090413931296702766685630441400335158869225787248655012961613096921133078858631305236657843174681501101691894751716569628007261602962396584116447937589860458752673951467793689653650633507246759653993207458903430146110837842508108637958084602163399590047815014703734695111732945572545087543933593737461164409782494268298333579479684452442525421267478748571958317107013142560658557319695197342928100233327120661098240731002916807020954675342004281588688712909311321243532680151291204354458134447118519548010349790865979460819889243084216543291349464357791737567890686168443305795509453313176973885124243815572008714954251789454334668924883556305673274344989235713849498327061998997853809086882100949387726951801672932802747561123242717933745468922791379099669291052003840154996218353932686506133907677188215387038296936586716462263993128054912776098660993943009277234081008908658642867141450603465360142186927034950561616949961786208193679364105995401059966658739138233660875344905322920305712769132641261592634553837385309017033877348829387762048697727458311398057324457118570047783652213790978183666128616644888916303507961230441875633033155670935789344406972614475981710845759007887855858082248929843498342087290301767180092386539958933192362533581979537687158152559835289798531289978573433756076088817567038208092510403474277652107840277930511911382976116845588020209656386040873522156951847196349742013341679035589548282782189246185548968969261193062422396504909650636347418746261712798696718506754268678803440392622578567239309131354710423338893113790697398824480437494799434485907682947243158103822761980858158587764538185476860167138472866088124783335314368604202145140926299623132136234556106602020805701689636001192019333683909760420612136564684534444159654258869925383855193886410784139285465358638688818365802569460270543664449938666918510487032865256846986710125336457761366460443712992520266493068720826374541442036631012147914634793081079022204373081894435258304575150620736376619231534214949875981762933659586316748936596191269296587121252947269201438853241334880875353443175703264241708640408462387306025054362653490071929968720619538268097090255377231540881447992513590326082331117737548290108820171080432120224959784918987920535457653327254210244426107641394316287634211724167587151827700507635071076379264707700703970920859286495563944815302766138763314734443732732198323238208740284601894762460526855872434828983013667869549519352613176031485246639277067234575347154667853971044321654692146504876033104598237336480813784807118968402425554212627259910602181782945057842613148445500588453314154984150820025763126024112082798371921173232000710686258937194108415612298741431613008415334616168316721675948467359277692730221819357811917479904434838714249845938478235964469542613888998124240627477564716434520018414606765653743281293931952446261574754353279209465199078071202785585810352193345690193933853523628114601327346923727065201824014298048098542249945597779138982405736869408305559407079276764289191236192583913981741263800052444438063934500311915422770824092837456658758860704324067752661755268669861486615996875684051739429946132108658071287405628071453273876280098356465114187757670063144562614172671911728617552614774590426928938360992568900518825964601634215663410378494911811756671277657107173732256044071035044895442564399225277654824544628974697020022527315619646503674645563900055638883450750302429129384325740777361950198225795576647367608096803024187522526103400974424534278909365804980572833886809106926153677274146712164149377781401799402555050794171845850977982778467161536870335468394098683736737216528130095028939179333387578567558459773784202390846358445978859834880437120297703804494696043808064985170743658681711930079519280234045777780749858368370405774701673134629703575917122066160930316955064794261763549578205766399297798992572007334804622535708827931929103832621182860248039072230291970663584195970292004771929572377579733761509529385878018922212172419275550683392613130188099109444147999930687712260378103587554126601298417596347408692354153800412444064124292300706090474823801071832688325056732604286924604768873592854883079148359983495515734216533110666738911852988672257890083123860739345365860145402292323950099931552287304777821733301025595437911871201240485376557760541862975022686087635646432559729478918844684448698637257803542173404632217568913520633258511306299703499762262917875630367642609656508055624215750725500394554648317062447444330450822117756686183294641098118423860913973223942004530229503031226814894812780150248425641683172413341944999600186800646278403790935659440432057284297591024745093156543321652721199862748766239526099309572291310432500395121602640489394900122918466639751300994879381452607863062998593276268437576807829849980345205456798116864228525888080081514286860180911843752277084788203674841089569602043570520014520145651291301182577285504108375186190536942094697072858000971198896788673544143354135066973820456269527152474167721203635363841771640409787372209938498851869646101424219111697122389756557162200725226454387547782176892669017646062503412645391573562999107821277824993561945708254472733534635567913006232664934134660818494006571476308068898876132277772986377697950563410841122196633742996743065328919661674953547010109247359734951279388552664315861018186048850342803998740037967275582079316778768868262349728371219301725266770796851337283047651854016781730684705352700452889325419076869122410102176723168409226067658365756484554091078415678101273382224249030801914473307420348168117881893866615855767353638052062683007777025665733598252404152674663379234232567343454879313809284050626098155824764251787307399360572350418833106552192427703150725131673994219352790796268428896369081319332372343102511068164016643451532437007686727268738233179206711034668694061970518260171438117258623685365566123000692709938688479308936295258499717777515786871786273361598051663488856660153715988793345517415852005155657778829477839272679091588812298127525535174351560939160531414339734534264970367434608483121336477705513252253486900598401391668062690331281510707853320224958168488173545232514793482794353475631230506245519734669596105576031468885953284435136508299263932293504171786245903988798794957762223645271723352405114464224327932733761913153872234707870062002660469760679324738286110462388334843654781546853457417613298630632758371228715606969467758888071350998936549803481589681704429773736250364065071744135666777768165208559949700974865983510297582801836523556272534828477397976319549122621181447722488691141380812748960438750662133184117280582035002354190898369496855925985163536088645563162694595498676802254167638892938020741714161027729567868928202007306293099674266655086055114486629997815152102038495573888778068864534226373233290576642882571618721465942225279209371628462731913722025193462564806423921352252457818517581038031589157550568859632948490803630508711957653594166493012220973598751967984936491077931955260436323709945474449469587942059356874561652122020114438802911635354306351748198877950834907626243555004365067128338815100255536001740531721981465419773912352470454442103707106292583827889764335467016566198932745817240292001823929422233700146941926830296178312170537937621943662180454602893246673732595563406815199353300323088527593875908638402912989645368338435770770063981300819089346112902356744047880224413279470961868292973055719294315698422533345216172848785095130958191504796865487870737428455107406536059260477733845709143126358410767689762955693946364120538220034307024603725750242708006787048560359399008776112357574541898872411233353128332494829567559655560317762474717017412950704655788462846332479011220607606202043271582662768398621539350903363872553869181035797041954272228040352536503546239981887002659243508007865566783353265800960037832074416179438701199761192401207279864345467403983487834197184051061446478555068872219885580372266732050701746380792003849328520577336995787802322422899957825485048746367890754884157805651245727412075715200966849496014583544913697104249109583728913763595400001416863225632036971862597038983653686289144770349529195229140341202756450356788452585723739628942437804791775456195638915977802990252678790022891965983125471234701394045636741215994046147057439614613268326443362990795287617636042976302171894548919289339669989846115776217694175398956585201081317438528448164423397186670988172483222662035789410804513668409593716786694332827543732386860602835087599747420612491535695686865692091240476963573383099392129108103691841140628896465721196502816641078276940458200550523676276668898345672927935710872062183326515950838213089660193071911216360583334295540505590226587806295976851361951100824197342474663302667400121115579605886207586843642419821241287969266506934967524891388127753056020245842477739645287691173026583180971301669495353310659699092100270491363911949536098407810254712953812156654166965656650301241317484227379651242194706375852614759388288888314292178304994936673354440251676097627052418441903942756923264694739128237640208402736821934058387377689839905669691262622387888069106707513942776984104615950840145321503115060122809114815815350941811033899964141789418517306470433761913676645969358888699702636956955113429042973335872498012697011461452043188090885243073680528756022061055013226381266499312660816348713930408850265721122757491909869609872182348061664378916420788024829406969229634165649094650585590173030268061450283295393721585724657119572925386669052012188915813865994299019273742867943488971030311308076828284234720083666436379081157812504584280741147489750609864049263641368708078826858008455849121948021773594297490852153783850055974227045847679052568785434216899337614570446519033452820751178587724854011357474251298173400782790997030662360192154865811397509139947082255375596185965547076843786943585151574904295348014984727175218982978618249497062612714879290198156421106931886355210054427586116958096635175690487172698819490768458982893543328253661615440563942559874053605915874943182997886753667736456963017555002392649935772997040162823511503619833795053738767593761600246983491983796489319239488557441388088242781338393425265992902842124177387139816575415224633461003160832408201621507898525315747364061932146355158855631464801089656734514730686565322108706021459630785270750134706360819162292365890858778924741681872579421603396629348852070300668847932358259785580093079662872636985093521141155497793050602215710565274673500420308373741283870615611300921331005180057633591395156192855086582155794519884024536699685050196248513915027879932616736954863968659540587728307050585346462352291893784285317361579657459650085661731104670147509246539622850938366228917787876655173665345244062536771579419295377500088162576959029217628120318488120791706940685680114464664677980062909280692579459499700760392893049673915571776300884623766092506217095170931414856751817784697739235123890250643697995432029198930665072368017671807072078143078288599608640482532903295289172022991417538009253744695721080023054126160158141889661967355463360737205765652711290910011074447040222715840618209453199151542997295386052254083662464856898952202046778171416155550808255451263174354211628646407792442134397873887423088527533609661872522706472067624046939523928619900683098906338917003964923619224545093259471595886886502842048706444773775274718906335949389476012441202903821531187823858246917635424997805577638223718418413614538271889837588952365728336548891978890954398185613054164614441115301720259479585934038013485114580299234566894050486312371672505302352196993758557935927017753522462706179162878462840905138351863655746953574403281084016422455487514046469148849461407345976926986627928596991400971201853131080787578151949872649288658546085287238925353204177840964320534258896333177257536662788617423267860533303827079625456766153781484746024668036643186675649706269494076539894080291637637792085168473155790446603640219179192782322555733976034568830595913991339255053231674817798743995370182280543354199530789550026846524962894111031651605634196870063415111175646991022064328955717276800632030323923162183397835388357997759771282667087568380254718151585086943569830909217254443975263408202985658071882742476753936922379220575483297192862618891826634209916642459534994900544674486022082453677815940829415443751620466415290518608107121276757587417262618906165999945919442588330982894889138730617175843365852430374256117829750018305660886900981867226307033529432872546594450412854418002530401286910956741197366624743724770384738659595751099240817874450518327827398181130298614434926937858548046540024995806689851290249911967158504236790507685255871163004725495991255942260433874253782174751174046128610786380467298859900174893258256521933953445961421841673778693857328665777629199699782747880378639773816316886794775507805294719322592464372925691877288263497615459627524924130218917748698352491633614942697925543253783643520844505428564289205499272584804940958331822523382415757202983480653143866171192187187233759126790609488194338260866243515033025293870866678307463629912988991383471307455537476195011230798353061937569851876682847028019671916606189198475084200283985030173452950065846012928272763580689875329006566298173637607791104652156046575832336466657633385532899636065851117461273069672176643269564051292724789405815970987489426042293059858782275715530782022765882162462708011166559588226412278897941155127536208205087145788630237659559492206134238762455385976377338534910449154525829599561508624105473985794103416513885949186212387181601576060717334445554147662552903897519087361367004331309772772116686288490454255764569100176253403825717513085142348747025630728872726453146002048325801194015116387939956006126075676928993070831412310788461585058260494661458821227643294153761121588995375729993628678844071031365131281447853648454274651715969085959890077353713742482854350129591712255268493850921533208993130536625107909837836891571140447549935669504413102835682933049503053322096358102354301296445822142213458452477228822529957688401583288452376826708074218938030278303887087872286236600367852038415175432180321683796019248996378456517244062479279165379806373558669158674517659925570408621796924018694879244290346745708899633653967345448242422137000362829866870433935669539843257179598545465131464447174640243681946214952890788861648419756247208061933247693790481006972163395379755547606447938595607593712909578263507575322354698019366380834267574010954904844261849480339942014749253180608182034991095258019337239407240068764723539018713738072603016057346531542980864116026529119139283440842534794559897397810984760346787164153187495238434997707826259398805449886674420290212374615798329235499960722674340461007135063914598701515372899415467244907091207436435940744917694483429539182893081282883430324508222538378649770789737093205950780428008549117437604611074299122750580874222999726566714710231739495863344710861981019088843196685256710854445148395773231902280411054915523030648894614405173832258243741307739553394498854378758216507298299364933074361818348061637359370033707821155454865117308306001311448300604389732169076403720778588715703584530472394806471883544655850153163549517933929275284025364439592876676537400295238254424472644458284574919563468555539572217167155544930543418812643626497872257785712334870420074368406639198146663574925882137357984901633016551785689038749507525249086801741776471819691776061899789329816559535952277422320988509474775870847109237527035528728706813217392730136196406830334526982093843139023343942642919791096432237937429346394041443270099944111966933802008483308734539403335573555661260004930382256173461924911513740204168676006171066741237480865092882583953354709840174344577745617855710259333087548653138954328538661532907206345476699220644033531248747981415676986397776506660219515701288807670954777923733715427371480147063906797833388842484011078626759437225635297999861415126430626182783315523259695547343825253090742026320114989171686209448091133109582588929874749038619029946038003601337842452573974941533062460675830190062650368087867321214613126767931391927672243992418970455221227147408844654264089154289969051975760033341233874810332286408627766385266453651808635570599484909851688574556523712893051930733617068268516222499968249431890373449166067369083907082299582343926154023543151166807509489799844666729505593757563031953112867896881127486775419934379860130937966802409674984267913509070309835301123347216131420872577071801117599498670149249969926054934490938201991665296844061845810521824171763697230335978109501544596262514051386898282380441013862091942132640913966999790417362392614833322960492891215673028789101803831563841911601125896658988771126223743683391404530941406340775925086997081581158824028024438130695913714545285962987464858899490987065365600264968312272306495686528889828633680830179152036685470813318019386885399225383373853789630887057816550199065323420120098928073164293128104455792604334571779852487511421164070646387009666497889375313729907929462354168065658604504441033481762719657460929009644789611591666711703112244340907504820481778178165034661112734727209822930166316234591911981621789635131571488347552382731661805229827093712678316614786821093317124544074659280989325599957062979514004831697488782874639994949947532249712707738654678164720186289501223395124540375605992645009571598195642444341781126895598796731620649034845460302244190980358013667743622830696627170403523658856908623018728245526972814095700958878737999651974349035179441164860345720774625843957014122804006733968435595574199970908385904818368775442983935634909784650207705364507553370148577619520606373093871814089284945214643956928931964187018737023625580904790246119766316294551986667331834437130745622655276456846996358737728783887069954062096992939015250719589769045064626515199692533342505751856430852202376042743325876664800405206213126134715478035404857280393035781387419097604005889521345329457639071193803844122249516895714788562636945457927370433148750474488389312723283270111815377733068493618997696235944847659544171336991236959184602347782655871128239193481843566331313537854470605904955117547437795456895608882715099049622168837536504149968942439624406909791103274686347428798818698437395845144750296010075706207114036771455770074321446148013317225276111922328939105047714165692058715238398590889512833728389484450596779565963554250299536859199120245274963712834562134488188591469499525934934805855304520425492731061507978849605805121519921890752647455324012798692051875503486417446499571611545626879476352743141520274448074596152975886945743062449732937280353190167698296206247088281811884526220648386024098813783132203893319255590100059104535640829654150728202480154284593779552373129056873723373111755971715479417270770964523300810916225992304886324832730122328605312248839129641224160587375376506014983886512421082210476256788352680263884510418099086030003161616013209442442928355220699392156656305172135482005425901311425526973747163283771303630641749022204689858306040109157464114099564366951565440527817204159413468403585443782653613351303500970112811481724267033216271439828695673680122759078345037173134473408601986386359204874862921649324193153189719317446076438823652554661019925059954978573934001389848015094138059156330575783886774258782409727091648614153715525659981743070542355247471432788153249221316572921353668707261790734111326682925634410441717189927415036316894422323940685923165124780383191060877247147311476643208451642382072636903936993659533946911074710364009598100448913259742331682467721509824843599787332914630300525358861188172144456344988075580498035403064111847462192772359765811919319197346798345089504091527838886456866301763492860156522015834977560956848146790970611605549149473769550892215116877830469608474992809146806319738983792398514015981051899381720505565956131837342219898163060144232208799979999065421629147657426077421453012141060315251024890910366707623490566154275410297881806339488063132850637803168199128215319153874705094984839690069548744109556462361042798204521199970123130552768608322488689632113939824871169131724750100255671745488356345056056490886242949835630413594172961038320194493085287495078626915801747116406417127625000099235461970277434163462220033630756710974039186116567716102075758765428254110375677483332509415304355404925245906313463532810348563650863317449396258150565418847787321104608221121147005357175269217478970334308536673829389090568813750797971935391494843504259994973728572440488088931315190210065801124018103259254507552190121841074653233859273326231317749437593544675672500224778968249433664731095347244998401087633523634380363743248194272554838951986513938428706810664043187246390730826960010975192249817200502872381074613279826497835921937229163237970342279240147299371093822657553509489001510801338860607431305576709840271701174915755021950780767574914028427084142519331377662111209591784993189756239863381132963902352236067390680189085664856586203705175815587608772754830762532576861491231834652907526778951005563393448473686129067118375434561751966556976138968244719622716191767364860077784045555403678809746991695940980811722899105295566135310440132965955954835960497717067213296849169434047309060130324867822366950421831951701057494999571522633236420889316382301397078283975826534642329661820277909235747795427860639864065310700486315807412551743613302979023922160350990225434008724989657228687912300859122329318932392207947233546747090307497724387871439781168113468573426270539954180912836437261849696934707544234328661412960146583243559855468843519859951844448221089672565795706531460053358734394851649907637969920917583125317083284966840959907438496055039644682928320087376980558353510967195130937734223410011822202499370171111238042060738143429546791905113655033926991900364567125007325251401463164805292746119927747299709418331045027980148190471833947743881184038650767920651294582952033685655611328441329150731230870460890975686511655887757350344007172939844350694472973818776243545888591866857325475122884016546956269964262888852588260655679713295141593651405241899838277074930195512434403691306522017303844963100148127799335854651587839605504921625383377946577094390029759012927582052679408273999136034340888169519397378595760918789674306474081252790997622242158279972586999453841491698254122205165106385442584628203935709444937820272500335735420192363803494514938755112112078194092253086575355970399085245209081145361729148008801902053736021888616587811430677156834670188840499345624359807576324790494063097936758202773487102494130885539017027282598835085700783460298609174173132880598468512477716314716400156134479261582157413804097974316982439882058656778172368661262017324572680201173412268266152115477142536936907918494747359604823909248064461924973700896678426896243766008543636319542423641136901848035956938458886114499501210224578819317039366074608357677461998287910069809765883291143485955530990777136618004779688069462724157910441551632476211918193210931202218393639894584799369996145462509630168134011798597528522666278677692002102865227718873506488017482890737426631304164383886148641536855053107852008002743438170983949580627064543889627150247316893509157726763050132458602558901009890531356219411530425062424545206773265671808783355289125246344619084169517932837558024367764992942512738052560329612861041341602290522540865351689245109532705391707827191900828602354221853268132390285343500360946138875183855228089576132847944505727929984586645726692564757887371443900348805066177874012856840624506980706188691158736386534164845986481325429630204876464680478823775638082979029382863753249011910895565160051399765712768912120745793103657917113506413793007102471321413914497389950574817616179033163999353260109807996881797581981395420570131611860316403141357333739105099385499071140412849379375514829100242745540005767167834660573583548513300058881323496082372475115307119359071740469000149122701611128025787914688749961751122675417487895700621680441760062430210967394174315919177191603094267752228616054895562627941596715647023050730824118249802694901993238629766344859638283482896272019670948325542743594184317356855188274536164337644740636094275602214647890523611818847787089450950182139013391122500241584499780879787046849320059380402959434573860143424782989705135702546490596110180236583494345626151751239679860974766562939865407914401614729237321576242791817575199871201189182008388816687816959072893790109806848384229737167010236051578502292366062766694675272471396338089408095643825079601880697928107965065651749255928066484472796981235887850931083150373210700312420337517725690590428775120027244112724220330196886122921743082979663562239883792870989256031143518084708933675694960949634001849297883058772549743290859974903876751982527798945443319541436734031535414876270300094543047836885963720204285728110950382784920759464823432598501433867258983971605099028868607961529929223945041613883871700184246193176717067146809331711077876947508786929209390252192998272511888413903686068312893287368004533763519882173348333238299988012957061275353537690782300722299776890125832918524403113851041548795808132678207899045043989364269849366828420676272267087799407716378347833379768008866806192786828843781243912586812567897147837930723278661745690184362757369335597245062114336147893972612070078321776927011138085256213143641151277034009886304362745354725055379689272858695951570667735902749742060217536919487016176626738790658390471275916164563435412018236148129801024753249915997237073172978946154036211061769936978439837972706582018115795272616197159525470024014140450628782993269943610663662162674850129721941243973270075128496821571917394919819226375444141715976399844793278086819477398340259185127526533168557225009530151431568393387002555662942809454244069836337741623220788871802709815876709772451758131262417842662419201163868276584158945049788811691183194883747484487442094755262293065302394323053426223407322228664177581453373488854067557771738218198665524413379673055290562511967382060209113355078099660376546649067405490968814595157810204305751810464476254474653122896089956424266294962338015590992723669284827948626180311597682583207886202269940637184172980138653218617839551988323321924565768470004641465590260545379381703028558027219760015203136772526312321716136606671132564982919127223875567576188447377992142883112038070211085413301618755129964064436764196554230361094984820600880108099533968356545012880146297527455289838785535792844201097860880501895942909862457859378384519341103085740109588370947005718711748416856608519519368858496999450350806187851501292455799651393085924405424755983428621267595720018326840716245424717123015249015603654402525780890958272447696469178913040047047693750770209489966097968048492258524234771506591745744040504126939405316204488877877804551023015268638024280029853899893078004424849857134443092948464708088444187531566616363616994728086279486261834136680215220913900788787980969777644689504337684388607627354884427026330738797272574936912290980327347138301982350779845385363043634206212674992138696454169105878875699946509010288867032680808548009392239882732008053830997866816156763865915802067851165705045608966204330621210344960010721499466527754661870472317328850939600437131787473694537092024143211116789749864185249025396143249890699433563700480868827829340476368516356670549194873223895582902280580854673932265694123498987815017355187871638261133644233626234896770732863261493790505698234485634262670879800273992325527855768367207018339724085673180598125295429651899829099747630662956632531920836283044657997855476513141934003454886838697298352180075339459951827575586164208241119523013565068830173130086877097435196431960521567516515540410439389441035309570868854387604035695293466543091802046201553630293116565444549209243413327633488246349975946421261253653692917331460411244462799289713024346485504666533212800679610030310845533107696222271893707246975480729467966839209883870162985876667525130860170695750775142831419965058223444068489424264009260470793757596138221581734757727029066848548431837340888254096202765385359804463008172903653993815214654882740972234463609742821638287360667902293192299123237651959478322639279112069186508892899736583369100659310713692444334059362216033444180696657557474330298345990929644194434475132090451711950474495831125894995002287498464621391195860091234241518127327350579906767219098162725601658140053941059615009443247754686415905890491447324494351920986320048952162053593027156262983234073225490906379843920163958999066149055901395747223958097054517042047307528155418656091390157350301960452372892369548970884289283449689681245597772602697917010067812065712660073171035238807354779258089339137392308867644855101818265547380607434158105301126502701044403977673157232040829845440217954919178478735322708875234849159647271589400016001399547757924879035117156797117767288060782141497490530422548451386758938715478862950759733631069133832488709965939751890006798210785790869586881927542103934011261495261455731196854030040915991181795820058832620005264234679750901745586709936325329493817628987001731244026294157976234793155213634897751339592700135243313439701348657730258719050840445781587716704007413144650627536009043401784651965788381908588405008381383457750652583033154786987749429672068595152205409552369610793593718847479710765734928348974669790531426996319093262291150628832369148327263723604595952500902179960845727522338051973366308452298540020446830515357688115666833075674965590504737660460683027666817142759598966591249759144996818867710489394989801798335667410790861842237643630361134147036981625576579940120135433372436460188947930609207929424339023646139285824707278626063304687280086158117166173119637774053691504306062613428620054549347257308258337634480003762606738296860211477665410982251259159612686360457952452778254201469433988055257628839674638283721251409653160776347138598034860012622354041533552894967769730742179523199870033188217009074474826114952068896041118085358446713880884209048309269954978485047036453938741906875620260657680892692514563415996135438764809425796743054851679659449642409262805813008011389821028651327339895529757952879372606230654788354949591784189942446692377569097186164353163961177914476200539808818523402264731201051870058894993077005905667727406209625775163449158260463013648493636282683210134499462265428044908130114659834246724183863637297538068303129755880274899519762721302051289421397669136546142105997237610255492121889888237743630126724137296064819913548790332310422236946618862208562254009695811750986590921625422976467339889480243014528762914620934409998392866174931484553672256381523608371582126454934178173791555820116771371711194216193489725794064922626635221988963218274264769744770874639903293726669498744464181678878301567792627087906955609443900225506984441203384262622083438183932665637219837699485147583327445908818247724017882140223734511502606028507618545336570332513974107955376352189052475373888287826926860604461219202572564610228530298443666986763449355673864890777068425700937945762864968992718937835116321250822771716505814153386816376937024390150460775034202710582098266584394571235661410280377219250546483779780701668371248680823040517352688274669696337401950680910839192114405039668998678243758543433293438576967082461162322459320543506415271822049905696374362119941362113865795243236592192214653916510883073549987387753306282824865471496535060628874669832990769713465251325688969368614481469724516699271705725552765281041288409747258354471937127728432299979660398581373462941413750399684768363527637715306087242962440709487560318673133301572113387528782162313305817524358583947806976632655375257002128919087606218990696731283786038710467477499269572973211475509194128973403823510676777431306479924055867302052408209773444815900878586479098171855086386739940611598808034251149047045091275251404979035399038363329962379741834819942922764815174297173453844237437251066012490728983423609683459054034945134476223401682442024308117337567992755112008784543386017517795841891875052540857494815040408919807208307166122575493544276514539992456594352733070906532811803343408141986471158337669659558775484105223176079860411574121884089481824174015376666892878978970564304806054974423174450582674123952820448644097863128865060126675231307901270932645218485461330026843751487741397506878832011495620250557068104144176171867464006325667241611333422127932750775431674856315395858050357441708157383405964724963201638707100467152882513785098925214792043785427170851242335139467485830033113351674263004989151120781961259687874949228240217329300232156581268352989680202378372768713100642528205684072713402496513482296458109434114379852509707789347146176134054884829536599934869277997350281238120198567056924115367955328653294492287664662600759757219014524471685120443573965852908212537155709902521273505150476041442954660906698764088888093793434994648481358715800160067152581625417433218502209591403505340201326128729363680096136768357341550832121503208494098770890931389230402496189042016269953507726924467727720527395677602831050279292635724733261597440219878112667422514908115947293989790411965852586955139134139222510779710704440029161872003242310390842632323757913418167809892896348777858703146042759366540078588318183958324605702129314317120835895576910948494984886786751170383839309131677835646388033749199277989903868315113805354713184053982540621034828027462019840216199370043133549312723651958010045088490267908003499338410740321391417948257476065780079585449255134648519410842638717529513859386855700898424567874779295243033872139194051620946235075325697167203906009916797841873028299703164221792613565489096608975071332233820568704205498786208456795118290570362381394679876384459797814707760829154737627775044526624925696178437834104566919503519084361707365427826317527050848777538290100596297695985716401724910482282950153421952405848458464009393716523653126755491788487369030695538280142879390896598806390105363661437812369622462714837982019204631911347386844083605780726114668304635490794840980909391979936567681258872778535930902975946996130504156240900585708486459266426866523400368788153908122714923913087714260754577670711981180866044967222285742365410477036997803284780668253291847696498432793393092445277793240873571247084265875566870242898280383361027497016462404610026585451342420385940905746247009848400229896184417758870845771661429558606750533569334607927373501151187855891911136128527038932859120395710351007529172980987187199257222559783346408937922480305287059936127978003612448359231201602573373717164251359165228064561491399243038394326669985104301919855795869206309069646386780129795518861453087467807619833791521253388949522315404907136000444273817448298487514796033082813254588955005452483759942768694299271321627580974693518376193075056442236482733256608707587398103273796087099761498053284058931132986013406473244485244191596866631438647560935960266377572520411198190230936211308129108155109020869534241695407974801231557847847960848416570160285697690871399272185230663335663431978131240943484463700553180962695049424571358132194949085638282348798098445549486278195642144094255404381006387146190388051201774251941099804192241038421483167501631209170847280421858482045068447373207588368968527758561409437396059344056303237379611405295308210984345924378210785881669436644074474125882453089023275505281917422246695536719750218909346949502660405815890644898391502246894104168511349297160578976512642501427588353886880097619763227695849258277159236319714297029380028493243308670408449547829720982752278378794520721624773503013379004846352741902424917482341112097136223544559266547466960675542765899581509350125863735449745469405726470742338652044612504513798262637682454009462609118519397976594036450348826480076758129524915782671488408169407197350649395011343108990466560111382312081436562988686788493116444700130389084980936320416932913480458798494998044687937638663956163521998699712623311612995506100446569314062077527701233433955322962132150472754794272382251681703873532842725514306030226483404782567904757164871127608055735173207774450818217850345908619925070623252927529446204933260695555487021437800347082130302306762686367979780900918966297083181461503533790385646163457958863524293581634333074098774965760310772919302538853864335797430131362121070597052664282061123648990809368867459834446511085112704805769172388366542184429609891859205206711989970526804960123038646927737774973078339025432906321062597780181070008064496548739956837595281814968991198022067655422257948291981487348131377632615387268520174734304004035767350311195401393509297421706853358059247780304855563239357501307899400391776417861855667448337890565236128034083451099334865111748368147532612180201523917027220388078447763651436092366339164687521503675771913636182408851752208944532874652900117384122964459416328878439582408363482282846792443892223929466584058994853788867011776784504260394424500151132776786792052077701893343343014319845138708921097351414047851431508902185110378286232574521709811734494934503968310606864928424390928685069936252170104072714631941207621812007534328074387375234506425414147760769305321149654958364332090512637895917839184646708641994576129069672571456051947710615948459164576775618810674613233578261231189882278396062021198922105134841056128893000346276006506455773610287110360427465396787455145928952848823808725692246594930629300876659520547709607179464432334790455695565577329049057110478784264442468115106945214195123274367222219230310970554481104355572949105682351408700971178508006269508179920595291128953654081846068102584451094670134814115365063241338956383582754759095617336830261314319403473156436815726562626475246108010569274605361857655047503816096197897613719835406078382195040784536544545105124916901441117256779914532175069316119803458126740414723426325577982158291934692452939716244499047386872770536104189718033313003476334842249322853545580999251340346885062409358655960504332905957001533831963463188996492049344375005746314211968573043421795835789834299448201313061670834582622926999814544046005357365076497980177424372158452349885476415999363958656892989690486346129946890293810914769983221728342795537267236398303773881020755284825730733608729892219956799366628812204693434038801869212688496834034582776909181203634477705009844529368235876176613620510355237062046153123607633307666089142584339716883073579677706532675110638509334561227968282627897321582988877016861060838991388548291768697139438156783285046691478616656852256794267029217425831825584459177973233079422708943929669164273153174197821777155182858758540946009876395873063999695804287031114350082269103318520495650611591185451397182451914769715966756896684113280620306408233851607488070645810502652778696193640454497419829991162941459758619834418536734376309012508155408000972179716915838941642987342289142547576182960474043095075510428035639854350800706790876866861151981673138363234671880910908319943439376413155529498117471880207469370865755692313637682736186012147743146067146956630695587167518447366549630836291587172103010688175126026743851661623359435628162960868030486568528012825652018952432166980669395857873403700512615423997142965747678828825863158684624328809677341243534423511454474284463084371007165769909802387089859720665372150550105440994396431131089310107020922112436896313383005650617643733960422815609780924835372871732230539949190535819794289044644683411062101547505331322568999486283815926008578783539950864889395402883016152180468611482214715395972873165826517945962397199319754555430978554864142709396939908424786623416493015329194597274224275241732029847004496097802416818839611315187893869229728482854480541937679539523235602116596886660689439598116075655983650184404237920154518738936543684315929333945641218389692040100016861865924019524239550678917326911507780641658955470959010768369780176879549265173903797047695155420986047120610067527803517004203076331087695598665334923921571706440039201804096654978239608549229970404306132732732624957046100039294139480242990086881174057941749238501334769855015219930346288891695668204978206723686532067055975536538383575680308168964063560139255484129882672664545356203804079822418845372944771556691788934062846955020842543933472071437353795897092244113345821655369342434258585632349465911499090430886004726805797020295206079944844242061936116271385047499719549439134660866911971046314934479743029445745800219984600767294962392930439937947776650452538402827294381296374907937315988040379299352987201632640286041503301101395641570474434150308376105129369600029367310368504115911237028312752718603268538291298607436570985677933781661580337678567018703177136542508289009643832447912039220584332817384571258053122478098620611797905134926252552597032933949961305756438974429013930110703081499859484178467071951844281756874510501308405720080294041280288588659168760540649141722938417646364081453032917005162616035523941611353080517636617072073871030474741301976912644078326765154241634652511337306947660819411859859974857515023820690992684511810125130680844714929748835602536388032045651881853362600238883086810258399959561744329753956143553065799731518445440435600944666016811704606948779456580322870630751578109270588301430520379565426235152624606355987770132123442730734567201812055271679316589433505813217449528569071136292620453888923741828353094568618542420759491699001061289827558536205720016249551523257086246887811919852964951067384707068813517739999822947901873668192485657109786415764178131823079112696937135950898187311979359123089765562433510536778408448553816770391271427992661342911182979474988193334500171134982798780143603540008979046232267149125585165505417604828283865360430800986204359364333273332403895485304992170265735534805087649219394652646702840194556293485081511080933846471534215302160914349352827870054507914894949428674103817191972061002266850129999953068698425046595463849741560630931783722959971160043060262349266570630678343885130915670591809011766352732441224101350516961725601420635221070132808248275538451973542598693112150885227927793579930314485487028793065622159685072661431456562704784973689186330352226602862610349422342148254601292893217633661329204117576905394506389485552858845322537036415307975254395498363206971532606493384997130694419347517233211521775494674982257819120739727089382999971483252714465948967811079978258880560509304322135977051336637090104885937151353503274511896537010699519178989426508677994076113030683375215501063186431350165010164619680996967280779279286261445934364772888218166805767831188116307764131256990152447551886488867586453656639231766670289135560108875519408412877853112003535558035692103496866682449964752836679210396126593262072658948819301473431715444481611460290572084393603246932778330253079487454673392357547087559510881260824047659113929981452918789285382218435026912732196131863148202967043358944820922711125391766441241502053211568941547818693939627565374408485161889217445740102042685096429203016904606248126804297394284912329364498906673199508760490599074797618952553073801987028660510029190831703254657779306905167065772901844475133208340222150843296812960094553171403821088632214837290719774079234413257146249633497441468622775989483211974590547543520499869524875354262352045799266473087895089881130365248787606931784342502879832214016921375735922626363320436682660260873326423632030952437785684420581054866388499951947431791433731666154185740475367264900667290866782139139827417006675335998137572798833177263888748287938349259761447737415985033618816308172077007465651850557697946769745021220262164410293717316317768044235096255445149582965410900273225821772984347366721768303266393775119631864605741131789882148915002104945191865448086915847055462022011827801315447033705107062590128051692834471604154855269962132563539683678811088500966999089462048811718500856195802500050729389928380920749999395582153153277036899224446714967590456475242338694459268469963893853750041174824000837744235737099739711643937741295799493304763194577445279740219062579896264404419823506663338425718358070441896311529416674471451801435545616669921534620636723683785417199355335409913064178259078780870498162550805859138025943532573355408797923072399062969193893945704135593902760851642565471119715140718706270619663005600903747196086969423377964530234619675702525102335292017927754854304787595051751883448804419676812763014569208705835833945797197388495819958790413895353192802146022810859505114785415430164635769885926933958602753608214551400403044242714588004457915649227532247290928356502474598639371703619443895875287824555391707675676499898932535378051564512197212086902149533438781782196847486413107861128508574477676135415980420976495614296944829752900004699482991958170911254128196592220632835373023880771342316826686452425337215968412127203427316239152546270631380524626651965538963940703427602517745121606933889742326858374030919906954236691677630531319563176023192881076618949894610638846641636760991615280490457782599119188477802203325802825800007367382526249197381655820998480618831196255395834796950912151964992641381890252389190236846912484475243382792690517810349776743473275480775308687798419842021807075511564550155971780393879766663547126684135992490995301641387960530255779032742373776519193895936638047998068737303964482091194211391343612784855903679222543542694599214410839441978431834480171677673432750871084481427172478740836859138499027002538135866124874634795987913896821480272776924754434524519357609547135605725078694908356007140623078438459761859349177213306617709683636141666347038289009864858352783650118950916859128243044285392095505677856527910021384861779239600192170912838809398509115091068251239239918284712594835914320321319887487358774889413922022796141153471637782643368496338757505455058873991826336097342600580389187809380075930219794040398716867312002286641043428734579252892368151246588122144365622699568252134975102690702865975481561177822167644308732881042433049517715782164599559743012712984453383350179726038942579853268907452135858629530981132921840849769365482468784760475479270723163286896221624869829635311534235701155352185737103943865449951793233263204426910080703772240208279178537546706105995393382325418885069156435874960168048263240083376223667863861298273808100354897686951850467189408220115122486526111869261766687377583608009331710957029259181212917080884634631178971702331730816861995691013893408585619258750109105522726902039627043007237088969410559747421704829817589170105462723800065877225102339433563901045225412064111351754910327386836657194738665383600733227061081672127323369985597483279106318684850675604713220122394912650851099967727021171262186276303213521645550359399195218239517013562349809702253473719971780787274396136057154894306581588032657029684054236043354940754837176129224183801179108103091044195870977313473102238393406640595959763983364094002708731948849501899271779284661017491067531945129983351056366404213702989696393224808944850200672698423873599425019245153370821105418153973914373684760802983658982860399951022912669485037939939429297084241552997885615688748685254181613530278346388535405636770913258898137904812348021712500787889851215076438038618049028877035278068023091544745985886146063218203638349275341579235630283225802300569643970169744239039149805449954990269370571030960410910313544682301438928329807041101092150869985994394063219410672308524343820908805564402077349350917428404602852789584535957963460249102753304468464953751968887378791559585968702528308222458736692359608489882478533698188467328650330108887270491206865043240634875193418720475882708857392292812868067689498155807624521634229415579759012545878352681867095921769643440610401200892204948060184840314196178691361780076000224421214188182930454269715237220767348242825413925673123267054707396998394075793499182119118384213318116014424932578821735749245594595549979995246054183637469260068771690305704762092458344070031511877292880418022577262106344068033795328271340662807502642290933739560577784842326567084369896779844672590806770444230541926035849121094051698269180204077348928774003567179668858965112226416893423865864406003389064342495131926570285373691230967320138622051252632970646229767965238548055865934947592757753534248262082211705034595369424718973108793791005554951971745945549452849309832584088724527891512386146478891617323044190731924015075166896268219427533125701418860426585447139534611797112658188598531295852538493191303630411643230060110114202073059567248874580516407436893265400800099902525596634298739234159008331344920107460696951350387383025765430335701763328834508867893463366533975101073403290217673397740285326306694428448004052476138934579696689936458397308696968140494893833123940420705651434998082407009158361817265443522297081670442151165219199502553579278420540562912362130221219143983455978110847323418611816634176552256841525596887123551394903592271551188752639524388378721357882427432001473912598143228451343785472814649090740336338878757069660638727602089847294653573218049551237370185171861922012363506574456800521321330818983584441531715936580456119217866793882962153716519680930684947047534985509785567195137433915159530370042538281362299758488896285874805072584960985311767317820013069684057365570346776180042551568415449354032924015597844143064291120156573288016955071161051053235299937177378233910206846691235014553779019873373779442025902226447347105794923574584086968286137492423000986117321317055231351649031047177322867563539109024901487570269144724961047465824769046741174205734799966731878647086695971826346849848871315127937387243237119622779720976215533241102060071995908340222600885045136138695312963245827375280736030752332810341129027298741872876149024315374201180394161585328416684535655097918284525302395081939149632413830578558519266256325232446811868686092341785433019849474364022106161699619946386771029617862829176872534791501968358582893282913984983825428032913656953042554573208156303145199896425057080337257449957770441205585360436277854270780194743841522666200579701557953889683607721433531670709026658462990410361153623099892546727373721413725300668654644812266241814607683599585883781674941668180597123808061270232208137703579502234322745036949113483367035952899663484441031825977953078584110889335552787259844514016820291942284853250160945659126614325735595655840137207614309471133143876198646669206961899859503638698977921943685046922834239868592691141503139623312117950646039544912267720866985357576096337747312833025187471888915941157383016640755148589579260240184813062426126571522331721407663666902989931537296241142093231564039815724873755649152720407817083726116360126883182610153660384028953444584980079763521868247538453777948752133561411861280741108653309919241383549207614327206756320231035650876372561724329883600786048283333019848453346818846726553993511864916531815332516625259347094714675763000326306139016320395592454733358659191471519315478138150434960484058796753198179907985743472681042276646716735655642866053227828429614373039214187291878047585580790797175205489206854781167447010174262586511350641386278647939745659053214140090770023723897148970476108745956781177969997976509071648081262690964961348020183678655913493801109829561257640657873349842832103630118686542660351087468268250083723774763079320302252440224543983394572074495085030895386831865758665472013652844112187185337849052499325568378835843595016734653399788156638634002063201863767123080118185806402993992019075845335411165983906520434848031149863244301961076717073209198454957538421484565597914186959729924258871154900754304176531494321560210982783799686891648121227165290393230031534229045772501808637600558140310541161242224851072208739812138809097966562470992769506325728298485796141750155938123504378501343062574580107657243561620348927804042222258234701187431501433504275143074231321515890074464678083844519735374923771806224965414981953891727677249214754212597442634770032065362961900682057304763668099817607660447818885976858752474217081857600312905140786063774928815378780100805469773916518215482115594426163253851219529300510213131492231260821305239630955756207722216462042281346608128365011590436273132261444273746539129334100887672205733385092542419718261236432835581756113067267203698670210676846267075670811999624698596956667772409509751975021199049905908521248081301618359102535648729547137330765528043973926653618383378388680742901685889324642257828856349715292348708467641992591894749286562441222084040890991844125815533552030788413255412237046571173194735446165518717314930273077909900879208080166338000816493671120731796879616848032886754314590327139148906169095768596865412955590617557943426176081874391316587549388016851820796537859940807224347262620524122879667535682890843820560860291899207190259902556071889056411302918011329268486763516376040650871362053761223481288646300905050230991555455020464467955190009893509256437995181755528505769660322842322992409947588197291339098967534077040150538395375930630698980511347484947745832029633310450319377594331798288495908640947328791119130594785823244978320854069530306257966970090139445178492955868201944281268747910500857098406215942820296079055735156577143151092787104756777437225337982542049641158790333676325735273976381205425718856566944986827446801603103313896384500135143299456835130393196007731806603678961811396736705508641919130104712413863114332736235154226087683713956020478813329919898088919482967339113908816648921698809076038071468249130123119778126578357325339886749767725106008172531111479718864563164473219834787691887381520542428102501419835409090484093044323099526055757715577876754419049728188894644502751653602954792162512102246053495595018232144254375638998528627734118281108673870341906770456752037320542402715889995744995669452500547556684866669934616744886000809065967743212829233939517086338228129151970761595155945712673747618065957002637478110290368014757848749494663603287678669190495484705603436679481792357110552929844610210784928471111744837233506833572463883695538281687285122935210670052625701279472654126350468360471549309650447375484113256814061653804420238261812610030508290347016812481007235715410896832829992544383650192012526434955155309853745695898189778665906602166565469887421754426538298986710094469557874646207767638452340882927745697363281153689302188009008940963854992875540352755298121285885261624822014932530404267619459209456423640738455522739982599298501000292151193084483335384898433639881224353577126903536088733003502007597686172080430859955154426753482995974778617523379301702534073528033261562927672532575626714287161712374606141084494428985555803604165408308628323800742533695427531069559348704076372198874196618458793065512408650117584880519972198495870645770451456424526448463243756187551623058092731473081602647300081902298723019429476293564773984889617015367676589128064599553358403768127757806479467087316824189848200691657859909572348702385907110721430161968316960142598116417590998836563980285232997935491455435183350391924070681209656686133862741653582659943806145846446049179780592352153846046946075186031591417958339104974405943361880598460880694198979404327734078712155736449880753230578436128900922304142800178900522203476019508770033331334784345847377623358153851220485280741365128396833588398501763210923393459012806220677646596898941126314182497644974219409125919015374296735572481082567321693147737138624744816960467119516343419449780245581795976233712594286850031819806519935932860133030968906090456441002867830470151578626886734435204073045306522365935870218551714810775610623253624693774816968555328889696898965514022241077708963312919007457542186712448403508741947986682185356901620277887936232058441385628463494004344518406147750078716805452289691250895997005353489394512977013143273648703592335093629448076100302475470474030974583037189185228031382425458378467737821813658557841015177873926064276774754076914977492666775437558459307622756059825542820651158167553161670333764073039573795350263428792623051840100051491258628792726622092908909728975141707717562807935748378595866530329730891779744695281567020392749738714668222709192287689668997925899304600368576247463489040793453136114452580803689065647986515212986973214967800745193510428803429743216015330184784332442217675750224549578398131624133344222834599062776326385349399633667708506529903093158698929532587583453072545401216016512890321464659575910219441096384129454951301910258468612842497082763694536786599087309386771694263782931853320494756165925837589486215884092904156055825421108960375468040759927296583812800999829945067305672809367020368692575374947584906222118022284617927201113489388313264377745850441297152259016445378171908147928200851032026959189140852282717842593557206031563028707292926042841241400298647623964314507738933873182931236958658205634280434156117528414762151457752322783684951315547624592406193484603026212605911182472117504446437196069568653156394993155052291867556790521446903263753458678098492791198728849683645059553722721125593962656625356843681462380530841472930156420813492219719205840824251964616032026429970819936417617259072936591174831015340698320639725569598190689323965825886000207608852363015532743952349533584221278468642538287232607673243782650753882268305185435784344337761194340205488039177157987252535546338465792514122257901880701260838083132486312974659571049806558699566312908687413933381392390740923299409027684885211617438821771791781660874249430304800012059151003250321052219239389114962496446225909720045647946754487060522659290315402821440174561130789199709756244857168019141397671038973338706269059591145921819114711317936570880660584853520030191592162736387993360793818152109547871099596159405986204871131311361583383118933262108830933781148023813212840144346147475346621072956992488266109845171277927236224806042190883223819934067350929727150430753321456677536372009104956766246606228761404954928929140461995634244260347480697967144799593737837001250736796174599707839222172440443200432002317523145598406968326656407477919633256045001545256348688598115068606453739817124532446607792062921395374640366244657255701169123413949002267168036894017616289828872364390177545499311605818390951475012636768588710689816104207316242141037585031696055300486864320025914313456013874248178381399637179600771024482140781813985373122574068030426024755146288258520167973947425466124885227904092143540888331756396800729848159639104734132979067209670570543239340265130581115427317121318650026701971958423443976445559733913043224047999669681939602784272815448332665189186563149791973318595215147010610440681336929009097482996779269441594485020941869726237530460654073403110945282409851476625185581378951144261937853765105095247342864859565971557904514975480768085367638597167632987249039651312341744184002919923179044695668638363857326543006569540127909558513484054981042351875713797199166653228179730233322610724392837253445841133531475179773192982607557997554721895301132868371190995818125096248663319860030728970089701878650189031155279081004640206769550846343538496604443445341166100391210704598095155053472905529639128445841521475737613743582435019128420105509455617664306248942192220055717799195248993395020877746551350396766678046725552172411201976556911934153218154080550013227159478544085592120621357551519930382202046362073392759771616659700870682155405169077910741978357256992786000047720486731414664721034786482021640854598366650215200487362379729617045211155892125178508855810206968857373847764003626854156309096401326966363556436836604980935034508592022376437004888272717971156520101935837486490164894526001346860023458770899635532248669825218126597973300458396768421693989017584315874785481699140709287877919399638851664417445148851411565549583064730485649015393953698040424289621625129194657787147210911065296791406304178470545108602489065258744492055270713695215284331325529235300722709578742187032407412398995609191132483818560058451157548277472380368240327455729788546147678092913283306580777668529580891530538980314523381058039473852993917909426142093033852770394513348374795567667786326620011931074410833787834959850826971644172439885266213391046042340260273553448819944338245846808645060523311897398489803883916045597589259940228871179597726165911498026913077368842518772438864448420905506210227873076317982054155648189510758144333465663184711859068173817227396887993701289769636718955715241099477543644208275555809562753299253581341642461825951499990650767202235514583519837580873775280611202406067521617787586896245854363163941359629512350513015272862233309735401191084462849331527216647996223534547885941810720387394583833618889366862962258149465238638847794629880617457139605228508487447090314480438432017159781007590274696808291774569010274039087319182048725955291864284914046954958457612079240213450211753521252778692260475142401266066590933333661798423086650120242108083009455426411036261251554190401395305692287286664032045267889412095131548717244134324445367146387428688489297757729737095397291596444543565835271442286291116087811271090343396892307451962336123323640287016914259151862342728745785012529277500043915445679694605300502990679544492346536637644987514303465652217623629386111000356390451858693953478456470732279766964816360337950386510885111612002601823021356953235603130425645550369039364249234096450876503395015512856813050015421256170755160115894921424794024700185468095316951754086057811087505249448416045825979671951601154891836040199270187608718003869350409681103834916169512341656380437659333710242266118952717511975943369705826297939958091391124714924926657652245808704402413985963400126912667533968057919810603048181046170734853178564418561991207143465856200119697848424463637254872240231783795643266284655170608546941380668688825622808002432878919638675555892316455253386634712113939171691955407500079874633531111873090618311183744012172774662943598304698527714918278777455457327432059357908534115086505718710206985198028161217851676580168050612765199641163397009894222475679360255445710702602246519165704828565456743538412064631373947672578315962029793360160948704580021410697835988615679670080214244429795744120191693122872521307098861143916477464481450809887210526279871874813126960449873257525376724691652606244874127884625795300811438190851613780529566479814715287944344167988747225349152694028325387420333783867812474535616634715790841999424468206173393830770280787505515240136800644663487650971732291595274141967014668027720662340743658922563567064423348188550281820843316622806049281077555658562048853391902968369012820796087734470341546699034807265604313326438162162759060089815515273771267853191966641761309636243899349630954425590433510703982008717903546215763139729767143007455002867265088584403589349589648738853641627178945274403546860236115507874569930592889789101258116095544774560262803713714926087665338052661595439705202352613111737194082826665103956783363157764552865403378787043297012781496538064744708620428474092608282542617887156033948887918412687868085780361278952849210845325826062378403604201755081658281210993465663725724698451688947739281614835631607982680074394532611167156988048542644894642150333634965161980338611585330441076229122909711636793831759326143916170102810792496064742839155435115692931703712948124175940783443181142152171044648316171462717238776403222521345051221130768855724142967546722661414129596797659981102079094744898142126923566270122912029602952288728267771400302134972059853975395147178117317909806381118873705086351693965312577355535120258425009851539372662183345630791735652446743253063909086079784987724990887467054265385490775564066713481505510684260481707388529545714273325439764989463308650991763423168451677350196964910460085186106440427753040396561524149562901151260728868035777552883945795968240580909202105583365699819152396990927338731014057866774288139960726451864938918974188758971713038740998401909504726931046075293561163334593367531272804711307937622190856406148422727783262160016396303193910661465246215389015725828752152704528086172476560082801533963309853153850567271384411986676540371824304436554860239550018146865103265737742713776289977478469876484563041579061468294683752999314446833186692136592903444319230032344660567535038382215180333592061560182615861874715912101636363201644713971006452685506601466937727484553219851631314200190053538229654832365414357972670369097272633738587720203041913643287312735739112047171637763400423605408208500284330749270404344671402964979097991880717534094294864614316801552689288454852215441906118595263342160100832892834719397001040914298471602214795553369123401062094388148327468618284762830497062280468245543270076202673400352174473201950965488197636175515691501059296707392070854585602012023267740670044529101384185106590830884218176540526826684029740714171281927870842047459357394419029851172689369664624308343270977702061179483999431998038911845037682920248020415884165857536936225190782789127541755706433830122217276090234749720838761703705323485136127866538578896631361562245799089416124169002711442353204033886029400111116788225137617308207504083665731197627284520511989654611495880934520382139274032339636387356006505129345344307009545034803128159542109336502290002931547644741599506543705270759677174819974117312749574332241383722851064395369002407809603540676603308972932838718199476015463320520555324707757141697846742763181517278549579858006794042263787958457190616521845525712088165213167106930626129754310834853831445002934791888680494345144546130368419786204610575201419180628827475606063105883512700434967528143194622617260096385398933288494698507170760242706461026650517522503026842358132259360050473731931191839864939429526036054888716164826781644427919896915329867015489658940722551177800529443854236293411302583015066712745154838580319902124008405384930477723110863725990182406415839030648172981698477176471595688130689554634815932202884539275631613051853964898020513624685841678557548522696126406258544902944224908850685833525293440268702066318100981173275012647318833264367314020205250297137805530687872263239954196457556032520650946002616939450359460712797457574423323715993334058622929503331268310925581699868626079425419132989013530493503058964703996025765872812869513672002598645791496553014621397617237237556724466959834942690427117229827490004947339782147934192846330109033741260713680915512720976353934886234650276005432951727753594231305650582203240459618553582899849070185974289762933839085398549892130406814877414276694440915481638323034286142349233899986281616434516582762072674323473529275197893234949016391543354610709597472731218943039495902479335244357547561649113689310123646354748333767869752466229690394965398397332953474139734997568375071589942168197088400526114459802475483184129082317241962853205066946474619671892325459946158045269977193449720398483970312285814501901638407431743960978259790585192369298960524668217481921152869089502397231331994205538887060665637715387088980901016495292275107156875274118896018258324336462532556154751790381950538646523418954717444409804355905795088128229907389485295098251481575997224651215278893052747075432163655376278027943300739457867350526668814769569593752043872932380183349883709368449435395948260731715953560305590420927284421349115182993466887139786366818062146994021203263483926344289508555743263018472264767386691576364270739258772909383012974679719419418497837731083853329166911349976358798809968131358354547155233047304549382533594226598333015228299679808023395133880663951328001812862161360851090192656665767773753864922176739403208136719239798909327099071484877613045942725687023098208202535057759031802322969845701157626619499957089861542480350471902048135502259291473096372861489525784727779166151543757042222141908743985954199593178238329596442778812739431208335313448086291212593601576506400492101883519474977037806051414728920124474125204896682025575123272575718014228051547398621014560638975730346617600081438046038035201154778483581757194209759575638195377434852224668650626538188791598944559972239558051046927560393073652457154435689809079662529186341327904612917421087425329148813905528867370880614501989314255355943088095005656906783860874118690008824739368833852297964024053146855412462634233352630723672713950179025527935187496645546609227427020205035621011594710097575710372741458080227524142088081089848719017657212458433269769797008210303935047156398927445694926651255370992589507359420297498838409444757391314691137755555882697545822479774197904133389069004846302673597901045411929210135861528503193699037436654718607757733958151093700993536593030271127390574406120610695593359428672540382700690620343884945084015156142745206017857995884714540596645353667569196681870418535819918625890731870337146145382946699524695561614471724835397169533967572991834867490451085543054020226620412204263548329997963629965968583376410875097453359354828067335724803787227108745628047365368936579720071798706822430416503095544153952576382285548895975334042200654183988291226498856351762539447326948402798681333669404501063507795223105315318613885697428089495334621471790596156754652920110364790508452673825583436632026358648979484769456269526317732134045727864392664100273023257725561412908408636268709630505016837183690785992615814980820076330327321015157151435121042729600559707579356126496687197109349344105991801592342423247828607915131717285647257929718427327175486825380641997168085999819984170798952121194802623174327866431293991396933977388345152321963524844072413793632096105723097665916059880696318795238546757493106124483461194594388390273245075410757612938901261639583658502893404930996743927813171541153876279688609781533648863422496503456762769504566728198657051221970554804969745371010014091200572719064705879295907227162501962743684563679350816889460761266447813207423565072070002587080267545281979106561838519861206679761932920071788905526148815628667521614755502626497341528442693000380142950578541977616649950456161600580237004468725860805896061855815884368607735421870941689087345876478196568912398659122132253209834618136924921432159122395277230907357982946786477931069369692818549897973367861021175519488584122193887382614020406486476761069877238321110399483794034682027520523044693402398792412460093960196094587514172093605379413826234152125187627900035069580993549248793385994725356258009390700553884545160998195677372736371647941898712199847813620904346459320635747928457421806019283580975476633437462994936879902084812527777802403495407793182219071027288762430419637723847799856938025504355906733229438308009596105254318116667577478023390662633772408614709923803008969073344738275872856486176782714236709574227395198937161835024094322891518184902235330571357717256729237325991191837534894210193714764564226358331090764945690920356967741636723672213729786886736653728620408938065170231624916962418595236600077524951362689971965126144191966985044192609940148017428249567225511248629958015319136485256771828949493898217436349029632583857695904899713494693806533902382659653390632857050104442639247204267374692673069527661117719102324228694715677727091810688998161729898321729345840814044640614895340580607219422786991810114842278052506316569887303742458245268483078881725612200295820232108298481357689505417400230873819133969536634686106664714371850653704689395976330020794734399025296008777643419896092542330907631982657931821385802491904223801970299845160679197607621546981059835252264144053396939731976147673638791817060483188013700115731935449666663688369892430128886218452602835738519823313913679532411832902696646969671511234592915872668344055059609234178525562505298356999174043824114758857605161646323338934327268873989517853012673452891200090712539945989544715459060717515429381409922766106081926453567526377322611062848500054569934058923702582736583416675449801086587442409313083981721813934929162217129457917431451698432908056326846284685518514988440434431752108752018721452812601795576733488243630862472603718930244617562013813129322655286004393866821984038063942703031067779146910771072364055483504241027541489787699409122416155821020669012288422365076667615900636213880912726025279168543296609660238175635792784347579078290667429014709998499806196774622422679116807645745388272338053127047070259878973226436420846950829216170161626839491852310928223410015402717473467552564456228776991216832820828559552708989317575766871016149508283863032137489488569322558428873801146184367825046732979687028014440796947967938591225305156206928917953267815550029399063251784871587871862488769885187360091139795530787257017001819298968146335418210386847928288677989518615579867462778544381289632036080583350581432966433261341606436482114619908284050452723259931101188813155821586823862771848621726956347214418727717989844421580829066420031642853520752926289014853309089085896156578398426467293979594905004058011990952269760547940309611107709262007022994643038450631290935708155999519197531158812118014491895325287345821410234901758930390793748816716824907763875899628611825717868805216345411168690368064196146735267672351257579925299719355243702842922954795287770891826860953495009490407037979592040537394417583189818822433872372000211908866094832117723521995340635402174209336533251325399169641282989529262241512679909452267962588376198452761194058206482653541924098437640768397437955489517428527746244982790535509105447162696702984653729385977746602073507582020005987559004403940708111198225484036330988301733599551891955700812931488179887408717092138835686116859212498713272388844487371210303636072669626717809564499392271910275124515513355092375626769603042698143536795028134826937920747467153515756803605046327549341758305139725572750658819502979499871277617192565968082264966581203190857231750217958997546141485717059431603827855154033448629700816718315325058239071824304307572453282021037231524707423579348966613088198960769301341615033005691623359076554485790111603711665513473464435822764188305449796997584209096887000141310718063352839108543052750694402173445372841753957309262125243502436576499220042782741736436415270301243372495794762459579402549685747149193517669703498353399914428564105279309451906131112178118164383033967458679778708378360730099938585080336305767598668944648463394098107554202992239505995795270874996504925911589560693544531332455997357374342996146330380907792917191428194912381382603737498210643827593628054374680257505830638277595441836878825197557059021096646477809591128076359048252442247077458457556181970541234608249476767069487878209624116803379103947716450851329587219859646199151359818842913390264071262923573537870023885846594886823383203290854861204556429306283588395622315277964222147841012092258937389378526503966506358207193444787426703155730887279169773842457713236951883178133394142090265355296830720005903586617082182536161800399251408319316291365594871340072521639661249101520966872652445178148261012608944387091249868545161411591350904450658260682064988977606511326946308910363046131056691791487026123751490306634304719333021007596411517275509465868319425807381630026084889414349078489069752111791715286309428618285323394000611105206424205126730893231683129223852832708158187400373330100317369864898740322627028388047376568463932004776146277505196799999664668164124999858479319126675006204484405433684130130915524400360344690697067691994197994691089667044880628349318798659083952157828205802751605779108880410799774480931059810404095264001754396472407039897321644299684387727876493630189638394360366607580100812854798285410347979088952630916134184853255105841727491376442208281330698097821298982717546557304810901642365445558914658594285337469927956108841287550974904113030925603185940072705009364490381604230517741478812324386362208472337892673796484358614036587967945784492983158542347700716465496563588454165565966915105950008407317803456261220828549759852183144570809479585324300111085213104898203525736261675004718064479252013882160016028119941840722816085276738256419224586124401754182627808067411190655990226246662839366678173763325329666535364914103163495527816584725520256268097787444253178165187318444387649059943408500674555823955894779051771171957223916292605553494094255217729491044228367274501325289628041375495658391892192295668893259988857869866314172832160167758699070721053362101941906268888093899326366170003510692491823261895009713033171835775634823614189837531773341450730253726507717268404895138557506792755551476130025171719425788965969647282204015831732357872061767014914232157813669378038730017316524919228721689494824206515814197433583990301540615463355377403571242875159884555212470962621459278932107655874584053625877323701247002290433909846932908910160448237544589457787656294167492730569665243063406849818773077761006991623670641984994192280908402270529797925033830699798846899948363791634188158890682329258173689387792439542368304692365430071163761940813582917013782134753773750063810151652868163468861485118113719311861419689603226817180060662847909036304368114585428658189642571621829448433350460997503797956466531029762002522313127687771536287377951222635408408283101279034686476244502590717710823790974498816514952018891857665210976630704396544926843833244046953311458185248304575561377626043924876345666270670243004079043755901543310494652155180629730387199649467184458950246771254131696051105297081680165398138996726793355665577304092184250590788068584149111958646755234955435514562885791173169717867046346114682722207464808959165675337020796489486945621312537211609985385167907435704342377599983225628049441240887930898063733757988232107557696243443466173387996766434896723377338111293430385115661356525055205777941916320431522746277384752535211433526581546763718692423256567978908745054879793763653452514562123038390839566322047246037801405244484590947797200445922807845021029688373519648575870200592635071005118245391307488783227198215279433798434525761028204523125981908978150612423720392192382293598842048101405959255595198502392969276525231250814569274768756141987154619280493023811629772827649011630145075313964698837023389330469269014899007935667010921723215132973362169245588271406238148385418956147983213568252768709597492857298978064522683555573238148056102159579775934324342664948633899464908248904039596879433527232601682673323085476184132721007961634738220483364967049504686206821333447410768245150875156352647864737816956463895456035088389563036509629189853864964878513438530149814253024443715342884149532027195258693017535984995609851676215456241375621874646557344775244780402815413384403547836464450685955333317875382287733914098160732074307191587060311822646840910581349155059830286805334654385768454488242786991923166905703917626526810494012243416923898199607718223617347448018855970284903138091214009965497799933564861159243563524907905539016533720585500371193106058518798651677958408655146969357479447357888741912397410623993250407043765368462144669330820300397947737313820172637935819026149972486694335886339520416602465018796243322320663155485819064766600734552091600963921577881668418306892265333487636036693227753950149704026091715455402299524230896293558692586910025843915113288174472602209462735627713938692098436552364386883453148733557811525598994473843033084153645277476060222008598299299834949309189203948664922934026572007922765512059688726206838154902308691509565585971774661299254770002115287052254644854622044976844054744502614115212796017419500552683812107897875130742470955344485642619444477756022421537024251209531088654441551584849783456295001608017840450751455004025398026098559070130507746757165461249913952764878136536513687215700286310386434189182880281462843797411197376246588521006225923294544761046582677227365513247180598515049925387910575827606162349037615129547896349021887390945643344561433221746617392428733983951196519912631424109525344978623342292220285124784440225761990380404069418949318388347763298428915380771713518767362118568305603823127714464551256097397412114098359873192533386713204132824548703266829318959789081586041163779242570184152457999403427104402190679319836476157129186155697925469451409292904059353216183091031018342030395193576605463881653378048839535859263356305747045115043900597072204753027529464131081728695553630902487557848127392771143821720009871003707407728430487826485250289086818217819889321397080052725023733299918566534485178141823106058671187840652152785340250957687390983521007407455738471401471931152496203170175244334854693205417752211015921237187721254850489992153802696742651717157491229126355456519051127783251555002973420450682708027474688342211334448729879168670145777857523071361705832503858334477991636926094404993543759660991228090110761759371313501432519482689458097479562582448692090035766506470228102610719295105964377809537045094611925500956677723528119760825325114950194018013043959390196496827343951099481002611399681903939558213256899928965145086773266374089529062137666886201305426122850465552161868470419278547803905294305077439043362972033631186174819497426521216848623281620712965684552554466377968215604788099020527452748861723513038833013051723322935901974853047374422535424662040163908594140697948876168116476828366026965120722522694706174089465965769742042957355280856934168816891072969519077284131692311951861355963330162309801805442891527434503726857068029851028917119632660998510414682950281334020414218522777162249119152551091355371591479540498069541545353117123756703626070961615299549413030691990522942289780148728747259306219469737674556317839578625217572373020316713623584876696335639441675995612185657698504295941229532884542617329662685629498093709292246127501088424432224711634326255523453643057555316257198284017234859400207852191194454100646351344213774761218663840173194662710339120356233619432389831567787256548724753600120089633001995695926768571255064149981929197196968273145049791156409896492455903157434177428455835182077841846207867431787198499205006685961178409224455838138703518567704090707910263492408144798966061197978155041644091362005985778932485746794032599135991370363187965421534793437367444885961809277450120045649544619305225806464430537416640878383480137273475489268398752357786606206030374043485516761221908851746491319325775219586052101929413337118979649900918920475132618119929621325043349780631561569960411687513063694459885779769867374149507605078444992412821503685872219827396744179463467495405889519287069963430002472174941807454446375144883289883499537446113814347102690041988452544260943175699412038108215851476563392511416702419869377797618548776125904353823796937354143286281712166424099965249066177664489460168010487343425288813338855927809681558834573181025924526375427862163931418441541439119297821805655308773649585166881577562261432425416511052469298834573565405622104745695339192545824264361730874384150172932266177076662243146582898972000010065838788049352994041309647865241525072113460545753196101191467288166782531842188412265657338175785911062346160420559329420107682992405578695790314757653917860113519195121083072011041533791675806001572330983273703013952473629188755220837052081016475010188309103320298276076026769892780653294796552708320598671328320887661092686933764836945049924147026664286535228437437165396340861227131557768618956984754250797965625072261594682371794971769405502920782402718774111975483613818031401236982104876349106041597940870880106342620644255258546986289359074775905368787913781191431452735602233305432239588639297782137496560877990435291810364945263740249147446355022946002270349836285054496082770610906818088210948953013669634483350782047783318160084427695818815654786724594019855936748241232142302400015028704912463480301138714225383125920174326163269046723217112047623249317689723057632779208129414876845759658626801681812016563692295699758024038333779269589523856768384211010891620289821197666449969756237783103484826809541942900417534460183844936076696571157438590992639551306259775999199476651643656868595537549309983809333633354171302018540841905949362414329942034159633051741011888249566545246553850720869869023162969635675964602088103717105954525909261933696516364993110094789794577457078824556886364826499936865456487834870313078517810889701750741842008900655327262904539010439560847048703465961982702455987028898338724248694988665495769396239652153472988590103146538383696363301837304475819492921007318208235563821916617393449535013457178915591608274214834001471434756355435155791128761912861876029617494942364236642737362546301519323146282080249224088865395547221264507086879062340930625241904416769679253818722199278479414071585280076559138184621510918678703877561921170973780898950975968636138269425035323401221541128450473186470919099892424262627363549932359556117170873428156940743717612457706597295868265229068895622296038567558234470376151484460737512911232481784901848040682311428193233843585725091985267388440997139728478194651737409038599583095814278282368466732306590114222718816134756751448383778862901387217209711726914240756827409238003432641617964461248667760568460496978313499425690291337284928652027439219672341416809216510913784419081909581840334842884713324889464266686459950935010159572056636314175461110718034367270006853425528842053346807901301506661051025735984577023419726904853778815029527315744872272034583341537928585147450633262199065854112491214350210266098564206821005352853377237913152455950337610574050800863946532028390229856227182239903449160190956916916090915551076526273588746251867548607984287768033609721820709067449314789244328626144873237647138789348738011511528870166038402294129255026302726712643809846152195467152842996181320648450665529030235485926885428651757983250315679680730062850097094551180177220277114976291551805831123651318970326787788731927696051686994926304158375480949879730820301532303267336762955457848959093250228652698315642772728410622896312340446343733237528597153828366702759422097117346569192363301595956934133598451683301552752502915220249118721428603885222771019554568841124262123036313205601126677562133593296674748168707158953647523031257405789651440784810983995441138881114631325460636600437389475522840042396647223410510371780728442328859685103827545959811917547102509222693049187250291591447931652492509745384920337994607042138610478002795494879754290328471833041502029278315496222561976470614998383345012016566605682146804237949921621929412417407137749710777039121907186183959585652016030349041433543966723422454817169639167421314942456588559908222278594642168606094670977159254520611071873421700900206035326428557727958086019198661790786678686860507426022686073442897900409891250817188038824329337924514769143245671166918042756404103029608964228639619258160374333809849752880103707723251553823061261784918747060579550457971578262470054544442182515488492632591572843273681694059296514397579100278636108748575045892631564567125780600276107639812901736881419437722370513405099508513499726276660684382903211687651642092209807732165142891242259828958568559459249161731149665720360114492480479939057769697276473762199536449480940216011148965615936778795856407479721039527692550226905709496961463172445177140887822521468033930980449685986206795477632731731113372959993538198731900301700945193113003467623245247067092304852051958602947166502353037288816191110841443840347952327357523872170624602138407267957872838590567760015333195362307275068932663969459466908784875272401992398683130453625730714603828020169721002112679484976220305312762710056078063695888876687022799119772612027711187935505716275505576036345796701505841972559852221730360070777457574004530196677433152941819245781652930373551487765253199724743819206509596194999801234758501323897289773876156709147089115840471144157696577225152202285667296027619323214484503774226893686994748799431938886009635881352537452528539457658950880315209718023070941114758985045632988018541250716444212073053655545779253905862446789009422678102253838028705771177420585019515193853601865430193911961718103664877715166041808359279057344025199304869427225869290285602501765633236569823574085838579510314030098156982746785067802904438522762064127903735392674633449813700697647986555474585306245789655426344086367154202638234028952428628319125641216504815974605006777125213952257421739452405912756806234981876005071645586276782529481375035723420510657349064869340834666221106333012995744352932055825053754404660742789204578751153307728640614546673738630738825544177903432998334984246161368362425044061146855237973581180953293422710457349839627031969437779511290806179673092736211449478520335004014218488242415393122255615324420709369947381909154509834116163916245730648846438204139255484545284423264837717579373259855618559912485574193335078488354260801956919476178160206835686144546996568186864335699720571298617956372129334823731505245940439731877492921443167214957093430483530003129855535839723637964536001547472139821024211104802581379809069083896019765816152688132914225903967955457025337880706799961324284326859551587661275827566611248143504202297830826827919714590791499800394755924967749889256066653053158158526341622028277494255664924036815476089914035534608150538674380315067696746153727252167103470379953740219051519891930544042565989386053063820155981390447458547976637290403815308428961778470499694826294713830150522064672676555989879873425988199198353520601815395665821049367599343735812847245376775431029126192929833020521509053765442863482396344423070366405605263535705188623161806555843866185141656057374740163703278329392013258708516923642192106274652015668726703733757620306227007628856031799684714440915582366022564491424957470910941029940748938166060626037726539348029628176542257028710542519582928702373368495265565973826030821961982886519442960451316915575606394433853660330493765864348231299568703520309947195548695324550034341222549128366530938846955545652332772680674725666347730443207645357885155384358249876250854921797529585049359592706897952280928712184793163609483960992012623178366224474307521348879759426151984414539611498437245440136482828195699099164411367627569686281753517733564539597070664806824527454340174722085094160337271739403655075286004982022985406482975223070567987480065020904922095145957256404118968616842487133550088396907333252087329064550713226015731858378098570570754201348236861774490508082951464058766073142530199284556844428465271489592519793176373424062712008880109481656546155962648386646469858995267566590420995657028085063663995536079625382654889557590813652492858534258345660341949856390047566764749872530579368364882550763008445168960542391227909522525285938814805536579075004362125321370087647525056911709737504554587181295072957353884456120530738457944931197286105424009798736637831426950487416837602009722003969715575237498629093413397901553024011992347074428136382406506069038952432674345103302492208395147816475560567238954201871389667076334853513314669165054860784959973862438130274546456772877056168636654076509374508806068564096997970677528688762098419186609268776409334323838170715182705790173389345838402768276984278312300021728764197546132744796360604778763048945146130248760095160822935763849824066738369777700667288489951391696467962792427777866022210374563310357710267265363329177123167424456556987254090565310676794579983106109834254476019207587402814189609768878225921329631189245088257406996407903804426674577425699870714775309901320900597510682931133300809720686536504154201481214904716573235942541207939912503741620523890659976056731685264397478295502238386250197219914258216003114326414532250035673697331051932346177495343916041316414409977384779571473631543648746069642518344502708572170351017454783516081057556313723140868248003214579296235293123658067437399775250536712379580111015575861901841624963805996212475702787711252659979779694500234202237119596472114862169532973788805076091912029290352587828589267445430806625637334545097582185769263806819260215291384502323308414820364421835660439052110918415567176344613771302106909050463383160530513731007776051929887767743814264721906173117162154208816109148721942741593588330047113654106699067714634919674700197365432776455724955488774141440519936507883108986029185386033697860770799532810799417283040570707604136654785338105511029948769522915883587808468199683917218501983972366797517818533800668449444668311409088729055460413306492175741445019587407080751209639858225078523283593369351581973281972731436068098173651982108953102162005443881995071582095028368450399459537529830853070347174147242461033300049545689960081764063367863273083292658938907832767227355824829735373928280012126565546601290381684628910288861572333325226543863515659280764246092822885061933251801349086911372256883585122363712661598912945800617727295397806006170463291908136233853535664586318455363018514521121220018293915015855122195412659761162540043283381035840332740274134066154938175729499016068301135914223240602777854485334794176784657037573331194257227600263816073158156222513127307702919275136283526678510226732162674672698046673719055029331891046375369983117144681930539935671684171126618009702164099163571913161977440975694307694043530782148278153931803191502913452693609740270401234788172019506690529571079452209607512505583699754909716084707805618786798208312887683869100083208678586310741392592690647551321878116796385865302114916050600878826445873031168234681584390901369543203047930912102651769719654296985958437115910809236030266798364377592266423519788555121183554350598135777113902913542126231114061579697608033627037417066835800524677924567126480203131969005632557680537088678405107708244976210688896510635374488489054806799856000189679816193267391815334414381350087821842428546458597411129838504309992415312972317268698219724599933134580579514997671114302133100376155287304203409582769371437182433903217343983565752615275782222995689529037957643274687392587856969334530246544699149578619755528446413725651496149571920314339122010091506084483325364667906374438529733976949152501174295786779933956975580203796902749889249865167862758687023807789028624242321766519735868311340062228585190479704380501773336493866605479033260096437578995365234277653329026664939630798698674758464716518528513303157570762328821507724990130893085407668893837403002729001222453357396445800639670266504016159472459921261047695012171368226935508333311989086609373050150137461727291655754698184190479498902366204773623355614001719044268222203232625875307630153032417057067915467300786570589637748044136739438111330357393803198245300428211401843430601398618513481646626765567914313851115722272542539546717206156288106597812631487839937671945048038743457025542539309023720021128370332328536383872337511795843553086254522109069003041851634769741308998290087558332758521120468656139668125595658808849925164197321044841106177243580332581061647370058392044569563294498167291036182173426025101894423935558608216787157622140827022660627856045694515585949144996751416435548860857313456539889638030196513902116651326697529923821273562399359270910681619160465622893335301654361860361624509407147441117860570336310368788814059108521304742180899763548568378554908986175054253864788029563399968062363935762588224678245920676270773791870297171055763271660831825662097341772070081702214997387869317914954455183681338793653121547829251869150295316932331448927532987714859180193862598051945143152409686149486213235520532439340688455439899992902266792480709657744177093003418909638054915640055752783098517021057839039775423071780449597040144683080903207302616070540587479126596416681945879485562664272039615892849106732821072523706810547599349022663884259991460594186764007166249308076757066330924980656741460253443704926786139146853596078012881421822329612391122533542823219823239210086539163594109595081677511083375290944357285038567389697543769289950344794907343682098718943712357831204430338260321597910258513153633840270505125648273997152673566878612852898763136915922076646626285002773297965161026322300961433424909736193223913463754098180118618710594838890926793881845099500931509800641054644953169969002890939696803009456435987515256415158491911891122573185076782668610931376238901162943327127030760424577765743345451774794025898409142317945515734431265944523462946586315045992496196194539686829507143743723981159819696317145423380591173415260283889562845209795202332143262712416161220486565443590721458516531807029151251464199884352776470199383581351690433038259465348209849088378727491875485180985819714406364130499882882477475881255721185135621940869742933579453465070472885629700440693307849009242225743188976285911668436046383271503427248885740642382704633946962482963804377442035711416919826581287466692765660943559735363979904923539834133699715687710568262521170011466503344324712083819602856808346515939312348219454733366189100417956326145568933515565216124163897257176531593618732318434811949895745729340400616842668214474593639270055903696097517881561784773732420825877484947478658712501832466275338011814856527159022370894823760055216065727300557537035403595172668040446361222395454699265858898713613059362368325642898355238970289329083614323837288614137148660979495536761450709118561151227601044098768491833281580483560796044723636488747533616060268725591920261681659320400859599520552848327279029496975005701635804226027736923643575179125755865522456426775647203566887584431273029890803433036448331993212365389411459863475499314245043609146848026007625539264973000927153104551344954205816329164110423135455849280232835590319450940361001933432617990165642289069906298036975312879348597348600892163292789672175408155797952680294768011398931393539880586339742451688764447160580981006845625026334665274342894627301388201438050389775089532013462464534631120020873028435031220236410850095188694495738233724493245090266163110902736914276667506412830639758174253011994647131933500183411272072766120803691369857672456826131413581342981983701010929401091460130568915438921574213066099967311550973973684626917799756065472338185305294367896352509132320599653595459740627161659716645239315444999416328425619729504567630509538146161868913898334970114212656713729856665515053733799362759458984854455858118805872300395787020926267362596795762139615426331862921821873226398286074834949536777141721433878932937148088893159721363259338606804678267627159333015410802267044612516521575154233511227754226290687367840911664187786441785869053586868419534683151691782824990284273173249244265399709083680245949268264147877358360201622693862372051836179788249751805443360278203681522725818906261749381230870318995015694060043688702466511661560660024932920214710575216425415298283965153854903611122639962989937557183232470062074600739263229363123884088315718049690869015690960148419498433909073683809187575305401060786085103780701011280191367050759970922906906915220220090314544891666383029105368812166081757352330769748976816089196377054715595681549388463759061026391544245417277456168602361005231922082483319807619408654450394951490342025172207183044132967647660348217665897860279458730216468570825520189240019410782047007745970537399397617938879040735328915514213788432096343088589734885130393966266113956843707327556426642176937521886073229202707058614771432691685188762092983011448753852934743512677104861511507121957027210385620868348422746846067899611090285863265317979960258203460979725639590750554381864201089305853508847853131389478199524241892682171035222995216197201966627631496516552107281227271503455132272600383751772656029480397127386830512642603813289866032107287179328356137761012656166597833744963878352866650223494989805587918898048124718436817586084132289931016044675011828367964022188426950592257659306724639669890797295332086718218443833263067103660526905987535213398774479577596606361555589851909228629369010026629104157726725185182246130536333936869281005074141271271063654362280695034614770340803198264986800475820440615909812035990385956525658744839806149523456026296083931505177932004287883657895492871439883482771182049922044333120130800949769922141561845320365218225075058647943353840506624276437878010824860183806819698190934530087359970531864132287613655073888627951289561465793246947274990449084424555278745497990059187258812933628884651416031002061708905871795447179120630813132073832742696823532847397828328169527513210396965591177000440013417356149925213290618106104193959772715522674689851580200024609966914677321213124528252958599897410987640066550212926625999740637388221571646873921915722053356682607853784948635896279862893228984534847992333956375617899886296773826063460352496497880054551187011023964152145576734748191317195534256365380153577515373838815482221432962749364615473691422409593939128595830143753059390642886270113380685811104293594407299313197118036668869688810099241801962186839939506161855337863263017961410685932722886304109390977252124331464349615646495080496642621183522045071270413166874203008370604881661656685130476096199254850397809217773042243985645318128107081210014402613635261757510686602375061715745437019624782359395564969857971438708171282302918068926232147287868068941776316959811801772527794262831762265562917309727491347596756443730092449872947228450456980487286604199555803466093272931949717440238393653369056126049619877770373073937313079795989917540444450979037068509179365334729590899833974727445778572486909097514877049030751509219579120544230309909723164314762968579002076256284357705414036741251683282487181397819880605853137116265636108038087788159082344403228194746483275523285410378883460683864136022827607525501953745056403688952812761896036916901301506080207192165736034344518249756276976211766809901133185068431847112303871877501232974094774203187433360111170881413695683109758449778245474682602338266560787984623666156737459981614553439770533109970394463932111550624607581469631674510533049367360027837592213692176846831106568555290493953468709353003584618292431006402837467391988795062995789866372409761387563602345068139657806069938110231171007797923323057635823222486348334242169129373565396334738290845806784603913710533873538879042066858209282666104117952381646795199095340390382785897315445130121605593959331974582096597771650749577462540938400801231726980162425960288894186812381441618660024641361021244384362558347238576567834039878049515797154699426411943087496853563966520980561138916031790661570586558747416328738995377671141126118350050392418596681754116476825768417112186491047811382999811317080903666040614452669902816063914445916205505401574929663102306335924389187778250493231152828422007175642783548584661119604728659538833413683483662304992603493230465283536521059410003297636824641326744965105152399173133354793197409041852104097972211101396786781136661081312889944524241914099470605387501639277653666391153263055587766412341836457550910336843422018249938165127862534364230041212237636723624001358537139495195696070301782109836783588313171222739926955803849445107285746805807995610485405936625817945763467606724300311394868984625483735711990479817220983233110801668054337764167959720347030200541301068571425260212086772544800030285518941396415111966588913846656754501847136020819038941548512801829405116472635668081108019562572478633374112981224267684147895493300065201640409778231734662668063054351418777695346808610847116738360879678703577806864326023779473510752976730759502040210806478210440028676632333374690888037505800928520764308681557797537722043879845266093752486403675475985618434964943397325106856107720213414831219601448534119316871719432723149010502935169877653009594191909778718118869304387672008082764024599007834833853432120870765073429330002864521959596600242250838668587117204648799240480260857785276140675660141124777176933252088025048894395629692736477755992978527736541412089259025836547514467653191009357120317553897696834381221416140840125222446920873973497785364890917502310513896671049671824977487414276609031176997667567487099032096256126354531585940514125884480781849014780526829020293170109082165420968196909091761570461248178965286493738646488908597958392187340968080776556035763643553502426028609634497985517556012418617078110054170291333008025218464742218415892436404004403815610960325748302137844469290718843302577140877995509942054710399499990163370263019771236610621651692410802276151477668400808957936026894873488388285622292918924010878978055426399673583019685031041043566724546734479992275167514869097627695588940322055820235653106374147438077182707916705363800794289846951285837706836827044492072654115116038614269410106053409076300102684130418296406850169252427072497319446571154845511022435670996032933763271540293435815895678483477536597208086972527184995170003175986779026659899573128431742617951111405998758408091202696525923107361143793693046434615773773156990576047103790495104079186835612871538765476924268913875629699245976833306396810302194368087221533459325886234375411738914533141836875414330854396090460245831405581167629973416447113779614356776353947260071239408184612206305162339030380583225954758200724405453760588505592870716963864610174010778772544745446464917523911658293881360737497704197152948630403906664622096605334213002073737618184473412313753226536973567330795654995280256647541136598890937553411058354990303615427584327848964967358469586979406860548832740274007246595179115036558647615229716521703213403917758350678861528291350563641871525659125889543789525432627098547925397161766027971051637948599619940821106865092320384855113728932116366984269336697723852628380100447078910609206123597649546827189499209548497764400332271348251399208606997855379529183863925802073174551981572752223752542896877650455105097935761848955622844050883227000395710523129294548418151315057037107076935856154482878420586017081471854779316150240028198049174007425878457469020250744639143324968589090367688587659079776814937104897197499932687811388494829985947450827442360942924813828932429472015398775590691796298838641615070762674814028789082280144468824129752945270372418773056860859999468182936845507473978604102869559985509125932077659281173047217939230018313996595214787178860461741020026704690607754916366210105372888981416623745110662123881272488208784328843860431752627156450198272046041449400931206924093116901226946998588235615067113504326872820681984799554118518115440080688246919258613096824962276810434391996684059568674781960015320954108286237409281745948649365017244301270880539694261538983941494212480540395191312073088176860571125096649393782078357674702219706585492622698776816838943632081131024744741140042150695579689400732992912868085854560559246784281160189245127889063229801911958529642779171883480194940057631015649306316606375438237485140170810578048158037316190271577537521060321349475840001898820013536711700304041884524425340126896001777030369539663962180628717098057178756214990515408610406788867895058593177535770651406022980102757368496287287401593341413088765618198409976519688091764087663665209392092360119406019360425004689723550932218119473225829932051570255034314065950951783907787619887338133975748500750977367731284991496113440598640917992357439785658686579862259314365693895610886614100649987400879124607410683980177016769129176067144099618439655469876703851032269015802615901063347883536631508878853267108729827937591599019198779254986186507170416145036044761606632325129658592132877492145034035861596054592848996346670427454622063600150526311565134086211928684974777165767887550468201056402226675928729433584023057026845867966290912641873779155891181256164404193587753604698259359016967607806096056566386440440576631855842587150251040971606800191390178311044300869211373786215136850096886735002883361056623671137378519710411560031932174067393447688658051614997126492144594905880032273631465657512256140810566574774748273752331477646290118474815278080133929402104799884624769449217707871795087870321902228005526480448410723618147532491541000965946706322351189493898594794535393864277759525710287285469962448589613089745713309594033773657648843240971536207040356805594904724058084791270832930551231703930609759890503060741209065695467472904739514113997027845946516280696600611713222561048588915932631160027929468509690931513622380460678479684407782121213995292736929644088332983591843398009576455068518547372775339023500825187180945640088451788024714945449170526970280663351295033827669958948765836572061205015703848000948457408196523545019451958565856900809042925089424320306427949971447501980033917464879313314513863449057176623328725115984034519329318282706645200905948442610600681717564640156226120266058889703496913005538453481734882817221180435454219182277051917144076028222040674431236201209380619832675276198774241020511426858203770336721450089568239265966952838973293075476172407679075266730027453923160546070114713289063967133273185703855352465900134681194423064043329912372238484665852281896977647477503763409603845279678783017730446924637650013318698534053922684689708468072509315688284871232218926603569562813967263982090065153215737211704156231598096507430667507214887503567331548002051891735347772439159212601779035323333068718818863389755937152859535571649627656746462274068388155733755653143393860548886688779248461148600449727546260318048292075856422090730859970806986283377101216681887989027697812016409087552855831026690550549138328051552785827387712437992288745574887452195682806202870333483675055795776457689280283650446175156122960916809746815829660866585862649391588976801829088057007098195518823392524395678088722711990949797832472039877459537997028929079258029427597031417258966715364906611864246257416409197398356672658353555204861411985030506150773360275149284661619470064025225909886228953577129152117965375830873140621191269621762010649231905770245609092972723908119635120771310418049436711016489969398819388231523481948539784342393352178146365566375759280494409774318546389460811053889203809949692581302723108892849778731147106110391585530507064730022213103943774001573126208140746849701929004867645903864888057700588237214507398691623520537470165160475396760006516275811359829561175448683251934091215826390471661816835155294844884719912806961381368227308697640078002430733659368747874777351608152844778534641677053635782024283699708462290556225831798443576488631680193551907163966332669435047585621210699493525106257298775336104566571177033787890308803094633320142719429238468327897005305098793074606186774088899102258998249764460709303378167835701120380238184410745664770369351234086102368871634542404998499085435110292074910418362014029834470269355930924279303939401744937065571157564695922057879160089547591144047429681314664186518503521607120455715699733252896985680593433971258766547910301543089197212561097181660938947368429452368300860949793228027665226697157934799450981666612312551909676264343703103350972030590921613870077566523721604919792926850412709633703497761576825795760292078769333047612144019582000003090061515820599547297091532205243637094770080020926269702323879221694804454812101792285886314184795933150615962487185221241697676189356343635598078868858998180431784551247301754180326180130520006796643248396525668383997503735543281723007670229077173383616629937678722635613209044870167340550073604196448218884789250470712079512904830253571866237753837127005578059077203745843321552593137147420248690004923005467035914185005053663323352853941074208317395529190253706836694770876604835949977823149687861307515607866007702622312408451216196507919607836318413645898344687202483811468239649425102423002921771866782325395217903330073045602517258512680646837198354952941375880612334099991130345517764309214708154582614156210789852672416576431163433114242602858043351278432878113224056539583187818111976021861427723970538005258635037148493521686360699535756877711108006927678792333775610574648765069113066575859140964008391329837785940445581493282274034333015040306211066724743572340555911857677827779182813144923751565770684204395915836864952839452953017195721885324615943320743373694320868135662796995475816395578524806386470929016590495472079558828037315176547326575595846032659634254841731995190322788673833959228848005977792955480093841081466015509717451261084555792695967621510059300004196175823897683730911312998519785476848423100283248284016570766979027111294528161740997226255728920196459953627362652103572530203838891613696873612179395035479788233168019581629972319502185113671594710920137324305220288394429613913234824538458218649001370633963342858238437265181459233198445138337671752313425831531869074222862033685157030286848760864123313562330643962002367963453961168110466076932657179773547349161340271087252525445604172082203318167324380984494027919259950432308082531035452595782652341852385147594624173808962409117395671537158186039128076164985503996712732375904890290693732890969204630571970800685995323079888886900958006312990442677206772966556677837079921851591610910530117843448644104803301969400874485515674986247762270876648131031067300830093651492317118844412690256561180987253212089013485288226960361856114415894699073915417526457502345425527934840322903787756587074872162719837387651601672488518262491310655619316958960093075149054337835700931731971004855439338797952170368838751903714260407655084013467707245533158275305457442011010363063543040383122775343588550411065725834183577051809466307356280766239741779996042372013636041352028891653727559339200223216364892557433137838759370982502317961399358770991205422774779487178867389462633981733410473118818279329025704889486974489417816510138089423636889295831178527741820045461818539134241161179563127641511939386276167534727202120549150277417202256117917687515511129715954025626006846376789312948765539506995751542955809042809256935673200714506077938601835349710526784210446356509154157994248942867885317323019582983769917530329708635556616061973288368550604059465396880353905700764706077475966180917768580948789562052533199675548326767810646886039409605909222030882828028540550175241503587462659991662629958524664136715959318869300329776748018663071127018983532874992228473459243957035615914174941790521707582465442047598348811290629799995956043641162606759112470370183970312058185633006030240349493092088672302044320719563624702591594244847909738107181962538006945411548652575470242670395334874089018527661069161093855905876539558777995918890034367037201387089375745423089549134384103583839859668799109815176803795470177253014056089672668107667735838823972266241168985299141653464616022235939438871003514377872059195812743106622650753734584316919464786240217839098151637135867348919485432942866295753792383705440397455695088411277382547712466429761420264754779942209279907636438477768535225242770276745099095113584485709566942025234421140214387556546422230158114190873490795695091795443419920676497714552927409807238912087739478208597843008409820389886079731859851789637976937171639276071065257478618703865436514324998922491423409784863387447096348942301211751137122732214833226633693399566946788473538841296212072177468918712584153186383474855361544702772921226037014276762082868682006823634533341304025466658492811016206942388199766967244149282626169545642432950713388828010815029617060717781270198573864491994260337455545067761450117597038928315503835208971869906830011698962521032905271115679067293593288417498879497977973732476238902130559461780618319438895728455479116024453493731146870325423534963913639016441859554980823503840815971094659938986923352479269044224235043516928450182594900432967825434084320657668923323236354726668247396218428774427651888244719697455427501433790428566924547401840179051111598976993550527707971816481294350044466967141421134011556492311537352677383879355611666271281364967670270032696556640836786792846201482458857492940217816864828722492383068494385050106044177914669746424647520258506281831385543095213454387698045238064861319746282823378993578910153314276350320976624978702432645593265091376006154417840833130753511601988575202186818787327330537864901232515754428146471602987662599753118499739713897119964805138411492237803845300665364503875839034888396866504055607046203098313183538934122120670959529944084330390826661504797473602106972198913323044699526748628405098689546198524028962947216840801988028505813249128642851240914865371276959675693666855220725527885161361117671805995301668514370598240069202160841986145336945496196031142936570930236164072760309606870181176538407713303832583043053665661469322696277392352145053196126374127474784690266598253596998158609667919215829504118627645513358428715790839776102408148943613082985464285827272455490872359289713685771359914422130891733520908538026230911073261920147546486214142606359972457367032756397837550281414023195694600554112912764701750463931713963355334050626362032990553886971743377617930490538018858094319161630641809361328645175426750980159153332941838821307639089450405624338091480778831347774062647142319575930045197003759222134205655241355684217073021329297142847879607835182610833566837003343680119306300816214558233507361716137985488033915350736980658042676709368540174619010798802719062110076320816096412035777861515674718736175305636640119368528422663552075069212242869354516641778262724636924763899186881462593847010826262112185382048194431901904289217403041974313750455302787668281347538941936753842180790498628625321664702472782320566494157049878209297170792530734518382099373732604678969763914999838783527728872279845500088700476964136780736538507295085932134661097715875628797722194896484806578690088823506922704744760631360688142478790328088489724542201076041175365312386518063154789279809842735961981626735502621284078903807963854294856487884719157289387938677545749023619691525134278859241091438490304173838338937812924565049732860880804064873667049967508582541950201798130207802659824005524659788233995224792533210938833628256182005091623902532231289259574697137733031673203371828337923959371362261741052721185380235026321803920946598219720010914530595009957264569630149524197581256903213038734682801190970194103466255929434182966552978329348683441263002869429530884704839247231573811395556425770127912848262794299735451339172984050932580494891555730605527567699586350608473905936097076804273591997604330984763768744047704350042328550468223437837195075313214233796899715329247712402587963154139549190387862971761739009097362964278650219177216577936041651677096327863734669063363194752989220953479817734364296477765213575958611590774603977255469287146468511522857452096393294803639937043691657808321141828662252110807687861355582532433205130530028954561519267062396778603804012881232082877374779030682618603616243973374280912661816704436025861023213950122614290064322647790327974279350799410439511731441750563406079996703241624686038370952740288496817603047402526771236845092526343707063669775629750446694441810578884515524448555227535727277873816444803140153882925498802545646902964999604806988163245743502514442811738423669635422388509368164124506035671699966436806380546951039027684936655007212977758870054258744932008689153672817772332367346212075793654441159401151967249391148046379796141903878665090397014814147150498372968874207319453524010857233301792189112054232350941347179045582520743651523702385143553254672180775625766837531866949703509875331568997022473871629567101350114050104456915046493824772261085588580804934675191535249032474507859957246943770973605349185260895551820485790884568170023444682909843249391117746692596336731109623714923922735841330531105620236892591640659159081769723384467903085328652346320118370672245311197097511573035651376323867527620035897073654309469710946210556730855319813630301669309447076224604992231675595109305728445284639850375103877609706937427966972184462646477057722665730739936765646146312833183746328100725110446373619465237450314688481021871700192149290712964528158375727059004828655932290342463434676948442375376975176431408277721371056096643335133734914003832097100299421509117727148660626434178297782198992194137403301031450562924894890504771135547833660587801983797349350001727786930507648822414463228569768811204170113195560835463672961840155370762706662923836302983339836892136296779359609594266066756180804862275158025526161196605227362391123252252249525827793267263563015020199426372489113165342457587899563516253518097686441435969632630879219445537559881689438040204780833557559171004006632728093010896221830914369635958146627787630970329723126196391747263641640977273030205071454383133185275268891100851300509655741969620107919919667514603427021590490231309938638383924332450974033581776997399239831255356928570634411135612987374807078967651331435825752695681965863598877943003961192720495872501660977126024336244741777689475191512100845611796578494056604709344968820857578697480421098766375965463780671195586855615688073318243651173819650599419738843536156915598195100113190442211796331565570111880015210676418901028376904389817365882726443064458752607667480977081202227709830255329050289437099827496042784238774483342445139562209335371139877504077226066352343612087342442442955325179353510759870814966398577203985098240412242447692646009935127378912573999197260170181956439505639047365311595680294499625501949684202605961820010679269366840738066374354111637966674319160499986362774513481942508552296636393972773550624378073839503976694587843071107370348367486254447447887009434326942795225214614616564245309672648784962978370616879714199168395894200362806852807994841655598243216304523283368864621976993891750877589095360347923318295294483011401133811825482211424765328274498682085331497952194490733023739011226308346228449174015632964143166778999602651571985947238227018657274785457520100755235816954753382084630082618493940193914422915304707742096593133172574318587110268142572018765148497242544992511956998501529656385960890876807407394922382614498716684585003044041762086583154506297805781694619706532449013107135445517680975869905636521983355328486418766294402462930952078054136223698178447809783289523993060509834347582863161323996545973951928162412837379898653041603150375942472262103978464705429470969752345230791756007349784615607727545052395882265603728774258013966582613247938795340365194361401580616139364718670255444502980976343348293939813590672978591492362669959578898817733683394609164902101770063830311360103602997392270028587482672027963528952516719521863412137942144057719443403687485555934399525129187336909246921755200298447670239822530768092892675538222249192916288806146102505107533546645784807797647943998096195148090182290241972019077886313245154151925731212231023302444579551239774409459962031016953453671167695263534940635588759709127672295380039122473882552187888985656917777410846277578671549297201115544825287639305480608829570403534640423586674149000571656972283430060241092981335104318892786122545601691939418314728298404437319482440681096181444207693659189069334604227607158799845549532464527278831068276388884779214048742849061775063648593338360022574381144418743874456121511327679175703289526636771852499274360953321316765937297053258692583528689476293959934559933744208084794838836711242977735531761759113146654333473655041450586819458825748702782562458204448923915063150044201363425440133654866372075269628939138415815682863155662271656207303987033389149625808903304476967902864230742786845017354627421535383500842593416433815463786336273247110979477226378351525569316659627681923908421246934526695674299808739641914569299338290472172549721176157140334934687603971836616203315462303657954275914857719400860916896410993303707236086144869318925648002653937675666720162536140365571545512311484308629075460207335390548819518178804958691122848993954946403008147404509963633782411931891946629614437456468010588645181455827060189245289404561811404389747582786727053755884040807840696562112332684165684921924431760221247108760887205236998227290449270146514601625724340830442533071342438544768429469946866404754415848588030401465963775576102487887906016858629819206772307989641853047824755996185353851818120349937350392952223157495144065515789760325078076273691446829657378396333707815788954082560073033788639926409728269204064372828020243983698536071934302002611919643496062082432937738614877684080233203228498116586404327049254718604963872735493785438067465345843121090317497451017492919198559027518421372859892369841076746061328659691070084674680025696036448532522602503868804603285616056670890209696945851263986791483688186581827781134097873617786720435480859037188526427695280724876497595907028509655632550391493188919914747873682025301958176749307022085870072466413150387991189024491849949260382210337428054286168238781560880564300079799482982495722071589166393230386418289005969894835054572396439718370704489462470388915162407484956900909945538776225767699428009271711662012371510465639374753115239801595453216739204847631829092220083012580617007700484216865938736724303488345266266216711743125872704078964371730320376822656724622723271956950472091805585993145758595796882880614986568014367385307110798748567135681111486165440662568605782169503839280796171668426709441402339831556240697294044663982959787794013274559847441449930041772390221548635908728027994192707416913879593230004908375330911108001645931543085848862792984054208281704870110626238496907528414954738360811242384448246092769050812992215576017859233684226508549480877959356996666271066009939141903750801995518145194244483632632303334555404783390097854850909383078777739523186984212545377843326819733973067577583560850698387725650960570714849119059236420798154145601138096795394521645506935827343835236545493025042666254617689601947434830150129785268436146524468430517089406636852526730687017960361935472310404275936350644490748056035661620981609565588652170786276161461238364243516928018314745525313943533398178662920750746106985812721067938560886734291474584713411004534436422128695888148727842872015443207184040096174026255635176506904128271779909624418383036873001594993599379870897435751236415044975637283951671265562263563009016861276628678365271673265227975309724142091303264389865072638259728827663629038596829583596862179375207520304585608459951676816272819585187911831104265992259556340332817670262003663923730294957422347920805022836227923017107085181853825508540831764220226791735509225788737824551282200227097570079690301961623533772624760856052418365719032089042462123451894977306660294655529530452342098272453070114925802193151146263185862452190235491999652405687899715109859696183547719451229197063000249722565783077696866880166582615031474189109067216394736615510814615991629301810152712393604421941446247257943236733227556152717731380701037550812552298962680991457597868770024913903982805630022574018602226848624762437240249625010697118189329341260088171056955352645027655594231828556026585881067147505397779871912129665527492653022788234601829972666899467525707213315601327328702002401476688235968810239655414634912805598252320007196726715529928253017760227442680674781776898472070143233220822103473288764351527406430838631393937390389946964865724790661403711664085708879157655928133644324688565359530695466092168928080302945049125461807330295348917042761104717764346922471605749575837707274066774083170755873341901896226291395083532657306669439475982633661679227247595779768179105426045010896351563921129817394993081332693384261433735986449892786326814679561186468387558214256064071720823179728982030921237752500341389454667823303044529936274517723606249756523612840926448420795181780072707970278003402901448172773244804211769385456012699055440834226930224172702030195450887079415718698829150284948019043976803906298212044786767743869673068520609662963041955740878542467302844921105529088046126044762031564767915310745826140212138521521922276662389693097804799803140221867141934096736951514514078716766629776547513984383641109785490080112006586397905815263328490944239081379993337430033518964474948750681449574190988299032164811993023584471166292010116614522852248061290359758138996042872865066340737833031133376053388816446172823100484257150138075693306705082890137990001885662493945892983331256636251609769206244828164781336763439801550131943324716487133561752654577837225223727867965648453354434755923190423044179626325899511184353563747214486749506335661831634457504022301626208754643279635842101908949390116267750441808311699523109973902318605220086541575203180181838887302066506124359881094603852392858393051432326798652861538058554293883727990504160276736522421066268674666216088372218368299464460898760868249019627963905728773106713318313978192292220000296512389649274195200189796975278974853153516784979450759436033694727140238416660052891268292144115906045261024868523038305462978080284576928005777408637549671541392967288936350179785790417203390031445528990307613340605640976493646537208727725475983232148245117037310587252606530264257272049913415557199004515538552028635431833232058393183588330137513840772541584965753689513046620999355929867403248678062430731230456640380346493005070719444324021381844067256712981750090143604696263453411832829268888866771502436689820670765563919090494930109551047602405195102643669262732031420173878955720493287136806191928364482211460648007476452810293995051422651470837388375698379379896700520390030563761389660879128300280183297480035489560040476160618587784285954622652176181719014532385700027551358495381386281731539717381631214560063431817935464354534674689175130107006749011945688720041141903834219148972668804557716842969352635803205974049069864773620051966317475380080001549760124560368908471540443231099386498420615476764086131469427304192393559434817710939244665993958175975146465753608794986551289747921546921018612437123963642403689028049902292660440141859552276446462184735825227788229928834349144666538820561458735672232453502831385040038778023436501836332834133351624756675996286920295496714315395754165244149992090309463938393811061925949530848978897869532119395749802144619701598207408114649266626345588427084028338603383852244157279463602358018490363183868224390795486833913266911177178315733661480653202433540364468075102888134106424944663569591337028755224054105714418074755296262752586010968878761028426260925654845588086017805553194551084077630481838453681340094536385503073062912676489391906402255440234217712739595587506840041385015182310331694006843331332445402887687063963721185738868471836971876632578027607447728404638862604186143128648415401854758291383306198947286571642213575730013892003065856258516959662412826139087255095561646093309771838589531514341779489791565478632997564057156649400022131478596987095983410912114397309904125814883945514670076285040360837012618093409825747657199181636717051452817037602616019070965132924453760820931231420557886189231142164128069329521139539450017962313652206365169815242773361396260281682468618179228593276107272320666817810245600377633573994031546609331790743752009158303450871366990453644283736014524737675575211388177323568874427007593811783449666516743194364079790739496741262395526144099102258188972994120564627263374209869520109844039692925051085869274196457284927086702456753382927510941241775023713415788331314658006002520332084545686821042504664853860034655257198449143771347368013388056836542864601577972408526127069891036597618267105984809680321690395783252231834154734173854508321524560850260761599477509148167561561989083207409610708179817342228838843166887413453039983292737175727764516791037699356282131051553864835570834480835535481883773499518292291470739735743684372497739666216449204702257003583482267383612070312893950798007402476147939566759616146075758927238401444850223724470091119339951823172237690393286004394603501580677684134954940111243244220395922684137546529809670701372822732350943069551131263949455948780483707229411703260923381774632160274825427302608255058456439133554470714585969394186308741809019906835918004153899120620320630373376732265468055667528544952589609750532896812224894766729956366521422519855683746466599465998820318415319074861771631350110787025374247900785173167985331818909941828744588414861293799599374153439362057551244621324621646388225320583934665303123027346963213939520081032844312218312120864903563231885645968803490803912009948027684201149920608550005251385188760302410973284498146538230747806828068865877121391957333049753019134189697037458052021191154130208796230121210067221012097790693840570207599694979932948656194152283616430763956033172071150862600325206552365847198391984968470966955121404370539100332644690137438835382930603271743326092457576669692088767359076437679470870806424962735240739257697447108233901264193555800309905882261867077704410699245844648366236328204168637927630423566264186609796199082100808609123287537566148259603672700256712753826759621310273997866105969042537645301715310876370927806449775442416889863733774162907691012085059640670889886292687076157920881820629761296433917575012016221306727987851076498883883970978546840395196636614626929371657005792068985245019482272610242576612249239693443873207987404330500147207872096026673055739410698595095047109112867048937752275178792324003110792979467513744531321866043258108703385247628805609848457134245223490572723295360264958473497893276643204956706562185260563815393816394006269510073491966673507210804937795654688507801759611463141881729224857020075273760914259478133607889380773512650950688126105431480671283664709579279890513967972921437692186983900320190257756547233545669551964053216721686398958036655296113790637033267491361493886354837544610096332127599003279926843640190121813254549986994926835883036171937555817113586973281155898421348828129620175493781606189561505482929058911554789560756993673044511863711264509905528777113856469326641701568654781077990638223245398369102854816608829660130155134057263113275938981551353151232152451635287103097479144730540482088433118803482117701349059832369168898557310212705134738033379009565357290400027962221790228373808860593579740589316600281603729025955521431889748454606283652721952294284994941245670022317890878400856484298954960784507679844193041699166276820958487074503404400969857032029860790185155043682406257065614801819605390339461867600603626658108851591754638090520868359513926664342111360712377018330387603066764421873731934877097437350407492790591815622416118944518956987811908512426367210662621856032353066748015882846027633126651335749183023374102994036581157451683439989791948652505939340064659209570998298668736351400501489063066939153922781908620528805136826700617174695308956302709635687869890646721122218622975180351935573924068212261457452434236810268881370706930697683956825173351180353181090628618479670926054178305016916282956759601997336814168084025801796984915800288966869406255380047848219998058469805457094890512905636097692691898069300283483836388384690409924106183133782094560619501557756702892112049291978505249637020258813574832517084236391925289088537827602455378042324117321602996411151866165773164536921713001097721340297948074352303618870840350226161707479860641993208250169676649046349264702519132933923496739665299761389965236520337731590085899074151780238656062703539210856804251783043525043515695351248445436886322736487960213274797316267942288630811402733582263112239582390069804517385652585817986608241036639521719658554412172335480070417574719958648694471570599466129847113993614255417897598121019681341815449944822761407229525033982338151845530150691684216763558027312678061136677794705674794945636668785706906720558807658040559957458414804574662643235321036169153261777715807604134447364641335094672771907779662044501329747639212237610892946401217037966150729079301133162027305629197626456408934700060568035805258406611126169443425283125134403137672397224416164990644352289919936773096087434227385805401951629706070136312909113271014345611254225385252043359429435494053108077535900384985659939607494154203423487831398256586245103278649155805906193578174219401000665968158755187268291664022476639543032200938383825542132112573362755544067578315192879400397463482586962610718476091355487051449274941377380665430217794654281845846846756725296053203143292162189599739222698656361497868914133094855361516839256534399888566532217796361521018483132225142257418830669659006360873869896393173343151431591872897197819893032250463683162679675052999480490719192709079383662379524708612722450988767023349659325719146972502803625985712322721097942447091593639677703004934594559734249919628368857832323486267433093159080852439291925377126325423111719965411833398074727087112751946692918872056060666234308495147684639033811934440091689718508959057835774166064765664526465208817364528304598295459141020505306618775850809646177432013949067583648260056935101162057827622693078173331053413049134042846655348749937160780801579661746894694266136227553875860050190411100776623969172326956819954859522226952914379979238763803035518356428204448900594315156144730090050068703647436616426716296853551275006318706860162486437761692299779643831379675640500587177661372526517336483341776831897431872234862176708674386734358274584733582565193012607180257494641779172851148302537752472251061951190709492793031204742121432885127941201946063979927964877351954732308402143682664030643128538354167099565418690730840943416603125982180857366055772709279099022732537533176616248072354858132453490138925460563766927082935012978636886339624008539156425341186528770601530025374149897514776108787421774103893682551365870536037559395632870905015757612901106459314536714369015527075205489085313877264701958412685598589525608766407744843108313080638383324165975315751527294428988805301271514986746682095149426901683277725867082117598409826979479958748119446917523850940348459666117979212594683497518129814081112193193359631159650499509716077015215527192007904344036086201520043510498490175556315237173744780053982578479390046131443386707883845601945219755573829569628098945885662156763886330657295769791340282637338117411428159525933147012387528523570341307727554971722557895413694748996562152462234799322282517364530292619124446645583803376597950025667374667232727130638987473976801234093102968239637777467964818730734840147971850082888326230253497612277659431472055603830668548216006672497004142271412831882655792661218805644164207081218865938659370593112734155347880449429239447349582519311601654763364128176110758363464352317178717919292467523203675897006396947913178585938843114749429192513365954493922214965238577862690643547032057715068515170008639423002889588415152243399803226724188150689004097548537432363299990908222631702438541850279586244091921192554075603232955607935621591125428348004899186902972902630517326329744569114845652000838900982059264229529265543506154293516859550140746246954604308913256690164802875757615395519009292560621638488862437438321797631031739686980653332325853579950586276786772584112810272745750486895813134321348583391383889865619378708937389497417465345131545808857469524480588009875240701241789426361529691778649487806223175301884997584242895086427445680845376684235928955920097024027859668774392650745325258917904848902831866545241021034119225337636669723577566254408137121146515073177587475582017418798313445638484894810062575396036405408267729768926218589702826044624226240598467940201517060789305624826564895350757274478975946652366392000330303369489166001778112432411766221205550498439418726902842863627503713423033201616766768448378216481169084826622435362931310896074762845086749891836041706345446725644576917865861174581545865612661808910416082896834872384197923446238982010493002677441812302923218090889850539264383288094558008417460317915070028642162726422366443189979564516921833239482462720114064572834208223911732446456389347117644980287830052565882395084713621509668357140575914894847675179056870484859285787659213873886669983141264595137199006531811513466280410256498887248916329943800965439965659585375668957379622652392378388843964534055906912280831907180119230034773292296376699247895084526426083973708097494703264193473099137704503512542655718731456145139992991913715445494043072502583028970941388151326895519218846286068187058426312018504776558560910824962729444553114129071053527047916998717542607411226884076614571476404530539533077394922774232007377328901949673837361888346707849728825819859482969556426371777563482058879391296904829312316958631093092887469144769366850656745185789706293191915616291387694063924886369969994469899402362500595105791446723492454548700282363303420464785946656171196810037446188876033535904795483646019280862003465407484935124072461850683458167893123462162938238959012437426567501653532442363699981916247825095293196025020389293194723008570791581839308535045919564026505409373577703624916757254031147517709165988417199658059243807970933674390540011507435688505193559049723086329724934698813540549913361137863705620780642148561717314044587266580110290649954010869767872206252335703755604053999142322314986313996462647930114012740939426505926705200363884175244751439412488492631154166482953754655706662174456712389130421896326595846140611026268942878675771866206268820559326695617442484757950861072958736648381251696047896931495486015956194604910986480262994722810472249135876061261269801363448690456394604508673473070146090519162564528370053817117975274799121275148985999135341194277649387630163728047130650706438511896505423626264401919580695846455973728984463291860750687897740823976390720269322622019598689608471417596362556223129320593230478037151044420814070735683448095186408603150799794031940416969653401741878464116606240418727012345128061474549030196695844970881370695078370824877177176586175197841177408218349491974974719629100070995548167980520813015115510248753348470976106607682960252033024973402227613560653027028153107456493493457581366004146838619656336188264687181237737831773869462309566902504742240334876747098307105023309890571134046844622646979161903190088657989994724457304806165416192715558936094640448787204965078104813603536175628769292548086217864596594989787751450926967557387050421867922523755081406821553465336486614616452637285918788563303894208989647290181216581820795874874690564366602674543653021853490203559513188121847745302760905259036867563775227460134622950119000380301157229671282911366652179440342760880144685699180661648279754892336229577764732369423683745925064196023261512746669264477858656792041538766705498985224637035281104823384081781564488078859652413167989522975108937012842836340847476419044216147363855532591484736893580939561949575719977751925928103030091533672056988897411946612571544928677993378135526342347560871016166542391102429127886086096140577671062721523191692871089727447067100471442545316258101340534664997675785009950736728176598734140965919362876757615330755434900705462451257576477331594474908164980592716295366621481335007915350265400559518389247967499752578223157542268661324724016904384719415116821066811408445785225547410500427976625200989595770939211324978914031990148021654215043780079336607818200564267929538956163713142028500061315604665782148683344608452762781983133672422153503627757216795937608733542951861785861116530984575687549611099114484606738316953200208785621410642555718759085861846568409274671182864682010487072746493824162216708130640137017220147373900213459018363457323365502336442425684575522176720429195902235185883639673792560319835145142407292183647704116483146084565656329490882690530382939756948039259597394225755587215148719229832767475597107621827921020835190016040974720351750622286607833280014366312557583433468712256708498702354691749187222229331330493528434196879004825690745906768862971842042572910823321645457772134832533738311433027209464400449775823092727640290556847786843142344477353844640031677160072023532962394960891590778331158335026819265101427423687947879753842373139331158181925809855241095378207181081508351731034171518575220217324198493108575340234381296796668516338772962173754718351549998553239186713745798888277006349212654233464318685363506163296890270201285760385898595975025074937480849934213983492091334832210639668483197993980315563990091371449071151416639936652502758094285763021388578687862057863124753825861606296900730447742197318932794032278347668049110725297312869423093621453584572631420739233976097927146755373984674886369801977275788347951986864077965210597887955084711608359726113808592851649858503728003468089218730059227934984051360761221732503471630380786205532039358573732714351151675338042783796543987147325500652855441815039269417575925123182308235246070169268345829283292241945300753039691622863831791323041243506096815099270092200662331913024373076718479116460083773462993134270375328956807414792519534516594575969280779988521766875348493093209764536898965623238528458575102582528382947037765953674405859107038560871921981794611643004161558108527093076052723683575256108637044601901450960525548699214685918515710765786205165699169501742920225982735269369326367923083915806512375990447207041692968461343399360799266641903435011429356811928944222896888185146718933413511310258536612148290400095844615107768198093682978478615852654366406410697697780505504086207617200632234645642028613363628746229037288812928468035629388068546989817637535100935262782688686504170599469491787967910225445158832252482081414930288138777604709981214728109200777671652064093388479260737326871859127779967090543319179368843377055934427954961807627197396534755754743342789101181094302700603484167056380691979347740150354908847175197212974125209629583290913023442752979807195818587771709173525863172934513130766668949288027362856718610019284792859020626984056453093114083837872503024811574084705497297536690629584950419185875888022791592511521151620734287021076844400481304248405634626585879314871336391369956644511615381447905672633590228311077023157919946707500421287823039380673008483737790354332092009466037884286867545401266438240825877411543547277435419760380142317959614062171954300236836680416530665485518209851330466878740163814158197019729392660915325231019889242362998875761471761099533809498164059839234065536214932103583036399076925937091976051185081403513031652249500085126862530903066474317503962609572478428191863690447334833737607112879761646006647321989464011607460738329572035063643834145225367645747741987858789599794719845640761190809070797879131583854906746163279801279161770875723587025594065878388742805613346511273694120086683979374789230407731014272249905137357978205617031533856417917012918661474508408143935348618429639768369675598917141454249607644078772130190435196883862553916675874469404479698532897141335561540391784511780032853905160262616921147490017797047222858858382679216803352314104891108176550506607558887962952417277850060466440344466458054912969035483837003708871540206172887727347506066942263659338893419401907732168775796936954936428982110341364508094309954731944340126115583453106033204348197541929088655543009215982475553131264575593432012937279601441702792081267942380216867866496314946121850406478722505932913253104468077589384206322399638829870931714311286746833675860908080725625624596217577109490549107540762702175712782803079491353935411693637276521589318127383145358960617895463365611570419106485676274176065998720383662203263417371074527946649586038886217343445655257026997113353302216105667679994456069376346152292332310846412759979735922256947639305836627110269966533018806931936801139632627341627388622388598273924426273696171247176166986865713626726098091817244465123365479605308231977429640438835006989840339418591938210285661440582918786578522622170998755561103680673494041761342287763764690341782326077154847805924967603339436509990662649467274213247089188628362322020164974023981072133836879796875717900094444344013512970722398728843236070336733207583578087431977283828247296622027025335366777230625993834904700851674542190722877045330400725695809485674375074556763912566216830593512168918755811403462456836165253602545319749937424548418078619436258606441018964227933078553886351644436590417930236755739283928216292642534031524970376992582692356182989466456133365365493129926111564102809642542836985265992797911602918864509981603949627178290343757783998964729960813011924189298367150622839132196736518387287858572106457965936449994113405588709925645792678826559469164796717103871133812283021867477722417417067638562307955109557138833425972620264026210406844590573672576200717964792348175622580810140483759672257397331682783237061807414181966064935837742704476657339769605601684245893969088038525106301977292404919269091588936683764240792697233897975150877503700600251473169462965084930914801487660475576746166025017192253881958367876698947499327180152480232187813006182552802002383876491839282228278195580426283094166437373258085286147460532085988721104157495248818810545278130541714509605319471590808599574857754433841129407223367791654043906824619549273157588864647218120729448062868359224962245814756756028404127912844310321729962602673527115217904326343230021168160448072672090470009766181022269460288947273200759783706532755056448761713005894047805808837185763366914235090484009141103386592961410619479683310555835662229171751000098497064697828693042428501818479043590942534368121488159711381482070225965114920216578339882867896929606538328849385286489329006848185638927943835324612553551249737771076520897814351881196132980728295985055630917173745252074071527007884790504929834316592336235057656902801153261061128806648777452513804134029748538763997405425443744512549841424527728789019444492805991881537531928445892855577490197335958375515206644937956392836470591481216033552488771722739775622185956903099576882236130075356098230599610032620099890640165172135861248836348830603367277286428160559369327394759609661484953686639478300717693576287682423598801086862523838520022233576700197223789126908862779479670396221650689231131757154080981669160961237325391000811045176447861648889708408729395026014490699430593237671027011378333355972062409700428185677778703037171488359899768004617776793828665212731273864674350383553348028563709218152527665339739372507242699282646948800931356452712355871225866383783378978084500743418706822852316395804175377192620096188949512643828461276556159393714060943612425020717184159340285318763840571284778713238634232883304227324971888426209602698047083531098581619690946937459263922509522759555225309202514916114118656411122438500272587160726813132391202207077936894366503909567042143510647948740214116698696769855687253834256412895419312457372688238112502513576208859388651453468605869833412416369076304286841350732698731528662898724254068870634874379068245603459656577498256034679509321885198240062682363533003556722860083425913520091518113724031814251482459141327602313202467508095471976995351475003119480496624972409327290661573650882425140437232087740504223754857904111272061392445754768598650681110779045806309516807301051785288254340240304682437411871245131171513228108720253820781149307440767117999991403626707981852178812825296673920079518305505575180561381547852762129810909938228676029889187341376567226024049472730120874564430633846074463555803880282502252536282080734480644456711402245015654714747966980454143436325939027787263430041209952770087870132051432597471820142669877390968391688896777945463855267242972966702016187125586253693368384848002154065410698187720340847397810523811806752977663110126885247040675671310795025592559993168065761064724801256472333649934561917017370467219144561165755355080082838838859962094877761454591284339111572388083379626486210104001645993180508607717596653285622026155278168407017296211702569495234375418798019258407027243015797936519822912006336467165905176430590482775827380315272196234571739865970173834430841849791844484507475237735016944646515379212798530103855622530592132293526558258881368559416650873775522868909187978232679760799354492166060473442330515904140249378863053017882350005272757600578122733418135354977433506968859981314195011775255342418854327663267259039414235979584209904260211759636687153881246262756308795523658868067073322974653869847060811593262663058911896407212300756909447209499506444709037104161535872603308044471912327284568836844350681166090508505820179519928850250138639701068031519582567523404413081763397275731206614534026133466281489788011347265369432419134161185444354423477185688523439978298033553209295127234628281275197963754710019297549776872696011198090377910058066534592298510980008079468500477539487295412618409656135924946659287192449614925358598309877286230978128950950745483246203300846997406658591805938953774077687599955590010362571300536530900839704226089788354747787275069287116138087365497742945162218052352556661072796300428446535662927370127804532124428138471971757446443797477252284159526339114219003738284391014665194684826885596557851932013293535072061566779990726187961613815728608479204354529117771204495208830912202803745528885221312266927936770769211428188498616161543120853058146150479419655538449903020884530198234310247455945497398217927904253377127465311506197609573307187238992387937598091558170500568328940806180812117759151449854666897143316964864191642812550163804610858510622429716946725788539100186833849283771011501675401873564273295424016026643274732732400959275185191150697259676061004313474604956663444303533025997638083774840642707540288715261260405791404696888497142721779578428653636794142574217759737257949953001439144255227307553650170964967183536410320597321510707345403841963355110980929127016281129527828323708767127202855676002109782519432551923443191636838302253554463649387103776857769895496452033483124326852776109955480600800445888103732097569163551605622512659899159618027575873165208417038020682117716624983816952343785252329065624673388039660716622271432655053745588794109625617465472940529367019105247444850432926790417526597968483206554403318342831768328423101370657176834114850337897272256755948816424571010116799043414029724930818663740711566514370603181182982633241771737075524291839348599443101758766680076445150857033586876143665388875195701829775250691646838191221227831972320917808541727297898839996986218875928209097225982818555039566226297115661550094703385189302249505766098223557828484954462145204279567881587087478222123351614501616435518495149295799336774999699626107664182210625328758489574742408142141781013256614840836540969566834490069237655808289164983033864521388274131832332315008103347299405586474643038846307193183833463820982085049120845010520879204522320155574343356603228005700223867291145481155666550788647698121682748927534070324719192669922413823814869497701989132371216146820088170994890970876182941458587576697562089516969640368644755741930583005669270721356433065759116362581803696757917875560284336157330772240526099683568185064040983985071752926447368577514529003495132891999577481188726134717142037233223339582405367276190118088476955823213515235751088248829413900181783915105620708021043478673204964207840416650073648571257982403429466075943483244155259522267058389903329559838925192680284147593542910652810782692534119346510351374292512388414362847317600554280392221128926255015925066994204597252195302700345811911182083698318079679791186394703978940609924921559915435866838471876652977864990025933323840433025452287079680260131849357075745250620973456097320010541599506016719841501776096146838118075452597583190418388306106291465971042484198815741550862263056079490129827073405521385463405752660931272916232643058600119380906052492818904985622441889165118211942558713253744683413554808822297937441555509537127421221047288523814413445328336950410073882392117179889658085043339311794013102403718252198675983135345463325333936472894004245054804189646495768551118104163474178525658928201871626465418704682583009608955671148407571459303724722517307869724999974837225982830931104591379440522146710739102294089893055982062238631359173456473913825598388051745324498568190082950285409269455541913653639451262920304291152932357474142149294632000835218841922480050547320646480735331642170706710496052735123257956786946414907305997575741388481489244873267448693907679711682189654938364406390211828250961271440673901736883729334569848639956760604256878627862401725925385721379176444787712001549779591698573411614145620214157546580530967309873878833707486165335996684934636312354996290120353141744268801671845345595324169223191302032866782903629678420200631677620362327703306060029776079007996715799501937921474262722334877318371582177470366970437540011609612470446034251329714321026092966504937161074209560395767215571857739215873063682356671120869375233187304985041145374902550377810903849214000935993586070469338138764682565076331237113346724519245716896388184956724418959500940338242882770726442929020080185842658195593018536987743428481438557664546967674370864810462855585150702414445015421987403429458985057177714052579158140054091494131389807735743376272697401616407853180034824940564736726393100434280207261004078122895529359239431057196008606313564839778192683656622580857230021330083764590599433373922259293787769605222932307205112590122513769147197574418812260560721749166616742961265639187001216214325233721645031847636588528051893810432188042578173034270313424841261663288092753988617769683814713624345028808497472860286714986155126051390344998534203320494096936544394065026856387522504725653397452804565757087277454572888417204965801929272563276460783812779924057094779492387910041161178867060216427906844175475121817051609119845013656256008531168756425131903836917806337371838732000798321440433934108859233130796214590484021349279496243675515113759978232750462554280722302282356309589105493435835940279259651214654966627132853262234632096037149165100767529200983185126987214592895058603645238781971237875217906821534342323805990634014538279331495559576994959998945666732543868978806336289564539255486213160421711763015984800017206470905381262223411046765616638161375939948935697515569080174220720451960923393823717918838827401981514516391017412152388399542337383176776937672915220581900838039268169540883300114888775167170207485673289215346678479074968591570661478076105987292472530777587902934633779484334170979948857388692140244419839726607813283455334680344353491480698628932337351497471293901064072076851204301846509645666105347972803443524518156544668652548443544691170530868952191363344373212767496670106213169033301883723652348132337294027798218847743593511601396576006203401972411111309445478839857361211987448651057546939312750310056962690247865347261387475783894595386245239657956384115678250646229737607197518887737286261147358943810675641892314854751772182078967223899856670712734728814947872190429718928985401565810973415212247965394621699329858077818146761374569139776286650386511733850816938182519923178802674259274044609424263557472137762658952179969386786438201897564887496497983724332005760329851953778300421469219711660464007570826277178653434907527918124970502386406388957083602708259818418671947839877637180677194416871870015116890383787203835850466813788999030322776636756120939238594520994968360282483502399330325191703406564661574635348575053389658262325159256051443096586819091871022087554421151638652374657054055341536631331480936080800814918057105163602411309138509951948671789433006212383094877917040524530030829812541434661152178600714101850239836470224586255208131794692224167335305005508491153282384002779977941082888060604837918100046143033654948045780069862963587706970838120257631766462591041721624965884925989956703383328257364021961174693265250686463631356169125672204576114126079508400133474917536683732756564039838065271077864362758447793305249261605200349586411246386940325418528133006217812490701113579680135411134839652346415631212170097407063248901152935175258188547811799993514324909914011288800512408248342384510289882573700212232984010915942350229193484114987110020755080751863692257919539736080842426536619402429991239450639200766428180834152008483271604705778540673272053476715768768659386477480434612081713862298559693435646248530651882925347994065916818567121563219849207529389496405437310138249325153508846859262960721878235194402911730827261036408317186383118976747876405854805825875925161133468451156990472757063061301735265167130021382011914151107117478952521279138884202905881836032345209195083738163494660748908269582993655106624354791798836103559035239200961929341119671375014034109011726076204946131740742002408715821910045668719893914210130553522338035116751948052315652073328635768486869669306904987436641589511224459878197971984710154879169048422188592826234132482980585190665352823612210151052693820310037247011873580292955761204533405871489278314538978609793460674484287941272276070091827347202395692982466948741749668253512774850926711754568804692796501967929147002938659518518252962955962874917514017306445867684949610291414441251851882626944005352652948360600596916626280054697499973383102981179155289191402230641134270876780049817283697703661520180039575474178999325272150389544341276250670535498534285501707505033754324416094572056346129987196801525405713905367395135192701132078394649902372080476450386473437871644582320917638628195987962309931581469967024244741296979252085124766702872660429804003199348873861255995926197290526220679560661327047317538716749902031666571613588274237739226671787649787744513332900262767731996401071233475695027054601499166490873203154384249189890993941558569732558952660067856490016298521900656654282583373466455297578614446077598857645357310389951315546022697305646719343856560199555777532667036466662384568591497450194500627647983735248287088341119805957869982889112011547268532369397146038856937953242493799647062199486170501745523037508460962570255470354100779314465085518442648359053591281285122322251409625462785266453010781588695580209159657265064781810365031433787919803106656510717962580498613926561233082751761276344303840499905095269496191166045809749711510036660751284509082760965178711155329481265967392075674343863657566492271990760040977843990971341602679718892760321467149119562128974121819606362373855739375620142177192245927007289041459569033913622819644291879026042908353856832157544265717891901743780225657069839694256479182039000949308054540911780009207958271583161055753694517427543256912631951054217630421393160180422709548511378043650218747099209871996408645392260219089984060317100470659130811379410003896082724898429358792216155503512466696317247664974784327543853334384145954008807680955146928094733061664192436203776810581551744642907990230084110964582071292733566047494629261107502191128889695173724127922222340929260325436791936693439516744973474883287955564552331358349533591254224533244477697956557509832230687169957402690423443084281095081492910825807505449247259638614225559727473537533977279009278415926546891741207399086395507760636877864889468324470825589438884220785080458312331254289496479874656379087894307112181188516458253070966624307924900679012488155323506058894667593770565460075348801565889054441143434695961069093654064853317850129907567533698569337847876589533720504125218824123920167642014256414990630797106472935330365930691654326667072335933104777377552966386096573058866461665856318041452136864234875742979008975461118517464822820494300271623056831152425397987587025052576943517209503482734084814831542387347498638174287017814332043439800076497301773366753405237886921503131312690499312182903059650709459224986746614014196330470658125194458196922599957403501186254268389776201447899098858883621082353784363066220427387037246350136790967526821206971968219222869832815685355003442375385890489881983466492625332308956429891743199210026539542870175094177535125865586597794824465553431404672713753299290917418803385648278170852530192491185263256126014392089914110054421588065124514143758456014128583291096897509133177102286964374524058476270123884796751109383475126130895344560405190832839398652243001430156724702536731804295097813289455360365041548384521618959612250952614416228760214774538576857026254198952255855314605624824118894380664690320227683747233562943267118477391283189199401009060372489722917177230802045667847506292984184486567449785063763088203402953332334809972788372235869307178307593059604690936168670620226649177660683520060096606628884979287491622978342811245714051927331829276952149084482766032525452194137610684044487739977613360986361838624244428513468145579037893262128424570444494370774963823609630050766593315846460118035719935563190624419986246357811688648542016345481517883140363056910238530211587483488240006724199047339330566090031079780782843279006775980444468587945973897881246502589138498384517066031405854045906614611458026955053015785906033107768445067901657431767156134314798911097668043660214287316113522961848432192118525578994390995375019956540485814459322280834829897305458275754626936882980852650664469750139045402655994735643446890870307482379641454760422159712947763982325260855712924114418508759346489771177237219816732677073093708837245088110607748337701044430601040140772113354112128664841335559228880283821699499879027895624706490454966697121296433332727706973199929900230533810990685254647408520844097328178615538953053982229853269979203332087847745578680268530087648867526643091501216180675850484352849115724748668927559886855385137995251206806108879801069397836700636501209666256109719133383474669959251732325843802580681199290985531534439104872047604518355063582010447897388619316057607394753999574642652435818413357248693150539709174272696880064081363797553357124050775322139085459792535715588272495737617327896575610472333058765938339381012535616490347627567191004561978483234020382303602947681965365060795167892577265681640468682640629829007494778619329603640755371449997063967035505007320454648120758154888703563713194029032397192704561125546297303746866338419005140013255832230477827843089895201658915708434718813644352232141169502593545796152811466280394271230559710620548608908120343877224626440045155377945776858179693686780527388568953775006786427100460144620243268863618714374585857375911621709688304713640956653397899240110575504192173403975491647031729432190182327518940693442542748847587677912695036013680359080847529625552128096920268839484235509025017669185728924489867821615356144119435272356206554407696472894242786893890856875265784413237208420975408504003682086468020103945210913828102887040175708382984282195273424947148154828578133677685987703007471350331207848609387574981844377047695319437590769468323017956568272349660525119155561817043813033888821627856029754457686412345690288723471374531852487621697211903551156612145183232404724921446387778813302680228136968522200280717394417904942438238481543754092658031482986722520814241767249014559007301650047831705701723188930799729520087053248670675079076583800959847386590069129111479891037142806265187070006633447557248806627778314207580583694908591202584176633319144170780851725694389673321578986438179345867223133327801995080719594080454841829924914728662108099387265190924117859820436192630896782481160854072635929122925764711376389262335113908649134498532031405527465517339750371060784175990896472187665503118534640459312283253541701358540500859290014795567581246561814847541464439756832811344739947770965244534265596088613053120165579758646487884785998091452840478655270528728700029607822168539777014047636690107202538893549729787921868266533661094744701778232147755274439561304345178938803529784811090683674154327898863156314091650709619192135992263847047047012089579915861437210855469343372808935571798732304238991247658332969349751885944286639946789840795953652566897561630482953416573281480177750114575714208486254029683403000729093468740962433683185734816929222013282384859828237977975154399521245870124026044587691025583241798304392117752823902572034357734360044893082342538201555653519999760224832597824795755487828446062396825881210213267500248412518974887890204998865526890161395850742235733630497810589845939346259134645411506568961267641935207743127890242616323821295049640867379942839170888718779051091768969560779703835303467728916101998540561657879466472531604917266399963227188365040236431365820633952525539567007257748079431111868442607826114979532862930140343932000708039655495294940054803484013114607216181419020095566904559417291256123725738649823438784746531260556684629819016343573956301380967023646417540275168078216448563292074922219212449434732670593803469955407691997319230016217878767058822942479155213592895117682186523543643203078744204284506670998755971237344819824884425379624059878376217447668299198878568753260197794237465955823164342853428911946098565346571722832187399558187626607936721369971788753369307497326095755904778522473653446710208562319058187405721661923436567206133782816854186186678597818761623848823742598865824813563183672783495770524278763284434573110233283997410693045686553713437256973876273180449367295525384493326451691681278116720027918297072192064852315906112271618142321552704944986101948773925218747869333925628432234163144644203634750811720368958768221547037722948672470134405791560925342726634200638107333674133285432008493818927075678644766218111824416747315811006243670529575589036174556200398087356087481915511718675597176023226767871389631186166546402746999348011709949302624705883905312811493906582952048660685366834016883124146213209233376757296678228901410823684356155834910342884491083887692688350720920968529211264073959029337802757333470627596574083401877342420303799443481086098142650029765847043899249425367436879854355225635893375024707482374571698253041443373218995890626405706949011634698691997794497336853099460322586638569667899282622424750700847771479094080327948926044450621870409373643549756149262870941747331254558813518960629444771954812955074831119277803562707699623286726399267952059547426385400056075050606607596919889787069001550008251804499707179124075022611135040027550632991515225889907688963626253747055042807698696074867662056507965241289380651788143933736805267683836271991527929629292763857206903743382281694802265625314598199451360342440725686385536467062327794377762333596538477603887168180811878146631068608960160200181811205779914571305994557202640146272204329951942328302037000686321976693975622796613684114697123182748136494830025928431814134946146764989357707436998720981873234854087758876318097938346326681684704164422330280363502983848473997785998987201573836086403251290641921972864820216847302963393301307904473737423518251107530764247622198069395247316527744440292220150541938389397022281366330174170519826211163698251934616106117926715789322487699937528118113177158325170386596347764370177683388359107610209291590712338281785029358288855088195488141275991306485371648781425474894875713496097990320391797671887163850597180868889617939790089980319833019075945675632562606669327449758667370803914191360577448760252066569049597615364265406842061916079021530251143806784747969841142502412165107545938089123600819852066635155750273819253609019358231892281607522290515046342492644245921327318895408133074028259870644171372697389624217291573822771355785788333607918252359090167960680785664621397915371152743030429578262211870767148300207840577702986363397810329342381284977760408188891513513025477666289715756421312233069392872516690191869674973116788259637403811084295526878897511622927314388130026571318669696647379202707385504432844835897220121566459978364656974418339796419826223079412578033294845687391858107984126817623647073063437774272646622723012087215681647085699121999537053416651011108629154047847550476980327523978053008710842211644815357863904340875892129263830033300851122325342094092296129048003858543724695662781492086666255235041299192176384056226801128685296274516372030969607518202935322781563917177470394311149970046392312143323774802533424332715973782828461319376555443382311741384188098316740869949988036287112882506303275106416961057128803022988853275326698184967830757924247003391304512653997702788640454455710601275375209788609947917826471103097854137469112403261822279054558474084996160376260774328406000837505596604800830692389596872496866779430900503628722824601238496829645579029755750690626999668465302210989656193957921089686922697452266271468924169028914287352596864184382468859749237660662158196484605872568368004354794467913784719294789995286995868774811952940520381419065196345624699847901975821022575469179147773802504171749739544260976253831795948902049682431503086669668021086985675465397991772856345659158237415821043445449057868749071050704300333240573445211195603367030902424313064686159432086392526188311060880818027332122873214308604554094014290648790084363105514519800877893870568725364086937157088871535009860834969304353121150634822950555317055136770189034934928870595931681519820451221807767434763318273947529045502929224319171056279277781712228009578347348178939684551649089980456953053052940246018746323326068203577129051926120784269769312577262178440171976128645195318334782282907810337183977723585905590828786377343821439165613363578166934869059990579985525547508491375358762419090200017110499096630015575242778910316477433235727798227315927956532766719099841681598403514965016688007849855561329335755717428158996107908861571725829273306589094389287309635816168510155383793700080708661584594195168800478996298206305194004519979510572713053457282786453052353096043437666364102053347349826902301249755531963218328883224922118090901717921378751463814173229837103379184830802317572690748408904548953084076120965854295546386250624473768136410346243128046056729175326754043551902255919921919555493499006775509219293205310756280407382990815991420114008193076917000686686793937649802460788965691879172049554919392357132233949069459708671262426906305990349145194552810402794109454513919566480132511881123301992499005942218422432549843074027869047465070808578646470597343248089951027338238289160957916248431747178044561894433223508951078141721326407723068070821483692476348786688975624578245265463698200943983595726397560797247176523576169016904406999919764613765759970250229328413331793881777410553738701763759873883229105140585079379124083452580127164617481785398088473613975617543790986554139387573844131734045223135306258178478590310256452748324019996107850696480407516158153285290485565394365743816832792304403120983739512754013520664019684174843678986238436655853878838666481390153634301986867763171549029673836249478057536763808028954277432750649878608344662760263361789623603379455266381581023380411847385592094795094550009345549564615320545919400772008872788190323754920891344484092882916583704002343551945149759938170499105497525644785499204512072991168163121736443878940265822618150486879831106258612325115372844826699572551213876043521629790557429240149905152694397402530001878261091300547901314222901577607331093847309258799813649864226850235413566168603656798964869900550089514316112693466610281616517306900008981575883477885228391121306993271810455723918668572610193358265180789905133048831770995054274884197188627237111815940430897962863773043523343291720994606118937100258963093681092126810081344021236320386625259244675023276042102788779331357718648652768841308094412218226902545656238876330049518833303913503327103318586892688646100697753419409956419919022624371253846561124368943924136471638014535269271573111745982902067739964403355856373372908858361648250990494938644145948568690214646223995770808602346610483590736906446704699501383110017939875947221945293342110731640590024246270943112539233419295007262852895638969700616936665453045380970362470184852835456858589085236052835495285327512722405875134063045710726507429329513664581276717331246668319026865933730570718702221288040171411024155256556311260185939892170175800065018711940036601190934355057234348026381092931428532794717580719202679827360278716008193691759078797552575384590739155772258422397321152468537917025023065947765892242127206572038359937084849041884762285834077949064431146821167449668150193482611915731089339935661557084351832670363467247795269543658453257362713482882306481195586368329018327886098790754203751001938070815198557770632180933448384555567329270699367656408288566163866371350341759587095896447724848623026951647832409202344369014105332217358158848313640705955177798760643647978330282094015825007659283921177955626124340553477627913826505855752517754392364790142270266426738193160749056523791265267651249068957523204144891290641445201303044551054118651162078874265292941710318978007766260811821816364117574250711699430838006493231334655292580004845485225375209347517462958464541118122069700559455467055742475392475218570264289990016070478183349387686633618933386380244645715766338249056766951696891173101049171896464911600603354341458648132583869441092050120152488887087747907484568742166652832908822387347185113562187899421293590565259789030057329921883487100005798471189326618755026401337614982426719284617585214752744700087531092434335328571573817280997259122738681374711111997613604432739676894199384296807961822920049987245158751850979083532625424839763877482292532057625883299333348837937125404189147290540919003680597594690041012076368913099781414729651215132384378000898615090471177862719526451720133469897000169991335633870500104931244315334736670804081197797180173233245214942752164545288789990342955268915522304650737352906060123048622063476976412556424410086329259104456663753431363994994077326267229759849713998803859085783267659358307060273526019839836889895378453069661869022046943218053440347845897990897029732528286046688482993227719742463719477005653607891854268099113262371336808753148702230319409549137180438629613787961577682784955128057145156542638809615901439672463824742952275934047034462458660293347425745098291083922829440280296364052134073316773140066909907679479274121249381583952175890066681043546606935293236231146160183947625785414860037162469911421802565360382593073588576363769608258040390574267567264408988416153032112484799382052899366782342907246362986653547991816896686804101931500181148603466319880279712218338445068606716620527036793598473466915009869781299384351994604751660080978376813964155819982387974959474498567106399139226136519513801252923386377123517708471091613051466594840588220162260608078542643677446386003367576808828164165803741219454532033271720600987945727180537579735886269512874868299184596438911467556110389803651081577627625003352168140618786389226858902239531618267764634689370615898946912102830347306712103168774881272946076656366652260379645401239043833558481031542866405718382612937004195347454595463366558177408801973234466155394529496006103172090633628257816984205486011488933234717608833185828273269745116145953518954161646617579498292854979108123638353265550426665688024713654569484943217158485564274760837798891872733371979344974138260490054966456476985291525970411887336823933760148922845267452635527272746676608448683890469253922590486172041285756216319373893631739618333020981904605245468021425054991239769391183500285761730227269160050289802104550098617055195227337345293690094575599411709884603908307571603689880587579087081053030565363554301467878559198022940385101628624783002247759917942479481555272921380900961969976335719206154998371176120773530611326865705429222840944088769997970846663153539706159573886024213158316494620525519486676089105233580801360633831193994020534869824443138456652492916132444710347906709208451243844836259574955723263609108399343943775372998191348258139368022946049379099910425331993753593615318089522326851256704867132463993600452977236173536611421128126533971363208826610836303979629400940194094961282833853428169952434574719792212676663586288347033583213086041271702709136633635367906098720032470157037107860022018604853615142543831174453206818602404180185635867467537467907353083185800884337862634874221421115002545242019424379125530634160966952499037392161677182769652155319944746535855365718869875060721883571353742329954691534279084315423547131405397893178020445097158722902572610154216674137588940733912317795108978028349356613863713926458515099249718375392227504391946488541417279032240038463534126494255013444470495843068302260288672002321724914989699118289846986947598671237860743123935009488265263576513518153241060615791930956995746615002324131584633181790504493196628819447207339768313732921246769506035504907960289766304873375021826830849416755196156909674072406081857033100804854784851336995043504074682753585610150842847409644406424137913112972016227126732939897108482007239057960995033223478004491257446299635291872112220916422679101544273079055653856616475069065844567954394977949734861668394640566363229769189642091415798624380622999134996739937474990520100936356874411297711860606309374266002174473525102046246304416940553635070423744484839293494163125931119176273368317737166480550350107220292282431719472684274788788845513316408375538936867767350214496550938155204704702555063349601872077777372200949052018725641519012380361649610577135296540361311051585355603723304180797577613443784950065429994435729616223436462695113590182688224764232378911765753764452985699042943453722304545145649433423505563380908896225642356983385078312088787569097169457487066758807056156492459180511111379199699470566720337465698639809799098430628408448582881883621437267074302751375741956882392597667433468427718700013488638404931852435518621263121922951821236653461666449468397663036744068050983956623003566403156606528076217546710758109183699270154004089788060242063049795283605909335612454740778945340249602643088242266788040945288522472981903210806335049705192810624216246031267233720440841400050445628706759117768155811276114156195694530171174385592343802685941866294235379226018904666018104272466028100316887115791766366224457629779822739243029591087310230736525863835996671220628962865244573002352348601223785088994016799259396817912205336828706604487058269096713360639490805520452186840930445187642783512731921234111609036856071347418982823849183133379254136456200960576189286862420434058581274939282120816328126018541384866684432223933479846830375381914806713303744290605598890766119004390434454733196138245824890286280533423522412835881493950960580543980891033955638338904402536109396536179752265408186748206076200728478979310511462203411098925396230140526255493555714730361473365056054597293258215377045499933613632961805828236979101809301897470581565919920876813469070484090484278549930150195152533534440628670998193848912514739866484770673699271400793349313334925683928651892620476020934690989679995753217096798657359589585264792416494042051038076224205475834002727911999171829658249813328715684691031024818531239932925402185840149943301604065897118666690235780877727985755396629148343254309592562997536675037106703294707393146735016989699336627122139898306620113916196120916880187613143278027870878476743390483966375954960743341201525970075792342970910977184790634201248752930245902450396056040322901796471739020939150575452962766074143783751097418119647571332848362902851964266903272881146209134648068381033751514731297584935777829351682169789617602272141154858187170751990978274258237492224891497450633488283597903442691982569114331088954592019854031570103920966817685930871644801017433044849970684387412431720115069225794405046627345900320150975936433724967209835819222549195298354454023112768026081705269019732873221799659575042300701101881160586895528245156236028149445441865186748912265874208140927106514167281627784098577659851007711131016379679478973318122002663076912041039344076961638371201279757932876992343647189001548437937858836880947144454697519818767414658542475490059525215974079682832395493374781876444939898353620453832544469380574740546450861848349291087866530941468384731896386427889299446437814924011705427672245973472460841869536580404947301414135953545468732265378132869875232553652502463772412716765757191789553187299722703341427615775670073537716594560265880803986434140656099802733329983699216368386206201375416002472233246150063688443065320175723971257760117974797967348656063585769614992698914708738781324507804568203572671377906606820447138948402848855058170372127613489926977093569460639889453380189966594233802717635275531470351498541420295924218457536075544608390424421991213156183073895869703986487380204432204741224187179561304823081767311075632477350872700087673039856105980432196621915561556585381963616223199913204490950299777323485609936363939504240820518089469196112561859139956766730276320721906481333124965413760701824128779767039116831790723066518045639489156397371891388117821250595631106433178876513234629591468075769147069826634936563169090555097390345604972466303881882566321589443000277465847027818736576621817025890198640711273474145985684240420874634805875726206551249507704816264856650219885329728714512990137815834078896561660483196801306202264553895729260458761696327869093940020687688792106348412088504125859931265162104074039023725932053033690481149948081898273024011176852375157272945088653794384505332426261935196616474215205964185386522837145686758503993593088577159548712234720003118715870553271091584696849394611571744968520657439599743896318308722459714429754551781282957292777824773055150810149180388646251180415811293560189094288822396049489679424763163277747776666362546308229180374644083405154109680655192044441655360076911940233925628808700241698714260893865627869245109396523379876918253599192038560225808852578809415445067764518460099035086074417225131574677581738617104951229960999476682089079872026121982110962788549287025422006644913487105112102741264871832369927216704584057090304572897781964560009023653032547160185522505498418348761461669070256399973108894911091301652047990736538536444542925422993662646858156085756434596137241604482702809886634015563500030376115994564009807684696304331651362456981793769329119595624296921262439050607089262078503562178041926431837756315340313272356698386748181999406560904648977869629330277607908207440855652746861359001032476033275460116626275985165824861748956046513761309242739339512932719532001051560125860645706271191644456752980152114462199698257601879552492110186749777045791989025056511082772575669688118632367123553705853434854102118464260892570106910075606909876803555143673304633708864645363108574960458107472454174023745559300050069079574077135791299350717430592783271691987641104279757131563222558313094021320117896838526769495732283776801168157599948839232459878021397977674828926874904357388806138284041262813846697682199264525221787361907859132814799132091881734098688126463047414609627586127788032261350211785629583842420674118006307454176970826681217246775823649466575040324858684582928050462639175977611814339916857162322638910484455294057983211831047303855771141137426383642547548516214690677647496866547056947242738963391935475731218550994786792299368157851024932563030413161425602551705427065695919840369220391007864787687506900994966452092345304573819090490452806391254327592334664340656355930173844771602694468961567007923259712998944933411902286874551228194203167582283485869021732905360504145610901347211600589550287297355323300393599418311624606399635714654199501468710788188390184121926731290572958956743405030064376766437358650980490207031160344406580838119971685172582802656297833856985148936163927958117058658476742704771768096623098192462507543398546942211373611245384500920794778989582772734778561388983983521397955175090070099031460461715636614210521648710925375179922703455323325762699130570971463187938064952380527128308349174565281642669219379322892973956568301253663088071457794013487505403957036203508350301164625770969111440718785691606483665627799379939247372623945680553772880015970902108884068402957859580500633421838763607799711637525865102085811450358220480334006687115460771236769133488619770286484817261990330543680681233046076862058338398155090279659100540359557742697707122593100012836070178959390204965211663663653449528350480459401549818829594177948084118595260415693107275600874999568955582718689580324865805489191618407414561588847362462335852765309099950862378307816813586223787527677945648351989454453105305624219283051825061979232355219241096711822318123917370050422010308766688004474045718465423266027936596995112341702522612893621107381096645422730638596783535002563601051065773252085148588323438855388589717072171004524659219457119081257109472453580732006608190665278226665586222090515784993914045493657978275356063736515988639841219296033485216261095346930506991503251658564451788346763447268113529893775010406549211609574286776075708177898206643665825277775306542477861432620135532650738408656686078613134920878826503518004150550293151195960710643584642167024388994223367079616875904686695044835898085989698504908775934593732599136675048390292459435531779029916494289143808072586145530722085750715651967445329617522082485095057545383068467650882013888031807090325199678880544050305799004176688458558370892418576766684063496072970292226285955789313402303568731030847407087168300433568363334487748955184637388498523339846533938201831461666970615905608277063456293704713272207648061762997125780046233139491329607391203449957163656686804733557057066914796042495795961054532210302771704280603213595418568182604704566710601799233110731640967525548354615445394395460769890332458024232542924034020516181184593025280376186268804672922974444973843018050073026452719511579595405358043032345230619893551657704385928109757138447818081364784858884340416801945102415505737783300899703056828373614793042340398228336831177245956772932503031496376468048702494378434400901228736175922831935346411915481552492072350786662201524582968792937467404852037658757639740675722704820936609974828691817365431877987086983083737336547179463399310667431205949394008118905030516904514507090142987218895505256834092217006558508459795947769189067398479092828446650246437060795298535338031023824967083477711271300053359004299428963624076577654945373073493370310287516492216712489343382141858293377267416986942414172662242310273933451192763780394771056912283847015922966888099495122256184412849832339974933850459580996569743627311795279994357513500867567797155416749854475061774237174562361845170989538948049580359909383587997205176948820835908526878828445664254930254282034232397829947291876296062119607840317603807434557453982898379950290678953287521779908587989485817191982500951254960749988019852729237698249557345143072132240822747756260894620634043704045519492143842268486924320663439727273853139424725081364524656196364743001847070826620804958903273775088641493924135873071691376438336016169529235766751041897868923943774962076459049255664506647088756554006283318943488821243676709050439024144669296868081978582866340980046205587335999265045396421242087043470963799799079666442771818442531832682034960969773715295725844886845143512715080379087281979200363976240058914652848108685751355087863518657555657895721767790236072677164390687114985858620676056252337740085831063599836554746606258693275337667119957139136947205265339610967049790096730416097509749155782366652200941423454404497324018571741815169879469974218761479385078451486142589512497892653089344777549628473815447325160675297406199502357168619603986533206439443445429037095810569992399767310558348946894968197655789404654901954909136844300988203011922816544736097393738926128769836076719294271278946972757930406670732695448111738761557946219751399268822895594083848268525444292453662137759887529868695406098652779590602771789798040509868006672965140728756427216945143998810128841048213296858571559841309450624742883815949904071105062113176160710890940656842440276785722148063244833610938396760477244487439358793274052546963385878984405675230473748110789575636824055836808960662231562496186622281297088485597833686786949254572697300248459287044186634637123820639333906299697960737990138403241643098687011842406836998940002976854319473695677401090579025904330531954090730923175184554571290828404339058738214736250832338042771572683020954160737915250424451572665606696338866163997983202352220845934925922017153045015809770511496494040584904564846252894172380461977542183116876591270929055516965248113928649559178378960812944525912798682731829118170703008648672680262831925240414658117907151588043546168632473024486910257956844220398908007487826207215432925344890800775267424726439061572256199663389368167007868501878813301225761279622332167500518281825934938141995302321184284363606209373011101273083915763568167706099847565446558439610731579690904681141951041319524124564184229372762393566793362365207927981078468578973067647876227930998783783188155364776244521712377428506517567126731259973487958132282496165318109112519461863495092123391057735165639340656373097780052842482054150617959299729042973279537817589859192645001859683418043113345408521873832460283343996219819576964579348425268438318520671441598014154890165292127583623946518286505971182211321939012337373188909199455919030657178233684563979112779105091537175902652475812464414103825719239302242775798553640848484840539395397559048048720309475364095717643028049712505916673376720458368014647315354154972332277044872679675102759848793458196871073458843182215695424068479879456048357672602738299371863722602790625768879948983810908641716843418986764529586008229850928916616316339048434481794038424353294691830693787169227468549404561932936555065016893036676723135607081514269746208342106497193622156161684965799740937198989011781803212333943210845757772617092017497037835991805427959943704734235661499101341689778527012330823878142025845821360738695790272068830592120090739412818409807471652238852130162844978789751175288551202458376937382093100671587129896959242970773688902356848453138945612964323700892612865530852263286069960180963249172349451445551323116330613318047329670537055646026512980047809586031040820512215886689346452092086730291314357600468885724565872191948412780032003117584617243506178926707926977056329634683881177316624655845129037371662708689053568485873533470475284125418025000161972935759328876602556749546383092021090876815184552270521443132355413635695112037563440829749763938852802264273972056654764235593897081403756079825962070964400247426741048526825805457558741933499577745208841303136098956667678855237948879211357711044055244472302937028802460088877096053939927715673231373724682165139472897163852249504528588654192294200567358157729094486124293968930086497812377533676872172816746704034334052331134035850209149786305928921938377967374890546889277019144735639784311975170520037989489929986296500857845097294868413665973640982653280792663452882459607964590078513407953791274883971440675101204888461866290309463243603218520449984276743725614117199895841007225950717165938235876857764071280736572890597331770247853966109690710871251647701444542169282457619671739077888234963659438333860624045451119244949173141320256453724853253556390518956683066326318880217172757312895839972435259153367349639809453699764708599959117584403823018333755377966280456152203749177469212616954509071206165273821733319896551564657961026439745513257446786985706127841877189847076689044082155376149266170223659966548941538011416334676734404565531570607336832594388180703988383821363665873838573346761620724295168237297942447672507869078454259131007207147502896264269785410142270942503176319721505081294705673139975439621503019458663251784445967731437871336308213899033420624681648856371593726080457405583283040463597493228953457068843944542887079904948925406814205994571123099605060634607746963105637887074368292476006339611048799803681348054521474965441595077311353222033684167894036514911674103016710221651647614486789026476305918407401222133266801882451064819049686023692196418758166632069140944181942053829146021212554498390092712993765986544621452312593261925417326842079766753145376258607676198493108448443554242726137846809977529317609358438537895679241922147925473770300650279025303359869348738490657265766096339201060604838500417817442380494846606720466819569577868240171359647884087244191072428929310010510113469355499740523216244116101313735371441671014073490717566813299112160292920597904445234861562458751065236794083660052326828327221042185133928524685842425834772122808806358192723886139425419605974730522203815454822646270971277021958591626117021699802056433002806152276044408519003490317575378407890313891300692090113414401148739439893852767826022001749921707001387471175979539463116989312621112001144023876790381967589175138666929574130445077411557427900377426310630978186400678880225191470203095356727357388788006532959097011972915495133457121931981632458043269956910664349732582763709081093240147684338926598532428804917427499087192847149319717261567546481834079681647160326793049054075898453871966589996085170241383420023175367033839438796920889596457476063534065766823651136201812436553011182742687134155759711342694159266205620255060166914994086572155892496292156760844023796050058934943146908786729827980187671108312761072616063117282929152023771071081060282252316444675801721075256915058158034482796521695884889549715056519269906022314350146179973064336339575135236965391349538625511574965769218423170382268865939333578035485625837801526549448257853199507597225023423924642434083565243190346883557291908074437111848574315372035757956635871418185689061959383392308954069885217978598738871027529311941016710232061471235380825358169496405341629849467947337637090551122779158278166516083659857469810496200275358878154070307243129063282283143114290722358117477974631397425803859225686208808504577107514851456947918873287470629552488520153697347281003683243725434258621468491197201175174368025047527188859496508635766171937502058249211163446082052389349351085507444935332938710179727291899816823490407061177073490327323727240386312012624988819260895340446254729847257606097363511159997501118924985676435902340140354164158988065083149142440976132030867422183470701331315648885814237053772975057061066640996446043829119836662271172828741057396299795926761089191188540589384298468320601034306348515796507435153737489802875101195424757115991068917642585788289217962158738991840765476983329776869478593711893458349493410832571689652934776462574027846215438095724522635249517129145099591744308832720964315245240356240495454767173258074609449526298398983342821083374920050388420743698445681917768813521439173817715208098083135657910433087025970008447642719312950774475270591912160474928782779669948428486733864384521597627485252229014695088493116530502529468973350094393489496032435209273455662780094366197423170146426437330245539290522358552697503516091651858958769237893874278848047490756046256460472105189200709817789197959029002437315613178340524552538514340658972144901930682065198605334399555414281637752100461442745349564905910675835337343674728987216970272590679721388618540225344030492950273056593791111960596691070612503959789076254330107122894132824116716779157807032143501687972823366181691490406586137531853541461451617067311009400204687783395822757084637910710094354683833386754954430451369231244675220587877614134758505111306740161266701260454608882385735108869955498609404391398346548166572263674152999812355034134059647689384610813551190801933093340070964627693682201953529498914967066219313428189233741533764480339139516565061503193587160956564060650120448720168374476575609034974471805545999801855922447798880586007075202884760833414079665070604882007817813506725939820012697929723788911982781204116066007499229102103488459756204308318864726396845883490237216715562256308455278187419616917697494603768417011779354491813474937848050835025331706654154397484196444494700199439131797586181457670707704029239472183406238246087683632122637699727182438058277265360914480305831707114799062692057360458294877753681296827662460633464539560568605769930178957637462375537076581680647498519594861062371001296956694598848788314745731592413960376059969440421764567780281051290391326095813320503238835636044007361321635357033050725141638007647462087347437126735195813280394434104401119698690161891152191039936212969468429900716232673608568472476543778732818610021737180951810640767644179177915965830344259591358651227888040413193809711465355310740076219781207305919994103321564208312449961068735180239508819143103660629347624512571829483253382198896211064070030110560654628807747139315147935542506074481421398685910859788116481321578698806564091913476576798147986228130222172777926869975715873183398279077185917602019885722254618090140828250338953646031782824397052593329052396017804598124522744760394920630637975145620467253723962606394986204170967509613988357552852175984108238799415660826187563158963948660496103674375767609431586528151681043509300299126650217685825496484312097820901150837780413213063722276260697328081407664251810926404326485791807337828248777098425153644936357139602697217246567135761103021805565174756854878785549790080958577323073306282080620923232633496523555403231858206981392646815077601182319495829006916826033609699792673166733080021874350953516946649053194308896628656207377743563256101752302345016222080398801146435965804635167245855053093442110752285945465112391823357579059700946455770102171046945699738066010492819837511860911142761128679975849980700530262449966031916642604669603149900714202932324427443477131854242868544541292530457412537888665351781818187678907689418015961170633686385495826601181110322170861863436070739747540231588214406234442986962471892509396078429631852069728901442913574538906397232542290538049191075340705418954694155891265054720912730746150448108649287625064543176715537978347630909102987252654146830480458502339282769979228175401019729158924073647305326105025757768378431076585982334060900715638540008770170727162362407390893580029182896070387983747483514901455581286803329244434726910153401147254095923993806398067284490815513974449513996403430214586733538873929129915747194992091804048048280612221938492404906829831531667557963458752235257107564410184126007310367442352963767496275029184654367156657832613097884653699287784950800341262341594819594867550126202209932486395687726580535430161585557879700690567226988798142095942957066904073169731740231219134393404807827642116227628342692860577212829660465387443605257289800210818820734049190136527544249755456008418771668537665839838586795381552691416280821087660717712542617164276311168386289091643533406647178410315067840382823736377143955917790668301481996386040592230382039641899971233621392143983893643434588869396537379371157987026543023883950509511552984080981255613509632068035865148572624629484998433358797751692982501171249367283197987793316307527532419452487363641751863752440145362544836689027714494334131215776963357108685260471754375248244393119545622819379908218837875264511457096283462254953056316556899951626521856647052696967632217830361786086702124313123438856547845901575666673090881956202976764861158223317476666080933199871883955846143053326506694685759870318461249635250378150731810591273579824936579966853924892365819475058638135901260021033574908551685673840536078423690952337751369624875178372908794283000311312228061094879052578872228451811027669262774975088249570027829077845153293525497386143129275490354072294907873538801857114333876167267269589978519710192742591533367560163397343439400068929282950725741367971112249898812310328223402595272671108732945460802843683846329566371563820328773443423188531457958239085556933407583732609252655174805520734748257493695878933060188021267255139718168647850047466220050782909232517655959333494422962833331567825242721415343574738390191115136072257728027153850998930400782899182199395878688051696177032038978205303428086545873741692312532059970277176618880916494660224202111802779696219135092833218115053290135705789113471594443537892765769175156062077294157256105572674421416919025668433990169936316966011843121874440144646142323039334813744093333525288821133382059076918513709432081608713897272916273368193791509185970986826586492963309311233323562886373293152358789371180262565463579691631108256781605906574779098792499538028115817076566893785887303689966126563783004312087179401639908845411310891437410952878095272659213079824898178470555742074928293098026620986305047804937992575219638969764050554572800267081620826186615323997360426430740781935962123564217422500178597823819840579142173393820512774357818626269609791769561240800725300694587508352915798405660119492134977957251250688908315042257298705768597155309800371286468174593786998593147314538929170626588473438571512474507119270923215304044419154723867641735605805843951710783058798082392251471118104222806761526943072388471976570888948906402140189537527681924875983660977359792991588175087936378204098012693807012878212533925528059116386910218322298678335751239880994056239273539975802012130020572603354558377227782535789018206497053954931266090299613101927244964559900350186537273019834091299034051816900486440788073081620174631996255612771110346763022013449383355829204908517598124715777064169475435835745302354816981717169533510185637799738235912040523914022870234382424705619760808465899352357576736219036136259662004651849901266654981894020649534092034750327975177244698718945087781847301348019299493365505085224046549855521412848431215944766434821526153249997710433329257970719924379945254606585900031938682061182806610799428952099406834530613247176805250404557373400012815656346185330157749227876416734564840412373426606508989702038616016836966590700320984446689911036703856074279074171106718681841825993245676382823800615682672549739159445370536683499115202997245376472530248957686297577961741157823882266803405994226803299419144512995725198180941097057809459692293956478749531614966394177636582470703339860014754531068462196735224036279052579806945803832888518544223529101106208930889369361568415231849030150049656565444491078611134203835574978845677336167394289401349433465001143783406904208298932117047776366463005691686532551869152084460186971296025450123647851077132436330640743475541933256188854160362174283752924202992468100950268248954540095316434485686584569628387706005882001416206827758189470780532610427076767832115928099121722736108118110727379044529388326268241255377615525928337659626372282521264098098088892227464433758815304954805623439910992011803506204540319686324213667173230599119120256386092063794653785296970553816462110983390287951444095378979389208978763775051993041999438153189707410592234039910410855661751765436977822468938730412931953791917903723882155632017498198259954780135295035545373768293627410014469172159826593109025496300755917136459481046382888836586691568966102010612611969779928632485424731228713946408044958036269449650069604394836066366875096247987386118826040434939266458884940302521852067243864436641868444192195152887533439337568966191457344971570660606899380754951199587434756438925459506303734488617400852412109737418802491573564553171687322418226672126857134856734739764427022178510055552001250226622205351781999843118251534766865014993382596273821933088248248312833627513370280436601352854579445411343483127588966234426784729153589022609269786725956330455384616152058581963119630650474564149362615649575912524892920462710673116307898503840454112651663391644436661448213399772597420978266616790150070132841871611458143464121441046994767065610603383781717342128770949866465929228043931824116344640279716154265253599003741440366458008950034985339462642146718069541655403973222540702786246395575673731791586445427952385492462977871097431651394895176281484733561401604915248364839446801197723010141593729823817254849729548799693879543350575335449416737145014603005341012651397595343593490257532404417024814998862698769797748157610986910243408363034239801199419588967901784933914096819645196157450635049102764083198646495626865443347976418404146085696763391657699666390426453290662261689086371854519956539858899334735748101648926080684943433592627316423950774726956324615476500116164485397943162579576871848676359185167396647953103029427219585834591588310382788312086449113019688275391870306498672588232590281944405091290547054142806571494956170727853825833104849673800350158838273414540568445357439902895537433026498704209026125247651392069335879654062458754668552834830507855224379947798780663087881234731900317621105217419489556694728951147073517013171005554335164387770946187485256562502659546236478107820895115067632978741383957427718808803393776180645420585662682789571978837939310011639655120896599514243265930216974136001403828286254454067237595390106246771185857808359029838150796911764167800239767816878272808722551862879247107345544001742271436652651094085819463027446434510337200380543541301360707419556920232930022855410549771533217025082557130553459647127530050936875686402105263844618894958811477149645724284987713990037396604728874060786706343189003461611242214475148790468806156958935818765110657302431171527239310287763263216996834830657441729222087280705303178127347528446717366648778720436246978651873003293301579897050178627125709881939023800347666784734731109725457163963884867931163151255238538311809681385774209156152349416767565702927011894945063855752839025749506437393853496334470260936422234256531404520491053774532809867848124913924677535259157736610507965958316877713858309423615510928858492170766917056108156087974650850375381749868668846077193599371661940176877872296476636290577039453239812966616944633868431295631370475568244245118830413845350310472473297475394680078733738064587387675459189053517729841481589594305045824773559851686195179418909490281552259170339052582921147304462724919439952592753671918450250185566274287146044791209940254989250227580001650370506345303521145848200689108587258757727023536223468476003651380899563948215233114539857571641124071835311274717324961843186058197413597586500508615892962654175004845492063134873992910700121763293210334985647405407997311874187006910534992500608592296398136845800466084603566594890587169376837954443673632546163142701872088014462663556918245579087225941537586280786652497950117091525369931430654783857688512619276233071469740424817851157533952840725327443440109152179228934075215809257506590300131535226896617879964343067309888409749172121778775590758413184078245751120401644584999042654262752312791598436141509621871000414571454262045651826334940269821923724374074511604633498906403618993110408381981048039531830805822036746247914096453071947325975421206900890951880352462236961197200330628237949376792048943769378585188639279481708337682342127917196219695616280789925160569384098534430032544903199269672478101339756595571523511110080487158917258969149055488948700143322086699509363047403346351270709544491287815530730988490605764518156694631475103232273894726781542745597495181672990602012347693331115721254154762189311295899933406981487216801341990134491596618551935597560937739857400495747083457030533831965228831129897523368034724609917954867446630747878655300415679283830337539153514892008484945999750305407572780639430147127862358429531482556768714277851612411454549979003276214556012910866725379999174874149119575402219387317966158771166709400866986841691062051054820429741307033951963461406016649255230255201845105455736119294210644338944751319064163527915628841890226868286671700326560585670264765241420323119987743472942633987427966926397189013961044858124296429851425280283416638991034477843585427816800135363153816103737036786685563835298465446408613501864039663838751424035340745463887570180478737032259717690795124619022901039537989073433458849713435676440991085412406989017289708463083794777705493125642582034320330215846772759325620857845522988622324363715177555228537069785590405594091878920737471952884130499311576416065674168361816693163520187111452224067600947644518148282729078918041465999010109185701817487341642794986841693343963774054877883491643531377754511924559031708271926962761195805508049565174089238091508006303113025637578703507442063761155458894193281155947692330617121487255749677209508177496013572343735366759442060607248489676564382296753786737808137881865802346072982874016362996343162012809729069947766283905808209787078152658823634938898810003082396194012285843435857205487162426832632316493392909037779296733171556704626845815811530218597149000774851232424565872542708786356364181845375825343415651324858439827794117539885260891407063822189098091657619962687072414627691586842543601530295015959190726363674021147834377433624802221990669269487147153519318907673196898593750061434187075127732181732631611133519816813565773298356232696231373317179011668100678251060932824329326883831863868294753850242901425496775413883072968186303929849393816672589659079544928640418670406663870175579338833116160868763236004067617408244171579704914959623550772702814231939980490921516109312522521414265195022722347692569746067921276081000132081754122770650355406302033784845508500785771234657934085818768078751322026342156673312266189910542375705054865173738113286039217030480113239504585382556921338080450158813547474660281146676597707842084126360524198214523485849318756012314778749427408501625189593051123841139424290892597199026366079027466432018319774290719363499399490761553690431111401376459635718551674434032170845385688915511219877262346307628533215607085498385945406102327931866308175605006145531033945889120293246097989717578524283704528123433052243464219845723680166403681311925095757439013136562985031523579505549844691958848741314004749084938493218047816116962342744956174016229496754676451801074189794438167426687668461042664651812090843331269498333039430920483666998252590019561435845636291512775961847809352902558020072610431731588293367536715772254769222673734349989757136801346791873344019808333164372880505174473462923901000910164089772040254455642768302252478089672014489859169864207167975104415422347884100593608648076108449849071435047791551597859248912681893212520473450008522444837428503903092788636978854697533072736196155321007154270149459857596266477081271775633082602961079950784652578378884488920119492104585446846129124908403033455206954364269712290116618224168915718983697661507912991985107557138667996627303311073136199983439819944753604552338386320477302578480712536673517717118165089511107635937365527149511008260513596955596706024992901807473802377197120415073324872642519379561852732379420354292301242075819291409771711489750147546227208645808272796551571827321381380642106542007649295817032938516061163568115204029051393849151674945373302115192592136315544734991760040769369269080070301588381619205505611034934173315741614919874851893856075956246453992203404807134050974085155328532660878986218547281753461156173422202743823323162299569083640732515260350936260983320320315220704264700671745228992637379451275419874419479641057067818264701420972456842381051687269835418807519906252112880687306105463391786105383526240520742400066296132760744910302981276929398476585669670204988488158327470709796595632202114139945803751559479966481732199089332241692949722691825544748181533099220349661615290771836207699074354037123503988318060309282469559229469903724708930260128556767196254441706752992482352337499045471992476788219913088240602698842697672520682423547746122399478326883787654629508672330059200771269245021009779851920802537494861831450580940035917661686732802707947814828194707724314204671664098862335427126515467362414212317912679329283017854508813812461326080382542314384086020640772970455083617282841365131523069384686126972793386604574362664065655218772621563180231686571493915192165083295607969316486977696299129364913018230110333563878082132246378132469272264398856957029187684180760017374895011655304654676311914820732932806208441109440069500412030772603373254383820755807199451094804014879985285335030970928225636351239211745549073895156286285111984826477158338632963757113082926770294480861969954997106240278072557439180416775308778527557319924710891618152714828036869051591632373772996596107100152762244158026335231263808809857996268306003442453750667404760262245242519632064148965057370523179416967709704337949822027216535879141306668139712262223322862717661656684361969084172081067061771717435555641076055019723354006863593040571401989078101945677644075765946529194795301266767100168403862422305489723369000552371213393786031831073574385965426065231632100711233603555451067789471098525365570353501452525891043469125910135368702507955175516690608694152319730022825384999125164327790205855788186037345889459819175287926687320496165725958971222236335749377185861505012643059115009729723248555075128954871691160409885915522749305473967188743629874726807417763288926117267681678725234357354124058026538264651516309370351426208346463951453714681436276953190203896436571259645893589984103506613292879953811220030355050000950911443834788993058162229222611927158052797796773781932335489309794741222945219694828090022713601429534758594119573973351356626762536763157062401361124296307851128119451980414703967535548076921750525355879793332581131587361417456648334669227649281320002684490881659437703746911035542123524390874923048507229070664150848493238887835759299542978801196321725368844803948004988064194111884622958071041761839202083248697019655152796007588279459810447265888928284190259122306679518135652673051764673084333438896798604464837915016147127034804218218615210545582006669337680854055983007476761390142051301788402880874774030279675248204201594289516004200438400181263072488854750213275530755676415244907414804556145288597311473133465824221580341991939184086263755832862956219343961846963402805227404278753126121765424062478240564580933285054675201092597982717118107145484501005007933781382878509173889563392592064675186512315697555856738451383578731217035771175958287308737350051934812176286217270954498230888382879961176120221348624719743394091960895198285253162114993159776232719320194851189270838141260120122180762701344761050973395945126656658417953597932257806363844606152994013907984825559777517293652252377043021128455309091516323128261769370884783556975982048089492074843684327282482586089399183645714191604124251345275828958558400149163344185792228906065277172831933258187700799164992732772247119210475444565067126637667930444228044717320140048637019079521467707695802652145210337616430340465652797077518739537998179099124914369704709373037253963077050574683976953643345947553414575497947037671890164600321384980091643953382360845745176043908710490569805617619835677972902313159779627558529217036123533960957596268150882004339716326146144744793469720780251994419937852357097282632126819525515757452325224458193125395197487137832018939084253666348360989589496854431700990049035043327306794164101199632750742367951474424655004506506284356224263113271069276402464022119027992512918952284218125322137111307739321538168351569865196315959673076818695306687439248370247362238198579913591036575392365574821651605348856506802487740262013899723902090335726863138820066448730726571776836134781708350835538879537150078574518255734385144558408675507672640400034331698340471378137949032106465653620322642254768396115974357894340393177676417269202697311323724827411121683556155902760162166962492060884340513325131120872800564763424251103464755176671414001582301132819796731665037523055390187497202604808449229728279040452473895276402720111167314785580511492980968311839514724603686678527650963718352471565802845979801469260061472241012161232868942913726736192055546260151984588190334692638595027250397384414790868261374498621895853506414749512124267714878881900226434968112239250590499455500097998703649277814416175567601515538634828250136061142343472933620902056572732188645101711576269925594282159435414604214971018532256877748835309211349428089467604478927311052539721615069715164280328761438661864402803243611601188570022073718882904652219168381081551671091567717345728429878970413471399724473864514354688011358556860705135302202059958128497749315923181936087451999926890667970404003779457789463650579684537454663360240393098289099389593417705888554571349528700163057200800333553386611150048838929596295496004526927643887954589321981578598635537192639081256088899861665965444617956085660949957862293031049607164888452935337724598474652319855777986727177896140596291486147149174753367952538139676460840139038303185985791364985183760624658616351553405968869464478737363186458456319617695380924229671832271219597755322770110886565203854587602751288836030502038093155663910970022768300825793315052935063806078261141176257629713528718399627786297884823677709177385092450139858657746644771594618205624781262192212370407715426907760985765855742596491091222704128574196687835400643347595097699333666453951887153047996493636681897149790118078042215730398987245220487569480357584157855342126014943393863945537538960154442675239272000019781699069864987845916688816385105158049193757165052549950426389753176803182662935543776479653182336498921109264710086994061200749368911795829361374967896252680029636152375405781192300851972052512729192388862010275852788173200561616017721021196816112774750875365391423031672587660041193878910229689166279973029165950279243488879846528477350421326197801945476783543473525879018888498106043022988661467648583203306518960224748629581121838795153733198736159118185031338688220940894235361861366760099313065474576044204190659037853272397171442203963564200224253643640472897419677420252590456156135451846851735293563353139681601974465431137032919645986473050638935720957302199371041905334950796038876466078914212180267806561187956129594080650836541581322407936097850753996192056899779422715546039481407149217350628050965475328382360222835949192388872859586867146660079818388760684283267734144473915517848107237421680433699244475336104844094060377861434828324293498178082042603364382503893526704573840019919379794576575096073195910988519718594058685552559087154349178809792145951801241096199870494559426317298695376974363703024707649961986770068843314570354232500639079073000543519269328150307507335797360869620095945611548771140495249031612685173108923550170444843633746542395883874546315249502503505919956314242761008685484538809531141366541226851189617893466327262192913417557789413603533243486625224776851200024025864375004673609846011194483786986845473210895235661067666484922140432391618750007685159838341359696086006359097083279064206147776591747143536391723422427546119075388878982585516563743491146149827057225848296621209256782963224003862780202725427685504070120908221977117432658422982507056482466855310885712316593843826523524652444561972308655280375953872861368373710024528411416376752823312791978725719551069101681334286488053595428841161891960668595351539481281937983191286806310422419088493927438698078098721604522161812656528170260717261236198975947876243701578651834081047352297966488487504944439107196989541315296050187454623991589689069892092182514446873484574433342992224417885051817103604534553142288679055304339946947763610403998374008989959925227636150708926353809019248726877825952853876807298546738566013022068294847719733217794458426618384665276731789569137713512446471346790143001523196213685413395857756387267672469395400128675227049341828682586994787177343145600186009490602300116483079498438246262211720971539864414368334792610419453298243964679637250275084301115076205844176469659090657512766988997703294646202628318760861227489661534466646390531807617440125210012293594907540618526614902130557893025510347907946551725101420108117222538615318243783750771907845851080752060426311013719961780020521259675668032139665838995581056960398852595855015121491106699026610429647470816517949966711474996465893720373944072672544814533995252091087190390362335256590532228341982976841746226731917214149765025667823707038063865903316354980510404072951501717695580663106785375278336378860498504884900459723605591279797580141519517732006374628684873564133166846265147944654454284234057725759677014540766316036185743619187181803977090358477726394577987132318992297800351533001687416118555832841445179043806069893498653456263225214855534066013918231277304774758886479309171632355778144138614486273581791441019338451888117607048648484790943517533650143334576477202168196293853283795332330510696603922642919361671301072650094912794945460496877272404424273237600103795147793224298395953260687304775077082935658719299235838041510652562242693618799859726011835181930933275477490900280622155247266489454652797548456876451376870414198903283296240244853933572282942856215397022762268991448398073386852731207481617429713878862298885994308283863822742790378904234464351258755465125549315374306157567279220106352151972195586165746550264143421879118778401854823042397905847443760569420198024011479649476020617115451191052641373856775857647677499108104663774714398317027808171067481346471363105369213468347748817376725683598516937932750818587408278946190454928373835574063015322064471690180545234441949343290070509373199244778316976872933445867845173017149958845959685567271321626965367069964640328675039748369528310140276076275289021068073907503000141588908447512755297503819280791306606705526770885711210868408926281449891166136695208861252231563583534523217411324645766462759879363093636839572041877464806408837651004806561410232150777912866306096858673163490265886183949705426720915079606850726977021640377203601804388564743778381449211497660578784156680243558217668539494799513175560024721733930252885248764908152592503097911111146136583154368721370031276043731993339110805478294282284050664454859520050456810490256225416911014981687926191071256672420077376499407597127618897547177979268250163181285902947019584314812174564020280272181849309895035345199572501739774054853933191396383969391734164461786868933815238121408166070011720903908130436759187186409652368800588951873558064062985721327614225484807783043426975371428399776960560937900518355965321257155523287964680417341167565499591428396035478142408384000100034794925514283071501814932547103838171357070216011954148731751844996985885487211669949809792910509979613599721960291626304782098707609429663704033716094144498427155301567252165881920942482977381431050292643163863348728493233317100614340489668511830894998612443957308771388059683035098360653111821371184763858946343676060915839144703581200188760575340883423378866492304351088816959511742665045564079484073965243505801300192083291022582487427356181795634470040722719827872953163561379944488357578659101904685520299931999148577054984259590121715923321236645869851556655392330087004361028132474173368338901294714634144575521805156047627310405725057253645383879996774737442238635326925830800288590654626911705972883004263676850464049646859584053911207156198205807306041327604241498418115334213988658967068960860012343678026742218745759163853990948794389902197511868971923297188579531670978973732008757057531903031620550699833336508095156138761103229369757990526308477704505029632401670207022300613569384837908412460699467673424099234294969363889940261425897810364745078709536996741927995294421954280138754641802887556644526684722614294617280918343271785523602654599372131941717841409953565384603821391746956509505152449901718454051739229336233172637478104481261546274270446534905827950343619105096513332121311735862395691353213325134629241254184923894682874625325703052875713141178872935622755882311479346449992398706761059891951768900851410491765425663144674331972934192127441516458423210528828734455749741883687831068992155753198504163974125687426287276141997633215019838710479755839486351834176207217095557624456935671419814799463834990362206719650211677947715417100720492701437767791817329244832628837459212489012872973383466310029147070312044099990391056972043816470224284430636031076062746090414387107469478353863667652640902043091585808875360683976455592545358948291169199645191241367386220998745449736761806574687251942858133489131949306355784631739776584761592539567820967671510015212548405290418604589394505025538193661273120804276616880942805009942594329647860264974454003951842709984124010583622906489814917000720314687478544751057698559452489486027350502500150917173336516874701824723695631641258198857439962593631124440359862477483176459038002817974766656957570675222099694775717131797066745270626932466669684610108998429717199030050285474754060320198020965587927876082240019394275553140900455058120197957633939799830664561626934587078635022935542822875766385873688061939811103056528162145991135810787167103487683663443119503555109241494836675971905857948546006743557294648888853269704497266591275348695449087142100569404504085502363758072556919293057084898977968669695555244297729473775976843335790991305350838272298505110302959677405423160686168099744389902157585092046603246747268793905427326898601733493020738641002375046228037169200747474998987389960820851005283193814815895178949189881774949509830364663639507551792643205181782964788771487770027923319151756409231930099297166152619306172673406310816351376890518527938959337622111753474007124019215275292172881903438083034049553863911415350660490127529852475263612717467169845187233842133527564360435260309953652428274967986048765967257079262647401713894354653860819063390129507098282084460229768866291290995345400562874974693115558921217173568873669075093089857042009890186061789527490335479421843766475960893982744212245440527864512742159777675672829379124782582765016359321716457035965687531182048050914853818145852638647028626529587290931287454187317436771834717010837865666179094193577592672436781739419252633151617904642012318894632623962169672406700443342859330429460584899293769010563059034534755145848313409431700919781987218832833178347951339437754163264548856869451936142174565153703984766510596478886078084963972280850904062318398401197510303380249556017252164090152917107288646845593824701543509698882771395544100194219484452534096666873195318795015800265895118254011782383661262454076834704956241011089060256844502121433796558999127139390188517280659682374345157470104502905652745967497867719410874919416817382289487262213146966167310858717050881272178421009343095550676574576218142705677072802727982450775930990953646226196819612079636414007900905863829001571819543094327973610031525474936016379860282164798622748928880093560821797798509833898514607947917899478359658342854325666448253439490379445053553462903599781396595253530718522109189653912202016604727096117004012727929800417366101688194954311311272741771348441480314584703355405430979069203452967301867801219559738350078555239253742569938347295467226021878610672508892062201304179175992701363251580215177012207696544101088847461746208350576883848736526672348846355934512926023178853428751565326244011305063925540419277091669352841990449184703423732179050436352352163643272823306039954108454001647293667609773906410517801962875045251107415797064474661389897299982907519647218528360263589901980492248479105526823348111625063977087559208787134401616591983943308496855276501145936021660490156046610933015396664347786474753270970193653825881277150630683162100045730729822845611405922858784661516622091772959044249389774943618653001247928507379756154273610546130221817939724973674434431032315661045836051916615499672171049381603576997944275299398453938272296466960222666960998855030579886413434920343394337444547196383590913375977450639145989484984594230587974304929662110980479799525792171996186692337062401524497442053740892907894640490026453050288737090156799475934107571053915730743579050979848058826721759671055016761673122553194656072142513072268527151873984320144932451403126211650218248934580502742369347185968511785076546364877822313990791814210170817637864831351495836839278789480188496685578322046339030501985656437584329343252011698338727214185674507465107212508126348768585040676314969142487818325822360855570010883145083579422265998295311463505835326968932015091606493475279894952189246171325252702008653139653444166606837743228902293401267101784612406342832145296818119377699439208946763856059733497098295400620410476446809797711772472145274150372830780704993160552577626840188692811485350914663146105676323846048065016040020416040422370599810504074483238509243695005472124865302654878473519847844801953925146665962081266212544985235139922841185682065105609504960947612807805364733689969923712511512077983363175899937792063111590786905173264772565078557871441462450269781974089908928288921224155617965333686163473707797959192463102818262854542263485483588043418224045467416707452611135658006441098988659119367282047705043632636317756605561976410426651831121462727368506968978005657672603671484356131246734113273910121548392322148993247695241125412015264854492276374765394794108190252932856500000804495562822485844805953740777484479285425525078021411234323052653886644756861840429951590741273220411148191311721137939908594039327097056404253213092716200764200018980963079549096139253686724315908294844594294260082423139491008006184724875333900019303081227378696839836261115181950940022502862947750682225120750858571370402389001017879916316969107530925382311932528472348902339646634653518830757285897872433154259543761066932994942881472356321516276333024492250811246378072599298921570537107606442030551717548135451548709004491383722226669209445429370987291065103950048276368439723581282990509948968231161998248889587625261458058614830111452909793701763572071740879020605987572062759442808233992774613642650498611311170933925373730962709477357836044383886459266467348701720833502549664859565362754142331650202622601780899858772916491330679255060650081894040183453071553235062322435917332883258691657657773787759892120108077523704171318597455254423539184009675104513497711036226800914081319376776992728917002951974781788497022367046740603522903682282885429892444258463541842054545967426166279366923035968595433389984906746568679026107809955181074539217098225229472530754674167718766912727151810534616029639284321488602286700751940371759157177780104089389029335831387566416838240852474208558963431934754048168074749224672469805191924583610118163316374332396595875728526488759040536422517917068794612370878582359635506630443158873487926775350383330291789550877530382470441606649653332138554025196115224937883953264317418964132734514761376603810174892828436854017257622108127208989889995460990979061108134753087490986967189919056480666135394359119345248736088191895909419722276695207831766540780365663526848085259186847754148375180044441183571420305178956869642014543751492131536556848775051790443095982596109487107818400618513470665748928489083476386949510340914852727538765488005523018207494558756673244883923464612755289746647714447871048684210821934049067654055489576952041307936484121160863235622601555774095992616076474824171195736257972924879789340238588205157655818552644578677075168294441010733175625983787225171182730957652392910971328735706895053958849979531314500855272498463838801702557408924814337864023905482154177567563010278364887186026471409120025947351223094982678739435155484382611150362501864196105260425169770871761932617348378754880662246910574860582748054818940793539350859345778992250580264047273546060760779867343339464159875648320393205203893152752120990980455474627096553637020469826924171375169516294778613295427053080596409638540260550228169315541892000602047519231456873980067214066698431143937015775842739811729698006123413644246477510782218540241911788611907074339379775050222799540117437756189007561672932816812753018708305700659306745230924746551232352570814608895420857473303739558976546558216550847822429503478944255142298041364486159004709647224988770640950016352572335436002112456645221183871777438741076656718103517193911982058287832480582522961811780858908530622847817783829045631116137953745757589360945042047296919674663664813970042766323978384832253966306260939227362189049090775797112321606554635323759669378395235583286657155242381274045439273522056887086299073121448420100999662846152847866110390334580815125571034578875855730705167362855942342858500057559361798469845144916466531713068029754559339780388322612564994687935427658602277101044416844158081460468819828622059895009002998124959858295107517999528178226567718796622298452446396750364803821466569085116238053761792102265065978038010841861621306647641101602297860102008711058890673757530937619093011439827920568723143082415945368107628597624772021908213552117346522040737108817035275438566836489278656022698872307826816950882480903802076514019109529759044160919496971858316434453943514913789432908079133856866897536133253822317970285283929488737352804797928550425998497262968253064436573534880316753705856637451670941953575195243682719461212175097401717677082594893634617985879943512325950394468589910263552684436121436667332041371361256604714884061044787289215387603138003267959658816162599697833736071872057526242511621303077770350923776905129991801939248927931781172347771461986581605701649123129938489020951763897783591859758455196450879560771772448882398376928736489422930101119938564531882441378211419332653978810814842061329696272099335619326716089127874217836966272497687286337391200852240504619682711402306060033915990332149397370405282928724401993789441984758402463720878921499499650641564268459978702637523721300032919867121621402180466683471007715321093695314974889609712412605702537791916232874743397570649301194469032294068318845312453711698492477373856657158981814843724640182433946101001191129537522256757885343376078552671579279310248072863895866108277224010156012814919224062998998866961478625013900628199427055368208178314858864464471976678669250599496204645244437748221854472453887134193519072321923737459173361059080337265273652788657165972838945404580446909555901096642553455750007482076768101328749993290291750114565818280647414171133711402791190996089262899364353140273938412278473618028503803422269513448810444153744689668788678948041233706030684295560895172864403164664418665672409834115751474696525630519999271291345717882102525456346775619654652014429004988339468390698469498154381835472129230169303016910905824870591019048433779223214027613462951407639485359737902931758396606359763560956403753482612961493904158041395889066552322579571171763392085251783456478901773615902897766882187252880769309642936343733756680981675923022711147580457989582392588547361915945821793547139692270437028312264871432534203700361198916798367824561170697862343738966792143790875200339093396269706156281963131131329616418688987652711844724916593611097984564567236388048955058195558658947741289379622867916207121448937081171950888610580518882494445980358875917075918109819699025013364848917340417802367665830388967038676902268653797249225837040411353458182780285840006824531963051572337481299841008759113202393476927446658485407839531379985234004904857910198241029745612465579708819876619767719175020645763609915282842948614963340803216556018528277756153232310447734938746673432293043925160416457562625662362452186043325825782416846231931458335454241539775461401150684767270383741629961755196089074611326557847959998022238928830655850237647849510179568029752003555752143320221717582354555365550997606531306662369774757400923208604284131474862549618411402192259245076156407927593417889261826950514245039346633989301404965725218829003370031876274390707178232478566668078123094523160449506929542224908205003397680794038568113239182833120790988499905518039118121434229857537352828482810377905737332097022273079499570421835005731734081930278108533612795136723743423369331549210688565290304945297472047504227544928971600659629468555190853966859906338666930293369484047113744753680537113493371579672554486938997055212551317591994269149699393483898458935942265165257181571295427868418310462274883238077396232843044153553221047274879688841065296317786662552414162196432035098507035732116151629474049009431400861447540238685126310420846278662233267013757405037481178656079502496617185927107878915549134927369852182230993590974491335452494872330663401383032233039045149604757029511104824805721436731396357687246533158759088037772150053247457141386060618488837053594982106561863525896221895726268373631172441354054005778303911540286766849111201758581911587158610154017459242047680203186054956995355988709888671692436974805052499195561681192854656224446516454006926961331847351181821679262992253147216143817348481944417927189157240773706178157898623542222001447659434343373849269006348139933262716391239858601071738039825878761350598023502742983637945724975778458508235429409326783189112292036960698715003911228904046153068360237131389175720190101299997692126585583878044736381643737300761452891508641124253839402344045006123067834183692249910859589584012410979843904244379730086491504028001399405748312479505123720093808115059415770605084886950130935178865737212283798515734322121183777424379357625228119529511358805051224423764362899549205490317863046475144473126336383583359565689198442332193863267432911463742916702616344980846355982450471849150011020551470713755332109520152503708100080893238736521106673572627862791862101252371310760721802150878181433544380425602341350577485191796182482184836972618502249951109371923827595170170908370301673676790411553572213483199724440776685563518742548871404167760999141916314543977146217044969109281596889324934256366150680626390659131776739110154749281217846610586403538014086431716717776652557769073286535172903886926658107523753845447618084310608440911169309202066042092048174311820408787408106290834686120087862527626610112631579237957285364711933758819974050338347257950844747429263585217802861234927746487057344793477262984696055806814673831063711387122721575651637392631829461809601807724187464130120179458015201009962439972395189465162477444464047807968478551397572611868899063236840973944233982065010294717101643694464785729886967886194357106328932920643098490440791750621254061094632106961963380012165709563244261860877897194552462015658901543917914400112157056710420941430594599022871304576659986418699671311968429708503077686068465070362118647181904369820966825853157425460212381067355477577915356003498991635432679083339626668076984484484397172505900543764984872319024842401719328241413426285180774666337799481964506947672016926309730250222043715806803759629793237346091833391047284215354268501427228439071002564819686094597390481336279163459786562759717682844054981261306081294877614280871830089096290651779365983858561027887094439624880497731139288763276853121340062523674540185502923686793934625838238956704662687482623168273257652375530331725131702694937521310222741869546056670016364069650765733376520092759078702770916990418863815913463081363264859071469439581253391262726125371145881971844496482242131198199361577498168379989693075762720773506892684020715907257959854056810991827343288283740204360119026509083974494790769163968906195289905725606105529773153780090154330224088017781451384309270946805385198696995236437410196662018627500972763391298765889747167373420255624160174642105936681940218826256903576103963161987359577299680956855189751442719800807883799471507474357221875539365572947040754595504821877106784496480652861505553495400767156096628483588285599816812896552148468874586706424892667394970219994002493575657246664168237753990998379875281134776915966130313751388960090573373558467775371200887679326150460236402756568900547801012034719652705293547241572312086803255438277237832373742931997313813158519656473762363245163240081223843512709836526613554851184359853394552770263876232234287240078148215072801784985850389404628281323624247361585577901794064024526416302356267725163464114265824180789767787693874006579066698695540279377464884482853617471893265694359081410180020584742303580485085230345142132735646676008447265859273809174604806511861485954692746533735077678529732660313342735888870799147789585856226207248103944202355385096816665049673928052115204609859862476385409852393487776883592456325126130677062050920890830724402704998677972044831547659461008771074853200520054113391850399356097816311445050825078791407025008075199598129846641832991684321973554431684657351892367863459329399912393834006211150762330249548133304579582172515483541226375426452821315575829442000349505223667168467269661667961310145372250110442116892449672091916106856122475553751090495858172824721251901243633164853805521883328152639322548059368621316715504280065396102933142044297967319309595311094887277763088415978261273776605430250439491333391882330736491676094591702168366956538138815722421470763215973157230415938009895421681856320283701231998708366079457624624703710380989447205970743310847392283110618084893942198973271075230943784231167011372991335947623454391608308861691883879663446064414267503949987812143968001993408372277037904159332579991645599966555088148094915995510284763911985293356611257520111189220366656080784021603152021959410748361517191453420552618932784665242387323752769034627280321490571278220309942194722924319067313985467760568168900050538378692938660422309028014918349589840363650062260251350399623124902150269127601063568215079926862665913422609902131596897579159620823279384630158245347809565308049899667036518791462281539958175556285014571243331541275537253231139817301177877538254624709008768580920141213264661709627587917929489355265019387815484174767311125260243245095702770769941625068251885548562270361926973473455859737845630842116212193977145406233056618888512585355006699362418741686704558853837365575665410193500863567309020216978336389841098262316814348330586287200068994001368147967535994899649432753147707589971855762404900021444087917973898031369473599008172426707515904041489195314236701003738897031453153398441381277034289760311565242276771529452656637376410711407150183065796555958069584675596894463463727229140810274854726833079334878344446870874192477422811477114886185207271362432112012154707649522294211001063717520812061011823417456505239350631063200741871360397317434932358279848552095876038343264170436397084231976866601020828657114110586144443033931476067144630586041178726131411995119108374408766640754355707352702525493386858940322467290516181774604333777049078699621546942451881240756811157904554902978880268915990698549147304446723851474055872429067353443766249070181147225479585372073007995246710865867405303670667714872945827250743089526361248665162890318098672557564053086083891265110469170231653013220519684831927952462924572798780013950564598683253769687231533259337921165029032434440794849323595666578813642506080160612155795946480059920735783849520804368358344949605402367601189534278462627028203950739417678587547830810774144699021640307689185699874892756656422060025788863359531284343360809576701044624320424986381525682501056080796971635544387598943040314106309827884683840597507466878053080119190608324975994678356476816659466592081686859526616972512194489766283728441516553258419376368282258135099083695800157687831795731576814851991560104617155837408980682837955944851132581310032592649975103025693212790736181717516142124159390643152305351572351200320251180989550609823075540702097467549320638793019571564214324682678379062370585498103123209308058023123461670580509593848934951666617011772896471197367866185888740284150365398133155931607447843112371107636224352597967078111772059229921865656967794552931399794280160556127871774790535325895106945620425032086539779616121579216825350695541415362528555177628555683345787190378898422443899881922274134870096349012777290103246985343043032468667443497406171454760389135968511238956637073713380202244751410374248009026868200615850489005230557242783802866677025361405152797381015657659537298444204839622507228879180831175625539879733648848507165642934836094434130151970899247681177709747673501411705582729545464945224254246085056312729070753161653839567791464456555187536461754423808785850014321198510405122951491711230482858263743812108709841959999536582640960184213210587777168803766717150915407343030655295797468615844370732608066062743073274403369058807263041682370051265529537959514316399842247461672580225596521652285886108203052070620061347724925526741295046338210140211305603210641030579274940263151295427955418501106992678797641282296624287556729666957502763528507306036440505440742342381069808661974946951273190973154217861036312201469137221773925865745874150660061763761297275307244209534810712080285331662548747728727201447746637618186553650282234195842859464530133280408763995369644408845967590687760471264961003481251634728898382095814510179435556410580929218967173883197514218471294991925247918689791817876345888248314567794467754652155290655301397625338048361338532649425207433945699054901948642152686603199323386005415685347268291285137555095883752366151560153831609523260387547126517753587837807980782426293576060120233335174885352606271573920159359722309766356563724671473832858818444302559603805454220163079493297473455095501867505352154868621246652868587815555124982885337878382863105907465260982632673380344699447333768048219813875819031137881987696565455935018558770492136311588351174389534810532090622609115426805593054828698343346431036287649146873466564100890564662386245089918876367449630578387987504275450218926739541389491785788804302158727644704878257624158276259525738384839308876978931917082360974251990242084784994341665672223425607677661513542728304994968968255351394393196687583869649258903871669598193186215690629581465601435111054982330568265155866607874588184173993519611244570076055213469661076920704725653980255427752012586170959511541330937300636121639334055173435606371868273816530801190681838719325088995241272996955666841300725933609538256751715695986848346124545006630927541543228254077001664857867697083420445688873939811722693242049150180766260894976198267216617110876828596644436919820164196071796778221012728038661961258554406360415362181468603898127326122771603130328081930890284092293187042206594959950932757047273626598290042362533331176748338232800405657993353167737272259142930148308008218214465461054872625812163508906482038294247233885757655044643289681657243547815367938470609330731494502734732165332112924792109983855951316066010754657500344134078475016213988939546434824418657447349675036489268577279195106204413742295159007622831924740097053778056140053480765273165239684038663380424148451523253804554317585789352257346439256815404894479288157141730899171304253728821557151248609019486491654023789449764772177249817415717875786343149481957994027962528149251661946552808594372159571929512019150420226883793365777055720049230384134896320255283395349405869998688172534882764258602188924920805829288426164244469934192699332631174995465334703196303162922776519886843496715145042432665502724175669317269075141113658983762690254643909380766842294593518505144065965680286945067548731870234201055361292799075023479766479721007167701425232773349521888283765330910585630421571516987254044673963655910977163353753711260002705299874596880703660460094807769619437784926983518431021526994861580834992205432126902807245200761712520680219482608064072014307578779069952145624477487462057787584012962469995303576284482960721269887343658422545362082287332789428059175159460024578797468763012533166411178414429172888876086010179463860047297639015361706264739890311543238732907460476265601477019530242023594221316137080209700820658992183834313704478278655195915499845759962516655481953852275534707410986054008833407748342250771813389849512187187260758575888781885387315539034349025959895942288082372807385147274587600019681062915822959068827415851969744817821694228415053116924080582079788071354404109910655873921206957638230012211474106789320805752545731721208377685060245536761768581918408035672305152917693800033820444538734692407140444453894766756206314573356870308219519399508896608871132907978835461530272369390454498945044268846391780470137183286680989568831701954141426305381682787459885747613547617716717794739132617429331688867027469928391336273150927718153883882535121053518056528730188053339799529806597657887832774862387148652905514466927192570286684159158738444555629762948936257346279524402858818297948808171349083898619081909783777112198885859024301458848531429305430157040434391371842947190479976281352425157226225661502670793598589691995237985918989065198956812854543376332481685010153581524987029768760341535759522500761665813590067959999992486157497911095015435275411942485284767288805423456967503668141387832592257182222608151573347855513716047271475395332819366325974172445523998906785940789600012864354134097941198106361057235786179168716733510904885029798065615585960531177955529458129629425121846107651376841077491447304836858708862566814485342870262813264750933026640663985986079922059357235722641652706469180916652427377322712219766431443701243334901984785925774512953218971808914116068417049503935981344399700007371421940073808751676380238768743416899330528170199185745838070616275728798223201261551529737044512834992705843964654012039688523907943990742372467800804690822152532965321193629529062682086607559139463809645684525724083950536835580718245087173342773413495333090885599100932045070237574500982142615069165472784944081952191372660010583368243246704474598878073903997760319459879218602022255885334743690372877260212124388267743592307918506259433047244348195440190492587984062497102539826908198739129205338236597161705443648851511426632293819068792598274912128498430458039971815928543162602273170345059888112515106061504534647668521290232627552471755105378181101892532519957935857362177056506117904880365666975601014291720416794641761085134642823553321974760896352207718784468530059675513601637538326147000169815351008903837560435554923357904279819501970056602798310766093525678915980527164197726220460571719861647923633433940994252875795216757087547375552390933971345163540951951952032579632876178481730782400357638495838161444384164733863528284009145154538762940506545348787168134610487630739057080879262297191531649684040190942157716909569420541035977179296315127568958581125319887612992717221945738697610564584887333518280466879503470449386533896108660485336837609101209277763986985803226582968865119190894185333513127860340000587592300732649799710486465935268549492075871015092357562893532720318118676322387339247739875382186440054928150434953619950231245745209590705713274155051602947952028526078362908242269127316259488397246705701134761966262557994123916342868973277066892474309490314829155278293489563503655001481559978556622873138694330606210484193024294943840148067487129286900953993046738626360735039232650989806593467637917768465767039421042498644867212767967657758253839805981707978406003935683415552619460145831456889883812246135543122031007437140916193212284640121537873936889573859669066422947640700674409198994573210093760209024466592013862549556632181744303515077017768529310907766446578801683631557607019773765056584461207998415713415841372187593055755372170863488170843156946032605351983574550892039651666638857813689332343706947818888319936277647374163125585932466570798535700849637252474283323196490052763210237170044988925615476307259336308606074375108244151065183738975271164700462753736514947351949014958909260551513209556155159789016488279489326396390253023989819893182982831063778806906638346346336249658112309584236811976366737274428978935632204845532942407254905112433676586614260122205538287681458759598365776450574941139913154448580582061104609591510547856615797296907655350739553518974612910859563766346488067486259799175380181698129772545999673827323812699806694028472605246900068177272734839283895273015075014905458656294146803106884229692823561536170904214791803575262034857463743178423143268353990539536970538065351976932718676175758661199195004156057769358424518965799725463903010325290345543977701807351928824432421311222013748267278504564114065275202567335402524297793856093484259579382524067638373055506936709806441340313341807768789297439275940364696005156319014167587042753298061140993630844478956676250294658467756587876780999870340160803491917756569363141202813285395743003019383937694646352945912418521281069462091645578897555072711197514256861270903953062279768491323595635591909142916394898435213030808759048954181268842987621210596621546658553220571431265749506672788738482867245181372033546016570836980311821198492713160239065142621438761752553040178312401044471629917884944813421577821343092261180928326129794320744890995783884651299084587996767823700201160594622509134132837558819310343109394633510139342512921111109334655421964408729214594995038035416491912643637942234292954172167534947532077023089170027815058587072966310130334912143203576950820716009487977970345822324558845545927600455005715926946589597975999545757135898558944884163962803189512933604491189301917682227487720670425958548076669855690218211451665757660485323820387217197886628951634041753436991787052785995467492522553099652141869820869385132343673712336401295276534675659110848904722036550414467124853765744238347386906272323616054644034826507749469539215569467407618905391763934377463034015043062252030545938720112470941542745503475875373359845137994446263064399488077039063615228928246407635436604296199353027641910245876824996365402695970743861450440216467126279623284524784169023549313900283440374194240564947716702818260826511355472801359376273917378631208807998095752229398585432118546323180210071904222275688470411280033390353424392099811938133161791537744013441989868060564851561960924706804381461012809401405787366077668739492338980939504100741319706497410176769444561223229571032711390161340275725875812163848983021182640524402631360532427127767182229980369630650025246799755145943683178706498130397616004942212893198441498863833314017583913335816005913750258129785078341815232543129139353971337816271847229773690274742442912164311872656701510101634200086947940297407448471362803577614472553051052556797189580225403927643398291347049468117902599600537252077221990196400747036001578029656629202689496334903192459754411358155487986218684395295285948985231200897356753798603686031108277774993341600733825389968271519554801451473162053670857377458746372367477010067350647734473819484949259096466159428736684128426313541446927289445383850675551338798890452370341196241748255222187841988142617258460338867958957572564547329442574705822641321439316790408362614205198325601874728065935151801367472828079459890820237266607583364004254782550618872552164655455997474101427247400156000074150939133215612524533299217831426732346978023121689636232299338080946763736377552194380105613455337607610080873128510327175880657239359036796270558330910469990648100423830606739773602203844948486635654346958812728254859891646372404481532798161166103628201734043712195040715949292884861380767953795922963177676252716524078974003384300753233392987103534744848422461138636315543895709255946099017438046607837394330471367887190875959065172106664343252318147431970513794553016395122830802849707654620863558240651472083659920459772054137051542509171246802793436264799746078146059506014465006273047848943170876663661208920331021585105622237938659628203020553042416475004003846914181741219344472207941130490143825960311549136612007380570159406424353783976194378554117842119321967002066494874659007992390137837863400959316760163508751199242803475076487472383260335508618099653852292318684898160112517248856349194878400271972106370675734084113796057206572499038641881624519778946165045802947825040681340502585533260078574691645421849135248780227790095677829613185207297246707315293124097032931868941778294173678262108439885906402644346188792801277692232193862041747620457993073632713964032734310820562326758443068280740517530454806058160300676627886888575578613208549238902238370513987105088013944089145845139708694347449244029499569602737379804307198871550872939731556884149502951889166011567840016407371363547320490741334243435200315589291629006949147268315621806215181001652449011343749993269641465179743021758395368383114203032067281487653673979597460731640723699603157112239925517890326366265149132522970382569791992278772764761838209783151721196112121116053228599018631917568535073730863872839733276211898134502697858655336947785250877302789803726990554598699556516631813789555709841989297177832592329548461558281001071722976049578359808319353203447033925594936718804352839049519092290050490106983089316144095773110813479029120168766851117625551508485267596198577819544069752268245166830434406098819092612230505695731257976221327742171549504402313458385054069512062477412686994374548024022527990282046061210862077239592184050504518119538404137515234587128947283115301270568477204362247523371035783750978040129556261361896491422027247136595909033387316878616194844892939409443315714555295710468594856179675527977970288753998039923745282488954346872638465644223526258716908711301635305217125906367334662221290822145240511429833805964266763132030690402800990783716025399315882698540493146750817940513966306800978576212591159429213409786110654555427501970273555010514130532704200406393158543833459664433900322252945453686593686701044658838540970602741535469647251640376901547866914435547799467362280078915374405664448809991161096767063520086517137767860691667011958715784030492995357130534284298595182431412801331834366958970347714654511110599223583110048887497708464249669415617284042582112498278949070931277527826383113868263230371340086205034173136828980044894931505439305980830084842402430408222580632317438159876268559295902256567966251615794574538730929052016375351098498627257351126887908214216948239905654449939770435256673959015422360251736976051870720745859028181908782398476245387367412823297499474591453741727198253400305237767498556749051858963661629616282435300517119588114813801140616270634599124991338306773443287851126650498003613240412835654931930107089021934385637791129267839058739787354640224120951977798893620751251348745014138133831093616668208699189801498929233604709827371649700962103473653894359527996608358698320970536159207024286115085398351529686926514135177063248650066930264196460669467231413247392320582208019577303052588216534719560794282566357870238630831615385109435035428971022081301371659466124305252571550185823110861513858907988575865259163702894486434535929119215883438275755022582611313452018540864980392649720652573133026630644900213017109808157887524332054259684099799838630692510865592066045180227301927024912482147229165266583151439680621368475019607765524710494189111562678184629648811543335700838856140925223844869688126006841616358952546505401047807505264664540357437057399022050955414883011087521354328509492075922912496685097769839598099488939709637806742232162593872476524608520038018811818361554602809798201616475047908695261760095766737548280977678805638879216873253848759272920642528684976203991763083548438459002077677708555757438294198744640376894328823200463193293197671218833660603302154184257412922021164259879367076393776226860370960429655913634078118468810686467483796172761957956609769687700838345624272995441136169660386750152044880467560914853087866521317040912819601791234954868446886032094935538917091768344449582015529065508975152140022861871712392470231142716714548928912881076839673990271231322732036722389945345548777329459546236255815793107545513773425758460156556206807883463120516981936320232957484914532694152108856668544251805052512129646442134949679259337788354958155988306443880004712189642577152346878685991103073024841110885809493585077558713208143477463198740304717459363260009900591653217867366791993998942934578981365699843848065981057951117212420782747607896882300487614215983846874137571559081407273688155376876753088655633676029370402276228348081552751460430676287983605773460128443147393521895526955284413193072794344411571529790944854918212172116791068470493489682025364498386383404441950973090366860801338312636936020799324771110425423590577139515037293045181303482095967574563696554999206331493195768195924191206341215183576877382448575794507693382001314905191877624702025404799551586256133570459394047252843125019215143261437324840857456332876146679272130268500309779488788357629844753395619201360796261881322858304069998609562047641820503714587395396133037778994195999437709142959769457101507509870731614238971955281734565260148406381759811695477277740581550483135308966035966013250600413214868134989379265567932147097406279136783204395690366626230255526238995515621477895383326026799396764881142892125740259159212301030624435514977664762794950628286202865584087558651929520746255381791661000129536542875390150281548787445039635052867370756664710166507014763358485267325830011318500954121053472323854609558764279829823941364866847009393464865497225738403169966663767765104562095507945927165656137357482853846733931453285939112860307471748402776688642353509767347488930407469339712778990578124317880727271215605234723724944105384214599213040818116253540845070022332326926250004744803920119425650809372330373214886386121983201809792667629655526251738633845690067391931014430945302671226715786745944208943909653256243914563548073362943976878472274876669282501949773422555370161227314786856400573009580882701609008656053363808553290345357781318803603234750854432171318867249986864840611174764484651008658558651337647481405124988851194505679521943834122817846853690316322912201301556089614577344213468559172089480894517713876163296339989768688010096892704821770552477386875935033042374861910697317794907092625449803976906829213418771031280158114242344275499696743393334567126858853716636463756071158856367043381521628705059480381688589170049335931514821904589450078510306223301249669264318599615370383337636318488386202440035923314811274717133312080793728371152593477369150524272310909550894729418884065723900039738999844339520936904455872557734230510114320129191760609797334268280790839134610855700199752830017746011672707960031852088679678627594918305067863340476498951909724451810505994815976328560143440368090616303196511214391335689065732211138271374723385457930722117104010098801103657868082780264387939916423785679633180292473879088916641706222980819601855750751694967758190212294294930301561087779683333932163319170875094586836868294874465493350315072290956607240749914080156061882825591416560202929893630949694159172717145425941856056826659186163959533870870352536959254852248351659886134327820230097947858135380923285540499169437872024177201187756858221665075007591489801003304965793011218604120171964117793873044592829015603510262329289774124784226739038272683991665817344296304897198964507886433825046894591680675219515564672697968627289726342611073531996743252891310387398851497564833147777135753694824153148550650870632150548142821486333146086490298080762507824971086971292029150110860628094348628579187323544072170709306040125397465297669596434129626534450791653702627431149162328566880756740615824353711135754072930751280225684393550249490227897495454105013142590640270469845505356648473182710953961265580780897396819607602061030128940759992664324195222911615681405550437376814112280686739492340203699537412429230372928764311569419371464383241916937293713460078079454361155628805776633687019495340565270026941942083815287399754612299323175064520557317944461965379169635853876539207261626470210894254985550188923460809549850556401851810008655081348615003476018137913375097822532274763569723998947442227620991846849869129241530651794242730306636783290197183257619158181662389598336595640168596662193175050308601711078174488915461311154880965069822756456247154101553102864407338217842116623401890695076704337926706925093074317330325815430327003214653994988171727111822786586139333248293820190320900023455981373650980126478571927733668590929173320361381776895384611619727183408413695211535477994307728950212259745133571626833739504668001929459034893026892904734344961413893502709477184954664610578139724752167377906680436865180958366905890094344888853468056907177029030268720861258550918244653517381652640995911705370018459742850519227513309195994519622422405488709662268608818304287862642372814845445626419710259802666711926456171606697811398341106803275930949324384024294300039033005662624779191120037370575790288523445046642157131051025446906569703118683674558380955505798210604523489229236904285615645284033964349544024487061980234525244702645872953170574399226268654793039242055675378460051326023881094276539103883983324177503789361409260080608872071904503214589669036086336012790804973697002131394267661555754044334724006137378489106105667550070278854335262560155347973507751277140574594787324002117292194686832365562527098299318646409560874908926878266949666396393472272083695809746767183573847632746489069728229004611446035012475066288170556782941740622313091125356628045874161721599690072792540492788340934546028267736652725813339708669359267166255013263792713426806514920539985895743234425924922011827915106149620793892075388974417936116169321083908585892442782693613257659308067211151983009838809262275295931393336601746562589352158712178353727154417574181956242118171991970807235072997013828211082219891741648099831311324600648380723106429136404693251269118012126614659910925351219855108310970325039173260160053255922098633710608981425634486621743441778861557370971252469899400267451972577883778057875929806967296551799666530431322255360783982723838746553729733300498441390419285762438929289909216222447205947997276155947730784635035204168195182374200422659560593649255306485963933239855808469016748147760114088843922997362467643929413962674335060229815416594228505629895232012677818972396718422939375716638360477072409267856652131484058877642067666531732850897990951340480087216784451661744710159784252110783289327830293579107487299332541738630342908508957960515251442409052313768068471185156566013551378214169942257103662191652050537404623632999265546329444589519735086118173625639569868360296325987597172357466079368532068390624270682955160275625598855790556562106633499794497858546391185199396710560632753674925614372012561440875157042770983876137875389840420294270927850814780674025820362493302590470915536256484980676341562108480776157480139895166269297247715834029918407255550798946135017199466859273555305775881860156490933674299285236530542604138168037253964460472750773552565097168417487649882813842814186654529291638430146931867441012566596595294476992967971514097571307953503368689217431991896789140767757619902778434845583968158073204827286189662118149281241008590842102551529821174722271944655209846173743049264746710996103739286356050925917870922292645214918411666500077481885750683472159716049537004604222656044311928716955129811551099120082624215355583230657751063708219556948981359341198969982755664025846594625203773115767658254869302729257817766781475142822874323369066494332264234918886856260437841948123768610336512355927796236188885033752832461436018516387979997347675241697223676549674607317310113095630168638027797689480535758812174818177723871414814937354886122286154458705392395941980003251117655947403649788868282513579322791225427210123483328934961529076820709946487200857702594442096606457965705615628620888669132410397993356181384924103646565485348655419753806024901907711911281096671477788214989352854154719878861573832203982514217259018012159136940759911404985409314829489139930215010186176290647090564435972370562935907636965115848033705676866095110179699120176841056627328210204250899353553474889816434749701094682395357310429127545577649705357062555554717045448836993805542078502619750593455731327696784197143689978124055306449456843683962552375891559442090587019463637393183501517169174509372774023040399419471399595444853586468772479514823102506420871384894908735227555962728306090774308093547707278249039949433360605219363714071172953006679109121573612647597172076136640757953259406495440645026033187845243988362567126296115502591781831368979003471359997550727819433390582445149461648344816100228503395824508300158818401608185012755065060740648534748917764222342105940187643271413836603208426702997573478722758152861161161815828025291775439974668776937737404481479456222060733539052641812695620681544932634617583541345598167166989623902749275104141456582922418367126903970502573328555298650702765765913377332684715533970067732540124102724870420112307473398670054070117997620755309433020437042783194139437989444443816818593480939742747576848573653962147021042091015863539934841935922428131449303767416745114772531754355546472079410072862577231057135208777540767622376460415179426195963827625089245106420037115345551627442815836224470105011619033374021805795762376399537371349721322037448134201201313541355388534183522124574304879631515431998768166008399283648184743457303537430811325785586751493413908335987600627825192877025849327273027218480854345818835669283489814231345016655630168068768309910513623724633242045383408617529228576810357694157325407091213881208494472901219017375871016382967992000856595941784444225074803554980471169447192888028940772770610273525273316087475484738651746945185114289976523411237990192661039516918028879083199125756824922075036462920907517938239698692071135805855529896879962141074291022050518664427442943107156426432119521199791596379635308295798122931992694544431186046561439872193411404594740518516514477763744502147496988475872037961286271986472004344726810657860285599314661464544283519540026837877099520711301972207710139523853900646318709548734391730223365082942621709526704627449626116473715132631850674592393758606999717608111558644682366511231014486849173884820565253788583944736830755853304777486206519269708075207012013903195688658961192067859314127456690971471455044847501667285833415414217519009033866471065958899853981928868845677648676397420088969850139211011901136566390533078425685491684864184396720158010582643216992634090251560302968614180311066593335393644089960576076352740119044953350050108603267557956636814464340920999871806386202905393407045555770298060734547115820379711791115568809959351606322744812541647172131822230485439164784119807906848166582665356186879248939625645070432541086154241902129950598688794618726009376865274148619350751344229913752394466637522689242652548170509963083799432992632952092824374195781654362126475266247735406298477411765784728829885152470660896239547663514647480569345091954802696708640954152974193497861756487478091439789539488256804322337427972669416558612979518041322023397284538188646562009069698175297545744292079891287199315487832701860641195469007237314093205686732618562561619930287110719058817212919496964653822924202380723182862033716989307116288612388994306329149093083525828028862425698328020979007734987789492752897341310159785939641831975238907720337605489971303024710063190251518869579358538960510155325401697706541846194810098408193205069131304172032620339938667401006290709124728597256363975701264245300131714923205581845335386570205270553891092790014567881325436328399883545328881188978739666583990053503580460759453016626525326364187380833250953732159290880418880092389367897304249196395596132140146630529603663716598052733224612063563857837138563976578456176324519247659852329749240849018445735529760713573488364101879464216596762775983126828627788052992201386262782656858395002709139128287133640010874461381255688686102720998834440701367776789911920910957474112641230418239664742343702635140093691261450819968527400369040103833215680970804659299640219011942072687655301546285156066887690605167980333361312814486353244003444426734174849621167922782730184574738563485495386647760220146983692131896600563335744321445640460097382937781007569108283335952368981710628088428977736591198637492782116147409114546311897266593675095154428422715477829737301408627980340356398463509933140976029571541245033362332194918267378799394386384206269211723916739100688925396196585188633937383637683072978012186718443138381686792321549106287596649055268316947502288294565517153237722134431037210982015253057643766684847035336000194897408733733158310183704810962592705968248254283117296421174389774979016680428722656450891025861896891486221209965180631023265097573597318263024081696343990435771605582629007050103365414105559662003382653359783405892932198339542194981456062233900204944004649995577541657949367899390643617941474606961657599575561246797472702267002081200376818328078245256832138036957992107102007031202526960602776654875182367600311025079319122236736440064987111158037993138775397072557372923312589271030442613682101618716239159600597096093982675360295709664189918719485181135044059370687485845338622705687757107949098190689456940177645961831658319571905021133233488279703604236102754602724135526809131137620248932015963199890303034874345302284075324334952116221620801989348068499973632070979885928145893877897705833972417852478575516850091128007530444521806874453989323208317390417292441931041359888360088595214006385480412207924750768801279520753379428400826227726580284163735319561597021032629846618280730294053862202647416234033050813174202901681959490892820029522547077428661340382349855366967850931120758602376223344080052583643534675463182625386269608006680292477941031774350999838119050075438386274264448788908598280143759908358132570419302902740120618842887720574944557464448868705344747468546050722365028228968105161095376677336929606903440494202342765699270787115082911765813886362698039886822338124614429691143070384937931228059806454905928403026943431109141417244622719034185749470457849313082211461726167549042696019890503314625593646982002648819950380553211838415997739132059125104642373476039095649873685741588370927952856774925337920560378623393389209310587400200747032929219090410990102714340996057414009191822381689180381274338733981611965362454675425432003938582095730202916259779292124408628403283495014358081092873262586704971897966048071170000795300536242820867523030697178436658770130630719756866777577769008634497962417188929300833740147607588708422738067981931731452035995083051396804916836187370238134522422434728517374160188690121935279208753820174866207262882166064011899429900531530070797336360560610801713146476029294368883384257737169543255586261068456486474220448943560814020929379022883235460326368126550954964560502371439247612933405604022402800603717108696091772775050596163493163226200308212841268289736452533155496701250685073660676708383329818353170260938747440555942061016505567298480385801143681826903829044196457605677569540515215166837765433311245954323623515756123455079833038982647413590258028859046912630534597586173074594677089629477430862196245236015251062794734021652944338574575985882969312960169550902345301556560992681547220821243167316280601146311937803234447415091792313849186213824766600633719531021607873333721393578736877112332465873103157456151137234261407440666649392069183020741907320629709364630116515442146582052197299083029308807177827373314293668067144003772081446943362098118103572708409309382847219160072614613964908807866242168928084294923435768378802582065205557115771291851397102203257731541809689766706568339770498614562501210761488584246734985819167721866529652903195551683747039019115658124653183409580249481290418082231736061521265717232098525347264761299626902228567116457731623065064380229189980875195044023136267994544676915866878139096026075747540636433306714417082798756471671053563343460935453567723264839122743370611412754884522210091047032570343523694721762104129791988994760878696250906160757034555909370173636332633391447013999891675042290311371583215187149061313169330430243143200094901333009020581897972631287790863005339668098316034004973346886819371464809852006319309835766456150697891084560562011383177090644913087728544489098014899927722244734300305343484728363215176047723370311189874236751648470966324653443425925425022114153795448574404400527570671104382686808870326802445059680944959214257001070902779369166476823798081621738802314533637857214073936124764978065934383927392926798646001114763354692432055832414809239880560794413968741795710583433699487197407231685360501630832064358135699921112540737047098992941586992460832074042583881553253377020430979750164511428560750494544640280949377718955387376793703051990998587007744166734012620757211741031528278868068408451095637168466237285656027980928696459803556472480960630671681951168711373771485185360583267246671272176743756619767632621748167600469570448605402470445421846433292562015984592104253732922441754884962015665332888631030838696203725391097132761289870440557232390966677339362381561134483133102032918708021181268376920600604266268082401550487919794552177159424364745378787870971247905871562508511823925721939075215166149339764451710628103872872012315660124377259303053645822631631621142283416373365148720559730421524529900858113045229970909830134574837056062658424824161738987287840974088211004419648939558023729473350860304020825565287791583269042536363755907975712809246282122497560388640765856454374984658598905739882669199221989509500706327763396828478430488870667325513569010421220890866878443696925052056013019754866409953176505261476959737861076591992219258054545331327062937063151165397306049827933502236145554199945716771182127166028572410668226397856852724920560210474502587465819279291283298017156489084949115594564414406263915805743934936388609799298162214115864039736118044694221338943670352312710724227966092715617833348403012862162771123199550147131963543991422800561741983126281406540238184751340621716951047440629182802843204902260246370929620590897493339568041484190454245193943026366778279494879697866849526173213965416705165601184223603136094191374879889442274367494717230615024155786351506731012937218484700840842538405160517758172154810687959562733401293401810497230383159055237048889808027512442351559592453069791647967532968547897443111017865434327003773931674335259181773035179101924352514483664766810854036266297589534948009636313791537161062565893941576427064217481475444466537138186230901888852218003477348501858230457366173912677953802309718739827509530316255411206728429805714170014268046323821012034930232211079969556611185789480193446653139997502156340722851642194200197904759774081292409330264183963962051507803124520403050357555550171516801193414374056384696202060618098899281879323917432894285881348701196518896856220047580157151709505588944499515416298350152320481943333391435465999513818720859940695063263966665977218352380341977372532333897749118348496914068082807591403288917928404609798567684198303912152793675017484657753969638675946972444383370020670384327492147602578630674786884707807673290617206188735149337457131601420727107958534722294007964377034168900562143381720221739595483897983970605667900451859636113509191308017441282018390618432271765821600557091103984522950053760869723429455696981867218157507137299201169706296636399042903484514575553172130538130178570862873006455310437764714756417859897101832956615745827276778404443147132536377942092517180148859064311063418348270029625833273222257610769057464191792992879422659792239237762958952754795851655634484778651718001138759860840674782415287890985784363295828548293771998656478834373298771961334686815897276898702297853747347810243371520429884031688570828531534156457916364697150882130361723862196812484717264917022211901289857062341047569798592330210940421336245310068557457236740303783222254401310914642435094711610404232465180470127743139661645051724091075413656546763208218293880820360329872511462890178588652689959860234916743667267597034442671827726549297107854457623903233566558859670617337239361654746948725743668237954887594350444828202991334648335851403316490839506433550714076703645253810605116394001221400166317724275280507691161261319292811953057885998455936711713815548228442177316491700006897560853416561086451088665682363259415785518101312429656004169339421094656566611858394937907484702356686881776314819058619141689154151998296715775784561747207724623761142910372064661901033505925372337408196553641944899532072036167991846613166076487680645978964302560998680077868315350397590715209508897890545081978892939809140653319910235008915369189387642848153923261307256603524009417536737745565439420781260324377417246343614089556437171936623315932747174640502080600707008747889003747834870643799690228025703060325512247784420331455385132559733831223243374425843651768901376990903250274567621608521777454709117604301583641690002826133922114854865185367923143774671074306875991375472479974380620968611046047149742216853500587892342163675529730825849004102627791781140106535882553855940743829530424619206148607826434822182248069968915482095272432871228582245414438569575038365282294340287352379690971654513880371858461827201106538889007922538860723026329803764881390576242071419716174547975220600391860169388105752105590297002076952271870686808838068826212284493682211647791888710100930826110366780365337074229874999227623945100009712046021904226794098559250541377029113130822769104897308204732517054799843103385097843980022772981607460794263662166575718070209943315312104191199678160876642995747160660268399204807177109588411262008638730784357072817287281056421388359571069204395898897610503866709057459714889244893608128802002468095902420353880595679697906445710536952354386505865487711147799726223541255049006860422600614639011032419180016638280132894566718429512154880978527056940765710037778976349001161281370706487038997201307449877834207406988247173673606470730617540195174746256321569659811908008992599786547041217275272491481369445916996041502751700524432406406902615711458079505960398783429092652081883776702711515075206880289500863365273369592118866307078007408667978548190764117496320976977472380206558318363275381749233443860578866929620386004295925021358141369591562240339216486674071570229385912306328000362920726436917394990965670537845433085267070345763904668854905730660594086804257052416774225698800268901446990520414207904218094281220082545004807242047221171622729730028319116788130913659436888156659709001288500347089471011598467459860124690840466605216857781880340124890929299170393258417933686136095867352225985581612629419840808255503667607218050844210263362733262495259961156041437090026901331029234910622022057503704967142105134484946034685074235151266486690809766214767073841428783349443209457335544038782587488240533487578410104313965658622564249066208832030418055667764220327554449605618712698750670477125500949856357135834397711734584296061646328451427040615631883348315362674600430478388803209868185110410217591423236269921505930374032789940530732039604022584587564452806902401010080551354309525090118648585389758426663960201022708359373550241067854058395489441618781974880263737915370298090581068328330282769537510692814494210411124402849762332412611375690618689858005660145594806924606153499244056121724195731405154410789578354357206506427689224160047115434425711979070824977939336362198816704149020751025458925236038657838598880584417112121819168166759019913649307627804089866467200142058115221501219858690380306690209792249615364459869719670030766416741630118389041678191751042232422090251155053914409247587663440435015801070581084136516504042041201299624803432240847072701252347736395772981621382005692870856527408004172696365913523062297377554519757930334820083560834184061094740961732049828721547990522867457731921932622870124227671602956028230835688086195710484364517602472132991738593026966165327176444491805247606452563376780404736056575076264970198056365393432293429495462503236817185886030025749874075110569497869971594940106147106163665910376998841755254042921684596364784745007096418770766609341104869582359809822085025557483468846440138350895816164987583132282375633834384435329819979040871266748692549871201814232439592347583079355442498763596657380263930130437928781668367861313822602282360947284034109054149761763920525386090335786574935632924412829870776420359716618572495884304800864984656224296488701036072068018168835174221306413095123491701267806223820611096690506901641682589472338618114691598914121987378909368914557077452755234445565761620772035030227058614716660452900846673303718075894664682503096355525233193073012355874813903258743928103197688509411161934144250610409810161458789342047954625155488208320746286912495183792197602301267013351962707280877425008656298264263415372559433223341513113721312552766968071832886694675132676486558535883672443684623305496291612665835535521611369160192195360340647760357849831667976917580401339111482933462147143832039338234456661080344968262375412835390076229782100550155560233307984487527006662499863585101891859221563929438770290789950691716209836706458696009286611162973405253784433561891519696431976267208112470915632599733036971946843931974776354258829426629539437055471389849139424277655950264368918292780409450947308092134175859772637737732806073865245434104621546469884316586395173512761264687078269851500163684499319189063168204133627139672653200622706685359355309117275729817689495807413056579500887895722242897179823953613468388922576987447480341128851605531767334549512545509656143942476691221557583676111249732084061551082306256844049171678604670151092944278339456550546641763962239602246157302737883559244800350496943097248833786527328655374876369387354489456542566745263329233193378355511643532647718728630652950079000880361898344580566559080503398061515077421528687829680886330850821874133841731302249177991518372438705817256526268924348587274998416610068442232917831812867175552579379000881473624519244981952038633334664724081346572116224717722814958160831322635214978592429308599227785194249996694730188629243995914928195803882054545820394687112486933023425354085295233074789865186607136969912082454057570174710234976723017796555367786312051977148570623812590404896610842647971424943901021953427406331758674055714738884276684425450168286571083624157902236841310452566148448704919611486044816909644717629718563234059102732555584363256016275603398287928936378518778793182831656817150861936549621778136177902594519412220926739303954812974500697284232269354435740837453180509083511881322600681057341697849039370289095532439173035097243325258640376221630832956521168235278962139167749783668023354797162011240302810792115853391946817465723287173662889024144294801025599215849220529294537116715152115209810322118541200238628653510968915635070541108929742799476785709072556248712845103968111811401702843717472106358703843396469059851978878975602809567166160413132283827329857294880504126113423818859038977005223344741707711666233190728930637285589816461384064904707040965866490682200996743314489475421126004721167052659922090499362622394066153450730014966808977765052477961636943752377152681679850312174993658857953076873783718246989028277213633023603533421530481509969190647044249545429957282055905014070740743797125757597699796832325981534765963938335488526247670414427572992825320022949717724326412487726529948497385459283255582835731754735346812839200287914090422649020628824962821735027134733614227455503495680174403499057516541254546820318408369261777679115360546781868676437044613830912798597221416093339974139619498758863957361689899911382221306138895551146996214435344053361445186293628029928257579582890910003666059040437811134465524201488220475745911678133080608793670114983029102709764496313544097138884648725766451391725808774244581243798917787439484370189651442554129563581046679746547336505416495375506318736469566250723390915344582897163699813453365588792799932686868016813156058038525664344774888045154166440055460719487863254880140436692058789687085814565479508162489743469941143123105616276351143716753996867708592807081141912364650635158984959609875606350777185731869548678319897289946417153310123534295540806280877547587409227140786874036587258184398369335911342861713408760728771663799165194622680345022453567367476475741598981080890488442535812395685783189239385770069218036705436854820976159250676678224153854270107132372203044959899729790262425946959722787540635063944173881569856204811295653256541245189450320365567402094417275682216618635258507657887995666002924270892646857522079447146988348975066906350361267356898777264536764476204205955083930273925045408102981987177770982822086677752390739142517565551088217864892137461754521308295907997021181467992754753678020012703961237694869803671836363691591764410330794997860845401109140899411140580247764799938424282506862997365654719072824431190316097548465698355458386173584595641102413489678001330583318468263254037899493293693275653500749417542168260704983228532963419258935423014699722279476411954094202740336478190380767305385393940891621767409692898757499047529037715189980570047542288451841958884994578791263639055538303131026504733421854426211993491378583534756271059872804275743209280907360272237329884875685792210668632329375750260743729109996670364344598073572434046255423113532031094352634461826754322802847883638344222456035449692111001468836065207057474523701344961808318386790269142745695224070046808601838225811614066996022388869714848594961529044929173057601108172831253934832429016752480650727301598917880086982728830285136554726216194149086852761546822335601237849846204682874441497039653221733827593634660818227556225562924705559796319732942260359952271836000288982659162352364379193847405062692554840194384821948995430889908258880308881933009075204011118956701582125284739900358390140002285900223451626303147385044564217395441614569959706549427598014652804346337631993687989761444497942622382286441086989865690649065677104933833671047113792143966637344227258332558817657526729335799096561218359605786649487630159238383576894575326306049832997377353168550579840017591356018142931199447222891479550452363159696133723667289171266621513572440627629641628854326022883676479140310409235818251848248199494338323297460364679212748182587905322778823795073749382198712775518653435787900823259479343489051180230574110867772369495519794917328958833464342640604636624710628826409139706125292949168175214747083913360648728684801938185904069242131892663184122211937018822255442817557034667584544326309727399693311959925696909077167689420161407170207731963728412962159905460753661343698236962587107339556313126784879660598732541776985347187900473049506528144558276394528730377110934388301785788180763750113827225714248895391007100019290166354236415507472668360873108450635831435974485236339403232200570402005585605846534118371200826357492364731938421260228950415202813221823870732000445117622527492556548172075869215593326622772222214418612138222427211312408485903952924155481500902611104423449684462479087384820551362138554520492373605550179403355344894570822305990145552885072146935757119489968590122922921570044425664455678544299514301721155019556726317731135516201155025268076150854362204456460622457470163603953803220377100598543577535886852167717383082118087922073214267185480158731614663559816128295767058320750381781487849830768560053199117956908853805336661525866833529255392917042367510966988818916462710739995614925514432455634367705123324170763072211808658429252608452554428198751279215865913600902654221742408586367907262365311064746904212215734935829145361163911797550923641727742509738262116135219429446281274249869002600560170709155108885541636804916041910881188859704383951884756457769237381247006722809307553866934267418214079924652454991728947648266018240977087093733891179263675734085190185506318789223158572189244676399882542928424948847477239222613954147812095268801628839860724151838200480412814177732535981168182078113728403227775415844249317896557135767105849095688855797019623523346742977868897417570351977731978493733661279711328907341181949656005704372335484326117454340651655453034002178436086186200378317602879693146871720987334186411966469392031275485577676117626028208971459623079458865308812832018429752269378203682857493278339149977618188355365497464873485003086908584572080858144423965251742029679516279507010923871665825652441273455405404058604422982366941798734691680678769466090850900699564548371771116323147324235917376638801928407456229064296929594449450886011893308354657581005346414496759420109557133762059851678507799160016447935456078582129428178749088774366431249684687397812501960845052771853157169579855474321811349372637454951753740625390084904814446141827667505378182174300593588940671785335693176784049989893508161711021541107109933174026517617037936770582154769746661377774178825172468778344658575710406510523954810306743058232993088165648366223674939670232531852645272460119631544420907409405938582297687001185288288957049578896275672642065237045642513933084903399941313283652091257961782128463867914659718959604652723906664527842130392044024339317999429896314119970712888508586463623841995773499182814231365552621029813275440885608764794746648119444492265162820914549911008584635871699766040199292812734168595666140968973524513791822143905941284350895191546528883049863113562272055724867933572089971037673168911140661020509964660675733076217682478511110708139345533190876951576080363412995239130033279105781404900642195248029503077444336880052364969008590922412555393034944523319937164134477766686622355838247966961913530703373277429286675644286395358876783670669155506052010748689701994823298528329674411537833106483330855640026881111435243010237784122767160123338518741100234813270201516257177197258158589548969473460835439735010637156157628802242098769673135045813082521085085818686191739126326622825905658815239331602724691791863104210741066765267091157894686470784713876754397035665610322130489368564942206947116875870609214191235199164889502099417095636332664562824049830553258758926029467808903531033341488610702806743464380124736742510197566191833663309486771184803772994479777449067061422196682338793348699229864758036193633263355246941393832062941410528949098879280010453976229119200342359321671797565891143545857258689336490764681535260548381503660910421315671085814121674892598090997263834428410971066574653645118677596431212282193364179984454437492111752642008351761665945289466643147597730430293609249038587289512409303563893781666040239861463682654255440072780659707154937633467052804333806740046317107196109480974669365734803830931051578019257043675416972870042370321104088530482311808170050752255375522734603956649034157648256942297391578560553131544788369610926241371550018346940615812894665323194431138043173851294332000480650353010126832792182491739745011787410048673700634653573524727468261226316373329194933709777943825188243088016348387171790827530540427997104940286942121929211997344401745959154854240247810000727585470371507928864177800179001454343863208917964475357045453102278243968716114669564486295045790517616563711858777913486065243574850893920105665641971800700279091269254400713073663832212536639318457519471885482351017811206335718447040218777320412693290593137643858004930051967470769298747563909067831428544644768835750533263327033234085135773699705685442637857413477381385343388561072526265203666159568076442767348388844203867276687561107989474603379931303100973847446897821369351685382125172632224029597135776844724641579222088249231113021467558323178174419047134041235439013547577536489576007407105231040573686569390035516780724357572453619056427335058967202980018247710820789310097484331269220623990502652356307460850242330227435362463236775285969466145255079499030498613032942289656951352773097938562532348765215525244985932932694983106314346697149439000730276574369755046329429315957527700199563364750946975023245502261054494147562404264807534704794840585556008168111966905249903768649805731404160088156206036529294242127987161707310762641240785803222508049192587283338486129965024104124396977330448318848235455363707847358460403217080775041528040735613233912359564551728014299609386759980166644939182164356214911488565668703616021016985197090307280924480177763232465661936022220100695522364946447975502183878522240347123864899130894038784079249640640387366108208640765182501379373946253226389322674798138616160207767321411396009699677776179238965515266201767928880602023936879022872924469758466813572446317539501685567811451066813197261396672030641336060186558201213775038300524243810937889712967748160456289365811880405186576170442497765541694371655135039417090259234180932414391051608600719291252944928972603580040745357172161034066097980268142475309971546386749056938421800024313980454968967694144573762925148215625177588102387933200188008021342463705691108191464330662906415318652350281876429256889025767074095418900848073374278506816162440179816035531622867595532096352918141837439418455874787947904403532702111642521717439965025048700523934952091286126858853920978468334730305975731437857219198350964923247826684256747649719178888105133933396495830289724144165526403037816559432076281461440630096016211791821816449418559843730262893404047581562795951098466052103837016006357244369353713616333504646181670836640313895290956269406262590027688699356536674818206543187991306623485649089108586779058503336572364928013326337786185212004798985022952004076236002981275995783023654929640668911152676179059682250604276290101388446725978581313587126953559877130706314856152525397762658750401295384668356269802602316647787330761377403065723080165033522693511471074145114643819527802914242136206064451540206101345610994496844412056817384412486401495552267249352192560429546237156254268277697690367792602446458547844725696396475688275746740941796681619792016675461584024346372084153918914941314228241887632970599452149186827852545388381538096444475809161768298101687403328470378408084260102693257872895606725278671290572153352330326045471850069098687401007743069296303726347235805613477097129096186784719130096275892027039682694059291908360532857715404936417615265804930749484892724296238035595578488089753215658610120361949417857640929604036400673109866440327132532820900459911933935514521383897875466105046065405599503885781149534489140845574905374650805740234191406409605397605719181506189731236008867134676215212773395054967090813326114362607540576626208519775514066526724737139865565843358879174587216105918248602155739457632750479840379371793806474990111617246244787169064097460050770784605611026740263646668502579221490084084445039078731565788161397584549225367726282516090146792873923572460600614734419855918363249624103992324157594413723368707849281872933881196405813140852568403077464407669826261552427401374757649174305635641973887082720454733410857975724945367753467866150962226604783026723074396417889840953595726247002347780546511203203635685951346012392331461066288360885299558103438033241202417734758453518634237821391126779283238725707328169208547587596649888242709559183852901043398062643067352453405947781727868515218163452808533080862108842445822297379578432839662560220098363995087497896326549440398481242008048593408144278741407106335447847086394185208902780301869144122488413128368889623878369342227333952719345679901171103803928419438176552940617910946111100809259308946242978904539341126185427082395874016325107428725121351656435163162139490724849057778251593884600924410772575446794914343009490763396214765605880430613280537054837172017037618713851438532473965194285173231231084944446379874668539803647504329647154539670054878445167591328716186242557782778539608979009611571427339024704002451753889017303689517924663397461762614844367607933803854155161070749452453533299722042805966384986843167544845516889383303584840289957004128004232734181138272389610841172165593175002820226237264379700474721659728393794653604020137268089840464794592507416539743217781171926367040822721060615098651002571508085465057715621070446347688725981261538580408580168981251863026255394281176656679269621355422231165642128552252754229544619223508407850299157343667281586962006819836153007512450730352736466534932888060205979525717077276575431049719869412177768114697992581532978086260699140250276400103752127671567039067317079185346264365061657365434621857165943836813787666858489634816904694210561182338432017109182507597909026017334609532978300883087268783406265561354642099545318545024464154600621559925761057179900698564718135636690564078803950200487831079829036025933165661579788761691287487821588711889285030347042658264215924681860213165114139283901710401423311595943739948960743459914527814734173456629445935041569920454041769607299990124772380741206839040677092666898498813503695313383714713134245461113497450731562967779429358693550573176766578010892137081979734159247861403321435191326251898214964392406386314577525435938732970576705017660821514562978250124748657895927016525314864527634479049404821025035161241762580240426749162789536579890168259453689035921066163511734853745565224825907271447266473625664285457464421728182962823375361927475987305704535607221826218303382747865072380096870509920670676156481845624108339341759058236070105157809236027168936280875703183819233889620326028425958739536661889417681544199423676760138932479060700287432041031810825087019886933910670781033986651859816088453950568889981375584543044590502832331350664017298864293913407162319422919173330779429416603732008985146226154862863440965940785654107138682556692718159167978784725485788549435160635326258613770686730335728584677947794037958866168627653379481999721696322989246409472739704659564204575432823833888649380659435204139982958904561252183650010393987611421563892401479844514057862859764857174342964514272083364088930546480466539886759979759642226520153877625271466502884094093704639796629860626840111109641510110796791541847157837607955072121780494117097518308285788632167962779028620502341925800292724216947901180018963934894021328500335761349665764214497922902258232106551295801292939080705127731563024723783183031041796855884462367211231993991751951941446171972480828757910429930273100664012362723234038951378881826300864442366722496310925546370868124303552433727190688742320079657374635042855647978178182395944206257590506126844127208853269323925788249566039750574898417676554782983987467993829268860362146413838076611736119514849923376679393183947318184351455687725301846749185386624025296428583232794199022569892851132480877373669719881514604172060007305424336881214934989241765073030278526141936833856247808905334208896360386016230373812404718079946820245565200422037712679599340763337587784849145134233295054974090738687139115170551105054873987859982091927763294722170011178300428152033166263454555060606495106710130640947072251167627202920650485618941488055587062109650589205762769181336213697980714520723546134156073802688007671999007633970065152557284816191114252309616987552979571771015012842497901828588579213114522640398173350636052630785590866565850641179328084724278507956899295425709143274181342948317457893014384753922074230303716949622300727723302572102978162443935541635465025114087439273274283625448359387424276476039091181046215800130565919080659260729049497689937141437013403594846957145329036366680639271951665545005316516134455297286805208772217439214938006684746589977072250859423874203199429315314125270693785582834534227641054064776870995001402777390922847912816734529884172464078137410705919818611952118237604219615966788662110655136635758108774807477568431099404627738221848091585337457620436979961135239462592175490761025093389932731779951153467644736086148848658578222315489200254209442288394634035369252865741450520760470333865361983597096216136113622519483087024934291564492055508831596355443681201061755497503882364449855116319542208423896724687895430536791597053455675488717764431242493837271289680350037326667373347050696501346819049044224565568705836948684961477541447699493882857827880637327803666077322617748463055478398830877668379045265096698663415363659576013501898878806065244222809098656649701969382907725615849024252268575269421335302288568591938593528760249250625782998709125764666425938657489366616002806091168456759364293701761157175656980443698496637648934439889590489169687419931253099011045517303083028975651035846080353073934662890212715360591079888682711628121190486651698349299577294907593749521401884072967194525774048460207679653176470680617230736771590430014248069288088025856245113147865675509272827385022746510098723449016732713720882379872721594655188533136913144712345392364842040638013919496012720872846131427638518847295383237752533660240392126431836293693976918066024037270369761488588199097494499914544568014950736026674783127810213951821758207215917209141062553098607578124764615708642620309583579820977804198477595460157436445128651650800961897336962734801513146204192249413850507941002280112968308722830831754392000881027543929829655004151323500720190184469849227702234577908984277012927401852804220720610913418319033064867584783479617546032360729605790945333346333013425681696079657713228712052787573313797069106537093238761265464821542374485000279467910780981294065970017674956822080390942040074791732029261905075476120987781068599421612605542974801061474405363868396413110467530991787284808517778306159408705555677545171545962006924592474066717725636943249942660214156367774566968913171747775431124439174677471258355654304962061856716099084915122923360254334054677402934509065366932254745475679957206749587378656924357577888133220607291405513177890723132266072555727813990608296875727940982730881462981697422014221249453679088585821743236277091729092368416264123483370791709171007764326921108388036864923657744983553437387625891824419819036396045277100684245132082506802467491664473442482729182788024211610708328402298100862176772878393521260451214703030198600865659811190905546936220519884249509233250732922735375888603113223748639653414165743751433926835282413121997823335439588754032664219357775218551975113623141841026780509336682586384483026915587030675563836533781069068634477538453031120075359017984474503285973894762267186046553699060740077395534712325358979339071492537651579633724111763324835344293082097546895670235270507118909815311763348662814317678110207650122166860511698819346525045812320968305008878430176298957919163481551109432022848759797960735486746128128271303816840395970103461739868167187715992105990115737471740945983247733413886213058414103472783645041748463767595042729914554701743951774712372470365819547177289344816500576556964645722127294225251985875473874243210997684104108058124553996153745856217702990720879097651566936184814133474495268743943778716413538148753559540090796147214208988739384681182890759112760654642697251263468930508295330151709271708221717990469428584375463042771146772179090373864304994421942959197003712622357260390471205310931115799412050836425165020170056296901269610711294982724820585132702303835643543639262093651316203405424679282632621419020564513851916532522511995170334771686988762884403054626341453826569066206111157832636596038711240781186378662504035827736483515737148509991132297293814823081221089492488026953618775128372498535746033300749021241366166720555020374048127339872164795696329372556385941048026650507926200116998176038153333597766277568798348810565107223278748764021944551331586487071221256174292500735894191549561865525748323192791068587873389789818688297560864231837892238641649444768808164985359356372584057273658456693609555058491473286464085490657719877758349338630485905649412516726727807431148127578486062332583600676953127621937973689342677405160667362973223901906771647467953714050855174006180854268856187532054865461364990652804342073253243124991320215353681670243635592945875697960122392708260202532993896794767358623475346362517349685192478782723691148556688635452757401213484381806737324001615747341398750577895972126375574395691161221648153378065315394823522212639904030826727577842574620998221809010765526150976134992483373749364715483020904661307376646263788373348569791276138203141732290216361510407183061755260328175086252623674740973177993570425254172043765891365898030445701587748453695932794698599603762514792357334080428090443337952707444498706196942053876770425981398369103491276328641064359015225023379824866557897792379334646121055770931117441549031704738522054685914075345383579734397591250125802150401877710465176020315488445326310732990775678318497740075462036131184548537597370689544384458186857442081050059320533278691782595537028438562954117163883826580349737837174279476282719256661840863321180941423488561728479431973267001308915555954315033744121274775095712098936108450137307095564029405663896590817554384537466113652647236644097806349515976849961261131671707730954769439308711404119809116752898958146028765508415721610995308757728378033336459464018271526140808356398663718547519345627132212118573039228972515374339304851344376086742151133995239049906786738386637726088781295683822262694755032540638467359566928466263984093549231605650606753928289241435800150731884860270024439286855334037641132899918471510236486922245206358853739531446106292917276348853153566680792224791012640022422713683581079598776786872278521528236261697466322174524620802616277233363821003629089610857594707584714538395624346699614840295204857185680587368435274386851580368823940236060928483656312012995998047514193316222651305284988881628367857876240578512517369144309903239435818604177641167662549536611887636036524384435979229440525266599835963136209389713187129507193089000008472755518659878339370163105596349402571147586859902420644419657304669845050283088105557011499822410616690269203631556329594192272213172045245054417423552667493850110974135325803351106249397009255957776185638542958181477061104468904831815985571062387125794278576086828281407667556411197227202367902178406671603180292853581997693768391296972322166214010985484648974691864027631450768438279121362861768872868740947781347099090966105999496833610758241459835806195601440372939979686430182869390342244074443599844519063268475992437430475381971319859132926015785231088768737223378899590271521092582997989934340436692749180170275678744474020022718176941654019434622111247802208086872296733134710905660820183809819255504953870629038227361225628395969662492796554289444462309636142040031115455220107817488906389107567665377130785908291267505411186488398099306893678752299479968829196860223138423478813651174892552214112332535444732036342695634081219048674518467130249603860877465197025356903405544151382524835627221106877240401021972916698316393566959756857330062643319027455840853513072373596604952164695061182098203994435190789163532285534565985793602445902221193386645885192412041882631503041468400178972518702331758613543653141716241426222776323451362927409521699691264711733114889524873965508682380477251398573001649241632734069513341643059903382281405173030594433530241941002673175464936154062543056016525073135340582731639166756967769254690563052689092840375916989315771358860451161848714776995758796778348376461995027239159273829133355661775178929662092211753012419341832585431806168748949789307903699858895375527855639933265899891488246535782686026970462977231543767723954680678300729096302615955896733779760330748150187897747993858564249096844044642162566717187025630679892801652009716849645386385190319219876121298319286254368804206283814623475067463937218987127277187139661945666548425480968584623717962871442326964522977681682920734495572210776589615341176322395846568716466211503690874945092666022937276385807781504813779039850354065952054162203524875710277067825042010010678126666501983793366836716818996959811270058935746893651002760956135318115052059438897759981810736396934973628499587975619024141038251117306438066887149152514128386227470701675214083911872581651148062821529216719092966800142205374146002829232826703951964595927154142039115241006913126539352610538705684419098825394158639467179080302732050626670536195621869532182164895258517316853851299619403404229085369602931429568538634816454248208401402107528659299683312527707556545134284287183414000252804014746028547788904362512223396276509506897033861574594950071203189957275097910539996323646040165437582601786860485230235386640129030309989840935262036854047338127788348410602452048003104659568109797729029231152450135915868659374944444384365268378300692875934656521858306837420405624953287116502117867195103531450407636159132060363797777616559179190118432038672229200012912643401842274630148103497311936010727222944088387684709477127314375300116707976673711987378273320184692047636689050912594564254034656849580181838202152725532530331589705437416337489347176647774290186048005326053011092711987856927019864600535649312973018707430531105493685674078884665701600830112721655222058652605143286386311567979681486531797001396976062330937578619515196566312532237850222272379251591806416675674683050407192163708242114903829427424490062396365073131359964701812177498478246959022922654100002830834968728113697943741427961694305038008198754783163654260098817789848132052775936790655693492475784372853175159536226759206339350783104536310456067617812659746427773068339838756054879220269356447781364166454081519166901641249144832803451925857778879806790260073214861398537946266142241287963316728345342777369095681447460489787064778180983328466479787367430890740202603845270404834239163364170404698316095656447560797869662142873155807385796817508696592895232387512658797881693010717302764590699154344485128413145213157372686495537064725730080513865223640316251412411340498146638286393212676989140444317074436284860343074703503471493257287657553726953199231634202558245388627846768524324454605097848885487642660814758894667860160493113668912671096647688622776378333973132905769658535906690580516628090348457842949489774703286653032987657921761099654702640588532169699064409309933821625629017710724396005891971348242884771538516085496210451588880551392632870885938653732496631768459880822645025142655508654268768995973231019006197265479397412412873722883988959041231479606777457294814192570491004027941897508277200070065547940445082435786592309268662055104524104130581505244324286655245818412862360819571800361888861021886611634603788003575685372088320604551863194702995287470657804146943605973823817817685470349417901691102826961183093783294589387721902267824743698139943094084648190867296210146553625871041571809318774287748995522574033622434973751095834558983648053637874383697908820548339731219024957038010163449348246504332672503325517127013004590944008972401793001438513114501914093882305484345915557457761366052182816403069101534078502056648222013023047461717937079034114406501602422333739738291187493264825689672651486314306737080974426184539026434503542954745904287729690418890569479028255726386230909120976307640898814472374262729285091707551727635690101121457146966008836068574971643431427492975089383601927948636026843501400074692142961627040912341775975617436639698880576925068617265178447025414098079125971594084755582779200094180011056409591129215498487912811559076096717458224369902439189057639737086164042260455427056692746667419613820176560420100830135623768800151294056616003037166717535314020588677900426821738528938311977009301853312664608741541388482865555532228827059012590092485969985359983404102191206373485011264683197566870991884289613632312612430781582962239130242086503515651679142903015768544069363115622055868293331361292137969346689152276233546633334227246443540770086824506045448790963816996084487757492489755862064922848401143200276375787582981841104563411961660162660925018206186258813448373974930280216465770057755289705709908368517269043655681244014284378687471781176667422879939527235048305457723295686821138852037897161532711787239418257187866132116907199223290694303451882390336596167361199878237126459345311076847269702722765303521923231018640059504905366333944428744046851588317336525710051279137324270502795353598461545646305924206248996317020688839224685672416609447575661350340314131727210087114324574851411233301861828693912086864015385367587711278372472754758777563168982240753019149964145648879393408865110444081593722635862012265822912780471850894848950567157572635767032406020805019594664142013405495593083103764037568952826581318414564569416120413834557954658702076018478541168343947267424537787172428603234075971039245725199440248795777171036322258971729673212340259169653730825716698585740609138348140650875184776847919118013761708668218953895237639246623774432196704576122651139790339986321735343282319952939571895913104704019118334236953762580243134349320652111211554219523220332949210935769041515857933386813058145062691529248788750788250825256282176752021890418517140006074732810780538487951988196090418162785575814281484110935868941137160040867055666166842011638289460723326838056929891787778504521508006029208754809590777157960749673509381124685739519832675478101975240208999531583112981899571688132922439048238880102449664296911951473813126380326222046079757684327922527323073023188150252716900654311628347573733356756145473326733161620484814929270522745273520465932097087865744713768402618361625761448466951791826856003636422547616544942399573618406033491455578717155710413151945112915636169183175228613271209566174065105221208721558003422207379357858024240648108502413198661577652496817124665080066681128127300565198870014564776822905707787343438215244910755756255280454390994108023817229573597795208371384091049498444230845993385647586641503645727004391782278051824924831921504460014808006015811756012252121480545061672242638354283006921793784075064001576520244604947792160394557130216638665054024819680309998022743222371442223286247047503162221140643229847410377182810715642097818187154196667557460945161784640046051670913292821172418198455264483490697049034951158820233919838855048083167744796688241636105206877585708573550602313820415178928038290691850116524198051276417616104398843274553367282284080531063707195374892762364551432484780045242844045475899624336941175962974895856228835679855060736006998840294014382649369015982379393041952518428820442681375908221450134939698556870219416432476687648243248616278935435188419421533286508662661394894869139312080630167390447237576122796405236924346710545149547732171683416423335258651117077971735294472461488898996444981193868413341206991241693713663891908858710447621889979031980931018123548373889503511062779904434403071082878820875159439604951816935656968990864993871413022260505336940343056326275063528522587694306777041870302560156715094167626629424785210731967750154507273798611869751318525210841642454274857365819605220880252361228390072094739589087449423088808133777681300284031527896182910939084078786205968877741847061254872212371283750518952355622741659833686093553788911000142697692123701842802298583267309460885357570857890887447248489422052258287025340171045836448688713614445853143481536007918436200640470189606404258861042198373686311791975011720965804664780922767378358330987038136475909425326578794742056768226777075258337045525772476850783695977251727221068730051532245918389867338500451776093038951203922977044593001081265340992720457085364252938108500327836918469390965279801333956132145908257936546267249679043756544591396065329250099421599753164880329493042260630363042993551956263228549625269295425255412545570535528683014155854333927543271748320582315645781168476643552142838537544472927755847583000081703096433639630920895615358254622641377178420965083595548229266884473515558167944243918107020270335983931362109894185693457084663380079041639328022759013211999804578267058854201033963010706164521914283250159724637959705952922968284350854838753418410390940530231526568944026469689474660025233562574033745792266025974583043489428740022522755221458385353392993421414553423160302125763382858325405586631206706524977715574836679171480553247235866652141177140806726439550627862166525971439056459672169891547579658354016148719252752058879739575916036253328385629735703085352023226854720490674270652824608347665310589624815579005644304376760714765842986994168355756615060389337017082591685576090562190137688451513611645104853167583010242991213739641597493886259933767576960585529163898388574167699631870951744244794992224954225132876576861552610454928058654842299696613645380968032217588923282898760755557399570719035160891878690000612053293036973860105541663976869535131198200793609137208078776801627898367595147961730999698285444807350235657681830973684269399390494125605783780025135731701289842519528219097126279253178180850008707196793047765849866853226146243123928510148047858637590234728518846728127777228655507202841119072565198882709452981652340569460519672212114473638614587907076165008885657876438605960795136684821012490619132726566625576198954474892029554488296001179250130022176214622437691716702506182492411205219761313112974637438630587771779021612594061154618877785370473898143402025961796567914343991464305069214631997683573647308050611239818522978197086523871005686607587229603558531556769282667866358953450934110033161667005701680976981746454168873896029001474736720904888104355857503210302111877588501696707423045426329303830096932986656926879399916449860375706838139624013593718328393649948253067317688475659788987590893391849096336497312611198231603455463465859057596685177428607901432276666743906747647599149847536579742860808828067877065866739317041992873879486279715551551469297240273992321558099831352807363103899176124165855635955498159941985606771799064905094477438301761919716443588704525756770312362282613488858258983013182210169640928799409221800979967230915534454851956421535696529563777933025700508655756486085960750533561627368485251637503581292574026606052984851144801562303306287936684903788147538915317112081525018186285439103071264554060339096929765376771710034169710248314055289366941801728514911515253766253321132294279803730852751494454774881693777858021819763078257120122933701732213687383420704893224037193173052962061026139530421876237661812197378921062350216957739075575951082769829118437862759260961231193621708003449491416359121619733538787089660411705142388689293292969640159918302796096650329612745671404681011170839604238476685071487710487475967998920322811436933598389333850799310586485179787249382497034489007686867029521515020709516366592320627888555878476622743605554923604022909921487637311427589330082288317874685422148623128861601415013602905711476286226790298371376515636732070579162274423009392857621970133439502970829478321670240469960793510329665314362425622808709789743382689756172548090128691120097093224508115366760733831237322937619602191169979937188193869078933499362566968580165494090064387179593213515326627554648936680487939053076557907946118509282897461163628839182135048501550926901926033942930416258141032568028489963388611612211258151860353796086561186763830346034856871845512979942406943065498132534414116826994901473342808686613890510489473453646106901739667900998326350003477718305070160016739136697422236019441347086339274258426989197898842122609564472789914285451751652425187529095060630883632994220249268029104659256935363731542798254637035797476376982097699119529350280986138809783801633754192308329954426042157235506316426168611591684244619299833100845240127830570916789247208805387952772108665833116477091000055213546142620256368583922410372970738137236316263728485496885234492291224781135199970101686593722474293885545559376798248370495024238767849091072583506120484689125915450155266456835677923679524585318887918001485775102793252100214363197402201622326507888008291581416535520058941186793389830362680518079651352030189325539052271877473391167838975306942760225174035416498023846330057190369897939854858856143459877068602795262591236803372386208289539176486823729464521741185683971806019758683187853059195482236046869483451157804038223044818235410156886883160008728141235266721881468274990787309262121611961950832508433804712946927045292059658686140737989598605604899724902867289136242781903094529714463222846946658955446201377949229583619606723503885594319078068487311632893209402518328894289766718153202183654470310134698766607756716908331033663196080230695321245538823803409270900724149424044520346768780718249753648738604842249136542333819744490642823159887064353633440234537196728724397705327642124075202300986348838822291680230232153983253525595840808435726946407313834653715838702683416048743109456395873661930954496617656756708236013734182359284855406544012333001614307408007569710840740260082728764047958018122418614214236236318070487515849365794398802721142289182254145441607508265082770650052814153052445096730850928086463614500218659153876195068806934995899749731228016968247210673706209457408764566904001853193548031185555781364461394577786253116417200556494943746238155495987492564517041884255128290907496601113219619157977175525444512030847586866218009452787299311310024634833395520582488807047623714498406574508363275018862528442503998099183946093102629029805115389506627536534237417146355283118253997549614343063041622470619417317664092690462660596939252561263374768654122898173295646924926546242576825023884060142190126338404886294411394603037785498748607204067155780667174272307069283702919040940230702091698043319498550500800173238976043282353210332395404802308807310332605648476388266249781403301004828369167948154738609254837525261299945319593983111997463571739454235764156726701920526805594145664083890222056134365187068041605192068583881853011676490390439100182288108521012570471832040708643865431635822962686660290288241841481289916628342301032119247438462739418537926627930182534164297381197569641325033310007363965879839304755091778047632756775244569498950654778628311995503875448318765214776123785465215916484730066326304873353823174866986434139609455773637294368857040880865155498888780686384518983918973413627285292154726069960739380945291036452846562926791026873277604828882715458552108268787102984400045428205994031527001633081596603797281361377175847158537221718743110185189014632971809714199418535484122279362786469057710439930651600484395594071225776481828878672983927845396672580224425535069472909633236964019168130995235528081793823075652556534170809619179472134277413982325764250308891976487132932110129661495193262811971081278697283954252038737563171795241977173358034937707617192323386918703513720971547243051423867359638921153337779719741001902607538211295980003760527454876348985457539609753971197660523183677922938230950089989993376350817943061555599127349788924635929839284898209307128155929340747035988689069695146631856160481489057056298003275078011189229137607579505787969772383995244075126883446508692237611069614179101744847524672084208123003867520314162412057478798969842462340387263786084904147086223725259690442006705641610170935930450130388144032039898232263298478520697471335810339216115064070745198321076695099316134650688542304733282967082949664362988310298522164120286305232675444273140034095419168090036813057653767531088144337074113433795677575905810671569352586809967647616759266456442837111077826330114298023913886103661972628822590702322016298008045612712827768866785698052301153747398141814109509879578517265956548092336691507167252284206355345104087558147126216550935946953403881008093701250388351808977040183231469346636793748447026335362201071616780200167049499855354385738382910956693267413797593353606709122988163032925176291627822011266023096616364558014459067225777464766338212576701506051235951417671218800256878485003645398277615580307334649236996582641454605650724756566855152786013626862256819910778797572318013022848270163336279390437299901603750715644089619009976400228040340452713235770545137628827299096483507383036928647754619329757357598250734017974596791159696546743698393204293102027455577369986846607077645167474759739442710857674573273168101546567897473526618075631447796925592465345595164676739819922734405586860659039551061314712688973317377931073877376921796237062295695003684195497879725058393385877514397902930890474349576190106946819986523415754919436928900066391243285089337799115662363162755633561346185605555396627078739719180445252980369731680670834845783645186364608788269881373115089104779134152195614193637959257140559251970668332455740922975648658292920494825608104222693212827732739079207473415409450737022038508432233484875907032000638841421491230730294294500035370974901000039395866907698411632946981232740909405924725303408847027229819344006604269789707611778406081824570570955256368398697196460848218997939701400849312024874443495855580081819598064427037887128027582553289229542637333194989704606506037137230738382073832605918166916172116591489654012262665253765605668064322062018500681728145138375438238552659992935969557627947369331918154522067928246673020975423441934521752689595518794586982761876037703174282998086451826048978638699590082328493574206478897403982996514679034319235067162075414316784482572112025562765765845114193957229280351788408877093142175017544278503000107250974122850656748627201172181955797070259921127723777203103462838879560913598053757633623891020368833660203200061154567002366096052244751661410987711801808652663491680949869955641860842783855484916272951264160152746410743561355520783069504144386650385094332095231669470715186756561008835181829950249754005423100193798705851545057756800859840555120584432884717643814688627772470100345374259685220283414764533985549636585830403604806905825011268539045954485526563247692674526000486525372977137175373473285771583560156199257676567064871168325581738420549835256757808949513917072217646428079188451028213605774010528963768185526299162680450619515471959017766857599240268329970804043285853676595639906294814042574953371283023092114330435369447216002157610112665007496068834354121031972037072305125238592907306725160002905142576312806320880578705781600069249346828478547841695975805591915694247323591173763285369675970762322207040353676839097189322009424176814077533767027010032390901682750069601098347424466913539823050395525715555222122737285943625308053957433463196757983625699889679929239964384018294859076865110808496573648016057368432901220837868418273444249323897765386761704806473001257704310345654018504589641020853249776254641016634530942626021377212587966817288725158747046620073288932348879211265562099303701054610223730304252194172589935409422033384387864455538979547510350559757011592749075444876135200138056233191150486643226441902158703441977958391124753124803569410708086110536480229553467967834074074245745190853559014690524881532206860269261442527837221814398947978712342273281762669543458844910318455038055069962328400252293722745789655329874219732121870986194352826040100030330668375380848012004837339625133056097513504003657599275463323615090558485921287915412294446074071200026668049558756785688001218434999336825654522027912334650806536595872391490126388529941469994889965994551059861813324443984579173599307867113205247273937763706932833762788418701293052029896889812503681804208020563645293983713540091800708059394001997283825466893767251426529648668473402094551066532038177947810246281375606946178965278205968980168551519914061574013477734149083133754643687159718668762972846157201709993869021644062675490543762794183245898594927140150946076566741354397560407421542864287310702285079623794384857489434595494649684637511539042102345031942697387814579867220495102338908771183255037172193834826124283204602853593408993251613272464165136948326996855139917291965774792680839711165211495119904533490239794715858768931802541302572140025019578645938072718804388121405879649777875186777295414706233690542853912808689979033474369135647607740435609896529737206025186093080358942697124738561279907277781411717480777854925561780322285902868967903925148694630011595794886209098232558550648301718650422726742108091620673309546834549037604162987988890494424680665393313481981687071670572013371541701543698093535162829366952041913426091355139164807791481630005920039554493602161323279970189952639489772253163109944036319816658532717519735899211351719058734166714037007778327807723384676522555990530865270223391754024883067490759280074680065222516206712344387162958247559095426420827004369687614092893464409311177493180420069890318290889327834051312775014609519911510765799710584104634713693307659143101570270617563097735159774729487248700190109681916087639551559337548729604714370955811955617766639539825111942958627801914463206851877435059661764791468083519149431731122599642871797359672248262491234915549389864279740091621482395326060642763148773907403882660083810690081481859690893001718530509333225475462038972762355873740741948315097286828365110903804260838766214468150292628119221762023427764825654302344962387702405568438228692984714171302877804492362940585105578273064316324611509786165410843930378091448813744068478553895098602840780849933679990346911474448062888289900239610612266660675902486945369354221208327308332309738721673956848532812801027730402019924778502998953615574758239759882291499239434133069241710310008185690735762994921386664539038558879968604215056605638097216220806379046654674998372133827005898849895829219168382719655035177497231403791332392294308508154987529682232991781047390568800045769118651399160532863582869392167137554153759431011660783148403154905601365191008014553776488490179509671453495953664319423918486738514293628369012197912536067796046761288812175636195650408250630426406962993383103319324948674089027879903447016503047637522106708804783698268175787511628671027153958338929207381410694474330470072786253841334372715828985326540484520520408701739896549593171893723129804732819927034622623722771777010626284944791638432501594061876130078339449765601569664869699313710349227948191935637968516181445278938369086675233670137235613032101262132635029738833606926867892915376604874811212288810206888458989825747447713443885544350792367313026089923799840622054704672749487078498186535579336278747343900030256430694375270299971986149232641063750608323165859701615002554326590945666944523922509264146587114289853685324892500509181136972575642354387940452065616481552669653148543766476584989342208832677943428975458119824406287962930355733193516650499753731384350315471195407791287925875424089407190409442177200227462010135505913657511085797426835434206679276640863662343634172650503109170331055240101051309006809046535358768052551190985372234266501819891289482840512226234871588937005628995314287011903684517665732724821611451213773229870694557976836030129668978032508838625122564987964948130145382130126295049883568681864786138759554190783124827177164347162515173873431790478868053447149621667117246457989861094378402813592057703256691925341992085453431100299268089919021612131739306605271004251575875860735333770402404141274986100425551008758348419719615217417156048291157287505885506790239775896600397329226734027047214639822436964170123702702255298303409840815943884520863022608846832989489843678556624336950311530871051144341062403555189985969157309423433555600817100435873246022389799395708383488033311281472853723471222213503303037463542214867636890190371935711327528574681157853721006302826355294241606765678993955656076834304683127200332603553117619142447998414715628743511441452807607791729004682361987553973292393494720731005926139066238536950440370408857644162746260665927294063786817506288554195397234224127499168019717282177960913992292515119778609438684485184929244535178590444199607938883978389049590777953996458592604806215695300564213182483627071992008959754371974831146351898702868109375301708954447224335204164765827759972003948312832920590852657200913150644735372828757791162010425908023390568372927230434411442353913727972239918111264949176317678949151132885976696254447159824111858736426986049074107253335165150328217096954505855302288349680157715845579258521343220216292833584144699127462470780975000480909727145053500279163847944351615435804284301137268209121892683238210102665101836711758002998646538291706833767457239498042068144806831646715471098015146976086986915588566105164102970672034943317576794594362486005217923048840146785621800159348405913233661005681818102839667596251320751454536215550577161614649266335231093740830552850417152626964836291818616397083026985624247961413500168712765993975216687763199435515519287356271747119588838209151936215101864500229759853630278704962977642039059760251755389279626145579594470211077806033596857048533208618561812114260671016576514972387139310262113260260813996695128754405710136352893533776784366962879423126535744003647683460278867257624141220552584431522784112062415864308350328921348947982550728205858969955860609501850435679322145463150375264562827364054498824471745435062810216187762761521183976146638334882321831485202437002909242122643382642458197638751361266938332229539243718209040242575608409265534043292791226590126998976831069087312915432630067652625191162345239162031339942378477382053261161371608067479041591261305111349884326035964490843038599013279156041698122621354688047947410352440604872604302091894858511707302310476691843427981206422548543534656244675165538100192506603589125286537186431578867994996215565251462453678491473870947867049711064482116388480925716729832127803924554545128994513958111037503181832494487525090744168469578218343677334528617016538783980841474955359444184947930986361691407142217471844375952809211196196801757384648726303371396941590515184597910774307483203426958310746050203730589805202086783704735574558806862662954886061649194132797635466185638304455347632477103064483599118443099017462640091220305010036358385896218038788542795299716124361717472777940286520630242432454491827090877845582440560031731102191971487767557228977018111411659677342615679850237185707796291478993760257816506203809383422096535093728215532861923760273450134506201765943228738339774348789071605386222593057585823875233268537327462518482587710108375247861665593891261372183818585437610354612184187393093774972146679203686003885294813427069579131963034951791273481654698916730649088264493203341248703574086831597513995978540457676646440951153284675144807423779462250424972527432147666069169343757536221641342010824821128518234418209880408816376205644330902269413923779372322944487753639296319628864339295464714976376224713206055678516118207171392102577018387165884407921764794213237307145455022513582507895761089341858410295130473860664465299452066983251541009699956978314948322091932457514412191692749193736442794964335290515442643346207728082626244359797621988614001292208809984509615686773680978799720519734458287619687481877416795769647126579129228820585796231924164469455091644129317451157264079380643874770809591513661105881622097889443719308773766236413616168473653693020123339447529889965620274079954520619890559483688386496775124400719055681424212495703217459063896850863497641331052585285348297134376641587832103294164072536755305259808508314682292381853904258196797079036972044776538724120014631815714136578618291890294528519079188784828695507165919229437359819910382787745745446523800156093274980695201910036838813515326390364282386095235515313092173586267840429472721990818418982293313494431932933677572665995180972799351929152577963187152512374187810836965313850904453825881995083084510371293273736817737779972517077489436925798056038216919585488041956419225177259925451217284997275463372776089472100094726698792652678185347760810241765436797110507983701067260343193849951519607966943162366470349391721913223438567556218872430265052779387350062112395044031381999404224504160017289638334731499193468454654274976808955820151288238091259811251309056162462339597809041472310858821278991981277649023026138223811240046395465682487243464755466832321521649914892884452580403772028560826066599111859077110960475211836171589947517193028051142420090741813131688778161130645180349843344458531876788008209003205297706026514135715965555867208218799035260117080968097767537074956357357636366214313044609110810680655392403436618698096206586080272074614679736830684079520288171982923117275763286557560923125939539486823437376959376318727444959541904794042484374797257797377126127447541243281813505267978802713128671735975867844378733684121902416060616654014471675267615703848512915011537750914941481251730719107359816436918250375356192656485014478846070417289911675365667061463871238542247723212864118715631234279613832858929803890554764671713903058081849614716414065880325836431467437023059543477803200029823957580888765518244881986289552075776038279806816559927241494448792353001007716643506715046320232641850440175809078337001648857983858673786702125134793476269924371346743150032732967186634143133457432789239670490024300482331661461378041187846219531617078715332762825392112026553843865093583511752111950853438966221424469183857146281383190841369792869623773158708733950992691079550786930218939456342451696845869652418768675507440621722693898821772072830446271000523581726110690359749722936526100497738728892074892385310476674963030352082319403052755561232278715468036676889244827989039091463951683213841623763356583926260973483309866115825879163979023442868386736335547955012305001306272211030796135582138840750913715399575450288077365069614070872542632994636545724961711910834793326789073459976307269557401698841011810994198228069218557786114695907188245487845792063343987211240679630137932034873507523580080242397731826667824302987572700167601123472092109394906931471658309710203966939116877749852082270609213482548584568400833774267360915026895428921596716683412548670754980184895749442728463916015881258717685627657926704832695128354948878763192556429785786253525678784991459286126278756601570058206202260033147420415049671547613793606433390584863812660285385611482493599241673311206844567143772407793990295543097990894937106590207789459743707955836636836577185715336981202325948138607684257241025954199293910535911215328966508337756382058772184244312833999134831263073960826813696143881244698733101288563767524349206296875847531526634612740255127868275630731646688598253655947878245931999734190543331541463767087939160633529016388295349780710850955945072992199581614535699985291301426873764322366426607527436474043288038777212937795339344134784509820007280269239815740532763260284181202995593314303180663601349549109276301370052463436659330979398468541422837573647933273581188649612366747454513639169434921614475734686656068678265853544144359778558820422793503081776150818653028259104195824162347970699273968825567309085362593844444801754692245808437578471457316994273038245628749716355026506571761735941052849489864090862395970959723276040950560276707295109379622333209162087139725000612547324172300490129232989741096515620977586992854457551024066298953179869006032729425560045188145961648829794923297737489281363731698430862489358873227303043887014881726535250534732909854114131384965983543282443129038809312474398599724391010100513001797386175501826036422477868003680750137760508293906274385665679916303910296542372925977378229932546657866476422474510980434266282148991240670913726182979457455886292489015259942073494040916028251888555368951932286287096103842032147589921685775913141811821437548489651984762409352971729865922359178924916532909885387440918437499662356907125298367861849723142386655768731083202073847240040052859092885093034253263188734523652228886082737721211834486238152048866441092108409585878935638030520405900875737000349035304763731509276006357534342183728473865754074117186425011390043917547734379476915892922906839367958311257539262030991955513731132154870679052576265964956934094546292949607020291881421528474488134716133811640144534924564521371346448064447300448268030019235690538407769206515702342919890194104133308650761292929259576664475688091886801280875177739665729001651799801818884370800814418990917557625118339203294891956705939702291711554539765457586054573447354454613844950347976691194044428479272601487144767502040306662948053448400733269158501077176000728110171999364269150794282657236342083823859083110214804877543800362834380244234812597269798667924229375903685065873351300255555129922954024063745047257930360569509582357541452606420803509589037968148017238590866209973585159216913503795331888377140954047933528937772841050687374277373731788193978826992672476461017435794509857292483380220419374781776291944837687225210254644211471225878401196326656965935611330036907980011868788692400466905209217920515271772453469155933618808576025054540034784682071336067401360479110246182647977017937107310750505631230752976964151271515729389979196774570868229932230471236138457227373912526276058740306900695947380623535030629525623491957324012142826814401695935387368635205751022018097221448017608988280818107971209697068937309295206219488565371991105243058206727585969694249278998694689833928138324096412524180369778103261053974863176891932624304787783179058764543236241651272376348165373353349545824304119595518619798819169937289604492455229337332277458781225010314600824664750571721342449508986443646269191145825499900698762687388418064478960490798865177159277395978594081712195624407507031006396440869710125919785130010098742711490506988228223305658333895610330369799556578174545674803016588271642791569415288528817726654820346865639182217981916988290872349418993194097632693214947635893740421116852794425072412706561776188570924536417643058085706080173904067952361372421341895284623194285927180641164999733747922981268119332637604662336950394365529897707521621852792881732550933068025101534128198969081895769957488838854369563926995471978152077448772473552812575930746051906564800574046161799134152648856438170518676600927733899242276567444590557098720730004776517652661299901569421118922241375647075466500307670410766263988028545196364144466024368915821802919682493425801994581816522426566901251225625410832717258837104571085849447183626851034124192050876704141662705846935716153021242004925787296861404774388216527497487359586460067234298346541666042427707811974537390362919869756549496985969215180529556409553138054729597227474878913820993117743790597863796112259391748770404131184677818656537405779053313121437897643460184479163112602070530749816216497697302324439027758997178850477977707482025384436412860075124115475141950114434247685659093519097546266427870515623104696638161889786235653836485486409021653463045677079567810128097511696255998417079503189780266461447615796788353159398383991425849461743061824937735470886656312559783838261406725255480869158566551943732224331697688559151307099803199527715798276577289423034879214925062040947878208884835969152127313070716708431333646256217275921751579085961373509034178012270704916659201502746824550541214245065169959109782119613363715508635972212101913594292784127821131990191401673396576162017593585836504977135911027997973817680890729949063693390312535620158942043024678069504182034526164050368661918479742818441369555968676521163985303419133103217433277471257827675518742379912839710957353155785929295724216455521209744864243856770797710620713470048482494960684428217054994426563337109619239804608625595543122662006473156042214729818509652457477728952901087498190264949583408395459471771051537955032390638468020782891009457115796995331535378789190640060113842222251245756998485923337605350489012339872184827584618783651043882109842191814277283827522414093474958306902738153227888973670635593656337376885344826957246786829799004200765666776592143702718055507938956548565287880024990636629727754404233566990870007552127938513288933015646620368495951447121103498691365283467715721431177181917887628227374666750363797345743920769932491641364270173296117730604081519424694346982049571115784092173230031196811817465711901613203747557668559261584290399319749795840183926338165708129191401945423840449294218414670780158101447352807581907998975485702893015684076931412972524624254841961158944577502015547643041489938291459435217294667772474014711244266893573639060401726715375488239309568100676144614161252664301711879302376243311624871335823385656292795934271268789227603512233880028967222403175390525919522691141788935908323815496569794602929692998855465889009550532204303102783428715923995319527250139996482709860413711042153789415562032340399322463911507512959735583411626329907999793875545323960249657968449214026581159412548708360465044541362892439754214962413719404687761683202711395324452147011143287698139255392909464419388593982968097657439242007256566665760288582341756054612849741495480233743182470857541764233297643325519810452212740706544863745356466746986767654682557929374269999879118544995516217546946113675842889299089821784349924680949195860750827416432631710955175448369366074358521736703854298682671595015613353954273681230036063599835466794661696675682219764798772853906647196380681134380238881928250470547463364073950022462703428552039015134408268286347064503079908468645031679401787780451551113214209318995809507199715521645521553024662077836927322235373490688613856103705313112028365591566768124167587026702090519733652569050146522957504540856171658522416280610853249855156831668505180143819604764663296968248498268268735089873464422630967328439279601197062539660703673620707389451202212513835314413005550250461772716476355849883047782160486125416141645831922954984287165468498191950472421152862064343863108970125977770609836004470206837513263510581702010981752738834010234811499510753642742127613427698493765875621993354114915064182078132449806654960658784168789858043701062797473150251032389977275186863503457487079075478318732560701103094173343601939250214166455966105953645325809253155072234587940381734277193787773112316676005872433452560761340278783818732108426317187118320041672757575973257531521983901338242765046590818776215761174979387189274067557604555577218155924398391541752702364826599894667371445415021738341449596121592471592315178751237106327361653526945448916919855984860026197322054235591585677888535345754205343279849765915794964288142711382698974314110571456659099534256396037325587953317181750067580170342697250987927113266874623970417953655407921609435886519167685019444948121374091115138943502167032435922710292805057355712049350689926030373733492499963830871608023870378888460966409167578293359297425686937974991559349044969568220804701121265955194111719996460734850785329915305938394491137269843815370757970855819850354682009179949394792748307366335283234147441904755933517987153188702161885390251194568881338686518630556873409686821739366046679747475016415752133322147988927142999204680317629730443114130661522111606085230052682107245724606777980629469636611591826950547861507655268817698316896537077157184700806080181564969912401006201569104684480993886254947728688814853776008888262199980920923792747138627257279502991648913501981372100343120463199068631213000031715275371353994535433033423887036693390835638909504831493134593291861512202530210798999393694105679013194333051897483704879276265743771891197579640878078371509342301504758811845244127654988891508042886521213924642858842720614806868436690858078333754932980780077414119219860675572927034102283851676563747247436779487067950813422944012196090102568821630823579195847984221322399047526531456373881728965668695138735873955519774929732407210508364865089021599798771413890452443286169904208282851333545508791358422321204714933452179189163768222182344945776190806409531700012640603616233217121569527327895574634353320445740201694520151080438426433387774794868728577745200407475428634841141928373273759765587450867911358717249425976608110825861622597473751599840680788296337488346660891799734991375479689291953425463545622292551172004136891399099070929407837190316916155530292575659897552633472432250695378819563191118101805316769612365678764235071802244982313004336415266383943095458879363381421295297182386722166767172825947397081622523911963854287704595469584271781744186648629417126645692551176988566466409335757224225834934873510793330268594916085009683956853447927022462010418779725037344413401730848758597574317279594963647534065814981918540763913803259655039634128906760999945860808999176818595168053573329530548157386624910703988909957267053493498347455208387781079224326802453556064006958394639630393385826650758135277187999462341054533355643371915401780132231447481098682099328195587670613859351587198412755212826213155116697418925074462256827898362817548466285516950024634375868079389236385100200197110881449777262914404754518825999381504118614003849916088955373618926203686192059570076213990443137546410806427642597881616498394140602760353001782881407432740105711583280417475830303142876207513500052601194509613096989804995576051457025806591913031351015854137805146871217630135737917217917178846519355338517532512066330266966192086496180395283856293806352080186730575595830218927697798918015935435132272730288920526258639511905149832532542721495890648482743267079176871725569839917453763602315482478206187081853457066727554236386908136715614956430699785803972460727204297146797496938123210724198941329094782242697272597773714576255090370220507685834210406228864305601443849479550464263409649405202149665628692735143767986829961172857841333005195563151791028490558043105710443086371441691789843994833351353935838394259372066166279863085126864029398885772534715847051817080447557711808209398135972593148170160081394069536994310495634724552616274033791186065291408834472279616646025049915357951389090593775320426203055995724722146901897816782613672922426242876176400997953542113740054631717746816806010934509907468348463553358547062473854960704026210584438033254324527883160339764902652090998597743565005848805874275785378785552535223560988084754143158996152443796031664764871001630401616201646104588412416192900156694513696614384504991101453583761302612203182801813366719737629700612278888823037271988816273048699534828560295816710252252370439333243809627446000504976996683004422398818046489280315071923034742726630440923219410597468142938824543481274679961864119629090137650710701009391494869312794682570887892885165810858685261659709770761299338709485104123790912197010463206790125782850293740730377601286227534234395819059916613820810485382224224045568159350333165433507407857691501946962328302912698232017647773607436295261520388874847108637290033164131098169130476030476667909324356268224485900588540034755804418832719356440367841559573771217311231442893829352829013457172965881650510645482056394459681185638153412382507243937351294363882656698992232430683824111009928717696921279993340803016521613180561985988314415508472568554063352687375311455261985364832563035265384171041146644569309600864810394605948385676783175660686118105658359534425399638269803940251688084172645616042936154447920627488363900243174264575753770631599421736531792684841884547316539100148226106948894559126672578724957476273970553286617704903330136922700992640908624080326216356884684444622572035382725378695352344860606441574433857705729098743330012231818158918916811240519298615313596077173803070450453724062619567456886487463847744925915664124597019655760756710079781149783077681970866485850884876829496956599984043140615402117468882870584111346042714558065752162804446182961267294624722842008490536128904020893178651784391135634343403546805081259523879977189316078659513871285161988558025808243628683827963929119697670564607764449842958564038951998193283082162309596205859586477176177877668544669066589236868477864294182455023155548150813631794295915737684587454445726696401892419853451709650883612737400379025365636003260092647190598175333399743250622997975633858223712292983077115506767271803173732175730075918283035005853672755317819635655721495054230610825462772972905490876527682144889323655864798323937641165999460188936585147356745079916876331941140267195239934574308635010868116936903604333199960820184009516415704772463069292134545999836634175986266449352946917369645324640901029539051831934294890096814772693649079166033295332467059296490185092567264174276671815935183665081171640424341044605667305807177381819176075068814142302268571074727659622168533027553116379123850577549842183753833258491423909174231286227197199086418832121196274631510315634504262197250020573942040071852614259385868455633935790682354071681325309517633721946188943189824542718632995099814151405586961594574839252634176718622651082958883463319328663925487467234302475889891811835576524444242080104077468326201868192064336932061949026142558772192268012976522679997526403939422087504515001371644615607590528249541529724095556272976188913283256248586311748017159730936802857403115785661680242958528007107766903786131877358832887395962017323158057290913325075107202170204111141978714373668214429486545388878020468229531823136989296006372989625507010282264585040662650281995811402553372190821632162166558921376292764773274481104358766752047715759406078433590769919653539671374467500657512659548149486827827729672541220584901214751307400250206290120056511783358516224968933396403585141667000461914374691544147185856356808117602214224836991982093685930120380842449453339669217074162928517922424922993938453473322614706446071882688208571211337326024111879913388509363776338804142227281483820981305423291434943054492987095989363488735998382940579876340770564619561594896462714353273212871121260996604844945141143182174108572830799223793830977094267267952720885695193002340077791755403345382838237959404870582948214016066324615879471848849704316347002331299984213189741479090493075722110748700514394714718949085880056964100855136034307401736358305961840699922299647162405571513041996413493561561932761706361941336769334296552397709699845161405863778615125734875984508313320009450238806750958859326720454755104880087270966567064745673187209589952525693884522127966203363642344905621708228896291425946577783331361380231299348582114122145227417487109225719591986318584926322384225150880553989212244090701426920722074779811304131475610716480124467924439765452343029052063234330383671720092761007268204803702772495550624628534825008447665642193296897811043204798109592247039061003477122058257325663605546242855025009717905790393454983282817367687180130150332972472544567040132050821044933904216224872354977073112847682279520142538293359193406805401964738292772553385659134797373207465702620344659604674553968480558657244198222947566869855344767450377985106823696527632708252782956704167797436102958498027148906389829910904750395419895190648125753737287337017119422789961368846917887171888679612056176260990620880904893630400676098128418118181151414475129657971293773548377629277938541477816510681853760250805527023805598343114744846396666431590799576063481357846531715701311362681132053678706954663672978998962349313739250189300282872183346918931135265449773228344142180545631786061394342137497169488560107875863023921611048461441117006194176415537694911910061774039589945176253630799467463225294997027054202518978484836523541667237614613129551728522894055512276999629413283480196313741955372598589051236393760004439865949422590288297659957950384214575219531408514099117588002286716013584906939461414700566106626801260375150128591827129511010895449754525806452281049170024085815431765913408342618113613553925871506043456493878518788705589609163187024850000160250641186955554340240964320756820591986858259827114620873547390879611753726115471853226421936577501128723659141709536472622177878215648398176346370835315395082697699152553715558758465717642141550790749482794560991919461531542455419406166089768292138366519535709013795144120211939184161410291315956537347404444770238264239658438414050946801377535254947996382768735711297293623357780782525844239740629131937374199713748212038541416805760488442522771635714382119376041917504976614736235496826954138723890534094530641478280122205000968641581195341555113797510196442283383779850844309416718238319249433836028540260568108805791852939125375594584975942662660478455072650789569835585483113673364722536955156998079527022687628688130612598550352914765457412463537497842665863654517182014777563487576465530126298956820239719849041327011506306672621072017939391732616631049326337029276632194630285726221656172913676383419881418137935981693497851690200293834313761620838549688648090913802087624764601119297296741643632425031102657723038285083336886017277056144361535250121406175087527110282124292755857367595705850303333762075530850322592069327736664487180484372852627382432764813481879187292043268526364724262053252011286019940997734692261627970025786404345012450825981230210679142828078355896579116305379017712179226119809526306489643640928300370674428894738615631529201812674657589346807902174516027775649648851988901285671142118659930426712506140962249422168083623435852412857166008216858467295359242866646000576623539998301801195488939546926335778471792090611865824310337996440908397839747032673578133377440554074851874753759594265714689085149806037776535670796961080902969904227852074371341158084887258600994534185630244250015396789293976436806657119190076549682785043532920086014973612887146712635684725922108192973889393005770439886416280125669848268761186281384442653039956040021257845833748456853633364700510364468041069865812914673898865667372568263514878314863062170037640816212726736413313718690565246766870963394206310126951920824473314384331998430373331127902700502285074383694206469266897980610808229537020741336468754188357864386148933510733004460819567288829439243329860795313642593274679677218405747766537719830409737110025241900069632404045832409922400102941271508302284599199511775932166538966231830775040325361394239506017599413348957534667412008561783998143311929536481643347222688760487797911917026997893443287569572791419141517413381249719795219314806289120311019591673070029388692059922334868569496531057822285600871152077238056575253151976212821016496043410036500980487683299419153436231625193676185011284328838477726689621780727396343193104949570055255646644001523104349087835005078980117946144281047119975012336686908525236456485570610321186209834341248674150334091896685805556986215754355018161717637280538103160783306560676015066427175870833945625911726060791979019807743674956548290748184458443123858523600571032910978150798705204391135987606341248567285023263456847203328305623616473529452182736663320661344683360097302685999760498788333407144796111048489870862553734628139728670694908382599346398148408050649265556231995553180071102859725465627275656011298274213477648570594171875492404887375661078595578881675142697460670291678050963876653945477427485485358890514012215152790254246171057249212044886471240090997280414892938804344877437012219367643527310271556108688133165760584205149398301289277784482010967937581382241819414925740378031933755224466062208888206384451644564137242451515519514548933713112878948524891699726547807082801300336432651684791817029909722881778843868226210859957909583188776093138727523163085525867961107756350380874721888904636369173404488934371456698683322240417588090245981060793629278919038661243389045973616738235826063821930016608671074368160799165567307845852129843784552880840323858954265778492070944155158283966830834823687359366219757326370750006998899928244609459164379062946064099165135547779240389488627095895556623982514612082285883024729578250051268435679017511169873691846076410119415632305658089846310275483113696682456382699413927383260325116732571591636882693263184748960752831096106073096637274105239618492283177316576551858044698768297801964767648196002555267217901885120607312705140074773179435272163543013357491786493517071035926507965779257470828479701202384370478613625861879928517181021267364761853359195076589308142811661880776114032142578360723526779678608913756714080478915068322894518010556223460714599535245859493690711614870976557311754784163585224218142382950729484145925456226569443242096148748419061742586825188755610359896079574330310136885588654176789169632143418239031728396319809433818359710615570627513978003814426385432506151791051817246815580025462022268282391334889359845961133668910406514214632480206962291707504062415898120773063797334597168518597050347057876817156170392206038543462159921187766813668973600318360694946965873509133050919804948478686265046621856297649141398517770578456833162141975006750168514419950574319333665723652559992470176903404775716603755986461661050231941883286827594114102928728528059133310104190538141177430751123232107683725082036015925146342261711162316918545391071052342944062886875159501908148298371191302463836466726545635941237374604433205760285958254477156015208198756910935507669418903154485213196756362115677318895801116491915869802969104809544709499601207387674161546158774467992917817132690884023508263852922944773428555254899805691319400142207827476180578505088538412029874125285551457160240101983748965625989859409840395465639973366011519340486498693096129272761878195597684060254638458423363318715436435894353034692822301707242870624796599455413308081548671126331901816719844887718157406783327279934799163616707563899201503379575802143292590413987953648960136487202999511454534442572398964025397029648070883010223929638176264867102680573033852192065402362009032052073938412147358201268954872327775085027624958161634763656400030351084229957670088703239945085998599812294455691400240219131935547236125207566712204317013327967279606872240068008696742493891032556646956969129108791519906541299364418358214732062081529470175905434086466585771028869711699762074229607222138450974972357118308656596702954213620057813713812098166618538535792347038866573799223692198204838694554403313207740330987335395711964178658122279394224709643855910141054969429084795067143631007451694942485251149044458304427143616214559015400198370920754921234967036683385755006708054653584869441257590561765257906857275984123709854581681725901673237351669012901906508324752947206816006087899159261637259576116202117091191956473946969607689402501699996724568544478285423679946921738982347020366618666757901291637376165152309205394731824462873875481556993191481260162341669775788788996545109155046075081088639132860146888784981462474646797718586566665092892295944341351654502366887836661344731639105131279322500839925815885908257016976554898549036701785995870896218229646102429833665774717955627516290971972654436661355215006187246140052044688175834407663887862171936995857581994012560921462520640438603904635166131534420838668757157664493661856202204008725700468730918411631711374401165140825200099925139491480723492915746914989888922145014544530541582463680224704080847339076226948935668190421083852999596376536648818456247053063734752150651711916116618779642514937751823000141176151936691174934256920366037135015307082588103546243133453793032339648474740923882787800038338670938967449305431608250885542201242813216655259232313708886120292878956427704585544359319472215449418297774251100427463922356375950890688742176687212336897492759417602961857606636456507209100987304219693986184424370484710031774491493673026739168995685658384821657015524470934693888481596195376716485725119878505345488111763108366702883541672732087876531782248184682427264170795323957249963339720608811417130623962773052445013857100542952125670520926286888417975022070479716659280891667856673735573686860485942588310584242113380116044847610012669873074108119902166118631391866294996119979412196502425258088537668320182174073167454555801658497133295714639142951493402269141843432102178411143582805065755397434587344616628501030081090153546790069722052444723580705259638562264596739980049009989407519891320007430748168935572754574178801203355501187826066206269687046903625855280606747586822818735945665660528538459562564273899729697637209454748235394395050680622267769322051664460199156157284540835772071866149936248144121484335316914588999588739629530301681597706751877304347452888640905947992412431474838153467323875768169922570170402779282140519230496980465169266583563257000398084788955113594542472887265137706301913395662394680205713776816249225463359379845541419392818173103932305448217534118627165380649168841594527230005534066595005969655488827382561910822351859120287259666090956236290602567304274655374736658245413398738253689528268544702296864879457316618716025781807420125948575691153728559769052877513555436589619727810451202370844518329095775675668905227988644905546784954940143962520960634968242007602303753959639133544709017590283567487550876498655303669284942446731664285650633168634214279640306357722256056883557055780445142475277280095045743008239810746085235196826423213505511835410168092180893296449115898393585806695917046758770839905970195927653008306105058911061543490720974538289675226461724916724609180420812585674474606517893985290567177789414750019764898636001328637331681882972780550072125680473591435916410024764406292672955615723130807152453060660577132070614411980991808640518014681379947002430478976064839185866485025962300677536025969796793626462165343594843286612214609163398070937124521030749813875550446287950229516483114232369702358573082559384264150567398642101634455859569766657850501406193104063851418032654491342524132750279668731765394445968582436493271355611331208330422359650487817833401672116925317919262577289171815377810659633714420264903582715419317956722400598724029340335842479054697006664963505906024859280154167028639394946486097377378067252841524109736173008581872349141283420664800905147529648567950303559486061325092682778407120294707688048037711947836609943797134190957615177632526211877507506243874577323900390102502511438015722387367287158708129911728934889460719718233791755994056527274390845288469105870293587042337899657123492189433365507575442043833147454316860330705579434428997773598419085184987799326449248229943915298536677324769035370041939553905985187111773756366123399759118123928863690730428727044436498860771470890674312347888547977673683914043163939668767838466555373962971501853613497410407212466935504244619528126552710557347554945857011750811235791354161941578300295757369508532665655845760234165130682837604389227227860121339174218234640300740875607989002464350288754818478262884616421878187706477785963950634859646928149558524409834851886412450994793906966669718156574703832331975605278059827560444922330980799218528906408486487833507623073153712604708101504804929440439028101495936967534505429784992690120029175005638830411837156895169741609549779383275342666080595019144279055861040464866985271263531659342401643322908720073335288681841398267293107480001632209812002504565579475285175812364428096551793518475001573129620648110762001333146722285002063707834858941352798483877949082037249316928061205759414820767979766076101742502582876225377227844737684307972763832197501831293702256477523189782628226416424378032830147458090447827436174765582725846434068601816119708162286490007840911213171305293598976695814094236201498111018346010920356501035273558493126477797946876093431250282892528829310285588164199102486659837082598436170086477019380707514784311593257215177963144500188297174386350762182218143900420645283988385662940536138335562785032161724052363847018592749162389984480844074296430436084885582078874807559518784193336389351819772083815460558638977831864235471106112916037244281645274486344190726332975879933045041362200519353115423537946880498846475144374214676524794967517243884104852721799361649958627830436534894063047726647532904348131002892146611027795509648500626887845386521101507467009567487964262709099223342464525228627982107388310146907132802812118869183160129018959116357310831920519989592384740025079473871533431617280511606145140170739471891007147243979834079631236696958674477895568787519005874132691428362319210883256260625717517210365301491977617021473276206143238329057280345270568623484648532410858466060451399600605617186614165485837017705469953309579002543114135595387253550832396649256282179189169113316949141522224203144462675100789945060512459815630111979055343337537614645611762993591790808118707459172130664023084066117763884782156065225120968128138461195568920178410328809532214384981226649440362397512315312480357382183441517771966434241247796352200045751924974271250234873840330267115487427700214908873533129330539317663101394636737156174634820767579585302144635914028150733724766780729933216955675107064908782619012697351856736695947698190511432170000229110156935292089530072538292376325924828267990544833494457538072026103355873450214172425896234726280725724544640837289916611710125863545820144622439126165692718943911659741302928309232420812741464103787350409382647531077384770463277934345182465762762390490146305272433352366876463075392045833036456864473871654681074659197362525469175345317125542315135224296941284185412334793723930010337824012150903874811618889264381286386661978240234796758129981352551273097455039045694608369886218886012788425572717698023443151790218536454721523246031951366567536195169497531984976262181964960778728412798076161703743969521896196093682539683392799780744706438857606067073899192009355345698224303224314057567947008784816889158473642300533309392187640077182305425561674010982379958201379013409448802866033900018104250574015125675254535247588977237069519588245109910366756010901809612464939171407156962655124454920761908795300282080837060437085212798169374454434147409281061610873343697733264466497769797966237668339599112125982854758775894758406615867394278416591358667255414574577873873985824052342791037657673554218995997629683446653227767325286398889401790316400096158663811288025595189314360918748244890786019910531740673576516617621784076628677008556890261812674611110966399156267071493266814581952305757951324258824482738525856103966358946697463545671194668824588200832010225518517207272493450542298689834178179463655523486484869509075968704236205933905809750884355638090552864799901157063504942714040885854136247410971939889220701307551918834264054347611035315522926840186682050329279672011596238377045185531040430294880456966667892413912531060272499960463646816755883681098316790774372981645980309822005777666172453104417225777996802614827653481034536280559168636157877630690143965032688394561479637328556370270180703178158735104209748292629879486304472662553298377267337532477272080229496915104390846562177142061004659515390638376038003009361067977119082006160579659442224292849443693484826752544910189684557070710341215364938236223616998143276545843251457096020460020159030339966865949988113398497859843330328015156857020811906437410356120049907930278972244625153485638466115743050358877835623100519557119850449567218623564075029815299103351510994533115031348702328107539936779264188242117729369412234666310752337248124230464023300686625840919063755553192400613750632863732572469152804731438308413497164540063073050871116450226158032242550477250707047484061189231943849884168589639697016769072406768066995336676503985169702550273803407261168635561481727632704301208563620377638075055995951338321241785349547629956551519087139652525419504868108804411689895551858386919994347323953159742674827573100546406897177527731958309293119986052824175555474370028628895223933393634263069057529918693368059636529627409383526586021452096298300031873024353740557616051249978856331430133962958072619011186591698300281879537299230358248555266551697673884184827189854254273920304703650769218813132864374224305920066248674009918135815281686659165074473465375309453474736028987405473823564836417476702291935490305754640766619033868253877716053529655394069629463209966265682303949878221954157551115719482424968763266334085640192304285564734545840348523556271765497326168856775440997463084817019863476476239161125176290275290146724217003069565935917714450879494518251680448548039905211964110908051319966616967097878947684217102847281827682290243555836564508037467691109051212802537012230594856270477697396737218231484506610659733258976372816783232443354704686215409299375975895195789952842809610539629063265496676605505235513326778432493735619071515031865241385402657943905269000687575738193442518255435215407297284707777710531468567999349101610859296417678167810599199822264310161186003036133561567253383677658388156963815770155942439981648678082083061967337075900713101752674951838489577866159073103882677055068070522662496653558280549029231591021117104894059821776407013256677422660387875321339612055909468696029075314866025262027887187365405915303011279356732618391276116655764751512709556350868141867792365413144846549676460798149830062342768816601093462769319851456475928802357778012048597045684669198541752987826495865636455498170576569817250108569968386523598556049889258860650348362018767067726898211710364180040561959170457309809235148463486823276500292205437943993775384626282513195071819161948267972574333637945041015422951682649173379174011018302949410180312384642319088315508364359316369248980864506094280076222454606151692543484808769954234170609628438548030154756546046935107466882029659988043367921911152481311926970527072647729267951198092020387843735994311441710866904533541289036029740434457141026811433078226601791080186823073916195795594820329989364027182044724654974549054481669103625402131985887724295191791681613018990520978448647888918338417049167561558468044157830606353585820372965155483071383852246120954182776335810642812225034542818120706733833346571934078855249886519643546386133744409674389121527691576405019072833062978568039886525188366768722266137883848762948832187485687565082375892612419142282506813215750575881259289976603405766479523200604258996099436993950256137454271034908794150363766112166476166034449206935994458941507208399823989212370550113646351388472810550622775958069221727905545384715034884535995713915752611575727417423790554249014584846178489836449649836712461453669710387913416271199685089642102246307621826418767702442859489584686334367351492974849087409643462489950948862608937879463607581605069211233617493248871979616472376906936167760313092233010316610859013745402366230719507685296786558447668193895139134283982911566057731624255272719236416382441562739251849882488302443993483627772752131511477565657696352971446533867438928665769689480791861389752064625404190542258514659802199395415500418560854867294380734434832493391197815882765636578310286207413154603753566560620010771019751372935662710822545883053815054417200397695699471168892519759271387289018348390597778632884809061156112395755970299176414068744554178478434358989613349585219238375765408847350508715525645660474683696591012443199640387070340764814761798329941159660676855192801576625214357365455168232101430282472026711517285179692581059340938619216387220967312167590308750396676195484709342187265252926543484576733879210958039172109590374876341069606695282798452523362573687126685016339417040287655620632058690770316267973460142177114009975102281355850383614237878712841799835535946365310541088912538398464688446232086740803387162232549142562655221754918003160141045955172169282334155750703694444548810039596873537214643501475501508828666273179472248037177095942569033105650322859544019289897330215385178531531021688643469751337381071049815112651363353421307506201206457190259778494395983640372903982274572742987004664743543859103272396670056512061818927325290262281991611952341499729794874822915968536676305202832289828868499913962065973848193501647268015051290190951328319898753441099594363024527146476344940676404427491944982659874583505657095048431448999814679799004787097368048779440066342726485009805704892113854208671427390647179390125087015400032970971908376250707259838967490040968316401640389448284608490812171623099158693049886032046858958144001847632027666048428078879330359118039523951709609365423234513387951697952384574794853156268163052655142269472968046225480307554674872997279538099096375667587426461750644689373958077229002915140366776658734960683978409729605269275675253346433026389266796054525174839949351304075337040272543171915628711002113289758499318973537711275466413256470648573010599458909599699867509501933834012510306438942449095396385696331689516105006117297080659966257238220867588024673733755381266998431429631385281904314803149727075710839654455718004370045306249902079653414102135334852710631905730537790019845469154370940744991264241053924795658140753632963982537384847163817141247464058664959909231818204573954895337446418403574863489475895578951632673759467837591735119410585389218012218825624560008346403726807260873722226266832004779564660042407265917443113751366648125762996960182085591315638888376850652386096726617923530073412300152199617022977243791548660816736881457775408879575120900402029476749048348193504943243926417936018956200160052449120200252105562402153383449109698027619591620823219021232066432714299446299047222135118412271377959719362231587681196723402987697446618329925290964364623146695642351867035901346511641797291634527827698291480754427670396471168571945190719228004401477263912919648093786377506417247007704876623730649428153722549088410294924769217395315561882083253181483691377002805227846509769031546549630335055446916029448621405869112084074245639759588542628139189333388628752047725594242967234526429952731442562732714179736148140156377657500293345989026565415834912302948616262032423537189739299091276638610006153839307476285132202180537975883940439457567825769573211283686598407158491942628343724973144555927158283136628993652814809133102868785270385861379012048788783097400821389733567389388105382519295220326335958882092290911689453175944976246285878053999579084378988038544596633702761599457370725690098356106888562224770493119789726472871957184856670183683421151673868349824166056222898884905149153797864491411698083905102898899378159514192940941597929852655839906748878583083686602848894620792432730579861506861249240227134944471496673291617594725239391643334519971565535462057719311733783280724374211093668388160904778532556262484817037834661095395070169609584860201298213330152955310027395459868079815388405746387576166863910962442078090849667734985922709291563791618186050275490401096609309136293475006826776422332113843475032651834785026223970825594965927008763257033925312500513611179952879375781475714292987981915710172831239116437474514357801726268053603813797826368751173828355344545100683599178615432472189941422084110988323938929248386410856883437819999894026341578473768474241909230678847517653894228246257538938615906043275905148691652576694846515909824938503461356018620409017508450069098216407243220075741154581804510859148016207674161430242613870955030245262024594931251639650797302710760269712142100235902969627637302028642551857603366123333081339265209936197836035236559925750916572047187030330374827175712532271837496897407143833613885406623830858555674840973380057393796245380592168769764389218397798170992608120434035194632479957205414791974971652048734622625686862211615074613891311731922296920073353172860269391234476687873363035837320223513602776838634741102280260312112843867999978686762099350370034170454639297442616554236042643204598049116777627986810050618099263487633399511177626296508285628825609200513655171820402190743232096195911227337027603976469349546267914118176660117325254245058201536996055449273973361058427612717188426311347691717562203538888212299235626209174004155264916295481816371749172846776718307841969520782801124310100532161821985303908520470129996494536031175808890442324260599102802215659550581973984911304037900757597495524511698156667653283613200409218025994726762951167189548409003742566934535399619334563940347850055305414445375680431090874014384423466161690228655414920700042581900785240480954547750544640679565378772275761617996161666316650905693954105221869650025049107984907865281558438054744999539782124905161507170603857968359914025863227985526524223700535075170349044647825540110979643274512711156625451846352157303707424632412986609978183432562838175225367509479876223693406199163580289202779223317558836291854879588471184472848363766246712181303968389730852813543043853786222450973485210615232223543060108310036962932781659704805351449508340207385433296838849423695595467050168089033803993810924539786112744352562200197297776789838857901485027296622634170228303817114911452559829679112004813647901954779850781537453507122466754205546405476257382672526593715735957914453845876511942548387969583989783709975797421104487057642302126695281376889380433076204566379014421588436438935596667965124572344713885279638442195832495988444709979448064069034029102443154781174887038593289273595598925840256191765848740081160191951856313981712951629577098766263020850506886814256072231659977501414284359767706917822139327532149323011938913589095760264668638429575105406188104758969379419114998926851053445950325863083728247412546275529970482017710906466142639480371470682245282199007932679064972494552667253332741135542664493377453893163180773082409377458138290509821014887839986796784443271131418294251586572887272521575171300389787894564108744564645942542505911835420852077004891956809705662615238095818434595100425508327988530245709335563681634460601626525575938361868110081418063965435047803029727793193147264306756362516816404202029653841416935886764096572351031308326248132194027427322807086036772279177475706608201178453107948871951011427600384564940010316832734091661160975002572641662088988982488244670577915461652385389992022021451807833808929597066253037135141155835824035985195356521028074986141658926695074075275856115768044843065902076444726872843401341563840049991223112246970683234875820820889597409269544314532169304420765443760478340850042179530029815603644326271704252799519523040014744123039540235241679744653498928040995247504539861395285251218455334224835276039127500425583441021710318797549494311397647086505514283988754976577129858266757740233340239203969352234768703848998143106275654097072185821697970699382582736706941450211744124675742334893822505203268982698915592023136300092052589844146396816931693928372162268010243170647819214347010922411296296182552079070725441514126074941841028279679890406142138145831601575017244190351989126871833356878723928955015073255626354849593812791037059229404747021826996411444956149762584792494678367115246713232268741572478444836771953117941884769543476363589126271894481346409814791984812998761554786749846847183505123599415332383207184143580265915757862998799631192589142871586574787822327832166360376442269370526325737444153381219143134564054195304540153503802307927905753475076569656436415811472106978731940273775484502605475890031934686269808405636797989769064199633440305298195593997405346671387528592461131042320249607272609058060900337201426998622189037299028749940305193306523052506404538262573955731750888935256327687015191734743463958078568498167436181891482523910711279687751589015725307790144753873386328715791132610534623483012554173587506477117904381015690236294308536346446422576855037103477165470362599797875450001662391111881494296254692876956172771661672388260221297207799159384777925855042728513357389523979134316893836207002677246371002287057079055886264469620767861026789240033010602722961008695795500650115093316849228953234146712837435160893715932701766225830978792832691441724352336256821357361111805086474969237855951377052965365857590523546831429605987158640225330990411326199798098615160694563931440180950083061408833534096912743833676595739314019759260969128213975586355468403971070345769940856222881139140848905483301985309909338021116548952614409002341252051661972544064448159627284260493284741523337505734395353879094294458190944326892320398630785591110790723377761106814420943323858076752687124232591052473231755024613604951747941029207280636218360320771270350511028460825617565899083467856090382553195626348266692666154274534312229042649875539418994908563310476283348526237126640244290382855131442838647477167359092168061213764604090125880685907260082773675061867418472214356818079224363157174290824075214432944658397703077375845267165911325050866576004195389967849195172115562511974066217153838678821812242749015205507009271718626421150423603137961047649089646141896350696255219826300598053433630308457651875783736245334993807464919744756945590512172777376788963155416058441786670173511742946148513240214027117325794643242351079315992656136036955313525508762540026862070396633136757825117234057595557056468771041245532884204991579014963625770905700776091068424429065716392800154874106880384985637740741139439949249471128925822029093959737155231173555465618973541753174745406272320619637251515681701412514995332036065673246431715070231946799282701553012467452003933726066940447793794517696245629860397921068047200644144881560669883827193985086180340137568820361623471934071644770123490190135487900740858126210162246984541525067652516859045992938583803839769096257712266950306962961615968872929038007239527893958900055336627944427832781817217639530857510887332216568799286912156629558687655157347586167886058005996945305497803756463999440280862888401181395408786035112234000567780622915723480367249341666407940533810180874853431701167192615774803059200858227619324736669527416967991262538616905866590383407864814776742348253480967090294171106215485875738123876612003913669658027224766148265262966792623494765237713268991876311484494838904062534114808054665415469590459249132322081768176846820767394072122182204043954870252773079711082834579110534378285480121580803239511966427714166318041315529201215252567525828419144426981047441067760302850857937132592499869085250898746441410390064087898190997251078642291657481176799587631051424887540004339870959524965287199936920586159781866931017437914081626252464187691762662479807510284607220326884153756441588522060965701009210886718314962316023272667270349765671626344587196672298572128286599356042597717155472210951016928462465217391761122320108263132177360558923457340040064623738663582201998924096969371243345114798551088810192693100698787409304084999944514192635328742316103138625660631388762750405975361484342347485109152640669774402668088363670362502886385077442481032023941419279989761331102269550120712039785388569221316368323879610183727865892781316709312307680458319100954536879707104680789316197446757643881317075879465540892636418670508735899712172340316944012311455186865388296026344313829297077278931706268397617450187703945755040198051784811572198999730394056342074017692430358591099228654814446568068630789954845596676607573272928059674368051651585179927838548773141557288257893714814609273366464423261419015162156945225240860987801497384588411666892826394992159657489993068739884568197460338902598771850319061293074073000437108452936035352510057426037913654064347383662684826255193419328975764541687151383412511594587213317768310350731942335921502746651226231853070408622530796559990509648097064052166528991957052614543013790258274151970421974417819653722901742730472385155348556434821073129463978161058498546274155143901820142450887008344577951793018590845924072617815162684446915182160564352747000285262962988219239811393424460104342697984159399937389498536022700220361769226474422543752030584719368216579955057805499941275559508222418268336665556026326401925024367010168926061295121730921527371252035247080173915172863108665116311206753132469475169786871028302969392769999199517356207844799027567987534301956622696707226708498497742043721134991768026265144729299768837459902165084170926030489238114885617694462900235999175502158404047541651073194290668602475207331261500136081626344970614206215433223353772484307624806637029929375812753520958091192736689718653393259819806868739053252853051021116927841080453891358901399703197331316757659718427811863005115679031761789176849643630066499247424702106042673366755170587286980937330783835970230649618459334063233560270674495468768497559140992185745372548145616720685688063341765992947826901928120561524171226648527303114926664066519187401214675585441874420286010838134069335622067115440882925566289427412701656653445174859800371234347560577324255798132427493103117455354046603731696537463321893575427328095303346036835773607484514834166942414082233572305599643951215649315847073635876113432720810273940504155333117785518401793209600986055422239669029717007442351791601905847890274915967414087215097438879653711139241819578315270461661724811868327646336600740766615277485535373756176655498437656205328158856770899431933311349377878539568360578782998285113326571137995200967245644495443944009629083590596407675828997438656403164575872198845880679742663479802911450953724143444815587478229883574374749463152069860403978108740575977005449559321881369818606680928270916988287195209233098470416442380421571517143105290528617501855830179139628960447934049121413708177496119220481320305157742129822680227772183040085816690008116643856259982703471458005488387534468088136242504988675457104038125922662975826428071271929643730006213113735800647593647759123958589402237079022851247699036257827997891399800769171624376672842790764043385473448589014888061526355633478420031529948849829914129609362283670342181335366338771261155618032776722576795379604277168209882641181369635093524794797012240190581586143394762789975811454539933537475298655031503303642295558649705078202186570382220619886264070921163149218461170304008758701823128944111192492111180635460204556397250395488935626378238449082463533043812816599263425653187466872669515260117694655930562364380961296425055001609667854669948270113327557392892112422938289748812596788570404157063727404757111413565718159032374713360446937512609903916204950497061809832575048077009386796654095919304637890268586573945689077327259973694873646179377539616507426887788361137528612351950526950399498846689781306867127024127575666106462541734889280582760975685488385865228050770052929762942229538262561500445280084737056929869640241048034771380763977977672505414273370057279464808924447477573978995260673203025300377423081957199566617648973518676290759536108859832335262188297941690445422033427948228475156286441726371075529055696167053138064356940792905517717088361503134673579818368374289065674235166972754118754698873203539830708347629054769660225362583062618864294958060798728315181508217578193313853436070543759181748820036403322787400142747763287355844906983647948971998669066347639394683793512784138941014452928892188206402587378017306066598393188109053184739994653147553452372464315118332808473054433873189880164110332464008006058941327207661694631735014742749939917701602827143317139656235727057305683570027433237866227182618570658364546570287470148868768331115824767336034870364701240842896647095303993102323057722922926804810643216604453190980456315846924592973986336526653058219479172723871233006977607874075767250547944191895839622880821094443973282498507721437618076564065927662290056284349959547753395879731518112311961332478363534211608559496672839209696107633324729073228334777678959265930324371429597929518696032433764913999276470717497810268576545977560952770417210655329721467194209224953679060964911682830154564215552779574201824375495374476813362844290808016238884539124096786785118236199954018848505740790778402178210636236542028670238954499984315822772668824537733551711792955259803631292225052628349263897960440657526835763025430721266366362978853060717218360356798652647736499939859594630525591605647974655273967528878896991688527274094485076633437313681251510212301971808029614797629265583637943676607912576069551890149898491094769302293832175624235227012409161636950208996993611669924501735909858022581063262272535158469205804310533343371972217427047451496210072671175631580454257511809626094629316164183877242404379030708641735702978843074344402819843015701179928495100301706860056874951428640628252057782733113020187003480166903305675876964492224214667225352545522268381688182262525747145900506301757361342510137932098804034914192571394377790092130401874400419009875852146653479668110491032898695130820859046496421155957248043756366713460576838735404613044700508557621525387393417875376462584340122445666634321779467017050300941558499422025958503358016890057324703194275734331315994384715226356288511753621691372003430542220367437921111848569581858501262916146465705197243866767441315939081263269061150231052940582130388626381224037770572595374281234611470320644262899426107745559748488663671006121916492712178321112528899876685611475196891226211613354123160077588477015407312282120346606122915065017752977965916488858085293996222916951762066379273852424413116882561191909293477694520049830997104149048590641341728686588770156470623891363868188007028289714201598418146450205107457318578804088863183048509763996603368301489069453447032254213298817430834294110497785651949256821565387924751815627308729510160440461862051943813637116434658828702070703052099628025748141919540917664535998136115106035916473301165928035252281673356507384944420034447294761531629779075407475173070606911647779245495516062135243832802399718497457920556306666737068465111299137802812136596246527362021754278753599063049694990831639106772620024225665907946783884355704404968553341917900960121595702130671083698703593829417798314123748050748098193786612206342766566247735009229141796771539383610928861513285084326019818294675295895450007344779830673713631079852680657868514986719841749001643054986300294504444286946870475217754655977503764301078471644618375459010515643795306701706669305187000575589124186126161234456661492101800494196772309788285263239135824551238689321052409961030080301034432615620790194314931387848817895121226377102697291693067774589902852634922876047788280873381119517413807301380356015425059748583098629729148909607479627454245002233905728944975540170100171960068798964227676497744044121243587220955605816369300740366474938025237316089457062761953519666088833515746530709033635500206516790432076587425316154638400585533738236934152951486635903784140327865655611912561361024512585221887886437099943958750097123969981758371778605487997280644538965219088766755056470535711971622906542364051399614593247472660188771605451335843220845774274765178116682177280398050916073094846856650067340705412308648722520131608179027577453506205608872777992627946227524050158448578958681046212196051931383246540602657107439938387782158698709052098497951527704468035101852399994410223969961658580051785249437688325937069455550493455151343204108069447508345862026777530831153649595975559490541877257764332102404746145099803691815912688458274393849074908222422856434339802084863701136071141240254402995541207094600590336911801491665081050364884422628185041843229408042422416354717038558241893227313119952659554597780493477516374021255096226551512760614673516950776709273077897712672706950375573549776030353910780595282811415733308011726588881005312064522295900661183914844460858523513652887696663126630549209769605416729498960707476368104828445612072677183172814056494308566025093022528783593858102689425360301189626288034783074471376078814970725572849819309747297492946011096503152033910245475168234115103671604006868812660289650659696656636196500642389666330598486427628113699173453033091272271856437861866694344491993954371760007091196302143523901974496891201920776775011404379060558460002642436408623345552898406053539125039489491584139531794555073075502253505667122336719530424897971349423705096379512637324192297496442741095116000397071097444946529489157141582564050083274273277614472037766658787912798200615535248797641161098060806766943606861358577772430555991209762734842467749307323476581850662867201939419807744989881234793006497894601063603730927637038159288161480050696805871668289083253441255389085493436813670444871304879746936013093978776740115646773092629328659011693296131558248389487115856061364856525413362396122770915609457288008242876546291586768941713166985653839761193669521236486961583914641068374979138451550068977862840040332144202223517770264927631944186448673854583733721798890468981283828155413241769793399428542624597694371782804130529669293834335808158971923409663176643261599133556486519367017953156229339543572624899835114739355847378132185249786859275619413307158229182746370605430724309766703357046766366886391181535439546039856884493167765912073971375266782949973037418468787346309510465621992736825487855186012012115313492174701810168363239681168131123012251112524040724024966236900121775456433272331552343667657157269942709352697965170550593971168343276288936939331415198550731602573917697071196997689262897193554863810610659020028680096060931685912195725024146673974012906267347933602788417882275569062621538577007186132376051552200457147687568310392742777043696452999589949135239574990424247603657152090339428681346951285879260940358187769059549797360278489419382798407900471978856227386480565584284081546716719142689026967594521618864282696127095374675433372900612508362167839459231019960798157164985513545960168920084404115519238489326747067998601704226686042476846741235561276997143313077807912504366661800512630883058093959732469576699550989940011125821642584805201837439175812982420878145417631564605044952367009402842077347593419451652104296809552552834972037102674296294608152571790637553685998412248841168123261368520776209471628642581285875080945348468495042560761889843506150973994020302374021261233745697792762054032406518907193018873499629628401607953396199676296362378287468851917910201030645509843031918707449036707722568932712901677453074539464117885916738354796590153949920273774993702269066770731611168941703875639903078459243740981872189742357898571361232469583665483229351295185017489387757201822623593111219655987384058548793875199255912358461324632341097026575883978908493998322753077716236839628410857582806074526748487107980479491199750346940436962589915418548307583740864723848990301115488819152642002162083563310094289870171448588448473983762592510603146247148286062338933695024317843471486125088717407881288409417303512779393250037500493055644404273502243400747133345348137924627836180459380606241888081899019269335221905639634721424577085811430899415388062387506472525894218963609655966557457844415491285032415956861193034699958275729131602352544480136653714686274613307693622875432533030878151010995811668916841358723640813215558648624935663492366238931413235966272541251198242043178083947004041686448632198139768508414860461892700788272145019099235761958958209846177804893161969745623998150558981362953930643570240069494302954690650248767608984533552324916364411202323814960021452716159005793911837489109958592178970692592826407104169601754199507207911848012951557919252429167624692330542042791056369262492844036722279474218302959495807655882617019181444317234348101577984432458432305011352371008907849377737385341252585109405100323504215632854634763494372989316051545918508320410653839811806250439851912993426871803018048959747495526282519838665827622334218349494179277787889797843382388471882843055865004332230991796714911436002285862551232207299241322115810793757057747403711880013885473283187502184581641045507658613769976869993053430570715322732514239827616623393676056923384715137335266331874911652909457473749437296065542740120775730753752035575139614613345733625044021282377529673989845106112271988099047955274439483600084018591837743792628410470368807251146862370818940457263253887404559467933175762252279680660708720661718683752046379658544813087886470530648555179023840278265309967017683501995868394570047629190659713638189806461016586798017930866657378473973569020053671577123117024425223159662914223626657375378377857498437076696849267216102493985931452675976784176440698786649711295962790821544673478496450370367687310673811052624585975950219236274568243015930716151110642712994428483238983604831584886259087534080793971502070654055756037831813299818982832314955072922005857245993712578062069473418626596464185278381631695999340868985210058905991250241735622808291211775683082879176704287290963603489385542610124969232405546220598421235528966421342679224159855073213303722995145823440177308671857732435706589822727264803544201813390633644457068794428895183113565643315475623550648409954346999174968084417636271665996445760376858543980415939248425011326898433204788451765552937101646133312915968360746360056854400270938581137167153224964431965189931025480193214330601514443061565609042049347342564469784135749738998677767212231282323479752685310034521167057659622010659915043970047966650050343618869615456119902424055767391296221747598796583782478950848651605871003401531944827352661765095874099013049144702309019648580234066782848916828359915281037941241653770765682474634876015810161236407829801404741870226349165723924426178097930139310415081098578857781126962337848985840957456670124853547275966187340471271655582305815321821969370060963725026172084131989164455994116606134316773112278774617583079921313266414972582089542566253364336345406723761231194304960237912881112817378866368645066197642040012083378367810500069823875068989512167909978847867861359820302108453022321501178417856255950367742352887490280191635971251819007869258419752144594235943872873759456918015157782594336626497562706878293573943941573040648912531299796355718652940079115569765530497675448727807886591994432104111214871402672930854319936094583218647122472439466535569282888062329839541891037798424339803050361836515845704770061200130874433241716237185919753072823237998603054744843466575294525587496831552760998464842602317269957991742076522573620573197548870356724154352584855961085571427946689297526100812582027487960033752868260117179719742524215532051663630081753212863214678065381595627722025987264498154337144032394444293053527786708886119177658692777217570140839437010395542182025596782276995718380958091979195554435033196987494980835159334021421639513256042499105053245252331134767161424540225675821274196763937976768929124817139378058257425725769464767652188514917953762315692336750565871583695596597068259139108419966202382418852022835407674883600693458489810875081965198117499451785902094238861634612132429351489888309634967914720204332217449233166995266150772574186059675368464031591925479144807546080301225431893242499671905987500457807137305702214237979881053045547056007537639353148514059278321140342573729901040682744102759183070462889648276264444642886532465185670148775546610894424107998987091330615756026637142814924169878625570212763095356387123037980906667947181552822745835452473826696254560058063739228045550348032483234543765817169119976410180122156915481523159872635945798381576322147520659166896272584437225288517040777903323974341171524644240311369193295674065878241757226077206921573577221127733133267874315449893470925422578651422859397219414977226391437151453226021610734435213535464374536932349195669383426763926643951207077274182277590193933844291319347964277098218067723260774854054189583570304986205448586155329726215023414404272214154576870017971269574301218951548105706465336572142669139407557702960155817365585539916695498425697703326476413086164072401946469524628414009774744310187291056499122734399679381176083128045810516815538756821655775698784932849704206366481929972352874311355548141979143711551728504614151962744836494321267909495776830075974480746849815749863778958359149512504669348235243753078417261831069244730898920137982350548501380891462287040188546535354519234511457444645134359878934828495788111307186546361307973813725428615019848756677989033189010038606357348956879371563835492365329722278671261335967826009998690242487014940476715089189429755646102802802595694090120474276011487046288197813174974729517443977701660096908937425251779640686825386818364674620895998623411231352531549557042127750565650579014376375295099504195103612987235681931631353170906352453166516225713093677703615745841578851907786990825020543942593046037547775352300912493305939910725646450721996814724822758795688608306805064981571874729327558638767102360248989795965888500082204944587298029100444288573051611360318922329850041536450689593604886022157015761038778521910554752872132001011015718876296441229456002614612129712380715573621714922401256424311904954334261595922228063708511933217190724052516627536836769955237848273941674322953079321241708739428540855045943208885049968165621088395973690950697923357485683555356762033062359558363492930336974414157881274058602368161039032826045716269823717423589298780586468287745861457882683587925836382449516621003578236825314022459641043042008777009326508361253898533227376324697083592476998984246291234006546613407842737309661538411282862633822203929284498876884551291874707187361855192487909776809034341765713358300985990145437310046830360970976758985438448188504926118361984653108344368444168887000041434587305574654378230878743098139995078130170000830284993495089153836143476147105916814155124791995452614998105749142954076312906545026952391976743668286836835013742342291970798989289962778353587113901514845993100469728067513963176024891661302361603168382380766906871785559362241217031761010387139090577607478217525209582473109193719677731154259739011217506657278393165503544444256090720682044758100643881557586431983287262642469690074182886006681289027638508843920197867094839268107224142361459934813062203800899447360017565992541802413360777087091575313515073696489382291454199265595674321006776203681087639479035363063860548435468002254204308342228471632883259286421548340711660921330428677904898378444766677919153599353278214793104495370514270602718220718702153675367550634819288228994825311886073362564609384507300748014638045232145458575105027181034106082063631775450365059868246476908914375060332714184593423254816365238308199282236656476854300725226483986173306400565346364111341791653892874967067060174981213257448536866338916179675713471265440261373126462112632431709529673983639729720854992021909704369854612325731976275934446318536766260440527178769785333002317872968198147125492511384923404147903599267653329777510585944911639438513140790518721224257875298301583185961894290893918587919948121686596978875373330131668334279521875330940132918369175841856508331254417960471653381784230732058027647491142239130854078878804026625117270141499904975348308952008528483390173401557604321315079889081648710071901254178919638178469659148628315523089004032653345179405515331628617741248324224040672437772324587049315078795729558824460554133679385572951137142193038676959830966306416166385842769429179960740006480172277259816691128995603039577920383376302478552451880094078088855672369585499337078778860810104678258620730528208984330550574493009652206478637560900449979879712818667697149583313920498789925965397894089985088022472187335880862880380075572139304587636624157261815262910142052962574351541085569843426576086522892975941407790315413359770763397271582539266337921494468822324326132150430195271918820727159287447647632058423331363633173434844483752592746342261294632419988583480304251368408923284172280295929750779246984413255607933852919147012452276656548633589774822226079423878891823115215209727765331670562728928590807605488583728984231075491881156623442598579794852731040674246774812721908740252181985441821042292662409420556334807701415429863334151094633024963179143718379414585612852393659901834384475329628993653804535063362633186343399000153501225377874477117891999185856511736936833852960385350132732502247308335571028377555854571604947917502494797726244660349499136392718873758058860316756124884136318882960660011031346840104261503927703107118732708651543306034546722549561705908185685871579079733247471720461843374551729830537407755290145316942596682130382038685958441457656846112474088893687357329895567527324643304781851003577857920174104431396407520764139491428176571155051220319945116947054772959447121521029176003722574017053055350746887839405062198803067061600412338599498399861048582563805441723150347977414234900100930993751503680128193557057824235813270423284065803795778423500543862748305054574670436652451086393485736636763950005297456326915817359654409890694690297666051100602479498415015615300309405878170882858408871111381603923732363848543299998172333818638060510223453921102888631633899260592509108013035949416980825738652987698636197574335218332252029694320034620776543260489731884095773712191351373793604123746218053332378097766492753310011948339835117574800310716618185097071564150641326414967138962247270334133481647528009351536416160209243089943813029893817365332276156126749591470712323189744077030701697339793131923152741377521235780089727482117710379656244631899586949454160442087225810408546229673917072988820690711004304205037801086554361873277203270083150203133976060732690773352929565649900612740855962332683118241502081778313177533481517699520575630688425814986192900149818141749631711852985925709476349091203018267297563636937338525422196994240252858114724088166894060585216166178664254799681861419485382657383643802427039692609461886701625538920197029079669690148996793745344373509345747048799636887995571641543505995737546564085030864519702252670382494060713161731530557165567479694951839224851215921989774720331412056554597534860524580440437895760329962107548972693186149732011695023131045900744889635152277873569769547977609734539870712635049425442012349552847526053860892400864160427636181815870897250725853606887421591561211593185398108949101794758719888127189236678175633294366710561037603760071152208871889474696606434868342094390578512135594394378625427176501964814788354225422250038798316324903792177349789011554915944048938992399067053801477111352288631993063260771400136917982851897136542495813509265860762653165713638957349286428679980693451068252371294794623087758559402857678557578396078320594718505298540925032121284826543778391838866747913057109887655798878868855242542918933406420799115329229797128256330991889387951900000296507071217136329860100431405294958704592392271052228012006884070268593153620850607119149137527506080742977739590952621781479186762026530824824809491467356071056642065163496603870125863639641767971814433266508962949338327229880506449296085702011252807414631292084587483460998446721949906734953584974523838618415120766116898612321948199536653117607179509138892379449969966931131347881245971937594931036775707982265976981393746642920608206245042314311362866600795502655134682293930060688336717427511755974817570599327198689224145340646411843123713998909303253635296390559116832107968136483124772696487227735495480712732315867968445129668386172253565849449479520450781518926618292488898655725999066190449159051129921514699859625261292328079156678548972202975994486744104859688514167220245833723734817660561659210708464400184572958719761215721550208388522906355920265331094468003954573159724716478333451293691402140105278579496736855399516540857342189183567546666440167970656522022785970212687467053722129539992645918049699125832437274161077403437538507527265638839756248956440213739967006812611828734378802501773483993030276323791658326626992980963070392377449338834378041105468535967615791676127857231855542252761346528902232445354985654884622452710373137051776628094692890085128424996211619073886561739896468717093678154720094106998496335028107502150016087055559531863640246766254511858168583436367724427113773037904089715687944130056334989013957310730415315781462661600481470716444731111460174098237223543715134948869406093184550574683809498653149459120732957312586043141646281676943800888532311702940583122064666874313454727096606281038698575158273504999272292781671616521889222229104184132697964367438581447170720586674222655595760289711380586707259007554944781276380191065855764342553629984810464328674007007300255363120159163069477070231374881245051693137714790580158477526048501927794345091918126204027374662416418587317839369034145556258123526554051800084788784437762344201266559556079689561621162870838294676610551596624669640173715068070611471039061867952514963893882317355393714995516092237448711563567897210341807564077139148528952598057438185909818141473107308241437062343240232826368276834766930992609712695976271818090684419667120222699087120850120473605508904074606928828754733425105688450008420299943008058130525246483012746862995257810351156376242279730433650388888440942863629856734295896693482056996700438061349750129996376608827701982621001131757944709247088798991024160615898492237013752243347109049859719822703528585597286808398965658861697821329351146931345871555950149858863915826507813250007513042084132204240599956144244810375259600063725958155112652519583570645960996440139971690649542768673268720926745811998961784124784732257164821232465173016357670110743625603688826989545355040195010448028565312366722389437376437305808384645751307725335468202312831210073150626333559000547965700744685971302521912122530708168806502455175937779850763279752747549110590493327299641912178460772410199945148818175225006640096287216018465566004028872611552766445229498349783521054813359632907845814345223780382456784494030980691207279566346150097811238723379306762975536455884913767010946606997358832171368906186552419946985630123837143227027826719581645253529676292754396525984829044237608292964546977602438962031495030920542264960237290578330795729662711728817312155531743610020063192965086438661146286866927010092902552799393631144214835248661472531672386845771632734618282202251464349808447876767845131659152712148384864497922473218873282754535150154160266799455921020658423256620562430030810553641010878218239892189267485351989656424430461212681338439722571243614830860704772531019819538376484223788176368221612371131105580824811634879493991238182998545423744095527011284987516128381685838358037985120748607185617762165734031331618902541786857067655183022092399970196343040833955217711646825741994165441826477695516634439403634355047653247322854718827563903467371462701963126231439423182075812728015739274925027882327870047751462624111238846202592718291689141951194815390189482762934920127635616406178482527270228926722370446129049140594470822870662419065822124235403228563690528649202539372381983919741977340895199671120069319608173885151439715860443874848806755164324823746534979186448197774900586111717425918178769020652237922582053566496558593677606939642843745688551408576560475691817624947994659099468308373886476896539160045687717072535354803750694881955287637570715965178590743074240880276710315998546029081158917295968379919967964814331952995181686182143860432797935434276390168431628674207184675860700127995370050408017859632836206701034572473675722389165183159606914866664649828000241432390084102316003910857745326672774682968194229641411256720756483595338998647287716008062280616672792138694704992117485319054384243393294627168069368913311068352158409201615062380398707309591073689275128284985614413410119253862038942829896225544300398728648819600474371504600282430578980672745306169083425035447906024706736617492655860609498713076877566087343846180706781755672459362230976102695199706304111215439813612667176925676060204767533694917256408599681987786599421695439649920275189621109291878297957231112084080566698708717717788666296801220671588020458695278712631438789554927584666681752940921101975146943602084060026715065831871750316249957703306763094830014667469307662893356519323857230917311345749106091572685275048887403470878117312786139170279838959319541578386035896898773651241178964359161081711709869511712527325150332236112097112882347501792855847730026554305734835861983582663174496294700554153430415369270564829282068527535069672884232263540894414386744014679004280671768003758768563102344579604910492946630275552013041672903176292901612904546629248759851661245502265071833332127193241743411760653593488958568818888694099800777631184656986629178162630729748225655846763079002337832422660863067867819710435505581941619943666748618705565619840084554126624191882555988827048090294424647414800358358996156693193348719911890612987379505493815601817472140269436916785359831041965423109096306781860472428892060891105489525227782794947028082536772985183504966414371920398866106472687222923546592453512389475532955320010614725073654113885687146023573217354177392776882937343143945647394949153093062622997244616947427284287195633752128976623606367168395936668163389994518331505172195309096406225268768221663061725983368807374660147753214938538969488720603543957521195998172043630098794672039191009187023474414954795769461316285340924731259573545987021389516767434226675681540714709984368057892618342050675379622910485440317071220656008570007766099845489923156684689079213798878173743374121371541878397771268318903400631331256515913673170632729706039113507548442394303503570418649945996033334860675360947738199429436269091157330335325214217883279528200297041954799195549720568818121930624202237811383650917691549428644014099116848361910579019564924198522450172801335322858840873058823326800476379095454810397286896340640414845555904156186090474726805567935000949423317951789910051945654855580612969660280158374370631888170671442120846448790269961718263124147907414355823671153099641637951447798631683601582461749498104458644836929028000648995881663071305150447273640270553447813961117291612487997975537062708670938305051611066569683435262719115116626479493656485051467920680572945309599353010096150505458021935361360615454097838621347025038527394724759037706696363248611698111731307488083082176413992215708134473323989013446891887649803243041652596814407673911964403011157857304386792763322548524940907876791462397711571402933154246715824394880168881297950622623764431166611463788034033309030301690436162956820256469223875470147388185485433965190991537944971111956487555471166915465086998544715116749243371194419448664984937501410249818073635717121425042958239872922022954646120803030164606264775928056044650843716176828335764678219610833223431469707407461311825709840080654581108391821192128720486051476859460624194285357010648995265272586276279666211365947125082028200818873070676950714447005124854616598826173153814990567936228042793119701051569709728447196159571447579478022027021891712723926404955558345769718722127313245728142101830451120985297712900882971213773068077338289365603617912561668822150340879517522905021396070342378554368705119629391365047126696901747949779910626983913880550632575129650060372643085188055101194823157066348765423362021912331924648740681886054790792009650952633944177312774660722186437961380663853110722357441515415736377202486713705482918955662039489711468962156350847972156827230742822388162322919979771240654624642330521063184267657113328377537563760366049764757669252418384853329130105459455392732629346716958067611551790562747130902420377596691533009507549000304519211095313164762403310675470902863390267049968194640381121569807362695963398191146505429541959504094777285356846389874876830352974821797229402503341105700248776024274504238164541173185883804698375146866341127287062975477410122410833631062361277789660221899506572322431502482753750129521752428053377862656454557090126161750915592224602054324939451056479677682161546613341103267779035324024164992226950064474972487662751992708411233339482151166338752763408697503768536966430848769767989851186383817651198324569192813122890328242920224348476032369661828511061701858232022626682142900682659745935408018432002955518141540519273200496866463056083699986294501416355388091216937879275511110087006084114874318934286938525994179752865956330415798623790544225487977001225866170434851851542838894723348175419076469771940220167676670014007680756953217568089066183538689128541591010581554118183527431376267482399418763824601514144364735849957441454441764774208901147044691098016923782583557715524006267138584320851552151458995108473239170041421967521074651481726166089000628234326151382667196947298448343510593482346772648445727553350281484623564118076705488704644237715056499292553750186370640998037273036054057786743897242633463142563599586364317194948440951627682092517052046238858462379420380924910803211509143037666476229858190334245721474321893577248222059172591655004571781029180261726103679031857879640510665585839863542400643373780008368179986972647011590627180508893294941811777498962823176368834511224762345131213207673463815128313353380649400976189738115630972141876799890226998195007267906606005860056312370758190347798009686055548202365489066003337666406523037624428260365145719138957610424822097586496417838834974802788258546721943218229118847132092524879725480722568690732439845202217204315750710314639177339399384218638947926298337840201820454206441534155236107902469792638928411464255184361299243994840265718406183654197448144725622582375090756830357332243465544301731320401460217348538801922910808058595320948528399824013379023724875651089843594662251983573603110792067795993180260664012347033621567938049335170780004849748189803398410272890417610629395168036163713413200789466846582756770420748739251808247529060581918875089245812248409777379031017342507558345864597714838442140202122886792881674426708115000467351937954552546103085790546262617568678908518458082394811158963351006439927338883866379438323387075570943708370127325053030816527399167770304082067795505329249695384602688679100768534885257681909038391020116756916359556864452106912659331166730354837587581127505521239000933350817743656491937114132007419443259338924511822477122767911057713520142824833075772507434385191645980896063844622628368075589910688012697256865865788039019935414018880569082365720977363232338738264088550136742714528885847000385843709484956782936468502180208821850083067032126565146094384203605935888546847471817353769876279314695172539573943498722915722483892326572801418702549159502301870882191086588584170656655454997997723601693577379390534849372848227709253868000701726920286566229584421558865954744826565298712686484081424291194859599667378135029358720800417694203897682914157977390942753452168887875082909491128301474969525147253791208679175443534451945875276070926928565306885726078879367388359672866631133793195614819474278014041072828085662588056244115180620075834349262692110627559766662204255222664737319219222726914254019074435374621716345646260596432859300107007954034533413490015807205239437402196507405343519165566247712919643516193913526417921462754854610169886030848139959238737089556255184250709867683274781676552352052062707060509292840371896226933763560152831141583938251102841785865130178795826591949821057646576127563679135095127029151588205062439541371379614203589015522393274472339479603457495086112400121184416764205153544169570452589839735243982129374674768782489368606915010376017779416052121936348728854589573819573510364319714058496193449633159720909539411731471669411118849511099646375991199551975915979064541446069633089870470944569669349767400518009147925006200298061509376335490643934910870727107498475493358447699492506555372343618121747482002238057255106146279514303926026572761287316858535035048258756858433843872250441158496384717615163486612307874076018167241900260253815174062200024075736246090571014653839529432531457450347436816700057032940742113334151536471812945532822074190479321768390804816009518395954990197920290808498208682324199516695806740656363198647885506367530893755041978646389588932658143556878381972232719447153755984963054927516498159246394771011528348546532662375540637593879343488861541602710179443102528817034743003206257531045896164086427439622040727463696739565641954650784102279235413931575013160089444120370767608432079523103217818874480043620878755232828833941512179057275738510212760404057491298837648919735085039910596869274194690597386372459769095820769871580727991278377818918663043803207214408382616427590922221248950290321347777421212945048474422732377940884056760692780367243971221524850560195434604197132938655272299793095706292563699368506926757344815661346629076197661537556254361835669815315934719907046583893793620810553150011666764268372232975729878838261339006469936973608363937398803155293767177717414213480832046408882381865687901408159460435809060487360904096332145009664093718034724557905644521755801729438014069047155974540635795991931698526913675326924132326070926847082106504185541003304240642710851895616074610184573297597150661183165057650727588436472334825156171673717347667754271936362578601305871312318436693760918252382719643030564375665680545630204803631020412935610736423922982120564799123297292349362739017815710366854730917689542216232898110913686928540226931305794603812857260428713989131102267883108629852850015439585197357797789770452470632667026407846458978361736987677097091635689863427370480514038253246950681186418593033982731067739014688548167897770750077413369033836932332345927735818000259586054937953227058609720810337478196303880701440612071853240618285871638466645059967851614711679781894453600731440466248698102907684449924576707115830022471275454936309932927613103917699167972628585404592713961332526146857685921122108325809063501448055809124389677019199035654554027056914580220370293710498864269166264346475243349158976614332124395215029509435358387862834456489163430005877030842323598651896950089602815803920003431370538511930408469494645038881577271182559787247065136020061689188793264373938722104181272554725627397488576623021437270895449017705254016151661212937658849804864442487092768786576468265730194731009462170173331613683020852561490729386743651901797577214209178401404401008141536439564456700452737598462670610077326315450181399469814979077748128189179338105466391792999208380014229762116326194857553062559294106541781386722364968475762967138352893369509053885797038545280777821194018368893502567549334482284974829081591778496894675103413731379664925748031702911912293165213372336153617887214595049192125690008406466451088764728200844773536203518785944271512997963805954797063232967181459536351952758104862907562545348277746208948345588649787282229286287195381147091031167926136592857514524576274850911705819900840499968148475142307879861889878054891495408092240470091438886628146940367083072385192693999974435815071547105534465027803856525795070702629640183786145364131811893179734561264959871485698352986083227310187742722886949353198989485289982461201523593253431573278410189060189213384482902176953571161119990208613328055138821295803456672893269083859241715612270696114148291675315236149459726773153768439483695379777882465697367308975162665871580158570102014026147757216611956154855944015071992479544038305956282189266851279070816199654879942737875904165135712881524867155179908315100295347994747817380959273487682588097685887406580891551941358004213727482882742062220725489844630172525857051324698417079718104416387755403622053052099907373796333367136460160230823546593127912420977653885951239712028486549808930403885890506998807945208529702143656974573743462298309705469782062779212021226427238026626195138072535744775219638370698044645930455431988327176563943294198559335728542804607874714300219956865860516549684032144505409486690182917128179470550955744732552225237934250880057810897330552425556665409679741879911054972153331897413085235232138547093313095671011465950289867894789695719960206627867241881521256582277664166606039723387295434515618673205236321563808801500083836478087973430997631816161148541176269869871940331702153660015798606729911626956738985337833533097906207510561523478127832935143441223474907746103591777110700582529932652509323666535793252090967499907667915825286655238221151237680406088135061032610879912325330760204980123915364943944111678943339156797586894795662524050526654667638027492678264732207305120568078828260356296711462126163923200477922414175301978477557876697489104980643937646246231350877796400239764772597890991268755419417071149225751921875653297119519094694587714184678125099254791602214382049435399239397404947136918864826918498481039252249867504916585951241673887642759798684006224778290446106438397093167698156875903695884692293513845581904171211642163350810111989348834559361581884174217050715175722530333754317249729061829211030017377425500454550315631393241353183945527065636472531393448269383868230887286353260371675766297261990697559206388463019361055035798450917427580917729649217564937617113674888994910191644353784955502833812577525537706986895329168466086446697169832145112837859857242794605947774075455915677645958770529159876296757427249816419633181010041160120335610207027451378534557219856148300439598243589372092461390528913743530944777003253049718917792303789287585140970948787866317641721274784980628438666193721704954555793338512222996846941174162232185353144444518885392394165676279014047663549331870406332922186281010577213220073836871042175123458798416637039843359698393815780448839882063731746442067724892878775830489480464375193315828220653342740394258459717308084219802660206267883173506143898717796060195510976584760439717993708183406279176445327299702972300240431278596480224479222467402714206177531163469135776633857366045455671103797838250375528788106709273883351563929548214722097609966558115647633223654284945328031297389584377381899259235202561004332542386716690621743867403575009107381922354464265989767588417973983146295748408411526078126628059415742082231969171455484863769670654066628420858169875515295538469976264656243263850261235123326340338582789058945020919741210267528815248072441430757191811302818541082331643205657433451645650698398346458907722847743420755773985980869709059134117679593263425931073830455134653928537956509182659887540667441996632370195813235304981218112494346466614664650958587418110379237494243896628868718186513132407296174899404383404774101054206385905698149474365939220189842017646395753798917990675021662951606603906852399804301368615330872351835252665966429930618885041089213952494641114938048733261642368263010507668512699267935490665670177578969715618679534204773203856634450871777341685058104452982679628063028440900189816876743078006615965570365600038001046515344993587802229756129961291603645376099585892598922931554365820311406197042447795144262467152353326414449980023833802829096501121323547725321465211168996627607279384336991766886137230688833321433558812965340169180395985302170858826506299400185246601054656456629205275131224585955710238683458456689203746095083764561073703628549470976303472688752345713983807660254360630737909330083166257117446021824834563471865973452529790633646294051519999106152248206258826459535967944537791100164557610307467206758475883593561885366534674221738822980852061958284220134378924927392749212594900461903514826094183926845602975453027566262741888094677266199882209924284088787572071050014075748442771154817678352613252533327029149659507931798929837809297698214495835234586061691906323864684106642397187769501458553968616326216356860337452147857496181996974660560516478930668308831537345049977137485911226576846211729968680360321035718752584741493205949812393144420265469364312830689750557006657319361193889908723924889430392522049568534053021765388930111257522569107059636769861360930782715124021784805856377337207290856893628549552639301787684264008168310010757658421351119983681021355931850174116206041185350883602181120246687214311644751807725583133938857952749099704029376916079091822827683318797712440460796838712339620448247224742701338960809398842543195749313166178229499204500087719801615224682861357206612003963163461412196058891369838480385715140196118037007517430397920194229772239378912092504003709936589336674972466743489100336386021987555865189091403325402307465096472587959341333791874594458822649758569428026623179188225740480870401183955689721529372067167505071816260431520848896341624194501169217419688305958501268596560950792473865518313701995275788897063038322622221614365663316426156075523160035471651616184706082716817871122979208141779348349278175144637779811210233806037744677615647057349094588698482501376879342741292631778181740400040964086888057215147762904792734800225974649653074450213553358665437353503938603466747347574073918793901873188707739473076655321134633490797523812202173747610647764348526425790548863224260601987959883500555630335253945410168257657735006109959692080730430855943882936079098241941975525395028629418455692180975034585086839988993009728261471740096467353348734071092771833617479010791872922108152622804550428272964867882312735405707182338030371347169833238560540006710989022236984444129344106838769453620301966362657377746679851997482640859906763437764008683573378388886054485686158038634196008334007737586022481486057203434099401247126600966586187522501353258490202472359647095699421320671935691131814242402905994839698138833441754523438660166946623619003865811178256819586147770774343279146154910612913687179180106481718240238178554084487547612748709609510968372015519366054645342838064394236831987859832570748855014152271007591409671976453085146520987920611842421349917509135332090830645421350276731570077466302658008411504341307450364610837901838397966761681677903974091378176588602688167441633652792775497949758702318646417758293639704174527008419015800568415488236879370351569304827853924057981808861111270357800368463205846124419426913638212029918967373209622749282308065646626142465080676897679450584350219093751862368252305722388223636161510632175416745157418851412417029966892673519996173141837645763160710691901191589256207117532442115654251810811980942537158848838168749189360460056669140422838223630148214263380499045887823916523848086445329426466579151775576548078274696861683985466648687945840661731239116433700934530615243545043049542560364044501917325339748750447426650767485923666104609414970045139267254624303750564579834439083155789882675026877529547353841438312143450729167425552216906693781793999815673836528274892629917169662567448397297815781031491506734989790869370014719301764909825581260924300662453119875286962492067846039201985276340962245792858884373590141222388136811811365720495510875244403520954242340014743046802933812399049527710791864769449568344972908828867119575016451839939869478891229210057026527022037190583122393798606941707947567479818362997875678489050821847903034755732559001961537449183493927337777457983341251006089545235004514762479778192762002076297203185508075505784615632054807481002376037188016844397696380619869294117421122607859587341817500317334807387189589940954416733161557577913879552820814843226513113924629152248409182686462789165598925699710143311999651845751195151012059389163807800982087856230419669437397803148406398610385431828427712254546451562385393965014933160852450469498256004505788237119409308420303504769813749980150500413987098840413294830218257697898751517040223229561221434960764572796858746651978480578292586860900639272055317894184401708066709633172304804706382930217959033961915800330763255369546887635209792979869810108700115193752362541559644061933367182153742532243822789465476556956348406444285946205516185651431947383666049085604986096732532029320041744763996050901225294081635463502977466522710335101583483425049494633439911080515004066370243930363356581663765296745547208245630228686454279507019239023910493820101356944261374335454088123980375209024327637762695307215406956759744007014631379064760158101928562946654367756981735616681533265280945319155330340311016906645331498498797093343232539283200423752032832882951343211990621529496441710581161425244628913596804496099411429513383160891333746512516225735347078551659090256601478027388548892759491918198570432264802789635215288430231404188361333758572283776515253712021472031208294849359553142844169396561815123395195025619705381531375261151141807122334383024090666884944034650132811489854021935410887855664365326168537162749251762484090286515364547165174822605772303969301832028706683925762700100773306855715774685173529745910065110609857655290234220197412351133545241414310419237457126313370067402130938700885920145081023916006314444703516572561024458360141454075875593222436177445525684321203416426593015364337823430351426090745053916505407923304590053362641895245233616844827939347919642895382611175741632909571122196483002053096165416098132553111401431681150827064744725709106817389105668934136113957261685296144758489934679376633252623603808043895023526322347576232202326353419047993509464702703479590813434447316092434452636331944320455566133835776216227119930298485563423933339109188984606840614142437412111340259969343642248953974572051678427868280296536000021534940578733034873046755364252039110556402140595375673618521613531789996639916161894662175616566727493198478053253861570545761407341280194045253982043514732680121759946904534181266413391274416788770648164726655379144468484284374295887060843938831955240177203690199612798636021066534710296154381298726427729000671290686217663981372230553335164060309574315681455890488913993579036348712946402202809786226464566500392181992320360795283255319118881303239531983985084515314699706584739047817412339115176962122617304624145283775623204217379835365015693189025702923948542231119450678495194063233013209302468826962399426088570638780419208696560779659124517967324012132020054474167752366067576644229197313163151156880474408463963890066672882515281134664224137589633929001115252922005883196183306403641181245074309393163146715674034345547759572417660737792264964643193826160500514619021837489138697512119986359017610869238485569848061835589323761218948903742370383553272019037371408419555978159745799711471108394277511795574711010067136883429181060758136447602964119659429402996010527523071026974956644718812284827664828538811921357165410384820611842958337876739482932797201324727205216335667643904399592517085752899067779528755189354680345557861197126023228303995932352608061425980843199629490533379548410889023831423982457374326619306382003854318481945660294818238924571856896234540784491378831457695809467873164591210326910822810821534823292651859192682988010637696017446176648841007579373792355923356974234443571357206365776096164190342625990681009888890497196162282620516844581934184701925010898335372231485024523424660205677901708261384910899735246753119002289020655941634743014515050827485990748347419944145494338478323565339906308577110297399905176144287721662283984118609535368696709776477389551899895148145960513675230446771127515916887032190722001212224931274695068941933722564111109245718856029161501071606958541484868627855976643672935190280816654775641399432540712815191744502027213230058387675134702661810657431674046006061730062804236032994471110334800767893110853318357901904438761036892885713791984494638530553065231920777339590050399576306333166960965522179409070861213723985737726615185605328823902457431546361436859750127824222438789134085773555793185716832694035197894604552460767222312203265554614527112525987485801682460836896833420269304654666019127687367880671791615381278715254733649060023623725944198220260078413171039589227572993901853149017098964734954456182423614955288646343800164924451966168945688216924248691962017813490998298952389506828858462990458838524190456628393754822865716445401539662403484433130488585497242872755010733790127647242869618426583122535047126960649789337179060683494977883241442794772919977643006954136313647274896415753098530596138613104045516072885390699699497765680182961780009493833621850436538879571985606261817275317502064718699277427905601515967057884901367852761989972694480541224227985875460732294515587489284055608638649296599029221222363960326147066799746335550615091986472029695074494386420708540048915669287785984531422656769769003158997874980068283765679388153565793421487855195995652990595823076212540651923746479258784542091705525461426493677498087787268917283384738855005576861935483350438795824400047352859260341322485380525639292662020550013719408074626611184578845817661296972005081512434127060488521958500526344003156034277333531026314658901691892380645933260182220997603131583206351883412465846963934200531204479303281970447438253338618174795969174355499155159078680694822686804180218995213414237966606118747870290195594804173843587728461724956994219680291776703278501569854730941458693072168537147786235949222040409021590705966095148248571206595907258447190327676576724892917243759717380330383013417678627662754965214697547840842842797982226032101681117352869804720028178330604933935713269253235915131858360627207681755963604797655234788426876517819817663487891658861207152311019971519226322285421371048928945439383274243365644962901381677512162877807735004190928857416747777993008032347295484578431484913207853178315898552770385563631562892011420484918271713425858694884056872099525179557725636754945462892886963246039425657504175900526946171460669346548522537503222815654792756091279387532491640370604166992371915683489966550003597128333981655111244677577296804884390779080885034747568796363798223442518283770308714566007412404876740032056854184647489568398668924873131569123926579141555165475470103564977529332103665812719765459850198820391032673551915263846611617109724803835393359577767944169449115886066509851983261935261009766063634172759740007074226234813168240815151238725752281795594939930079286006236693865143473285482065997227796246874029688435955659037462456658362162004024954157406120566472818761256775587952637450858682577360369275649680893898033820335788921401807327231398738636216866648509507533408996422592032228682827264889652611058995155922868312180966860661781094860817351970904187806876646330671488907855643365309724891943027135035421856653120380154302501513806637408416006306658794224665496694164637228765019091917369031887746921443437512703197693231892808747110187102023119919840249328844183719023499628951970231741290074541249696377095553896786953181017400663552721802180636352951100599776573780968469924283855619084377001938820920561954826331886828618162295026945564797373643769949052300456005528196883356007864576091381257790189999639515001337682771584885848450041399469426159790180467138371004975405853268687985786381773388938553202061522194026803693850143228155001554184503769248944859734836606126137943634879204461693710643490379525167548295555995255346222715176307943693781133711989912821932048647882445884063504309488954306045066329862975494206294504971221488855444354673325483720892464598408374132502354254902652865184516267467465634313036247684476517462904687837294343548343712115198063391614838113813164622326476483918209554099705787134654843982476677145026730907301341520915825389905415460100633601986630501710569553013036053540411474990189628988758675958162074883411328015774310430487806677763254920429381737832771360566584690480887859513269405862106378127379414547014324377889994364226965348678177841831449131189106808383246482328213438247878318841433548997257542573148452610012465675097937770963689478423933628764932776549063088269546010041443069796967593136636905275402112035767866274968747498147866358650748401199405315682924756017877877711685889972522957692056584921982173545543939516402275574938391480616656158823666622319632507349349484244344231301346510327889230092533754738017317559616416422511011994712405976753398578742183863983325386789826429521546756234012531865034798529255283819824598176967447083798626345959287978390778077086940220133676238432290004025834583950203001163974771273203364618513236280743586003707933164814591380974720777565749732308984925489589459129769369419211903409893897933130611041028421314605210137444266829917927532098253121551800576633505666533360311115814986660517391507845799105922298771959755643777562190561331322666616864302183991677777593407281537695987991558548723847647886420800389100655743610280222927197980730763319799790159543672486848513054503729894770529989777057372684173791592358496492704049989463246509816128126762604860984318320546109931387526950607446567173873156136119534825119068984897138657367677561157568658326894388113121745605704278436000656893592699272146795327302812678658801736094094642316736550073877623503055025604995864752678910331160972311281337408391360845043810696557266319618145802063703494700559399775424382683109807759891772779919150296931542439413255172817346326202590820600464047481709391299481117666254919043464710153544274910655087476981537453718057577481918775696535066509176119316123091988797735028696908571554100545649757080862992495684631678305033647367370985995156151554163898979402949349133983295915707745064872698342966007259540870022556371259681975502786091349901167376867545857903972486173020789536738613397290982822737591952727764640324190476099482941882177836054612699797883861803376774943503686181086144851731362688219999437957265363009472984558319007886313241022354094804271480621651192619445829047605188365633307185097678018643867495962764759908401860061551742022373193329306685022928390702105808251569610207938530084543960045048156274650380998760931054791453296973126751120692745842631774603321930745008839993863052301655282047109399668038678525043161922644596286520351549592409775196551688554159319648464872696677811804281004803587369025179845603284882709219709957012780857691276996338964019060193660280019869698776979506071096373936399035156528617666307641955368699788001598159883555611684529182856757415471277549796468608773528119794329589024840832312899565928476479677571849443690323133875710675386072066257818339580848875859724115926861256286504545751005398943192189631145396416236649251098747143641184472850204975710193658041378346630264907436926224372551584012006267398022409745426201503356100801424044341155489703926135942042444051432300549984794332417456307291928410355506176685131862200063184939724761667309350393339245601125102337649623985427190556807186069252947552449645420672757753445384083646186197796772887676720510317526827364101017681282120685088810328576439205458540584097501266361067677643734996568108758760174807285036474774010445484620007632539076203350795261568081601593373986603830151645668437038885020561441278568613174060297780791189390788444533243662001256658655935134105976693283507442084033822220210547384639021341481990788584394675160212192406629887626687507567326062379413319488260595031729000228920386683964799883446614026316778593732153335393639980545593631942411898483043910482931210348720572691257861569904618185743227464167177619944940323065309672706375209551338316341174119957331943109259617848645358342134671391129628522861964022007028957358693071969086731997482281653296307662935417792555078283540693296912190467848679609289435296378903456064825190345968064394252759736987602107059134495703151673033457206213247460920188685680005117217112133674296527384844275406389489477833592035696753876064022034797498618065712014369897472298371709242546854857151019313503691832860169048514903165702286138703825012335732954430867447891155112703092465135648954166131353752682409497488237545851847850038572967711591134256386744092041537028820657234901713616625721556855475666106532722809611735263842356259375804886071744795344274923884829105839329171393463714944079881117235269707547573453749930840362178435556009932157610285083838980871094274219562185736811798625549176250108810490265961832232328080496554731827138792273222864306615604004615162106905517545076675130260100891843907030894976468979905898234729186315582673575238653170134193075433392646334140252299465733801113707478445970234624022480694102541229596846459745841443921266219043670252204756804976764400228977650282468998515330034398179265957192977935829068400182451290357210244598894717337125925968370355545430463953999222654132332805961252485692578614370488322609375698197684680559879768549711433999341484741383799212238030562635757078174370390734963193468647506842017024424528296460564618807985107784877083193751122559353636342411733259788142623350430992930313417387952286510431104518840669185276584596420932603971212187789335363266724221369087056485825376504790793113407756788918507840967169776792182118991732715241181476011989848692857990684229782458120053811754472317932231920469711422674200581913098343906005301790781266526895108286117540114739362221942362728875169483282453582261351204271015458993252757934208877188101969540837123465403195093311836094703089349196610054716562318501656410185671073799029013298194163127605377337689608896840651535093576383254751525082439710597468804368072534198053347222155586091948861156124447161129932994708979732939818970378327646094202050256961195157423944559840093869494325906533325607575451617727758310523483198636014296488673351898927092080134922738664346143439880729928880705021227136369084991140964455434609276699986214092549945948175184117358528103231977474912271721266410614835325397660113499003851870346054603044069923013901851514699480132407533816898093797979355581481674365410906132717976056121946227120237514123950838631687155709347939959670425220753603197663343742852920754373013811695370959939443270474793872376264533600277434352223054619682495700291831113885112716569735801976962913571389697569823984425737206183644274010632250594917048423564510793552737257279605877007389134977379536224833188321649319530022280991122447105690095666685564505414419777144043987064958465397824243036343887679679306947657244466334911473238768035787419404363406461830901845558423421697529611557229447983136366366878949164337842325908851950231585664693557286060353675588174480318200550958171281185193693383020925337937540383147579140617258808148322078236847962871630140080588428471527642430463837058042986579231525800061134697900708621099671894373563851695836361188604984147323979884326425281598039458488295145312948360126323512334304369810635098120021708486626318480661945911502574478030488322009377860702108073716101459310947734464208716905175989734567894655035636788031491894786851709082727248635034626902355480987502603046026634793306435253814103001324034375774365320818850263048969023364681978994208975954550233289993559182584799060251039369989621851677607373983789641068824013732477338142294568897037205986265824991208917478749009023052443198724183169873350857035265955544641463317732860000162350821368430285321064957395596844416432045635654044359918531539240407381014739908533031429442091358629503559914125067462942543194264486841353709118554230375184945383136198081747600392537980387490578053332760519971643286561805252128365960424053230190963966060286209631046272083367857096605379087192163173186550016914182922340788296139553389090351083960208649769182879807667773184106813931228137211558183625065380767986629675761380778065077532858115305987957026057456681175689760800528753612068972492938694836782548952343917720650140302901110541263041692171187414752514535529768766229996218346114391831348405665429966230636690523269810160955647080482383733762013395240968440314547299115302326648017502397628580805977506146073914461154192594404468316729257775648976017355704554617422759204960443525049218694295583785301098907352652158125150771827380635709648651268093710178248156201922234021462509305852320032992540495801909844507637936326657498804130655437293180114212435798792848643896809204044369991643969839205903883318255844234679847541024973561318654976409781529985843773023952671801820752708396671624854281913357128035937888293180969936020914202154038325274759721716637949710174454481894218015317247837327673165193230037530720296776148571953526549689191457035346089573308916065328369596952585307726388220035982575670964121328350279103999910517987168981848072677631170202230474389258714928087190390177308845885717653435255418596394354250953791025824494618897889611570491345982458434758999279294537093392097079609059147730203517431161662243190005890262891223328867130159422014391001976483524971072735636461486669267687634007517414732659476582024175404360697235152477480289642657383107581163046282542253037167625263369897205185102062071276404181591280485423467048489925784181942396135960398870258161020000927773793415208649176719037569052698531381981684042897265063386836709734705402768772540209001783847205876017907742320093618275986258922764882726945914673620024949011705304191413058925793885234336632407735146955157043352845470851923085098171877229213041735513931463445880038122072976396108777785925908841590915284418372938042031656711774151745002815399857966198564068541032468578423042957469042244096171325979774847078008920876989999328110983414719048306305310678564012948650596654136945761873896582319026847420993228828045197954721443884206811257681671043735060200248413145905973509761321234455495275494068910703373470152870755115329400197876717548022098062728989972511523785320560957639605062461607540295814125615961426352807664852171924751370717887221563676929126506581947364989670731280059242551472222609945869885831401761902998051040289892999033255812034672311636238291843403002170475830518328377691917344320358564443714779924430410494661590621680128533293119082670857509359688620098177720542143631994217674587547085760864318481939356093326129874148592800754594803036889337048962377126654134613051820914674793293647415702841779643296390102156785278989068610880275899522791490870084580783725789067767726358737376664852691294153161306071998731497000642894524880454492713707719840582455997579049466463699744689324562428333975927441451822502424540512554595391211345902215763573859367931074121057608961057860611620206039967332677385612772981953503055389256118348190501372965742481834921753101512748542968860448924936570633766795063206029768596170836496876429850770897520791081530914007744282858703799994781020686806422965583803039004834485374061056973147441565765708424850665920459465871656076431988212141581061422341308784497479782824427280828281117190817033394380703916714305690857338101961064078671715097522670323341020478497066942533621998740681562873572816258775476051429774132335194193195390502704785601410090853853159993931340351016706942271244297392460306976023721218036914287860147311095473043674663399248198643685340936033359157105784779669451099825940997038154897800474789230410174879816409667713227568987122256403550917050637476690411209833940848876412289322292033138013551960355089386122120027707062980196473074609025872437985846883482854188121928743515734886216256991081193649484387648237298371873572527911597799036533254681148801151274803477741108151306127807147504658719271516858403960888274407769277041800511852880654808778075492129215938155001189378859521012940378428408193755181269112621560759523278404091052317968734227167810452733113349989781710657636702443187225972259199352820364072697200102625857068811457914683969474421860864936613588455446246024676361850091653356406080813953496780708354956726704401053818685377961096604387796095496692719360157427732715821516642662251068994826460655016529730187784408279509262638835123675195913304461705011656819688924578712557804375342887070044382745261727413380762621133559491074969721357445863333253437739241127099214744979316320810211030377528959512985052792937399522419644746235980622782872830517426567241312301356990286745073514685626249601463480381908786335117755521890365023801918900109667439421823127513378228740975890702182815005199399205340443171164509529355224424182733758953859014691685562583676068687460331632408058590672127106994090514092462511348807155004045629961821516764511119406013193203578810816087449738975713576090673072570238597730238501059951556404312855443123795625161654451144102441068597954387482027409162273084080380206936130957456256379323461137328604407975183084604280225134605713138452045158434213217264778775430341909957832890269611706649463146936585192638102993933960428726694899559244500152387436082141468915576319217016431038317884151813141099257117811776954465229943424268219861553487225211887637745743764456430376029396910203009401358671973885579851866647306702835060148896219734332523607858632440983970976074869858095055601418919493170288941427338121240607586855035331860340031409103934279946495317076214980227475399458924758886924549347308275370230526240699571991720012636255264526061467120190172300285539069583405443533731412503843439196272078826367720056137137047702339161264352106309216489335873682981184771133652457148737817828810523394911357585490200787086585532030645129705669281311505574924984272283370309499732169412510570027692864744632035116136847297246248129437586127633786472578171835445662097087643803354610996195823215806605053566926434900902054339896275808984532920958749665768809560461029014385526295663574250618429793417560328231295654247307388729316201316316026682395130135654744774472205950693042538545853965503455167504154247904284343472698286690583000906479554209295407923721709257622756617246227660753686391411868256545117929939957088396914210530054355683443959484678853757544863952543395221687136098265663631799828345023187343650024398100009747595696844744365289343677989315916083440468718699630143864621287146217678219738526791227487910938785068500521049843609321324940646572364588047148020710550129152926968455577101084635612393686874003367605547948532765783386172168898544181468208604291470442429620564365486423599206636151583253182854652341762502894019283682629057206926754725264902405614727991050288913702898096505088399305363066782774720455964571458089074114006433075805545359240733265376583943521039179241590496241472843658240807292130258352024468906457034620876864619099216381992755972481621432082879911144764443621453736247142627288493788710064738101933665167693108194820112548500202012038884044447743403906714073547640425235620014605514743745548479731666395537043203021836091555190834816131706245178841512232115967992466149604395489804372644542717006127874977146257242207324342971593040168298006214202020377199219926675911522992982583734951110913593832182720207725570176672943701873001391527186907233257520909977878650389022389843236058796382121263672506995721316523501052967167673614523198865115648140989482623987046331603367157504924774261541914828160423976023003558731961281277064920035648984178127309198442852783742490025245880815274591440656862738682028994309370408408497649725921146580559869413091607798011683342003633550550839524386752328220074110202994982572682593296728583679871127048151500445909880256166439666186699680311073021151716734796915650199543999523070855747731434678904810935312087333163233385718847233818267364935034983925914339177797248529459584025926418459508443462891212732796293636363727118531613662790306569624170785509462981148967713019098929375375632324882570430780462409004180338542939312998776576430304541268371188676739480309499409403612909995147879516127982077534548432547841199537352474752013700530915361401402074301522126587226118025880071455604080970196647124552390029685950621431727925508273279222702097370422297622529268399714684598974209348941118210074160581112763425988633225076286049065381536606372369402558056743840382986550474023185669784357687762878740838294596795567897756349969176875775833816217390224971413911064057166025355722660265729635804808362272727214320616341458665745839203504659454535808835299837927672801901924572137814088976275355335381880778793279768278450728789407301884529540707149123994926808126174195109361674645913627930618587814360137017526953459759546763692819798744633850767303058587827780154910408169090145893613952355360790785692517530940913072177564465829141349404824352278164078805689713416113875486997899196210118405901984350306073403451996657496197247978089693236328461620463743907802453355392862748285741243237946415121075182073606701387998766500728882345528468915982074571693734843312243335126114931584481568984949683233153021406640589983970839320043987356237254910115465052135757564887346804745658022496912047269809841979934067781223053317891750034891587105824878480795911228388908095519851431207316854402061691115222654415983467391093869254726534709715765344152242875461283867150414824809666439796548114033507453921821745162820678418522464660987347960679634613790561295085935341993917284778905589428041705253308245852241715365811391543131639427340164924006561422223113609702902625254000841204885984976801778602781410981758102117449046257881819091125240115451886074131775047752316830107387457148319360518073460808600753267639548671671659999040044129137749764744865777748623187670122330521566617337401960394451883437197099201466445126947844382263636826761783695063692037477044438719816915559341206137836934483161218323662221977178018920373515621573984897937949310563008314759431220959654926465168975777633570990427874605016033093194165477328781038043054660902593317916358102343020767991434184995706689796686933765322554505415238915387504373214378836393997575912157591390733438504509861089391630107833251702262210551552284347129036623748815147240198087615202136768186957494532405444495851280465674706067112541327011584447098640725216657269655116353567566951951273852228067905482665159670997538139469262712984796837421608445355335225394794576102314080494102419237907843003900342655444600785696399649050899361330083863493197930251644061241208309188988025662541406535359909298128068981561695069115705477120347875429512433996251527530648366133651561240476510789751246072293672295289150041239221338583942118476094138574937815096853933460417576473385022961811710530750620616234432424527011396374637649924774427452801053856762419015713244335665119557906734253375314370052901309834875825479159753424377938054128122648214120054728269683332290978029989319794416266660783755633730664208336136361414592338921134153192159277884046343315392269304808378574332444759176964302625344467525372099737840474684557290436749649101627171520609005636131905960162605953624238425349767958223244434850533658526249254297437986362801383616481192993392795587209666541375676330763673541843901349662207132113344495616373806482429227030355854800684444678747753762145808299353444472738075584864924706297267494775496156132482870609051816156710888908650983206544304934611141851736761894152204802812070795449040190094627540988418952245892566430149521386496022990952724399772020380440254713020514587983956238937304062332896609876217251446356436567493272294485707392953472142982240971654451897740864693262754993426325303319011024178062087222336436934390476373026495922139693795322826802549934185504512770407469249557419937008104078541394458421366369556216184396708570998025211057518928806006533767943366370978233365948090337959728302079358818135592302166176124157065801492049943258898762749732337280066104183158458107384975007120632490114484997966300223277118892995572738065459238733527139268778383654970496386270395175746559372297245877864806384545816757894231571175280000943780714136909056787867406469432476265307460859244100021000384073492538153151837696810724248584696671643788391692816827801885336729419357279031835683653612764906730830770625166023941359553641958658089545889233757076003090948044770411664342298372965765769341325143468279828867416257245261600591692511205096713401920438384239805118299441202809317242183620418019647064987585644276640983630137710096328909928596504773454778239824437369546163251647448577473327380191819707528730611334656705223047873740021920894693878212154348413277865118358822326063652629861059284514931109701463594008747477443734225119159720553454480046675276959836465097026464159204532676716377530238605812102322385332138834924915438855005661767911469665283038592209791952422164105708756582947985310939921814303620174626538973018323591905948842038835138792700515598038304021256541075407203405024380457182083877724041155191106785849120645644434867939948229309119229920518097276504520333212320293099956824257376227524622047904498440539455166346847253323235964983335287196666813468006217445505045590942485677654136967425331636606980877441227411151044693421427371863841173150236960669439363593455824314045711544556081308481907767809033238080956770238428443455832296124247625663853637745444177849805224232461023464452117953875220605575666149585935891489348260858786263276278805287078237903328458595195164528337779395257898746992494186596038628394161542045318898604531784167442582692768481993291204119121866946802209994327533024790235839292597474338482771895815185221280466398421656250751175454036343797023147984442126912340164529855036147309347896382797590998212622967829105521927395583988598621919338953514264831384146882554730779844965258398938675452601172152587002917218516429829342634656901671910267812344415415677809039241460021516193342848480076347388504547233382116586329523310667012228273334821194004717847175092954466745569138871988608168932021566495054477535464633808436259277075447328786695289579859167186982988709850677243921165870771469727347103855660434423498261055041631536452950033412688115279671385058516437969281979804029296235212267753908047107345854424291021605476152807138080574010780537176367279352860875900769391302192694033393820328365218791009662232461671142511329521861419183816144025311655858002244433780962931660538829789571185910147139386856500983988937092755658182322335336737912125202558513396236519309354873412663976520409904027091560438907337755440488293549741787260304455505602825279714208992698943182123125958137022520110199664949304460575062524396076960929242867513914753859834596117977243092439530480226247578623157096109553455654612910197698397521962959025656743212521621040116239051137259140968352735094649174944784402069066419631093683747768756383603351114069909861559456369532068491583824629605486453602786915871069868026584483062201475825103205612368353825016364904222815725527075271954640751786401477746769765904916833596154268378123871779080329097372984733663029211581196674970012398773108695771360706642860933259751933437059511694332251191406892890501127473439965436282685212345066750519494990465953192624182375875315420905429572801976923267175848530864248508798206492128302437253706330088363608342583789641683232363035272047367480923202780632806343332074807901801410166305603790644118949780926165225276753033590753059063114853267522591894734321448471910128223578409557662225653289590179430063238224965723604034930068039556620629899368919659051049500219674605331457151455733554766881082835967468243827678341989216714394638961512591448980871657097460620092368100607001408718339284252962894879218412150140221261569491840653515066988718672656445239188185549052098999315233001743790439027339678847194258032328479413082312145539808551052108746802624039145132728431235675556653675398808840681518471381831374912216031598630180199561160029158401151187531804043437294117912965266004276067621494570414421829100861082654203695712854598255886451273685371852541011451760404164137979453710042015886753189438577874266621017244966462960380954905798350254256166628855540647322526378174807365733925037199207592084359429747632880103107143287408930672068351068913683147729135880668692160784007768592728806508419169288359851281427920256022556064483101206036596927908609734454157140655535577291709100863253500986553541442291459328897091264196717453111099153211751084028653796287489908382797366518814432244680049398519329821383546011125655445864556755610549209011659181083156841768376545675284361964007895438769345505255964824298817758355930529038490920031088513303271392715298994413649307736483578640140735089477763488434233152807301916316176240773753473708239360847562398198703166870972999015059724131003546854880539823449932737380947945237409915283805927135075216743564343774641654185408897798715115590097094953185107091068898490403455723327005989470231246479906796282932917335192507219710109824767285992926448414111854248859602924358097505702433375928662410788453598900703852232892286414050066149415589239454157137136988931749141972327450709344079051611873180924896815352243483890228728451318655969341765321698529799678228999296322681218259925497358383990724153331028064185949194461678776831769519849466432041382006342018126928458321857555898857427068546154644888254720112998125963117439004471019597589013979784066631965476851861570249889326769703436790573526074394477096982254948647428205698426470839967907975735186518634098166617640594194108447249734724938491558121345659019376678144812114048335715703756544056548757351585033813661478139307647833766972862126356552215851792206284127334377369988600713157403307402908436410139387736653466505100478325741551134460272376142769832521144149336981065594992412673890509601566368150849251855733497787018119640997700415839504007100165215474643671630728354778730021837172827104372813471316183127722666041177071278169906739521402195217373885754588731915536271840524796008646468456907114215610497898764396878824038065142200341203761704564002102705612038556827794499175260690278442316110416770440044752404415262713517614614848012018505065289935782699986965189002614414513385449705734508039160143982398100872946636157587597377369144061834336398624380765900261777427459735966935741006609853499926060353291794345649728014485951587320604902938062650264673832231482176690614422395729814442993975605160076428264843665576382172881267374251502522848341304715919009465114936161828200026983193173099810115725055909876685630286712135913100340403424683285222871768997846077819113979298381547876505106450215764733265732538817627552977347497819643825824710385028627457510904512722759170063979971366822263201538531519228203032369721709836703172122895517279794781840384765922932569956759249120757499086003871312299900331237042397181858505898555681927663757784087065923900082234463526927810378647737256376598368617405087327383805234492961630719977356391696509231379760577780764239894744385922973603000634533897608950794671931974228144755673404744155450065410117218647378097031018416815091037495190349667578510418306254828106121056740928095288780202928402577499502428859122483362177515080375969591499582509930134692323578062869219950001773883939826884572102860413753132962679004452792440651478694301091382592222118036623670379839184060829958008375516069814597989304312206449471610312541378789928759244355620519238930623190226221087165238220606416574087107016757845252459771776446364219861737168256915471890934291759499883197090491773226291574078043150888809474879365589316915098494994299993753619356230329346009533107458006713040972036924104931047023559774366362969269673969060277364402108062415871100023526699356318496744345617826100396416612736289526518241387223025157533574283663333067411018930521405263852738024166227208015980306417235385395434054462869156213850648514126420028638216057598663676918833024022908114558648713808544961689644841082138143142165078334780622760544021693704710367909694251087271214574355303205808779214194961704936641594577091569219981583798545241909079353621875560809419903516668567049726983864525227673973096817818662250562190840901454383656138330814260816549456170741189375086658282668747951202789997697254821698791472033751658128819196242272543940120330476801102870355349874113550518430317812428457879395749136089683568617258779655233049807751782637600995770041931463625717720542792223119087859610304202353503604777778163690218423893112045989639447769817489788541886940405826517571637170113410409589661450153397808019725177669191363908245723277348527805433498813522964140176482749753402037647662395569735661481954833588562093442412571523813481214393493356596016049875062743737333023091455479560192125905074480408381752445529174161031679920799859781102279363555822635967517136235541139062214848599130718330332316152929038712062466449782607467441026065480539050337906160389225044516508446007848234035759194266302743284050361760334250324013537143427164311205642760765376052007761613101349134297169746076544519879013066380344196810896842044506076475183535499551279449973651234251159341380096694261431455086924408449609145967589353714377655544350982083678560392504771709509327233403250032502656891757449486863871046605898049855731180883053389582771206932754429493687956505057465308315598378541111613114654887943035759932143087865980336818808745364782407068825780389845020472716353063533711039137881261924499762890947137072020083474711092740187497419260902732260749859748061172194325752171161153576829628959450786194789034448246694473219135251459749005460622846270438668119600329815346057313681700985306497198340925069489953060614473342190238421536732711181181483940544372869787299643089010387353974353447571320523791993364068554153287189683861408864080844472393849720560852364504015801852813671853124365408018509778925056024591483777427819086435929686777631838816946738341305479517320305353097559076883046877318784657952596777323613377524415890098302475092212563523752134776348711365963970215221708176333293987376879738495265542022479087461701332176347026128109462311469733394688681405561957052803757335363002800803352993305324014147545431009040872969524651839468865032013246947941386307205066687072517401001755927212645809765841578747755894389505657237061176222872579418840524308704254836657234379541607058651397405631725560244656260284675297426570243083185652684370887352224605516398119813533371494315293897658582090565736436770024275950797683922679775914974322784413370545809062421935526756286728550661313284161460090336636881120324928654361106395410235327403347441268270395821172156767587718272198251574998462963597281507537356839187217270722305861991369232011422361359174152125312402967148532325419267382006914190278491512735371001254264343083557893751234065791508911136691291120452121651321734176451678772139998462730099256294085629699520193654553706780028674913868307220747930459102606978414354860511275086473035436102510268997963922246654200529503394708736975742805549166859690352072128548342166314440780760299112072950325264888362931163386348243339649325673486360628494563581542791393388265143045080543405704522830825542576648581257462666480585178234570071844234826860922761333500135123636197860072349054381676032194995290026096002364397100151832958175396893640702150467583601679053284955603918235386974198679484808365721556430944800903261934857063736812551333477020427834069760797606239852925707124554244158670213154185787081115530833310300054437546622257526766463876950256743359559812171581153518630582878279653895245685628527921621958329477532529053042742586510117587802038259304334930896160227342943710554850007744511186279907854638901596183681090857946277108535232104359461878161092650974396693699717647390007676225344381632004860978731411373098284903380666638042793400557516426704077153265904654979465876626836197395255304331275722876981314170520941699660125382611558118023742900116369545187095849633391655267014990028893473251202302492041578601729635541131569197328014891590592417593891213920188202908749371504629054516492300299986403505662296690863393662674088780675027226232693759267089578111367304522555315407521825659034140283157774191235338651806994197839407733086044873061965616821026162489102353039694960707115747990266939610144658293190356052901619450780201159697943692776078630600849386068226168600980288173349763798434868633524594061460586288784268469818590291352244063727996941229196909513451622071542816079318396414379571144990638065341675328167544285771988521765145844102434510920779525855700085531086267655463549643122866356795576860936606443243745136371645252864505681376412738578759506845968942948415810129315252940379142226937859392278651907291153319966517177655183665484105866752980956547824997712735973139914264658725101950874614945874739969108140167380826069158842926124727639942903858162144821743038140303597229472648645152953321307167635634703619144581272494536515470576440199883763896444034003036082769321188475161648882394607267459500501994422725419413803133278029179742903304850868088767209955587717053824796364788109194294632379209526808465688710025416159887312164968435546420227120000275316376589214705500012404068871430226617797814131231095221051797908623990076137819418224185721466039751818027273239277259715748967654256362467752829254347837159174740633354391881287608999429352502216831549404628438742294390681490519326228932546779202111686050320230175230290855277763364643340718496446090154402150279811116803166507262002949223564776861806137684028045617521169609637283176656210649403884868106569382507897955291797555729872767552105374705545542405026701348503566049398216329116164772947603144166859014870862451381491536952191463380077192079169931855792269880059188284619688862777322960833602093942824164964626787343113526366265043155202371049180662915883053036084692221851576419235092752076620793453780467491065249540647103730713232040682761409837519450592297930041656286522270516939886088361989166541343891044705516192862926545041265989210873054297722864829456163603677755722092384807218869552019389595445244259839805910214975128567219834777964143011352566328485163381989848654514205087511165725104327269141084548993331691778206073084513169190123966908213788460208608802372533224549992628773200109696525708259931353098310422729839752595668606568761730636784815190179929085121028151075742528238871926662271746543458593045991995408886142656849622432329773730380747347273533288231635376649985658070782734593417026609894579357831109186574957918134260868834288144460147340969169682071947535646869744948154047351937007494172089759235624969675397649800411842052285984189539997143359492134457236789818372164394202846214987066083620023952664096697920407732287262163302289064799922771644410454138112896109042697409851294844565018446001390078404118211900782205216074716768271317521661247329834751087649196492771502965735088232906370741125634958001674763535451140772583439432889640573153934202351974692877804290612125998019486401807098075285522854491756346422040137180757114810053837643415546748511566595257105464970558604825115678261889074742705479638071998635478005178968684935264690797293484108160671163062321662461360597270222325999688612671592556220414966670256844538651039085774716309911748157685240151738422952101653772042811145649058349897598080216260697409065535000865892688935069983487576651947696633659022852672240421811672156874878381317500587227543057457768744148034144376014730754926204706489158772146798038230662518072103907069459712745783734149526449897654312898653341145430410962936739454508485268181852144562648591694904882580869336886051537132799857346554372510160825848594961951171661510969699046721708328004948742208085243921571625269626412681630580009198217606470515154447139482472547350101397383863747354414409780825911759799939942842345353454284209672494891786322945075085172117128442422362644753775085822066394403684107882117749313772193482512156379873576462167534518684130426980140374839782879447833856161219255162645751172630149441573925288247332938359186651470808960941591315712475270677042493829536498629569392140643218643896569071021097010797679935120416406638353442010676387558009322182467455826814816800795424831319918349687823969498935793652543165439237515652140931261084561152645543477413059337826649826484748338987072791915243710997165306966187306549480054429396475799072366853859498198656398661032921069905095112612125794848118412790872257742196624672248645980443981867356106800706112151316597766794943700767248394399801083672791781490515184162676279799897407172696896658726338112408042237990412038573995400835457357951154174199731882825931528408699903739387772173347758240192431358398085106161981253458190582265517980668766329039001587038633845612629395487085617767365043482545010048432558926892291405447530684700678874828073370748275681163816366333854996190942288549500990841300565593056938363484732991130557113986568728214382189328476667014657571081889966494561412605768126313675505992597397203348352519911728072652546486842076142105983416508768449172263672649060211700841412787868237435217529826422042518957347518812387865374013539715669759566643918027891517368792003407713440881264482437633982128124314559995901687880081608972899307304051525248241559123639816792682853782330634347175424634650661832727278797176497173407892988051238832166765426869992420212063371258190720455580072756012091331083815900209102253264629748369511389418980952803761384374071917277008182344396802348125225395430847629036741194462870876752237127650890693918460491704731276136789547854447851891334575064687548860068941623021259424164719992199736255576862409933041438824562402133900210496425899175748194222108580648344227139554253630017416528609511273609036335132961523282765048213729422498432719880994209917765343314033159292909402012281457316106158830799183376308196753044293405721950612018405553664547301029543734832877885692689106143009164277402208591969804399181972541033666679160140299267552272853012489543613284365971041187747685799238181541691624017993506029055209797090446403978380136382600188099688053631032993452450359170963020496958940110434408707980678264106287489430464310699382216896909616910418985169464945151851819014085163902757195896445310483257018272504251587775820836563743222108400617090489220927957763023425190282922700099058970273408508549054869611696757546984517997727723850035262104279391407520633226879852836162933201315946981400444506878303616061906497867215360729598832280059756331054562883697313441481183567820404540129033577286665201163735034664300518172537295641842161421552363146213392159855549138232523763221683835820933821198270998455028999287163292718233571452140325847532895841594678259540623309258317506076659174580956205943035962967685280653813855315445947860360715871509303357756574828056027451809107285893620875961875792618447485774148468657487110860569740546090013056525218906520018004217332835190234950708229245528945555419615676155107469488152588974638935456705206619495669748358973776229030590937789659038108449818413590573400951839600384094081205433748635263329698831971239544924132664720010824588403435040897260315059117411122466689746786949042791958374903553333635395708560551560510254714358079621712715161166647335979164191491570036274574565450613924276943384902117478279341378644729866810343724021961729005997426882507271408572610937600922662830237469712041477350201479174910269355453439782030168302334433665957234910321620395109728834492820863030764479965884674765111050024336934500106726535111947755401282808718426349968630374951828771737489247796239641743625182099819564847829788688976372327487002997475795557284010418099331120249943881647496995366554081743035715552932615232480415523657824360601020949280777675519581088927310878380283303670211697661191137615072537631334655487391180065025130912844497708459687756404116442875450598665622190182512538052234018568422537438199324707540876094576353490539298101516283907248735733770077564505671363635596060170732789210954472084418203707603616338750528144607820281036853701981808117135663539763166312691448601574397872599069671779711545127398975753616808439284789341702907423575996861609533475921041117908521557334894603043255432562370098680315806415539477728546160496247417170521429765103425240088471781335246203383581977504344068348076557393225958355851655808524051296007241191267773722741395876434082431506737633275134755824809036512424498520071344696953496742076995208980654960190007531266825737993913648191874365798556227048690669841524451562986738119009858282394003367045466731335236452974761514002417238323016969487915389307316135756022197579987692411626984734395925275986949884424072106577635436876569043301567481341830634939314494778152849405423742425001032584312223553506531626018284834319152020121913877963294735179744852655392655543368460211848268123069517181268396930955179852249755100131584422819401778040233795752240723370970182862642515235585949155945072736231582577199126047526213596047247497424205295051465852864157060100334743281128956734971761177125533105428311299406276677857053760692440945560600912247317491716240296035966945314326648049022083152640716205384907824702681949337882047689036829334272635947463075429756794675939622776505684031895712721637878377457379761413821268314373536479219278553785832620639452851395990004714322217918040585299847044254523907348474203108226471457533429442178346614619235392423701484321050446757573144760953571216460904841163584174258962938056536099755371695539603514542432512144635177228696834014822373785126402934683774113277530590510480978994572250878536833812158696943197190979685999438841288268803184009941618015828479538352693987568910645236632242545600723554494824283398098545764897912315010067075491226127177250270067881267616321017513275893109403494479507209885938884116553754849088467044752120653108453380858183417251878413905024385670101458471998155029942603007961305635538040604915460508554283521134610094440794277829043809619915228503697404435299319391955375894146857898529939846615268518668373857375084353703543888509202987426539390086612162508974402536497186245504609730300230825727741183333757010135150079815832019145747914727571868862980814232354571864198022859649682300769259642292192576713884733152329567423166539344335770875554022538100259643584521614583381152026740310108900106893330133447510409225203617044244298547328734895337887035687039159648435618377932945426227566977424368066887696769402620601485662091984397228681927216024400700226389907834150030206442275608756901812020601227445221663335766809309595677841778096983168634604269705846909836262497481823045012703616868435367382139869489860764605843932519296257061692144747625106147123506583250758877723448225468589481144604978749741073281074074826940011992678392176823875979967228040034059860442224846550546465464510988650928786511851825959484400123469472726469307194491953263503978369483665542264843022746898465542814985929624455235968574062580582102971309704367465352544562480096745210176559997122002687255860166340256187128878156636413389802788860867267076879908607887701608307150309601258091155513802466276665631416191035919272545660615928507051537036213026977133589944669353681850377301195918122297170621989765659316839546235766448464923363918416954056686254529573349883144272817922864473436104314157830448141139697703710024560984762936304425896525489221966315201972318276026228847216008941163589526854589544998180118157930259286333656245143131230760929770232727088384956791672193910923542649288683797836750135536229838493707478152454819411185030289010076536066419077980984433460158883903690062377763326248828295698731658560659830852166496414409783840259319313711606336125209754807938474019911097217285493938774155540566204972914061452529415234336806531645220828660294232709768758936351203076643477366467337338894045507185655931169251571221161731524467541445927343800468345042189949504962455578241278623076918649208271774712433165625579379080861301978748310977446360336981016238569881024641437812403689155553570376718804028733451467224842663899599115460713893039784928581260918117143024765772988210426250774948774305251740653698517998500505305170753523984834976162437277887771038770104656969663592654308483796589925015504316063681984201449342824190619432162738138472178110053509964082340577150903396408226016434054139364890411345380998715712274108539028826771983938437984321148619237615583176739957523397971539525574955428300013414892263234790835517171539905474403629589119274823463202591497152990623680377811419152937886064724161588416534851960593268413015507747214911076511552290030493927066429597467798324605074600348833492550686552607300949572026122671924005811564911138591831526233741131458265232153804741113398001467240623153629789761417380956621044641515187197263637341733866803955841239588146133385642223058288358708940750105777251302713123583384649944229333659465644127632745897526608613407719946133469424014038507705054829232255255094880230531843724629087933970145862650763690537567317102819282540768492662286582325526136453397590882030169288193692174179840732529947438142637177450085768019132858190138393275698909520126752569983344126578688386124672481853408997146657097047228055408293658367231150051816741936678188427982115626090483600021325314730787734416749659673907722896236411038088216191626672401636144815068284210266537116601953863995375445274417375441295469130139838168360795859935419514747448526488670993649804217224794726112319687104768512338864410433425367554491880707923719527535621175134269614708220421016866927896090833713255658199791498838914580300863300353088368700300569575313396722712355771883607460042769691256993732467165092846896655027178923665295071264653727095259677092733433071809392347282619637172596502371843923151930249450482978254595328084414721149575059196203234960248192937434671328411146803862248986927587660943675387523406489288557382101804662803744697629754869704453397954050654716231225072196729494678489401709157565740621374469983402291781402381452351949734888135282048039106258624966403083380568642763588974176479769798237043673394157467282257402903895775153652371082310678621446106854042382687304706920884932006791020579934270722060471084120781901642976626986817952371739515259350981791038352934662812999772132395934208992614187156474411420339202429959123622799614929972821085794157859769947025456054761360121794748518304410779189091133314295541931872713541988170550611143725823850305763469419366962841298254721833424653398892293273724644832042218646428474447267441361965144275866780068768498701012143715442110700647504146539932874500341974935920574352573269690316360119175581964590892709181556266392764865768573831612926562095913460937317475885433313390972921194361607917994129702444778946049611306214431540310429252454546926532828836577570493576704142052225400234183191234432952394127680166487673047182827618113947370756499559463115734034792683071395820305712429393821506576230586036351021344171809976468126621959686707535798213774601801844438244420114742365011277274911649507329983884604584868326820215775496510994194805707150952264912170324355572628612949388951012541633630754152984188172083872589523888767986456934451614876641804149525516019058905546595713447712834457403207573378567693598202896757221981608496632569836105159880177626078603582091664573340052267392872039926444123665321939575447799997138139369598228821923983371186195302088424026586061029973047231848718371725553471124508079479613188731299347124815325019918057671943232749743565649460528564306105757785067578043953021751153912314639761849582735956603953305506031160667212229958837789301581196578700605762994880921506244877814478850193101306788501806047463715723005588992645405017590836034126291610809890076451810878866169969805412133668563135081235828534277719709834491783557806229707068749915443822474564213125003934719218407604336749988180285377868104532694751365417981326100636060729673516417217124516518224676417609195031702286670519811424337809582871041443164247662156220423519369278234560780307536294348373552017406667647504755473079694590370019942527309976104888057803368868196023045777261675112162321300241578734776087471560844798944937831810373527675123974599982206391780974840375433095311455292987440113334491404714890206658235157769007153278188453044224210594862337626907409520148861141946608140626943256989935330414810924893271752818600399408414512921580359404879305017488069665981877893004551296925742949873590534152704208496954467634605456639853805994668215195919306140608397683815401175145294716990923642679451468063185384873358950359044412335822919537619431746772523669537489292391596557288212790042862773408960480301694716904903373561634592819302445019687388873342103235615077027971328809437216597617981776097786517086261349919202501845164222342803635745704387317668831482017569850105513793429224034622860468127456438623656944406039062855417709309393089991821253812393979892837996249106068680116216807124751307757409097476579375342409161082984517353614131444723409848575089761131937790551069726510550053985794938792401127053585287636720922944547982838578987609141609922910088647691639300659754974203432708238520135460661118485695466973309411880648789175397064385256131139352859120554637251747116835001869322326107015232634687420388185549876649718552725028605146526681963622337704428953482254955749343171127192990014569823097178090881254608775763158847443665423674489995092488809903518496449842304651218293946570575470675886474926257004598691294543476252332272208107649613373236551985929475765496822676303548286937647881827290284280276426271539017999524130231825606507863637908333464569701983007475575920156575537710773027627751585456530182138948907152702353767155565035582096084069729959695384953028902522347216315423728084981796059075080660656624873771248478337339379084435030346085322419664422536820878554225710996939901885925944268929026764373801878347291905084673358859658998049568924402196447153846498738937382232306130450590867682735040653435457277757743068292941264023306098421739079349910278045853335770958904447985672987594606596836990277742117979159330976271175944169215323730424554427904741145251627559535699273043710605873406369442126286630901289305992124517512050172731221135203270913550491971213569659315631660279515190276150108938748046793558610212346639726387971032987364177689418974780889888900015640222743171205083262351699913377224861852546988857768963487205587018775683161586639547817291522522016630054736581424565731441962697848980973802401998906068965226616291783675785581222984258260079175331599975336537548866408999463007618115019910955398596220187057801798477260405227171907792397678899738948000762567296646121639095338454748452066296379339980450334118008941109239929199139250967091054098787110343153251560816174701766571671502347222467748572000645470582326906445832701211577667586615157165413559990310619268568480960883395792312964132329064533489699946312546049678377943290702404217283112169600084019546859826742182111225073214186252314085280895715360846889334860296927855212576082677958512041437978851323047449792112801656345651594032285975762729283039208715984062442502560776561712308755178668481974036180618072969446952277914551676107085836192230800085972983413092110268827162640425818028700077252220946375809328994110529648751088802396065936136719281294838391073266389080659659997009683592117265835436383052962620825330939202545392308819184988043404041876228502459316680550030418366789802385299300210338577814071903284557210394470145923218303629288140929769946172021335801779310947716375876024511734439301546903197170134530563086041262306810007944892254287750686177725125093296414649026225853958500509108951880488450610468975024128354397604038902162825863443480158330605909221164236785249875470093087247293573058830387589833067326450974151993157646041914731488958353481569985999814457469258113170570193590508011872561313414760128227415074823325675909721234414512044541331238789422130015622547355213392697870382958156884629770373231364043605696127833136219506455140043096487948216920301817441549344625043230185529484586569337223599764692567473703929705858696552849099807216480894891455107457547934552483485861617681396262778260285525274856147866112148272606823252358854850266632717633191584580875581706033150324542283251266107402978552252483069125822610592331591931723032138223604465998510852408774264425539796610553492053459179853183814152086252320177174468512663059142154029069865002063169931825969351027774532639697076410272264546502058618228914552285945486651712201603000726813957073308471797159233358237372350931280584066463795675527632001392951078148480004525116605373446972863046856286349540096498781998794844447988615639830551117721945266653418745545683516851016425666974438061028799069980998853463539752696567894985728482328052538291410428810248580787950095264378964517214656677531293639094968993748091076654750409351733519038627308735116231899419498417195525626988407802070093603833815968568214355138058717519202817735885325087635059763542738602167512636361689422806757380849231236273931569253194353667608254289344010461442080555636311808109376091782641422205706054480953674680538748230038953308108034878932523963741199027185634185563914895574023828185812105592992146867106511982038701797767228964167428811870378674350738922459062966089792114787721258505953557768643380028238962242906853570868496572327190678231937355509829244486980363584430221645238324931788606555250432514910724779231250534039539338290684067433095422182268833732809989075017779161020723660996743325343930026732982270066840754536398960666601589189809625646326059305858339071132063525774781350269203635488397411345849159585676527324054055320231021913617199063303685809461484504590203085491365311572455123604833158215770827903389535741836835100353402059020430870623162892381882183947241107201050023659698884732439013973529428264148957722854808222336205598440942770412929839112098960223922011507064169996172925318578569659966870030908160648140747009794529072517445045681922426130306043399885469670139854486037137295166449133119441530653170578922093432661594566057252755187507694042236361288882687588950973635814120296757945012362520700737064990297468611665264173589885072972915808369276989869910822718023818386047188181888908513994168200385053998413850516878940788111601762011281590430259104759842580827769797487939629897093221842630120754911824118581106866083078941234258359908716883174647288895254559106714887200836407870269984177143436405808713919230931516498030612105293330632110794250869040148925441013034131898533472741345323559002577768225834235035551526733184668436789834739150358807247628779524541704784369550896739012563766818253400537737959242028603943258892861327170489391637120230050198467796040171911649541173684598026004161700050424473628752729679537453733267366543617823524623470022528510213738497008922619691060198534860593660933682775018009299763205518569968571814913126866989893075656147465427653108355260802629708148948653560373607476606342370974898427458728277607157731755708512973421310557267507204421351629779355970241077777560386587322803228054397269025901727110381718679105312809515588482841702256275281137329604933469256679558590100142309145071101758282957935971963239879389911006911256828985928655573292148726023627255412451530626742742787618095892455621350042011621439915292565572000081957092969756117681936753881227743413028549471672658818121352210743435840710923758524195401485794269833004122266627616106069351638829164160030366008532274427025689908741407224326218650081604038845113730944236574565719512329285603603685958789579760320124564437593876082870613264182586345438439172456633653956684704873539585926633061691941035456043617457809781335430963745446091801192237993017816362128103330216482195944129927401024584971143106163992082506217557900518132329810360139284179390902271888507654905622767799650304444568041757023913496788457738807770847172885205082890986211816299544048212211956867969220295831730098090902075241362083978253743639746864303709089758209571403945164602577128359471317155115420629039823533232795306717512534922863797503002909417429940813353681673423051213526098001795183419431346620206548352125791100911296595332364835254397204907700923520186465803242335673082953499979495837853994952007376714388374199717864168789086229400819844276365582125869223712889950859969912180484251957622161002975648000701338728824490094601022390428492838326132126260336211596174873760376747759565154220067251941004649162422017738267451994302405695848041787462597609555981697799643277848442441625521280232828915121676477408430981933992698051542426038064858055698505874648080167677497388020226912302984959331018664849179307760402167174747554213022287125578552638273898095223750992868658813019768286319509822128722162701622199047852877555029318258280519903938269403231127474192910347557661503362431259796752378921270500965306650829046236186166281030066673470088971173117208697358015314722927826647068054446016144452707393670469555678809639726968698728306766148984498072874167094921395567699618585508993322279522193969889174316009751744578941432433245100467382367186960577349583065897197757002130745286449075750744174163720131346671230537665866993902538071680140261908850925696293371642700473819387704227087384047107321066836173030534057341779249813566404311709929756936909114517731792410087910982380757901887489779130642004794062410955921118195582000438637075064944279845566102755402939503296949855048517113604779276158686338818649118348775755708953659296336031630975884167092206143165802930127368106528704228058622746622334149577562650693673723259525454756281724178880422999272063464545164128887710697549890300296611736834590028518814536677625684085107438428111574382455411319319574170563406315502649480829831039069727632000407266076220371157573895197650335951182705387614628871678567867672286615496667386698154953462157744561844940637969110110283604749782832877158880763939493865404143550445312287606814284253164161340579567946517577656643303574684667925129276586676845429855283359128807594620123818578892429283971026103128504468391414065936411337813241059127060639999698668830530081306119300074941214239503335579213934617523062232395656034926044901727063105315882928507204543652526103341176791002413608312592969850878542445422425663993718521588658773291101283160125851499512007178536433138980977538928256266652901670098173651757315468648068872649304662710723641456615036274374520227675933240306323644531279229037273080833441890979460167672165497993766468654122845871412491591182417461600220551386615974343490480806352398160911502823119213129693963925493275496072395605565165627177236543260072840622631718274015189961635856671324380397763642998662802004872002546154196777284647541719934686274487381167288435460906448770959021498209673955810200383730417156628392073347403224396812217196837047882373608048545430215783481124101576729182595098827507798078626341343249767760548605740509445735104729216562338237372784001338481352653412546786216956964328631677660363448673554750048756176662957027761394819498372135136629499250496202732597276384010627760152685408713676244967902346534247342194619771546174169885513680300704263339454214136497283599377582706437394160881835155374468414665168374520285633478136364785836504910112880493479981144851473937989562311644437649805671802222986160412029914270485078723684531265606303245450892432318388610715833234996553040237817653230770974925944277191901472668212884912843722296135095236913620447891846110245205040248677893582640561625584575735902707872870078185612046039128060269735216296394537176704353034505182921960997737414577815480959823243953193969424949517944237356635588244420030384195558877891638236562666848152665343901215232887261147256766790715805246979450882937673352449676466194263392708575111624677596906305484501298033233913678353447704190867472632181810917034463506506235289984943076480668229549415573493780150512708211486125380401671352271893415715173952794151203316702840377576090896586512659544112673011871472627555084233182024680518811376426630865395559617679602685083779045967221934112929526749118687829257757680615449043510077127430402929085972048493356094060016953530128795293227818402147702275156728570180313090515447409961117234821672575000226263383448115320440576087551559494646805611996376051213131660517119028510049097363102899811011321993768951239054698217315686204788742612482672006086108457647173588888642635760755565640952686505626258833961724725807277860753165049887115138795079001900031832313088120542628498172935796044814958633023070352357250162907261395805932604314506087616355845024828017331325479617616833145009530691277248268234594270373783208901254776528568523991571738076835619504334626023638291955338796834882669260058427454713652353870559705517965979617322168341372745894566570872993623754007784785281927339417883490163630171489438680600257505424343656178630881602414587924629129743996553360265612374318074328663992430486020197251699414886302550064837793499145534376717180187385403495902930066223609505269555421077656677169749602820356609028899724276988140756890494955415259843281035428480673853217205515249282573275426284128092342564947263181352787934230767769263385397503355507269774110091143944858685663256822992598930570088011590761397838666653948046152514402377621644774468304504689783245553290385666576956405473033171114444453168668703853506702148661369578033385521461104188763809852359630157204115963308171312695100945618713711279692222846550455694536231654444825583005481572372905963906766419800788758343678133415922092066872860407962103575668081365534595474509563389987809999948944224084922966131206317631977079604102665346161187490476384544148567637202390117883378550940559614319629234256304271596795016321172871850385885008443435582815512365086591282309459234691675249997141501880106958716710758541548135314013668571670508637142574756336291261881511275491886970648311269141069516903685000012529451845502591713708315180307266891506128386957347534105486807115560650848495958449626992511697187701560830126619671544338605138624069582154325189527250171676797473441516742584503612978225855840005372537544463930168011451840034513415285648526303908171084116825540098209494589350266767583745988949709378628704474424016346874631646202877995303948063404828015664714122685794044113149713309601762134981222019979417126481141564180484142428113189228392637179796441126120956216563343782540110274188350580055043604104488852504346183629405854833620292909145890250918149583014736154249425454319416717988734024123296062860894269165213038952592734634288233697493376271923575381429555850164961032242591744985176637023679654271122575047277351850084188689876584765773050687774626072223861257652179677546823908775091639577646591749015462455875122897855615096004737364351214010223397479537721004679292050063129137208168083173118648508334950290964392962767990681224347233635513012895715958713823319692980665467869701603866788273697954023699261150340354070226453610884820974131147878451496813166742744258801151519857261803484779157763184756221854451591483034334744144225915273537343462328428965687120657199603617868625259403752180261279489313560111263970979029078219689826034571001796318969079379872692820455295212654295018554738207115076969460209207896109770568992341102555921902007273864085529307248714300775923533590078960914812026106258724949867938122710250699463323192054741809160035137781755944460926303445576329814798173337625661706322099865343441318105449080841969618305534394750656755259077521168980421029772711169208912043147645192477613783789783246875992561112810462666599271630491463350783906746905511740322516885204785299669767820997217796952197797344281814833986365754583034998601073696984854212796923820722772442337968464670038293117914170565911174926090791959235886468905763413347335455308034678357011850841059224058064352945092154533161297802507603669845056473760139248950662653233405795806707636065031841674857234363996408038830932962392868119686986536922644134985651691313702897741044504895867381613836698261704842236218499649098123995084443939139918561185478776360453924302408655323758597171989478676994061423447473451780125832747723410105506830855370383906526966193910831098822103953899845034105506562435907745483242457621191267231431435726174955814600191394263363460027497479304123616567833267186786016252121461736357972647412696544843860184958487487349769374057893498067236806587689993368093335495269520573253277711091049341647388119384218096262950541161492881587557783429624774788666186258012707018883815480155769795590864080628380840103152055314311215406121888653224529356668084221431913782382787282341716359984532622804363814059550059804258626767731925743051526277280986858146115459709297039300768494666007022986952467135068827858894329810222003168266330283966029786925793646834749629476502967636687591523951145998062053596226096603216582925482532799524366995335777159584817002641717905177940677209009583599039149558038856787901586846478676138138075164430789583779632987881981070744830620434087631127705055507976370464199923510426708349645065471501982689763542726091386788804788407395738408257331702440530950487408610084318698109287941128945111376063528173232607393740172908665001143097120905195389260857366692506530881554406567560126098893365499924860427958705287891616051085324150272512944351347569432385939100139116331068946652147126864085222303165898228467404011450449776052217589342041675220753983911263495325839048446225729625097604993905852394619096586196692279929556010144124411441941742447181107299654121269803824233866444522914612736209091562893990424164402134559692823773586927235411363399875608017328490683931006154370829101989862829326165469234348869661974934382369857226316181003957777702366182226761519439497739173050334828826769683283002255557557798980884618042415450341676298055957172735928061496284906798246104595498215441826408853530802225165127492795760165061406360579235132459685856606025040375629892580190383046247104335927997907424056611498088391508644160350632120874541767613997205742499357035127445048159797157097843158205679835391512161208031190660146980272931187348793917135072908112831950101359558267371582055745818374202245522685578429413577720719083845172648469322413078922994428928396806701891636199125083104839617420044628623516179080372909963719350049481149850763211921745863365617364906626219303518585459949902833603687930991797334621026727242579496886278896800914546849272253858663981936700209391610066598794038883901381911553763838294473905915055171796828040130528060096240300514590576062581393719083809859968944645269640156421325237090313749915608718287792215111440675853144332820415527106268499230506615367918680038180556255877565399370639704192574922786028678538933568923409907663864954643036518458035556262933250082778010691190718904903938539832941987818257161462974734909663920704964753585566437487999376328047586015722496310783756585632054201535049909565125333272773717524490728428765724694675925707349679776581243808537570066852518025547890830254998722882336954111520398643853548927525227772843549547740741926390841681235399026761041209674605246144439863617073844139261339235056336691036991907374212162366944627995133733560266136426620977124366937294169362517696648391411183279667315314617291506022120319242887576274528559508194047567179611162671605161005740717081804618709439536552476571497813903524287008624616304708225859041231786446421796353637710614927356888748588637602553438554701213253073480544302822395116032756756620395042119791443124873823588595147884316485113191810819631875809683126114403722270938578105877742543683094863764960425774057575905669561574311798673224005060522720142191363869722102361018337287965708560292111876972793831090627250281069907254157170445530127344631102071578731368042640794537912270151068641546458509452402847413655936127578681118935163453833769118351120765347652714041588426915274383067143376671949451401732015196653578077540032361876584391488099547669241389375935529453857727146425305706137501362397547783848778494596806253656001844465715254807697851088877860454066486181444351450257753706494381641941385464669772936375176717858149555318678661641259633784126469255704575092504619828553924266675423135071698153780962589860435649895206105450790056818638956995393173989575115867182552339544567414992647803604042850850612961890543767285876431380590256537661068137732074427692672798752335396802732157457131887718112704410944728664887464331340007462751218757694071012255580470858242388099732473962592184967321281139245279207591726078157789102091296974886895121944720069728328037788098768917317746162733384055769625424375318832002445740264624266589465974344768304832147079635653956542763920911814353938833003266345376905082843878005927758488348319093581882846363717265063184521524134383016231573722094974262615882880326488940166582036826528304910785251391308769810910976764743344011885342443330244798732883263085547002871102220866811110978501958077619783247298678807973412152885143969565095584744451500138107166338792457775379439154441650927511911928136772735403720540500362052743922939160231939119843969885140293117417277640696024233100946993690951741165272807184601964256607219216145571346952869880533428897475410962083107093521469137073261805796059101467367743697315739272929483900358509414092079045712931176239990957546757033473717369426764902647222938449589487684429509322796117969271149476745628357461268896969852032044755723135053617694458184001768700896195987234079594331291705885726615163090008038574276698076916251268306061380142931717392438583389875149808202101084437416318693872931417121089828772266289844600087083642855239063306629783636517241050299135053527605455799926612042825888536941542377657617673152391087186816256017414525424342439243168424101635490466679995086137310531439576652819228996840921015169608226271809526748156180488222020670183654762087616182353956256830460540560013311490549496250901757962393647783815830980864527363129959364435348119150792352913146422692713564639708531924613205678574567676149239664083254178144293878945417701927720633187867736581272923988015951381019568598666514922208623265564193604431731540086799840674012647108457374734332486123929572395539413405512152538357321724275339620307673597463441270822919972525459026157485028833180034142729291146010612278672378211509518038111599943589389532787267284842303486890924562936216301131077356631326649567477991133540073671268327297766856448127806451826439056660179698507709580368178469443007376451137245484293845770158912034808860917615046075980962291627789712563464104999615276716254089424086673497374431475950484216578826582792686764515011125036093734744515415890549732082726077440678168130403601732999122207994389077744778646613186730829098172753267571498943625445861096792834336158488421485911209427774030081211144203442216171704558578710167337988365300903563809475509955332074710400912046195130590477649604401488858729497227628240654447059456168213340080112859043598129467629928301540444588055818260351057910457543368082778673147960798859281416788902583841623644837594314272665602899697441667737517567226706548175536392667756199319700516958715974680432608417664598326354978651239483260150940430479243102695512323375382696962926129472719260693139322447304503792783516714304638494407581222663489861270464653701820983417048877906251443046067560264991895763861363310824434371232932953096227440065866669448080497127160737132178407580635762852594893765541158632425782744751752066519458258416943211449665612003648280013942543585578661163454330647413837803443860500529625452241943457056767720834602105795977249982962276787466801078500539893776094760597432584013211231569649548849952223490901254576171214784296588009488835190688068381469774371929936974259335861620548960286665471599483280218886774128146865606845942746877019307825183372206880422952930695107858649131004728167591756651778161975997338706831291816999014214071909737056792148355397590698016355654401268699830002348268494864869833021921070738233748743452189506990049949489795618634959508555095822721487849641372595668147321803349463584339936839212019894937146134702855573813796732683453010787999921443428183129759934421098278441496334820402069555416300818531297020269597980518866317582422295225063671680209969944640859673900398253456125942100677779333088598485998579295531492054865334715223514641589434772763536799872773950207363428548580434426877841637585020563239542619539263340431220441862265617109591255486371765927702813490671310178853173517428234431048356024949160307625654623520774430888971785315914900569873720387550960057207395473304287776697811543703198566721725506269890078033981784984171242207284532433131426412624057972902693278564271145082623788951222370969906634961124461886718213534884685985087786155500940321574783172397604759012799963532354772863269432796175353396639699640447259129412628740446220870016784498550289532367555851591093956535371841261968691060027944491453235605662870765838516507131516087291479948365095057414387138004854308137564712473501073666430092310701766042016513914864093433902195146526884251529489723538923017612241235494161754232961206438444666138471897626943312058484923507956078832339309738268668379204110451030027690799195979118325682861032485472396499874390151724797132123074537605537908525197836469385890465265956999549168542673648238663825787872976452576667080457666276779428663188062870583996381095171417006342636355275457966760205857088650196270444854574785292712714977560944162056288747417314417056578768262112937081686779698402048461779120757587603348414148371834142607636891388882521033595882581509703832634734949323647640190390246219234662504918744582174539291071254433481046530058417749919472466276462475716510231554363548084936613396503652873505031430086190465949247057926714391682206970669782721669323035147599025706286087639830018176822405975084695317983723521869212129690392820814699557301261630828543124293913056454744416843081661013779844877707869791297122296552855254845502378633966632997538170980151866668372661818488585634195970044816602573211757386745337154198103492080200588203023378655498962862725409279069378279993307665513453239410985097250791437449730879627903177460994566561314305810295762020197053154520707970565819604792625709276329519083506478266853064562191858957960045185090482584571978574846297801709285643408932533132455316796607224180268003490370782374108512038661980366918588871805079674962622545957199284317878347222171732047501138163552694096397409413728191224696467949050642422151764739094217948791489675225119792196473700718614052620395633470129363463416427350147011112193976465036355550579862063314713110057657481147633157171918883621280205482741062501755150439850581770038727441581933080418703377287120486004947895334578146891527767631723424334477410707819569215691909102526068781867483093207669382702538474687098193418840973410297317753694095957254884576040144963513563617093307765644220982896378002193429125572091017440413149245229346354206776025727467111704502614981001152458274020085926556175089844532001694456374480186576611263869396016299334991800031254133348865579000767333250004706520172364393810574297824869285187941678983160486402590510042536985144022077726957501601926041139018809676133486868502136688038419926024990518147610478029700866611152924346173406524640553576264482673103460694323584311343124559543634817227381139623829355374011126187967136469843803479036285317681167270482823969703149970586832233552935153290397077954251026179083512858477994543552897825936197389443236490561685991695974633284928104903126668552926086233111996564663386691929746575983501407108989749193650262711444372911165159629639304247627378561860842214429018388898936820668481210450503319733577429445501082995657015390354743495803979458126155205241426817993271681233883334362623551779035769029317965745863297979251543173275087737022016063805300383059160372041679969405265958931645288442306976590342334570546316919159405297948317274613155206243079442327438568154483877502352420736122049033141655554019980061257647914609373873362559096378874999076697075136266294763100492552146989376205608969796977767704211270676421204970586454780195484984890487469297110385010100734633122187493349665513343261706795405540549666094968427509332900972841572186669434558553889141562824010231983435432859611788967664652422094418115117548676412910733319268501390004884311908045123286559759084400684280207561166259220311782529420533785352750052213161361445878472273663136533265936292222954236519630022618099638317024570483288685471081886034616121739661109688412794646555643424420287513839177554601917735725636541069221358201355693033508194171892272754564359573545186720507727389983075070183760382387113263303531752472032310349084256793979988782689411300544966219718196834339284383220475564359859073882545946707840242911650103670295120667707857388542401159568483762482351729433512278804048325191108155452406596328028367416543282689096349870655019164023716524146854091721415129000441330619484506352733865849548091022412281579787018262631779041913743183285221670220494798632289228572124087579807870292904203694942580497930680143812819147525597585455685806897590611835867853935149093291492655695021402074113952263578292980668356161748870846376716624167296454579745247019799432831074014169175665523904780073261569032226455431404431083487904826037155550035986375094910929281592017571177159165739330827288991311026109755262213954801435912035651404708119392734868830574956987153496857702016995874690799338405259409399124683827804030680385507602387398401254978488303511971507935877910412315388812513647581728305053684579855918816599818580992846581042198663849209722190657344968871308450190983537286642890789839693331276829050941637236058179370640953626929254261810294023393142900961878548608408608558080457057103123341374007134899249324554577851156132953929276240080931738661807659587858449048229193481969885337048316844275822152905870281737828995241173092661060911805522636304889111735413816703684491395594392748538031362573589408918169180593708553183074623901500605125419782333030165204643404791039563534111482275234443339254104431917007509904181896928745443560489358498173310096864529229610092576983396898422566584284945307426576803697880730589014339471891409091642537739653049274763658209797782451787428118282590580416521997080716169034218523329789648427358298815957879080833407352532955549811001757969692703293158855099160206408179757302915416405930943798057091152147838684669580880594003152419418985870393453261193473208914899356470087894600938984326615070391288952529131735625212929886859465141476919838943873724747093281218012569327526758475657101929311529382326639730473904664746181410840463032628315822910007070929215162745557108867527084970440756452675433923143706450207993233658618814285821257960645963217955791504947455336130679106362671324409236551098038027444468514081791947854804402619996202026542795353107717812299199458255914096995474228871683995762772001380796755022770266749075837994029050486712239261186988340755111252352256453222571774620634508889987805252142587180155801847990708020585341816481147520331096577879112488830864554295737631529638033319826254829607515891677893875259415266393557430201397652708890979208327266188021656465793712308923569246129404525609282684736220623820630355487246582047769843910996833399674139675330758832441291049165903702891750189997893165097767231417147639359094867327812889877937334656496088455519808345166760022949855355003507727861941696743986672898381234505495964748529738754959204172960985218362210466263085588437041166734236158545008965029331490075144049188591576516143531655253675909841239391846224585109148256862552421757768546566274440932972578176885835978579437843401576061394808981671603977759818723830620688680900366504640801878905654751574968559100375475602003297287432938070242639194288099248367034324221756288507605717635354639233468973439940470692743030916753541244474492630597083944708378104749057201403338355456510841926826730407974271734255477701890969433015072136215534511996231297166643436897664496106344064443387932900602099496717954141142570783840622047673778831295746204291332731187598510400846996846096539513242916361148466678516783038721364188657477020279152147021728376831437274260934237842177293041537408460846258188447956177582333203855640196044715407252326238472389257837179303151484674793886851087813898398413492608072207402743951252461205426114733912891091205609496211908839286831930715161420027510330990279612678331109019190911097852713601475319486279119168655153294357753080082237226238146690112481935820237312047066201522093915098284382073883478856372578006466134301096327848351431053083113227009787385942076729013789651897166001155509938417901987864251899761919033718508577246723951959870793328993583483281146573501379321167664947003785881801542993446514150365895139366198283290109640930516314571688853087516026172557967079236926973808630192052716027053012223315100565328920779352661042349945533826514345110667847254948175038037104463350092084937935917823168775823062379060131253897570937808136532128325875628715234802130274142310423115256126815652659921145343870770209454825356754450627255090687085649930621385661570693091757216874682913728289662144175028257996395034442942760088403731135199757977069590755087500970721715776271480122276834926668992361490594473723168295780547987321073367497066766105572248217435719785482247247905177222077466975562653652166426309910507405420426988506358528947537971939022087454956353492688946169051010526927498040324680058608514563785581265070851077928008418046533541720390543429296969561820413415184267163705531720329199103671425146419810775737868751221290254702141593786988581349967841030653039150834026101144801593998204717930945226610703152175570278995183834906478736690684551138706264365510146999254606365097363280096668572360705482866999474591103941809234250660689181492362181531369354074063811863817420380665452403247970995915704859103031771672120480434322917964495224885427756011630052780456751084251386931889916831092463774850618545146515124104022441377619604295230699267435006514556035383339684524229111459155974432252848058991370665340144531511657238685673927686162267030894356680575473401588840094996407134712202316990368968379816309012763175565500231808433324633983688583929894777884414154509023736306761671560672393216930844827127579487087724135146558414704694828115538711780495302704765899247391476469116267956073477448104146865311623521396878321750917307397998553304536679815234727277734135760221117712411800760791234467755566508472419315222214896492958232371428055898483241935113065312597309808496671868594095043204449366344542400682573016576465199836189946314986362845059594286847905718290263057734015918601032066003254652443435399387049499638593298469062438991036915664949256283849311869371526941114530119173098007023538318454556998598071919682671074849202142121450008290517553074179050564836068177530506636894848380210240626945442140010607657801616715448713650812944817147775248789700538918111713124219982102906588456772440659719487335093771436264653730893473218430827022686866061547823206248793364542753374589261874142824475077641865735469209163100300446853594150221989459469258988796518139077108691513911235578117665550145758146240737110188930825573560170480442704135304434796666014980955273102033661739247912635809617978905688479082269262564250278953186649901022337995229846247427456901420135631791544074046593855863749713674151164558978623529678669334580353004993310075431973090635197536342898906279361566804838779593742865997470413692555942300489921667259800926333255511913013600687966278500849528054175807046176816862620428374398455496238866727023413265304623483015675250746011739960473567952815999496856231917356380616028873073558155785332565520180095469041503891041019858976434327154454676788850391407058609473134593419188006197472787781479944011740795078033880922298102034663892178003068837344264588547103665400605944609389215088155234498010620673506791403916668464102897578756329322266956098645324411620471792650116801538965596151947196329842806602955925619542003270812990056913960264641623160464724399152199984495587467707467613767069198512378041389974529694346795104309916834972128003016041952085614186340097733540692958113293666384789869059900757403262265807305939619948937764662318910316678154784641711390186310000774427320168082745296747405782336720708662083313668735287894115702708377855923439268399940456228603419952674104485673191370519387989645738060182432078183986870388922585246986109552453403553103139302928028306691440174496225747995115131748207771878656369955152709532747121586586195553522862293622250902764226298597737905896325752951134385491028053637144800606723708489527647628946747339966935903908884606958660236113260799552190279220742963383631979039498122181118447190088823541171315358661493392050458878228080561690645601845985450729186018193453921179778378696107191989812349255625165509139290062786502516570951892294358117365365333501644951067975986107507816850455465619522021213815801984864684770251861295844959671857825018081806465670123094101775884487660655496757944373574932554777867283370516264854854668949643703609552219306662533286253905050498252792941226191647027777322650637840849533389055590949897064978002439217882392957024387879657896731712102547749891336781454866660696724015157049060981956841931270619448964043723721252151402762010590802175190354568110397507973028816194567928015120821014640890981667399034874200551116194317776547797996759228920612846573826146876788424483709402570674327406025942189235307482091780678671121151166368958114198464786652476624789630369795012983139480858350818211350343238501438636422975021932396003370811856364607327109913410773603073562981815358946445255409303706316380164273159218688815670065841457562991582718856743035384381485435154513943426222393760016796069114841071043358058247886338355889809364396737555835928713609595361907528598655834467798675392114707255777532603293132475467804825602457753447971098039187079907824478756683664447480779195231429241679968575635843054335414335798029142104518517688190879286775784645261387616886304744638315771252848924411546912646319136926109079602482914969654540087312730782217469305418791908167880141677867342064130081034872894835923505211180223944779443183575912493639786077416128925034612882084087255116388984732992220329739695747338518238908593509864383938106081570511867975092347491588340319842203414365646629471594066883819913101316035612617307500260632748189425927683903681697371747400524820928531943668050699091399391580981491949858012598422380516242356645005365079005649308027199103453802983275342293500631409988803331912693252772531616831824540318440954560137540136012207435478739197208191838465787763999179614628551906275699756874706616297009161848211020999413983301123809355496180034507398865553295002134193389793276847140369572103288345288563034843910980806795309763361865270761425078722608899282045632275709765987179725104129047616132441328691848872591026826754858539240669206895349879467321507007993567918007904748420493381494629721985590588946703581495238670979568600316310794446496327032982545065307725305087937310261466887726737523826532074283907156967958979680128648867016742492453366157082526894354946743785792029998756616483060399121395703236337655799131873682096377569139551305630756200334109855624462106859076007324811134292048170663880574519976783208303833223877867883312469976543148156963326473037282087229778766545140132419142064229260228907051065953463407733213304634345887468881739823206406842949053902480389219766734391682162609565171655058118816132609478097347447319378646690486041427298264010565282835028558671520548066202105332517477771112634845336543441450762953650301594683314030117561656202837636040127862516222241922795879823573162831409815094248833424552736943407940325611140340143757990934451378002243725096015955716277595168914225555794051410499671199443686443094569201591894757801607037381156102187253012582561150254568792405401123422734646246751314272807736788708417870698719935690305944207894814392504735057122961758259126728827614045465019955915153814702848325208533664517772105838105315543173370332943412552249884373982018415318679990774913043920288228863303695212800049796775242226278211814346972636884928206956857878621663113385061752928383070932780472761361614345108434606432044794087823836519861049059973553102839552984049212540553958186420260070906095480166413030399848240949344354388757005191677459204018741084541931872072764627712457148173518558827755338761487120745885599074981975415268968324613578751843674237800910684659059049412358769141424030494901781797515224257338966596028473489194118257814523358574811230281920455831500088938264264717853829516872898016817295601349861848826779343637406883737724239696346506263334058753430162046460648676323417997032925628469296564325609879610516485245103184869412522905594375362328884333198142300290821660398302636981085668604508883188055796425536343311337299106886767739040742926538139281105608908150617531206127729435935650745546137607372281533884720028615479094031411850196003031349878038326633862274724386093052976469285043099104055090932782896410307296944148082747266794016017531854713069860484617049974170795359869224418880575785377277232906839205233482503382627520825187863547754750055583739414393750638540325382256473414607013540661289162230543417709110771446480574093386813695483888740751025314665284079255539950284650737652604848255435419105317710267038449284914263950111791101552167910158882434939666754842022611868195781104399861923034112099591853392943802969337882360721475648020436363137125792357455729947949050027092561516384979353725013401794799372664095542638050907165676228439609113594602264973896020317400718688059731540544482917340036539497866795074804364246249730909476096906783964967334145680914331920831540247117676896340332464821742294705983424528017235324916090772709539795756809046988125659069140030157048378019727223009299281486135461551410722586601991017233930668711883224429863225208109040218776661791062823377826375419479325356371552097158076231359272217881399253520345967070338964738924562134010755351322059537290249924895104252374776568942391660240266506302285180314349225513234196315552391411461801908017023726038617439095763518825104928995041374571158186924836080845227194417817742449568001410133948164236468893037618274398714131111192127098892742505005004036094413097231747397988457821745195803087210241115088456460327005321998341245301861973588763765429393545625119515658574769313462198761240888305257049703789277921573217639836168464688692821712811611928401547215982816302990833530726320470070759067374229862509394662903021011668514777594806415940114790972487616203026037632412510122372752491991197326273404671420246650131561222894648672836637618432564666705293868649349642624772906588156527661617926751568916326933833254211373837353725798410097961562072008684920414983076906240903358505920526110257391144372988857327444363602018733355835308802673234037875401543754867125104535743594749892220470702007976487251825460982118836559755774687387873379301047284675898722129553848653211288319368196625657782884350648742125306670082163524683186586307701119378959078836243470210618321872560631907295534771464057843585161939683399399477423989302210830737461141928942402199776040870194861369876304153997816629636656992525013354410792082166143773562985350664451555599218787568959936678448875667727449930455025735737266448325802275427087313287715147025432840373155859357155305402018036432034200011701863229535290958495362911587722920787034063967458473615571595387914868915220747895065819862521280967189918616056322731223029179232089851692026670027359765192216515776586586456918542385448366946630140518524647728481370553421384805275683359540445414616146754730246200231645517516145138217159528455579504541105872664965594430942736580497301795710411816816697050404403001145967550765721164075717601119227769284173079595553991091357940345159575992666135313107746379496704639996371797405737539429827359906118123278974219893708633936428561816852920997800560489852931192191925724885236792476816204828235529892010070452710541147070816431877867882878900988692951701690825545209088414524594320008672898250291386416329735383284288971107644036713351130842183190532144068462184948248173366815484770029192810567317341026465341866295363840992198519465896862584484185972005046508759235697266623303216925164456337743575559530268707391971030604923022995215130070521062255629774862139617805565868716562614035674924443932836666975325259631497867376848125719762123765826726055742506986047513694034629453807995814787331519387141075566304637810450164491222699262473342144215581191940321621220147262367559512906769255160227417630112356946746226560906114333606067034157795263663940046768288453557917698280559813276895986116405704123978878887777951712793307322563366268997818227284735218376358601751140020106821224494085964937227468868917403489246473702725601186169200674433411586100716476013449452593913950885245597125499051416197329979528149451538660875027911960238149259468386389923784990259137504640179352171923715791066102476864005535994691906324784743763759759289883070755991191226229081112467212490968425411965456731683779011565298199596560770508115217111752072373808853838559453357038914817862800227836205883111824495416275408668430463874063836135901978574707165741088347564093270729637734236140015563973268806055046219104854754427892970880830124214452502256835100333178811215029280154747670653139112758026686234311001478511949008075761736121534690410149819338618183928436944321639304628032736999074922474165098178328260432456390846156860075412468860974325470696263718172005493655266125233693671550366150416249707336513966612393270688521308804739522892590026448871495216055134189309944567494849632870866839520984865393532313233123832872621050328487149638360157171433662771635856028249080366754728793392299423739707447369736655324624674439825142651854717235640689437548485667492226394392644619124134271743179277025611947358802968106245558988672413373845163531869792286892357494578085897289213134583469721368194723511162558069723907956007125705032542852500898649624347714426263825943586111711174163525309321383407133938760203970564161048712571448974024247867405436453471352569327437820202141194254331650434479423456926558593561163641036982570061584221797542141779690048271313235376952880740384508503913420777851427977245741252475166736348792216102204289826494726083790716066349910009164417633472696693071678410210641416798365553243692094618889706697091847736214485008384247952053527674693694801974575342146592897983245442062627865615764761139882439280629879897003684101311066533087636527758753971319125000011807152445231581898763013180441603345283169872514215554728403081928433045711050665615072577979158210456405480999210005414892709189885535256757941478461322159231582236139250864375877492298763862716774690211795058368146622830885285349444067739964850755983066725990537946103442168290532012686481298259933428892929298267326340119679557250241492423201315087989190075097216710027571819193805760047660789073128274222134380978722876890451661601642065742972529371996515503917262005094108670254735636538663312712379354204640326201094195733970167231341504345242256345264392573822040997642174425775166902841751173582262936396785722609384572713698556541564128440923569021092580647416503487466511954483840536099243737388017027046764371366786737759953926753837805754291003826026757202555284986598172911176107123781664103840631696548855912691477746714950473954462035386633608868750705495252364828027350166908841468385578981891998673183021712752368129513559966155647721220254285451782075547249835951046065790684002203059514335493906040903816341433405019882967006236671166616773073455014210456436143805821951409064953877421552333254272057693329183604527044562747702607952946454012567739071897389524951780544024498636003328756719302257356284441803912948901190453189062617382515608127747424672035285007053908854849201412461812265135627192004297275322790818448617403686873053440240826268786723872660793876260118692721161560930561671048443895552743847077947478617785401901877565344815965714387414737809635888810127770077492329310659114436104804221609399813374487706035536236970445497831133643439619827893941070025190936599025259618676275121577243911780504089833563512296352744013640515822688677643821474713651896461108227115099418134088585568120083869144748010392001174667829821462459910102654350014557524086988574567410804828648818626527208414110338142208771065342479229064678604927120378941318631326954928354009936817835777210619600091469235959868279086336395135280833874965386288211619843072416509141509169970680497410485202085115587184129104840262887362594870497914660175933168478125514201394267831487396243661977402640429190949872420881866827161879719818563147234302778764892397523685431451941209877218130340300704209076775124018422227043614305433655335532774678109281934781045749457088489013635852958294661898540005269826582706771261816670864739824018135973347259360092557298196720978631164152978101945453975278218198501248624834995363183064342800463440671724735009228408088441984497791952063006971461409520872794674819646708649380173803288766399750824485287525773700646218132961431351481914207910146230783545125513618108121553483100867354356470478115305213434392758482342544124141584444410185463323990853063850934160011543963909364323826135844546221134800808213382030067973346774924593290955051826912869561806653021683098338124181788860075309552369887773956055701247365181660459983023654173231252783541441700846095497723189323541339299242427732351990095570234400488996747673511448575613403565268253337471257055818736494682273995276291426465610545902083720159963384524899859719938438790048022223531916645092298458926567453126693580558574368323513802634050118183489801647633443880140696243708764436185557426123573648360244843493531750379762454818368983100191724647510942298524391400994470363680766696835455018951980385199182585815104842637080023554210327773203386921186255804786567813713808005334518838467422240907138107407914140633378244138917674429759174210428814124606276221142905070624918702147858687526656911048806428581224380527731740913597867464783417090877697179461290081264624669332432658505570202174890570085793724770477027156796639437217345732628289240570169785546529064370553153094242138389937176819679137497128241914539092878692292809112857083054081675264911850475610786696111962357866277587431919096965027836730680393525829323074276855235246772283300009842310541376356332192102007104690747019163625318073908732323362934081300077108966061107394462106621526838650441052094550171459272659613576582639897702690745097109578614597678450368373867529789508810536313876754915983639714503221077776460511326093423912858153207919972559610006164363793925517512193121404789409061756836294296359349504890137585356715755725618334591227408506935354840991485644962955747494039405216029887956047423727054486196363554267167307672391420367004228239781367504598946191219656967233244061200050884892676266992861886755851790291205812684703347416686826581676895454651189464506082883156721062235213567010742617704969312048718189793793647346736212844428993981802105384307263508180036338530021092376388700778850596309627914050322980686153847853301518809779664519898498573424581691134179762465173346509587248882605121017527998365402866178904580311419081732563409279177620678703558721171014630004777326426051847156627972375458733575434647482522637639177387564147598679249249265267780152609972722007882298340057425000632159085884170169758272511213614819247543565185635644249488902387447436608376614958652126536300377781140680885740717214342285642119124928084895403642062354077590321293047182340313820834133612411852318060458719658124179972280098669999436264694422820290880048671059219790528975386502062385862421835822187113359355741381439178401933016536596567409295664113209253179580849724410516821927447698404308075988637330348255407446472097378713017856180727315968986822672244414211968966590999624090170624658055148879125500238491328540139043247430820267554566067888444197531063758989085948879056439232250162623113963178921259481185500766053436652355076486399890064546321571216558169944003087371162571998617836095793034064195542116032170182167008399590004149541341052830402889931916785361043287975220983611635892755162349571558862368958392614448513618244821174091633287151245636877701530689134699443987672605489925817437236876684682742930307974782724395929902483060572702748249928224626256302551978666742178463941944575834314105195276256208677955811075994250415704633740620267023126484507590970349542495337601759595083564748525383348628341327909026398648584184300125838066688229166694023597437934420678578113421662411231494432668676995689304891896591640191220806177281918120774046428220306567864592416389317995163059750368168260169381367800198037784914956702907091511531154195231336625291478964906086668087610081512582979946055200976083726558151338837724348245812452163954125658571139910342389788768261155993279456998446105184341463057092361818763742322519508777735853635737454269271318809130085582217846155788762243104876651721565287854183314424720800617442757278204498191648619886168849585880175053957583343677107334719737036114222905904535350996874461400552661262821264787509444319494470174998985972612274556784446861264036781649280832166863515877740504639672441817609499073742669042295189100539412025621631500551181135969270847211207223993170289385226968201643513104906366398492833361843195124837425566949294149975505032008471514798042931055527097734594251739886806180482231833271586013536850527478978905435166737134495239629906549805669538446623480001135252108235811711300886225794525637295959494720228962602949532675976220646569058300134997710142820085553738735436689558274847019394192015094257205877768738220084262922097546597779182452750217227643114801678010201959762897787796030785606573116483472933293453149753601493776524924559218083059289182722508827863197245681297720031703707991987334241916541866282210637431155419992812411763211768681856616596167021083599870109249868304206523378351923591378288633004621543986367889777950019626860232639551694789515766246229489540798721221029123031324134760375368791314712584777425215179606493329531075607563916054836721496388606701470309102097295683081636987716773515252730932667274409840275057843628417007222843721769732584136917089897507172475177216541677725438787607573785143430953232308299309751869112835219203924272965346909875562575947526780398913815699610750226170305565299617060364375440786272412237699110432441714864052086235371411413358064146714768497348757875358255387559802919172679317978575907834674893297023948363048054801756204937843185324265478775815502370149934729017308618167964660012576097259984418410704965347531016479289627876603925612772638389955847553204344909260663138571647858380735758300215070842566536195860920481938760065764380690050902160009291575842228241600885369235346051750531403556315582023656017104382605429661580332628958811706173921065534759886713689595255324111143869516565406278928538219874339618980041049654982001403278593107283537790464488182462960500894740893254244560926431364576874468460102582294320862769526035293636641226836039590174228724796696398269294470625766376024205229012160913950304323107547007448791222551532102367384619685984305711004890489528275026137144182330590404887002025513643363025733124841019400773806515458790546624970503572734886987331293719377288316707306592418460031460464568283452351065725204726903207745696734570625368851439006052650026261515201475264282098898181075428440890505178846632550207633776864421300401844408213449407293414902527056514525472246286176359435543984899435313353441402158498409131549710591948048409286590543716936217386296488885262956394938989733484147950416791005664739951188036685671880906355031933065947809627817892447124502634314949883991137542913506032784118188056529797454218419226615976753726448760214999190796671258224431313584712445291387511627546089761266890721819583043433833875744551781655213122739050728203670044099747030547917200425192995120307607286510337286212138822036970974300829758526930719325676728406970233572084000101214519066555764021182656868865610304905894056385280679163671700414717784194578423813082675086871725975614146362338979044549949744075881318928346923869037826932028120316507909883256726819294658058481793767505807639059836201240795846802204073876393455299172663781534125969216158961705943179627536428696437849963490764231713246358290539957009635817957519789592700587636749907426165822710241812526757854964149351740069306725157830698450403251785910119916770703835796027118635418151122642880970529490393083189498349902747749115851336224034313178486114056268857739460860628464094785630014448048819453924254232812877810792965628604950191790429748709632020297973929153333631095395257288696679534104524672080814606359014121903430382013338798001772126401904339162081807877731384497173558727537305685110482428283519945611535686912299319899724104349906634471775307226909689505116506842918119523199797211614099386408057685675999399122536248255101851830455794245476308629116529628014768706568544694014842598284535618691514325417327128905852545411386147327633862322972449373040299251843277539526992044834595755946354234454579788610151631765092872183963732058314441259582710059503353864352176236362270553943207251372716367876888607585580862333178162495885702601693164474071809356068833435914278080857107374967697783241071554385738414499826399295637907100815619992796747619437032369065274893578169528931609370618010525846592598415027785777858290881209720021445526055815449304106179810753809921038760723443974093531164026173258349142291411549434345280565240055918743040484101147280454466931668980352500190655938099175612953487581579220950305624443720789025490018560906935633019045258714493620222928824503097646709677186412982703053513027126112145720977625209312190006080257416215166698351893843150937390331576461299786432680662995754373462025944786652870646245541051865008148095704836371351239708203272338749722834204107419658686662854413936090376283119535529499958335451995051083920171968838952585011550435467859473503872417049174065018156458736779508791310584653782336247193793023194230134432290685930512851025445559250758600066178166798812756261476407937116070145504201162820477544841039680327039747608569297624656590373599634924978288038915192133382897794742890631288894176726515509113222442474630515619610880088434608007815826630195368846743693680857821376765688546232883781383877801966661579112356708767692526664965822329704293005412339091996423347276418495749830424982122468293576774229302619176807803607728344824496235087398472287828745367586685745333531601065539812825163777646600812121513408463357409718298228294718127322611632679322138001683691086357519350190672041296105661180953868201064787094631118406331925212309779271549843152331994585264876305354773203827784542133778662680445420404323103844149380684350004181295713132269922358706647843593719079280837922442516959780728404303957535413425545191985742697813301766318022906832759379721691215844297369944590419394476817577083766009094486022215702033772968531906302476263832505982429881002015077519844363995073074429792387777639361071836650840672507473858387030443857053507617270663051961647804843173802541903143747069599590433672979678860257008145734314225507212484164866224025091605302220640095659844291181823465755209347014688440161973287241663609041686753200842906041064089543125028089006142759094129909034325629931032602453200964929034752268906845893492764556809126878145607942130309105123517650218744742317669428501186068659593442204108555442859410293622394490640516368700910294564578990795780095903324063115685189448192756104320626584219953393046710544255696237233030243988379123215252393221111921509498901715152849494005486634577085638087361659476360876466834384062473229891532739298663780086629801037139997403477586927134632742502889265764555118971926501332518679541264281819468361107351946318008232406307307012602412779892607879298691203384254464640396997796920402517559449331961786202577442441927416684810613080633955648633680127272839773475283515552628716479083965304100701064187884038140601433540893948985341950330421877595779973557827457756854182281380565080028372044065923686005032880955715735645204608138211772829305621399585011386621899380679783383264450682509966657393455150348052520647669768861394655510504603987475470163612939645095658412587189812720460678467443672257963898305732418893889725079799569014412422715288774640344452776683865545291893640471305501144639178184455691102702739360885765875580185737251054458347525102967973523179896471181765626827151128869840850050007494170120928266259285616093416295858612464352945603311567589381143121032322358096728152527563347348701259315854260066542259275964571211483499428094573119143534175536700694955442750119899142336297336926294266285294930979139980801781828908291657706820092881808573922751285608140441519771846019577462285393558745197492636248429997060292864350667460420238657358663521292744005870235744022860923799137957125033260039277202940746028349038637333480611472122676753363414094926919354706404633765417026924508352036495953296612988863058191389482688807708306750194836586742657799939383812281074155872990010870591118144799373344559056685378571509056178736480253532140698752064235495173590625464459745323922170802519996145028621800851515649080111667051399277549604974263738902408533444542532169542674363723352828038244587760960006649160127902347489597827859219645894008938625943789451168645339505785057515425236267435123644428302628472516669965472820842010550263632182430568647494274774193467883032301477867644603004186148485402349733420749464658663828924789058489297506523601083477392245467293870012575153308988269687556771332811402752988699523087852536272516100206526384564041840372907656620524314381390865236005418034137998771575379309278013014158234240112142990212976614885774895986499115682775230001246396881530905731174888831320844667950452419373814676029395742261179125429760686320841928743853113561368962377619356932251735553372822470935722494435361137477946285130552222351759244662730261180965973972605301613648180111127182466991694520990061352933072184733288973061005520370634244180782987955791339582508571144629206413183808151219659420719898489901167162066903241047832760341900306065682859422189706634712841506781436889285366518800869904967993710308852473851629477342897304045365107313088305702697911316586097279656719393377229471317346592558545968368871384356751285464076110755501400949703197812940845295289290394697530816542156229691606696503828223315622912060175186655306969035364133227157677792814866519897188276198753033259243923062141702051652305902783200401537351085130122589444682893212199600692209763810316175570315544120594645779036741707762903023054787286349970293903746158486178605041136571198182173311867311590239151552593896853661036207886180811037593964368057837631014267770024399223718345903714394459851776814417274297273223624198962690124724219483168740584705453653607892180787115305200179258998477147157922542188197071315390492886659034923587403927343479740950346824460768773147330308043486166240045440728384789100541645315870663240495231701518836349215984554429735872785451999145522377312076130054653821385467025330964509364411790006954956922899615745162436110930554069600492333963602260434563843761904908745810076139552284814430324156390538372353462589197368505950190753114845728419773595915371081423357448619099475254508142527791117867778233021605490654543880000212982146645966050187322952662829281976196392928451772685678179701273145287843856211003803112923846032527016439156700393781921018148092640695641216712745025600844310699107792277538292750686688023007182580112809067944898102150429854523602284009595472033864855835073233118156508727803913193683939427977208446391943422595145974472268811119246493894237382154670225423231664122037918473487042571255729535424452430524827574769123383837559809200810798799221009902377435367168259064433725012831763588737569021793777732495194090155226287819156369815169165002599947420163146983766139529148062766013620070425855274157069529449819350176598107439746806827842485760454290061612554566806735927197872502659043825179450244802109051515644761847222433201315950531933523463323707270458299980062132094340793267198731680085513732965831401620879953310357990302255064826182508669171694230611974857111629372252622885220856057747823614429492491317806634785108861032299523967838754349489224417059764334403564284305958162810946071308807703162324777784954254752041915976003844390137899420518792369366091106899155523302752649558719170218611512947361178131570056697585036576864609817859111849737118526141543476613326228994017179177506709849428879972848402909871483913913237858907774774682183000639251315708466033229272269413102082783789665803247910824477497345300797915894873304442162972195080101486604645799840678179121173566139375737407119886703962054851023605779202302956096733340153525243426848758774641248024680432340037325515804026568731323594963742042387315112378211351973506568544948156508900748658382166614708803480491195768065398530967990361617977699177630848981095111144337391348352804323842060292803492183472582149944466461542216142256125850994447019860673404464565606685901219229576408230003745805607804985588043141911531523189631664169612062992142686729461983847330908439621672762009916668273882846807970041377107540531023959418899948182902234436315345337623599180464891512999500925185935881683862092129133878020068138978137250208513232308557986058700313946219192841017962972174885871041946575209321491522611997367271406235852737467760697792775036130710025354411770532960613003402365930009974344493202821149458966155048134660664229971481466951655770516478319005089232907718813844808444571195944857799385545639359394771849887766564660146873049759688585809873395815501687876956078560807057916919189977910925314591393937732954665812116684189161047323143294096443362515059373275367865140904149229618016376741437249748012694625084423463018403704982303791051712282870620525707794381706500234246172742033027328540082762349872389036389776379435711514380915104099219203724119343201392981050406101698695127152069993246762299678782938425733733465424069873565673038765823421120737090957477473285072497984811182617417206219083211818634532535621399453547447375895573359292905245211798972553297703588972985897507868070985856891541002284303078609171879516332989270941294297729464686611433258736425880012654836696846330089737667396293814152283964812027932262406237552748529630925180532158443233732832313057610097648222646075504844733886796013940235720516826910970841695143598751247137729463314211163327715674668014478683900941443793488419126363751822241202717527963141981006753221849575530815476853460567662185224468212121097699011490836976806119236295841490516392882262182291366855916583947615941164811975356805328548007982115718647700527482421644274171400058603181983531135131626826864018457650639089536634565223361180101002191205555908427133286882509199478864795023391784702896148602778180232901797466179892803826688872012352402283926294835756864940090676264881395513999067561570105669880559680935149097449206547401476533227310561698227444369802014969170372414651608058351512300293914068315888376988071632557526316985645788637290058753073393399976942657498268320340134537668079680832120014643294084041113303415584756626607878888236322103175993397835922450933529433475750405299293896326403404885663522645980223437433581083581296180931384039888648356256934669439805739980217801199762874167640891726984749733839972889368075648971564717034265821728669133885576594059272739846051029008011167272620390927885931573375027803591712738764113277653170649173980415680530662822960928159406351933446399070412236758352566670844561123786171292867160122186870435107031868250340391274619444570992628574714391496007027181958703440989112898179536548926311415881017518070295261512416133398512044089652501736399928628995958151881854668989255897422075674904600148032960065391048901709619391721137215605191444361083200106959917060411398790617230332480609125639946971252764181043784648087311597269093472429378520459490869893050868652859054167797581740031679711103788985985976136955328752584684498719569038894227928179993993543367601365985805337272641610829998300286512706673895946068576437002232474992733521710770802921222420298385625794660347713734766362573185128160051802332239748439076522958015996700782859735218309087406318994874882418453772288019682506507640315305924710695445337444945946036872331668914799800654873035012790789470268014667990950509623161600680281017032243870424721541632203084811192556745760808755713625195729828149196837818500318282544760700715894654757477426932416722045109458664831333700243877919814590202518349941684177832393823590027544771659556678429477573726530097134781244202439494361705661132616300949135394898358031096444163454621697669759479012976355818468489375850879238649569974076180971413228076574108705981380546756030956238447310354257865190137967934101777700124629177485019848013468773743165805213579860255810046835672284199467979326644597893685877569655536195561484700958777110726626708715342465038210109458737170207639192390691343563701966223818552235553284561882334789883185709313777615647564965051881971240177118141806624401598541064881766530606225197846191226584900659089542323745030280436551998231572564373780268042521386949571071252317461709153779452494123842941436005918924684182010669107296787829121157767427239351138502230581484504803659057911852935082750452068963195236972589054246480582425574167402133889803275574846092054900398758368269039327983974776462568925968628356053954676915537976835386333918249436208917628365531778473105479443942392553161937062047322538488503164452453496239840964191187862893994675782624663417982724493093310277176900570127023976321324388277124625332654087532132126162983296111297419048730617742038270278675725134195775830133898411202532207390459549310814530868724391816871094598853704100501627177241967820761857537488974566760763741796420086874474407691149294925156132632761469733690158899354393117163205839314948876858938945909026627532313477582146588438503492490384070851523115281009690294311351568100258169487574017285949910443351501566464062443051007393056411294433415855170207438144802479531827924934372884860831677686552755638103610481998116284244874390580617187005745776399552543236270538605220967426369894383703752390946873925326468324486106467720547627014995945211439090746418626419117327409250371703743515634270287701336133563699694302241647105612138221975804932241101052470266201939037284945360322601046326695802670623892037493457721529837468836173796504893231361774036869320076408880979278450535533873816245892047423382101354693463608914532882980004081682732227765912663305156844607871155157496339734378860881990195627189433255836004548449812378093258337840653303035674449216667446502958572557107033693315740446678559704911603140984965270203610332278382561634176261696054951813314323205715806698409447578873574260105710863028857010167453208390896692643141407383241654751058029039053658138192551903625628329408452444176252587783314028215348309931567727486257501466344701914808502023665475447671312550763816670316408562923043337107504524795595069199612899017530753438100722794352441616497801777145804294768263513639563759409290266211790695466990573202162612050857505723822094134156713308715472310056754865934928442021135247780614305137937679134813816622009035253518917627125045252184740123026141724268543611121214994874967953084379607560341822690289331990257631375588643242241439907196487842789758065474698221685707824281499092518425594762199900483067939372108495678213664291938376013706306908945229235895476833422986284645859266866745613659087437932048756725000525595210299510102734487699985281138645290779104509242869058837390586086993225511583726759225058818095317255250587940432324644755536354844865455804767251351599553527876033684151772962203954152826738221599326475043469275102892504922518111219254922608030276398252069433127493783841995275185842835861627909365094126818727609485668974788434356948669743327077824608098546602227762587333959889208287191473717144970352378402860111636606619338980798115824743057793156135579302299630390250344532607493884223721697952784272967684264125008712138962765577965277149259859999693258894952020292500446385810878211116097675981791509818943061261022249573465138431182496747412537323221727940895867142513678107508297760427585269807547450261095434343185670120631236409268046910143886684949552480035751842771122506521770092581156827759814666671864206029096033617558810515143285120777335698652636141296286733292085609762529508267959363315442315876134429014321028630523394825196109443264886588169588507768600907677636932398562985840179544245965498859007682364176276191972507316916505946402311136625042132533119734570532318864232589989425722830541190809242978722215495564856730304632791868224269622103182234009554122858174878509372684898560535226006439368924592147139282734246016159619969625426303791836196737940984504804581648082645410095324045979381265085773432758559191464536458069337171790612462396673831879829033608087815359613815482774550459377762637634647858468195711585944440692145238207650611168232495202891382621979446506573881859800545303391209138560606459350422026162509752855136339565006516579298704570500883606396371862574795752267767451965507578453438706925787717119088525298958361769190850618708602760505878230199118263758928120679380234870752499415996640237104571526295697938094683456197339932754614446421424757051934251573734331008376650970144981474876979497818701091861081133492500320955140135747608013622970829217226150679718905832283617755386052928980619863299303841415540533733356368862106383711940297277882394746909503543740349176873321397964577110137270169825876754455201908638286169873263288641659089441768446109789817867455661029739521652233751795214054640544462830607077278708220558757613987018741451220340673428419396664962160366195937115853267374370529629989474092775179540376950841335953502818846829995780035023861306189309032737368699842457434404687456383197763924642204141627421040618454913303455937039577597504400968251139207053135866918459582744138749202468806220571883605876291748860730166609456169715355972847011245421886608753498546802910364351821470937745307194130395974435156523172839056032879704239298963528248487599334567213698810935449215729168619953612360255230878780192552895181663109770961691641952335995184181039142675537370425441059508295409148124435233361325651150640001261209606567646876798899925312954172227508616663929733943533356417076545873029108519730923901438635534643341044930067591217336316521076189110711874443941195935796499521249628424699926789088233367821049405927049433641005351060150176358386078994753895924376671001055928149574396621328896319860505547757486399937029199872275228683531022899689683426774499485202207452497148479565126941677272120602631227945667173534232473567376709741599945414609432930327355639464006226704882774474671806227534212298347431942233495472865574010245151671355616892542660678151453996786532985714748658269196243844198328765221669979418336884131557906776702267510021558711865248050317902185116564152188799163263793772856508718221731066373651965989149443180860519272254685624816006843479585445885136237351845708454708344411634637580426202321074043671151992205509275907640707348787197977188450021016528544167299183765347731659942935654248000197093922752876128095849173440978224330714482490526141238592664825982750165484359072689297522175282600669734793367327652644014198429477080475897157593481482180527273215641110487379026570569172791796705173290126717777215905926559789119577620161059923907774613710995775114289946877323161665882987251074918827544583432986304554240630361291472703539244452631362636698101781644046611143600051831213259207135761503232868458544496037190408638545358189930923702715350725200550598836166457189003791059737158479597898990521175751284286363831228202640986244378311484214280826786305978646882608715205572544564447129240520777405349458716258972303317580311593111431581666252391882751784138513546418306060206259740626924338620980084360067236313505945835967430259020248465012140110452830522013361128102774645750712601011373229301101541884617774006769124188400149684093310003165245817919691176988589534524423299585769472588544038203969918335153664362994432770834341690284330796692939282135024370421636624985159817522280690331474158826952946843452589823120179663263943531274404588472949839622718804146002327663102838962838529857808915976634739529760525682183096583127202442535239645924234690248390064893608832891300170760887996089731242971346806939502235837913922286595508472825992464730146437141914130340786522186000213686470116477966309111454848489567861534634533616880187016205863648202443433696244158097780818501259780167215214568107855766659850122010883543169808264152664837042993670334692611491823920249518492838766304490872219297510833166101014954625270149706354195655172338481513269539894261327106950484920022456236828471972069929893536343691742835579503127470751359043913417587609611441714787482856022016932380763984051168894034158724370328467031053954753211316493048825187118765723756192365946243523677535284497643082605064720249354208848091286022936066257940836194886856479352906788328047687858091031161071795457452427455667861980500163795585245556209323069836142456887618616249410294371298740812115196629706813707540194135896893385097722792510052213555798085592561535994278191314920391268699384572948461320756331523231427361052823687126791623946481419289276353670861251049351063757331835868132378656697886458325025980168318104962611646853691618172851513991314134846888237394395345902801031538149930072471064020834030420327876731212911182642664719086207942550190910759823608214178359664592755398916173125968784036724479138025096309941038943884053967728302834697873917566243250454120784796788845891370252993134343920987269114517279693704041627594862699692185607157054375182693687133943933045723119539405264815884926697244911186967293258556378608457885421200153567541696047190723521933109031695219093678732630501354239772827380321986604249927066360486211923946505721141370301875555135688705883802703640038913493214611367598002279728083816958307684162184070139092859770398878938072701200597188125755166253566704190053357883401855667220034925937859579002246201881832795136058597464106871768217774819414236260371070823531860014324512605527442411124662703241436607784541647821622821787590017343916730526382966215490598617368430392282761834878070440981063875811667785708772448509548155038177652882692571907226476155967168105127899152216762847158032805994023717263413380748770241940267881501198257325458287805959271650749279563418205439300575993710403597561280788024477268894171228687352995727900613487822278054661603321540502371203523242512562662309209977689498555719612228532149579975843661307118206693187498532044935141658335748292483498549048264860113501664051703911400976946559506013143161914951044645279171711478222651291688447233682328081989287325655047075151124422431625173028174493585931696742135401122412652737214905875604034237733851455619418929847542161869860447404199310676898243090670153946794180529120716232640604189192209790860473753070810508143830654920968562559900456526107270807009465102924754279100614987109545759980113268153169408013781722589115643857030434651128760477554449704532966557407039729219790428115036165794975474324692358886215199546955184167436898363451799264675439917431807669429573688637784590585874783002062205702175972765534261184532806160131552285893551047734994022840745858796826755876449392604100411473997768842887394824115448858549707728786539932674593953933086495739394880280137967904311849950252203910832514713657508372669978766008291199974775568229103571656201131047451040864907345946831024224785106457482136341025732478035527245803505467473807362266730004625049009610292977209275209901651717420163671459591192167733723821878048237116334631172663577885583775102061083640143801366699597805473776627961577094767839175625141666761321024445795451160695589595211525245305101769833080666130985548337392102187152188428200584438727995871716709123433239489029980955261504998301023530443390285522536106003462388732594496223152567003489713773605675820859638220606426530105897537658955700655584638085274969751026132668908642947077015668939395048651593254253273781602133147834771015524376017559226910801634967683783775527991653838572504077920232313394249086783350523769222952931736187561631962608151136749978274342644585579829720753983793896897571636754936822878230649487035846009174737333997131599215229444542253357640232362232935248384282902584325179736063961236813394459998974763051784735628954678760191436900770343659492252997931786165250855835219110049451651396684939486091333569348756702407746489887304308835741252886254110770330726977380872905095052423538954012583986168366624426330966291678975193524342102707483647054342099388801059262435430695686571300959144249273550983870768959613047226719784468224780510857658460759179912223809407730390426547528878389796948139257144890905600492474017176503949345093733406869296900986941691494193652677409407580394233935358328237259484582179618734411468368057751340207721579535726707523846503329481807287264001172585884205240092043306294091295604853697301933390119146325611581436396278109050113932539699837944111997870426620322932105634774007684175596751492331941707368802584871193883831151916933284702728884097513718060271858661244104031067076040848507546632741820710904338452485447944194430896620154405485380096275623197299750456491876691905200824334948729906703947866982388129804060573727617614935138795167604122553264699867562605656242312738466284895794836541026114334055482527014877284506351303613978255874004546945611400305552546486391452325445226955412135500119710328299258599083853123845452535245395462179934514968406988644646983765834363047445217684731551453643917776842650148638411130754514100074009382699082853937906597987967029487386359150353112152664526314497818611258170059143515791218088424870390838101251856718726490241064017737205739081700791032751348908629129117252884411916150542469661336150445016851002784209111380936710971696189673132367919602391033559086193552219090179763026981498694959148011751604747274685657178187263144465987260667499854349535297493666632049748511685211188950774219022556151964669994540757478521163338257225502692628961617748343344943795617696592544613645832269009219320275047733802460311411806042569144535238623473208585500033733948442532043535360919414812713634322421695682521538363177705333535898814465991953127286293378780992276670168777874913764686349054642173328240871632850236262124921036626438580456775388480091682490699331195957709595771536227742495690514938609026286035675696945800115339074872060332212824122611804856429264459602071432829932468948775860678651427463280075921674181802493550960559094104030099189364484023044811351945385822541846497131713842587451148011139550992117317642048026551850067341737901451902143702444918609294260856658908824336357415131734740785905340459805503493473248612300116353329312377912870320633357806527420701495555044981638700842725883233121661086378779305585378770740739333874350130986452331947455839939426435535008788768364112405450359046356432453784540668149238398229206617392220115652563623273796821087025365506873250675619011375588058115968221984059704892391040555333078879648455223587453695312590241139991394250355432005521904147563655440805165736042174794146922135926899658676939198600946514482044411790837729815447241855057235416874006164965741487090865033377639117853454074637761153067019814505736897402013201857312317726246435996178500978383881753980178509192387277441221123788187712627178327705934623191711015043942935339397782175665183284495372205730006968106277554730249792105605439100677153286732084762405653272756145792283976294782253133504144148869677064562283616702482579581091099709863296040224069390780089256684662154357589595781213178583776819455455897200590547030979159519749823119959534248580881765337925923225424826900053272440850012221390748165499454013703253924693890654992376860445668756551421295132176240804620894996866601433069919867065803526715680594076436424887038413478747525568721367520878793314805767653280858794019194009891624911180465350735237994612235704118707106515014845499369769999482002194285098520138220588496443875906716385861231645403644588450472435315376213334633450414201152674527903555539467148330377756087554529078696239537692919559023666142064687975721308581305387794464282421533133758010036483520413011967252330997008750428892821195091010209643116337791877973467092926801728801552827250200235238323041296861613277886689445086751639454507331068226210228345065190662867374951234995435815650539118836025361110248790723233222477207727203928517758202169313587975770802222365284746641677648217327249601432550686860117799611623173470355334276441245632091035299334510271895280572180806268648804213522257125267076437749130917634985161491209030100001703671219888742325962725294354170437310305249318064899965077351219499290447317467359605868165303366609099465147446659833561364001336372902996593546948069310761683236689661893483943383645653444553852116595557349413805733673902782508925296904053232076576711405128169754186349541734169133340429760052542974377785384874249393546516921917431641738439559027591730787408812034056471178972773030856088695288125877159569545332186246108301114289803344879082123019002911103719325638358800434923154377711006420200091629564053077326563171530552742267588612952245532205129826826499744919445841947526894634241376052720825691712194908283634544916365785939248342690163367812422285399079994985834991785202448799220440702963330512199157569560540273552430249838603065461309591523582779639058995966548591867099482449388722658910673463980456523303269024527373159654581906390716950467156960692125763154144828231092788558462032670085021065544285454813391541066073693454405840281004928941135401143667598862559186586721354666856012616625383524345889458876898205932067368048987635302736506060067878523844789148219222312094444873253931203083187399965126281794609890930664203771216671186935432105146498598141678500998024694318703749078951744500759826095444874734705716906096606581496995254295222352694632433156248443345879000043753693049643843723406204242829526494559400956234535058340125217184080241944887804936393401212257041726940170345614111995568273663168397818091525309632222956005192098835731253579179649469384335427118243209457797279496000102852102537960340773857270054587568954056547716526330469321836088676188965047590290478576801618067279208008378270512236761743501371708169322546050666695341414253365750067384685024298792785611227347834431084484925258757523094616036911530012648686207489604079415948916933765617366031376478662461318881830466012410532316107376206804649833958458835082011056428647728565051719125113432448598480964343146403642024698301271620022368517172703728488563472532287510375752934261441591339611593969563592206966542199825035891785704488360638583811329265298051104898464027156680899510247039747826043033412918799153614092276488582534857129147391844510598286709742101747746819595706096348533692543507559420515387210657653474534511498851975784939934162884693317719918876566047111636625475395380415809586597930159532046778172710603681642354594963892628523246842686468503373267693435494379865941542696778926150998913114974043472416730074357138680819941377189769239305781370146755083874517809870944629863878519123580576200390857535957238559326999859149009683584852921780009478014052203062601408055883050430138210542760320615107990845751201324017635574092867231069132198452084661056032737934093520650652891113151895000455826213825428901614714202074703600638215799497454434650335465677500263967683184649210113553174937317738472916159860290911866962908264735849049808437092331647922331628790367715893348756755729209475634666809971009157640224272751355122845481882975364132144276339102517107990373917401011986424342309485033856558466255151631078044134709035997509214768594083467033051545211259123213105848965536717305829071702652511416215477228056589909741894783460860259211460319493172740524034544699173139853459982840927004105912659860451134345953574870590888496540705047681547099042586986352864448648637704610331719168474178726245821577674338507493265493102290006544678495903942874474236730330622446607262900988532310088108544392205780234467236506477654194043205778987113240730227408957586170365127001726686333534702324933264396817520651912478016258646721884375788518231965973949633335973591428349577095204009775302293177759373443128491751943029130672104136449543573023813283371713127017384514366463693642710338645139023330148439402437762693339129721458345864408977082599127006639281730548792551565303842899846600531868365372263136036348448656068105653664202734049323128486615768346793544667364007209508829783363587507437058327082149734554885253739127742921735372412837267975255519494372884082505582601797236977444049243195377406472406659764631921491902774989039067335357255984098602840681922464019500177173643529742755415143804085205364192270146872257952323079695649078162434532908467667720535552124927250189062302974340932841713234204187395074161699310961237764706617335224834011775828635901144773275956805783855750001090819321358551179858289197316178244455217574560822496208590347582088451109795889497268408619968857056450021253009006394372213694056999128414543718736753979606626386479602837954716635811034970782833872056476702175237331149061800241250480840343343315671940795156673370845583209338197610960015316396200594712821070619273297739241123598419288205893365746630192172133724470553875568926852416775134919005034159422705432129837178926007946773749815454926314539395928005964952784707292211735592287540383471170077845968500492373886923219339014692731981852440891446071450778081235902185225578911447885650323200249329487136109969015279846725296304110336927661986685144500230307877267505218198749905203083797929537065471444393642098032306202578120106700860478167841394813155963944171100199322953866541693299415776123500895565821713292643078947621207439400217389180206526160920627465267000688497887590758125515089475217903827301942671811709173284460761193418512866054046446543162839465158629494065008426506926899967817705735270531459252075419255939384112176215479915392340588928683696886147237558616681183927497879202867379460462797528106625759546374659189633543667283119980914616067614671361512081968604333075838374082045136406087714794086045895663804996071140055462392454980798619248292401517405858618867359927435328672164827907780037259669529529245127938140590725968391299890590484490004132547236434544793669792788734025308562923760472975176286609991869909194727889107830110387670814239068843292067952011689639114556717797310802883470772723299198944434581638091077640631078186037277238820811858586852486983718080089021992694684193465883228068600745822247968223007891207093079703310805036651597834088834309770261099902872908009441146644549843634498154005341090938125978201453252961715810052990846284301582877387849812901110002333931076962400800040952513047380682643647604088162512412055398583442906953567692479737740306107754895219827947762225097521600533757063315993997427640506731189188074206967699042225880890658303853279834444571811056683701800002453860565535981014140876188232428483796182470261264591978547669465034030944328311093220850184804253875095799760862807798110092983609026892241033839847155511338600411248640218963001617680208277500057310282251244585919496744411524613434939425114429888894189225457520319165309473691892055403260523521559496297967929521709556136009360535936304808772524440524483410182093677099454849540364213738226415109837515780344701166179420822583921517380568317547460098683156144739642373855688198421241920390854736888409447622325843975719393317590997037189608964186452079771199935704277587670460835996722758234497300421549031659505700197455167219463501427636864171593738735509281146042592774482429264644895339044473758623103183834331601863042196663257176856797976044309550353890555677264348363162009310367553563541219782324833179754143220438983661652867014087887367719967292036175859892083031110625632338467367299902922661700888585848575472378052525368695815249413587634209150475262632302701956864580066292945334048923585302229138007074318118904089579490716023488994065755711672835740141334323633712544183180156988899933941443819663241499374761956629256941438296818232386428091393720493207779355450772854095570134593305468391181751455421059956778761118108517327760277463115234787395763238243100066112883862103722698184572469702419379769261144791374654363498734774423699972842692212208608875002950711139628146105242265451330426642751993232707566524495941859788095315364588675668117459318396204807539932890926943282924333106923696932389895428709567510444794818279026649421775246182343978821830870359640537365387716428292654236766960703857035636452568069956661879558860428651820568378354375128341691805528033568474688238108142993399312384401696683489043591641841902191195722457757691923829121562024558505405843756864004990433134953328297852450482652553959573324951635277758495961930145059986441511730577602117726836653141454342588752595718831086015041279443836353491278422515480980898760588406949651039645175027169790456743869605653291901102165164737992722744320153487332513687472973644297800182774584055722142323995139277941549332830411062966111900809024821285509733294029178831331781152362511393564227879482443790868823631880982405922398079479827428206614958402284680115625094042728829891446371358388132408518886433221967522174102772328288273732685723264043763166008547668068770238696554489160134530042903370360212330066954136654579423984499338921400714712002987555931580492321839953239040515292751208773311208120119255634999495792382344466804747313137214758406576362018182775194890102333301652614439422359196428894492390573960936633283651217443564983702573632687236227329076491387360162670852119846715463105959242396845974351970929518301389065023274871213935162818163109573939659221251122224177840019995018564558592978662343862116254659537709431195808179222088814882032771269225152026395371259226887618916466015161564680570851115092531027082313461179458113984448122591329110488884093141403442743279510597852924546110216020120774039122553091016215643724281006458738745615421380204009817251200054009838045792432077454836567430980572995938759900294966851496548008254114106726458631531157460219187889912045987439798526285042221762281077624580121547026303846053198337069547658061410298642231622510541350303379670853123432005474776787629850509840856121309047481565540203023626426718734335119784522482209604029484406947167740790966851505881698552603967863862051032733721662311173166688181373900388930643154860322507955670562137085225713251740497501844475595359535649159455415983337006462018713218996179310799603155658345716815698548099608646292971696728859819191540093100275883948785620231129602919173318725661860601278559203471967399851598571878093623898363126844505215722327962435663155724512411417994495971491699140566144196229524809610023683549243938086809324012846032926902853970752890309137213290681473395425577506437417394151769979860283023003706583364045534422832594180200724015737691259883575164147332320113158128178839434015338560483902042284350660415537700204472350314634048189483357249179203485366415178948336922654274755332082206101257012664219376712791295018306193600993469127495510782613701014817544923302829912206732060761515875993166500114649272187723413949618400371305679991020882115244202520882549559784343810142808118600398334882864606576646656348898285814026122543845701389382912000714895867166312824760428968523711664425899021612850059450344004693900317223788103407856843348684172100861804992575361622671046228179163055169224696446343167150639270904085297333523720284884014332817691524307454213673186218797203217587011035632382341052424711433805785836142960566213300120390051025840494561516963163443951967136343247422551185923615194671977816655638313303987737785998540120141909377831913988327635065914754141895209685421492407146837450533525793860776262788040674737748641564432503180896525518606038510262071387206557541934910487918601236927339200498291501914427172314522008255865288113385990720028512145745837543097443804453808919829061650119775885419908127765081232677470691465998010512376317484677183433691403465305607475399338664400763796554649912847140340541076063156960859846384450338991910709203571799658802441873994941703881058286482262760725134847745441234141482012522689711604714268565202772648846034775074466753900536815004735982626883677868153618534133662582874695579847814864938853876485571225230712475822837170299833639331616881615827089810962268748937157942533024842534442932534913129546380996418746276038203974049753467173369899910830404160794930485582687423077835255977527123598188412580141640230787528068424397287509773069618531822327180723045724599942747135646794742754944457810091304781917664163946842747475909150524014261870948132519787201477115059536298744173851537078272393869650872284377282437750661323393895068654512114830240880443112513663512066451980258382837832557756125913031379118810262297590801567421838590901855515711949717818648293368435072913831681816955604412692836054091109704963471587047754765254144072950610082045977027156381772972873832296788654224876366658242458529785205650524595268780390262819406610272408475280300313807064708829372202140075053212787762211715050798768346211921094402525371931875197101914795591608913447402503988612734503946219830445089274211185693687960818045550828547063767891401236451309228723104586265530359503398855648225605636702585937170653043936744590850192194124534834259107851050015340153127721458289988807453584643071537310042555032856892053421160059481049093248860422195717742890428988310852703916037510375863528521226035059904732662401764116731714161731989465508802144003256335457762588888837345037629432293855396224538640661377554041462770026318501629163464999697255317672336886317863260533110815269222904904578233251341872113103277704562892033293152425894389436863801193663172898042226090737647930736301842114738600971665749017523920590546299923796910243519837448914269019980360803461113390958864619214199685310115159171415507863977281725203378150230603362648724523092728589286329509443021823105956859914164570699417392451734908079851032973558971038738610462461769329344871796929257262367672398213374446217830191671173135398895611354654673513131941396697844656565229282264375402683756120086408953336473451140840032933784077514013230433585517716665988640985833200345010217325953638816172497922199323450617324232002852072657977297409516883203689869172341651383177543806319367718655836691176132316697104066046953097863204258337361671556979488912389445715906443802440756320214079611671311873103789115069374084181342888842258090462920739498630979407254628000293895929757219652415799902793515485647478529921433382493799104210313526599176358687190945728199554541291069661437581015357054078269830056210955486821444788827173415726152712687674538925222535266149737427183630974565556148934385034551110872597899479910222347829299224155963448021175134128997728392868601346065688523173426378693236166600356217259543692423356126778569504083427493369028067910225498521027414590076061866598538880311255190121219775410606179134292761361074720857459591446765392293342828491195715488562638385333511779928230185898812103632096678579653351270539649418169944181331780533560002935645621136762649124947459403088731866819451036765421603276107253996443800769534066405491601232948584296077809845829272151187205229742925131761107800152454253509162108243282552709211208946403573445346733180328028540157467262149364509063886425839533148379947357036338679090345890617435501868465849946031908387976524052879705997742739374683731449290108413683169400984199558341356326710017211749510327321027409900489725889841618294763836491909957961868753698173554515673594429394263249969238000842940736307351600516255608979761326468299608350847837903167865526590510433238078030604001768994036337964846925629947351475668181877542869249173426672795391595000748906476146947451795179712594593402308286941683147904196625453746167911859912108242461297053686181520122597201319850396717245344165950226612793683030221944564875323947034954923981872035847004789393156985328933045478664245291687292073658409942927604605002848926068906767066756287722734054939875855984604562467751555692283130167487526157784649894347002402365334000556219323287473568598307168211997347469749656121035595680507221202540630088786762741506812097866783929576648673416431086157885423493072809819794837973341513474243736314351275496579310893232887232842099082835929500461613086428124787644375638933263275277575024029229192728120311462106327231319054849810571130051876453077023749160759162981233723360776236441381526102170748629351823497538248754324112931323491642012706321802394063925134361354962317993144217327928250320316264831308555790854258298244582474125386071955074970326954208752046796676728140002532127222772123966638870941130690762414880488623316386335391842873547013188571476858731275067611713112826117830552287581325276384373289468643624923803596472380772338795721127239028677780420861990174977565747959365975729955012063099801653169628567690115416398165986265009653708688177467930224864454163169000186851173444054147302540313971470701241250347948803402054526741800290003213147222586828669780923975855125775479879845938804763339369776122457530790557792145119873299074236392875140744744054554757418593471115015688185279536709953585373646415440800722353222282619400589006603999402165123737774894884703416408287088638691739326222535556522225008443897889961899656248125589225520168349091293683487018874134130423455446779070167500996417684637749572839453827233392733518592772656395936008693746679127451676625794775301402948339087158827570496005490687432353922756734238572515231773745058769306839269940586084262888006315131987566016350905922918844266845483979889704431216982126479778842294189671820119264390664395952641373280498990739634690485662029046204647866340992642375886659930750897007531966608387711896037037933375281039272461405332332589607581360311781549915245274652253417268994571483944777028281188377931669862373514722529452865192446096077056284894302122718891721958222278493877179223145131352664722986794310630765570716426984104564583135709996286477837644997484329279376267527331650758623831365216425224932538467573501440634515428121246411740362138143669122253780425806412906684744209597492106952141962345293619296918912149002317067062035479844733935059587740408968173196401496519014960458021096254362871097552138077286894908919119168945372523129634794419984556678440708203950092593623683384025652105203622530385516182357878850735925580412701413243927552432929254470272387733053925593663636608750837594995054807646604369091350869804632443135415770125476107767342522443423718927111092263886358431680495381453589300945434987796989304804486449546780146800038056311195854914779610369334315641997777177323708126573638802736021926044685093560020680456810629026243107539576009363299145613317269594176960865593902221964465191308948824616999263081512520270542905827927036638839056455263441870929985706650021416962514077193615541195377361734255784572755877871234518301410768304973465583617226653047799613467854361376219536952332922662556264042650021107107581386150071531344000099406536683355203756581148641260504475854238332933653173822289956064028121080871960188035725751248653504279765812783865535008991003961051800882988985044683016156572863793797620853958197747191916146278960810025682335777094421206173221526845369356983471234380065594473997851359166752292003726577952612479565711283216149802612395773727408355577326732756760286968238351099752219431277358755311335822720484061434999560008866370367424573558313419792658536399283616651336056975229908774489032403971865964661605339226801969440576927681083940748626401062592995268162838315581803501164241636917547432888751336894501566096673597523397902891843390386307173875731291546955773054690863054389249575917669521788006255295020877492236492517856631141542790437650275957781215935758349359985437407362670325408867088725434883676295052023410281973753611566142991724922720849197646118054849842839211224217870842135967866472028162303438070257027015772171836754239202938544114485114747486264029935928396345762921341386269703426500229886027211539945723777942481320382727284639007768868739598367220355950352653380002947905971343956072890797936999010527871581375166394751136661353493747621012992256387624331194775098388242735424437131404285244709597892912777986725248850830166089434042026680030997933556168905309036902609968728388131650729725611683128133744011897474415269655392095998608020977752502145022088589914638346305965359901722763236640736433472609859831829212303383404701344025600578875533905911270024868479416316719393874275578127733576144540019849699943040604634220103342806679245713790074922280590253524577003571788924674235165836546728881067203505711681789506395827479357140461764521372886621898558452959131680219565102481233016791943705870412027569996937484659525977841504991110332461390495772924045808436444511582024453076273714598728938643129014706311064699464548235869053457730535957398408916257113084864117865741109386094929279729063235304832744055957125776851722783264751477618011334612630269175415692817495217247586968455193029874327048602085895984182413544023516352393338723613961958168159119469344394905610387214444618781366439841458734409508087106546331964706767217971145793962727000464414914244989479307376601164582865053923599191769086517543201699322472312507033229364743800706802175546963084437737592265919348475878225814317135481435145973233628134274110058345290238611074387014069012345237372797839142640123289856816920009704187159583928739269612866050320710465803773918610519145077095993669386452417519201367990816340796974864388192242095004878456738404022562044983508817563897636207545684834744985864819195998962175722400198333794831173591439204072265419183822567712896433571020079568349536597144841597397200734549705636835330755620014475682675054088447315698259787485259584681811807067417026102439465204256042213337238746135761983089990334834525220442630849360253650627008116898616206617902156127394589834581663403919993431708722773948415095576764223969154093870140738498089064517149826758317890136922730819903022042157056954724520079000862434454692322377732424088450221096421719498875265623733086626616290854775559824441498156536674612126141512246007341768628753228137011774828555831134833257110249966361482552517172701253120765718920584240293257999196971490928482201243476915668284052380674767565985280679571346236241971354279464378179120779657879059719238952973011152456959430153247095479766901797363344829159110964465805564317336060261830136518459280769542546762243576398513520734911328475397001058234774273621028197185302663414439471716584407143605153872600941916559541549605630689488483586089020144928355980416897355064468908364803594783423673660316425752754703099083668009188872939093427000462463954786715652200567852756853393006336350270064393741914895956980392973332546541299913492580824765156841111405967704298699224059343045134880474974135876349032333396851009469216752577980807346146795653707921636079210417739553918513026410992393654957545226142858435123227673182057412523231390547088101124809475216208500661820843427337827731244355277576447432856011269051101913673645385052725526600344181794311463758717854556824144512356668965128137679698022439391528302019363578198716387501683446365831075728030309804158055518358387631256953030754741918979416965209457545832769332005555077194885630294366070639200577701455213483265715109967743581691952260291388758315872682022230346191569094666803820620927830397550567162955491383617447916677702486890538117378605107364329122181564655735764676742142201306147958449994746852518926658738415030543808322736341519689380277885480223898420495158185232939067739213689441249203127709951971242234577929819585282312160651189687268616867067027860553006651668486673748291442898819066565229300376261990892875059847477111993206294109491023142795795458835368108937683685648440449093093831496000902766262124259094691080750029491935575074002413003421158204858929625180855638906119175219359556433147738285034115753364443026295417786866015121933313316790494252264889578549565365118661852437978553936036940637843143705977271692795224946184117616887934897717750174942443004486265234172361606485608750514639901681739432873642684383994339078932982038600690494676842151349575680879392642907292566814436369341831973031798435164395516561245987343788988585675383616117858476598082528399922800459678798919671843305605116515605673920911483789471961922029289305117393473644398588264260067222562111677570415935882484053437091499431281691751303602400235034650759259127903323140155893284665787718202425237705863601677845525511245637740570133951650404013357633929383721850239206493303716176084239147815125725909393735493837135600073407172844191467693176118815622008007880806909906248735317790793163668027207363944235278062568167204059376022865971087393683049139807967925001354877446235300610045827391416470893014740696275692829221482113402485603529769135387773593283569651209993385675143821924174433943333673046533191492262374482442180288111072050928375724464612060970001210872161334935627963346086220802688958608530854206233535031717012880784633489035384604865605440781507292349453456399660300332993753925645875238857029975868067487750613504671938548839186783759856386494591744497999492501267112603530496599770763014007429001533719875717797609323003306267584450420006685145718233709455753579231877206820084936703653730460964445979495441805600591785855593052487836745792156777940335408580402809902259587087077266205521111592088228869754052852393320949453188212113920206737829651380616392881100034648143689643145011850732567834160538058259006141989250948561325677535672005175006709801942891096381965865747834118174066652138412642102265704734658546963519527425258682049779267188874268049016472238733410632854067330125533696144679139016219450348080023358252613555451685021530161720085085862840822317218939446925816886084298359008387941687842300447048790305303797165890241913465538958732933102061406919983228809289255126027103343893500923170725686795163418403247187929587523444324491938214215420331797676388511033563795842815925380134634199444942577581655440677836361627793534079408218712300825152083611240330915218533788632031260315361274870168838281458357829544236100423620919476623512962294062265147614305945768394754815045148024646258693004315924303075036600541182652242820552802732087058663930830313664672096868407171733600181985208039772186938193052564981288324096506318000976255285401115347447994490934605921797026770566506322344891861935677917913367687538850471574696428737998391627396660029916573432341557437201580460988791911147025843343229612153850856870451841622203522202134631082990692550816298527395282852651912013662011726321263556506063086873403406869031100314165970596575892499791603854443033109148868256442410998756836317584073074464400376991150287439303915980681225438943366697177598001710067032715244159981043638530715331435745591888595150131969978563709389084067036477091655821119553217980059738006099276264050384830669027204922290632749823703938215206132897928331300986857307981501979654854171698747739323278564499680171752448791014473959621116080683635736954021692551208278602020315217802339324918296714234921155529652253682291661487713820592011786068156014120747009854476753878239814356249584413633829177219088364061255212001377704883460127086657994393960130181910163160591734979638855139194226698865960691568995397829217337356696459733192503039387272566947311918314029170704288430918375909748902866686166674280316530315234459615688186279092207080972566832690298025676092368171642977701272882430771430605646655203345625816343088644122357944613949681601576215622699433069325653043803373155948750665695366986722315395026059865298516763447098189961315941559712288840623137553203302704698482124362912139208983776832349313843738819853793275791996711706170955338212685395292821340626936767155778078192840795928159289810362387418361488201786826118882626331878820874868970361741923947648390614379914963076607386605831292015876777405951279344384107555346509457268624156624452792262030986103725856387062762570305429585770913051391553194941256686531141298721195102199098596304622604978855834738857892265009954643878600285719265361119570731610844169607406676187160341059897438742749000956130546818612999049184578790181455358642236034956313761982587384862488268177377136516728941964168529080436865640563273370655907711755296287147690410902211704323065532306959438406843884842701193330892658970893273024938557908721335998552112733183864656587405557815738854648601542666978503217831588995512999174827363860796176880504795781160276116798582848619432691767189504719890373832005003601190566408047080272151784370719374071923916691905973282455525160326687372920024670827255113924566776509333718033599879923384226122346683035208239639826043866141611983237895467136425536767808346592412409225171319471277117101208544914754490876631110965277169991999463579832218131217724910204332939943422451662077327530672389499180682686654573524736511368250349806262549266938306375587001732018250741733400512933951531922974625978225464794111198339991130534295108037480013952941342246123520303051378881767499777235759486027464050699330292195621109817193120858621464424134921039982494085134833766739676424754429830751317408787335047809758397522588184707521660077039451891139754781528023008063170671695916559176838215965652181850692912773793896596225552277643314031503052483580830288827092981215413252951148147366610879889905259503532292647570244778274236494250663726115548393538997345834187836083053975854749753505460066810290890416341902294610890032536830849314274038208391701152045475239859992723041685399636067355797068839909392316207510254635049776276631372098359053921750235951841178399934416712434964666355153657329561692128035343741648603128198728121386413645304193768569643885365077373217005246100960536688216558782264602256816184653531279119465212402885015226760514234378695474482420237427852044240470416133342501442379844529274930267017860459655680560048761473065790783299849835074710716875077545018793856688510669715728599826957889334739998025239965010186187156778037799995129186635457999380627688662111863782819974386956589277984583444584708881612309006694720388796424064936090285437416799461076405760669027175781742408945930077590527441689693174490513093748061051043340429351060011341478068482879770447054454185011480225865031065352861102320557850283108939320451477582384693641228631805665454712550176751475387153815425133534417858067782279651532385222474238849905030254042955525583503181429961895229540485973443477378555993558872330049178479604008949658590852295142692603477641060232804519446642464449203792338181268867828288641714598324345907451372051761213578172060437462043574178452517395795265353356582064898723370554329633384894864500943126583996405287367704470810654314480449203856831824249751050222189728576310851088904403748406238940841377182817972193824278112032129282465944442948959269306583374755192877453280199621882237896839213768200638872537644951523039778875552281395876540613006359368856085745564694022874055902732863857961908331766644672448699776952255709580843976078821003954862080481737194855774722032035632267236320342422326313856155831206215055967663538753071469723428540622987871828783578697635427458533624774738104194207548606916487619042252221377097891405523595617854950032512568872031424463990676780173348477555145186543222380768488099774860380762702341328481843642053264681357623562055507642332307618293644065861828393351282699431885779696205277341895886731749850176841920377985282414723152297620376043442569756165668096841871889658556872562012450062677758079634434523352770472615607769945447274054413168575065176890464583064959039332421717527390493208063952885785250566395154656368745854279183894492529190706345596070306658503862791595853223139311888849477240861507541848883671421268244894739837074046445226059983105052305718854613410858493021256201279041548410892430615804218778915926376197198549072523542088736365763441277292441665632170573144201148298060369219168208212772949215955733442996824732837985580769905981308137719921762098362888129713238559075866260982237055944184404095763165238144503235220136249640157502915612496049596862115655837508330865170146482700600339488161236440666693464566847209287603392322183709258341993128002092961268430015628679561842407987750856839147571170237391695352590145095655661114952967609226073881049976773698416243232240168105406486139498296050765329230104810677409564574373078197376988481088960702292755136582465267728647483927817674800111285616937575930231609330059162600663154974343387601708266979757134541884434833773406972165786600933925362080957231794572163587914812858887270455687062764054843439882550009133441796601599025124772030139205874694160989190158470348619776455003721287015890656507602501550099773452644585035650462537318482954294418653575648050755958107802162903697284080777228065100474422228221916802222555368034782869390115505165576422539420701800942960197282247178498298380533192578221064054234724078077657432722754554454700746333081986901503982916818676744742147811772860012082635291393970580951693114508439511425389740340987432534865402395835763820461389565516734210364582928633739866870027259488909569714680932895193532871613933937965259129434259644179084633216978509233601801681268681431609659154315878219919830127404791253330460312348084848458045301002978848205468368141233731468128613312143542101002077468992022246601861673877791918878286513620290840665734311981829490612382339444505461572743551473780123400811096564025342484997199749675396125310642419164161211878914259687024288696818576579140016011456226060437784688203803194988938299816852977590787281451023815246845734809083428204750985980401576640667396318953504880324904614111284187620427048891356308879072945555110194603470784050784501229952647420461210788528283475027460931308384605820406897480764080526893761997973870826620981817498118050043211636391885518040452991492194822480220025497137322841538428855225142168012224400353328157556544279383244058781661671056197713440902330862426706718229096671603567867663336910626065980952340158036180245856239934466631098545724831044085546892983754433280363874842748359442588845161247310168045941560104654537865276979705606705414453356100404011206496764974170719637944142922828939825341118760357508030975340514725882623009539828822095063799749665180640602791305917623242606312007161181949605807232283278772980932456586607512375077117718199325236971837584721378623732484907829226590067822461713125027911344028821177817840587874644549533649656275814588157561817911103976208991313446873262699238726261891788123833036266517929160885609004433105404834155218842093079437168879557175695895954807973968417401061809075261588408170572955425980465534176105430358029390780597965743434262401691054743375725640794812272512606541424345177517457201783242168959978820743908437131198371844592177040980823863376617509299889361246953763719150487772050676175778336790906169125634389456502790397236278963824347023598240220537098552972520775444687678595401830632393662127817880955520362654449996391357392154986647644851371386375706235464788754750583477783801477763993295542537719886139419883776089278861901573594621607488511849648775367348433864340420459481832928323020836500648800618101637984484535671056609257040615606023700213261816669123042542737619284100867568347284443462354102023559913504649119810149645425961852075626542539545269935908913783169249429401824174638221649028681725965804039126678348647578987864152481136267152640818728719298829770289536740703188359498672494941718505827464584595872073294042706812330914729441765745147034019573950063082752122243611325893490296048271411528513669576285150434486238014624124809276534801658844153282556342013384062712617334438468535757469347224748455606150990113138312153728168758313612947403981885463528983873737326380624846936474624456517162048844686478186636250034550331643006407843432463036995520193223085807704757275330483903483920259480296156313737905163234293504165930617836111766212567212955744195530372502155729099203627815999644735646552179224291494774601000552319943576182021010478186952878256600323781055712555505565134162357108361332579182030801153492408185406855507619768480411619903524774948936169608846816711102364770252211321676081176611312992860820967548517373376406887461201249459726007575042956951747525987131420894699066047013911463931517984427344708494807272229384900632816977909419428219837685780544882640930649347358183397711080602741887025352812569858198533291519501972584883796575882124169497493913366068990431942405446427024239725725426259100347864836295273835615231130963400243813198081529588842669005877902477485002159813515100989664051176056732591957235927006279444434862555934686477381087545566679204124919483565503635754474728335908052644800101123395081978997068369201424211729743713840444876386617647133831902904105958821254658393883178705378409286743090598823174914744833675361480453440378050405796030179589813777341959407117276540198397787453996124395754663260185821455368146325488543989414003539125176123874273984095210561987636536598080433151599982718001790598295323869179191181515592173263520874694230477721045613210268172360617150509434970442051773754191754232719770595469722082111115023469707767044182276580615927231738507967850020283384723303742471656789348461824488847537550535552597068435504857402428853245112440672554572817955045813257583792984878600235688598267854202428261344602541625172624323060942298059278184459830335391386160568991783322446697295679007235710431244503153189706957790398724912283182958996584865754000089867527928704262070617290212884196630716767380964017475821678357750002225296714824268127083147548525242733991264001659781016757361057702598561505938523074306439902746686295814561506712021737107617803554788560052997786530230728135281445978557016561723183870421867868957742211622787152365473299103465112523819651087372600076273521018860468987428993371377623885286942986337254253150680278022010519230820495417281833934731816677879114257874315603719856481051168276193369157899628032800391964107725228070660956189663175228878862579783325918650385059458286636300224017731299884816070905771991437687086432478076867661698777313208945596368363579438019735373421006564972666477925156571709877190474193468551502557197466258861396770113755283230015069435650840794833156548959375332020236873847276042020007014772583815870357804754611556448443425595115484783584461997370152610101809491772634219382987527668398193256971325054865864047001976644752100920286873117356125550901699039290027722369419224172744352842840962129189786693254763713842571596072588370254806275581332237690496730945456720131149161151140546499691450341987131085509321629532500202553440479532472152882895374134539729300377946282001473245311825814124494330970667979034598683221899064601240772765852465251156708072025962808453596444773855786589877867986376678119051699185371905463363375204866541561684793476050970606860924121920077847536830049861494390899920820867288575945717009297271339119126924441546133650172881689127222533044212121338196814939125044976781805066117930277654276469540325361550061128240987676258577972283256014080328890521638403521365892983347645479170295175435594201285022199443640913491067772198379824902106817173877317638439641670870680224078914220463929382043943303542336041702733870823370324765535942619401354076240051719182066382711515880667224532925005078726779266419693346623599684700380188164725601396432109051928757715328615134479838120259012122014040880412083645361287939903176870375273913721559026564894943181132365292056819061773728245093607678089507589344629769690423369357937622927851201432649735656674588099074005574943877130031101601302627445879672307893298151455722491365325239261969590030505637116826672348589493090353088472821595873475905925793291559773953936843375159829581920683216191173402685722070557328928001413660076491990981190274830200262527528495069899918541270607150954584268445252871302576042582614453479699369476591867272324246333359256646893546689176630862392071623631792094430464849287111550229935858343637813150708762070487420278609930147520123217930557474407696049152558182011884369549525892953165774588626224083366857160754691947584746707709515930769326002720680801218370112389178809135593966354889907807595649709574086641043658319041735381197015187781460869682164169117420748259494629165835837494857434936730657785251350321221583971074831398984658195042783173353320558996350103140126449394683343514044497093455159125135566534793901740243064208817353184179926059166840813403562687898778165555195158275466750625712050345396712336130749139075207013245393976167171558835186209618010508549353787854485424021300873608490052518493459312158849602178204891213851785598064646382002362079563101489524446991511782257438774279324016552550338773197947370450480593370394313562223552842384542927847209453064554779792594857123891418562119128818612924414336254329282461492826959921738119583428680821928936881418688975179318924756542408061348591861972551900484850127693487117772763881554391673694516298376919546532634645616376447243059891735484292234335769342420616419654360397382983306734528342241586436746094186913547105536435014004339626944486898983964240216827878404699313253220284872051245254172573912273703244191351515252425809190142992638657118617632397599973549527864167636133523085719511192920734341387268414299178748985361664575411151546932284439015089898452962523958734478250412674765968149291445583972649974747558883535207772604286595181822247233600553101830277275437884625868382962510114293365368462071511789094488884332715169747556536226373673919443495596801467215807594467656452002288526482938002067402796646635547186382379804952650260653185514125923463730075110466097953510350486559370342220907872529843657779559890105436302842111749482218737856204622881905779819183743737917832692712204869538671634839620444627834312213063694252571368192403517563620779436539718905773719762648711197536750754174037960540803904005594093382925729540804412653559510936944818786556853295490847297502409893015831097643802160631595245422148366162822496587000492811130667369447208740285335974617968924223339288523980002342634318273729142138508477742816044961998448594956971935549737973779054334731566302043849595082722314612727530823865169704407999640347702979165147086633134435611014218952361684275033996442770279347482067805675738990340846978856061203839770670372849514566155387248725200772658373380317594421546369522867974448615662540435692054993240782249144057108371263521623195491454476976830543739954425169350429210707514841383100535768976519874442557907367903926376724939583555118879242711415425360831493698173004968193692265536750656072985392707966809853661010752983718204202012708308221724939135678708367548115401697715611989612374344827124779421665167566229818768586447553832878397790859111967292993954621204961309467813095743108723868686826083951674633325370844429410017686069611480198395504033121502475367035726263712843943026403730182898539391291244927133311286747624945825583360613855052147536156860437361705216397523349262646029065188326198242132585472856031490658782412645863891275346750888446147343022440840399846891240345943859902226368661974406497695993639605322309020467869284199938199871009906025470212872447024692436553341368944886786057222576937332126655271895459115823042166258010342404687297808465933550784058726474020939220334255628274542498579152598276683075727962399001369990737296921038749602290414079778538662490070775750959126453462012252291384441974544259541554578697239662731314219594091108896479841771094566459585824416606626960652006957242026828610787381900407880429680305076097186140102550204184701107422489954318494731622727875038581889607382654080493896161902025301191379383924571677395414290809321983440820522143699062691828043135800834113179849880899916881444098888560042929095948479539350744212392424837160515905427513380363125748675172743107445417751182380899873208387753337642783646301336370787944474497236165753310961895120333506354190515588634406263111932242409216851416783177831610193826322931920291203423185594491068369340019095519508120687759580211939788653427855161717572078904475035498250750311998377840141212012128926675787139757364952851057807684208860167014818629640608723412059446670304016072851069272687597538814621079674327633024882521327943324737326467440211230254800313585477520395019815912130004069333640661333927025979065143154237516246870471378368824492604216378151676964317154127947683830427984772704200423205147417856025713261437914330105328209342797326908591564372287447344126971795943411897915591806134434262973289980367870557476256402605603506074965171712243311605593620721101482368879033968530068417893087564064117133586806848935807384553721887852288602966868404187308643917889795301997929903203288007319751932737547761550243535944841617250891322442037324921561245697480947362315410780822958667344587266735273708739670291053019443385470165725485802309522761791468542914115284390448860026755036882725812989381491664293138959497223332202639502981171787390486623899326202819638367139386122050845853826309172491764496981457521585088870087206913948836254300897218454722221403732989612151434677757918970420702929488108119304823859557572679648393778100031763320586594653211337362437681537737527699201593482031249061922529586463211912940497533387607600621861520978446552762467410516033426960974740781455985961826643809267533284361355377613641139233648598684101842961245380093116584990075013808970885535615997796354243790576985177871979871063571063676933530787891911173460067330413714465542489025598455978950513426419073006174400106902345200688300880740492484350883816866199841658352141322796559175888803844617069515924354586721842561041681412109834491395583200903912441146059266998824924831953382679495426545688959681497764853234671459155072900481766154338375398248101576747132689539796646592975695668354404954142460631426343456616594320450134298610212669578636728779614550091081900564259481067063824371806976716361112565952615369802040451433772679994871076652484188486244078010610088131979374390853444810959242248319349105035421233691768915803292927573606366529762136538120355354965087764336601575176126690846896668453877764191764250556653264212581381863376411129894921515341278227463438078876820793320995208597474038125092001929476927110686299394638998484785957645646187694179501022100370274700420301328305697332060755146578096141250285969991259414870711462472114223372107665694024889002066710709642210664739001107283012313725091571612163983512106170734532193985032981718682477461228290713098614785756968930605472732028417103567657697024026198899611611153827666159850907098126872324286853756182012930381445669557908658017718047357481561178827406246937113590849780527985170777958999774384409104088019489609357622424417163380240368419612684800861286133100836627139628705702685988369040564640027124103436359965592964361241557967051215204639452102445342521637234619951389507396772702372180146630410901916996632583956259057073848085347366579704671356593571732961113008125657319340514643511142239331737791378336497488290703723546884094451989679960742119089827795478346961134247527465950874816011306334421257210605022976143743693042679624090184562028748416859626286187200394674121261576906686543059249919837882771079286492258625673219104645831906427981822309820772703352335501094331654970027367199708185731012824885225452624132414669122078483822177868368542354543041472550097124888299875648209851639801558385850064207405960842926054533805292836863886259167922901998772611145785196416002717294233525225320529883905878255237033101424081235537957189337873002227203272979187490923555246014474774626262541871416870261394510753428123184297400279503667622540687631915980286145951087207223558260248741848644848536668067527028677909241958399327610886511245514386842156447847576364724117138656375961149102850720834446736994354565033813015247362574612287695313982794457672725402956356454747658364192558409099237208958826715253943129522095846517989898076455760444065237858422880200712369191543190973168698971911419283750698234612528010020278777880637941902471215609795798932889572584283658771928737822778998430129286451416562071983571639286142872672629565550832904458383691276135888548253999032218829621923259715538582132698262844590590749466043145032429718018488346870343278420003555857950728413200113214757742847802811335156848548174473224959042380914710845322861917443690065206633078193648143505635237812686258901866944728403216451514936797367665617457473696382177971595200540763643484102117844887891865929384682263710421854222433688711917389013263918487699745574995402553026135357581382277056376331319555083470198561542366130800258251768462776013410294916374179036843199289869083457359359659007538270280581551791695395143676106019453576922718355966230695121877296101997915073634421899103256144458932516254120162748143387685521859781734490072988181662384627679312404759182911156791044315381400342465077047209403369204560655333430654939091370100281431456178365147570557443883430472281891000427430510669704993524112443400273553072922767177069951879081639492697930648122469259903900109306897944854277162949686736367106735898301353620652921770603562759698452654575626510070202485598558978218493047529719183453823603341150361045519609565559620269592280725363374727223145918162464628453625633838692582439439667975572326654954869347688251349052691770729144368442767798624112122774878765582364690799732826350913118949239354110944554817480341763231851357104307714954092333079461316358037825689423493045324970046747535645397370555492516127432181431208193742354673651624554136927215601870435721359289360403074568404668168060518344202379057196854251635935223350032325617975286434198769870113908258795723896266384434775969087799432974765362068031893732739383080141760910860829649210030137292552056600732981082811641505064863660764124429525991679859575578525972367589519974459523765171359491390649097295451707439306460476036856948581420192216041642935510100082241251598147371305152334913296929453477033056217269099460712359358176458021378315634375236251812673541313429860980675696894592223622885250330084307587456813072214777798813133920100869823906968194869928647792668834233985572914516672936570215169544390516306870975097411530669920863429900854056950100484169002099914713344407535482085319953886593160960253363331931385931982856607689783775784856892681941051599491367617883778233776441647823763799752197547731301003970231576046579893112889620980063559692136253185599349701228687230373490031022583108181749348538500325491542249861995266439362693073103259324960526289661588080122033652538542777984079193195970740004399611384953734870488398376518734932210719996398691610711924769054449788379294252474676577205214740760864934104369835152344710109885699068127090296392674849232838376256980891624886186775517735892650094947785229464773125761959362686139944817735737792301310758811540462596745668913533452271928376122892245086469963113880097154240192695347400955659036480165484221742335405260129635735667836548813967490369480334106786380084024454214436857078025748875955341098967010877531758930083850046792572906088389819863074040958189397680353272964546071988699924850958824475256692764782107427042573114434394288834911200479970489711993838617437658472882731451068992433227983280916459343061729757097926721476961695035119846747977387441494748797189624258434596371887209713786374776703160880211340878093482929272354164427046385410411225874619406302950180335768423696883923460553660403037436426514499092618517231655450897840883967781917249736345535263448248074465931235240881737469091457633944652320429535696097286907542796631733376647155361588649713813963672630947755712601717233557564048816678484673462689291259862340577836530286456486424745926804650710127184750701434839707171663153896906464025299658292565702776863435474555768732643066688517878748921661289621118839946216595145927899651397574600942741281768695417588889227033240169915298289969826852610343454924271442373135450158849304641708673985428001014949951780992311393281753518712590043642855363736974009060643361364536912627405416297466005064629555021951740770830270264479000475245840909816098260272991597571833669467357698899966519848994950570426505788194416834756277017190046720283222517810964862280744176691319477291616147904607753495771592290395018186599917354677890819964882075233207883229741596961596369078865580312191661537796595398187417738857536672260787015740805521239250263968044920264652854436668270313617371510903964193151449418710757299921196390308336627847682963691269326646694044042603554764203362794505990909558621310649376511794691483509669835460799813160266674524088124885000960436034418657438612932187088792798646381546631993448579343502983910146356349975610092032538389099188839658848182637922156640042512541873589396352101351907825084789989944457198029108229128341922022476435993786707145429121498923745253556534301641618710197161973286340525000344787195288886954070117811594735483403691489776705055108831872213882792443395623550837289665866910667063709666194105558587523890292494762092664858109857708076679282635821930176931283468661646700629992302652342869302022938782562191294449053771846114296137239296582849929004989337336295988992936957120154553058642071550040142677589352784997763773054219177406435604174298387704570770214617785790428430535520296792289838787631770848878376931324819099120474994215381548110642129697082028379423573396758307420850313764053142819421577885817903584657646454601113792794968513066277566901804466558831468289698944916035218884689473674249636398624427579621286228302966199618555480264020765164368261671180980434228737184968237060791976777411031852924467170071368059923614349540060083711204157721720121254827435929410993223494871221218638924599698608291237588100548685943812865558823723282401124164106741315137763697418786861886574351948527412858062049022871607082271579513519733114172659004325715695510357375551759631183897934082962358153175383412608813663125630643177768863387788571628456991581192505612452713844865563221071383774912141974646041688131551087021918784282570356003860344683018454050194031512601545344620051921233358828969138930442540516558601800722359038378533614674426297351002126929557737413154791680807896987489803987560816533771409197041237597700959276200008154341978961735873223286948344592127565924765128669500638291474363167991969745088867134283633724730690931964499152190269150781527534368873107229919398445153076124984095765827467446562842494073505655484406698103522552486460258029851287450380568798718148721033680865979312187303149459951542624462395511489498343922958578354873212605744905369579608598160388152017031597551609078145885759565454425248511584166567542739907002745857525466821380532288294722181727351460193037167860553847743113453720788397761971551725853021610232666370467787755718309546172330633268711891791546796375654631488415976651157295166002151768890314973821086336621285413357509064736682947595020053698641021098674369660842476515336961845424383111200593338842174719730845754300831048486535391881862892399831836909268954681891750082788600870968215715474142158660350759448024241845016390724248990429212124003414692754408053355994712889795549830651640747663758676813727593307530880341287618149855800846156406272518587659929140415118472813022343203895954494839990281758592606450101345488348725686489757440323944413381868485923249824037002595366818880170657252916592852995824847482014288790897537855847896657876309852613555190564752711283238777231946832328583187067887024764659961662523426145101723623131706603345391558471590809984741443665106333102607616212451859247072711306339006122126251713879512061850182770031590958754293675680029922238838416686765608874604484420080983320400406988940625809638963660389854839923531800043389641799127303433868363334664901734387021835609192192585488890163320342494389106337020997495977447359340001227818617192859843905715544464132096484112249043501859803076560983700826040356090178334831426397244356086049681574723222451322611913270281002748628284872775635667484548930269592593041867977384777704081185388601027410414180479712009697071338598937480528925262695009660015843295872897174496690222524319204975297401092922260191532019511886941804944131133611188628028917771743525481330362617151220327043041100586820185687255309187152591050811582278199600356041535894011861387316421089301013762944806612409313868115841655676509493515985764511017630974519293276922780183927301482823328554298650077906056085005586438820554236994955520840563363262244217839207696794185592758827954413387657109636480997734448954959078730357707894840859443831257996693551556790005894764936323678250111383753309587037611425254996115630320517108462988202211212266901237668097092408840112244255018208103913249343222627434474961699628511351257413420239611717408942948724026206000097021094651548977006898802273853042071596353229588483252783436430310585375830631539222240095799720376902882094816106994902928299176233053546798677463261421679739430800792893908920165683498629959505544660790413396620274926789833691809058815990601762254967757794353208225341327575480102424416742878263651713837494904375833385970520065640244610199081659332838796000096417438848216002874087653872710220845262303838925276871991084672991046921790565542300978463677498474422907426156452542369778318167976728445357369208980286667510746171266410571144622782054960499419982444525665642171682899072490724195810612734714489172694403227196858842696977217161340470147449438288313426057226354551362099129021627408441671316822789816119419740539070293035460919524376740220477569548826957231271927468272204768175625946601870273491667033468311658563418477930785541543147655470952412644993054010328314733238673401495966457586424210441155885829872205349953662447452175604413855935526791378679647533540961295523170280189802002993173402408195344117838983996043197428959771039977008481900949260533488528690572421358748637230670067042192267949976021143272625445931864080559798280493541192906303119482211189013877182613929137263625820504317713898017012695065233612225096092631870663440865131752322570138231570616569063665667352899814166067727306795707421052202264507767816780937976385492365315350335747545684746976769085256244895276566749204686478766467072131243530580005319893365620592771535141147653858119888865196683312877552096275382338737989204854427138469551430386922327575337825064009242480497244292642364398532465790893372279343443095170744196596165502539977234835587301987433319916474451073457243624755736669094087750402547008741080640287323407091115149699725115032614894294537034865909871045336850540800776284818783361134661249600164271765841561788700000623525944215936925072934591606132752312302762065343421790962647988577149430598034200297183066753158905549158869383700026450373616947262677652313017141375914436086204024067233648219115361034913141810093679653153349881855674238267765470770985126619267704126752830361770823457506723896136484479306589767389974708044405043373981680937713737210641904529354288229258780138981231330090739510163930140030413405013252983107528289539398290658310497564313402927904223354391758800411843544563115311743620676457702737740807386898064442124449822423251335487132791795020058377126110700014621776790627820909656348256843751156634090706086583319743029959963611586008984573165625636913177062562138084786446820380818290611014356621534668669268877649782755597793746340025670814540567807001006603975975831042704638942323964640470919562543041678361462707446324206375413616981162453387209078014982023315509050068431324007263360950367867244030414070623590832370879157124999661221264432258391526273506867609203819758974366631650973014308563245204717097309062072530135830391503653842954274233249524604572928262458574519649532410992672637503380622718763290788187909189400180757044438207626280464865681030268869701958042319839239848827087549598544797695823085271944890376343397144229099237873194492029324839119320809125366108453415137162288563216880687587303315054299016416994531102696552714299274485598994748607876082242122220508170769862511935102121240633684883846860183706354021729286366308582310275731742178912436527566027576304805855104602422900973194772217334178733767635699797201215150251033513198152808392464108892139279971382156113361142343355896431366601408626990031110699074520830780735604991862687651674563020065341718371740760453433009104560254412549058165435183904454629002913149362142636385784476994815376882382494832618472490748056891295952076968301867998069641692896071640222152249745026338664676761382705200458492912055917366683821552087852563057658496966564110236284939396246013904192551609261254833647060583791637798655153884444814267415672950744671127960788172436841460197279997314226733890230772100248392194211445972981639917528897135669616883573370412826814553667977891335911990680977931974808785788617994969666771341964338549164885486005248131879897977548636018217107054609843934504227245642047722748368576492625194833790296584509999670696099322043528897212257937946187592947237295206280257118747272728229538567782471379245553795281723168782999464067178090370841094660904612178470533385838060227898847070865814240892137358497212413984619509502507131126063544703581179579164090697032473619344914354423687156715759566871592324892462309847648907895512392841367429371781112578760194832730328618771256400624779209071842016465173769415230687712426114468839235602600215641157180517621846617448500530234017281348328332722279521782185828711433738621082051671679344223311272694311013847547527221978213524657108578132838520191769488513857456460794954225753304090999332573606185895018546110802709098094735055889912020156766642448269958288359003239383562471482819033087400212046648499580299168455000892236818302785357808168182501576590006699844086259804586708571063937445238903020639232860785423487851818678152863587661715113670766276143336121103698558165611191569309817123852212469389933559527305884854043738249029244669443466190936481048116268425031026631692179753466336422159366639739359211805772584725045912781955030012038417544367390784002179392666747750490233004385385736611074424521937068379052475374376932991858665222248293643786306269527409974038296257152378822939172826234325183969134778486234840269250609083423404863972329308069604661149096143266765388712667246445759283340705471965609748562393166674777137606394733857851370968674793626493405358502962107471964657018955748422884514201469882686401546241714585295646751335416812797740970991011827545326871684516229636131487041392085896531245949376679490137016935996458364937453297599081583224642169668662774189761835915206013008863700544380994527802277530240423181436966691741890385714716768863673559446022943498569857348791909747493596885259554033815533330766240095546779072252756055452148426145825449932181254765908592154342310427846221253353356868811799843195058454392499511827356116699303550768118520598559469964182061680808037219274827013561991217263335683448715780516215504573926277399353164177259074182661293137141232829839467157636863418173006149524850609960283878044816514543458404645153992481867666329410657118785363676512543826780985312706606970585361045215439729549157596004200786608717581402244809762907652165434950399842747645378794321767169260178279082759052453234304367427076981406137100379068449697810889096047549079229992951300106325062196629617466720693175401183204001949182447772990954755355182632598664855608389568583097325722751377243481188648226898188773761669419219720736573424104225358888238214972538758271646316157648656051991388457415185583215735491421054421620200618367856291949042526698227770342231010939420558977443132358051563168414864182039334915665603005379658746371970921840888709455149398127425473939316404745561455516021564952553966910562569986778235472825108297463824340943131966645513147755396791970115609886307306534421814861706533902949438104545270715011430677200248071197865591543901990242948143035992000045835724586803791514936106802417553626967785751374775218513517834311892243172776762005651650409435809410723087504508937747347021032437133776259669446710501990113233726764443885465869118995127404741907646174384373444485464998069605206489771218347844498885484492730060038676672446141886093349065631861840109844663225968440378841927925191931212399884875914311681290867858093908264464319773446746542258900750240929626924867704582902882204047492863965462288030209213609731505274638195080105230945764108874046908929884036409521801156603627864396449091104437838162925012749471912617701586857809738235168461827289011513236004221484558050594616745550576868402167139550500253932018734985193378179452909821751349083538388129822976529413815337697938626089113871557535883340787759439140168486951628179613684538342409784808350296826382542275245965641146435162816693508332840535450097028604094994408375638583728064011230534571742431651690685468035122597671046330197711603098754696656413142212099274688783274826430979137517866820425275203595453899530670348335587656553213441210118989595260123929029355923439431689353407535846788398636297910649450364304923114584417379586011767013277159029946672605262153780646366183746521100682546939931727727552575973536482247039848367310413021917818493284755291434977818249863175528383349589677526793505205043938746589207387431558126249342351177707051467989213059454312772479681791493690907875042608431976640079742587473059171692803007036255816900851061986177916511118540603717823955359723177332343079818332104580939602922841994985324970890944342710611275323286836653856759690618818774146491699935307114639297850241342629925485984700428228601538790691193123261287843231604895989796953657802413673182715783422008356817160613800954422151505559904950407717510591688765575435854675032943854401201182115845401527073918784183518787047464404398646862976139868167199482214736028832172838186228665725405947644398938905276591256461016582873230405854674661751233732477098454686100903661079309502441010857830354662704219012001898079168310112528310595846639149994160251799995229251986064598103164242913609688627566725339537719162823349419091031693294660471339651789330800236010890852684065859891869968769037686077136673088972434371888257629586620858520372231263995998639477691761488038766383344008847197786664376299764497500899393710598955895620717867206733641603341665515249073626857721873003744899588898323043305991369223460268220740892470057107006704550376377921497021504276323818562760211614065035609211800483331472415047900868551186931717655906438245677037130414489666807451741097846554130025798454398794470135916364786767509391958609321585498070646148778273953566282953344852392446527701607499877993532892889130807529662094729224452864648574978784111280280942341607093704527942669664454617751924989701272396499893441259925612392108969074812870198298596400104603087126899646838596624554892512184495608127632265432149597306259950510341376979549286572159019116360259628679557167370941192776045272326712796826481975140945673226449400935987926843569211159922711213326257446282439648748782052742052656648670216390594945841095154971119736747850257402161909960799047416138631872962963329664058196221837089780031280333798686335894634902904445166969652957835027399419405832438224330879641497450357163067784153551752178918988826431492577055125735601480914638285449283301947816905598862973578378966022244840347604667608567829441742935797187854564867859376060586677626248373298583898395352624488861677810207064188146172088060832048058604848632920711912638988812204212938849246130597180052845255081396299499522092686266742521094965592179273742991305368125522744134207672059856381310199446743938386817026815604370231215508336568972238483966548564512469560063567940235823035079787508564784200709814527081195276266557811937845593831946112772129770787003094711019926077052209431230167420808649102715053534174470851588072055270141471100486070259104044849649364380218056460220732763050785068665081617809212413419817668608620551062650728793766163316448734800843296748978312213673138130987899846072182803487126395116356693854832266037112763321774110136998294005890876800850590279265482960023135670114208534167174135753811253969898676078969525699810602096316044713836541846886848131977031164971245747333725679354422772294394043561428097012750680173507716804851145362796153650502423919102183586361336411731345646950993614515107428590103396313886650676102315132508870512001166321521985971192525407252557039877302474029680633984446914751709078474646339179650286693748089806125293182454145756788739318926535560014278756869717188801482064053262085777382299695921421706397592283614669754713974135876924761588243261667090199705416143208095791576062827395289710079480569115098404460072506677569493880794176487673553361551516082730701903808996649038346258826468398578923307969509990166008820918740458758345914605184042953686399257107122963989487571698673188698222556231148218114409567525228251680612825042197124443185759813930209011209721253253254053365440412505253206929029575785755056908930158677279117259321970255308194818465022644119991968756091408682566686436804533981719139332277285426403063908814022118371856933998691396118014050961858755658059526994267283553765507841228287384936958105814618977175093499832245708154552381733725680372604112411833595147041330903213856405122768079177277670992408509115793345602968615603244257753472343355957368764897459091385938501260183571909698401239624237015868073702992793976539860081587503639476649592368688612378393658384923768716981313135718748510484760960871843862216161519797805183823057050557114699591136212986492687757957353700283687242946409144683979338345414865872151874725732648353414593997002622920914169337850174258703491067105604404997219609235495826545809513724391938116059891267907880419679860485584105642177243469259707442249799549800739801256667076685288251054420263657231738893264453588086000547797511137370308276285100428518881579450089568303707849209500686715690757606930578860350744506288246092784525940070302887760812058590223521134384448253215582386116546563165903555466725623768583168794442545998472175915921279710570402198867177760568063322489459551644035964453232217088871709288479472650761549644572864122526509383587643650011067637354054945507377556267350128295426818714402271866463742820679269865821032121222557716702306245071735736373191509510301365240090885435767486350241092660719218398963808534408250586435364855905400778405465969800363177546365892813391226158375885572005883492577299052551927787438343046722757800001698862103162242083721888048479294541574645590139449389931741894899647372923143513548593469102162040102439869163417398409176477787222501989677538844687407604750844866807494392551090777526294324315313780583402785631863038603277189466490937886828923896069211757123194711379139370047298754012622861732533760325754891342280944093333865216927837105272480863471908151217569919591810275890040687050400461926273844950685642998317950906929235855113988377130347026095891880161006508010420680844094719872958931289395005482188129755982041194476731090559282553567513743994901824689286724901592098522186146844057427468797273461618123489224396977429583109210525035013080381942705093157065924797811594670269394271588493776907052002899890138069001489411799537190220844943380346459495597609807585366904035794364750975477461778165961725942602735894643443795573528268861817086218964874012232834373243672142591578765783142665422654435981642748614748819812626299154373501460040442337997963287400452470569862073846616238525428397195124877336112629338645153934450534676898693611008290660154868616380101329927535918673670004104027771155308516007764937017085477711704359033867865956407270902746869408305487554568843810301196306472074079757236785219762779892854290688113222714149780612953945761503217693284686012180478998209953866693998442685904424939893217214139593399869484590108168213629745756359313503465785927810305967191810365762943689365606000877926895428225018109315453991124918042082059105753290192176518223124557535716432028183570884226518623376654504702689708730517466307002868226038745283980211631798292689779966769973035508224537580434599471190770011136324067362136326608790855149060635389865218643993996750229405892414034704849327666311290203258417573129511002344979189680117268525567887503542295560169095114252127262308997774773564931786396677900817256261409187206533895582124601132595411597967493983279675645220583806462000284244827607060984247506799654271302420395418397500841524494911217904163409931595299741233107998799934088530299694086407011519807464778259221016492361095169741586794407568297121810592297922444058925216552153992814249449917905226911486827788765733266655689586521287898691447262237698127769855223197305303446392439574569872588229085435001655382895124325540673290274834664541025872350597432603955696492609729994367052301316171197346183459386946139614577778139212691293933345724127946962399450409069022400287327414829625227332982255680425980073908719249666928702997738114232388532527156066529508818785951071063816316111377727049859374343186520956260968283973485939500419546717998274742438952530168241500539566042986266864022657943385888033721931513943078262059743753285737370166840488724798146861376810454901963090122233099456821069918407186137410347424137536353821446775181445827973928263886313153058796809117485021752746892572072926776253984177395492195026363653656659501229288060752276226724073277109144875190711365675169883742325557278610795331768338737258671879146030341600144854235634425887013381445337973540374155376965989011609134716974451238639198780872764506472257510578584459907833801081347642002634775706183400378482679167039233855296119013924572118435864525489453215076727531646949698974377740196743964837865182178106412926579818457979464206341580239393183207481823849829064647267635960609090747429126061845344861864900359614143579501647080559504838928470594669584643179252584999036869410871161709743023291922175127771213097544169029398066970128343061191069275363658710410461497546349825874396788293676092494249978671178831711066360701655545912471087982495615260277869161958789368957045890758806083660496257092069616706034100832805532352912846777094196002328297487143366425667360071394880858077860178769643327960400890398696573208914442989941217270866288815025193111090822723886446597263903838033952577247417159127815532072641267856346228876912918314811713237368502175248891348018952956212060282685739894141969768204169502314073305125679475225299781301208281625306200642752255647494723414530516599032132949085396654599494567598813864353390864969763760183209975570741692073141102364297208753063127587588105024572165375354275286870463052987798921039108717559247711442014298735197618064563986735113955770327568190126371500639558432113076313021535427031797656786723328199407978685610995452245218705596022331896634614639135296793268972052321879599407770735114552179815353101216578609115988767594601779797274596283471097003070945859106054280869917220254862774891176342611203562912985660502675545708387436712542397091433578855502468715112714496637502082537391036087912254926683435387863685893899514378202204434237993552616220649434346723532182978865008325472902917865352045883940458044053774798586499292410902947074957153726705779077747603982343989019103748942762657340897289171346974215728127854921486486914595526356734309246997429984163435825004102311653611801333876625084542247101407610974594924463225372197371898036713179848378619004193372446549337455680041203462907487191961132145710071781523009369306085440241697914850706372176493118469217958477604648951131538921612655128437712574905136619920589035267240615961629991199757184449778303083072293589085374167735373699160914543300313693236904880079366479733973819464534570104880004263853378015858404030677393885737196112451215037406151497415031042189305292376246231407022743805390705424083951125369874926900610472098897421400824429053429493145733470816492370710194868736436595101571312468692485410965191229355947621397060259227038906381088495575792010521892859286164443578173957292700650489168964704266706061771521130515117562727254050251308106300677846575138803400617831550152854838691890217847387202549307204617395528942222245111642250878865899576216571542110893699833689592757290169822688654440461969472374114179698723785639824076156370898302020388563426790017047988495536231107389022588394337250753833268007587618935189207557138803344958941945479966970681459000734226790069401298372903110531746039732746322806859154400827597905409532659670596281022713340495248907337798751578264141932063375811459381454097626667483000049034007129052075381264039972614431770245757765052429972743056676591707157212737437098987001880366156372100626292095818404486714909877842099778418145739391348586688918958494508527247881872724210344001490612855069818029867674319488387991923786059950722294924090182677299177060435286139049305854773873403669861090146339355079558020283773094548599714307256187605577846549739776086811271802879333104869404962131589357060576579598027698897659669928018057315664322480083438773882989598629122153153012496976155957413557356641377131149719180967665300091478240299203872677910177611322879906738569810610705080636550221743906812677155964823995325732992333000527190104779638350272409193391415213483760638803690703868120934923460181464978684451250115743396952458752752240189600876849679504348290897969472499897528747578412253503846994080591691755194909197892579735426284023627006188104971094764654061302951982878194352053397084552684468263544532350397033821238231964492410356866582356563558555132208908882576851245158598564529365882522593872457941677068793668222060642967078327790036964095523413910656859040065676591120825647000422344673244995622996196647135560884133638101939592123501286508021500678088359713062593035497641129410135633717697010887812190768666398145087161816561010222970759608320062490263220415727452296219299693743042746149604153731089089370782019472485185192665144247191052127393643715643953219870712109595885224381321196996570927184149585111459291932841120243783001493554986342841381517586897080451718005033974311090718728283277012446265753591768879922336335161435407593031806248904324637461904896291323524059913598164634249416943694976191091748057528390311313797857560382002361873154375202773563090142489016140568250779350820801818486730975043519551333372430239359839200529403658521895594068176263271460769950478214455974814541999520782682902610873980647061349348220265552899643354821461256546801804876088667055524778133795828189628063975939531863839610609135860766351698073612846458249529717233694713794057346517830740894129138788039517722180532425529794751626829597078866915607976753752573782138392858533632325516705859953674321031277231207668666156633384031168900039672355552056265786804939635995651130609312887996905422328505715277742474298204869493085378872114309124341005350515689927499400920638480251312894801974152997144163068653482711265370433525285283273355550140905678007390210341811539790393974695251301052771635527200405529591241853614079606806944496286801525023582159585454394733358733328480099054823651328387565185485176216939091851398092038525906800095591540305054602132967520539835617922230519705419975489781171705303252587624790816701804463320904042457230115902667459618444794805262548434894496582147258705524653807088372766242129736167142836439655867524244136894912332966717922680333197996855159092711897979489388830811224640456857021884330475418083377589303303234252008423978584779427800490665149378032046310591265700553626232759374201589918717867278909379493785781613436710939458701391507319468112814821367443582728823647351596384715178165398519463774429279255527520755374695192774284399088278601374206245949392873245282826391157958799704435636360542640784548059459538087436175003967296334813105317004977628654193323118893531181843893373273594239003767417400554902160738480999899733606412609675760675486911536947928286605978798746798571379440930437433454663648817806406851552280518413223952889209487130838860187724506354374469096870951801727969119190912707143588728725900452462849869967625272860754120067780014945644609462310940241536499911991384894050057730961511659291753202150279251616652920950109694039274326695031190341081453560269556989493015906697124248336444047140789888259446644394999688758007572324318556020695929533726030537014773634160276275981395347665573063802222777160270781082426037744935453521630433457352613444605924626103959852462252932877690899994776964658884885329226687049529753293874276588721464842844699306547089498292173647532227541485553615435974444506384410587682327410809058816996002884223668845771321516859589275548675618010871463747980099405411410070517485402683113721606527762048004054270850074614533387467811954705435281052435305894583948639489874892349667270908974127001712878355047029721589847620073611957446695021762765905265140046872080404484626810730906591759090745093744276838097891613092811196109218061787869217505383544386442193221874339189839809840329750649603487867102175830855643210805441144491593058850141487079335957931161586433567975105850095526183488955092779209650055005882661038278319937997831568461732933010329586040526835632596278349966143708860460640331328422724137139529621868815706940288504018861586574974741447998291266932706752448055979121166960038406583364209414956084842123866960506153958545052390196696535640994557365317484076200937975298749322714995188799373605366244031376058569195159415446758947782785613500920820867185382052935158682114660431290079198652105695252264848503961760942332284312480889247226877700203056140434770096184174492282525174244751348217920678563773278695361115124880426648890800830270382409601076256537308315773258261641992093637872347253187525254182405111958996646671665326611455445091664122888870725442370486121262983119969424000376490807831296420930759369489439638607771619050745844985326263977456933951256437277429542882659811061013785522791178333950216142450744996658881271190559785975074089600483710465946887687891113052693871514156411283335451367863593111997254332374711349717676476468207777690742428099832089247518024482750127585355206807458005950785307443723243751693642768331425208004107730629169331971906416542344591723517235824854693519678459275817379376635831879441813381727017232543315838464827451127051625235998828824051277265195250364985425916257451194351477940726242240428063304898382832194744222750442461561161741272039702482835349655818784950570130949775102438896116689250870071662646186413030856523546929796735443497228709158299940810286779476192852358022550485412208372829065149841943416212660504986044473910222168858645704254680317224707932518572847818759526115176472964298003923625192427219542122916974795174114255736980287910986946479808978188628142931044974423629185831673719593763952890572388204086784450757980498101933550451089608532484745497265732123811785895061923566474282894589467793689365792237239740157561106601579359767968634958732086665932523032821423589985905155206456358127649063391966935251678163021426229800348032489381001019471985693612770061394800158851947941591256352998992647156870113558023177988898961354131696920819010693568258389747500254618028512749038772668914320431393341658707749555912186365680417168143194820261190953282804688267842634455602241544285987945520427880584368794967083860818539446766229797416990241265164901482537722431091821276419903540046289044241878755117206127159489547171100436649391580670863479974278466012615159582107593669230710332322068412197553817334395693694074726180673041632100554637197297427902131907162530571139189222012146878484921731176428592348367951399047803988475692257660245677373953494190935105593391735589052017517291077890640159653846346729948829163624452829726908244714682186298306563325090205675819541265953483576028654112365358526628409713948595910352124288208601045500903453241607094909154317075087286526823674724869550163666967298381038678099943768555886836877304769152165867276070262167635574087763404913198918326549459391106348149509283376333123140271072787397480742526122059947717175459084170483585973970409632204443224910114810694839655235473702829692496445716540332664348987140438762209479256275236129920919539001476501295775830005029512472242372107620423051035983432025296317485971664343258777194996214465998291420748308284755406585412917863189897477166247456830590997115339811058267596366960146511087708056507078835055974108323170456406305962032244834864694734492900580445589705817441420075325776541160979330928813982271351101693101337376025387304186709891980046348291242621799817676645243351906196575516249803735325490839441702926354036292002909650026354053094000821563066257894343725743304634836097421678568053301721310473758218691918638155990850803635365711629233105209460553236296056534857369042327021071560663359839720947125254083891081658022287126642035836660455693494069056484581764294466810637929389707544859475563477592117194330295778994788342650128117776902844507593670861379749562779947966585678737428832135880118871224196201653368553204478374858746645723958506959665628144631999429683512917899774000554299759121086098890287074441527917948100941051153573244166943369168387505183187579258959433252225058741828243519198416577549415871948408685069511495288106047580855941435443868583622493637814705973914693201203570077522711794352532049421885489203358762656553888321285057726028208347306837886242600144897518598379659216369529174838499565873679350961520765209449573586354537140145174821970846756378216288405327106196243880072203566256168253949152354522627368829995058306976801989912654557131765069395620177416471166232526827446083797945579178101672485230037660700404038579948202245051663326661905420627829124232235514882924920593933335347834239351429934589377412977341352189533734253555690152353032513007029782518590644863292440914104277409822018133485449986271765898434322180749541634851298084343565347415672580963925249085801746696776383898242111283077406512872999385332700722209704622884239897296405571335177096063811784084116810809362077657638992289703965273561054028137078109087136746194875587893359262711389095913877782663581397623256091456529171385498431675821668268596793833479473080626670215407379252937168096537435498083771939404378746930336573791162171412864120246127830022595478329908507064963630441764641320654478189984251136956064876775236250752286214425991987643111988177924330809888609655270909313280304441082891065701082194639993499400152262978307620786177458571440406058040659668454956160821676928652592543160582342881645685224948167738241757089750915992612626565588622894170963488376070354312676117721955079799147698550444695184075573296756836339197886274179246375566867688165962584673123705836299502519688370334146390770274644675244033913385486887242009597414391465645289140678369194387595913364157134272736134260433587188905410371463466745768256104620422700099099268825844974696502383134729219542624253487715010654611173741806398151669323502396180606695821815326630363976425576490965626505788905281213245179094169404165743805467584188414294942671211865253652433357856246539778643213313306749275725476149392455930550735916860586534719407485467122445607726723375722989709370773468936339046318197969629239129498399217749131291838810238463810780740212236184732387919864491462916059151202497422133749495162097008859817307973068756442104337080977919766967488894888044888622183333121920145942536763251839254066556656803707636662028166855777928443433659629745837986856307421607248495391281243878572323383579588218315000411673669497422674150927679243108982235065050116529445629022983344899413518801231552007858969542521831550240260347781437868647587370228384459630416562138761404660290813406764029780153797737478251421453699393791266612324556373743000140262898705913377353006264640920096299046383770450029093154698405083852797722343073582287137424849197790378020717228928005818993442342435109285605060522700617747764199115498260285294980150642437790647238541429069360565691859205261254170587406500848897791304059146833223254627482525324912886431141402212659125760746298158702180131780479431289698677648792675636048023023078522534323613903240729542196127357075737885103797825058929769771496230374794443238411708197103236066724051648101062339737247266039015613341392961348385954881127014422386571751795078317305689497133444874652433231442946941758582343798134084623602918319224838396877488146225517748142496597207399644794605997026983988288173220027324761937960632886652298761985059218517801614353909224425308820588804323404814483494819068682490278849275943731695004601764470847949996122459154586324849326263430729843668181121364741334834182393404038028248751385664061973963737557966945663177116168243014247491501109966570499321274127237185184833728385235104466023959752905518545709740189904460231745849610575846043596171416265047639589359605443241894362591826037452375574948500691176362314511961817198074133803076996624419565187790911473351664668848589879525428306148049978847234403001118153211655232970988383707272489796842333728287480813655693982256777336877038348260013641540492626385442988405216862337110193947804463562027571148618332254576089516585326894772679174237664629020598445796864828343578379024568285156124206139832072623941602044360494949351796467522968060897927187474725406246471926732883553918778896343067273527943055558266506120664587619550759824947057029957226640870513145197422120860143110381144286686146017686612249033602810937820435016330011619384023686264580777663762565865173299862405794522563999264043189039494451668942184691483184018479188578610426319128753388532634560475136148421982061738839430804851439084551742895056448415992592628949843579249122369037684469231640126178876046285523228757680456968184501504248617845824005496152281769087501874337340709664501361327801356617195111863241322766421854045255841104024846959673315315680422857346347279517750387381968286428240290267276208619340146218217416521405838236695814080983696277163283235122703116018167646444484600960040065026220029052818703701667234587345839115044691686902308954168534773250190012500866178713913234782114236389717086434218480353270174243068360469945521270008008667734565276487749633931769106596655792151354506152014518126031114703744939845843819448564592042281582561521533009944194134358693714717373143660901740840930284770555978873976845110202205352147973264392195431539391154471830523642705271487325810942472007674151077061634413765388416904745597848354797625123840870808141698268825602731832641535309992340195107567736801756672115239415594808986716994686390546031436005363099156285933779642677249770672220565559072194695684691041484579455808834770947021872814397230382098902538282645381848730168669148597915482947747748995088455064591396148251405067526505921633755916994231578203174669603393688479481688022625099235415445333813889831424294527146553981376249244380672736237505236780932369538822477321607812703445526580333344917246018437857135620888801840611014234488321312658312212364246950081408776326247397748571573887947912272667263513455676726163478628390455980896918724231868312847091607952968390432137653339321740689155214579526081395150515212081278142176370976270271394522680664069707981875829948871794649942450762289936356706954457446007958781820290701737506166582788292643474862143406839899015994821564030901613648248431457859282174568767890998536329495544654876645295105837251409615330929672298058902572981409151129343826622508525199064206705992933906645837647380370169423978994862590441301436453770311162485308452494798688881967546776088483967600473325200694372495117808184786176875933937227091371721419265936157497812619738212860013421379500861338422063280248184158269170282508731768109525827539168746069787693719672392312529821053324575976139589884655820159396235545850680596895881581160345544441956421884098726657854197175869339330600069611649061296748992052550577045199975084295801226350757958663014557721414191630496667577799256167713582274326081615961987042242796766658120460428583976431359331737969141955134847795733342542564811515582877999078151446012492950573567477502977256271918001815503521142036669751122965904700296630703298012294785123721047816050816235383786146460366741034738732911067461194928174158946003181717627687747523426227338093899787372865125729726228327310434149185474156855075534710230875465690408094162908674365252034633203643232521043207637220370907000610207749504894510001291170837211824140705431087015097018800389112944142649924595229478242689189470240861226999001346984577478189942914587942905921124172420274518149848461485346326365759768505748053609334616112523785666276044715238604692968973746013937834220810117885274115459943643108762348641180959742478563837303311416588802712012465286291046098912586073815150506086602828590960018218073845574129429067253497420960530493323697516733819738123793612747776793002808233557868639127608377252485950577204863902413334400601666464957056361018278960228302152358402369819648526601668657511213000433798724162064040550582824827987486363261345334775571765846736013841813016799935705967376113610626298134040936564624771426029941694097298262721348465971243567367581269143521552992744969939093979111179863791997603031503826007770129243313305507743444504950366625755653481826186608158871144615873835051477107386466216785283736528806864027452587904698169608495122150346878164095383949488291045780658598639427845891571164162530357193091506662437723899175161297461694533260642344160856168363999702903016679409779383384956679141771953357948837993104015763553385213868084915745690549395687203450737594067757870958705725511008121141230521582980803311336196499074148947325788125417785164594476732908191200808295070475054052223107699901045765347872769927795202960526675396777592910233199966467431627831237189407838800259955167222885862255550874244035757703988060316424925343797507675160351185796892219618359658716257908196070622373036223685826061063042660722825553633261750029524263935017286886612894229572845613621827883181968749715203248194880547291025769399804504984462904771235932573528323990001804293167936311092578015908133574326286837003682822352556175714329410096217250845394903430581191300176963841036422029091345652498366319994470125578325243636204689588289616597074430968717726933652960197116615592835844920607369137556905187079626313954024863649377190613253181449987214971562440659060988352544840521856429267938065284335346422416737668058610578163862636445370503452394676999303352781053075728853772466928029782935535886142815183411086527679234056849502423846243921715827923281643614880361528079150605690175011502818607092924160408960305699555150699188827112136519659355130598239132648213010036293739054495409218985412722332052340852106699145533557601551745909115305195980705114805397975258694380499889940380118625160091430266359829684014351191362940315829408379340369234866011980213849313272046946916826314514504558761189348615779023565286196683550342583306465064208237469631202076147534963024125352256914838725313707700832942531020329204566066215303444461878276523989318794723170204347222386113649754743239366291899799861055049096969831890926296215523066633741398425841216038816439271997166250687177219932072412473980138908868136488453364760876533856190115941173034764576118889726341392491643325563584552264695165363169198214989022192614419323872484348439810074395735587840716988489821315714680014621390250700336988354215380817297471356914863853949675501950665061826759984348234867527418405943050740769878601477963341720015690179139271955462301453305839193646600036558577949541452108888020182772952875847222009019370518007299828306394959172617762592910095746783924847018596855762789107608248974280282460110397238603952115547756900407004674287751265195079093459207614867773377844533180108380476206774777790305297238568839071435796915546410641687466893895401295131678026135298942114058910440278754419807889169269267300187953142571480405186325515475846666722871762627149426335124260788098168422820807794472856205642751038867879942111054913570617715003458106414202706936523646815078929681255489040024558244426182913258421397398870897978976652423612934130633575915395378507280659170336894536755622973362556034319724300829055519676952097406248337728942387132078907651250391199429326744726413955669393249399124255267820042084999655885854460077790785782528307426520502992230806844600423342511375459614207766560048649323519889868725713341937558283493351380417467373031784605682201750569789040048165533917214981128004076185889784174841734844621884510698118901659588334235773497482986282699299877622599638880627331243565206106937781852925109043564319830580641283597382525883844772190821242779788384550584400259611800094874015532460127175804105015444331756044721579003584603195038316656446296632871025257853144504670196983715607098950682828145910178575618321786643304366841027714733254010292164373609400011807269968115380727992831333553255393855765905539608699501688247025845472097610711939317225042009647608716928586176321142858054328829893067238211688394508874980765289013091794653196292444053305252907343853545668152737271863683061057658260902142806907871087866990982160310313351983297880695112704095537610189586466872379965075741636139372691554346766606009171701370162879137727048552844040043036773547134969710257124427902382500257277028439100704869620912086396344810377941831022229726139060322717886591666580469573994763728647300385276529271909373951952941661075710699846084784957722374353262667629623134867572985431196712652899951041749354272525530093427774158830417435607982273330911122560445961309590847044225586765570465236845995856427771403233847261898819158867388640404114287649194518615036308322731908990662055345301393223227292960765077783654267415884376191395458213235022544775805411369781141932252083919286886891288151481865644721873106469761822916061717562977782008164287572939176391141451353704452177480094829498402709146576558717502970451752590626608640099668983123880241665954336778144387062323881941032750575608753252746175036383414902983735323917791106095224995348444742270868252525578018535721358319407946000822216753928553780148670247985470167097895178158194646103813216903390856679339474874518901309388635495628329359300512426373969756668706274011600541923327242527573999994666572422694063648570266789448097521766089355794874541861656209460266642424215052759274476827893837127793974365356487311929704751246887612577504568761983481454302927924042218461406734629536442691590040157879030247374965471687466241163920859089751953619769849955385472455713036370537077296128319897088879191448524129084800258154519876510638240221887595347899565951637844823112465002352947726324635400941056835018132489346856083620985692153127641002641570866035185609803332967481743545031961610493604642166321614005251538901293186210718342501325835238598347187422166569199435398625251688891136211418258081922251721283870747248175975050376221262550747865958561391086322167977662255020632253198107730711430134269933690790156477639939220536062043622844575464460627004428638731258659570690049526942011995166718025351396604591702555917359654201493536244154316488631815340189696365720527039729710546012379514692983583835783451849510944547377183065084438348931317605698997344535531543302036229076227514598142685622555595459194712676239817789463098478794919364303429518240313778372910262686609399400570247154988027506098068047291309607801162743241874841146562958753059163018039297269422843060725219246200812897304976635544858086435317067255711377365419027389063799516382949166265994746447492319562431182868458336503379750897466455399949410513063759705052663707464597461654676319532520670795400057478491907698161662910868899785231014186970990340099179427569822570886793480270998551419184002142330700082385591283258436756205701933498146786057261480292291841458491835209765597447829532021635374299348653791489036140108856409647131329049384204976381115624021844675790948657702575442351083042897655207326715708215644224429519333921309764888826892874715679816577714153064177895175604671165981143066643431045859111274775251836532511438381908116252010033312616149249395287400500761527524854398359412324639718857893779540639967022908451276606965569035527261719783780382108518227491408842231200935172778363710236093121751383882560272169652362090522294933875892089152578206448332631657915687014910608063638396972447291549608976471157936732791771061131481556723844413459663632729274078812642185290394437209714555648850206280872382413739775484174940807457700358685526290654522473567286533462178353697768676509578014099133679331158751573185227152538623774679717712471375706526027634178427633088741255710751739967956976531497509282044813867447905367088792989928128888268407932664555609739356592808817496444934077055909998278622371663568818006536173829461754162505352224096158493106168201438529465761478707165464051431302692974619755233910288635753584693394291205119766689041231770390572285141050490795699767720840489371367556956741646790856713382862151747162085037254676319955760290235616394911987347067582235006285397207992758192821342246165371751060699963906239544146216737870977611147729753253113321549747861279553975821201819542010014013708833089811630953533748104852659701612762671834782844617145021745201784165578448370127775402454401942528746436463668697346139796047563609291276369487557080946164950593004120114930449954429920641463740091402634343966178023303344373562147520910527394757448917652768189660416060836529740456460880900629957747086774628177333864427309405455488663485735991510676277791207976061280218189674220624088683007863866841146477804610224290816998408079831243658288239870046156172399128916780674898738296641370951782854593579077289100059601878619704919352204819326822612420127486577279376342354350657876763744501744990249810590042602507572114215194780165436668942852535094121044087264476518526392716519880827582857774293464015177280730266495171258820731780489756933060448319254836884947346107180733917414892422077257824927085580193212436837782948321036873930730713642934229233016736971880696467870125784435363112583441894202188071790976846667537871295761935470101784432329978674428634398558505865574065467050361370267889014280731996626658562641738672838415599952308631622957146020610921125349411600948995417224498725485640775903188707737626875480101320750400483593448955241688744699955872226220593119608694756458348890702528025077100568591802238717578164063531616430832805966823231598236095903330790364727428936586382783397190780728575693576140487266172466226811886201465741955826234927805384242432452103209602204502136177033643585925197420253292580159842436988227933667372801617293375696285049161600391918476002123417431994301039131534584429394872705766664907794350337964963317628828088147733331320716933496820505640975428233119372202835264666186206276802622544323311911702302223585511563369792985764791765206267384461787079500342679454432921721982643676386493778661527949507495851873225816633734960139075568000193487261785669239755711045908275599978601533581478518465793403870627744156445140135747459679205338386836353465037638000559454417205551029811721481138154494341999495226498913999404465382169199227602041674972256258296671358427823295629504840207656498643450141370080600543119201684386556698971807610727035088008573272755080114422258975764265183481857318836328752092082978760236004463196022903576670570855363799659161551596001997880378198920163197058757077390001697028243622487132633354402397721687244280570523180680455462017276600699497718995250535321547399153661188164786733280575571352115780646941311117596948548593277263888592606509018914728305645105661056113335307029696389525817862856007690550095579266222732213141873904465571837804512356944908087984707039086658896233539995113395380359639829728475242420158784134133281229799906755550737187334603315210581704078816164897194791805049259908642534109430693146989197572309915177199386463142509683785720153961620944036274836331457490466443667838647812653476816340023471701513424323951221970254026314838950852204989814735769785748466091113315653799120919553451976876960707781824525775973992174425661218010153297302586460112980790762045890723461463372384229247612949492330117344699128438762713547489518390250042913225302986071992406368035021854233783525935525311382690631410378136325703180058507631710668170375714186570735117792697281854396142947299665523944781097549192060443341932917112878882717710855012844973569506981587900229627960078908448943892727866883140063459846318557695426378249563468308576879936952607833596586008586562443254971636236499320713682181996428021361668330939295591986189403873108037905513767796503666391096598839269772217161163754527839278891633368412503626092814977705101345670058445120042283356096849767916838533271813527560761366940553366130409809366809212054451459805736652391968398983344611234562855670491312644909805059712117557319688487131555315771096045728031296114907488731137639933842737866876288929859149532696466949391689133076338164700005528933394526121158399066080104242042317830530125250402437381210280669280592644170866856538877110088438453374724502969351010747324102308172278907036665545482204564425878906693507206480003042919436441381668377061588118800956757329698710981477814151272540388259181398467817375922905106816869570084472991635364772585277759299345407212657598024631281431852314054982123389928792618124191701632232413916651134485428788113500087584983131415908825017419040019563199935139966975563371945830219781467426300853343073285070712291068987645025978690419197652632294477943029260178915895483679784625425757018266447557747662738262172443372649923559256075385676398332589388747284626969674362367980603461193313474312899705492295899380160856219354907742509029925225433164207357914788815085270929793105178421995090305245416923795528357212374341234289184440154042853532401049447835902260710656408855493315985209363655993055440928501278146633792422717399690902621800035514294137129598685034498116858529535535367208556856879694468397937831220280013149110514089358591818198683800973290847475350176586961033035061097323054081709957504897058403507523703182273206448585855564337354098594434043158254900134842825912709020553618448623041071124559430357269462115265803429621273818013394902738515682570725204996605371118723157363206273292140970174230653170557318718409333087507507427633602876774692480933321121647960780078418802923106873997982505402754683976361292419382442307962580715268475616924486780393418277280946551845014920443906678450870029969769115370943056140182763287032390416002325989053410617088501742523085045954760240794575995362072600687212301763443823711519931873978199910380506511445868702330269136636891847815298963074707039936033676247446422810534080840191415328614433315508939592206359780290010233917828239478213308789962406634054130844608322987716437329053871361838156671429892790103551854449765856857226089409716511666992643468331441181072577024488266243134459353164641213602140297889927492697072506026450047765020165586809397234957884892741279020500234739509170596854148119717824288645761175254681753415550418676015120600791746583084553288241939160132307157310323855995210349154774383177098156929902929472142302274100850040561132464207059594449023379587887631411035812630412796055011076214535733570990578121013360574588558273819323521626221036036086788189730326312226245947643827777830586170661306890765794694086569735358970357757981841499505212704952866933828228199899552467984030386156744849991196227032897653835963593071450779434675767618532142502506416577063753362315438928389168404511089359367059528669072922722691283039645304795247748532276305727917963365045102943201985671237912953338487341142475667312284889431995077899267128466263886228279209411017469124039315847107870279731801133118308714298271878608147538703172059506488524660454109823134155890425358380368645707164547387200644445505823110954676740101277229370967230558567634306200563975394667376161209140790640834642572030096345367954509750005173413281863092492936498083267391244477693908314988022480390315846799400196871885984877226086727445625449938208367327470982643765918801187310695065848810867883258703644309761977260204878929460724397841452348152261436985342790089557258471073904241533899604141446138068337814473592179199013162644735718675875657191951610806522170126950560721992665960123398373165738255475548759194378689916735067097078791542972153193919416207522719806601213480764808640378765540719974752143191764390339516422467126669078422491239389981744414956113562660395765020114093619166568467661877288596480208240628632024729719618099225411921416444253652471257400109888006764285283915187300350343519555662916679310077620652232245174605371928560755996000114310138628741810138261437484126434169489932654597073162001780493057659821622046563537411471856740505390620074410755902419216566234551184857452286036932057929382234773895359281312639106276961923076230971631343869713777551042322957132892785265246838955365720487408988806961511393036987602318326060879911217805304079994724744008152184377656295769952901683129587615491541237515110195446365949037047107055944318308023921990168540340991410931698014655334176133937496733299117431853711970266878047672660462453830032024454866269625764362189749532212554868469260798001086131961241766323949861190843122236632081148602232373761569897206391908551494409431829851502821268888340720938815730460954591967170939472375333321385006814041930564039185447920151383942613076921297797931851937710255693858168533963813142531301100657305229235339949472932183847725086851981382661553456551394169265094103777207603490108277931156828575813656312134225239968057478831877463897135999773217831664464279971692076841988208285825187101413026417970188001539285603732555539171039566534097499504890006472783741953161635423754926912139154018765616681472480445010358250911918333380118574089383662283035861050858808161839484141622588679469067068867690090120263943174078666306244041976660836091438570992227115601715225424687869054894443205581619018484029165993099163642837123534921802475547199135685626126331800180797960745276673726643516895081836976844692883899366906343831584845714531401562364723780684398547544173062844816276479339658363823941520572660304348871925720596937572336879653504059685898536163991397234633490096161547058003968284751785077638578163215414203278968753130668546070551266734691462114439033791915813051746476430794839486353591963249772215932749775900103106066145030406842805829620122980255661321064723417593901376974535206439893347794987805322055015113121386685017090691430002766057523829209723118085894216372557683586550346896152969077770753450369640882715186356171663282981146898568858403646965822373304185372106872804427973510666250085771474944836290382081886063789659119709620444059162781150349506973555092254974757330291360216261398172847907257767778112326898813831010651789811921594466120698562218752922261461305497080651302145922750647835183401546475035059831708908836097492425137950472483682773606194181869042701687346949249907423256504965719151015405093949356368557859780350951250498434646957694739947950713379123131339253545882572042558729484278355126196385886523579092547412900457198359063708033323312900627530910913341390808048739309422560236103086116329387837987113046500140473377452495624770889765499019217931095945237653267924148627702078987570882776207758636537368949223264172572563614766738566758342077226826279663469607174017618723237783486359609767156646691955840969170870274960026891682694736095349868931488255303196305608175847711295137454954402785478318543691616714660606275311320409028903881480828953482265052941947965150308754125115833628230511081921992582138679940929165556461869834348156861066321254850759059164437278089485320711808268704860085513837796157591488966596383310953318783945762113109332551665618109748587410417711303590462916190597936116166949755845764839830980467539136789340287750230752335837880363925206398650356611585653881360733754090606021241461760723956242014856064056999132060198815555393144754226143864756635000600395569024369309064828855731137584074325556332282273392135032727927765122942183268713125927060462314470752876400198772315455792022995645992825993946575763519928859516332551278442689888239971938800632153064616989405245817518213065117571900264748911673916792563091690482732763294399820247786381415270682944130143661771797942618960895787444541335422508608574936766506461859869948520958059775349678711101924759401126548517062255194676159278250758878691648827754440509935534402285493012185836747665615010624456298733633725575244861969775443260127233542902362120966986545614309453581978698521490032717074018152938056096203318505508614114775207973746730484512124113298190405094838531828762344238303805792917173471702362301285446051460266334535254805696031282313794422530536130729081438295544221624235631531811448168462801136682350151102787690704577735808516416409342157748230175943293490340342220201064409834434168502081923055573115039320240849951847563949171140224905049586015902241750595754523385050168913502516597508331476490830937781249463174573066053227628902617959208773665581912518922574233680148333748623591366779156258770219789762487665592653988903116634713428131580720920530139467154239393246196952887131773201755391784133289722321209413973055744486508013657900577339599564148095957825870481730891665457033435648068247490819766094209231490478327275589546652150380883286464278493574975296407455885674910874988218765510139202084461070234573182006995865388186948892772213878484133437863368438105724507113868512251070523566719534336905526264262956822668643115028767827856930607092898439753869464958597453087373613228478466446918460563366379030909835246336630866066815854313299232292027823108626390666516966881512072902965655198677849774894996923512676489271065629064400194602503864899617020542665907990449094269704426341622383060779057864492327639919343551670211460684142110210387196144044870865659454668891522018969813602630822202615206296242548969496890458332734584791671210060208139185188500256307156810116432181992423851217947199442826375213292240005650487264905697071269839428930348593239981984545128511461530173945109418593467082174936041357868322450277225846584390868407773880549619160213624302239422337699411805534519625159209538056415381691045285865848129267054287116813352017975467232879115680071436972794825658166024657471784930817476464986650790254334559998289687127707022145024243460518371712237758781468736864206787084440096911154182267717788017577135317125395948410298575860431019570380939493870096666709344700551258925556753200507266509492202692922765866118562000940694610784357065781817676954580072497966296483675590555706869194803772505522552781314025156052654416122082514217850356812556768001589502221926097462504685353227454774379966583674085284152544385506652587927679345805738533147843265911803913080077429194943215912952072418069946747479763532494067472929767790831876386038703991660253318920227501242651217722333206415578357364498921636231575194251964790276359586150652888422620207107837304629734282522398540470743910209052078465351591216257899752946634644992358702815341853688140172715244317161384795149174075812856472949124229356819832382368086811812066943687952745249511391489918113742850541728464593999691254838004354573570321000023761418998515732968281695503247351098888866862227917866030112911857175296713009792424304925998564651115197245885666018993190982654373654387770749259928995714736553625773174830058280446361866146522673597679091690678488266198049346823594005335462432626293712943540620105041154333174596440786018685455552225017511644827799117384583731134335775554805912114925669399926762740631612718159357944420802151269703955196262117881978674976592946090549995840288703821212811040849505542823335814423797338570536616476420360342173530477033393222190789957403577981189706596243403258711498222233416888512639507148808386595023615693859160079445292467234025533074108894957460121045874282407802861357727948405432555646009458272341904097275373421696561091025433511772946169878683644021225603871102561148554202429469541850698664529899846233715320782402601534652937184025670009024350910628666924686643726628920049556955375125100051428880921403664442851740846522737253080477983320764951586980165495915708109645678151614359450194192103035051680360385679433439769300876413132043045205417937223508717725702196845002945219194031887144714501177986337583466691333583434673149758867479420928563731986853346342030079878497285934352040351242842252769784032761007479111880001366459354032346722921338505353481576926526482087475995127389931474267387332292782579055507804647456361225621305902145164130712625960351107463723254643498636596046290853821430716958794566080740966638754965152011851277901142031926155698222053400995670053003079823071726309563386135971712507798703126353211463312345686110016055734269171276351491407743556226700190542059760680189453015368446762652742921722182205062872939286095153743671594616465068407764605642509937922122206315493474641055064737941947452597729918381402299383614008685232153688747107985829540863637691956949352967904923659480272319065217755809158051223557954376308359920664822698192278385466681043795138288598787840795346960587619925755951556003525151156141973806745389299097148878055742846958720938404730255204313699551492201923935910827786484547675610040889006200750442155619018265552423210761971036781490025113805288970569681341815600705862814931311193224283511822191068778382767844919533635739987927306863110424032986905513941693710608522259416863583616946626915473036585694574919221827043488293708718292345574923816756804393775407747346705669346922656664594798480930523829406891106415548611552970396767011134831165550964702622324106301138129453064866161617148286642736282164647699093053005700709520053262033381669886142779982469670027448307460693194974364521769882324123669624448750491622335422050999671204721641912892497322383069849330289636184350198858602602944410913731748706812576622390232654066496329115141991086081155796153966521605753498232498968438665019810655540948570027666781399156305654270186492052522365250292137672824724040882158685876977061830131289217641862471531216722770413075005438066521526345887416551881659750439442167620017092474389742935739638635936940190558483816687354578725307514041700637342460360566309427513223649458878243605513723378172649405069591741670190300968854182287385347942792934236479624804305182124369966045562500777309728491208805377566114767279005455880350563422641137456493093311431271724772354447920574481963820637517516931462487547008432383340636555172659621472690250071342041564481864576737277106354215193100116523032123162915363552423644572596163946583376545053040378980746871479042302806380401900179266471636434042518597285648760072524563467985769113637713486659377095179279929093142405154247327812135280662827982829771402460921239209777207219362817122617908648687655074475055839601401543890433943458254809123084063331271312854475307122248298383924326263946564766508332849892354925814401873356130734041456010324215493533939240713671617763586300174900265906883918118162636470854631442624149373162790280732655445187337396488185904560766373555978541544278759797573227334776188591445478971382951644742514917601710404918629060918001569113440358519234952717920489220838084041310531687627634543116294139256202383933261534423661197443840284435204187748535446697043190333070591805458000028709676258132906249190968916040715985385430088422040794934803333635654802296758279355118298938168938133964891967894420063244259582276408574542874026894690903257647641917672073680163318037581616634533975803961939352895195252658036288669945988643385518909172117742474805405171382886933239482317706520719464021049307931546557417846953607968389103393197021125804435128801267607215693516461336863418472177403206308674757214266975878494509775606617020206520392559759894849129223361894056176606776860549055732034401783926982655325980409113398813183697166006447169678859306977908769198543792172446233459912391884337659980592183910418967319270510114092949010395709085324048100274573558955189100104033261915676979066780278451476303392207075892434218891704807581650736333682691939529787337582249909628787986790927880462120814661437210456218597158795850412189587621192849354270845120742720012977928948168841608594913562327023461871961496818332620751124502392604074427913648082406053028183369182623752016181079950091062365628675083129163039376349532599229301667631957366233776832651773718165095610929648004927494022346291451147980218107240162198855585409555360351320600301064760194861045584550145392483121319966455947779346062989111561195577222385427847618556132792304894639594312185312988714775633642771560377372165867003084970499440856392492794329232037027039112555082505267212044112208192186757672553168077762931094157275386461459483603315572739061976083025119020059560798496100636067354470877733712717438153089807084818108478176670563808529040190890534181761784083550581913370733937511788649772171051679484718835408821046731190770456936806261486739531293279859199128031380106660447158524950895897725198387768680844301714931812640816694238685243496189764514876817620101266348242812090932961329673506484873537654997133096086967795602196796164571996692781245760853962271257780373225633498564156948007723803523322970731725246806992036834174973978301753337406385878804195697165733444418502109780956464554484332865498852375446314059310292128737016401464547114815407571925039669830235488862593865940349562902795011229394281000151484022183576346647004063033579741413868448212444210517718972366397347127913307181241794097033805997453365838712512501266555677412026357838432652288625534972317640642572703233368030885478331808643773103612097430060037233462483559288912969549779768255352832743243925562178790954746207924385112495951252958069839428866771409300139895795792257548577809711332597702317280794801923707066733810083639168213679817564223369896434885412712362506964463207447825890663897655453288931989325298917171984539802876872614068501183402117034752194863012463823099674483140680521825416118211492421872443142224885165267553877793988328775147413478855980378550732769785619909001112525913917169518776044200338017141296337389696009951721930201981559928222616509502233891703146834061465457005913698176806169942564434729856054298714182412716756889280764303046208577919006719557079758865893751457680644271453651906670320957350119557189729551732820144787579597592646829124209536664991089425724814021579385627181769647815137379506262371064756440214229279740644434747680834630235081987436520380986393172568565144949279544837120365387733278119981127804669433926959364267735719682869312294135290703900409513666438536184564689753343448148077988900757412304956147042928149019765116475313791922617514266920024755351894345999540538073805467951452654519576783932457505353735242495933415761380280055921841438166696173287896893570351815769201954305043453704591520077943367901536431854352145875695743562596140959915817270444476454945259932416257892138813721843149437186936758373688772205641826899099066015473020321003139392163855450168379757957850705680139460423129779068571176438031796563174098377970463771165115487032964222253249079661102420317371631443559263542878295515127865162027592435767814174657125668663024937865793666216215581248892407131834640405108119404342913581348523646005471524674207824394206492953020244969482022487146551250959549106502231554598969457895261503007226237976503783105825391439729847868752516401304682660002566995425179582126866103222920755690492139540294713917759794786977406810488829271549556514884728896174327539320829561771880918404409002572288822724659043700240888320119412627455368358968904948295039338112732356581623750116075905125059870190544057238171696995326373318693481570511632521557875807018487525758527777290824423893181089526123939824597869595030874637614223660421604905735536145158247020772859918637232605495047212294190534666049129619763239775508806098543811198933881835379255935595522546778865201520157150558646738274077482729624367929034647661518728347179823899891537436639476160747529456098988831178456703107462073454515938316955034909258671332536213560474538978724302692950487772928157895218002178320671653254427613267659418397822626727912436468898902264675474941307624089402374997611715078030758265899858613505972746495881788482959647894602594936592143370978642777581138955179349401901546977248590281372008970455150308375612073026177705923055963884883368736744916124736135823840482840791745611002743835740539556571500194983133969979908903717021329104351377404926363447674913355496844097637400413119526086375658390586364590843387243809712712185319117883595500567113956757609028351327351345676501317024175090702793438712155450818678082242538917182070419725340260945014394735597588076027511941036601006916699179065290873704938482500428746982456952495838526524189928965457397183001973533658434010041271537668002156071541587761451835025964394791549130949520853626445863420573551026402325858406861809651012968543476190569279752255959596503371468273163096638609933583285773664789086475881691980221729471143571363012772195093549200430692027352352709504349306230153209393449486804118298330570025497150125328508395518442596739075535636360683260435634302253130189206916323543546621505170433588090013200219470722388980962135624350776476982195565823240755470617273194067622095124092714471711811198307318302270302694836311013739176658171501556054666855984889543615550619314941631024618703056123520108717223174595224588025628380901088841841060385179434957368261360866314418010365917370734879373340643818662267201713202159032485705387988247819973286450098268838874478091374865025777537149803895805053612596160773885117363095055788144438762603683432285010994665208185712092362764280838808705072720275433754455715481066654597225514155256280372868947002269305863631238365561976660934083209560648494027148435928637907542807805551246452815069805657622107430241605870534272891679068321029713985624001215097297986157537610421145006941637649866598006599607217567728213780432350437005304817696717816124960043907509008362970621801273951314114144828681970882896886218875083357887826440759107190473177398959150004185308295219904855156268741269401079463397085238181041537864646129691657708082538350652749193502203346441320621181786649079313917147183092825195774429149880803486973633535601356770556247986247251069647001388785295265118923623592010624058831541869082489644056275375563113787244973073288700838241863904192522892407982101156245818008067723502248264333955965449988075453460247800785678400200803520207874538922054999506787744085577440630509121508145940329207530616091072353414449532989969282363553374451010227504199162385734424551181093627207742000899490443814250344156770768436088094123762277007333691508489041398180087822909896154934628469743275724386172519462822074084021163566032328706851277747051758765418034768667830363151064226973770523398832008473523046180231695337580746050060513979472273100085276321205539850074303588275413861407425635778866183344654957279384365848850792122656534495960388651738315594822810506396539583973920526735485725366624355121448625715599332047462254460927870703289779310854396534914849824337438124281047225160543807913045407016074862723456867891261711638557279094381733438252662562493402811011455689216959641849718100660322638030733735961639385604652603821245609691574228432892336088700276990466843953708043880946055006225421918025635865387279990833346523112853931724172392974728780442684774663814900877193471237920261867122203372689099053166486242366110329969652539098137398524744120694898897333990462200006081387020697484514120087729907331931178125238634359951589222868989389453470843399687631423462679815585928381241687414706909795601640101943421635478983452439118839625706300940559463778655412734908056613721604966037485213866437452311056716172426800777724436797792473979676658965188074440734736338905185130007433070268699533277858501946096917297979159643999443005728090105916967502862750000501466358476291431350309496200199405216398209464122245463075218886365576058509772945444492029031625337863221365705197350386616414465898825511682967845094463390983987823461207376065641926987586604198745456898036369854812734072279687371548262766063486098346437969963526403859310912281718111925429432613263758425559054631730821253902346400459050856147753305544323751337193322687528201921099132581291509041537374293831159241447444812369285268041445842792208236437952292436502666780149090966124579107845371993901720599662125220741961102039495460743564970302573584019735047534718926761556659518599390134852070330535786171650837603556446970488660183234472004013843738965985849729810167149781107663565520937037477108544900429630795240816320881283097071588530187882276767054227428466060370036902127249348042174860132033936111775417492227487347432355836105480876075723965155808738019699792246665874468606457169668063810950097607606366144084814307944958455318446268582989664398918182814757648929967000291481984652705270884824529851597980808765992559739405174158618360740131037975423012639581402890803618358277923721103283352131297383145687572992384503869018200296786140884396746423397000532356999602717230402989646651637395311094664900144475852972419597988201880025284777967183708118661788238365748224706154139454316459843321196589667721087583144377602897345251237277956454220927815844284143281674069117987493286175758971663413229145322246025102491364970902462656474030097352773284553075418995677110456639584185809981726831636005364941254791579826910835994212659340145394540324158582055866754482702532795900667575694233434065890413833996269561552305220486255207529784905666111712495887473446257841554972162079082124237121482191089331262138060914725271117330072077244934763191002376199325376455308914208824483534243209553050923304325849202116664741773937855645215332925090430322503409917701233072886667415770962505577746709171803152972759900310348772514665935461447481792659715063436600375497896830558721956923031920521145042582358471040067644818669521819658823646458045859269065588217518071944777883594468088895630840085760635671666641471557387590780817538136814054766190066217328093119587454031295184874607039209274031069205337667560719893778270618800015313766824835331932716657712650712761546769062443576741590307236825645325508615008260164094724136056098824470629147987593026706491880767887902073472578601501503359981490339766757785500875708474799928426566863749664768521953070313232102479259576104241651279810700055753829924822206151186650216878305765784894540069541154002611900460329945079329167342231896779930139052783688895601573055789746598188452038932083699681581517348016125311055563199880388214730832333524267404509317298996231280876682262812250733505298965504483166934239651255579187017574451592318273327269967146803756926020098782530616175471441624835047395714279411659119825231502211710335683037712556268086251680912629514857786153775391814730760238958562665865261603261217557505633057652826871529833559088120225778285563601196247049806622649574673073764660945413467900645408067143919633795842829951544704706266183924019068583615496184652588750382996365924983788010155084073212326313970992502158641659208988450195185143827146163900235628963553131853633911719989831824416711632006594382304897296346754046771795968114718769704396890016243248827633691174919324516552714231256768003426833383932507674670007883530210509275256288835269776477265470820415030502671034005520279193545975629345781676663679664671048067672751228977281262292820751898300962024282060908790467919563540949385257494477422079493027343232315397321848658907212245174486150345883629185547236777376848790312771370541137998166841298518062237871956686003805391854343117880718524786073334687892829565820515956799164431915037543484778089183219857993189424320165210885221999159827213159222740073162919248481380461893163675879905314183494134575320392103305508169564196915532004618647444857002165945893536986289716167094706297055301375777408722557528988791876116803409451629473517257723886598276278233352762901044015020675281035254289927574590059747831228339427853127835063684865332456740847666457408327105870971143679762418407285910064426118837271843963388677164923771700284443553803652748192684345181300661594049759410879909475939908564800905466595799622249104238850501564602938313011099554466222078965531438768560586254417547470330315281723922822086083296907376005783425819184055629143686144495603218902680643663110967715270897695953423239621759538128873334225451335218517599079015785700341370971359927752416217363699518236390554160846767541204740516383824446401123204566204437112480461137484928196949291779189046965899599405870078260866527572969680672018305183190262320608070519138303152508092335387371620915787166628160432532052807580788409484324672716455156030704360753009126611675027777708661091912297799743227602558549831958932890914144594308099594761069268059592219181491847787227915865539492270974586059982880510939899587552221046121720612516785023434776287597632858999002400557253243709820820285784111419742885643902497078093096277179159768838516077824617781795292526084208522309101933285210006307998532871596044031079998170316833768252912157050457515322470809242905753526498106040341945251871044628400478318034527554847670895729423196682030651470714905405641926962951177342375300921762531902228176973093933166361840767204244018449104916762559819282067134098166154826269057481472845572674569078499405599516677896909456756672745526715184757445409659520207635373337294131438477941940642511665365165694947159148238306803609755113279983079219352129176482512368162646313784608268603420936310915134865830704672688266013668101205335434688417694213128665901425085147187462165913722254845848292689317376333640220137117428730321145977345052479953397653094494584418540635836012963845864498351606231922533385298202899843920937136766076478069581698326767425048394207541583569940148921131062737003933142359288905977289920479385152971658659836001365401514131364217621649379973198862307645341604200369145230603423039213090065671395517104652928560996702678117931936765002602471281206760657254135853727530528997477383343982767703172368422680345514042621986345316623412177929273165799192047055585961838004321099879844342342617580382504578717280011189722482260228936697669273358925354438460599412177925446233097276639347233613245371352510383226197944434836475339585923064438760103868449639065682903205657225449619546960102640302052305263709837816023158495621404566910142137126754492639530851679857880363369777613376116909271390865726779151395706922785448393241585630885337085261208868406752315521951778409488890610604538074755071848898297033656848847390177289532330557913933512727027601782626203679523624198812513480821214009200643859940292710797899655900643392201002641259041407545566177278301075561316831899542091176734437334683270376253390692345245874460349799059236942943774802606328538430893733321734697447414114003339706576794052897894397073191819572666647015740589918113103061478020925723109358345135024567107294377979439547800704194489486910248431588732159521495950571648756832787879620234482523580301294421086268433193608931594491827102731842185626686824892342381330167200782016683437321845737932842897767038781941467532212549651077936435535195484854647982974422384362580981173234237877074778040705037709421059734523766578240288756778306125892178764991174550068679853784071898758675191570612954767919260148708291018345548282520792539366102296774060452202784843980669295156587320340589624364120464019381205233419802702642321094692235062089059488984900205550942982441318771075643516368940603319253239167600554200819824351898671822171783072145629555729015519206453836728893744477455040183768263807852868464247685819037940045012772542573182515763670765477668758799493787379963725647112447882909112339134437983281782763650550890531487732436140914200205153341442374100553142142628858089138602065464907516483254061017086502099934266806535879924337431718808799475208967647709693380499987879019113707375626352862827481727559830141681559163553115914225397013932210550747270098838839365377632006611823310625149858714166634593190594393724966134758581839049211733430239978714470177010587245047466786324907358944923664328404510090634591224465299350200739951405713548398810816212497492984335792689528803787307000743928693044826113974301598173967696199973921665489047617989599257334459928379620927107224807329728606348017403322560335385622229403248029350761230550500747503644524981615850502240606262049834344191833086121042417656667002965820903203533002806581369306753772533361105954841206828741040830224743780078470724814640332307485337525520072667404098405683462999313158839044893200422205015926104499240679346710926527463849253939052045253158365997664029647273648427081223180826812220568731716894788338906731033769751339855689982380230488464377661148254509302040311042903309263340095986008345051513172285863687311758317581293436050136485543460031804008826134126407701204360447126746503100176815419438689037677003588739101555803145729739089115023514068628276940985500957210512776710484629497451017691627650900076433153503118782340839212917191995206596308837280902230109490730322947810059833661624816701868773875608697957245210918629402464789033369425470357289680230744327121902337916460243146431467231134704818467906764477264457210475509382803958735386237266784262211112540491738844556700399488548741048046399515308541193395533586202251391400867227873476621799311254706239451145197493377818634552669046863459033477312928709410068347925211352843981318337066276334342143947609419469518822295179683874900124567508761331702297034960301867439727636850050339464077778759223971335694989379964430391786642666064124843767667943856454578190808667038613274669669731047760352558240640439444444635928601394847308480676164825785146615620496494069163878822826094370983660297931477862651291018189067689033056346472662573438452454405931290919259494298751949875089219460211962326642087428347801552965377152150328747877249787847453452880474551421684420696956256740695730214959081500818466009466427789807556248797047439744153987254687785945557928368948162420696826109717406528446313573155145973868664543800113627169306910608798271579832866899176883320828857060201769160564637079037386300607239445220197544855497937766964799973360950351807254315832002582716712107694803109574973653354944690571160555287301051420158325794500230900558625325722376290510251989662843840257531793388478669496426616928333905341582894207373828783159255505757903268761693032383901022259797824402188534931319378401735971933283876590655378231872868983988566062166834413995724815075968343445716901895328683390261469307981019341656755392749180731047073538244372339505163950839431442745287362393955372916088562192946288140452559956733508654266465676618606530895412661527141103206653885347839850706019597423139661356996667860861006716564595148022647121362304059489252637526558140840515712228029289108562412151956038539225206981821283257917612007597502893600063209105325215362160081490531257073821950675702973897301146981861305670033129822605570129570273828969330315297143023941740927609593764174791884093034757701642079571520417112566180293208546605069532901915415017394954455528559221684189208391838039557637926707643439767057989376393604035620110897474897756866276009944009207402609580007741246169907337075950526906416665815185569737415664688164938780163951717968185155955217322711161703335871213383573394331499476458517809648702632927688782782122826327165291732865384430751461800440149564051948118719662481881514028157410925652191303510774144126682921841986538931908695936836301350764042638917502214298962800696486953235386769006878797247193945774463114729999180668251199325919381796251280178548585844170889832192775285748502271103261719231412522009481400971916059560726091584644995269229023663320046609982537361238749798044519239285572849746250279830561409709303100456336168569463094279633838650835153938120705037169119707806807095806373101065642943855250781875415608712899348929156292831978221880747160444340623053753870085987395819092591525138704401975632050433711591487769444858702071944747065356756261690400945835415183092899536656790019168596211947532509028980478710846397751167292601001861748517842816994344039782964807113053609967182567436280529298669975638979420125623919859342384298808895518988846132863265014286556002778388060082562522608110955328078857713634712573984611746708361204097363214616467504227740730236901421405801074633522692073099055627597569332418020571761548699139923823104930790663105750851533993698168752242291585484004075296694903028471498530492111029247268962599370080784617842756043433430397522514171108645238168736922120625309716555946686081817200695498342178746600130270881381120236052580263703254778422334217333606473251164701358174530227377069902436053191761475515144497846470836161506631069659274848757426240389158486035223530437549389885021067367891297257124283682425763898677069519402599854153020844900660418328799606418649053376902015805501610737340415609989193793863344290037759684259652496696209257671258180305389241290244490048839749303684685676770075281428658508120403725824537716986496247781069909090244174944814592864693789867248817210141769006670926632235784895247943364373018901822376908884050561741486695253520206262992558301215076050568415928546828891361923562364162669558026878152184831695095062325140952513495932851937198811095138151681252914581540396526363839923103234794995286910159886897103710981457181296665514025622045135889140661826694728384227880014475452875479998923241646364871410679305108460300699796210616088729126264311183477746058642100757412545499044040624001297202495419696607740206348794938815890686053751533276220041804001126208892787246764877012311638622739779017523709494600239461095467666677212883657998191232543643102476769901717783768741968184289597976438022352462524346430712563237501831858089428758871725717020145909789904827686830391112726018088054047849071023908805178508330051731528327716690726261013231843697481066551126102601137287931302621294240078582525006446875678846434381933654435273622100467961848748534862154526121709310712266399481017027022735727074566445508339183104403842523334113436418319096200595103084867172083532799842509141588052447128992601132511543383101367779665574803879070627813957431242425040716254214538283291097931331068044117258327953344434061984712918803983102943508202270555870455343721091335403364622707316908294110377258243093106569337769080038584747871303364166995482906439272726009071534974632319888542475189997959167059500715967294790625383681015482845484804248878522356009048201626649795064969677805287769858710199033668221955829430431837088260468329053286492467817494736566983971658380649854517902050320630396970730257968545957588837398256973547057497546912431565366075947263046885035799494567200981780252332156465694698054928924247836986256734783369900033923753140544273602331036169568030568971286777935148109989577031937642400369439840015421681385960542288385609819274904028657255994429113705202732296934523372762256106702195016882302520819864031890917099958488807903672761455632798369108062559139789992518312620599628466288861933827327449637774437234390099371783731864194749708383110953086953555930436610333209628850194714241937322030507447141888204860012936538006718487629053449414770129421932232832639139894928814938188151419116037212988719839452016335740440319478460908016789356666333323865813281005290382550819228714510905655750937312419511754219760002958565300158326528644723312694642716110680779664732388925214665526629942032336738970870990222250463868270816857469767482776834028127435465160011364943955488921139063346402136898852936656506434483807978909645630511419682171034657365074376647476886332043306293596171889097881113937956229340934562115809599976916044968393133521055999742527143813178174800936735789054320813937368696716638837135897006977051977080873632231482216889809238111879231801632811057171528484643672955087572884513226756152003423200291399515917430182041872599087637780112743691007890072294090546155927737880660084177447588282079225680686443750650919819575122572073642811293199959608061373002848906261307144686914411947101048276255358169071425811451912709167244587301526135484209287760821612330263608019593521210499576690898183596892368774013491936176273262605947501678972933843276482013568350726314293585351108736437584050575094095447229799016971197827600509384382608314790003889259321486166339935779286267333886679686401684052490125634817715784983003050290405041877235636028373849902414708679845659343365535393338570038833854864022907384202728575322680014302827775237152693280747458401868210405935484687908672573823420327443474100640648990264462374895830870289853151938289979592788431933394035304506837177817470674428068356106049789802086988715245282000657325766635083542455859380393520266783194724252740934828764142337233719906775352262610732359177208599493124544713878114257095556528552563968191632841435372189193489881439979301662278862171559946133161800386224159598916819872682167661855651843655202518411851262367263716404667030337203200254839744393388009224404193466129339214145660535630594798051948552933636833318391857046306358272228256570886192803943827424209893867164706687711253630731002057068583821217796466096898807655842601143139885969134131967342181228300339697843604257643990059256543964840761899748759146565342866852120314041613065553085600210456481358093504336152956148827544147211536265429303552065414432519759952311472226253745767419835153633661043731274697911378513773979541109208138866416655838582114300428558908426902519475900570103031815921818455270001661515923205038019718795230365462626397423661529223090288073293452173993954086404293683603960778644219984657019848429055445472542547273908598447751705244557778858139015349909386308784276277121278897730487390897227405118280141217441282895017324506512548346949193110416326960244767832595160867302410871029036102324962398481646928879831590148121830200581090623672393057863149433376027166781452094723095441123309345201337442232273580614708969161200894333528460375136747196840908925654477465073018866648177011635618753415207116921702808764022308442808382515699894686293840396719956547943718591704856432055374469614954859734052940621071625395951531030827193759746025019401351970674020189444293248972756992269677448395534262761255314710782087419884963638962235156985662062812233302776235724222707692591314521506469282700652276185749756234894519036215964960091462279327966266558061064606069621181218763274753425285761623389840574250019181179335875950475054346715369199806900810557630962827747459995088671897110168836813324379773826767784422971661133361749122059902739368849168584641059100816009848429622389295514910053797814336742096991673310303151780114095988600584333937977503140655611023644215864641218770787593992474162503981691989242018368962053838201839093204711335031325200928298469205267032120328534425275052925934804785527695928314666585899433636372288957747767645188574361507428531689301345448264033604164224495883446154949262653602683605752108173161631547897757634817162343362489289982727544167857942548838587537590268062621925552076670794442618880253896150578780222548067669093304305800036610914854466191562087554916813216858197545567913969380923361759110501199799574433944214541150451296699428821163732225604942348711735208648109467441853838684029411316684982443213942093922736797673892620731742841381766753215550007324726001339376948305844896078680348008137892244716127916948279156615411195678575873820836310873232884240180342524700752325007099306557768178824605626247682695745643236151881160047456563409197949918094655125671662010361973362155716225492152727984273182010937734492161956603377972663239856942557367651266410506978245917227375089422164060276650801952257620310652302274549150178585681393507333581408541904074333223938610150846951141028683105393755086371436820798704914600957916826022480862223345068130977287027410966305401792460877282341435092943579220343643568832065387974037266505549203500357395103160481907485454352951481967459059675204310881039994130359087469804037466289907067308880890032359777672342369803933752633354365653993015066660761950754758769783098167669996684678552023004337475428604286994534379640211795524316246062556694017550353509768565973731253934991616127886743734746537713981915126827565352474461782110990739811091977000395905404384833195523036000653018032897429825667452057848625748163085218626876981418814131459644647664027732507328726105241604231897085628690776126541719961640038082231371963694868683506019700499993526113640379858252314885607206834543552447290602307214304305312937356909883071883700194318884253589714538043858462288498436223340943114619477585142538045602694444792272835127536391624820809676787190369587229365967274086535113442921744206912683881226111989243212953443343363840126158122040087946593214062451564626122302319172629085730355053207918706798472657395421653985646553932629777805299746547278017620028909973889452092343755212985608404612949989701492312774868658548807915354294043488948483228148549219381331336272105621723519871290576390986933616555373278531292504092154712631694316949479640133151592095416698130218709936036979491237826341480136180247758966119662198188267036889025067702649907275345455818178360207777477811274477948978657604074942653790553490435340398017781798872776540147295513304993470513893982540780405675842851690162105785391307551629120565073592911743632689660181790438831857976864789912299324864469053139198053457073869106621273241676130837089898368953530984943309813529920788600225144934609206336274711176233391886432492452343294321119449488877430504430424842771604009279587180118437137700081342368444246257940995313709234664666319618788442998287605897901100388027523714491840232681876363865925209360017197365457426388249699277158010449100102788333485826414389173974027534834643385521160775030198283684358011525014122194250574511571441072664052643005104355369017392764053305730971285744775732585008912929090498053783223479779379740832777507898061418908445148903338641623132800547484284967829741333630104904404294075207964862586514953960430655178847938668792680035141698934927630692710888465768844896019789197805945932916853148887992480210506470465768021166680764276215174182656428922983877671011703112282220967272451763692429037306929552201619739821629910025116031296830540079006741855484055465132135769541363146110695485768619354844993085788227655185915244388731538136477008469785870823390844243741520678079181609110983624671855440949852542747639890008726180374598302888226573748196330520871025915821042498258934196239745300467031171333102548509951073229395881366430649767608611906248780285809199748974137022961988690945681260139162688852767246986557906859176810236524111585776882567923901598870213453217727220958869272405281462167287815677221415827247612863680403960509475585295224990895504786622977264113140503232589073231197419295317687330545713416115026641933913382186741985566344103035574420308252941226224737321738491845676518063923488448008814772958138243088608176459784925207386210536181773053014488427457911876031667399845718372026302313685510328208320588879090477576183008928508189677647872943896901919621798014304758752814732009040458388582563673810659081933343719423795560335351227823592133279378282865154116347557460809856141801824228356755491856185514404079805171930554710687525831910232944858134408837948399182070755980285692699394278976955371687900079828864404000258915260290514501507505146536917541448717526823776504836969602067216433639600006804842132707806795585562117731991312254517243076736934270027384566001302382644960491257034966589415628724100073481666537713273782549696912750911217692251579958356793317470992632099491714311283886731342467437473590639253719008190823331875960151732964018654288090538733146377686986618114443293293797357170615163103703087734788123985006111423257547160280473165815120752783246415092654526611727186978216619435127699695617276507176060217066694351563917238114350832768553330283807758430550224004879851454925928897747201823436259181313898392280788046956653481676573421340010005724511864256510183038062837023895559936243526835538943631152093107211580650710842916562724170966568516729281532954380095036595468409951551725548434015386545940138368761498761796101263497029753826556442646243657290242628147639652380789744026292102902252490240999321575777437013450179399820390665954132443611645932406769471803476215382551076360924613152213627414191182117924277584868782154770822077444141970023789782431643706071414386766532484962307041450840862297945184222258047824364463757085793495278900016371586528342510978469176217428256669128376521709746954593790642319761989927740902158061506757825710084250647039571579096176615291844307184525610536678142203092808886834156152940285453022068867943873846907397818371807521308460998617814635005473547191769553088883090165376716029423211992717431537997645011529270235975600412473795296129709997630996998317478611771323807876873921063059545624756658198050938248879326336560031680818015357750220440406846218163303488271470140234746499613292257187152602537238460932183393741356614296454168442672096870888133114563400303245784659048171605059248919913796542032693203267604687521749894490704201911548707850241150710580821065139172129225021047140508068855507633950179956661197927455571120635707622833273003404639020372030234411640289331086427452464323917587951234221417232126371090675448985993796743353871407815487510888895970239167604741205548709899176441941690963354360719525302734112535003547585686265793278187054753767366757421591453829711610845765776315015584929002962073425482183039938588208916846912340991323263053509091716165664087727149806859767590986849716349428099709815539411803004697837595828359714723336655858356620788568427512084133045980712825383779766043039774167018957010794662838658437298528802800286491402538098973274662043922123980673894435264371326479020615214892039573049683801760577773270594478910533096411711200992595988935639387310850032339988813870094802333671834995955126807602133589920075148369759543316212194690780318158694713732957118874005229313001689041936250265540612331075857630697155527071314844286780319084149995842476404861386498905327024559256299995979838115690817772377183934013804023506155249280370831687987080417214487614522880223585985804025758289003174984669895909244630919656738032370033085678411770737392161055641185866147892334829212390996587650466433196080855811949140756972844359083064128206897098290862446234004251545648700832585240070848232910377349669390391181672275302279281943822222766002146160494507006063989351203414313218450435120402904058927873714250200844800976771319221538331721300330648512637006262594742883930810172993710510147074117561754651066842584554556156765230403375725655815840085886804440420423756153846442699302741073160542172412408493283705126661646330350515024790205746209130505246916232318590047263397418165083611410416230611521266123265599688808990131805908088708039167018578335974603438663901598014986217124237356469167882697426700490069550003981493527223471669335487381530853549129633071271779836019648855621962368451276640896750124312993337786832793989313002612153416975160016242944858624239361879508300168323368006964890825035273476642917364582734987190035614427186837294236064271335615816772556060988097212969273150978369481157472442506673567240629387451714287760814607132964143823937310842179404625924814067162971262562941286549993282192902172099994875650443362641124432186055378151376971928082495876216542814223032290670060632240111806488581828947198334300660772690755295733660098283189120925776720975997023703428715601494399065630417888526295179920927491001313925695660514877848636932823955368508252430982785790499301472630717454370245349452099454036715180495348284489633003554826641113185428721060287169834040024480151388813889736458803753107756795200688772852615099397195848528029632367134810605302433674793760707281801367936570916747760116320137070564698458227920149800202583376518761187064450363393652752298936468704025798915013947981549673084574217771415537652714081199204432497685706383647066846343525208766575022381102507645410947276756897405784484013598785482121947587988796353759873121842226574502965923647283467202499682542441905524156508563161474436287672007621351277166470114758087473158696290333086043508641245909319896659370428616997129636334820300162738548861322551995420842524665965956374448695437016482235681746180614331943149064201846730314933180013099228533964479062837374983514278633707389315528917799881470387798701341551951574581578377490195399082645805469441152319495309671106374084039827640096932375183371748812376690493364615509998187911912351402427534657510678014741782502035115673800779827101374706532030073400988147828580831758102062148940060840557917470883014791613393893494633520653364024648115017190270671161138347432709754826270876776501554433701080298357739949984087330245669574861981898220856885665775805886115572245392830631260477144014872278748308670142754305018267328526387055592969698391471201918122606319821217649545859069836458466259241079124696386641894235620713778316593949195826336407901676363260149654054995598557882682731929730382955918272015247705300611112474743205826698753369258135045969922237344962509492352395278981152038689962965881371203624969948500108140359360960259844025421855326706428375962092287315522877430626130557318619327944574461638296769600004785610867121358804956921955580169951585460084936840047150404089245915053779006503213701293783297121900496907543137970182324833399396482418440262861909929686934904138517800335115038358583057832080226871275699511119667066081365267272002958244687172322161383625811583148305965752769001309193547438042175028158576108789707332279193464510142301871192300338458085684052126100301064602995718412693128802953935284417682568798277174477513781737747965834839412598243689512527387720990225718428079896069659134386546617721673188061564403175740149261780714800387953372363755180459206074517498412466189274611800725337015656698342078441702549966886220201460087033114560573656551653216564159339626436140317474198630691499802117266894717476325609935581588643370563888312021977144149936257261787943834136491567430280130794168211111163764963170852356855313377188064837628519311538916788898522614565399010740850430157690008325488391744534384911185026021061786519848820705723030381869985925476721061422249414172251960101009323598415425354817537556918497224463966513941633824919073400159586785704269292381583927074421950021142706512548432320113186935152711448933683221519735415548175129408898425948947223811304262331516268192585621482354030629727203900175819667864361000405717966361725900390838436188910006767110857809058292248724820538269862631597453601441616861895495987908903815627631708483035546669881560660462044602852427643423776315326725577413661654359904122918472794473428422341756329125659768719362411349659716647185343383320592540668864464259904386907140106174715483803106008123013658993684080860230926672427468826143712709732651747563544902041743116941683194177507282632927096973436438249414266535036196719684176297637972521429987725167082961392751743062854085176272753257195226568088733800921819857571513955578085662461353338941692954039811500038425355033991311199810540920997253364868465146191791169817689103681462983713083029093227010865266217900559764620453628430608156530412878252855795796135738498250425479206322919025896370303891412662529781877488811061717264234459217221683593123911238090524048658457659167663483729636282310582258700842694311465546049406381999429519101623732715670616623577888663382675847843340321027067633707957089421744098586273331828958588643331538208008912405424198546526087518567926398915195920286194103596487522524922489684797477201864524005828631563265012102718118366167271849325720857753192175386262302917414491475869981477405058577748702465334680140798599682892523976766779382025956215725686773989664151017591167672056237633551957156735179040298403477767947557079837439617691215652710640240904287020755247724700739211556660641509668506419789186294988729029719152270146042333385372554028933544162975627659009911199078919434616177448208129922002593313211078031098997266892844893431071809872322798398793616080088190807280552209909151311177917684780868932835610312625272100720072522668430978053185165141246250186383259696932127642447881517618254335626250283033630130295450950242448892387340847650322890908425823821512740382321461478454966508782918538130121123110867701338927118918250545446829308691720625199688021232975635499855439997815838388267141166183952430196479446809475155953644686152625182806932810231883855858746773469972872346326704583432631699578324439083368215754437206373828978747678090475290942873227991379658506103625291619754656260141207711948900150982560576848515904262486654148252996174026559061369984389732959314401904011719891891992882242721857112957976888357929943304389072234223407136824259457522821878247578073460982700817926244660966396079450921805213441163670531297871450693559786789496745231229314910635354891921245913122404597053325471140685700675537666885408341150253472600251217487540127287257387413743038097389431406780366884697743866941434622627750595115299354099116249786486935059963833432990086169580433416761958238926102890306667675507494799262619613404131222085554449012581121913494197591569858673437181940325317607520772337960197760537731890425812672938703630313552117184676216704378808436681483967327681004604575252923187069974736119091068854830882120776218883707341443704126757434773190828319641807612935602535522762239715301505278371048806572530932022439312989499867070139973174100262685772087804014661443350725514414202587923861091825508047463396019447606051142557840897706406712548629258341073951016766356165771599569265148052028092897366570541269910104315639841855354352743584051098095362382743930291711828636391478183035351715139160673169729967969712001396855026219595635397361911790118468017010646877140282459997588128182221598014500352648376506374885514417711643499124791541743402973143585942067807525744887873457446535807822795188055040433412744907266384240877518686292636899359294744558473580971747705846053962713453818958741962207062749272513774973632150152219257390662127694527902894603440109029725134463186421019542657854078827249655751771767106761223083881189322599715992882165993916692125837723647418591514222538542963030409259702953658672287863631056540546895045957869646947962562875759763503635001580809651583961796654425600017427472034145920682361706543813842227809208150727185978568958912476248324902462675633667357894459544727715687342077058487319383861011479935749293044734859825685520246452590152261379163126825211241632119994193245904724707570616010785103824780763087249885633010597398243268944204862082601906176161116882505533299431531593056633990793412406665129016244975938659343772965371915368602181892902349527052036783801308843450418457645070369310011925254963633786953557995189527158873052541210046628278427089462746342042341786627964192160906805192870834683705479319270850437741624131175354010466765837272754312161615692261639748511331969990381994106114685921748445599843609507184047129712091246429147152434291093646791103245095353069552402380368010046403714895864065777175049231700937819199197991231930893689697710822642772323001316928105430488234616316287569312901956352469600973566699587279946079913160337763764147654630418583358880797979030795928342699531580038102679889441909681582887260180067849663804853861848574816975450880788501623529847634997430504926751501688489214958474188135632316936600667579535284789413881869979586140209678140469491107868095794424118625413450330877565086848259136933360069712950676701193023481554853351591248022097697854017814956109454306410680711328779953797456299189525229618368580556820494356085410916609713728732818446092286274322389792601914864063547915859306161396608029839276263131298641485923926725734295814416629435052817836987181810024088440583433119110262957750108237264461223846991764439131192254056621988267360483279320720201855963269412069147590909411200705482920341220243528709227518368446302880617788644191469213033364843468713723154464262258236789647681722798224778048720510146882663666729675164298320339591399230733117155561252511835644226412507779501853493690160443585799105661170132848811465525940545279249385487842720759808438690505107358620592845208893747218158272746464968972892823953062304454624834130748783407123036929705718296172343539888916114267890868747465425001459748698784381957030011103023604038359456847610665135930691363776309225932729370116922869028463079905182643282223833828856983308434749007418987642592157304719355999290356843540600042868157606241111725833839791112637917518716256595793484222851129907305595969153811096429383225871686469565357427821127004855275039686480137434474178930136130254817817609392189097661032561873298363626546031360582998027432059898800305760562343448824709503861803306793221194938210040322411927230706765103786686514489402559244730741770170064237306408274192845444685597756318703871082196132726349437387589216313530432544885451046115424274276755092673706227489602685830898813807937841998330663820350591580084934426420453132226702657951764781562306584245617094467447986508824019438601906302947531524926624985966525044547049718754903388872115270040373266634553441120396052895673830071471640323634232497382041878023380125654870640079741059506913955378434221270692182702558216881188708100532267510323327773501406552971829756864159205721637099775190711364940963530717682505608357957065948895385237943070126185889334221917772333595774063599511764688752421831596838502238722762705921383723732235287361991389414202620743992863672585631165619709467702811861419638757704018899070751112279218125259987070912325412121556742975836199770547348503276616888911851366089487225375317952345531179913529665334461868165325058709350971026663402490164657102776370272530918599981259428724707340266144126661748778657295474082431219100607182749445639000230131514444341627832711926913836837642076722063333743398225760813741250821119857353986380941554553346505155600759620700590815643838251944846069654012402066241777124872113017096738124229281506024043655389633204725473440286465877194852782185272435480300468356303812831256077098989866679895481565536187078870542631849118528206700620942252976517014629302030779920217898634957993219085488706361053854678672201703307453181417357881101132383569283814019820076614276361569155969750643528508418565621076689153583222373971130186845059079099845669685426528937614800483261723728770605724730662365251480403908842541663220274244646787965033343898036635669855363603968733289126118650201710624154014402799252705636076856541153718124968203523378054249258240777049605457088666184930587182805071173403673021512923310650105280645496884941750924996362243224553237435433083930891569259054299908734737952414645839637915212135455915597367095229030083583409573726814081295940676777021702437121953313856639490771693382609032725036624974420240455841681324834657077095366454116115259734621393548147682623753270307763473663310483948866177393510466340227704560656854133198223313670604999229440181020508591166328605965616057180669577264131997257947764849012467814269183701156770542167036045365232302382029701006813054111432273950869961397878787806497112180094339122767141378222032738542473124405333574296874574941685552934660028921627760378404713848306215031733902857572443770886784308850176807407239987737123127429525029338251426641874523408546767785688955373375186746532425730831319990910427861339146014097691552392527450674908547793092048042118496496849184581971286681042187484588023510716681040283886220596435762623274613067672071834064898426425937485974036032233452197376042693930714898706177489351478808984575905277812551860664491445239361207574107595933801487990293155672558743034359846497704684889179241465141060291277686523144914320568502192273613658609316579414160286673195427272538801949448307053387250766596325791508863972059506977867908030028526192284314638438809465869298032233841257232827814995085349724510792138893343411784703172084764712476400638528949335760865850832620471274458827445171348276086764976434840418384906190118264810254145411516216550023667833102014527550366487024655125509480508163633562469530286440425561619970871903814881219730906014824329421221082584907053911489317424285685257850665234583751742491348456114303863371538107985080210106973350613272947729778005567307920337864163928004972882291549137809866692924498808487086731592622524930887210089779103560446079461900005306485511111929147399640877136010131052824842607575933778798875336038589797939522023328620797700454497698091244966349100082401038560808670876943252144852320082971119468013296416424987422107256387331705856301113240319975353928814459587071024611444613493004078519862747324478528553913098541036793571612042678789274864780167605959329530529076618907834730028789578411976296224330507992621932061150203303493661020360589391080909675111334156179223977805904140566979429169836453794156012000313186474697028438806110006458445039452034492811664212698550584314184282516097032685224197158195148834324574101877127083183937769693750660221777564244198142595121396933107611299736678490335042594815918331303668420523888136338406173535659595411332922381339767796776871889684192332579449618558014083183043685952454434257576059218051911497192752615046204545287968917953180655269298563559559899466648126440648406243105575866270385149117158315764754184228214906749897797010601375775961321261339716029842480614898577078295102700868198929219448193487889677435247133070715668186695973733076110141674776688709491925515650389945701006973685954857079119329379618602168720766843946211626037029514310934735834964488269156670941629367171332652701376281237691788424937980001265270248452358351028055978244856780815006957194684599259383929307229678510986414618918172389199632744550090587037895976071655651438301611015489250673810853244547930346249621205240087896481583235823789924559704029340613717452069301458268519986720260337351105257610166673519161217563659222995196481202311990243057127803104419241365956519068203317834392858521767506505254372157874692759062094352041175170244072387937226702673564068984833959415368704214978476754211195394850059705131912248063285266076614763407270440345343256505295969723897049915734077922650915953589371358381727419953298285122571666487685345516198746016354480855012152479734128071603841435408983876870826853883054794822805036727410122228548560771905696540866098940119630795309605630639721109367584205232231753629969037328239746888822466001649192500121695715966344590966976629029176960266767666486811133474133729051182562037452287094730398928537210068856375122426499475957453446224112846549818221305119081449529726677708405842915390549746039080801626220967263614050856430701038548784300661026287711380859316502565687767026583459208671674404570486796896316465221422962107881304008026190606265692577766276163533880225125787266201825243822062853013290462269960520428936557695584698655792914509035379987266556388070016637696503802725276716654149786617527851841746125331751317037198281443201527681077698170033896798311558496800289741997668117035918708240060839193849374053391137990179460823005093002362235108077565887553105788777121925931313045891134585496192476770689939209730145610296929278085977100209305486592981316243535985225426435915386602426494098115583166952808428593821024421789140556182977265164258584478040755132497480102950431551442656061015207058686820202063853391039104297065821790135110952723595680380856348971288329289548650581103348451773754297620689775609298666363912743958179444684636868061519709410280872202406676620288941667720525681759080551238866246275270086533927597879245435542894201053831309312820520790575479513976763027109188571278912311956610299215661147617607987789824731091446429621497140995699340245586514061882593626613035143405317892798061809079091395572195105162843853680189350930067821724304570747464684556385179501662559462117720929719738784755196357066161964981176551274993037750693924554461213694434217762039423180465600832699909834239840459793105806785720042428014070723862502085353401129051086400271857335818259216125329260097543972971747275929352786581231406971749571266390670866237801566970155073706218902172231824094217990104044709002220742765722739499480205837156482338669141543887577944051530809306946212101212252591220125279571665101274142718706340258251073556521912578507828144809442912221250734511622729447822599836449080021532911167997492956959592620124380524410801789616110146226816209352401397910050849323201807621632745670493786459430035114851483921503174472768308366560917592217412244563407642106004652259345098541902464514790758832812056511296427803891304635325378376096740582807510463358831939055063209906564598422830810031851799907188426782022951462955545671844493300755873964487037034639710576647757398247872811460532271870372505077714676389018910412935806692087915102111579834153905374629287495184642493084309070509639942959478385741662197038331336753688455741374111526567310159733702648927551664623060520880401841450197021542991409106674569932261985496573142732758910005229020704590252283192594771132108745136713703903536439614794279945305709670421583514111713335146289881561787282091092497727430652713421644896219450458243786859707673875263630356064790462809068141339126952870936727098847977873426500097501080005721635881627564003220758968601570594347996535485845400317438048004554623104437343621520907710675778894203975964741263487509781047997617482830540237074785953177588542804382482193076697081218052553212290205581249188760506346299601824910227480719063207925898964492326596439168209019060122575495716042055951670461797353906115850553057694575177743642240451806808627460791792601486859249900542858310817325583434275106800373887099685411572308459302709171743653378769027376548064488594192588165641537362152793877272222583359341512809228536024519771118755957187697946612621962198438460064055850019790651217286071271104719039797758594330586799522806842197402617891663169893084456326085335879212432568752686676330116824675907645895721376758650790095178352860196506757068770739598958079292272003604674761086774512761743568842010669404861164082629416450864778115072269000311467304017992238721352723838636997112766828143231315093401579095786775462857860523451451772813212162229686375311561583219935913241903287415173441382851927238618183140673790899100842201113399627334039693408498332297995202104642753539207107391819494306276786878176431711483309269332646162445797567302024081012566511999376832800626776927105731400438211664957544422603308768535459756534082882382467630590234719789144991465972857878228269465778451104526930602979050192969189498749068228211137716779881794645302237204462393682905397888897415474584217132363790449135213529278966269605630375387216212546532613544544801067702009712840547345132330698816820828752923334071014657057218320340820068519650214576057505263624492166824661617194137803621220657799175843095978429124540724713581500092854721021311514928515217690260858415158793225764371568134933487236434348968881475432730019018014802267064054343682233263177128770844325720094253420074354869619207734450109681274874726095545495313035323602925993065036660371835680611990246685457984945579071202276552858640904612142973186634075155269086892915071628422776766215506079960958594372518678408841353300295980918000910813048222057248949473660648135363452217751556861340194303897948941761431865223750978126052028186706407172729546585729628660246701951550506706152415431402257722432252911114543818909444294930700148996934423748471711935511942054093636731638829467086423923219032870662988131489320160452113441411394898141955824367694813381641177543937873945306637038690756777188629592205825690803992218531442709453220789505724953299283685105332643281816424898585042784574295415568808965526523061731414668065457359997919559379589092754947305209461577065703235280214283265738153970638152887707269721177678486921823131494836418058772946845327979502579488101448931716275419528179870190266825051435665286933449849169039577469081586929372867399049639565518559839840617066293046734941425064066021841326259840735253321674607624157203752342027962476380438978226087965323080757031544161139588294179815152019692139844029305426231522611190411627153672339941025738919336252643249343391658655319936479894324205153426598131841999017082330764977556941332589762391546837020610625790161236351396370632669451669290894743888648533969826991108738654274544418264380537520504932218795671414514556425582308425242761158938004256539620697099828075624969980243179037576386946913574242543521871416685353131454745153581046464502892568919772553846300537985204452895331017533870480607624032197263961084630589951566792500623620100395579342821762980780898145103221680643429619447168230065688719752081862274854187319161104566506953626819830594863715138123573443486562827970080641523439576614263736028709953059265055277853282111293490176473213352085670522739271681940186612196220887312133304420551887495307477284467882729522314404175644635870794974773076538326218679470190218357298878872685114557006983826760575819669964241996217653408199297491253017448367949199237140255433262640401628286180009291740451114905276632007528506756364919313386021774176025604999943717228881932995525671342699328264619617256402185207581858448235607828251696802125523436893054834411671019976478688895127713711955922962539390912716901838573345858278721955016533712815249783749661518953353463190083646410573655453468581283337700727287398843528531209911092813663563469091086101945963897275556618305336957321133185462331759276574364922288705009575542101275195986002167651967669616996433836304271430651031212533836016714732857173711826786775685178128223823788524009168460951876717245536734576341242623035250617868577446762239610672378897000030468869653287520777999888400301740156173460517927218261346202113551717348171052674419103854160325416494375678964818410033396802320327906373868806876052482424893178092481255762835943161908944591800084736161616322085890625168041966043182229071744662710862895242954669032152700241371665991205726768952051666667461039944104601628229526165997229965471413917178292239849832164458401878713978439286695243414710248543289103219743780196816692789293156410234257264358496367173246381246596160739216376146123510295516289516029030652137311547483412137339020955971122298478899551566995551778850750270938991616687630779962552736013764400813730447065615095471910875457781596377892846388303198433455537826247622883887305848473200430297179682453342400557708124219418472696525972452403034689569584227136094024421008836139457430204744682666833556158993369638655899253129609185757606837374557789975157579818307022812109752217008896578742072981979989752257648952412760396552069311342838126954721862193532029374133062519561108822937106395725131017763493942860674936820149873686135182915715279992957333015415914402451737668157099183566070576244457816757228228946125272296492719272605111644185327034831118982094803320578782082364640606865628964883105841350010641210138883581455094424318515946136960837729871418056741832857272676900106322761187058433935412617838553112468480648728996612008717247724840000573072977485806726340122576382459086244680594654484253259446889982896896039294224968466203143406640126469540620082270796671257170924431597297489673092680375139489152422324593315494145738760774795261434224098815964891197619491402848181221771039531488128691013292640506425468533876649465077135919123875377515029479172725986089253035422078694716542018353006962720041058248779223937288729741299868960385535873434311785328282104042293670766107214946123813668734735462131522508655167008678888746251130838872253623046998340655723612079962363856741196605346779769779708323766651952337617058712436893162940136222036156896390549551668702861385359344314058772017272413813619500055619770906077222156784098101264256188310828675366390421089290244648795664650807035566490930868905997211433650954347972060546743669692868652472387723793432754841914272474982161314246779022696899686077769403484049042640728765349982556789769280952352592408615049108257098137724274108359903656319811995531544410234219172521209273668466894940130910782187412348387937157887237960234122904742632503776923990157546689947302980911001416932101525505691217726957936868740505128431966641480711542564385487018421184164539297436340698610130598368241229013258996432115626232358513065701514465387139575684575114327139175222859387012404455668098800910069666178156885829746543985609019643863429877757768993802864087616424274427303500872179005622098092750757097991992520844637892757419708552173897434582821194383160875839276251408478752035623121699154364304956401468903402965388500207804393950263158406369534808673693232520498557073612592188349772334854538284054960743173873755985838641796372825691311582163387570978850576479393980451414969514544063641174020297403368499233106717615647651065730920914229228792275006322186911243313564434696365813362070588432090754409159220183730610319713700667253939267729125700621447349016964968145338574546816665952296711791569754814359317519844527374054167993075602813557364816729236909634601488486881083767823771790043879094736926745286966356026003680471284329809507261459217547359093481088220983692755065247619264813336709372461545539972683421605234165863263209247412531318222978066580264050543940637185240998475072047058546298180087157178505407421603302793405151581094378085483267362787991463602142409302298440619289763095068559283194545126704151993502821141642512685940222887797192891448493873616765289864426572553999559610499866640427952578895759153080535333900385723914685076499344656374332013765571572554699104188591065074786278645416210914257140504876671547100790408806988228570410812138661356181962590527054163470072274291474907175770348010076757707318849635205804559538583084948350245769434867691320918713042990255020870925387096665902699920437972239019197218292874910893909893631679490210442189230603427747440766956787221115467463236723034355569814362281394262490757769574960562980577222702882471049947979490451620723086512334299984947749273482715036236766598014239915508646358478612574067213110125830358251566352306019837259872482676062740254254210510909716131549662145891426350628884611042662228800356710898442715747675861349205657092571793575646331053698794585423921111766509858310152740736113226723554675955662037552758935078204832338539514395531871224960108502059994293823513493111357207327686176199169787465548275156429760599869687779459404978487676464687000780009654408879813901848631432242876678814999061215874868331823726555247822436009225221990837186342052404590329722217313400632465245894416870770545030968803567182919550272093116882395828120784440504730267361465412614253438254000590470372431040461827085286859049539085385273818309502212959311670579080520968724068264187727293050055666957589933061157064954820712981937570418282514205550611459863818525343979177110554862263341614082318399412412043508142231918341123165731640111144426921645640275778387399714850926710678214811157888394503250565184431034943656155806736221247123432853245893920429444841367044233266477321864921837306000676021765112281103339531217513892651511914116594991662854295133541038634454060512444089824152184212243313783999476450462299017465980816756690371533076299390812019695828769100652173203490283781375305304093606370272638774527550814241795069379229488429005543919300153791763722426027120193613283010933203725652057891943199476020941972553281004806794597638405110417604193771401553594031396190312329306355607536099510322745934896790667468430286142382919884681166216131082488889793542323218405379662769487898809467507537585253263362795302439473840770487094594520567353002611451184085980176796092873799040833885988454552127787976334312388788149412127533984489727985885649388709905842115331376488803797520493369304446795139418920139234630068713906083530209755959502579611098375780198096361552497409467148791303081390070275684965314232285171889442981872524897631626098054055745996057078766418411974921113242473807292174896315971685989561014033846775997213688499618014010730868370975651557048434783189539187625417393342396222255385981481788708617309893268294093069753855679295207343363743523264869713622239828544440401093774041947373481611362932183816328654045110390923761461918255815328739360538861649064500874805572951663747675504911416408223434038238608585614485606012723526053929862907784683047172663732064364961541017016855604202306972137201985554863474281599758728854547315966802945390853965693309707939732311124198994144086466286904936594806772375659070139237599734888665160132937709502895620308623317632652585707913687644657953482623677489756334263766424863310644814582089792518456349381959396936762721929894301084876537852324006116843578556744316560454457818515320662999396685764822244009348814349342085044306482106066349442780126514410203905140281536762601701769420476744245685957039263390949958453357453101038676185268711330889489479815580717005325294102410264277412158118801949458175684654609611379581515148460102365145906659617032170628223878190018134733557850815623182221727635439744387319244911288507684907428603516748369442516283581883257038278442716249960433071857952539573920687435397410564568886093634552612853474221127736661144166976227167111136861059379095906038852652668666511782932538309269304844604083263413558189370903303313847544832882913213251164132620301489430217442641810126272556280792199036428384767202499487228766666928285644988497214879361690793332348456287876951811942577988870428058440098989347527860663860613837303811270682031943852278683848195767400541150461374325126736503982194391364210703544812760988289600056402145625961040932664268559639186266078453822821650817340677960818475182424212774926524152127432216368131399048775879767567035429508323095849306629093252251150861134279352291419167473988713624225922839985562502804225318228058668117710792847288641750259260113590969688013936385910633503787432302332826426192368724495747469767287241748515555009012775528188085525162148844873959027452966077938921642881562909668545564631234968879751985131723907718963920532254957710422258573148534771249964820445617317721536285672078645683170968363883104092919496511970153238679574487138729313880483934729499768034331375864715919252927304637036056896728621333881210078324368209995911956161044561866415278237394268788215135868472011064201048343007360057508471280119539686358926806135757607165821832940922037306292897181646096203940267206569085574439616215804604636517637845618576766724198317455618778676606080929620838023752733235740076454545402883164857769188534023300574098816334249369460862643652786333867141471459187055947727059390496334553527037055832007452454591108912662944355038236562491961827050651139706292321822678753221895949339501009470414248757436129624209181567428024784936525034594915989963718128276602637548938087642788101638684405542444968116978946623590255515946791668531872171984435894076880331752790850596981396092377393668397022004663399902506109560165702282271457114736945609541701774187268421393870587982244549937394401483941846218306492494304550828066867112255590566613121831687154310986767287669128627228495439777529139540169480356602881292879352843402718294179758279701898066192923899335286157108388620999170888917107583097923451981680462643095224116296620992108893551759955317705401816406099673434018661699449831665920580814362692663927924835630731311550295203153846868847961564256341454228714510784471353652499740007654698278703470434706339311346633619277611153175154939518171712477006838770421042449136680923900047915061698273990582455691454648357431564254845486098338414199421589593329920581994571336990471644431993531696228479124098157642708761225593352792243182653604475706142519584371824950831310840848513768186225907254090757136065481626841622393757433936212946439973461831738498390004040051854355445497498541162525357101079871207261227148512461963498839734460250066352622411165783925987497824169842858433536298742041749092206214792814344908698966979025491296901155327991407267835209901993886809437814171162877868980911213838880856046439442811851166630342528612167321119548152380639435755884867591748852861249238800420531865015546578064183180415943221710315800923631327757433563578872765103447719191232539221984840709953354068777502645011336022651046805390020352077743774877733260234185295467708996528922133023527313269148560333150364478214347582823817656418519900911150793915257637249631132623473691882622118899114924625360374086997081770597804044475799817331874783004009712786802501548832699647270295592939425638342397310354210613387493544886128666675595242603609425648068109969375522079548964573615776079228975814692976767752128224733736116519689787883052998136049505615796453596426844377795378407522698964672155265607883794919850140891584720789463746509202236523730430694094981621123183090172004740493874709165650115520953377204887261213107102659917540290700091594743324027175314946040737523363803602574800706809853884927522333313666913827615815128482943318951028651600458639211986724008795732209885098761020732545372787448132330409697904621724488182670583737356359032601081747420481547216720181561183062726200385917519574650849405856629290421014324047849341909871359665415653862340612246576495496765682176528323715784007679708728778004081230184293034225135488938920739584958847290489513600868749150159972677261641477214338436242542183472856322865355903408314472282609106183850763615206302744058068320881246357113787088291795081187614988763728761866093590205428359855610504193651302200532983437682206515221659644578313196049363132790756535749374683490423692534428357896216879532401671996873927216996656767347263103972698259155352850014853930671432062432897283416271600203086914989341621792894222625328614430146175009070563768494154410197560076680000063359032095394515122554630802329937882722759660536093680524928959887670980887921632975897853590664229042915116810109741511418762292375003803269650185528563550709149181359530524613877356343353101267775133586950860435960714149496696545194753038645381477681758984225866894700493829526861620389778089637263734858048080710455121918647728480654098407081981917348814310444096089459784904768508835471369224272776453516943795281888848576277303688589647860878812723523617114465039364310644234740913929157952828566997132192031012840537549600705532254743530231478766833200175333450774230653087998352628641825663565446862231556129098171431082921192854274385390459922996912895063692247928067919032940907776887018087130373161523963620956842965867803073446085649260709474849565531856789112561513028929707360081136889337397000974149852464533101448317013873906993264064134601599353495995082513950367746582133841964840387603949085947631930525829628913638520314656004504747109753491998902250668944228158204366450875326558075316705175789100371710532320134024425577937157840547059585157406715155389393282110470347551800158729427190429355367532288762209176895876415956215331481535790147964166085764144911169083492817946766574825932739583606080811903045123258836345554142252072556206428825257420451723772695166828719865784142012495639290568846382442301497040385596722583534819605919693818488423741659175605844693010705643264518548958683267411487475206770742752371912689723956990961725494677810601087827168240573105429642747418922604579715147294838160367202832311543908688729614101498434064161177614244401306896785661229774689927587782299854999402210245721121405519318828445452885349646955757277772513636271560204763562716694957120298513529714029761302934733877544343053207558126993270334888958599956913988906072290204197363578046895096832675608019536096299894379445915986656716386941394108018310442651010704869373240492705395976048549298908139063677709963737511377260090069602532734091427898181368451242630637279564587919380993508098244737497275371495174376657185353643084863711486362907592901956344576036589968756663658918890099317331941260215247799961942598004142410582457677878350275597750984565361731910444794270005982430030116571143904478925419700291823693137467442372428676818397661966203486167747021859603215105771670812781573177720341338578961205071771234607326852219406736787413084872722296691139227084157566699854905289959825901417087139870757311982945756842328729506628323717080076138335012040889054151317384066776111729057502475162631748346187881409550717468110493686908486280258039084597465388737434630893568071962415121318141642236783703167849095743195175050158575142019955172960571452374513552251567113712725060119040202790173282323161492694070104334662820742650906903550614483904027570884638565643277886975951603424464119300781855453513309163492080156894918694358321484193004671834601933335077235120620176507324400484451737929575688110704057740362977111288974192157907233318274862404633047969269830304755664446725738514740950480528253334128439147818112024626683048915002087438489511139760152217774493943963216220793572176220435042262793596040814730498692679580780974233009710792814123770880747945795133579813112905670752242481642397462277323341088472031725833956641757582050706108825872022619461386093234418106201683139018252926489352656010560279683579683482756535318885544231026691900258519972718601437326728832037957717128538175739104088056539534349424933820952951377643368412152954711715089403059360825123835479728766993315862834613289811273493745685321643195547173505269167717788135308370469537498789312766883802474436488795448438470119947511530426155705505397828035987892989576010575460888650377900570326796105951804160941563411863614334385677435869886058695620258358965714938658471410147408738452708867945909207904374624390764973305629631815010817187750535079249130178480075609577392778830178666671536535009500517959581184261077393688159329202254384978995688143152941185365262719187149096430876680976843396794067438565711416208453042758996328242423865728439047100508505686489271848189200449330514350496392186326640710316839441878466503439203483267043410683561914212107946611593908501762115773583471605965368739924143877439282795069694978996716922606485697700303805544082563974252461550872019937255083413324631418608739025125298368540143447066536120529083276563613266861598465826400854287817125087318504308865479875020749178814624145379910673585734813016809480022684075481364754734533047407553750540615717913239787213346503489973065518451753448300721092844337093820276511903879147542252629690998802588986232883592848406549801941063971536650872415169857934600161697563522181932645940933901407338357852375091404640218364374210339443008674882157268614940570311544382613585231311601865001751079570105426120587790003933216266009732861910015520281573496058991134806914467030289257033999788842738499434770772006767373617875522499688587529748750976633557799976230664687281531134518629429653290515198756251884830298046067744275103113305006032136094774404027244653089052528877927974575105733354806589228923238488128076686288393066926837149246436377151814108075576949544308299971880006004470206569174935557869220798468544217525505661431447815728963959496299980663550560877661168703340865077711183010483957010987099398184296233839966484280605484069198591531864936569208704350854687824728457712785712370186339659862934558033015385436297282097201180890837247077547025687087260506150221302679947115950335690279581229527233980738817983502638180270516536956797238496368823580477359265514580174325351606550439502938999956840713909997640050518377029650785279418908829008805974642975763051007842738173507678670141426960617062951986951707098649244672153547254969277825618351437616748646901161852868007175556755117478672871545386020175808563354530030649746768698580108516869008573844044849359575557338331114364127890967735413488818484513126070851436342653824252188432052407495245703320104322423527690359331467719119788037570403003297638328777698823287986995111504388866053869605278015017540135239147642839509984139520002113646716998969606098266246360334970452675848874061554629500072058388859518604546297915372555165196992545604331790612247785730334174941341620685397915789562910985031312482848242751516407928906155442725833052034713482356282000356116960996361901799743637008191556862380424420633795818665026588607319462913968236268452352483963490659696002194543558774780212693618699671760539727320204836000701469273805091926114875628171125636043885806912048956717948216014699520353417178966680299783731729373294770093169494241432338102104555292749903262325352516323103428167166040269881886378423676158872070444992309824243034764370441316430165805078351619109700073048793751160469263285017629324332908816847841313006773841696638490258903733709463816826917749382926801523579488701865431245420355231414292759797582514754087583616682669516654884500064061236859894048638783437822399049290620493624012607995990282391656635409301952571994777188865850821956838842109285413165112160626940297307533863662375942933485392745242952720081965852504060238051010188858272001865702954330905298235887939860746213429860434480977861535773208726292571682380040053260966176170712946126715581026147881908788761681314227891996626668415985703815320704108756784663711559093000466310550783009515839739938329083814195919682511005749292508459842763702325559289184799910521531788865496975752755998145345671293032501757887989530905347051607155157878335338091204809298090642465244556573422239790559101539393307943930292106719162301584169248475393867936629580606234690340075684937179555043338066395669259880579364074514062067643219303579747647061363479569014415655978595955458329617853888631633970539594358678611776947417419164346905405305482607383370532887749263762944100861179676276258410486099327739241393258823057456608976789440942555525252708653234138044834504663293224774950536596526597879315944909609719938304460961250391722683356231451661608867933347066767680160939688478980310390908383512580523132509362996567974072408393173554228778841385098810503618564042585067768227526741236968509330543077067284040092791846371873923397863298074061999425768681861922504358177633370246779358648241321843222462405279284584906686045214468806281462177873278930869581835152797371424255539960500079591922103876363647330819141112164915241641112332320845609621061750779846104730560690802074827540724432854512474820629519461498474087687784785689892928923956598868367068589134371862861723312800666065890784808530623360785487985611091302811508958403335479387781264993727687133043150163566753644621179337928022226887805269210500343467315120605897398040059569779743812901229229872374497608024157475508435656572544915198733215549160572305864991893913513017976312184280107177562761719049703195995381667497788704870901410195007362842528128979199783728424318881164092722189531684181191123788905511580686055944416734215599380254845075793654289156570911888999210752520931766995965738683965389156585882018867826165217671979392429944308048748897740979464538269448869695864727089997836349390224361168228410343290211640252785470492037924940300328884339809050051628538704554616221244548637008541376618262065426913309168302719229753698335398730053812631699915134052132792207398949930582993863864758213814395681084793371161644968379741510868459694262414097608076235536285132873217885289208971135883113004878238301077092273540541604695975500139771468250093492174308706278549339361143196587024017550356853330242863167312992561612582088920556480863781068308076153872952459591675200559303614569093559659340288981737661994481536342193947274031761286703032509259138275239249819116205054383240237025991621619016802104617689386597777028229096731671968360728426764713720859596267122287227007351052822541370302537018056294048609538339423877544916478323811573348639951025069634465394590613314255692455119805078576784009111324951608252178471562915934925282950547528692011480113973152325953170755841372636881039284692406650738350062298536184603039140436635173486062868854697466218250546805630973978395993210605670054938694944513281292118735251666121125878150992786880421954450418258490188662045637036979320296222352838958240187910095785011911739458118346782327147884456102362782699065015520755008024899732076965687955861634268421857166638741480098053601026725302390562348300247025250345014822633368559786932896423027506937870869031891626664248107446555885589490221667210467314576850481976166089381766256296455565470610744726699419276622639744174463274811404574032401771547857803086060484749807522466443916868930073426975652900723093527918144060486335774555071566298069587214880509570528953586707365041267413056454575208081444916307642873690346920869581280843854669575355869345091679117897845918301666061948850318121113573164283797261571557181236564892074669490849337963768031608577080963835827085804223340726889123859484156636945826731383759623422056774580177618665559085398242247268883985053705216837116418441494183078955617878059022592385218117406017844812803485991130572066075054610910925832268758108180388047812931722197732915883386226790507807618749927742756252198539651719601905889455172647122419235326834686772282478140430375835656057153411183734080399943433399250861274595452045053086699848624279806885394687448838359497529142098336766074675323845280182823529643904684648611516352948810389634536342106345978290643767875947176032723939004014875240151744728269094197326146957257274000281890381922327043101789496425814242210926622692368985432897208344853521719700592171464154468953900240711427667334495346983431280800832670455165919588074700943000393715408075846540038996109448832314090855057321102932383928682112110156618419800779738693484225648193974071473711557594978749901777154401246624697093042193026744986638592828240980016958155161797409933807359187444424358916628818263692772418604715206149827172819756269211407153118512011648678742488860528983455245084543579035990785560279246896802990429281743115639850505035763630503966533648248658833453226272148747174809291406921491859771948303392524203374592088894178824710437589388339353898952067563320452351574644847367783937452993224486276780239059169187222792705614259359011723577316515509878909880660336054415941971462352368506953954000933205090614087504701645755335753140417199004326741395614117490753372283568221853743055400368412212490963654167543321627774034506697323842417873562095619892981675148109909306981261864203646700839657308711452772222106092314412917588814449577842912969489523163964218369978663278556005528301783974010409362883037410711142441363137751363543883950609295607298864531478424773393182623207856637883887930521742594392808409317004875660162982769072569578553308996199251200998243072509455482616847554488515643045623756488928862815648390960513917684146633276774072025249614986263660554752131641854414591639723670021411713990156275461890475632471984869535074660583285430950367323416764274432455679913132253792247256643349281498706241565311105509543926089255988612490205584971564388770430535102601580281022193577972962603330878723086809797122753027136826599805840073660993263893548542208206372137024131059625938864951745272834099398919333551480207377385973505593067390811113090166338040738355291997551524922885534554564211632294503555382266074695327270193891285350255682012560476566057619165189206012703690311572825791680340523864665613336592861106706585016558732507360394331834057310753520694401270135988649665549290259276354562641553917046008233870822693216830889320089929183918915289747853165585885903110744651320786036349777920231396866478083102904142699548513488671835400653915484433561303522835657510818865777197287976930962602665833497782606872827788557971993775351024957728634410827642440743053399495537345033753071912829966488485904431418747593515896744261851677816871788607274706600106535086926991671321474092596498270664074863988313203824072482507185263439654113389385940180666687430690968987260662797258088651832658822220262397939184352253662292108888609405129337507063768144081090656538164202364897152951164022359142253665972683386727920538586635671703208109640722045984730655625891893882510208570379171614990561481700900304170098266160642732279356680133233795733312124764143156525357524474509872132595316883479029199353665672166236237622071763416253781294576944043438973587076921576118965345246859809103501351505916301594990593030394146133442569964538867691585590275801965883088426009629772788752998511826737691109435363881187833726295295551195297945265831571604611586580734239685342990918979786871409812485797457597322402575526895455946852514652122802719214891110922821092002497761666573083280284449485137351575124094498329965116470293899979978052468538454730371636587440946724764525256214579287776567642366922565358935665915648904485066135631212679618057381007196905776667904882557003289100319844179395545758830057839143569525180013860278643038622489605991952832400033896117917676913099507356407418292114272800213049489001004650190357444267801761991521563845563090448748523077558650473136005138724901631739406962918579126323545333335112103975341932180129303703004725506421788211579113346645735656178030762716273925161152810651741872355096812486026507761093907238058539381479351023047590291794209208401820698034365841401451026705178616290795465139560286727287806948398340480632311796661434970167173871152736418045199305740326436865135023899893645217076571159242570312178349509471609185947708024236358065831345352767608386066619484859018129978151276636217699668882877453776031533319358268482831249975780244206580453453391890439793242384143413311216789194585898378450366046190905397196069322831121175318474826943306304670987809544819339948012144476320221298783379721400759301221704154135800203262304256848684973123883463906490690675324042468799654172135765104077386619316333702630879832184578526672186830741146374055441796390424610956602878278016093347028520970124441029338174184622278776223285534326486021501530060501623854408587180886941575313813434208163142455722272861877336253797713740169245468213024536257346145041702361633272183291753831972602952369379214039303945822532780430837349392333677171298720129217478992227770827131457556638100423329653493107906080733563108215540586722325490169518961362001930018200752171465058794150714761852988581381610020587621133523870070153063157551303460145648397719647725382216996627469107855948068988989043270349274528249116816193420287399419962776015248848536247709602885018990353643780999047043232563245280586513295390300235680710825669922719809740205577403755945504586475741763036380777855715979444328641210625059308111063580111481038993031192567168908188554039448679400707779527569530132540384505826686787752661906536473217603365288393714263842874318996876583555590374675186339810642698387867127506040067536199254582344813655022563820902491359946990421386510459344591720502139357628237301322392822501844091652297352532512107912467582273825114908396417737508728662738717665620984257201725467283620554044987066600647072891406537702731672683179630764511778662436985331852761521505377680080087977986860356017686498188937249905686762026062521333937750611575705088993035676377782111597607320144310789554472227525077927836894657342717999117369869507622979169109338220552776144273522851401275076012187047393132912359108806883573808276134379525303090988264523258577075011825877959388048142670977221940785809197087860800383211803226564774175502419922499480424556030360792806096761646657061685946303786592221670996946938301972247519360910272730643696704940107127786434433229127536850833282918084991307695539679633429710595502107432851332141471600585514234412213888814732098282017677931921198209866775289993335431014218607068659382967722722202913220811885328842014708978341433510252290292335429750421476475960860108866016261880983503397680314052155258777289300033977497606800243345557056564470882130016873760013405933266730837192645810693136748683131930238578225339672498193395654438630865201873381594669182551613388679852230698627983314030427276013062064307451861130683615841113030536923607355856649602382154561283527375979011931903604260537745137699596935849033483347312119967117099804110983833156303848093948841493615277560389322691758513970826171593904691782592449420688576945309776441069432375712698842736031881676964045750602496204220918020439904549395571611807547082002004893626308187672802642596302919129934442074231110641596134941219863881623401544981343514039500905281890646943865289762868650320250995948703274500293485596812581706204045670003747768329002895878407033059317619697747193465237903267307242709735436670760671802721278736227134089097903522778145939953568934813680768739114246996798553704148285869314462703637683534050148329683421858348031152835111373088529974472674502471555876475849439151112053563039758114689528451273837195533747518126475531447677004024102063345038068816693512569662850598892903573939890864991468611199124563153084561134068021711655134088521448433199919210452476650542301025668805017950601368301418792357244983147017373261940059470290276841697295035788484099896244347772759858506786720314329324377607626157352487710927880685728316201906818093890118932270065503925743300996054194327156014325712419775407533976268872697202842998526228508810384355255600354904245129552110625725723737457344266058104232962837815894970135440504568319164283341129389059213310539785182172958915333212356637700815418170899830746575441569679782018452201119968971334243313048822255670730740601907454427607892611393691438980870505923024942330315035760858676843920397721527093220371444723653446238124100770249451293140795356089282583133319378345372383818313767823056404999589329931744628637765418682069669356818831391867353058832101930002964094998584587670107860913499294497194765288807327213264494189750251983786923541312529333381185896155192350985509054759566636554034255517974488477015486214241081322263375416236799156908597107649897803450281196925108710133898589488738293599742256115325613313667379351144798386718379933924817372157846224293276658689902417974952089825909227798050802979874818972779847944287212739123133822223924351951146878064150541871451955445262153028113491112137710680807333378862639011361748442900960214290923129001014653603143572887694279611211768929446101207378063816942452317877000693329137878717645290839188830174876267122464515512871877368920715778658351066169630643416182457483149758008764786574881471985295642314341225545355571441460491962488100585402586379063050047190842651390530211521180071829164950355729971974635590728835506313450072732218613612161512830358325406962108524070397425330131528242247737645905533728255400154861221547715240651367602484447167323414906164184301182241157273204444770823258042559904486732244338563455862371546275415994428175527994188897465032869938563536068352375032043111111110725578361419533033036576717499337307178678460959952533339035077231814195761461800650314226606243564880149580639414299066432104430904102874755983291405870031802980398579762257623540374971270932331262019458706890446428746422227762308351854357546665584589523880960474778400799472283494283272887551570672685976918951179804695913870917750396460063273525267525376461814922061544111137845652460843619146008557376197294214530508706512993179365903034575084909459778947411597657792411168105175387993375261992959536021660978033249384080464529088068909615970383443084770481587694744054353308640513855918261749039899849400285218512388818953940868629850138478255178779231346050095143165947442647708054585833196405462180043287210268903732645226783331033711063599852262492738456029233121617897237308803569737010553245931893194687638847778249688334173179774124191872499017558969512772364457048573486978412696254408814260529800756880194691260723053656650023518871068563853869002098371042123084406104455621528274659379421954434119637081092294767890436072074810519356102917880762397898507488119367931741700554115798617079345705402381491995891983376285418015321015788321857339296855387036360241799203648161624611670052615415812863789487015526388666247991067793001544467173484904592608556862559538225267550007058375231165246282787515955603304330857226010011313094660642525906537118849949610807442921612651495511100581718204461473463249556866028441823087878902961786485404862040486895719743803887954149785062649368165346466033743539904971910234462560254613991767552634911100129381497470408733732290639245803591881247836057942530686563358787988999494788597794970569462446924043194429481505760346394988772899370674755594866772586202663827645206733981130660680572792014832898921931716323611295799123453740825998914369496590181801342522628283268977754331692196406590270580328466868640193279447629099029260622207450248154485503235193877600439261504961922032361462922852433768364833533038228892902245611013210818611882470192227932638098785607919537064481548964588138103638926535201074839200461075115995576733834677136908171345807941043511726014560510215387686041005118868975519153258362694292336555372361058443280881833959125746297373314535170399793317451602378536397757700263692028848726925869763191345819389784531901825600719663543325621933091907635099664679965277758565977504041263508734155469481023936636255639459757434716669252973870786671945618273227956288830173282121054262703195405151964221647630080786763266280164531728200441790280281384611077249297612543770835402356330434038091709208633156541020807792389763253552882240806102211963556941067265209186516167354962987920646458264621247330056527330875656069773423798777867675995465599903477908818175322070766823047977263612391564371137305982741127198147583074651680744312141648457938316669437949957235748494489002396534156293017447507250646837851396011660684108460990798074719506724065221585516264703440658852966365283353657721617720210019460371188728997812328389187263896773639002168069250411321138117316034146504543995881872081185623319636941816007856165312121324984273821805876431106675428464512348585342730961848248582940420960001034528417623896324562939998319804027199031827706480258900912844343378102393319087297430905274693245610022583487807154443778913908524340209572589465042909594039127610385808213985386550187895630726828862330523936141958394670225667922466375252641918061144894800270466096016453171080032816067616830568854515072167077545927694871378683466396878039650846526297022152078588569916289041690209870907150162941761308328754583571399508913505250196897650142827885979546724290361367876130268808337443669549069795364133773313598597165041232891018128988781745095236400937867205138474450090712887260619785026587648667417980866833336228396390308996453060109857487326503796774617086614989921233771292249907877066225281159224746528027795514785203937506858833865769533596988268144488826673950856706086009748759013531074452774211060346975491266094629298080575758436228974527622035986258556659491451202540042653292685784641884845659805904297992965185860893784563028476650559063762250704049629767587308642284276676237031022184216528120803503548609292712457895320548643572757455936987244813958892844376335277270714957934781822276389143680648789730113731860334953755389262110578861212723720140496667499937494877977430563719267231526078132289854462249742587221751015706295291286123961918610657394519640450420486522542316826577185166689102777909604595990505290314509748638270759540501863029509837803151459155219596820924168060228433017209092712975221496028529339176658456092471744439023486312881766042896024727972512813734390155833085935894002935528613747754022482783464947205808696851560815988124529583209855165518637129391147023448265762405748138866316621987128374112911557794182393009378550837276481689415951772253713174597500793377803522555229745035869495759997628059119939135616530740228405779944873526585625361867289267532762309097771075964553553661851729740925528515301444222117545049189951589512914577744105327224026812794464211752681810558752601710470606458979990490634104625786046352238097281460386428634689548967074485931378885300173639890880179597308520864184728415748661090727059198837261098449612955456388345047192718823131171414265997536113573128972452021417175292228084789918817727828825940451589133357618841566527256444930858475023713140484963959422395856445200980488107427863278946706399403152720049952687247163835045823774959360818464519741150391620325823935692372124576994184289492225250821760759581365437132667739324585873886766507479102276231668786479355121858267626514529881065768047410132068083311279172728909551884965270695665230611299780205221535254816538352755674366900391099464140924424667489383956514568345510927873953880351630223336415518456831692742737412300614889801428288394204414432626834072199295400335864315132558092046295511070056718276414604804210592160211204313185727686350225694373606836362948286420441439699243112953132171967873144283426377389366275214386205216563705520384065041311988215420274713017114009301753438446522460730732425780465708198912979449552048438946077589530954476261831874952755569955601359650382893247908761495092601195177317167942133146692457543696410158464849980346763012478901559506347135020909036117791133999977908941228099389196545518505927128348073461572433728544278778157735213892538018958012920663633671694921531783210277130181688742590509334010468125136854492017140543411962596791501375291269039196464841374103895831967702694255288476702863177861882948458620422739502136216343894418406854321236550835630633931840659177594782637220841321472866012004860419618625717320438083264638798149672472005112404478591200251128711314892980127734027551978209078400319453524045631072121672647937084199683131552815234429246802025257409941425063870480959450507440306297636429569660354662206022857923606924000449884216095482137058263501848259854584172594633246094125582527661644138248826607572300912943700500887109782583788922611292525682890408805078980092317704217896642846060610878773650919839553797438261884778500989109939539923495309289109563679311055440005529687851092671189592176147175331447782693899051116579357569207718708269568950937412642363716047774720842996660120439387505633834656470734371659765910186527506697286951091885644053930105976146572427183803518879668479322700569485873873267181042594319246616142523321083795522182276696848330652987264174209764444071839443246444624186166569936402052855970880829325384488348948216825297481939408444666686087600680662813818163558858361269118134866239627518488498716578096117722994903516392013782204941981666428639859723753230529351036136071473439285287858626679718667148192771831217256068682594613261126245467327734390355406234511464756672672447581053794501130653886552566331207199333044159809007953152446012325023317734497244053854948044851739847872817002894523536347275061982096437235828518963283270751519921129632134085091513918297262004209055928213624419083722569963060474151351262810501476987933520338883094323719231814957261629852132355757218783282729207354583848342294943054497423583388872567199935520483060657102680124576845538689640081518928491171975036122708897203022900727370950394537849780376218430116865316885117615734814907733567290833362531493041605418430376079671794448919085182094800170693527248939121995146196165329882393472697639615766471413573899104953304056965057306324797532322947397662308081880660922871242716965633376634466297615627920814021964850424586554733325436005461976935838333531771466441253707244920023257641994924244405832125848052809484182189873578453179858367757132649806722291062320837606018006823861775933325761951694311809043092176166343688866042934112844674655814947095968721097765097153243473305487435353450319079723808076154569305257092249117045436439610675041705854589490166155039547963398980345320784897449265444332061416352954411571412987490723848419428694128328863662162585207463352883550423002190094412014166060548761375285750845538126381684646568616706261220153271873136443734206479744284647613116704431293997353909087409197116965458579120261358634162768850311817349879577634573346389915478790351720511092029090225725988252921388453252670852889433186083495555742932353776503423180082070688287658449803824336674238979011184849186325587407818867664466512080206181687105069103879962465593877916724298590233314160139459300550247511514167856583936528043127444361207986196447771148986053835254052900873245513809709903694255420936935310047577831867665194355854240325504671341367465693427124404720718918962772632079172809520560764388547977794880419276981151966771301315375411168065931128750299204509538258030301154317051563445409891071938720853289096433147086653154692135544051243812284038754118012163940644310633987930727100242121195295651097428724011499237562328962473735846692536351988621301601184868060143422325929311748017408185703649800733361239468603629256898302291004838702033511323948060917188625476147407201837822334254498891440744797527052196261609294222082838749814056550740620324334102604956122984749202704486637198058156222899039919903820476005297115121853298675101277756002908493679610037461952247231093276734667582161752950206311035149623872831309238629818250474811418526451599875573394805821303414129773278362197883075794046464766274814736177566386380113153910418203523597988656808966460631752233926914490726068850029346000905365507139676922857441644968838833322599393654370078447181331573990503458782618684771810980981547890841428779017435695357684915756355039989329445816605495493067199678997754312209752731703140412830741061278114921063416859413684451663961477927104833979332036294308125474226641552806757169880145809885191209422558538255986383425528107995245119146943982254014199038705191110533251712926639551294488595684843663655414254810698987897462105890649942697661028614075772802153086333157775042332802347748035157927337271498381091057037488256270990091693619663751523592759269737276833645167331462680462201633256514774230143073063686469679039277293499629983731728893829556452427220911527357064876670907706546335916130303951136219633246965873144078812893485076729769385236551554002480720915687908132336772020609133585918378461027303434972061498135474941969090751386464356055925004177780652194638606218639240613109719751068503301214363632881454715627572879753647983676435355475255150044836983979590754890891075244513666776215472522996656749901707991790799476477122924447070354915046015732104335384690538283296309856161518435435664771307946621682128293200108652059700454821276751466865073380551041239783044046644000664975628160804537487480818650236778588224890114439442521914679773562455679939068844260940938595369581694085390175080197685061371795071806931952784252498048833459169317712261909534453814897870799209587476105148710704279556291197353758675050023446145419010248889841261416269241715452688595292755316823771418871114542037574710591357861480323853093495078336519653620852041795339123925227465197988366213972976901436886664822648947925929039081743346295788435808494289277947785118550930932217615623682214188475612842405968370882915096121797270897720493621122489531180292677918678057343513955298377069683953381600841006113835549929370587481548607355607234311190741615766947506072501189137997781040469883744697347749793705920223122539203482675132225927081242748523942193877457750082327308057334246689769639980982077814854235475888151628228606406499290375374978639179189901587677425126661159109761253932218490705745181751807053615119293412226424600060732005509087902744638545104653777060640594979244021831791695820795219476448008941362789849067826440396557555530104002296335502904043180665894778968320080228345790609717706004327249936509115274335453298278452930600485180505524601307753259747234369958746158435728699585497271698195915304434407848782219897805776404742360430762664922703090136400421235844776607711698555308430573809033253748320161794097238149990537056806507875805619262094520875468495147943372168768363296791586768880737507029973321714122623448648481721746558061700993532107284678567647213781457283468197591870131465495219727807135621032652234085145803812685777066314429260079134779950009573187728145563634102285782084166306406992367286229892465204857405561454015462512538482523626914813058429935489712989822751830675890961293325465256865442062957880189093385679293530762511804281417560361004201043901691714793884249432383603710853033792875249216622300583159738098185093577091123195226213366332332058615033377288657017136864087769475845227638293575533173532483818224938337818193111571103062029783931858994412968607248703910421777461237151623226997496448109934372752547436858599626108075872740098609500652859041702188177559501899159824681154211968369309116182123321134011773497264081878277950507534554321658610325097252401250261651009026956841687222624883002596910427041350734249377674626524633445726484652672905497486211334360978128129962886378314211394792082782660024504539311128287677454838337504516547259075556893719210956649221928754601533958260301372795753103178388182838531296671487275369077523636231764441477281469984119410246285557110399890678360476933771427868707860541870374853417632825789864700874906397020012044522454124302645589405417346898144373892508268978505517831382860109811986629658564990242264075871577646115611498010272465272363278293319482598888630218376383682158984021891663413557286013471801241342137084399538861550695306931335886178253909783624143652064852144506046502594895281988898698163266799750115129898392794301142159372100477208507279296183923441250375242230095029636185051373608869212710272237524877476889575065309293958686167508773919338710257684161894449656496046471861601086851535968389295997053449892586280381270915509927605889157330714567206454198514548278777763496608003542354288929316904893458175208900591142370796053144304473869104496290718341937942843507814021028512385866398357556602504208551451861329386641261129367468033980907813364630410589482738066016715049792796620245393656893734194841717233397448644027133367718334861682591352592751283460303767823619772868575104523558332823565213360503163767948952628460208406509408197282638702617862695216301556292738444890650987514245886682343853312338009838123923189463112964592328667246413134983167742869030402188685513653833396644759217805382404322090757733483407746637455487102619464247632769471524185791299049966931764762313896579685092375847650573466293219933725551102813077707590035235373983968294618205578753954397617000865429961961416672261343396956668818630874291883790811676898061539733736796957520895213794146919836965288956430669071054075547953788804637425867062591836976717392295487443915089082737039115519521517963871685265754449701864664996050827109125410792211482670016994579356675647035805609309793200119670839251734054973390664738347377805105905010102868895518719339677580214189149130447765046143263349452144087456985765060823209265727900296658403081398654934117855364135777158719990161198296821108747777512651049729711181841913229573627376312421080004993070168004433862819768285136243527180947465222595956598337294490225299822463962678903994153130883095579699873378621568920115252273472002178152515731282465907012640108218384347136874109796836964434915601881447445358648720951565017547407974600965449499160399971561085642248700562915626081353322967950757100521062269292846094309120922262024098825577736414171960784364366189440720562145479140727155014880064009383048559485277405342446618860945589750645599454933796511655565818240585200667913195272829467463541142576182140961765800230179286759961550672487529332082568670728204703146223539204037862306210057076854469290472064317914060869017733620184793511975845008587580455476380846345322689163702070447148939345936969079156675197273068623869658111701047437067345423873905185327035702900890389314981336039609838975311525652707603474158869554859262729764631980256864687056740217481627393483096710617248266442950548748336492705071324178466053038700697725682198854840114122274465055840379148553574343844247586682961776539806445222824051835612347502903993645719928904141857895020407886303122421337119778061039733322349785893341886915336543335189760612699408075522594309108587573868994427893582269455740015923567124290101490757850748148376343958995785869697807093333431568869121714437260424158186619095155669688654914685711009793306458562735194075968264892462568627166138956513056866438221407602564472763177470027385018805064943488268715094859165910644308057904291653026651362776587812131775797029459453737932297553961074346223494014054913938295463296529721008953933949175470198642714828568341879019335847079697686836018490146460195935863572810454563396998558992108215498470814536231502013215230710449581257400696366258650579623074541536779555392619286669928054668807227203779144376782353729020770483604888743495223691293009504382943765247937214657369457234188677391348248329446705726952092288358857093859444736462898359732096083698224603091196814911955892500273287507349847744154283075337947331144225887205904255012912125877940248193608200865389893129044459175033823238632910997213823445958888115708645682599385755351894077937980359131749998044213862963586926442162991697262526903137782769812716806332199851726453735096238155833827136498025490369694676880363862897858267879749081078985037981243049154026385978609222886961551013470521438827656663015432510452105160817431320797077698433314055100161563607830299198546148422241992036961682851753095274537213981395856518888541351621549919067995541789332199569428540405302798487145188365814068971124941858487780353972451990140387912433095739507140307349710616063569020088891949815040804906253501632512393919899232600482304550191758875510969728406283795741732548280601347088388252555492442109716482347765615187267429906217143732308533884240746422467717453030097266783222803147801521867527366494911967669350120631918308472175260068704612859251483737595130998135881915895856680246855367266699666941812242091887234755046195663104975832610033414988266861881252056793729828376346735985445506392066061041049691634093234397636256976373041826626007039745666992381531912383475615103182910823774132183761300571408451752852628334110629968517936571373653616239873936374732878467222339003538534935251306647554939214418394698189672622498802897271477322780528962592122443119700385920916141288831610199502573691913789349244125098380027819736591860760692478502044593413445901167530807160817039017029058065515988647620052381320455949216935558887772015133535380180647258393414398897819217886316912677169220252055710244565647800812854831906238023364395576645475065980809599275759063619410582782525329224026919418075674988772375493400874771193792542637016140485469083622858581475617910675468387865609062626157553591419321324633000855119138455583218506763082848661361714436168602774089768367353075285130593342381076832904820429699938910874321648353706252485871445076151201714057020375106319765708945275606114997288262453481065882875966838874563218514308168749573758106914159427025363649106448724638144505417276203940237620296573769891012128031059095759195345595790122567397671540732833067433243738014058525374459299919058095579059232533497860592856971101262383771679105284690596495586249715698519015351173227673220013288439507411920267937645983459148997015648471293540354551785182420785307716136520581263158879272183578988310379168867168514512130780766342497026963386807588065960727656034638916020609878863080017675328662971447784775138733535796741030909642624008832366018070461815082717575457842368230775191710951201239577095071667569251528100125677312536753698980561072319114456919020159829129716248266106362581315805423942904311246579912339784142576126783149390944176140679979338046625035624070051393728754156702691960706300041173380659916690054148177003398297119865353196490999423717808958728840708624151601595715995498486171827958584096381810930519437789061166908901597260257051614207621968493722704371296947463983472331355447529351536347169044558437489943212353290735688576859878026829062752880784371343621675757006658360141151831713479275996132088298416166974150442910348430569209037497300207877522139426266185353686369608562946596606343891000824754705775518107309452027778097963230782545557815819962676558607367356614743173241427340093133264827237335565467162560845552188534344373265149290548308442787175986370243267720878525500385299299817381292320399417463806817658348231155058580757876664614775147260802554166114988202786979697112420028743453052792153464627640403209447876514880603198426591741573710266972316261828394344154670535664243850201146323265282429161654513966372824002942231909632130469346193983994570780938215735776677834782936434498291024382296482974931555994745969456948355845809280641344706848566115003629513239766827223237397488504681799489159626699877404716657431809165990206735226982236884403316501536164223580682029876263785861539511217018821982729361434050112039474172607010937310980311952386159330666581955490399567854458597276961507383507092929890534217191215326450235006909345461298038595518524371187704900074148096288184714067682625716173445278470827865266869353122428588568975739280855299325523994434831954831143705585754856004631083976679714622244432404453972158935446964581126089634543609046519350866018281267777202621635908066294638062172590941465407702655069250973731489150548567771292458125051818286533915537127684291457602920309187681861220358747961716291125316593493457493454507802760834410591596698245784476209721383846037157549103619942547227678297113817721131037718978268032734321772402884727149290110837201396846452473017117475079796507461256167679849240669570557286628117377309839809024315602479614690360534584616765588265406776693530524118571125924195727339986732667517317412440934925533062018036445121496741902062296435318843986799871974589342308384829590198891053694274252437538898151310853556734116810636389708740497601972201995585931828355645818367449054186861880838774744673175652930142553952596836652600071335871498348614773773472453306751725004618429987606787762558395386909008670543506889404578583843413603590430891191764084954968168655601132655448003495405794475277729802899564388721561549994998088384948984282013774279331710493026247061336420814764594133105396030686850500970244829656216067343530703981380746998463833305788933292620878006618910991515782356843753329372714889346327424877037069627091719620336953930374638960089963438592748476406630611336843844886314443545415313285721442537966409360246488603949036911031676277357543380073272535836308734348389055734345380746811302994481062338280103042875288728808089631344644539048191272930520631253490969069217572102096423720431119259558387296693802798335109934025220774211563417645240324624722759841355086435944132445331200042220858845585636070496232191140579287486889972845318733304620803081430673683282368794096420879706303817349817444692344260820471376500591299159613152438246736227882462967951649854924982951222196893214900973481636626191616964294715272049732056437230147475231736074755085541254896239688241847449692539843445599694623880463887507208152158224497828526185252123956583255311195971271522388459299064509105036659353762726824002001329894042405392782202023643131229432710316102359937878490512565613737113332551784874107559230544979665538186110839732697651229664900914058084617639966922547913954476082584805732614500700933361289572896558841570377151958875359901032746920948087572060297262180467827939588477604248345632744076349179113515966936987605713072055902059308963251671572589054760118256470135306788888059105990646647789497126681074669657684838444181319371616470257421062849647919980998187561312229930992956607430156507935904251777700986721014991834220461030599427805455313878182084421441934689250375169905127222234501803116616167455139235002769829002282575373029625981458223485134859974509954369968834271220926686801636600614834062236750611464257327880690505276642529410558183522335434192641004299899477551072789712575774351540584590464484301821331795571170044945815184668229839766253076074699558848466518842828134506351302251699742324397658757781195173216685680488015091946965999550641891167471300855645600752331194610125350725954299005145824304758927000704992112777405396832018365491945016858367927966748820578056018312640902018601169150563635253079251525227692884831311018293973008424846696552624610456655744659005799814090465569438353082567980325552380247789237330654965282452036733743137282316133226984300249147830953891840803433410495904591029412136418178340701753500711466569989193401640259370501798198700994875519102285378478719588781966551979448815469373318582526113254865302432347264858626838473123634824786245780340229230882894231829379498977695282746335417144519931903238937566247657257816218185508977853588904109173322076589585382040735812917990218300642945460159751695546844577627462453685647172558386840530847506610974314505192947650077072418481821672978654256605815527602062760814494578934230439156905889903073787807207972588826602120001227765838487455979372802273962461802977650752256617614239380075712061284271613248706471044441991320970244867088284345794319573010504899944263087783255298297841519443501229762518825881098252952366914956822298142217649155863084348168302760752883808935413875236405618343769081891552013334075286268205479340800947377245663865810214544992228646167489020756786456260972711209018634768008551401043007249511320965116241769997189439342772765934541257824796171100956899179711745344820364466623333373099391213978208615080032337148042425684646550796705870322794324228426332264965598627997706251514688146096773615452550337092043034098798015323142253581322819022245157510020204619235115234049198805435305372908719064494554274869254512170040786257492531123630736702530853843907770706529685528781637772925552263219937610668639605728462580206727385859484731296570676401609146275785992907840381032527018058733500648563897304146595844478641687965921824282619439144272570515841388287011898132446391024161886065147119070999736124433488233491605219667159586855329172027055801277596204132746408046435965351944387226478057804975016015555772571821702550967568183192250445237629029785519152524578403055807530284173302334358523765540599346545824818639045143735098170173049551740829149879761511695563589014571810485036054785172093116528810379092105717293266977001243423164362750528429576756382281955445262782063533326803018889572918202452738015691219121097193819690205464753481096368153249257128750395958458433049786929992968968407417961185690844587262548070442652893552414320850418003023111404397682602867080466459067322926027609557253388845517703807805555311202516270200402854945261782600615664778228273028646682031175470103671693733506400757729884535159254472074286358847545650891000541462286801435772602256104683492935144377792897155985095682082508703245535571813408915387804375697306994437290589168461072724164120770624297732913051442822787574461149864165549111015759855433439318248628687460334709473864622172077696268816883176976274738317227914167221401097884639646109360198312059283331889849105584631306990797699191472988366680487834889689915048341069856510729801345525168881285255789155369357505383437296450369437280228701491525119129501493462592598564138389186383644674516275438592869195656418277980882098565703041029499112330292764328791980179403503896424029951759140912510377388178362938793135123866512070521144344096290130206804165564377499747271536382625449399707280273685213996142969623328556774631358251437432084817207477072202397052279771257051481292494088486602157547954405167457507731087434654010882458243701918837882951097716676579953534362735926477909000741041666846157536277862119597895000759149486012158678770388016676424807360832794598738587102327669228555490320603978399819914612399162878452682671866060479420321228258314764566598444624928059785459437834654788641392524300316543439994607787443220929587494717512123556520210646562573714104576361169361745606335639912085927003099038132142588642186391339021606320980339140362683860902151411239154693751754834223293719851973459558554383193852423413785671150885373594630002420684307627916478846668737806394124292387875609362108362422007125696692513134221165229043935935583480269470147942440161511303024791772812450593461748393233548986317914747109473239925784740720904540608429159147529037345465373930200231242121263431253228667364858086525129481974702722717101630052227278437635204664382367784774808790240145655276582047260078489605150495019249268643009979449595189077233744082234729678512051841184958581991744087215158176443285079880631128120935248182052467024769327486150183943048499937477680259014191948888714161574635726980742035404173751823280277213992543051107092931368386933383983765272760331618768292987419256248555202286148784118177241157958534963945917377976295052917747083055006320891056269796339779998492348366053571067216291582422533685383741780106265501524579462095753306571132859035473332874328568005041362201514595329998655626183494251898459141446767370219110554929210266247023873855660047963532884635842803868592125007513608575938703831199251434614356143691454169665293745231266757555596119149375917916882345196361328495078259226758655141829555515220319016994613863334757386222097644875729039928211780779432392004925309592230889779929767603928225861973325137226331267699696585263478017125931813402856882398075054505466518398766365526178693117375384775921897399207776702064154408713881629186981049942696707956285552144248165317920021555988229689901864572413786995887501797024895881866316505561951479585857852481616352481408195035461126989931907282348462968644245942743379813388680915391085841113542562318174244744348322337443572210912341813574777651094263162722800047217252867527672206739137074186371887748455514783227079689060661708243414113447288176445129382122954388702090671001302968236245763040343879126283783963266680269987859075627933013487253689974630618556335660485898223316254227195414916467386743175733842001423257072700093214209653864867309875566521895629208869492433012546098890001455020012417178908521928091589944511766295847638551925598205406670271784327982561741373299929207313528394725856084733484403949880126173153743201615928716448995682876943198295497569569448860260700941253021061885824617506923949219884447779534704817950171813499957234273591381674799428881947742720101615093221564409458452585876708934228638745381532304497294140234143327466868646000290877401556260023706586603869868453299300306873970167037770426392318193800818717464492828715243790411483145002938255734132837694383344302766003616994003246168364269687218030383547335396735449504053552372258829125257845569872338894578211691497354355389458398130588678373372132670039513847117935349132421738391619595536024619438078019552987575620062247541065022017112983342698777860418001444406545809815913731059515153992729883236358930922636595918481207853755497605251862932088893751039631677875578256055558929248861572365262554403905036609342302612326959209218723459205189246387983658822927585478504263846490533563734000632226754212118199823418406426221334482476529381499545830178261663235183875002645073001360265933309382140817121929842557965351842842128696666905311197030486456782247110009304612925910724747843673097688823451544993987013248508588685213354707095219896057405910212212517553916380381286794127563227481102106460153772556727908617805147321784793753568861391504284368523968518831628017452175963134008782235180312340130983160526742760436937519642557812485082371990151857517177969857589710300822838103935208950642863036928731825049190866740935929342822181464039589993510010125464263296907648389924302011678615820028157577559185913935268628581954034643792245448337241267566918259784796088299581546954243045663877616457302539331139125716410849377803067843772091747955761688421626485371624759686243904038835288872022399944127408321958996834754622017545658070533172836594589457172721690610511267811169178385163907724180314319159273050077974921511441458714833576218484914499411087893747157571258015535776625372158906092605659768663627443512908970084396218424786175846891689933249480836644460602413851302472646238761130301832200959433940541343378266899373444638520521808908466482887362714317777959245467410276164461542193043123049006688050312882907790228681547215315302187034463410075267033165166843631287062408568420671463677446724426818277242711764700955083484595959106983360510320494508572251224766505054339337260522918233402291539204192336217860812733705922767546521361867955363520157466918133694044982751889384891934415204776332024161755376933966986205391916772110733239298212814131477167697026934203294423561893233800195943844550318823882579303180920167409263322692591382727403993815883760907300704415704715450596573650989167450116403287562796839019980232464965359519228048778708815555614123472739063949973769102933765806671680062515055482882777928223494621115953985689005338138660217559823518231748417938798073467181240255252074444441078323812227502688663913850404883121482614182204297540235176489488043436975705059568645526025356439798777322964507829827638320648969263619807042276104940789957370108116562017085544818656044729704599868698414522043616790867994903835413330317009455420855150969343734646883376262475252121158157147321187836609951965342224713143884727063842509213351605841760662173243639638894314016970522369835772868896854168643755312626961923218693468968273666659167183869701847803508724964301255409520366951534035477155131723582482045786956060027736333592015297770808761777555060017049881847982998122336181917184216459717762714131146821296484327301097866735113509236160025053388937604554461981347057110986989948948589681045694289846823484302320477011088029103581838325362644337221726985619092501526287058369336866531015865913800675695774735335764927097106224028821238074954796732704329626279888245778094321768299329935058022514012936718009110329724400035293493020423440543210250020086444489560165175293551157996346964144271710009040269804874413101296246159810679167715358725041612085196738752899092172333257230657171822702878284481344630578283629620250083227766471849004487933087040681395661629563505826802201235985972219953469791783992660719187708457594520875347238894834607772811432571681130273330847769079081379871101045822872043197860959286681330654820227059612199904005491877032882531024681523079245760647620383920474817568042632948429681492341004815466015943629490843585008857811949390452297553433118425910643706495350091884988329742487352717084193448643611642518405263948962155922818024664638494069017264167779678848735252625753779401288991252930510602711151837077176616719361167350263061730315710471996389673819708878591091527905948461836253474328259330565014878721081890344589512529066070865976867242853274526194418197305031334761307291210717244555433568793511100687417420069819127111338840113849104244025497628469061596376051281187681155529159366393924697308952499883417265733055814766092612487574806915161040524178624283772320229832479600965830027900272707454171497223537396581710316734617887046238836079291958982462064501964228348782814647311456983776930701931319712875277839379247233831107203752547993010838249859846173913873270285180840015039653937771073292145510530831004536698450033385911421325156411031182540538127893614619512389286061053792555135745460301915000405671197865231967885353199045992636870806857834963266103865514564752078471386933903766291974666531068384658135324169436793123832244085371986568876889151644054031203448209343762010101051112518889901333683978280997286971064001141547567248439665526810011961507177916913733565028833786204875901621055791629086203739393001820075925194716671257671657714142923483710312549003708531171694816256646562185280912412362727533900285566698220876429564388146748202621937692643550418452091790128654088758486184009818841348705984698228536639980721382172210683952273267137066527968357501970455233128963554190244674222789767001326663478403947460010858685130153201083340199384411588789584511832449027452190216186907585396827450213725465416923839061983824183081014821445299440691275965046907808109582277074523936253243195438204469306035372019649317744393337702548288066947327230472334990663135024364890193712953512473617981862043132992390888621511930091360721065817559644389888478469327417147234813679812801568426023858875118882378418477092668919416273375917559238477629215257913803183675492930670457012279500392574091590467742251118944672720838698960342348149602886190573054142048356294042571918126710941368120310974695356598715243255128705628013337035126105501900925757877628681215158972825405971536796932789396579343094620946616374395758865313498568424608695012982563301545450985409948813596955438275511114149147752867514986113605440930806415080965107295445913515202055617436397451107926360742053323631287804134698738349536931612621814310030632472247778958670773700947631902894390902661076460223161270141877516041379212030717049542169197008782414143981227080571427470971218720511058564096300687263066621410438662043645580970551307949370121376574864796962333070187779270554626300524563066091193298812078981809033583565375722611461029511910152487380068147249570067812600437928082782008248131422225667109516051940754075189203926829079535564326665904113217049948858937044522441437276040140047374011581417246051246968128366722412376718269342938276154499361938041134083368989463402920186927865964869408404588353813395599661791586385273901396253694449751850129077132529994970590837152155278356044240093689479329677501292671278180577765715461531205316793772512747530407268686007417892365393407638290260685338871879218905260161884830857730296145400698971183829611327230031819471910339562578434418584074876563115717923652191228099172591570016494924401280747399504323684176738339231549789195060683630186961827678867539353626615449849853462667794485451327440949024695346837718435361949631078329345946586201870994361285422049182913424469287713790431624506533188976759706303242990175411444645238578761863090504671340715086337843368452563561253656526306546931911234701604382767023797929651729839843060626753275748245086166009528315135109654864489271223678936846060464995261373592029420364579326743230223003223732932506891861142882542284760159288987410673986301697424884113080567801436251784913798851213518308244141847718490289767494473186973690085390084724858249320084555363195311040754107329881849100301910070387879268388744240805864911481037273674164399609953035446506189737854503938445450370753467051996179251958591782810416753070854026291364638888887063104662424005123350463587149278777617758758941173287122743385841201551404042491717688071649867952669112899978566160130137296311864029742012726594647036141584795909977326002470458890762303626536610706518162578905251577991573631998952055290284545656449638245771515868219067846241733623684399434332877548350854814058824177840472988812728413814965459060906211618351549807494484533253340242956486059435569260460467069114279367548887126339302649597465990416856440266707957116165861556138881617436619818686389214311878949396604525527590504478407032614881613731317923062286266895291464548579973302690552124626137545436383803358022822634297418238708703916283983722079238364328379525154157616259562957699206451045536001407982650222316899473206090684422962364587399694820855453251376307142550822703505323781676184751376793802222529303851294522505312531433578614126042955539813448344653946190583744625988221871216671851111730867320298105293477354514265659116027325401715179081516438786664933318276952868840958950984605799885904243568695994593897565442674292594914107008757791126438731421124648629273292028195475093451636264534403168858922321315629293328923443256436740924907024574782975229745532294901929092574393132000777185599859908742291787304989170333623199702501093094745330020778608179197197880444240728667527947095531020599623399989003069609964053904783873991718156167964502650979062086751313239608589200101499968495843015992788916190035672325641335671569082847518380551537480579078245865877874346531164837272439717805184776247045467839008238853210213891794153616207045688724684903235973967021549907227854895550758064314221474352823430466689073637989400000904055755961681507775915659089281645195643976425136380650817082992614322522267279916838486321629429717526968894320909353559594134520722375679046434454236264603107677535833252111048938572126695665504797906050074123870037863872533694248741513250950273446204385922759377842511072667729908577584848140147192002686085571378918247969333288274181736338607283012419641921939011005241639021486394083958941991265855306207236108830387750338901688445838900496187749424768316130105329917571180321609399443763648901783527002252691953281274052067226469984867794131718127518824603255576867875883185834838709342503963512709686855142811559717317616249104659475905871677884332549917414584433360115256897707243149106450683826336061106687364087443537393561302632788465278117688546477437423649419367790141397952929998351977208558024526979594124070608371357863219398680215665246425558191868403373993045593512493560932673873294140183771657969883917743936235949543976440591812926114909568308499503118176257418301787641884168350395632611825481877579521810549646504217638069475211611258556251187681083974355321421963593179173321145203054509334581030672122025104627126896440823181029010108046090943100477468740870098549561754739933730957425305307546826363225260506622836067387634716269355153519413240111930355243256375746635721005597140245187303479707002437834649398431730771366584422270230915547780698064624889068393873902903158745295254570598701988722560371268064019626083123130145722142726804582692831207136254988170638527230543259541991374660419792636303409035836485638269874472192413134788849306501018363744280259202138516082817121533214185525587969469214408007449690766432935188378107478525130865828251276683192378160349671528078718019027043535280422967866825941978110573509062581273290450147344613073572413167851519513192967061414231418310524194403185202230698364491015194533325079800007199028182157757724526777619011629908044250309299348554409420850564007821032766762641832843531269155072646173691274540485529300734767298354943464081112717984263626016909530882345675517525184966790114465291488561437960470786007929031262702214106771733255987827630851955485983316936773231630657841364199182663614839643065701220579370790853020279027630720824217073413550185245696400068178453435447339010546360057247535461883111940199567489095473213404608291398000090526734373937698164849789027828432366871822885425788844869609702861630124515693535108093772727553424271360731457181890370702768039053532832355240286556379970074561337771198352770167682690661767298950776089296082938472576089355960865666172151942526716883376303194623608852829479477332010306588542270373028478694606793681783183851380906188821975398755613272348618692230145112488884773172349695016476731323127277037958423489241077355256302787878173031564778196629976621196307154499295148581408100127480117719746876172664472869856394248603544068861799290606476472488547356785328683646482128683253540717782948536592080287955451098460670857565653710093441680025550858682583918550580704029786797543819108617637369303350535459177560212342984230700324132890107773615910862089368921576272545948842552850303382651940704391839940838386336569781932718670839723940249762086409013663383162555953318068642986342223420207938412201623305910345680817603483233503028888451656688573434833191383018213137401572430019160496820601070104979240662399601063679215150650333963829616866779995155597501290756658496512727161133623513495878720725506966547266298374276817095350346804412743398345571939273965986092283489813918500431054006838932424485817861937206596149872157990208185477456796759484519994906248125854784702685188442419358550822093098948806148554655192521913415450489446639366593937076164923737403893001662263724878862799617840768389208651098225339558893136616113232185917258709365503844779198700668428522854619379097550650288188867518883325767946165420394798067894134219043144956278926713215602390637260615300748506850842119368319125738791363900685322679734924595315738838180792277076574498271911984679977943724616448782195075589469781559850952148150116608465454048298518941848580745027430006381156849693173700673675432274305520912904640859090112771100398911052339363311840528223366976898304845002976372781573974208878164597549583809053699843808788264503476431751461616667868774340831680230354937307722010424969290953044376125562505274219143709014699199820554548637462772427330614606965545011753201006839839319125973684892631106862280437549347810867685626138602254799234827884171286768340047387237495824591134893522475632736528653502826804473894160945555955342937532406130709495691135985253080369420140482915621668977630356763928117058404385248982168116392268153496239344020661658523350406557842116679360976407787741984249587405479341735302960699095405246943371418827519510429315700736096806371685797294825399626204497263429187558586691272591821693886781408975884486416284695360716215479287827600316303029173074242779238740523579085571942254421980651432318138858138025400142570896369010262542001428960892571221974227921181872527912936418299361137347343022107721843857015367732078398606974246249873503198375404855257204564324168433005708480478758800013589784695681545917148429951499482087294429723166654481886008400957252620029212686481890440512714485502445056021314586999052914041328585755891977020321770141333151210487913576826120588000498723467006804264446499245324073919994833553882898521397395309622016731019991180524839524203161343028280302303186139785904942569779383065778563620964551573031986981156467128191328414355596288544010333160624146279533719152048993511367972788420367880960325752270146665975945197304087381164161217778137282025841986750901979540209061971736402575067200703480373784056802855298624703064281419982427361741870169104435198608525004988448466785961411926094299215968050511536831544596259406848844859689012417901780129510959260190891458263340869256119302351796496038518835702741350422724514282401930855810175164556533407418144731117379854989298892982557779952552036919898350113848973041713086249768760557397010586778747291240492293017736161555156233066564317038972193530089796014551961448509586521732494696441571554760280731568875458350233106828549570680002576754102614572788778126428757074898617242631959189232709212970140070795747122780923479086115887275979444499423983314494562572919037254886216792876866868636388261360270846859160720758902529429401428156072131563399741069127329050923936248437302615683983198299914197668822300622074174754400278684490277687773364897744097770120137109870706032025611236020966025947627487204730392444279263441675186419681409241697700588830022792117828575816783073836786383570646002160103733537314831997568927135823471236785397712525630253984591237635294787696861599766758267096061457099877183451822982480023876595243818666250331315384823961024916404998093672761726322395712493942200895153063489458527365368868490056009452620620261955840810670578948923791612278198535342663655423467943654040315402054773199146695801037223482181935566579808650111639638393576906743430664978042050062166077875569068023952064499815331020128602739807227501910437836313418919001368266625049242367780669777039439682974688402838953013002472973155236033534717598336173210091199571809389430108172417250335193094386353541299088565860070538035593323665912060974512699279221963783112541566507934803236985059475832205336184246236940413398688810206099127577536015521370473202980658446211860865092969323945517194705945353733625144375751922256047897167943424934950041289881137861806888441682290940736759073028806779965499905323200562106856397178496972524839827980409613883269436588003040279253534485980497083496351681813483479237810486443860432037042087535261378230904755447071095469896530611253449083175253842660022016088350877508984100164631200058317619769335794689952210767610819341693802518677480682151156754865012284421897521965249088574276590422202422094455077430415173275557469322775582868735877762184044986012569680912995107577597107809199048879906419513530112825855860588342349093769197140467494920696865165365322517602445210466254898595753524781302548089386940689309205007891051921893748281692432556044488198424775090592820327866384495949254079336379480403611609818367945849923674763589722647598746610841745943844934530407904551947041128983892099079749267204503082350409601409494727779872627711976737308332759843827557004955673680538403307119837821012389046298122736997268873925649842143230929359577249532764638085212885145666086399104437613314385785106171349491619863759678669516945279201250353781996816374456374979777348903005830352678543496907984600795107000993571438319779734260658344627337159202381441770612075718714823733499286428661097153817287149230429169319245222268988523482046065130577906994345908916583895948478641369768378220479701704020861243535661189665170062115566996225534589511362681550839763895668680467752191766574585602285971005493131504703907050778418263993268763541717730385763452193693212194685756073937721677094235202582855887973025875384793866873420692635019871440918166711350567239714220917017596445948360780170810119152726381606464170383802931586303178245676463280422085872023656379465741691846345050283416115400884893530211121188510568191361983337734500320636750527341149274723269116347044730329360370179651331879622573494761688930201037337197241376131391081059289972392221252310190741008812496900269682308933031253817385735304652491914487710152569631088598366226784863343137275315563695479636420766656520193625058217369014099086979007179974293455707021971939547545455665369255681249523081649491773436290402462991261123798154527518997618321113368331666629881069212617913666558690488522345606949434089061588452270502746976064619968683294609605803672540943172833381468540157396745694623712455964539562730303379214694844615431198195285471591165044987763682391541457860077097737327657465365873332613709697467020263444220687503699463603668733286417197370064526051587136402035408769446611561203593098243016369307226426781393314723638544129655677164580396741959050681345310554839176857241052025122399351761839309016150816335841677343057467966391264290690451399231494321599854055370563856736084511812533326348657648767506589700150462002079804025989561906882299768537512431936957894645441638232580429349193049616734534295182312877056222086975226989212990819534763094632628922963759399917399891972305867657289956081412810587967717621503080397688510236641099027563564507985610497071446091420918906686755802856932760444169282069177321025877941524584829265619826168225301800387181547597652282649790013789966707850630705795197443089016568775388193314889006712709991414070523257035806715772719130725749390101674448968541400065590973317016110030838582222008764026762219062563980677963819113560740568269553217035221765021209612362604298115016414744371637556876755934463494420962630160127753013556365180253560598423854147910876749130907825717453074118256281432547544235613191749983317072844103033922267605826457666132906050561975741483234802301988225248507616509381509144388014235942828438583969541919156151685750866517530808801693884257521817605040907255001508913035741342148007252143027965239661361090121918411133353696716529945044079959962571529679273362562973442387419636296860507975801711686531649829621989519848282727217476966411157690291889017801427655437730121713104345030955273147233491203418643676349262581243652417481018616116463445679173389577073655749490351103315051302066024491791774314404346199252870755708611820778430647129454609717997226004173380043509333180785287627785037131764448698687194705036482143679611878487162264034733733485490613430385237712732943029346234570540600114551885523406676430372974950200097458896578441501986498220733817921231411389888952588182407038376125946143492496353481689815211648081003456498632043999559146029949870401827441203288289859078999739459428480497936101865028904353233088533687978702202958473796918948188441119441131759016373424288231335192354897060079529486026301221374138435485951500167689535427060241018008881009999205769661674575140807338997325284749895182406243395762453893873549697477268381295400312694300931493622725017103703207193730758643787592915620454093714696976676324461443680391560601488638138411089216709782927296134104217318424336706729191726061447354852735392323891870190087196390553207246085114268410325102808263538303141587114383404092119412748517605011709800031144630309121202369022093367278691488970772477355112539013847708548920477829150842059248411682964181729220586347373684960863792974768993439498829198807771311305735579123107624413209994481848029462937167760819672711206702782858018420212070185563124835083363405626189165551442239098678656941958093131060637515828356489435020730310335580296517230361104450082057086971642115895162907866346324854207338195960022328538178160466208572017488134256745264585570041682520896073003568529016355056087000464284801918316379983014951568583713177146873442845108496870809246250882045284511105289608249129128728910569221393942486691018483818299307110432727446337177690074645069334191819588952513539370716951666499092108290753109492807674677156995450255944943664665712956995240510512971032257322112389315699405726608270777698424557240444135666750501497284034811167949277962037919813858746283256567001956310961335472944750281524240026855478019478590641621247025246068022943522115931033935702041614789522041681544772064327095579253366536481007322611296960803938886270667861226192135642408965805777486593282574558583404617743908414593468328692711536364265657294462768234425902192235991642789032005486707086985206868687137750256641538497610656985080299729621124131571897035997095477381633740961385659350932451020354044586728416117382594868143671523945104716734955484367491985692269089599133280265680192300799132499701323782793379879733253424822645052298568761028534342629118327120245837306041350819449452170048120984734585456306282397706281111633098083785744399619507791723332699567659165219958077125549012598092914983016047113619974159471274430519912537211275354721907311090597946781579648685315019813256922882853730165869130843996460423279233586393097044343825366988643254866849465587895444850922071195269279929121284661701182066188411295760693734560934875605261031494192837011596491126820305201659030605683277788565689256664387859351390372930063297501160664579266243828989924779714806021164907884692608278231116168647235687087436127452147991997066098472554192492499898081966397005424861190372434665048139323088083786030841739585466453662373877076868410128504938784320460934389710816915956419995929678515209767969632261474043821761208403757830946979812440007529351344946824123521326187585996616055623722970071409910963653274647123500485890310562280741823893371786387174808732640864258012921330623764797546575939032367994425763967312817859008756655900774934260833032072930860555159479287975639286725748698607464735030933007405905263969142572240843025188725618657138440883664490070905586858925287422346950248091898614421311427116641520873655602541190178884197022399818213062742725317632530384479717972349353890062184652683109060750799005134633469295737945764230113972615522418832738268127887382860897981351103885124990663007210458057800477387282096783859502809251708516719549790134230814537300139040452455750835774904991111431808221894748210926610423298795779799195893694053105185518257696561763658713243427044406039819802722008585664085404328036503289341083615328805831730505530623782937145615470183327798949742135526564911347341929534365046890158960075940502593859011438408896462446517128175778896625780590309252054775429151666074197051141344775866955360763431122890616995238496943267102023583770560500447068432074497247121515704531586327655682200972761664861964608174815635528655864077488458640335671398823869142569591498286102895866338986725378224294239731383311816252630962498491422462287964190887211368377501574472528373597949537061637911956098874824784689141981969756283034165134378527969006874738053384444214326140427911191292632929088081350649476073859756638058341052475352938521460941163701802515470985611503407814275562163057419432610158877999603620414141469671267168776078589068412772939115260659704085448736068977004588961744782855402181452311856766143344557829784449299286287427804145640757288300321803349826322933101215840250842226534979959158890360281440183852395924885625770091079597751261522837787570213105018830108407373369258463006010758175880241166196674633100613229269589179928345886904112772253228846862789880201617481503850387842734162906751686427280259708190743913322226150244097204338626933063817326151534994561174062170173610206627051361124476908908681004762754863218867298673394667072756737925450533988964796082360375883864389754436472085170813787963547594078492639250534595337367199995210170938694275671377406828355661404969849540898816340749086976603259545463207434558477837658296199076391602963581830178233651435283566610431395672507995941577724832157973249637231498688806775625283934247655834668795560475266047817870501120273822669931710211060919795800743797676539061694982186558479805885224309578366223330487588352512563054707283080715127075173688956534438685237008959739462695717539876597991717131161495834436585266019685538203569450635558746523052026587422452409275100043107025792125165832579491419902278232541046230947458396762384026658617004189273467921735273467667913327769181601448396028498552158454167763970651644193441726186524195699404564354966939830171750754662939236261166484846055085242921645338068241923354322946993029238191143298121582150812292082684623749025518028049558807551168701918678672411558103090820191074477613604774753285015552323457366182582378277997972343841232331360969594162698956843371573769517787579816475366882148695492301205805402933083704042368857290119492922214457618753960991771741881647815396819124059108337894428775720117893690601649648590251764849746160114607882792299254939681147349066567867032042137968484550833919583330675684273463936229932276086147959796585296172505314676758825782290252329606184439325028408579991599947564686376992263113622405919703505989594603722163725424945329962836689919700095026895362258654965803505902792717315703996232678769282146614865303247026944038404909465097412251424264960345434806325695856846134305551179405146168101052703253768228334640266002917511662970378612515345009531716307065299689878105369434095463777955998403010332696067740937864410300102636479426007225854824445286057152431377245739540861773141171310170102347760229876629643331626539025267502934695762740333296730108582411281075587559362811648275490479456554828190217794683985302150080574086310738582967408935161675612643936390807787243765085098974014001220457062682380056657385747068142558669285200037011477013193614855738948655521813958669225764101342697170863930947793101951141042528776499204218922418561484424983254955232089872610362471346539572773057446992944558279611129725217357390236030966511753307949000842294577778115237623805159553638353312000351966544037573119972074776523945222552433072923145013212776709068899907021886400951525134550857292415856575183584380721918921636598839626999011154382089304463711431034571854156260757928172890681428572906021299648904478390674085590455973772246734276019838907909287728693203791023541463934998990973661627294842728240828372668559842820233015100192322311823166563579448423399416591458579306450434217412885761470299052409178261756442673598344632216151867685962112751916458372412081068579077691875742356197681068996043398578326988837871627513417462192636534978473297070981481471046243024631089947975331463201463473118409444301970206065668861540846496693691520295847431765186484727578403086265947476212210440852038373848781943930430690816006456267317712160854615774497571996238955761221175205923568152919482923454479117405147183480520267604654099879624715303068545276345998269426384140181690884197584049100857798701514609565121287893162204934167564889936396332715160687564855899640422481622047150604182627263554157887309965959145153132003074416010644865025009942608142824562763491246530566772862412839825419870399402723523461689114515428318292721886035995111711925623904205702774199774760442814492418732301741082948564756791751661272893292019032551478104232805768409564286507058445110466018473791179168923061448300418230636815378845848469762143575690188356368912168891569188545010557238059876966306962119366449855864239672138455316798233102668294597945038665308329806455617412614010874855878456220261950937670095104635969056887151889162159620841158820481731055221955769772029656643289119752597400786316087297181632924930764763883636191780191665207865442588866241203990400699917849655421114354892779827238147354146097637140196158954730208070028928713827455182116803758234717654366044471452711261151901016191479412027568678525575981434796687545364552290844586747472302991513155226895055583623712304768273190026242793260924311952942798909722583413884859634674841070145958788369330969622003161684927491473828217590114544929964134760657135657239395637758481037246404356226344021968223868975376657894348136598740401843518061177089821471925081940870534955869644218945459209169702027243496082970897288911576566985342237004254628152100499574183323676625798802223276225227518618704578413668196338922786343391062952945018648019399285617528907998859229444611656664578313910325576727670956730596606065066008471010958193977981421800259193681349814701887742179473245706340123732676327159992285034351322761761132350358094454740846608068496509759050582839384032899254534296434569181591525206231697437912177237220954016976820592106156167588313410328158642476398112555256817115425088057409082127333229445006900972952066819781159457020009904195968756221967974720444672552003179410542867539931595698729351658364440620248352200346685371972420242865935939856759652226366643624566785498002482487939615137602666136065936337446146891125947258992447509905970212221207158397825349390879708502037953394604785130815315351333776245057848004162975697539485787144140992926977188930361075717065059839385578308420342752090095719750537116978365916229139056655109596152484119135804782239205360977913031773630689860414333787198262746981644720184850925811834712325935982543843808944550006791747441877232839110972017398209699400712532039361935215143121400291353138314349282613650047973956590349547320160517351599044901646886766024272158862497046913215656063501900450094436823522894524080654880866200431547416163599427837059319029678466025051658544178035119257408168826507657181939549119140848332275946567780829152292371040593535538316119999169184668434427811842337797518999748144043543548220154205228819518747321895317811997281093524537643579443954428148162025724122702717965884726050179154914703333788542953246279741785782239896173821670416757315009425225175367805360271410740361444880231060997485374362718443471151322118825901767892569010412359621255370350144518643027376803713482438550055504722252414303140885387613077998644063823938650208715641539285711603388073832834795952817666146883329588454029895663874214870692426154155054353966700239730104690738878377981561435433654564504816642370009443762522601650156249271659018122428470828791624082567242656057846286939851241197077156902556687814444437028882989291631115518231726115070479101314134834232680720919234776942057554296991374085070772804659697872497927716292399055370104748486433589231541689461057417541049292479339356121989445560178043457961779698496518357171278617190499866087830755057615604063151338977251657810174844415711918380978044103648610260055456191533915986462472476613414300104151121456857427210459925300769477730390483916826850194432099882897870670388927000863501481678493506287431433599131332378259532510040090418468933852194255292858329801612115334987748034636673486829281353966518059118597924480115245610825458428930847292966141971376530346731580003694847748147474738923436082819192245557469591141288567121699899032439772240119747006799462156501382051762213671553800901116464484454758112583487331311736664401619375035430552731903423356809194947849117816607847068037882630070990258081724814287154544958963373511652018570385747830394074421821913261815805655482764113861321424459044520416048420038086760490827584969964646291187623703229023276422995844030834485670077906394026242924720342725296550388499981205574603174209179884021228487429604444764111545112583268193821630751923546440454898915917279472989907990837170364778186807640357493557205846270535183486557142256620407591154442489712988716051455104486966841778320079124791525215747148558226409265729060880485259328424546539418097163092895488124837442728507803579499105629125289568726341611531640235100097368334010030401534458170411848830714883040390741607001276087751871926105806850341845254868106039254331029066982840235803590537650792308931423844554736769047670454129402078567592942603867734440795594708224683583731687753718801993966721863944218831731651353632589405125138828711782139638085734686636903499917682587396530583446249449963482903056754197836301350428397290587607009781037279104919008010366701529648603736087760666603964665110637221565702254112872062824348857295669628927535266506709913038141350899951479593079821827705877176889919024160230669378547574517342012050776444928071492533884668801462462179883830643333245331966716682011654317898198014368153262618399665751586789558177060559824486070365767452984199840235086023294447807636489492090118262752870278451686916951003217418572114825842350803220289440355675296912158575295361648836357284589868597074345466031378501260809373250885093553277429187393223362299134689793786659126360992462438221558251717991048100750502844462964019930372941592867465312938294173722308251742684256546070310277473789363581536662968078441240723714938117637812689728295416513413331838496643269381589174545352434708903764392491457715069556140026202227319290242350525703116594971021991486048133940971888133779807428976162963379960226067958662413982274563244271902741320608853229371070257939579057832116562057712237386222610973334358018636765289207226170198002282429789591118821772896692459374315433201700694240676139383242117561752293759183135973836364528748741577636071132628068824199215625701645808435290342697132706601798060986649186186173644268788161914896984008624945897205447444443839856765402238728566426316096087318393099002685298174108962210811355535194416571088601955512409233442113610951748191611353983316552913283385110158044290090934591242906725977866393911350510146197148841618629093201345447269253133429420475546329560375874843702588987841976970923463083885532081324856499732140177096191034313802341406169741791009573041692820766584789123901967867867213745637592835592488847911652217441618748776360450193126163366801085585992273067090925677356608891986106476258255558685548406314976350070520077191965082930276382332749361482744709616656502223981819271504066197789485937219067025054984577726373685910013011074167978463392838364167052841740533354368703908119870512309944822486608323525167391322007795306591045256863120674893077186400715648034929997822973406719122064273999562609557456835165513416159146157869458882548242548393220555520332497971818655444622522574071634314315646533237965707383791710521903667360644985400922470465559302506409987118251051578914796564931378162323849255219534907958682977847303504731054600627030003828921097563262361528509614492039857575028421727253639740226134885514619635720203332914572426962707279061077860866313151996901585885213347905782956161990579414447233282362478482249021158610209561898808257452566730647908451639591227057707049668787136505235505122940066831595868610630827762011477528124590385499563087166581134342112445822816321480217628046222653965258146849658001026141083326188141923301443702611039621386151134500503084516515648786064446934921058300228203980766800456044480164543659685011678336900896334547669418339245963178585357302076636126690370420366770994083462613354759697637641871164551729630040508355403177797701820930911717169511068637535668375474865672965021508847343098595378940791225176567410946538333837240566450360222650985467999181757148189539850790777008600978499450438550317510845153230305506880189700733618059207977301571557490503564665484536468756737562693392047722781563206170816517765101680721506407176864925898189729986461553199424795871615043168633775443629127388970956892852727091651780869228304249117796325178630692968660625002421020889769422308947006498485163679131002917514375408862999449783689450112157394192910046740657552604148293251900125239091113761463153988203101454917357049041197369129633038420282295287738774690603246706166388840449084055055030210161753578742050712869115528652763500646056795829182625382478610088962142164532058687137843636195993942205667844359133451635234176920412326698579454454548140742197028621802556582167431780062020962432292954969055338205963467685302211298652241751792640547721131130812674972354410086912659126755921111585219767066024179690576625917038123758322817208672762284325328899656934738551024455376993171238447589839338648020355897984443196053309424032695821164080607770207017881588981347234734911188592970111071941423465236781754050674942187768770280899528298144853760630553110419335289839990898926943030397453943167301159605648202999898573511938927804701039733564375218221822292007262066866110502837075497145957444081866904240608536140192627875487274014340783741497333071675794827591346913930336954901890098185367987698680237986680573449928011390886365740218863917625839913111585232874926363758238194318383648241243722092769437146327407615556922475348035595968854251366205078557845320625194953048850367584148766543047980155262805949747455088990486539980031545431976253215770631147085578497183091222497706341172454023169029584949156296904182742568575915015708111050554318814231296057632399601086047703032978980575559391151483120042418935979044450057696548270578502744635229336924997213814852241227649760534122938999997682474280071084388489728996750310887328772899281597610945972108831910733905726151211878585741144141846080186372156926104907087863256677732015834047209272162437646915816769214468156127896294223358599699622912617300668358422781390057867757987946782655463515512490408893223611811278239830801559815954287890606992193327793544066537013319868934420600688884495918143037031919769247321757149484035081815704791960178819874445971933224166847368060295582696499696523488016652543496351482769737765435493027029032227332872880596696859181764015832724738975752402585367996832938305204223466317564658146416881624779395353821400100484757251641882721696626480336062074945986796515113325755686406285263239281139983107691176328804558538357755315899542037447011401517370591526313416742368724289217664503965097930157272253375782129314413227306874675153680105994392004234019573639108361070543349773899383906630203755259830220965506391378672041164690638774928530724286770756359899517658776080875276378366635213165821174962002592269892868818031553687422787623279868550264093620497481070843044296451717005951662173311935792600207687505799444481473018365474924325381162562819320442757055595989876744212332073840357184132242426424554943379348697380808721895619987003937255599710186338143657771903918471072956784340660243389507866303434441370682490956221707444187437339055262542194394659974283818482717981846447536072986859578342675014714336601125829204599059186155245185433254859229468508797505857953099651188770984060586422902874859543123165825945432496639831318849762271621037259564403018531612015098816381772661485069363235295069117741318345730152053211166776613548316440830210466136260678341707329669290043630973370786221853419417523116035420264660392696694678076872775623258401067034309096667838797774870467025824962429170381747579219438932815159578609763989976595966341004657656598953502932360635753279885787152611092403896381209307916114456274483447485164409753684059597569836503849332182540553843030274252782987776781719927581196284763898349877822830087932710418298718149551058823811196075477696418928551295865608181795328054508226750483947147266752742891848265819118991870121338149046796741590673235645798283477728819064827804986633529821537569573171022104741600544272964503072072311500935849707813679459357886876041075840422889317993055581894412928248444644977046868702070766878640218532517218672262086640824471679200978645575579093584558642778953087476025223279103912253135227004856250653194979143895160906151403250393587522428149819029567580392885357434658318303347202659031272193230216392047884505752089194110507876565236593803099852709581650122885438681861348584809399449380199312914325402638981015394681210243381999197227633749986713002568425046839817679643407113313006243012818961902130444824215918749353016717403101559208962069623036257540974365868866982028431208549120942882208770048626843325574736854163005151868048143089174818378754195185203014569094924348425973456288077176921164785819862331879269126641362881214704934449494252794255483872804645449781803856880048215198688561598268977528492160034514633556454987944425554652295268435716747245733551179330313310080894734167794465090282979054240239357834059973796466561180959424133630984676067975833953968166612380491168042082290531557063020836908529852895480142067769772623336430661268149847278424663470596531337274119114684012819557798493447558833848999601972780982488980009824717122017535982071498478487700019833403586028698473940516947145420239024804651842077142963479740793137613305347173867435754507313220593061036258477873288996266634190457229896017092110599910502159021132158161319685086889863412891423423855485030530040917263549559324435049211095606851521620499957785989516409801028227623244611848498012068610847505904103571938825574781922772720238095902547324365317998412601794580600377189235368277531462257608900787608442413031844380840906190339771617971783766847104358926656701299140118773542914774865323823028662094309763634561933303809956453242132306822990040054479431517832760164271586482351607786573313092399895357842174652960666064906474104767347097024600464559019200321346279492614498286124876347910115878781457621059526550622774845099207307422963666002318715265285454660233337247486401481173046405265881757062360440646187589326690513466714324450029288584390878318133910801671616567184552312767677492622160554147217677213880141527744855894174661068510975242152042721528292520549520696474615267470642254815280302796268580790873551362136722813965339899218741679292994175466054600305992660397602216775642627999893748006068863964874559436010667881540853721101473249496079054367011070948385305738455193007542110711475481505556741082284627009160584019524095340876892173234955497809966492843592267978538784832457266315083857428775058665834898080623767851203934695907318968954120552360620126694279336985240944237795420931085854883894615327075831314995283091196912994218059687307631218182634691953874041238135051797955500308854390898516908304160739922946339540804070092112837004597895577710847836186768353889842807860321232983654287594068697499108115139724964861234239150106336642387857470238606065078051682946682437012678743350287525238801143532461627683419041772469789666741331475801372610444604322082560744159358469898382587171747845797097344600352187057445714755136088072635549473145025711742943934590891795230013777448695711959585405346564186388039979098552297270587551015495304676237788983020015653666938871088805616561798683975560237449633606553531134172488286179126691446203909218015132815992681505143080074949585268581148895835221981902183609427309624314959717213684017243949854835884278000825023126197075799861412544470521260719136950971252724124360816537783017832574333067254850061176671643239331215968033364066144430278286729173676366905198385005511663613123293052558015246142679297413417835250981526979751075938451037842982041462401743129012390031125135020191848749647441825851761202872122234223540045993708193695402184976383484606375531492001074026091319332322400406517969890006884315891269986652184720191656107795492085688354991097588999893494611508489210193338964443992226237005045454107004506013206796450906076805099544119937441745674702427110383293720143354496322530434204815159382053107783997381570574207098786355708710167664414771223813603269276349869299017160827544090826850911461271475221777225394801110732947907920170000677393593812276151666812820231794077480335078581678919244181289471012128381460668207080683023724370790715304408488995540080790227995078381172794800465574271142008514975754331664725011681437283450220958223676169445175296512346951143849392443511598529968938550943998666973360237400518940993884256609327846220203689504653881576988830539424770820791589811119872124463847044719023826621953711583685184795701955110151254943265103299227113674808433759455646163756254618508750911770065941492632164134763136033238215366413289210484982226130605052962911494561518660317377910904141047475474274515179889402068689354751530187971902499121913960724964685193248505429747286594989635968112700000980739270931680986253437602934592436817853152436363615645699728166120091281675586207626308089215425862673296077211380848928233392267959592153031163844039599450695322023245715371931562341597246706425393642183345387697890095620129637893230633369507811351971218851066408306312585121625737835627517329539040779222886598012954707049936025998273186204372850326270212909884715622172598411529921109948254577674800713331331204074986086664244391622968951173630561068782415242967949801247751691453211045379203453165372622875935453840962028058532786802276317551232543339085008254921931215788251079882595750418504283480940176341208733116971422039961372049174436749583574248594010880813316286325891448436690439906002533645210226217026736805050773415808340954223384947955373802539338456209351269829238302273336017774112092730466109377737846131984786929328825007390981903167607637860023481457680668270092001917101088980276591953110736984500789491396735623584337790325442213436554969569428052502274788744565902537997447314831962737468582659496322231034030885170525025464372420812123352144341092923568882111380110371414542905190687332458488167796978416606154236447808406872872777029784907775227696849835522692116026313418166194558351599229560677667648427569299978476169375984599854097602055348481689672981443084638369175756604695605912836409256337854110804047938237543061161214494805639381520292015543758055263118527600501896788896881868269116043813133606151953287639841755425589064579262194602585590602053577737578040207392101055988589303917756807375734867920157244394759955583426176943650467841410635297341541525487685668945433700235080177361673334427779338487962988943723821611468080422167974805198596002015406470454997116731540974996726887488567168293467965396517852341007370672933702840831921349081133818289595423892117957959704330016481049709885206984358182346186122031028990351630681852444979312044085031891586024962733457588556274870789825138197157317874931383207235580966460932202911303596056817846576718084288732701927500906128870880116271758945004239451955979609220265755821997149756749790312909032474052908227035897487576243429409355212431040007440290008999488694029305880359801770581141450255533646231176994002796317673299490618385969190778350900072244725276455646464337246815644278849449393496633713399060329791800246511978955924656513030298832947192160259354065195993005710775922740347875926284358422902780258067292401454682606160992103133370606697962264949967353698272093571892467823461663232372441159534755407495518374326448966372681517347218639039481591206465011491100623909443573654123062743434141019563708925279307264951898432211037399197274853020658876360446611686218911741465355401438359248069230122392024561270719971713702422255047206643066536922212692933254411936622376084781639073973450500950306928684202159841356764410261786276579437944445722770406718620087586688762933464535187463952454361594865126989954551186220650831800186068218511138584918368953741182424419558675392226784057121482603612830794762975370183421098183961814719873172690819430231060172089807736168730486519185515288417255945604164629849696505393820846667504886915706566581528786546435959090666015522652034825218516887417979992397652766592056946785180896159019347639284866124616600826346910035622843590753927775568360849998472484966955619802734569924473241013850845596421423622118482169238855721927218426557798151761840611724967550978012585337377177635731320635763539557434064183011100969098309483915547373218718131866439543229453160157084960264463230223138882606676580477021284203570807245761056616689219862766499617431497660659490689293305506936301747928499621486401390135612709228599928982935991640136451548053162996290198108967674632227526039972915048468929664175166960851340883511642232617049021553756038946466316527204212991968942224720250395123135070751320405579595898988246296202887682574427456096390188125766576337518778665649014981407127340233581910817132230342836315599593158727538086409093644922292652666458306570904017664840035841934877894481051496252289509096130092038605565923031422591680688015022116137972804592759478342057010952173920390428519262736706532851925364865568833666363221318948929652288593521780438684596501877450102233451222305415289259388684773458747300568999258199935230706385967829101244520175267203944235951202130990135754819373812274204763799743346323470915442550819940576948716573741566242580551833261184396062398284450608060538735967262365307599058383865839871245308549704331649014363619112838392761092635363938595183641290879019080649874202561706775959475259354279555144342771436186051078369712582166421575268659803841861855437544702315809716724818383583643569406220517141805201557552502188513152414261941124676678906051897535067763418053134314889061537652128885189440428253769626391801117818397692497920106396819814714875672635277297728609442407127362489182452212492085533086524048312028555285522004517390716006838479327900699776275642225164686636751285619164766070749326459364283148604311576473324922264073121042888543550395380579230337026507814936734160084293159505504855611864468024627496957630141402939652105880167283514376482505029368531247809161295438317032083874876841185112478203822104354930974493653560533547127035470615905729906114193269824607099265503971995074831430854326901381869926278280962598789426851833502128165985174205627520341125446874246214588168162811501682263358942588755356426459130960160374996776252459372335830778484240093179830560088022130103317784585594651531897419726716659813184005707460330706536517806505874301543375251409466820566193974950110949313356382097637134625938518962626611157521236862922533810491896478072579129741474643300203435655654354639905748552779644627705193819296227151561225544314896945096675739025698124386918560150024333165929781884601702928152394487776999310695214373960646344372843567560480733298146948607850311305820113614098271651349443839286884202846529949592148744141157459226401375272411116955828596857802056435519367118436148726512747833284193379484607436453877579984797178220793150793357917891284744549345822616660015557096605599914863435208930761553753038495856274604484985471983660934756334442534491817936947487243043824834711992527815612046480919000459133028514833348812782268348592835669861349141877059155398286119710096920697143272551004701144543589688437588126447077267242369821822963664444047516084206880630056557132406432962028224534147606971009403680217499541746793759716432170120649249781870790655509222345623039319059168266326541926473902897327539594169586238583029734533931690062409409157103469798042727248140805073746157261266820225732967538642869031899541274730169676105201185081799200279179541748207764969538909613187034867364432737824108581775480798487646181234268456164430305137520058287310640297264142727494060424346192924396159869843987174952653811068725494585257047137790898934621575692753278774831669398780715376844281567128998837198231768153965574412002044093135972899180547372989331826975555787477882902918637684348479012435742795535338103627099306158669726488983592422982096723242167508804834525056872002929106647515606494865068984429810573068756911895485215370385131080731378856846700063456989704085813969765927614914508686361337640519293641176541589901054345841487046768116355762218440639872004074474231556981659391882036057231747578313903184743790490479634409722323682339911981923463889009971062498734138715108513174502964152467962821262518340324105352872735255386812698203869257009526068678521393336814570462712270159717543776979507881139854574124433168628501203320576190257158652200493506272380252237278268582044451445266606625206434491290660189044753872941656666699206879729767828781175797236062639297707674937327384804195776092195137214002672377335494223334226991381159598660504388770217040977927336180562734212587642201870887844018199740227012618828728748506987353752679402538436956893753362944505827540620510484706964719616616148681129946633530947275695935730117626962759057189666552462413093453046046659515300585315416540594884473786552899709686322439675850903425563494158176213452177465620001092544535395397937650892598515892966143068662580586579725971940608069135112999544610987072023502478526510023598133674926925387655496779687519831406034426516452820340211304319822791939067370397935567258069951309571603224739155240526774656973385516918691400106317567991778467871203512206189060794885678305644084317100170558437927422862269062313220810846497072666050144699195733773674066603557718220360512879441319752151506836345232141658895849506274260488845868955544717339481048223960665438088119971370926774783039178944812762158777059139237365571567122034460681846556732720787670513384655608829347823701319389117607683253743236781723330152490661948340772069599283802001840208672754871017377406480517597366518991231791427300778832705774516131574479755519687995148693702230039481537805431086823766669479799702365455289966765631579696320565790961844060243988132671800368269790180455076822401836858487183510838171224112441368829533854320207486993272350562009447099373464477027404427780694400778725258304451131071144889990679337377193613715764717088314238208799313078468981284594239162458797963082522434106857919347057211045720826428186377851463898508206174984993599394088235909737628736768863860115534979082576954932728066909691598762563366182050981541042889126287517089880551681401094913062197637461559365507697496854905508330846156063636838394281739662550073153955327284245502830036977346531597883367188707568122830814139698951176212868206529220255172392167272087016099125202605287228217274981191111131569144051981086971342015143132582964363699897108499244963303544682718464845979562508381071781721382438916992963835395887057420120684387837496857942848756831759269546283884958512155831560481234580247784459706907683319759884200557760026419488857585239260733900072542316217237383416173083376556627551177395934801451554994998649147560972097164449796908651954829237325379883709480624230078775310940892418889863788256259531171594275700087027677509019589279664336485677917244411322587034876850516168723574522342560062161226971812191268276731209810067499317147679386088271853813458706182484191609605196913750145984504853970375255422787078136453312955348319087906982932956928900782599570098094385140844431659704268739410846370185844202040951733299665074354635885107999752851453556820769129097675778994030512766126741409510909289962815113135663373406136837463153913149605096374071885628713666822693735287820830062064032003334875722706931442255720593220884395273075766820118867444188721402151300959619423123973813739238631072175095622147490259920750039816786751555337632226337102986187213271674927844975092661110351898496674157777967628171949661029057715966441461057331216691454230883683614504508077588090411339313841328010982714529385767483224514449938603640266026226748794000967547083188014434012332972281278942960872692192270041697489002627818921121940380492557513367261583729970739960816800464105826657044361030507776692302437160144426618431585260347761818228887669678980412163203107679833874237665617257066461994401617253356511778901313150663069743918467944976468361538170159203401982579790864820925877372633398765809604877594128530560269435290346501594690617841386297881447415653176550579632145758920986074040529538693347684532588027615178783781358903859838330733631798080837008466354120458199391335485858705746340275559514977807787345331677785308458223966016209706766646563145902349592384936749546204961555789798690702608367474384760579348537205664946207968277602075206756447295794656374813704896396744387591010759539602757266813089974315147404349670396366302227684969772891929193096852601384972001533473494057080303244728823422466055646710561455102134668058692233482366092975330769063764329688107621175825362075941724434034749932944615876709234204575540040485880810768519536104592973730814256341202523490005006176598016845549531165754076285449108514848953778489379169922310452155181410101935894901879188203333364307366784459778018384860591369555031280715763532703656844874641838455939024379264890355121771567118373839110754897871173887833051917187962269821046298981463964782403944614262016894346659347207225103642098240657712269271899188495842534017749514311173802746838839024326570259617992608133413321853791315631100628457245751472531800747562050679933894502866330037648444216662061051017685650677041013872154419866169449899294906053649284649151987629384268336111804476677632008233789771321748983802921794127975694175569048210758943888625657447034576775367917766576609669747096693045016105593264839310294578662069979939054961301196781079068677833817875095290049884997682982386201116472663949588859345944752521215336520200512294325559505295610697543986660187494028953609600047678805985237786968559843326286392400219098770984721410902754446726880443254694455424380630375876029745727582216237167651208371637185427780823626814862570499871371065251221479049734363868903794744346582199749785599505039210364054511054428934576106023707456373742261420211862061121709246940006929230062120100322014020405704379038278240255950388098198162238128482638150881067351416120714739830899895536156008845499249012038391142594043593442348537168176623999743952710096182829045891627428951191022206603046333271850147752717482432350337849237332606899328207328150053435568274660495486761929259550845536855785108458445903740876937961643231853114884293635443214298201007766272358076623669055935297488249986248771995630061734283762789670446724129354372950328423667178150786294786326312181394111050303768255959300878338252020069008828504635838961980052331107151562386223789694756591314892823132415880606123786336518871732272426366534128408098514622947433866889538866812702358437261426538296462364714196669634424458856279202786643778840298084228627750568571156636583355196763865844214845181708145747486481230784786177435805796325845618885381888671775412346229303414638772254809381024079689211509711164293753931772162125149904912365129230198441325732352198269138153309021601765492360716411333603882670794710619912045799182243575925358425624654207168699230914180599697735423224343633158699334862926877195167628588980538764342030326075336857327296460202258128510100294430730582300429937455550524474317553211977502595829417698466176712379884742791364526016670589258952320228904694933500260839853619266740217285975685509491136094864168515225404595927405584427609094847894775314240459326588063494946041462926567167327240235431173205817030545843204006041730017095616265246588465639948515671903056398075918146420018958469966069410032255852935785760169104330300793204542244793294859797480425479124802729716493505117857518235597540622002672101507921623098008079311195363111910188602301696841556201180561804932894977142424996523090426402489017264145701767807057123271295984196124006604981708672422994088517034073192350758988360344511367110087545039862042311741795071054009568340462284766151415224757307622569346930599983416273005959102799729674217179115916585066652295505035531531758016647077124218537375655522423884099770673609061746079519776321029915657015151868185750216525948781253672705816621323507199788485935100641823866285073825328758816594142346726047264781147125295296238311557659870231939819664761096697847780071903761192481754578042431710136490147195413113938375401150559983545483579770860151674663595520002052296939318352881864670352746240381246417164896029528942645970016028225957789921204580183643014683623538489877370888225219152296158672750034568308829071037936417630077362352769135559341770822997421458538096067751049506633027723493142610310415905922784094146871572523474578412833098253459659362212360043603544187074780079141450611294179938981258281845164025722257385682737109348292461540753454413344005749387304989657114634825400887019777971948000755562547968835911222058931402792469361855669291478741140978025769463500635819889016644155625185429753237567905683365493563234874221311646667841713933404630889102695694319269305257944092436912452082811840559793428014179994677370497829559296472368530517847920755958030911334712569111931380308992541586973106708928831497848215394020371163475578837256486884624676560138291200493257289256876246353426771310030213367767725005275121627507029732925392585720225896860995969033291475017293536523991775552372412392807128938741831244768221287526237841050010921181084347973036897215726996658236087181502813917433750352382557197761655651589109235488971992175713233620756227989364573396821397416399066877093868282243000658947289660440335565298839663309718223627473617807123704423100568227081244249201578987380631714686660922281054712223477648468907361629700250622494881461254070379670471418024113011548114172357602113662903585664773827614777000778936515106450401001682614972035633082478682813963861278775169790685100144063834316523574833405122353216976329175222747700756096298287492091394124876278241139368442678869968511434696197664929389002583799860946668923386698573395246246423482780204918634035443403844845002066305685900091862205090982001223157344124239694585548593116079396233388135914128797380261869476411705943870024196867507488182341935690799296293956756897924160111587191799959530971860065589679810074790717120188184291817365413496966512191494553344900487651985113056605120514195664165838720510603242715843685846405962552452177737817813984749634459964425829692711372926673507564822305394684479156046908660139330355494142222712599863948529808973392658110409577706230426106995171954701431632073733936836413504963068615857194451195196298551302257171959311523416126931180774895064192987604082358010292849301986317619195271135749810649619303456021039865281260142815186858194250481942935553549820515202762718128129844769095953577573726928982781999649157222093584679077084530761836883890005389262224249423252295822246292525571445286770184799825981258735862773929269464234410898334786359373544170233650872318512085260592172139353657299221549354195670827372447092672880170702501568516904584048502187702870866205547497757914584145458292607739047848504995225359971815546343312611379523499217774336271393265990832550129928443936087996173711114852794755180089546268372798889431056259548989231205166752689406442413615188848465287779599514306239156670347822530429580951395493126497779930514631900966378256978572346051623607046155333532355357257531819105929760940000077426805260473338869192328072368881986050796321102603753063595412475595380337230514934868456629120861109911760593097027739304141071094498628280126906041946264769196897634717778230289394761000363365632559434194641664194629334642438183188813758420369379640099432280094054308490776773564014504177543141444145197822901833914514907450526960834531807063558416241289730441198222976564718817946458614858063737718921930544204188789647291146740272782247931595940328681620974403003116906072432500227368290469484221193874968169434841138343226664351002504901059382878643894225919241199841450020244579993063251735017642425530332359708966546840593853801592114094747634874720572244932274390002381745803161386112731737298595548625376152355097979511091530810143681090087230553646467533833369353877434982716053955135365901554923320554510904849948089316283318319170003693168598404193589774911689518295464512353156388095357050943077972996982645710605353930795310746355805975538070949956326231875283925834411481622480802902384235884832296114153887368690454561090271017190263703957379464839718536834979321867989800854647016288565299481442789420656803073215695143540799634252382050845885912302934985038792212492249995440844328442251463803704246589074134632593018682954042407121364016449671403033394658090918071007830892144924358603984866025320424103766273718742108760876197875327625111108794927847907896164396663908642352721421558284720326971471688047063386863340401798007041971308624437100858164937628744202077093678734738229746819220261252105029384196644004334268095280638944398595837167958992407093225641428575717973562909583118222269969241259318495399931048118593614558910946256191487227324723441885361154297212727637377831426388437119603510358166137814104758829472527048193477320983829443635176221674330135817098744611842948544533238003439124608312348767960743179578813176421475316648118577113050551127514961024230062857309196050116479463965726324050992419330893981304939936016710482892810998672731891318970931568163070210610377079566059522746281353987156909350810883374751362268948541811942885450997143807495188643281236864338423736538976732611307007775683268492234426694649614390712287717284101760474619437897650932456952473751301298980052372339669853825300376393645510832448153583162442323491520016358198725672126881635907800210145634533323777656776800574132162439720146345590022069716125165161917518443072618659049794328706932922422558859829995945704788697528716785158440713044265401449239625628438395527703308534614557312159155529539518865566237222729545652744534861313760884945516426161790343441700672731285736688670493427790747582268017805108286423772307554368747794071554940681247849978820616902328697690326041269872061111883144521239642843997629006955483340286495345606118564377757627347220854069206112107471069210497274461431586933684754172594662898866578440602025841318516260376838206862917162673295558882629779862473758390056515173143725067378978551677786356137781059225221264637730279770281489568684829696838691113784054516647937182069528866620722266978020303982116096257894136300987915903344903829347071772148245005595586684919065484811938087878568583744458494985824893759924817376823318181413898489129933945976531835956986811027815503681091478323930573821902542387677573550318935154188475640699548521112277549507774016313300630187976727062500928660327212348638956849469546751562313108967341776416574655609332385157667212289505726429330304339454576327283990559572143173017506335371604626783867039090437115352772222435746479878148984907829493167863526465949228523724059086604182654472915910040407392238413711732084412753247755763677451668063309501810524856304380527826993623065848538420650306068092154855069419636540131994395485070134354216299873647442350467393325341237695516678319396820280049918445212905873733867892871877070361822952214379947611816531385824803442750544990889756650254020239857977486864006734545363026130607421620380785414635870168351696401081097199278996854485942250240479896876458040322196820169627698741217222289396778836651003028906298760428162989733838531291531200432889806459967314809650946710310824516395869303200584046495735240443249362984691646227922590257308269275523156005722394777191501811128084813494516827639405921745505482968975459378454230178849039515011811380753394390326418947366185537223150751610451984190386484575772747015531863426028641611918653431530988172464569792346458563696922804126422100524554353726921165699013719427619609237147960083825234924454542113501016541171275827045057791651687668630937491703049162336515052305943091813521662007552403229421746122952750335962544725006094779085045916393223348810863568241266793298326172738566202536573136852470876594752318311758809586208978386639790466384535646397158190844261886720277004633744462726495242863830834672208728812512160526357048633509009884349930248925461838147567400040876926434489263744719953552523751328534966687559985424071771485695429561054229104876314315866666109912616507018212417833040841200826645191488500916478843057105010913759965812086076364826648263115964907248495961013731247174689829424358007386218662884012215463680926897493926786269017507231458555829329187572006079104604661790463050709718144286980545660501440084618467195423818628521142609575842560723890639973432815236555102050484998624779968070574211629276677278246371363340251048129433038079395748387550421691237519923154280298581355884708027521173462075347864095371594500633895188418001283025378163466742174390284025294954630734585340604613186159477610344658346548593260366765981357350836225092116530979289569771519402236261100992557043373867297698752732013712640091279933635130514841662919462410128766745470559917195946716655169228804181468947889956864017949329773467936999075389350438182212522432539094933759506274448346061236952245791385004373231616256768610583200526109777941321098322738757161901577093686659907857360557652014331632268953719894595822483045852156159202328537379353396523166877574190975454112988948654830982330346280813949855495463675254963973262318813566592102303886325945760765418911085102175761406227681300297795384065773361846753554533301328582180132516927521806978817942369903308143865051919912067766667640015404650245552011439869098078891870598513038874421040630154081895985902786656506697735134508392719765365431595222498296733480668842232014132363570344972498900968674974105967763695944250649444858104514095523657447317321991138421639471300582842352893342347028765765746999487640216392969124294972577371655720060069044585010002350782660097598691798376598802753416010826377438384401374396381553601174497268432897895443022753486401165253853805995185837497486508825216140607165734495036051289885879563780049411530790443081850239469549085539535113973622980582963101465519455756711396986872831409004211391161319916068282714390767318380762717224756814798910104101235908840300740007850226325858063016433443447664379350996692965898295762682620940513170317150798646977669281808660674424880061770867189848629495432994184364477619010632867233130370588889962573169572206497934658713747354933347764507512956266488179858326493464102091980417082408704661284910740847368830328380231598355363929043369680436829141881079574139801783600509424226954457832077198245535331712696714974644595687964064642171022372375826993877343260185178267957178231086788748370986976552644851375659607723742249616963284557112718934929882110040849453931026125748796845492756416250440556833827401121890930764627264934793565117591620918638938385542601225187452480459122574004876503990436414668769150831330706522309537998937040455089398528446238074649632523479058277911546540562878840825419210066653923332542133132064397436402186390991429055851410609197957372497406778596944884873955224324607195212303268228682172365322030685531265011332198851907809977648019165784481987762834257659370686674335680629469186785836480753502793089940362623355550801097219664131813205028342113709343561180400952112747332503333805117063903785041072760053388119358597451447832511923952531894599167439239335383519324784065662705529918181594211786273203803065953552651358623556212025776988993265943149652511241416620478371203906544896410334118996484681137364427191318791891176378543799283361945062245323583536525639540674689249720097691835858474473731038568751354010500532828268547645401004487564878616989343546452704098077654776793075208763683736721766135174266098498946152325165977423737871541935204916922940669782598040421390702875777300428883969172427673282354060178624007299032279032525912438680168965854326182311443798317285444456267632611725838596791593468810125449358884522755966343898342364553732065144509468289498506993869113275388139044721150147299628133562192694131989375790444022258203230130518626573349316273057383878072137400141393850224837594260432703626126478290314623352503909611463990819563754331174880390565450341257253896996737786908216148865128755280702840099597447793469756423050031910049397061864745846452989858956001145018408720057000854281408191479513526083386592440142020901117721648500554481773325139312549609195027866813509342235286230261670829496502055641183836187234849413577165366803946760727166593911330859751900559961403841109013260188321209532532239147318050636941255507269615558054711693369724657185085305592456607609585567519266576092468790012821121971005515472423723555512116949921402419290449348240610131162359605611376469920443386161094202160418255548992884567285691092291749018773886549485487564715258664297015037760929166253631652457880219969457762505970384494804212352431816847877186949446791919482049473393016540325041214360536719519327003160627798647637102400472902077179406409350645541080751594837099443467513091661942387197014816304694147560534383550082262443496178601318540845158313836220718113155568091384654941997623507654676115381383556839189986385354425855879980695720404957440028468082514321782102827370317953301061474433896172435883427772891713833482416881327498011284045809278139332663514779282896645742961961566086359595264422503418240235732180543316461719061802104005010491618380645284911683960751655771388005005547404076264427154131386451265847098583276255524006516411726929481013109262737924335936185991439266107247628995219617090024241413584277739308671278883479739326474461787230366904921254488578328764444689916367674222799621053815924746011854774932994388005170268134131577374598001111907560416301611007755933884774736486746969793623740923751801336756168800629020308282757571449010745901568174162384814602081243431248540828773509336074723140166876336416488042660396291351779811067076321937013154989956298043081698916669380045346655934156567135894783306468097085127491839475333518521506350652305540542311209590594777198199272510213391748369895810638732210304127038288604709091266505971688996961106745077934554252670108696521891537839618126898513235861292296089672137192569348138510814552834846506017431878467100433354787630927094437308007617706666234511108597182691961875138389924065037252354847736824405681393513044086960450505795968127759190419720791122594355964324307800395108561306652981885611075539323841565847863200573129787762347290485380696327409563663302238859757112837020488556054420357605987705482589119425719967549237591622697159599975626859924828798270909253370917716472370199215152782501145462996118429982624673415052634864530597437481107971555427644982354895662366887612434045689633517859713706336089906617017394738974126393664418576328645112372378639744770798606712708063300842254501773476747848500973012158215063958629554300656238648580062298879843623083102078141825806237696
