3750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266375058554984921433144486050253216196091167048553530360199999830067883443298733749672294590719133708077008606245515026777328263406503566156368735429411692075883520073294886941959384399581059127273875123552474112659922049213576976718315183710694757725172680998649730323483823862981824163563518516085432433125982791672567686086530678654948093858172784451874634669421313673447482790474621678920332342776801001439284428570963564300414902457262024874591376270223779092528296130894979970913772122449293135539424648525479818985507368159183434148802359606938414902105649944193576907214876111166843294226341440346141778733942778835028268187342687401417546037366261421887368139126527631858123072007015561314830780173962067365429503111006531791743299914595820589523757907733136651212969851627594216708539217136816837665389627913891985268375172470076755141890129424583157828021715784713684336724574798791982601018543560080982010444601699283008232818100361880986225630684328798265929124333081839688250113477266261596719029660258801090471675717771934396812054212845426101504431298832450518742645396125582279247175638039490836986814407234917137066700725762575538333366739301136276918518873576948889460997132353529861071448225346334681592148551095708680892276179692893736893289723953775488932696995819297178650244222582741489329739381376560672868836330306871775892195294592217862058330897540578577077354283819800872655129774402464089570315608864960681284757077144581139124952190954178289472333755338372146623255601306629176678129676167102265621762145970810647750367944420345445491597470525745541535472871453546524515288741967489481991871592708822093535773091406306562373368693304538584512788019539136972916607968696882194958535816427856567880571931365703191338189154184921530347769354071365422860042684733326385457882507372840967920417551075507906507853530188235936594922043176594445916697737373957040157470035369479091980629577912944338744665237799396516043899301332404024721449278752542828595436389438537188460361164979967642829505074912445436823426141957198425896538724143342182949236401782402053028470299850491557555002604174039805447903654028194449702677502472158610055235767608969900276049128297958438456681999440324833391501647965052055369504977796311403685503403449726947489663385065354947985509153806037402492211844808488995187950958892794244577376534431814131444125394201323331871141552608755370035107233201847235930257369544504330667480834085152034978873868870641766854932228449157035189352195443348627994554542962251558740283688500053903162481923318288087771087593281834749526825036022196523107488773148343956185605156118431164213715288768814043859122156471728973247032739839449730408155870603094179571739332603298746518116103573426925867982316740524855146562575827627387863689935204957078830430649901314699255752736196065945743293903388026782217779455284647884595275934706027273707384761974123129603284565925646308720141306958280766051282884522781539945288850774598035743725777317674081086343211903474678612941043209940795830951476483309547913529991106278973865057456999030378131006937021533577185507300116589074276911033445646329262379671043155839016346485446026081180633009939971620281598412491716364938334745647540679068121050721250668194675277595114730571728402448687147448395446451742019746627382890896628128537294069557740082100255566402398110842221323205554692737262766726862924987892136185879638267056550733263971493512667195623465683133239292189824474538836501079738725027347490589998114539763711345000845719134502218062329626452615547914339539516059227278012826652895430362288910030338837989250288662062995599010189632306854111199934897733223887816165636520788439908628189807306729493329727705589388918808582921305893668890138422791880169584789539979661002766905012941462318301059855313087830257876759740625369170605070996463205053430001569762776964270675237631920663059440113369634087385477383783210380473946296800684227757216733915834460433928048209999352226621227196522378373916842302657214380270195178762098930088881553821899710272066464956938339248864124686238765892132759799346956131793277772816253700610443433037162300895408797309324552125074474465384290520274512370250928571193422191503303184046100310446671832785241086695773342599300275592246140980502362576333834247406558344863236108793860916931289248394391870209763544363664241257308781449298961626873488472005052280198110517479261547391020833413667153766396100284340499806837700380110878109492055807327824692858672907457238041377280305338517625071014845919978322567837667883960396936243539635919506724444795105868249621330892197435357158145733487777997538455260876950009048659741531944781879398485642666894987861462893226923965917400897514979390892669241674382906046167427834752217235726821222297235473513130781217576132924520563742774372258503901572019254999267703953210487332051908063242047299180905726252181183736963070126229825105627181105086355211692459093225507811878296404086361441216718787058854434340605590696415650505940845613282610060121809054210393949976998740489569938313178130389867008412306867465045462689785745052255042590721166524330442872656080511990296285761921171181327083364165552404315601073491832057220282169647876786661591096322259517313254143552415638673919573739735837331644753481761084449368040481668820792916618297765138706360336172294038152275974361642902343258943609372608652139597443939179589423137409893434910475159066019301822900109754950425911427316049959250201926639400659449049458306980570921499579880548050021174251964883063705946966876893955875613751490657425507520748517193828808119546612836735835497524330783952648707412577135708341169511592997419603897495629598461057828581968972609544366489200452636187520643674698881678044838150534642202372371450256195703369159214095567820676237899333883984311305736569926513602136988020167350826150122040627928118532761530157668755201383749324914229438968299305826290625892111513234922634218443359762460364685767507189466640635875275187366705954193626930671962870958242072365078554124924440539493490694164467450241874692470144297267896906046698929851889721491017029334496854678112433538717541493867968536402404337958348152794535170025399603520220454541871674196632320256864552157317162914372551699889020767732842677946040587421286336739749418252987374374944233645541594810652232444491105289541587361149245462161188914334520437906596130515573211836267292651870845667404849986031960064920347873462764432142730662991078174716696551326752891119968587248459062644528833523828606574710831287768024658002505341075258883469755676580494747120448920151913129934792985168151165291073442456636480233846376209085883796134052952167092144570714247174278400979331304298264921541071587888868226413831004880034686999885452532004750860097669675418123663747946288628481599211677612487108602304048104703663344217923479052977928417346391972476449438066815282563592797063249757552848035043101830898464247471605772972445774385241986918750155333743885844279085123072875422129034054246504274976503225196736371413592088657760144552681896840012375148451457832568181883269523764448400500012305428182049287882768349405868186086419568130921272724405691222495210146320010957458536167082723673461013549449564487385905315459634648634508672851733628755670719980482575288723245472590699395479969146915844902233433738989228970975410955674668716204522025769786403672247806422150277544338418698825503305661669361851986833373921850654787187367905774694967992274080870616479856647724716669679590328703406722401134545936320103797852784321898426853494539147230203455835012313880434929331363618158506092838212535780527311447140325428343119011872883752119554568889700643741839067435656331988864012216114901028959703312347975587781675022175420203916179086923832434627377113782676257060169800824308658654805630435668437355756728948391869325553937516586020280717668113389811189281811235137058951889472413676584009889642307532186939071940856954295806124616488058055403794888634333738980535445270799879211223507105431007496724960894555351675603833973868138348636361265008033179399098702631700304933256897582595805954756862439763823603229111013580544028638446771967129163454485884922889597488244004635137156325355284807752268521937024879573327112205929788396953438722130533443505521501734658261988948907539623479132193699847236146556652406211128902889434915930257781348068638872922426702173656605343666481089514390772098916441203342936604562356935582234464993977526136407843555041661100846270058483979918538191894131532528913679407207164366275538592794134199486968468796627535248408661216207587030707979507650984108729614158913049453042816455622238921009272059360052005580325852677412835486086609557913234077342938295821762950472630575327776714404741462525138469560146286705594844563027894929930624336755475702038380643234226777486941881765119198165008000152879821519649887801503850248883173999538867952511029865801968262546699827364680762786331808767059530581119249021019548620588116920515028067608178774851180909309332850509148002131944116942402875737631716561208876836511581809727327450912754573462503921514090784498132681385791834612339584592207017432091254581325506105854818907867330252008590217679090267728234671398534400725459123887617243477392892803458053227810079468128102233265721032856301556721332478435581096118804751172754640192325350637431443792768129677094089478344402463021084843420578254235106445725576655600924605876624812882463911785392255331059167800075386314791382958436947173230610060901593164076720936412820308417022194783288309641967465817028574605452625213351166754066638765570460419824215245596272064972385973298164682974049317929830644654933194642159008983307895345852002804195467476083176034603775889015620479784941935267596819031957846036279734066183962141880033773610580999786274284709569514523605134660396236461674897315096547518103962440323305384870772957384871735761245608178115374743090405645157962353506488827850798276073906201015391113651267879535869528960017671255868561581503777524587215354458661367720803645634005666854221603284130089478367961944300540250919045140492628859726976998468983856821181144178169142493315778151976292764483171929983045251641399220187638890013374926782093111319385184225524524726637253708351658162819969116756938467113247587396636291767703695241319094967148282011074769040954233597754123362841168317764905490291479425784130729889581683275873207037263363352428550071089514981083368251521722185722213504774837227816939844925743925986075358678350427979236858903191234083067017666521505564911744557712544480111929137168666007121256094308711435208251739815553726896583483844712179887051718974598554871577899419247383983477550834525720721926230863711567140402795499351756295724768601305868932822084041196526232673418408358372347273062641587952535941367578281418996860076792140574649680649345906995677587467443871787831511162088514499615212320657412906406631437882837116161819151566561808307387453772930573459747087132003970878346538962598734965039022167805069501211912463326800584931436006752922364411656884100448467978481671030353517327465290520446538692008574375683113051329104069381492421998082593732258636390341508329169215323761133613375513154658316456303231363821889504365505177534477630904415023276881109179816372835325859094957289065336845119713319795002100412152721650857973028063849396212633395608266893813817244830332533821468842979705558230439846527572297134506536412578329348261131430740741473380233395924295887237509576173694695802773651544595314588165721123050098545495703168827910774705142858449787818236155330504932473925285571903010243855980234351630398305067442659479962793495012027271183779754767597277859591004541538728518204963752474041269277521222976866865552724116749646933177274087650817670645230557323993369728873655692196529783671676466644895286268496412636458605610719994830134252427525382029628967644950268140110618719442696511126650756735714180800015820225365792455986107362850560010183052136001173491491745836480468126293306135178707962943821565554394629709451966877350627337173057187318715348285578820367739253539488856853437805260523671967955271980671296793082399291670789890825692458822698797555598920098140586838094037998198134522777146077210195946156092289901506416184706978790328846667485607660377985134902459968275984979909920732233260265503674849549301623508161772490571836633508129393264766743190144996746499999903237822570419343336322255776577773095232131523715566368098214699373525800418062196101141599691753225018065594992601749823193510965484618813654660609901439182544462850898392516843381196494443636829280981060882334815327645534576579766230902551211971159264534759421357768531408432269441950160625313995411351775610148997930759890619443685819027455948631596575156016517755308891320485297894711076290094829232360425576181971293433159023565595452329659010901252580811149191059542987487313801120300553127945896136936500240723707074908976954251777528370021240324882122706065509995628860488763652047955472231442134479691273493240255293014553893563817334578107899128693146503837983943291162491675477597076173073111485582652165492845949696601708827028989583480168123826178997085423746485636620553367500195908149896732174718954834362792365147758772481119379113017477700447602605027235325241314112038007104351667319678215245902258067792002097368400543482385129209269052767511788750270558541688388719934888696059736803970151007813307881639186149184148574978377087374195526488300182267483380236200977499961219557818581999180529927842278230527483331762908831943229161454924036270719715493444739730721187784886265022440367701029430645953103061727861728945338676534552016934730697315770260962442753626575589321463025075339205348197707184929083849942768729636014122376584104624636549643997844790596057235765319400047447947873941313857831488868834465304811945171490655221606917904957500803698520636827914470880394121489975162207537008604312991329440824784275117235229551707608383276761232443919576600088811718688194046409710889802178328795951376472542020037702190540986525144733431725004829199286173558502698539326146453616732685765098212331628986204062993286900277323892301298775647179310403643134155331266179540136210801248876706361920691214095351782424409238036317810562959725352401383742035227777743112957578498653492416853662194750838943617353757337433626928438363771545970959990585632720201427999998588246377792895273195024355295999299648644350862262689245489007179259653455077359293331095325953717150360922426803081483825323740136929883241857851296222432493717228088429714297847155390358638052352976387751813564556293772978075283597087864943517340616810430867563007756833972845072557767665690648041959378393758478590633018123323489401328946391611114741794014496927907716178761650121973770620444036461439767203236427405313609572462528978111646748402652115882018483071744839467686017971031318519226366775782374819600140103933621014022933129976659990817525373115025079777692113738473010750655000494058011321430154574191531801169171967935179821950142620252611025226829653991260985192654171432314460513049872809162692367174812158780047105277127136962209234822771411802448708994768518557071337250671522442340133906415286483011055822213606620683732183438514933138530168271866579937887139370977359115367390257204490624130179830350735467049797217647772408519755980646893358443295128367822794829471756074341405422362661282410943907143814402642626246671057466449750828844826854078460723519645805388179849184419349797892621820992056589962064810029510849654891928145276973483871089038220793406014577485353636587371288092548256737920459477458421513482547493600699955681181063302774325437296676776956592129148318183526341738550438745527120529888859214050585457961067366540671284079112369404176266782149267447929138775860886246331540292084582157404748091236302000637884679037763873259245806578148151952917905346342984139208809189960181024133956923525391275410772537615096090525187666466991660445141830742829074022211516062442665538335791363782664713362476839026353669751915338078884216595985133633809405134714876113213606376688160426837818288000901041019302855564435937639442837667611840752596262367506431257647528794369418413327056905127068300596747700708892792969052266729011791658925610723437543143457007079719103493443154329247755810082764101332314079939377872295338330068905399793278588071598280599397390102307707891674026957971479930697848577478039982536134213092777729383645957993258740355352557460120959988018632983393647303019748786320886223661056416748355686927095555341641473195233103807429920567659116500788258069499175882171180544611759311827186017847433343869760445773986495508507370618831645106663033385103874435148972793224028883447309441406620906779034016108598099884952138759411111430338233381752002281690535669638765854562874799730993984079366475399715771972573593864578187520549949001522100140576351072153715032362359133237704694329886784881616887811722884544801061348567424152082687369699214007964443935430763245212370165834342629864875292993696878558327800008704448133718727123746316043607418418925863484050067736249839553629930920797382199253078227818621086511004793885764029964071201216630568725928533214359102243079358615410630403553809685742731464557081779372979969927966297278916585556102031276386244768079450045639430282483591098167282658774209663795606237457746187745778240718493829356095419003812182702735541906491682074025814780520102751045351360112910768681175137529992092976355367751933307996921473122991889133671837658559500505497123586015316431509382557248028473555834153323217909501566624898694397576422813302102886199911036562882942218974331179570819865539624041016067821458985698207208667834028905251308740755393583481839999743997043780845891254143452442230900675735980353503874559954569154994511552925310984936645062126573536908132252463457421834944933534287408670448260876905260195329862818594884048668405652801720324157534227112012153792321991687346098103327844078857762273663354086502304037457692382068471554907376847545272571596196101712184013918084473679680096770017503446116955340162342212208833290058103755263464550866428013728265539206869794984427343453919992700783535490672302939081217528686609410089294378050706361857690670307399194088794957788033766348951396076151127316274399227353384512739787152780544907456216961287651457658613644681837715642282687512908735874256238945984681536503613167319284149594364153832719837153306162579943104213856933459035708518820157388951561420747261353324459539269864549857437887155980406349102215197372140689767238338846710964421169978373071768296487734155127516750835096476405277803442472215555501736049126865094060231745377081099443186421660622059427009066204477555088480908564502257243411912728316697104609050270121921167646728915780514363435074250738443046788113448061666872166156828723646857522253629906166198062139571431481925990353791156645889449368128742524110861944732579660248662223594963152501750462554918128655764844977932605949710966857573559674691548561221228883589798740348293124726149563634567519490380712393700315633923400588068472444633726082325287547787923422433896109020742815387082576661939355852808852793510704445022943808039795347923077315022480082096494366481536652195562878565871335152961083358673888742351680150010050023347942998208358389028092233752376449430969285276276099525561813592281884805980706757627691497905579208439129364476515686458039790031150722840833701148998274049942922232579374651423765114387577280790147956951361252627771885400219486137671815291521466201826144664297512494696659397874218420143624000391906260527685779098919225196165899697705780346894590248277106445188508229212888830256565142969834416828627093538937618961336526947847100163947150403122555458200115579072745591418512381528265195283268132047605303068773304080755921815948033482385112650095404129168358802074981270463336172953380431493720968510413466573127695978455988673336856253081395827513509915443478324626034188615015116072794070950307010047832020043836224192206323730890407914077403702417292784151828914243821901589361122360861386314849846858528020479979555347154569773041427473274180733428440979306935743845217116207482524469054707634944688821023367292330028379050058135379460233669750439481631976007522192396078470030951874364759323614665814241315084604564872854765576647414763305876571914978306057584944629070146798729365166801771572092184283482161722812977771820856479553417278374994876012540345252679123750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454375058554984921433144486050253216196091167048553530360199999830067883443298733749672294590719133708077008606245515026777328263406503566156368735429411692075883520073294886941959384399581059127273875123552474112659922049213576976718315183710694757725172680998649730323483823862981824163563518516085432433125982791672567686086530678654948093858172784451874634669421313673447482790474621678920332342776801001439284428570963564300414902457262024874591376270223779092528296130894979970913772122449293135539424648525479818985507368159183434148802359606938414902105649944193576907214876111166843294226341440346141778733942778835028268187342687401417546037366261421887368139126527631858123072007015561314830780173962067365429503111006531791743299914595820589523757907733136651212969851627594216708539217136816837665389627913891985268375172470076755141890129424583157828021715784713684336724574798791982601018543560080982010444601699283008232818100361880986225630684328798265929124333081839688250113477266261596719029660258801090471675717771934396812054212845426101504431298832450518742645396125582279247175638039490836986814407234917137066700725762575538333366739301136276918518873576948889460997132353529861071448225346334681592148551095708680892276179692893736893289723953775488932696995819297178650244222582741489329739381376560672868836330306871775892195294592217862058330897540578577077354283819800872655129774402464089570315608864960681284757077144581139124952190954178289472333755338372146623255601306629176678129676167102265621762145970810647750367944420345445491597470525745541535472871453546524515288741967489481991871592708822093535773091406306562373368693304538584512788019539136972916607968696882194958535816427856567880571931365703191338189154184921530347769354071365422860042684733326385457882507372840967920417551075507906507853530188235936594922043176594445916697737373957040157470035369479091980629577912944338744665237799396516043899301332404024721449278752542828595436389438537188460361164979967642829505074912445436823426141957198425896538724143342182949236401782402053028470299850491557555002604174039805447903654028194449702677502472158610055235767608969900276049128297958438456681999440324833391501647965052055369504977796311403685503403449726947489663385065354947985509153806037402492211844808488995187950958892794244577376534431814131444125394201323331871141552608755370035107233201847235930257369544504330667480834085152034978873868870641766854932228449157035189352195443348627994554542962251558740283688500053903162481923318288087771087593281834749526825036022196523107488773148343956185605156118431164213715288768814043859122156471728973247032739839449730408155870603094179571739332603298746518116103573426925867982316740524855146562575827627387863689935204957078830430649901314699255752736196065945743293903388026782217779455284647884595275934706027273707384761974123129603284565925646308720141306958280766051282884522781539945288850774598035743725777317674081086343211903474678612941043209940795830951476483309547913529991106278973865057456999030378131006937021533577185507300116589074276911033445646329262379671043155839016346485446026081180633009939971620281598412491716364938334745647540679068121050721250668194675277595114730571728402448687147448395446451742019746627382890896628128537294069557740082100255566402398110842221323205554692737262766726862924987892136185879638267056550733263971493512667195623465683133239292189824474538836501079738725027347490589998114539763711345000845719134502218062329626452615547914339539516059227278012826652895430362288910030338837989250288662062995599010189632306854111199934897733223887816165636520788439908628189807306729493329727705589388918808582921305893668890138422791880169584789539979661002766905012941462318301059855313087830257876759740625369170605070996463205053430001569762776964270675237631920663059440113369634087385477383783210380473946296800684227757216733915834460433928048209999352226621227196522378373916842302657214380270195178762098930088881553821899710272066464956938339248864124686238765892132759799346956131793277772816253700610443433037162300895408797309324552125074474465384290520274512370250928571193422191503303184046100310446671832785241086695773342599300275592246140980502362576333834247406558344863236108793860916931289248394391870209763544363664241257308781449298961626873488472005052280198110517479261547391020833413667153766396100284340499806837700380110878109492055807327824692858672907457238041377280305338517625071014845919978322567837667883960396936243539635919506724444795105868249621330892197435357158145733487777997538455260876950009048659741531944781879398485642666894987861462893226923965917400897514979390892669241674382906046167427834752217235726821222297235473513130781217576132924520563742774372258503901572019254999267703953210487332051908063242047299180905726252181183736963070126229825105627181105086355211692459093225507811878296404086361441216718787058854434340605590696415650505940845613282610060121809054210393949976998740489569938313178130389867008412306867465045462689785745052255042590721166524330442872656080511990296285761921171181327083364165552404315601073491832057220282169647876786661591096322259517313254143552415638673919573739735837331644753481761084449368040481668820792916618297765138706360336172294038152275974361642902343258943609372608652139597443939179589423137409893434910475159066019301822900109754950425911427316049959250201926639400659449049458306980570921499579880548050021174251964883063705946966876893955875613751490657425507520748517193828808119546612836735835497524330783952648707412577135708341169511592997419603897495629598461057828581968972609544366489200452636187520643674698881678044838150534642202372371450256195703369159214095567820676237899333883984311305736569926513602136988020167350826150122040627928118532761530157668755201383749324914229438968299305826290625892111513234922634218443359762460364685767507189466640635875275187366705954193626930671962870958242072365078554124924440539493490694164467450241874692470144297267896906046698929851889721491017029334496854678112433538717541493867968536402404337958348152794535170025399603520220454541871674196632320256864552157317162914372551699889020767732842677946040587421286336739749418252987374374944233645541594810652232444491105289541587361149245462161188914334520437906596130515573211836267292651870845667404849986031960064920347873462764432142730662991078174716696551326752891119968587248459062644528833523828606574710831287768024658002505341075258883469755676580494747120448920151913129934792985168151165291073442456636480233846376209085883796134052952167092144570714247174278400979331304298264921541071587888868226413831004880034686999885452532004750860097669675418123663747946288628481599211677612487108602304048104703663344217923479052977928417346391972476449438066815282563592797063249757552848035043101830898464247471605772972445774385241986918750155333743885844279085123072875422129034054246504274976503225196736371413592088657760144552681896840012375148451457832568181883269523764448400500012305428182049287882768349405868186086419568130921272724405691222495210146320010957458536167082723673461013549449564487385905315459634648634508672851733628755670719980482575288723245472590699395479969146915844902233433738989228970975410955674668716204522025769786403672247806422150277544338418698825503305661669361851986833373921850654787187367905774694967992274080870616479856647724716669679590328703406722401134545936320103797852784321898426853494539147230203455835012313880434929331363618158506092838212535780527311447140325428343119011872883752119554568889700643741839067435656331988864012216114901028959703312347975587781675022175420203916179086923832434627377113782676257060169800824308658654805630435668437355756728948391869325553937516586020280717668113389811189281811235137058951889472413676584009889642307532186939071940856954295806124616488058055403794888634333738980535445270799879211223507105431007496724960894555351675603833973868138348636361265008033179399098702631700304933256897582595805954756862439763823603229111013580544028638446771967129163454485884922889597488244004635137156325355284807752268521937024879573327112205929788396953438722130533443505521501734658261988948907539623479132193699847236146556652406211128902889434915930257781348068638872922426702173656605343666481089514390772098916441203342936604562356935582234464993977526136407843555041661100846270058483979918538191894131532528913679407207164366275538592794134199486968468796627535248408661216207587030707979507650984108729614158913049453042816455622238921009272059360052005580325852677412835486086609557913234077342938295821762950472630575327776714404741462525138469560146286705594844563027894929930624336755475702038380643234226777486941881765119198165008000152879821519649887801503850248883173999538867952511029865801968262546699827364680762786331808767059530581119249021019548620588116920515028067608178774851180909309332850509148002131944116942402875737631716561208876836511581809727327450912754573462503921514090784498132681385791834612339584592207017432091254581325506105854818907867330252008590217679090267728234671398534400725459123887617243477392892803458053227810079468128102233265721032856301556721332478435581096118804751172754640192325350637431443792768129677094089478344402463021084843420578254235106445725576655600924605876624812882463911785392255331059167800075386314791382958436947173230610060901593164076720936412820308417022194783288309641967465817028574605452625213351166754066638765570460419824215245596272064972385973298164682974049317929830644654933194642159008983307895345852002804195467476083176034603775889015620479784941935267596819031957846036279734066183962141880033773610580999786274284709569514523605134660396236461674897315096547518103962440323305384870772957384871735761245608178115374743090405645157962353506488827850798276073906201015391113651267879535869528960017671255868561581503777524587215354458661367720803645634005666854221603284130089478367961944300540250919045140492628859726976998468983856821181144178169142493315778151976292764483171929983045251641399220187638890013374926782093111319385184225524524726637253708351658162819969116756938467113247587396636291767703695241319094967148282011074769040954233597754123362841168317764905490291479425784130729889581683275873207037263363352428550071089514981083368251521722185722213504774837227816939844925743925986075358678350427979236858903191234083067017666521505564911744557712544480111929137168666007121256094308711435208251739815553726896583483844712179887051718974598554871577899419247383983477550834525720721926230863711567140402795499351756295724768601305868932822084041196526232673418408358372347273062641587952535941367578281418996860076792140574649680649345906995677587467443871787831511162088514499615212320657412906406631437882837116161819151566561808307387453772930573459747087132003970878346538962598734965039022167805069501211912463326800584931436006752922364411656884100448467978481671030353517327465290520446538692008574375683113051329104069381492421998082593732258636390341508329169215323761133613375513154658316456303231363821889504365505177534477630904415023276881109179816372835325859094957289065336845119713319795002100412152721650857973028063849396212633395608266893813817244830332533821468842979705558230439846527572297134506536412578329348261131430740741473380233395924295887237509576173694695802773651544595314588165721123050098545495703168827910774705142858449787818236155330504932473925285571903010243855980234351630398305067442659479962793495012027271183779754767597277859591004541538728518204963752474041269277521222976866865552724116749646933177274087650817670645230557323993369728873655692196529783671676466644895286268496412636458605610719994830134252427525382029628967644950268140110618719442696511126650756735714180800015820225365792455986107362850560010183052136001173491491745836480468126293306135178707962943821565554394629709451966877350627337173057187318715348285578820367739253539488856853437805260523671967955271980671296793082399291670789890825692458822698797555598920098140586838094037998198134522777146077210195946156092289901506416184706978790328846667485607660377985134902459968275984979909920732233260265503674849549301623508161772490571836633508129393264766743190144996746499999903237822570419343336322255776577773095232131523715566368098214699373525800418062196101141599691753225018065594992601749823193510965484618813654660609901439182544462850898392516843381196494443636829280981060882334815327645534576579766230902551211971159264534759421357768531408432269441950160625313995411351775610148997930759890619443685819027455948631596575156016517755308891320485297894711076290094829232360425576181971293433159023565595452329659010901252580811149191059542987487313801120300553127945896136936500240723707074908976954251777528370021240324882122706065509995628860488763652047955472231442134479691273493240255293014553893563817334578107899128693146503837983943291162491675477597076173073111485582652165492845949696601708827028989583480168123826178997085423746485636620553367500195908149896732174718954834362792365147758772481119379113017477700447602605027235325241314112038007104351667319678215245902258067792002097368400543482385129209269052767511788750270558541688388719934888696059736803970151007813307881639186149184148574978377087374195526488300182267483380236200977499961219557818581999180529927842278230527483331762908831943229161454924036270719715493444739730721187784886265022440367701029430645953103061727861728945338676534552016934730697315770260962442753626575589321463025075339205348197707184929083849942768729636014122376584104624636549643997844790596057235765319400047447947873941313857831488868834465304811945171490655221606917904957500803698520636827914470880394121489975162207537008604312991329440824784275117235229551707608383276761232443919576600088811718688194046409710889802178328795951376472542020037702190540986525144733431725004829199286173558502698539326146453616732685765098212331628986204062993286900277323892301298775647179310403643134155331266179540136210801248876706361920691214095351782424409238036317810562959725352401383742035227777743112957578498653492416853662194750838943617353757337433626928438363771545970959990585632720201427999998588246377792895273195024355295999299648644350862262689245489007179259653455077359293331095325953717150360922426803081483825323740136929883241857851296222432493717228088429714297847155390358638052352976387751813564556293772978075283597087864943517340616810430867563007756833972845072557767665690648041959378393758478590633018123323489401328946391611114741794014496927907716178761650121973770620444036461439767203236427405313609572462528978111646748402652115882018483071744839467686017971031318519226366775782374819600140103933621014022933129976659990817525373115025079777692113738473010750655000494058011321430154574191531801169171967935179821950142620252611025226829653991260985192654171432314460513049872809162692367174812158780047105277127136962209234822771411802448708994768518557071337250671522442340133906415286483011055822213606620683732183438514933138530168271866579937887139370977359115367390257204490624130179830350735467049797217647772408519755980646893358443295128367822794829471756074341405422362661282410943907143814402642626246671057466449750828844826854078460723519645805388179849184419349797892621820992056589962064810029510849654891928145276973483871089038220793406014577485353636587371288092548256737920459477458421513482547493600699955681181063302774325437296676776956592129148318183526341738550438745527120529888859214050585457961067366540671284079112369404176266782149267447929138775860886246331540292084582157404748091236302000637884679037763873259245806578148151952917905346342984139208809189960181024133956923525391275410772537615096090525187666466991660445141830742829074022211516062442665538335791363782664713362476839026353669751915338078884216595985133633809405134714876113213606376688160426837818288000901041019302855564435937639442837667611840752596262367506431257647528794369418413327056905127068300596747700708892792969052266729011791658925610723437543143457007079719103493443154329247755810082764101332314079939377872295338330068905399793278588071598280599397390102307707891674026957971479930697848577478039982536134213092777729383645957993258740355352557460120959988018632983393647303019748786320886223661056416748355686927095555341641473195233103807429920567659116500788258069499175882171180544611759311827186017847433343869760445773986495508507370618831645106663033385103874435148972793224028883447309441406620906779034016108598099884952138759411111430338233381752002281690535669638765854562874799730993984079366475399715771972573593864578187520549949001522100140576351072153715032362359133237704694329886784881616887811722884544801061348567424152082687369699214007964443935430763245212370165834342629864875292993696878558327800008704448133718727123746316043607418418925863484050067736249839553629930920797382199253078227818621086511004793885764029964071201216630568725928533214359102243079358615410630403553809685742731464557081779372979969927966297278916585556102031276386244768079450045639430282483591098167282658774209663795606237457746187745778240718493829356095419003812182702735541906491682074025814780520102751045351360112910768681175137529992092976355367751933307996921473122991889133671837658559500505497123586015316431509382557248028473555834153323217909501566624898694397576422813302102886199911036562882942218974331179570819865539624041016067821458985698207208667834028905251308740755393583481839999743997043780845891254143452442230900675735980353503874559954569154994511552925310984936645062126573536908132252463457421834944933534287408670448260876905260195329862818594884048668405652801720324157534227112012153792321991687346098103327844078857762273663354086502304037457692382068471554907376847545272571596196101712184013918084473679680096770017503446116955340162342212208833290058103755263464550866428013728265539206869794984427343453919992700783535490672302939081217528686609410089294378050706361857690670307399194088794957788033766348951396076151127316274399227353384512739787152780544907456216961287651457658613644681837715642282687512908735874256238945984681536503613167319284149594364153832719837153306162579943104213856933459035708518820157388951561420747261353324459539269864549857437887155980406349102215197372140689767238338846710964421169978373071768296487734155127516750835096476405277803442472215555501736049126865094060231745377081099443186421660622059427009066204477555088480908564502257243411912728316697104609050270121921167646728915780514363435074250738443046788113448061666872166156828723646857522253629906166198062139571431481925990353791156645889449368128742524110861944732579660248662223594963152501750462554918128655764844977932605949710966857573559674691548561221228883589798740348293124726149563634567519490380712393700315633923400588068472444633726082325287547787923422433896109020742815387082576661939355852808852793510704445022943808039795347923077315022480082096494366481536652195562878565871335152961083358673888742351680150010050023347942998208358389028092233752376449430969285276276099525561813592281884805980706757627691497905579208439129364476515686458039790031150722840833701148998274049942922232579374651423765114387577280790147956951361252627771885400219486137671815291521466201826144664297512494696659397874218420143624000391906260527685779098919225196165899697705780346894590248277106445188508229212888830256565142969834416828627093538937618961336526947847100163947150403122555458200115579072745591418512381528265195283268132047605303068773304080755921815948033482385112650095404129168358802074981270463336172953380431493720968510413466573127695978455988673336856253081395827513509915443478324626034188615015116072794070950307010047832020043836224192206323730890407914077403702417292784151828914243821901589361122360861386314849846858528020479979555347154569773041427473274180733428440979306935743845217116207482524469054707634944688821023367292330028379050058135379460233669750439481631976007522192396078470030951874364759323614665814241315084604564872854765576647414763305876571914978306057584944629070146798729365166801771572092184283482161722812977771820856479553417278374994876012540345252679126930470940682608035701217191579587783554159965265353331562327936119581557154134182522614522013622384678380518733723531449595943453284951423200689939919183507343606444877210724981590454419144307959413406279836962674325103472280376446709417457318273363321003398955941596580775515401791312570512950237668688255648789725463992596881438883201205692273212476366608237311099541425830932357905141669307828017376005153666587940695888211800182498180998700371988742258889425347419876069607783081243924939157346285200278354009544410359594691236140777096566982951282593661658712896976631378360263994455711644885419608554021430139471743115409749394055443033338050531366659205538203507392770977745820892730624840513444213869668155961730176777782045420150793317247988877236754607751272580004776942080317818330508566506430887255081152733446325049611944555053955325845682216001473863304760677049009010403962744357918291007590526600245346044191522013080790280334613411157115791606851362945505570948701085686599968448335147565164485389576667645553612161365451042111468986266740201154121392312562442319563699451524088808906657460320789258153294089857364440291523802073583074571257861306533995753938190527329087803376150654068731053315723397754609237787844556869793358864276299035959437656117653796134037240155551191035560165762359280081118740155655176056497258789526101982682000910718213469495096053855328437448634707121363259669504706538987692076128882148116887883482817814377127353061156731210071869321106887109852371222608560339626892296427863236760963672254644747205018579573433467966221094288211593075138310881018787107391438125293949173791121217943339577379028469807950440527022117285446180377366240909299804934780128436077907326188120898553225568613770383139257884665922988385234860230783766930633099368089100899438654488226605864114450215157286659197950103248333668498844832093995567615424697772362825034302711034376695207425616063107953231361366349576662861968665782732336483506837658643518226270657360613027925402191613921401011295857603562559271307894443810290662065549714136213971439041378226199620686818021760722922292316058703758239452101061759417633826976922700149346919135529828502540258617825160016162478144609420860909839121036981133916110300739520000733224710762728684379842939141698140078240053891094562188039556917367851613888913715612506104878404543323285929901574029585175773448436949242657619229437405715750148157563588682855644400093022448151946266695981395910674716343013943181938770500172643858622981368103811407289421517136018456894641230735123567829147413118436451253828088290355153674722702129966220409106912285338388653001585922402475346880042689068866630851098987385393177295990686454573458578116439376468943486041242371184459808955120099553096243796305819101813453191015381718821611254931189864064305167002400037920210815093551765451554325252104184384449017444073468636589456288847738000254797018964654789499372850733536847289243732328295860088293637442871659025554942244867575999650639954753583553424038367530575036491509759137302257451227142418744606182528923012831868426436634038260506582330402967687627964589488484223537619593376744064253190285292863415001846121273331906934732330050223906331697801185086747126851607194043567523782024406357687948098970714252812344372620074646661952470231025353524257537890607758196986314150562011230441568063426625754794247622869551875441835173494625744619384529386475021286816422823380726515721578692950445779386170690665951555534782096393594622855197802600989924550418330607023860043798938530356016143675619557701998085247979925001662636707938183945893090579679354613925127820989608911756206713757347991066526959096134386671941407363270694412025762661396022002511969682553986364627984596715858280106608901740975738462736297779569626701897274573902072836931122127135993757446261376759778976976505644800821539077085647835791678094151656582724990999186781901825343492632806411070177991737064565738140725627926992174744275567834077393044227370007149099387426888395969913041799455969498700651843898503723604769897081990716925110889084214688393085475190889789748497070287730131284074569920543583980600419845964749477493804073424715168365461306580301549689634541114958011292140859302316547872192928152128035753988423980740024810912269627328189499366904741100411473061889665155162445301841851780671632748733869504706606122902887457442079667898225698397450074584541115172793923478719905008109518325611951569352750576463500697318550875786843574644903196111025325179297489051902605340446366465152840445642313420842997563383101480915216060813394552315437615153192240462592765008955817558759081671004308972266261629728579260350119399464783429159845294353403762115696126403404001140581403695191131355272888085849252162318342131237265597869332885683996803792975784857366420208646644724036289488455702722746550504533006072117693284294482207757678485545863060405337620014189832454910873832141170231004747045603161658446378897390969044917373823808042289462594074563402663007355599934877057241230835949638817110709514969644442287642955939696084753262696630519563056775468426355969991505531431003203897870416927455066244113392641305217112018860308504705867347877462214885313525399413769944976513139818371839124105745470237081880948648103182071076176776958038005828555764228825591470316279007518715341041255703253752440128665760000025943815156675386526411337658560222870963407209038348351360526768634340566301403751011187050033674866479778204085686564645729952262754638224398206535710922175971503133005834935641241745273255324279407343097508742373985796985941965514389875766450394129371146814663312809310992952455683624224306100304749571847829335807978857500488264861601277739596120333599107136866456420570012890335882027149413186304079076348630670098332927016692549536580678851973318896205296975618113350776416603237364333138460223286096812979868273725377021130618332623155235337919649890897468136042665057914279421196944272679600938435369287562794603919838238721433008673766661087509692859613145613879592014327714022173114896061004721890768853299802343075560694231299222141436169616965074632006351190968010253830007836511469914417597965795582189299952557959909684534313214103838972455593991578589854588563845301192723803041263551408348488175859948676505144630038399375333562828222587480229375814646956324304222630854090905595874817137526318609774595054695182853941440323878130572137985353143355576822417218645450072595518618942256474971066761878337397021470826648908509152984784951486934359014902286082824414669696525207425003897259787966141968942748798966772152641080965815545605014945082118408922695278288341007604779690774740651200083566673001179415309440453768980651111202666357024699154210281512151839309777310663429050780091115420529428037690061718309115931766299914490101208993030711041459726149115622820880693772658796303038515988730789125075594459131832878237471493186966122754305674799891089860419027317471012382189770438487726233428826722888970677073968893974577896325305865041705816045003274720017334177810274226966184022202003503347063813572805885383220196470677187980226155030612811001687643280472799505716515676885517629268287455792321629407106749596416924642815088356498811215144886838530697659201838219869470940802815981579025200330557606806974775739685673084326051924510917560424946074488362157991375112877810365037998653525875967815883429757899711990362259709195355015457899573506496744262471056243479554256368619370861075207584232903783249780485168638239325676212560668661129482241650366336867257881440007610083242565220423179497160179155265634252479256002782721392316230995489891701790406747254324294513826052289191959181058364015560728896434346715346410246455104771936316264661255876805948234133966487802014667429023787699808213170487707489038071400018988809489149603232639856072771215250880700998837727738812272770883344334283985723594457734760702910449238255492645817533660067358097537425619224101588537788827080649511839292344685586955974860752958568065924533323249468364697844949601652002133043650258910446708969471159736522054329468069121630417467249052238848138850141103819510559717930682037249255732504624262838931092945807656035472721330641029831716388669697722635521075120487771522919405163392839421973015728182519972511591282855824065989468797178285691937283296226755409214389300456923302770617146132278638665787383930245373860713327718838563698222311599790476785146056519277167464749273801835177745227680131153201204696314478409941223606804165853496305880210273210107759878224951591263533349563185475573753766525977194756441021413958692751086771369699061802162235267727443377976066171488689068874141453225579483509605387814747449282561285681929545926976354948703919104842979689429251231610624788800044108490677552854168858311728078948504373194317193363118579677159850424089475499453571572903560693455677838364217921368838741141888294388564310868554922461783568658501364289451898369795573269509666136629964201099420886302800477978566264082026226008978082381848623243325580327557347900957388213349398368248866472450172239503727698816897966108180585226716976451117865655220602041224137100091041409121482909601382513607975566317910382983213740960953789115592558268009053938422569546413027638175558186080984179203290274507231486297447256553895843587527358884849787186604462160249890976918846170311765798205519753405980127776729175958300266049908367543063891158633380519561308886845163289451801830552785897165501431356019005766056722406927602395936958443267003001977903532940761983900837823882450041803341540359602919014907065058062918066928757318044003689527659128768394318615064600496822844836852855965078407446295873283654048276310973542742549753098866130092022013532132144101429417845483344972053622186572193957350427714888817214789622126329038651153681820875498827773739049585916615119880225082021188842354234495988260898240306646482776386465583919475029050105858800310198433376738616035372627060678269838768667436614286404856037260747978737760428144649176408162139768964644973332899262167157056463066927009420216537286760171759851927686216373784041817630684534056928995107048649761703339600268231775515670069103486325359928484871796415502236940677280632568628618841706182202397881668005485688361710996110843026084705974532149384058798555726136960465573636396145996738515015839628992847516215868024912184055879777814304821220015671460580789273653705371919096403010821723462465857721030945048438615383297191945424867108987668402484946453384909061456041730552978846057741371308760694633221689031505391370466932179237411272615233080346922316738841970308402875413294283331500454476425367193405689344366764980895749908792619082681011001976148729766578055175778130888473793254498921500395683629891784139277589077685652959289017346360488232270550593413883485926023361720642067872952382248799331625629886377081551306463101392030134224206500516614792425151758424694723609086259578824871806354817682188118333899218069081382625427957638961543701613675760080658381683257019843858091184219664721226111746566591623265710747468328752663625551762894156550647438723774805953026897466417219202629772798899819253484997120655460233334300866660796671862155214232957691918403056095988847028918562460210466345919812835411056300984069677541150111909672605926316635094024438425083549021136375113451412687523427983276651485765831497457195150770849183679002682268102042608140061481574872745550398166889658553994020069432030605885199560292521884052922962375994267779455987780114565285312718539735310450704428125033908246773645895570410558189458359572717478605862265551244015731539521275203284222619279833870274606633108035805978201235979840503968758941024403789106237076325843283711926021157606049672078251517111906817011691872980350164276450303570012266047748952686173154056129839296708402752849761639686810091880876587766139121635719050099741096297218486254779935607082659702504282341722279531971548910565868474048669487581202772196637187596389458331115143925308628740147188119185344197049426229775060818303793373995442179172195943311452679335504222322389164520774996153277283356887361002229805956060807805500680874341398392446232639597045650154893060577141446827794127620563813754316115234650982346077543090333778141068998307968157778787301580187273138708924513127500935465730711978492906986379735268724776296711253562559395918590444325462560926501626370832885779637683809099947930797317449268679038992872627199584508221923464132980804881568925977317170797831759510868971775299749671481010795971841510834530449809207803875827689435722883794056099566304863501685090408642300882872811313195837201895669192499398163987478730270510908621271991370676422342782981187949954161558645960318755684838970333161226088304791177918336032258830289918277728914689241483429372057350226964161801857858970548899467156446238731262752529847967807579364541151013838604794721847843126289721046782313819277564369321889765988364793842492384862545162490364793191277042792850590333229230358860918358449337963976445997194669382294223189488237647142402015488005477975326650996792114089210770038275076281674102968688049765454661171072592240401880145013620073691393189508579836466341515845141964901770164643378451625087833445651593479628786146668033882393671898287598100729068677762870017594698896916092206322590313631648150513027275077956478400428515526783279230532423667417065018540165838378714797799485800872725078936669529870326822806535495564364585103086593054699316130026306450574071882903244187594735508667004257952843323778111996673956212499999722464131172054501767300553092388949842153277326888813132291104989400476851312312620346470764104828781531205172997848453393070174648353018814029887726647549856102052353473964827318344800181325170297753335268361253876824216105778363966590954282016139437343612958909829728596093418854983551297790538218741184035920419491626853080645519911280942526737003759288700348040049811178422624254185072257959458578819158076607519486597756412897415643402709664943007108116374628819287597379709146879920752712717175575650972930612774898843477566153467012904881200093238662217241577724475198396127746382480480565330348652704926509059518534498562206688919367845398151671181315414161092014025068810041163549659394367439603755601340447200845245473070047144740893831884706768436828253139230355905240458837328970791254960165435186219547941680136956464127029339124275024431238003948861109251760246585093193298902648035306586366109241785576791135912111028951683719875095356851445134499811373488307225982685526640554822905471196755321915270339462283347522051148976122964964166690891330789985312145233031938236546025754634297864101135675049145344928748160973307303540044971448895283646297569163173270498376771108812476724257471826461588426952536135070745514189584563622395977261134575671606433747707240277587824305590999102695123946488330719477113814681704858135388891616927072557230936468458257309922110876363129099545132316766976362502005019422826876479989300939686648753902289393019988352260517083617711347670090692979729649349520578630764177116982401488806290715052206220565143235702918972446436216468627082375306400314333377312883686717482569614093590203424077049261979282187376221828248328230441034312430701615875611002354095273523291849843670345583903295833553809158377216878374968051099500628076119710578732646858484716887659789225525847325795477068139283392905342123364748019127262018533145532944335379449027427473323459912911607479289256841671716951197645753841905818316651824019465528163440309966699754553671074338548665496625185731070106558237506142803326782859633226743110625902894393864341360950337049868269078095533046130174077567475442459436337442638190869419251062008158660484763492928467304027537444347942048575585813353185464294721904598541883843262318026158875474367032581220252002231398834077640847612082679699577214397820751468040548025871924449932555979223121155803829942699530242548556870175986964511361228968297951624704976771366563128732780188702423980648455769172383399191378897884368248927602191542813478926966887580413536158828725406098921106182450013838722910823038149248133907647761266836501138304330087479571526305187130273600450231668478726597583211629980386901129573771840477612723860168708281437790944077850367417726840496266893082177989220843186470184045770105638524084652965318942299712220802410565149643107946225344871175474045484380364651528368617668396316815146194497921064701633881698404784538227421964633251518136459609213743658410191795424326630176782265098950200703576318598710357163892570746402693650037467637760214680100666108602770612642493298619790345037026892509059104760647759980132467551659168955969657449027690137659154311157889392158401753396892120680434639213739808825730191425476961172376253966699429494923320374786862645848723482604647725805698917983687454629084777903814774925970549992728309571081191416990243864954487428450420284488913200247543561769367396647905947694018728090696852402061665324160686765154929695014344553234249383000918724813207021981503342090454658409661973902712849140666563346954861132963934937850441874309863795785161728673253558551308772310913915268962310014520524347738830865933838958898766879949957743013254517068156654897295182508618594564425881079329285671706290935966109047131400227843391385712484501221023844929697219266582322464790900581954635512427434473860037923969762831284780094626642662181670255275469229917094339732619074951352582816632365418734152265549537856541141209025465521729021637700450896758384223008300513642941350957466986244570862940984714470793436564141427917208940996364250554004339770846789716285243029099097280287816014058443427986030068175849942836913896164566930425784793911850059196213480451891942715112997530450783310139433202980834498332685999010762158577878454952639498854343318222867582055312194748126430312346923218404634343124966019533717070839998534448119629738990468568766440323643256032419723184952096568276820509573332515993325646065669886558921461051048067485128354380445695797295368502660149043067708150634226029976974161930665273949721896744312006708253611007804307025418742761755956478511979983900408129041095934195883841354985875125782642751693579811766777516511980840214008965041506436900512623070362959675771157591455384070248589467864676122945512151598888942619168963687916103463633796997562351277654947358168558897637106501455493570979633873901446363054734599277407791800333350001902952513404360540374456361148348826554518739597370062655558147515543309585661686486737527090647121395396148708396165078792621993854039108068982870347114359276525495335706701981075155664067992244349743453040247810036082137881345663232160152371017210736651657279557358796682076586313493767151288281465952314358517096506469053530489411145107830964329267490589877497809584049952919920011191056633943305473412853866085638561743840691850354669833828954721573462067226291562007873792488586937789269261753749162470076067863025387383751204874941356771210239762835188961877229392167961616351143193985349489409084769597356251972312540682847211626638360652808751609654418774913552423404288877309651207222068573935632729446553036526235529033661594177682175067993204769011278688406985993405045214036782516641359666090721125306595454272446934105638922331555611904680548455378692076866311371682503051508046696296254403727827677286553056881061508532700922467136831963220861175631903558663168864513964431293875773513338320916190766276747236489838534117463351500300940677510284117765555870339672517899885750727823374485506924894767722797089405250529813238385186606010168630509067327484449340299380923046117372821776911166071744112914328136717651941236975796437325090635788435932989287504962169938166120645843086444813758677361850677586853265088662502531744338409330885895058269969934713684152486664778660748347546847452720164257169418126306423660653911205759648018812772014529740369414811336676730485788080667500927960399134543888826558132425382674887018564354678968446973786475196809181799377775641412880332218826787978764769691173477401874857045199776264802173104545837509481661449139610260870074340926227788213162497492567772930721042381292194671768795746854475758101010520936309117203639643681734546975717571954526854457146794829275223159605869915598919973902265278829269584237677833026635025634068108532932574522443215229413494027847929018306040329074397811954855677441310681336306594255001805355037297775470557454725042243051423629901982877445435162999504361404792755384327479861636062030661037365378977867212550086772961461329900448365820582810004169230651553721110162084237964122483111870437686160083108409269642024709939265755189404838560150178455135004493275408923729614987809639094430943429565225463552112758463630448387518541268426543222728596583487608504367049003708712655901295888071794986578859278466595260206125192201473518704292731257643477034275607709298655501348393565700558343959503295899886668688103199974020164184419766691389976474640431186962258417844750758415469954308767962913145963088967367150230400817678884536950686534049081267263505530018373010964486676859661636344504552677606129388682868135664667535983400924253134865274632790304968339428194397142979136124170952029480534707934454742483120435723236866233532919071511954625000997479858850984020046310127123023363553011376107960595368725262483652047603404402026352890573874989344481389295331224512085257472852505753506360414165036626923380633382646101672473321771588983921562602151893595444906995280365318901976017088898344901566642278548569346788891739102141644433483943033990811267581317640782580320494770511232937694106639334140959077281179631775489511386433547028385031303609855965133769074752251348945721877768858188462595754034751791031189131599417288635906773390706605727245316462756315602541683088370155039959930054349000218665122709259127565351052974937093647483612189421143596750225887226647018163897244278350799615772596387313532295398051986695849248030195795482740321762150979246328315520236640484552757697912554806342479143541048479466062851878273313207261415696308434928052827427763426229554626446083938515533399782388121447433548143382590168615594305786249118199525540089705282184924235703348297919094332608005692427529973663150827309958163770774576948911077854717829247836610389957497849788121805294533901239178799632908955870471409442448650051933127229657703086776935718434799493624418079463457428409840889485731035135896625497737199388453858363241228350321538175863265668194725125540883805691577340008656016659531252498936997652647512799476714515032584206165846401202856301111238152005230552353031231327528208592778349596139394818090773448793206067469174428823349040299590189392332734982525461535315576897898513649061505877413864497675684608301281147481070947403412697447689646623171600569564620599858370970132332422170103787306915776489172043612219732865568266421766504300716907508618280092080662294661542205955176770258550222915471283717508513691488194601032028058488206274903752053628757278457945520227292960737997533062193871605723183542679743056041255812441026491381499038334972566456736019155325277464121747747856994454438988300969509122508826230832081292614334778734687285560175757798831641827415850614589663244858698989303636705531513211826749696881687031094386861334447716355394992384447212644097825244397167569049347698622506136857874899738065260564923751178192171216445896066734566283311361164598394301912769444452589880507362246833926437064282770190950389464041261043605171622559105687253606202291072758477975780484658378990887932148744621937792682754379376858094353273003733020720427887836886294343831875053625502857647543711654968789865282310027433679538705330965781399236522269421029815005984134434503343300543691984686538325138782482777541546139325075707502826276010921614508218681370768427562426901840346029828324590634249405217231673192364869913783537759093181159674049826038059142479392400827370024874360161104404978937263990876793427700913020632340218760136029540107716801414236752658475656388357043452330634690027689262216941206628239021774196626076878024649942706178865748802922512974021438283138944721113921261632983215732756567307789186119027754115573998845745386395279710571599134283378124037364036884575332734650110391715477310646325070704539048625473416800801108722404959717542969527281816989243031521141479936794258143169707956440133847581198919508488845234441348565041066196188745806239851304984944445742264805569644233528075110114330905397495574433070181777704469123874883603349178614314813869202645055928757843763575470805192430169401379566707910573616425982621767425129681309818186745298639793403958434302501506344591213758099890695064134378702235880174578620361091127946684495585490942159641400760111784448008203587005997839428373437460559315134781365521385591963486611655557279574700791607505745165717971096311602726269590314981201376673979428680391999621655601511022614329907272468931165402727891765778756071348323257086710159211651679017419406440353477905759675078665423957620471996728476326783333777582941927538878925028800716339779430377645989791441765877222559885833864847392101598791456205418500395768691747511096008338755833988270683010970978341259195700276876824041309846788649173807587273319304429085035992252660392656302643647321918787168502074900277368348225483165251449779957873604464944993311890874982859838034178960120655546716700962150501686913392975333731211132421670961906852342473563942829045349171190342687887975995762803186141316028212125593207945340838625644557084777364721097810597519959748194612226807610762772305957581761653637569379099818696579966474403505713411392595776316408476118587549409518527637069719709733639281594636679898073904877883067598824613242303990075063530461167808197436975156389399252438324218550489363909738408286865666801275760689093535279091503279582255262407872828222948781967258119773826287211978494654357330514876214540666146909875445541649576244565394498811042164932067280009999243348005672060630130149810438982179982583739512937976909343757678998075864741039849100626953882505052496111116831391747827102197123598745299851011249176822428401398333364554897609084804767531689745277898462192481931659466673386414243129543156405974809571012517668823871201520926731160466210602658858100359804008577549835666050887216862181066210212500802344420901789171446877844583828631451876016543104106402540983617305772967986039138962123990188240923742224941541084474418288178873610639574827134819377541456404517893144580969104325849606917316021034177488767135117866718612717394817014845094977220815421556477136332719302171464549758838646836896753550150224918292747849316347638561009859850363764304890313370369644719388708994357222377068557949072804501609242802204737765073085982244372066881664564534513942861326965792166088340842144873133920545560976136742460291928118265924654387997590703067372952634261020219817220433731529865179164372657058415905242989374126514964394878678210485082628590752054444061047430005363042223679302552476542494529748438800121038163488863981164770493186364225540322103198555674545164508601353733173266720453179068948682440183471250038943305553228589458171654797181893900428799785499270195638960746132557902048286820880170737145705255284227715744203085506272985634293164666335508394261075801124108145004942826067458146222836243223745238022914873377506281327869860332212011331795296672655390116304454016448494052157229768681199593723117022326033896807469543425999133904020744165739369525357459642799088188772538778552051754666119146575118084381968008073823451156249129344396647379800107365166682803283965467627507135513176427760483309694564064756955729010754760723320754004911166181566439984079433033519161400858858826798187003557712267239502802511150724433115785214559068628627448249798772402371669896209210581576754651578665524796754293948718183662600832754378689481245161375957295208592244856913960132644946689618247088899120435298705356364666424867588224352451038090298172323260557860047190390362742356841580009189416804319877105052829092846609020194693804706338405736942495860075700145802539651710438315219893362063735983440284404964749582590816758798544586403549930731324239363442560641925218805197691737321512395107838881610543326584082322030291379736871912687819571002540684131926358070316964522071927728528687075156050179558616206090953054162989837691085826981247107519209690667977960401412606392478131739249516901428679600659329828873522026199679496370953108081079713780565340008983244891031403412086670681551200909772491264905182791231265223973149464958430567647940877850727828186661783279079868602227151323160248197516669787095812596841945011982166108555747323824865225667165780592871403019351218711783144048095782004336111520695607871972635491367811447556152445348890112169072016277326922471029005257660827758413616792296874014006676960759827395840221206079571365174675604236958827387537089117845221117561606902065408763668549749172671072583118604234746745891295772949342517054083541442683617039843576589213879080874323035673447810141695112970352625441054081677506893917820105521072246809751454537446970852094955950535998425646666708410139481570549300244855420633725754039651684509625656366471874875579536058216181091717839856788771803018959714938077316864068026054428708285712481770046594904082275050027903015157635600793489329243643174313258875735767525764858377140355128744451468457611731055497172438963877120339081943961417225637802959383461061640512957755555148243603256949934667502595520472721271804635690771099863675818377311876285397680474938396759699525737899481346609533344902501668676284258544695915906528083538772376041427489920759665104710172076232896357804815278810716233135540379886231739089589416552566311236354639257998614364502471632092959363594025865494195772388290616494825086948750513889627607529340837156811872462767773786622756750882346796785524485266615053416511157032107799100826059326639328027336634206892684258946283040387866277318274252404407008115359392992531794976193064687086815106988125096370313192229470491671559798796706721666362387640773332471151449541264972430916114792346434951482284538689080156593764620573902004873257611325538845771855305468698628223605239494505632301885125372790061116652590185296522643848996779354451664829403907516832736866682173184496772434598815252261480823632982202005939226777782182201695880251660324623125305595980990041914906501745846907628939527166927361822879485913308341297537944471857518474854460375757507329483591306679087744317766871424028908135215469667085290172662988165118861810229620433872773546322620454912448094394154538234421548850827652143477824127719111049099024447750248586660632004061550304345347746757063750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509533750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509539440204954277694022763067334078326764578529907759947677637297998584182044313316057403074913637153141267790335322124948451916930726027478971273868051210568035076950930564697627705888941545844399532392858661384132929700948472020718531293928916061136073144437664156669062577202240188474539686536486940117340593229757568202938603172629997103393546778881864817873631169075936490839292539076517023976247660294537398767100208355891251469152233454812925576693931430327693851596675443386567476621079313622806408091849815375011623042736271048016948487226493761118335625557776636906224572524341092967031292054976675489386309111668366887592242865766560368172218149660989799613444434409700871538410329488777164462877363986010725020212405663263630865114733347795114425936170072237085980657816886704921492993476100971912376812939326731659308727070680588254467096405046832161365873134874748718121221203385741799858485252029801493913467085803295886974596817457434877549030034882392442941654063837941834693455293415499283698507710794046785859546055734875814618563540846871433414144298682923217628599621886243140946437596891265381481552330134878226019100382962086276938409635192303936137027937814860138860946418055815903891157282033217506528050887109985634771366438584830847473126907314758283515261230327804715064536812372554622221188568040003222808935985876218159497696877137823282428620268182285483420115884894393572086633879584144075121373537479871230689734639065021845070309649061390349639774356135792626037019566867578120639595240426876330252921858966657208643177813999013796861873638476967869608501785984286133786954943603125408825019865329072308275366717275987821876618951352082713246829269943124152155630535419226357495745991723792955861638474962787775741073971162636159676627093903601611478766720233562809911307006755091567091990676034080270907166997423109571891162006266572156092400325382450947883406972094195358839184771471663526258642722029719100770862459042056819029735265276145375638519278906280018003469728399768117040046726998612727226988197823817297705674372977704099115285889318132491254160511902972717252988496483520273495466387743632524926676413848169831179559175274000625782904354957480035447759114974854415926420511789496417893289037010397501992623732457733661174648240149288552517944758027763533624347368226818105412999921238665583717967642211965801072542512066032539855425660027285341017535467618842695664687158578069142131996804218558978632938798855879946466888283992019050929229895934850151285465570584581902723699224813195787545365920145295733768523075639879435735866818852845202802129928136585999799161511379357763361693777237794651263161755877882163809539328467579649010993899934453074172473229730823314281674938490449557654776315911014979240854482928036665050525992738646020780929348798445892872485174438191598503117720329275424829485491059784629866466474515277676801872676163464655836290087577201871709389931115061183061178409996268285645626996141601771052098904495787554833428135828448613255672149146315793753396308504606429916138898851374486086936363453098577762449745723011043307987444476379772354718163043105427978500426945324968968981339137184179474329122871823646909626139985025449363976956720444826085819023685648328203277030953119946454384226118102652271788917056569196381994082274056766567647626064890526138679573290089363874327792737442963888807443508543764270087773684801657406697429428468778270002376879699536858366825421603338739331154973993191991327785427635070642710295253740133641164563634781354928113243277649142848714655046148611553881029509554941520345720712802868805768405659119709011806121779669603685183907069219374700964773508051612483789806245038499362140040901769789192006753756956124024274999547634929736549728394454575492701611512293649848545559408305843692592820600181462794714110310644995624672495932683315897837250996528684702222928762632900789742149841400950266580948736451780406008218725267174329979331248961954425827221256828746053776697976421374849265808541022580174912924582454399688786815595493020083624122608762280138810743918833330695466420682211388227298011376533268477149906169755501230734404304805291007828195152102292863373450125456340340164824220161242773446896970675295160945923906420367799336785454497508172752389055021859573425056851981218494704663933353703475770543817471236577975201359718773271416075655201712650047828419860706515089964515709511322359766579540510657008331260934937416621238506528986331401750653551219402676983574105750691487168594430848475442828545870151801441848903325637425955962262338904693450392411924263594548967657542003406556354024706431005459273597991086603729483384000109894627286713272972728607699848679228298544266901213837028703843813494377418434068763584119949470045350683532969474417022928432894738861817994124057506301232215164713160269903879348439842653850272030198724639845287663597040630972084824970421271856361854304708365685146268307677988361113951917115569561009255662781090456218524018211732635195728913611400235247414645095935426048061140771040748877118382877507428628637496404429755893077826217352101024972188735884263565070018814231773081088919142309964694495427340301017148715097550427717969665056973139271697830787792369304757265811441124501003988726451472442332291834567775730187944846096977227970104316967574126538835583869955875097263797852274178803562145791279813927504773069488797243401809557335124039979908521347166942570411562436466727450228721017817246945734618597143959234269944452811077261561922397495801178579915677516579766324665706791080968265534577082503484391320987552650159178909861418850566794454792443145430638255957870209446561320732837331992844950782124379986821752301953831759161163851855835416009255882838251972576790055612831474090628091259485293021910926009788697195769889513654844308969108157178709825202140335584338823566063244484491800681886356374088636913880684009252824168961796949586599689129125602116446895209364542375313404873518472213969438975468223689394191169188123840597552941538589291977827988624538209174125053060992196376066421600928901785277382863233292211779335303298041009967456746672579991684107866519228234321359863062814042576969923734323556922533479460427675846243503873835801903259946331775871078993050552551567168729626219806383300010839387911761334826683074617826604889934920813595857343676566909515654589275326012207826120346892139884036717725045370268953324347328622827001939520042187192161236940641255315791389320523153975586409988888787139078181641648828972829249054184601389640576733995970430982803646704743833225341605820317040773693992925203720563120882548760315953235878051669657665380045415498876632825172088911265967218045256288291483010805640413380932388991670961987195640339584399835910502922578843529429104831728112506658372776163076030670576119446533696015633876765117182608125333953048991404779034332844098889020982372711568893818100010994011247478766151127629406082087137870031042505294899337450426448162837119557799188819770032950550334235678977976033762938180516809735595214180306591778749504505117723043845875787402412199599070896358344883396471610370462345477598842815762880211735941689699931679853880551758113373154625321582120045885549992048655752413755896953806848750572327392637763212965203924171799193042849321504263579526930321194856917012588141981712966600252822775834656694889843938188020675976537605715537282141988358680408072734213722365184842409817802421646444793815509340656566391730029171973904969321756287408914396278542747665169797098474266395960768187801862133822630780428644160439150919750103247222008866925669279476171002921439794743038499408193487015199684458597543534777269483705268954344494080054094333782010164333958819938228832871093417132432065700527430556418729323053167659525312235355396072460263165635077002019559407876719429825224769927829396380186629982654817788489057904731214974959477737291160780002972525034093382990232060357052486198695169220788879987090226897261728330406273957827349900737837106906944857081726996981171859267907705197349282801093011482418458917492080964289905816398521368998026430801315729251364262897071196516246491598280201753486454372021810290496266461787944313989202857646990126611009369507649721128331871488781779198993234009616890728012788181587053212410687276188004117520515341165368821833541290248394569290434511071027227407921409276189962030903011822016606126903424499216419740481967726057273513747862250559796674503570733294380699252960626726169901927602896617919632163385401713448867254007400971752773863220118217804137716688552905066400303498818207751506728567711324030373432786924514456977283577749317737806404154310686816219986493660787764057202825616350041782090149453282285991615078631964697195615347242307414007702141748968408028536883622445959048356459828399848657081941830390936077117695433250730105740552952735387143039541857966083023665474379797359606619969499664235358856427116060648631379507560445290184028275332892659308825896666087956361309426466889688236912260825583539709839842978749972035904950197224087839617028117551150480597874465475203331788674353616450734274255274135872869181351085891447805742239912883459054282217047368796611695234920134139362343529264308673746805739680312943437807606051146049245651393885146524693920877844427360787641371191462144631578354846887573794155978638227263920829742430398844947559072561851464287540244724938222536085617057982456740631524853352893729182218774157158289555086470419863655741385069510460326310684826539459344827001695904844634415755953006011650930998881168571583816105868989319370352786488543453874382502089274810112012072632543644508784969610362234076121987054663021132715235236921856837780791504733109126199575102280629445201363150281262974821468832300476392572531582191765451474253174981487049138997663053591491821936759061372532358668002148009622829224860268196813316292351006174070303389873394218620553686375319302550093641805688744341762700346409276753791288069756496079838229439640209165057363169090319692556284832845733002146405933832150651877353121336721655504024099079507212578338369711140515674235315283850817617676428883998254734301217686032289700870742138469608331535983275061944395455817912642495717599656716751420397571796053375058554984921433144486050253216196091167048553530360199999830067883443298733749672294590719133708077008606245515026777328263406503566156368735429411692075883520073294886941959384399581059127273875123552474112659922049213576976718315183710694757725172680998649730323483823862981824163563518516085432433125982791672567686086530678654948093858172784451874634669421313673447482790474621678920332342776801001439284428570963564300414902457262024874591376270223779092528296130894979970913772122449293135539424648525479818985507368159183434148802359606938414902105649944193576907214876111166843294226341440346141778733942778835028268187342687401417546037366261421887368139126527631858123072007015561314830780173962067365429503111006531791743299914595820589523757907733136651212969851627594216708539217136816837665389627913891985268375172470076755141890129424583157828021715784713684336724574798791982601018543560080982010444601699283008232818100361880986225630684328798265929124333081839688250113477266261596719029660258801090471675717771934396812054212845426101504431298832450518742645396125582279247175638039490836986814407234917137066700725762575538333366739301136276918518873576948889460997132353529861071448225346334681592148551095708680892276179692893736893289723953775488932696995819297178650244222582741489329739381376560672868836330306871775892195294592217862058330897540578577077354283819800872655129774402464089570315608864960681284757077144581139124952190954178289472333755338372146623255601306629176678129676167102265621762145970810647750367944420345445491597470525745541535472871453546524515288741967489481991871592708822093535773091406306562373368693304538584512788019539136972916607968696882194958535816427856567880571931365703191338189154184921530347769354071365422860042684733326385457882507372840967920417551075507906507853530188235936594922043176594445916697737373957040157470035369479091980629577912944338744665237799396516043899301332404024721449278752542828595436389438537188460361164979967642829505074912445436823426141957198425896538724143342182949236401782402053028470299850491557555002604174039805447903654028194449702677502472158610055235767608969900276049128297958438456681999440324833391501647965052055369504977796311403685503403449726947489663385065354947985509153806037402492211844808488995187950958892794244577376534431814131444125394201323331871141552608755370035107233201847235930257369544504330667480834085152034978873868870641766854932228449157035189352195443348627994554542962251558740283688500053903162481923318288087771087593281834749526825036022196523107488773148343956185605156118431164213715288768814043859122156471728973247032739839449730408155870603094179571739332603298746518116103573426925867982316740524855146562575827627387863689935204957078830430649901314699255752736196065945743293903388026782217779455284647884595275934706027273707384761974123129603284565925646308720141306958280766051282884522781539945288850774598035743725777317674081086343211903474678612941043209940795830951476483309547913529991106278973865057456999030378131006937021533577185507300116589074276911033445646329262379671043155839016346485446026081180633009939971620281598412491716364938334745647540679068121050721250668194675277595114730571728402448687147448395446451742019746627382890896628128537294069557740082100255566402398110842221323205554692737262766726862924987892136185879638267056550733263971493512667195623465683133239292189824474538836501079738725027347490589998114539763711345000845719134502218062329626452615547914339539516059227278012826652895430362288910030338837989250288662062995599010189632306854111199934897733223887816165636520788439908628189807306729493329727705589388918808582921305893668890138422791880169584789539979661002766905012941462318301059855313087830257876759740625369170605070996463205053430001569762776964270675237631920663059440113369634087385477383783210380473946296800684227757216733915834460433928048209999352226621227196522378373916842302657214380270195178762098930088881553821899710272066464956938339248864124686238765892132759799346956131793277772816253700610443433037162300895408797309324552125074474465384290520274512370250928571193422191503303184046100310446671832785241086695773342599300275592246140980502362576333834247406558344863236108793860916931289248394391870209763544363664241257308781449298961626873488472005052280198110517479261547391020833413667153766396100284340499806837700380110878109492055807327824692858672907457238041377280305338517625071014845919978322567837667883960396936243539635919506724444795105868249621330892197435357158145733487777997538455260876950009048659741531944781879398485642666894987861462893226923965917400897514979390892669241674382906046167427834752217235726821222297235473513130781217576132924520563742774372258503901572019254999267703953210487332051908063242047299180905726252181183736963070126229825105627181105086355211692459093225507811878296404086361441216718787058854434340605590696415650505940845613282610060121809054210393949976998740489569938313178130389867008412306867465045462689785745052255042590721166524330442872656080511990296285761921171181327083364165552404315601073491832057220282169647876786661591096322259517313254143552415638673919573739735837331644753481761084449368040481668820792916618297765138706360336172294038152275974361642902343258943609372608652139597443939179589423137409893434910475159066019301822900109754950425911427316049959250201926639400659449049458306980570921499579880548050021174251964883063705946966876893955875613751490657425507520748517193828808119546612836735835497524330783952648707412577135708341169511592997419603897495629598461057828581968972609544366489200452636187520643674698881678044838150534642202372371450256195703369159214095567820676237899333883984311305736569926513602136988020167350826150122040627928118532761530157668755201383749324914229438968299305826290625892111513234922634218443359762460364685767507189466640635875275187366705954193626930671962870958242072365078554124924440539493490694164467450241874692470144297267896906046698929851889721491017029334496854678112433538717541493867968536402404337958348152794535170025399603520220454541871674196632320256864552157317162914372551699889020767732842677946040587421286336739749418252987374374944233645541594810652232444491105289541587361149245462161188914334520437906596130515573211836267292651870845667404849986031960064920347873462764432142730662991078174716696551326752891119968587248459062644528833523828606574710831287768024658002505341075258883469755676580494747120448920151913129934792985168151165291073442456636480233846376209085883796134052952167092144570714247174278400979331304298264921541071587888868226413831004880034686999885452532004750860097669675418123663747946288628481599211677612487108602304048104703663344217923479052977928417346391972476449438066815282563592797063249757552848035043101830898464247471605772972445774385241986918750155333743885844279085123072875422129034054246504274976503225196736371413592088657760144552681896840012375148451457832568181883269523764448400500012305428182049287882768349405868186086419568130921272724405691222495210146320010957458536167082723673461013549449564487385905315459634648634508672851733628755670719980482575288723245472590699395479969146915844902233433738989228970975410955674668716204522025769786403672247806422150277544338418698825503305661669361851986833373921850654787187367905774694967992274080870616479856647724716669679590328703406722401134545936320103797852784321898426853494539147230203455835012313880434929331363618158506092838212535780527311447140325428343119011872883752119554568889700643741839067435656331988864012216114901028959703312347975587781675022175420203916179086923832434627377113782676257060169800824308658654805630435668437355756728948391869325553937516586020280717668113389811189281811235137058951889472413676584009889642307532186939071940856954295806124616488058055403794888634333738980535445270799879211223507105431007496724960894555351675603833973868138348636361265008033179399098702631700304933256897582595805954756862439763823603229111013580544028638446771967129163454485884922889597488244004635137156325355284807752268521937024879573327112205929788396953438722130533443505521501734658261988948907539623479132193699847236146556652406211128902889434915930257781348068638872922426702173656605343666481089514390772098916441203342936604562356935582234464993977526136407843555041661100846270058483979918538191894131532528913679407207164366275538592794134199486968468796627535248408661216207587030707979507650984108729614158913049453042816455622238921009272059360052005580325852677412835486086609557913234077342938295821762950472630575327776714404741462525138469560146286705594844563027894929930624336755475702038380643234226777486941881765119198165008000152879821519649887801503850248883173999538867952511029865801968262546699827364680762786331808767059530581119249021019548620588116920515028067608178774851180909309332850509148002131944116942402875737631716561208876836511581809727327450912754573462503921514090784498132681385791834612339584592207017432091254581325506105854818907867330252008590217679090267728234671398534400725459123887617243477392892803458053227810079468128102233265721032856301556721332478435581096118804751172754640192325350637431443792768129677094089478344402463021084843420578254235106445725576655600924605876624812882463911785392255331059167800075386314791382958436947173230610060901593164076720936412820308417022194783288309641967465817028574605452625213351166754066638765570460419824215245596272064972385973298164682974049317929830644654933194642159008983307895345852002804195467476083176034603775889015620479784941935267596819031957846036279734066183962141880033773610580999786274284709569514523605134660396236461674897315096547518103962440323305384870772957384871735761245608178115374743090405645157962353506488827850798276073906201015391113651267879535869528960017671255868561581503777524587215354458661367720803645634005666854221603284130089478367961944300540250919045140492628859726976998468983856821181144178169142493315778151976292764483171929983045251641399220187638890013374926782093111319385184225524524726637253708351658162819969116756938467113247587396636291767703695241319094967148282011074769040954233597754123362841168317764905490291479425784130729889581683275873207037263363352428550071089514981083368251521722185722213504774837227816939844925743925986075358678350427979236858903191234083067017666521505564911744557712544480111929137168666007121256094308711435208251739815553726896583483844712179887051718974598554871577899419247383983477550834525720721926230863711567140402795499351756295724768601305868932822084041196526232673418408358372347273062641587952535941367578281418996860076792140574649680649345906995677587467443871787831511162088514499615212320657412906406631437882837116161819151566561808307387453772930573459747087132003970878346538962598734965039022167805069501211912463326800584931436006752922364411656884100448467978481671030353517327465290520446538692008574375683113051329104069381492421998082593732258636390341508329169215323761133613375513154658316456303231363821889504365505177534477630904415023276881109179816372835325859094957289065336845119713319795002100412152721650857973028063849396212633395608266893813817244830332533821468842979705558230439846527572297134506536412578329348261131430740741473380233395924295887237509576173694695802773651544595314588165721123050098545495703168827910774705142858449787818236155330504932473925285571903010243855980234351630398305067442659479962793495012027271183779754767597277859591004541538728518204963752474041269277521222976866865552724116749646933177274087650817670645230557323993369728873655692196529783671676466644895286268496412636458605610719994830134252427525382029628967644950268140110618719442696511126650756735714180800015820225365792455986107362850560010183052136001173491491745836480468126293306135178707962943821565554394629709451966877350627337173057187318715348285578820367739253539488856853437805260523671967955271980671296793082399291670789890825692458822698797555598920098140586838094037998198134522777146077210195946156092289901506416184706978790328846667485607660377985134902459968275984979909920732233260265503674849549301623508161772490571836633508129393264766743190144996746499999903237822570419343336322255776577773095232131523715566368098214699373525800418062196101141599691753225018065594992601749823193510965484618813654660609901439182544462850898392516843381196494443636829280981060882334815327645534576579766230902551211971159264534759421357768531408432269441950160625313995411351775610148997930759890619443685819027455948631596575156016517755308891320485297894711076290094829232360425576181971293433159023565595452329659010901252580811149191059542987487313801120300553127945896136936500240723707074908976954251777528370021240324882122706065509995628860488763652047955472231442134479691273493240255293014553893563817334578107899128693146503837983943291162491675477597076173073111485582652165492845949696601708827028989583480168123826178997085423746485636620553367500195908149896732174718954834362792365147758772481119379113017477700447602605027235325241314112038007104351667319678215245902258067792002097368400543482385129209269052767511788750270558541688388719934888696059736803970151007813307881639186149184148574978377087374195526488300182267483380236200977499961219557818581999180529927842278230527483331762908831943229161454924036270719715493444739730721187784886265022440367701029430645953103061727861728945338676534552016934730697315770260962442753626575589321463025075339205348197707184929083849942768729636014122376584104624636549643997844790596057235765319400047447947873941313857831488868834465304811945171490655221606917904957500803698520636827914470880394121489975162207537008604312991329440824784275117235229551707608383276761232443919576600088811718688194046409710889802178328795951376472542020037702190540986525144733431725004829199286173558502698539326146453616732685765098212331628986204062993286900277323892301298775647179310403643134155331266179540136210801248876706361920691214095351782424409238036317810562959725352401383742035227777743112957578498653492416853662194750838943617353757337433626928438363771545970959990585632720201427999998588246377792895273195024355295999299648644350862262689245489007179259653455077359293331095325953717150360922426803081483825323740136929883241857851296222432493717228088429714297847155390358638052352976387751813564556293772978075283597087864943517340616810430867563007756833972845072557767665690648041959378393758478590633018123323489401328946391611114741794014496927907716178761650121973770620444036461439767203236427405313609572462528978111646748402652115882018483071744839467686017971031318519226366775782374819600140103933621014022933129976659990817525373115025079777692113738473010750655000494058011321430154574191531801169171967935179821950142620252611025226829653991260985192654171432314460513049872809162692367174812158780047105277127136962209234822771411802448708994768518557071337250671522442340133906415286483011055822213606620683732183438514933138530168271866579937887139370977359115367390257204490624130179830350735467049797217647772408519755980646893358443295128367822794829471756074341405422362661282410943907143814402642626246671057466449750828844826854078460723519645805388179849184419349797892621820992056589962064810029510849654891928145276973483871089038220793406014577485353636587371288092548256737920459477458421513482547493600699955681181063302774325437296676776956592129148318183526341738550438745527120529888859214050585457961067366540671284079112369404176266782149267447929138775860886246331540292084582157404748091236302000637884679037763873259245806578148151952917905346342984139208809189960181024133956923525391275410772537615096090525187666466991660445141830742829074022211516062442665538335791363782664713362476839026353669751915338078884216595985133633809405134714876113213606376688160426837818288000901041019302855564435937639442837667611840752596262367506431257647528794369418413327056905127068300596747700708892792969052266729011791658925610723437543143457007079719103493443154329247755810082764101332314079939377872295338330068905399793278588071598280599397390102307707891674026957971479930697848577478039982536134213092777729383645957993258740355352557460120959988018632983393647303019748786320886223661056416748355686927095555341641473195233103807429920567659116500788258069499175882171180544611759311827186017847433343869760445773986495508507370618831645106663033385103874435148972793224028883447309441406620906779034016108598099884952138759411111430338233381752002281690535669638765854562874799730993984079366475399715771972573593864578187520549949001522100140576351072153715032362359133237704694329886784881616887811722884544801061348567424152082687369699214007964443935430763245212370165834342629864875292993696878558327800008704448133718727123746316043607418418925863484050067736249839553629930920797382199253078227818621086511004793885764029964071201216630568725928533214359102243079358615410630403553809685742731464557081779372979969927966297278916585556102031276386244768079450045639430282483591098167282658774209663795606237457746187745778240718493829356095419003812182702735541906491682074025814780520102751045351360112910768681175137529992092976355367751933307996921473122991889133671837658559500505497123586015316431509382557248028473555834153323217909501566624898694397576422813302102886199911036562882942218974331179570819865539624041016067821458985698207208667834028905251308740755393583481839999743997043780845891254143452442230900675735980353503874559954569154994511552925310984936645062126573536908132252463457421834944933534287408670448260876905260195329862818594884048668405652801720324157534227112012153792321991687346098103327844078857762273663354086502304037457692382068471554907376847545272571596196101712184013918084473679680096770017503446116955340162342212208833290058103755263464550866428013728265539206869794984427343453919992700783535490672302939081217528686609410089294378050706361857690670307399194088794957788033766348951396076151127316274399227353384512739787152780544907456216961287651457658613644681837715642282687512908735874256238945984681536503613167319284149594364153832719837153306162579943104213856933459035708518820157388951561420747261353324459539269864549857437887155980406349102215197372140689767238338846710964421169978373071768296487734155127516750835096476405277803442472215555501736049126865094060231745377081099443186421660622059427009066204477555088480908564502257243411912728316697104609050270121921167646728915780514363435074250738443046788113448061666872166156828723646857522253629906166198062139571431481925990353791156645889449368128742524110861944732579660248662223594963152501750462554918128655764844977932605949710966857573559674691548561221228883589798740348293124726149563634567519490380712393700315633923400588068472444633726082325287547787923422433896109020742815387082576661939355852808852793510704445022943808039795347923077315022480082096494366481536652195562878565871335152961083358673888742351680150010050023347942998208358389028092233752376449430969285276276099525561813592281884805980706757627691497905579208439129364476515686458039790031150722840833701148998274049942922232579374651423765114387577280790147956951361252627771885400219486137671815291521466201826144664297512494696659397874218420143624000391906260527685779098919225196165899697705780346894590248277106445188508229212888830256565142969834416828627093538937618961336526947847100163947150403122555458200115579072745591418512381528265195283268132047605303068773304080755921815948033482385112650095404129168358802074981270463336172953380431493720968510413466573127695978455988673336856253081395827513509915443478324626034188615015116072794070950307010047832020043836224192206323730890407914077403702417292784151828914243821901589361122360861386314849846858528020479979555347154569773041427473274180733428440979306935743845217116207482524469054707634944688821023367292330028379050058135379460233669750439481631976007522192396078470030951874364759323614665814241315084604564872854765576647414763305876571914978306057584944629070146798729365166801771572092184283482161722812977771820856479553417278374994876012540345252679126930470940682608035701217191579587783554159965265353331562327936119581557154134182522614522013622384678380518733723531449595943453284951423200689939919183507343606444877210724981590454419144307959413406279836962674325103472280376446709417457318273363321003398955941596580775515401791312570512950237668688255648789725463992596881438883201205692273212476366608237311099541425830932357905141669307828017376005153666587940695888211800182498180998700371988742258889425347419876069607783081243924939157346285200278354009544410359594691236140777096566982951282593661658712896976631378360263994455711644885419608554021430139471743115409749394055443033338050531366659205538203507392770977745820892730624840513444213869668155961730176777782045420150793317247988877236754607751272580004776942080317818330508566506430887255081152733446325049611944555053955325845682216001473863304760677049009010403962744357918291007590526600245346044191522013080790280334613411157115791606851362945505570948701085686599968448335147565164485389576667645553612161365451042111468986266740201154121392312562442319563699451524088808906657460320789258153294089857364440291523802073583074571257861306533995753938190527329087803376150654068731053315723397754609237787844556869793358864276299035959437656117653796134037240155551191035560165762359280081118740155655176056497258789526101982682000910718213469495096053855328437448634707121363259669504706538987692076128882148116887883482817814377127353061156731210071869321106887109852371222608560339626892296427863236760963672254644747205018579573433467966221094288211593075138310881018787107391438125293949173791121217943339577379028469807950440527022117285446180377366240909299804934780128436077907326188120898553225568613770383139257884665922988385234860230783766930633099368089100899438654488226605864114450215157286659197950103248333668498844832093995567615424697772362825034302711034376695207425616063107953231361366349576662861968665782732336483506837658643518226270657360613027925402191613921401011295857603562559271307894443810290662065549714136213971439041378226199620686818021760722922292316058703758239452101061759417633826976922700149346919135529828502540258617825160016162478144609420860909839121036981133916110300739520000733224710762728684379842939141698140078240053891094562188039556917367851613888913715612506104878404543323285929901574029585175773448436949242657619229437405715750148157563588682855644400093022448151946266695981395910674716343013943181938770500172643858622981368103811407289421517136018456894641230735123567829147413118436451253828088290355153674722702129966220409106912285338388653001585922402475346880042689068866630851098987385393177295990686454573458578116439376468943486041242371184459808955120099553096243796305819101813453191015381718821611254931189864064305167002400037920210815093551765451554325252104184384449017444073468636589456288847738000254797018964654789499372850733536847289243732328295860088293637442871659025554942244867575999650639954753583553424038367530575036491509759137302257451227142418744606182528923012831868426436634038260506582330402967687627964589488484223537619593376744064253190285292863415001846121273331906934732330050223906331697801185086747126851607194043567523782024406357687948098970714252812344372620074646661952470231025353524257537890607758196986314150562011230441568063426625754794247622869551875441835173494625744619384529386475021286816422823380726515721578692950445779386170690665951555534782096393594622855197802600989924550418330607023860043798938530356016143675619557701998085247979925001662636707938183945893090579679354613925127820989608911756206713757347991066526959096134386671941407363270694412025762661396022002511969682553986364627984596715858280106608901740975738462736297779569626701897274573902072836931122127135993757446261376759778976976505644800821539077085647835791678094151656582724990999186781901825343492632806411070177991737064565738140725627926992174744275567834077393044227370007149099387426888395969913041799455969498700651843898503723604769897081990716925110889084214688393085475190889789748497070287730131284074569920543583980600419845964749477493804073424715168365461306580301549689634541114958011292140859302316547872192928152128035753988423980740024810912269627328189499366904741100411473061889665155162445301841851780671632748733869504706606122902887457442079667898225698397450074584541115172793923478719905008109518325611951569352750576463500697318550875786843574644903196111025325179297489051902605340446366465152840445642313420842997563383101480915216060813394552315437615153192240462592765008955817558759081671004308972266261629728579260350119399464783429159845294353403762115696126403404001140581403695191131355272888085849252162318342131237265597869332885683996803792975784857366420208646644724036289488455702722746550504533006072117693284294482207757678485545863060405337620014189832454910873832141170231004747045603161658446378897390969044917373823808042289462594074563402663007355599934877057241230835949638817110709514969644442287642955939696084753262696630519563056775468426355969991505531431003203897870416927455066244113392641305217112018860308504705867347877462214885313525399413769944976513139818371839124105745470237081880948648103182071076176776958038005828555764228825591470316279007518715341041255703253752440128665760000025943815156675386526411337658560222870963407209038348351360526768634340566301403751011187050033674866479778204085686564645729952262754638224398206535710922175971503133005834935641241745273255324279407343097508742373985796985941965514389875766450394129371146814663312809310992952455683624224306100304749571847829335807978857500488264861601277739596120333599107136866456420570012890335882027149413186304079076348630670098332927016692549536580678851973318896205296975618113350776416603237364333138460223286096812979868273725377021130618332623155235337919649890897468136042665057914279421196944272679600938435369287562794603919838238721433008673766661087509692859613145613879592014327714022173114896061004721890768853299802343075560694231299222141436169616965074632006351190968010253830007836511469914417597965795582189299952557959909684534313214103838972455593991578589854588563845301192723803041263551408348488175859948676505144630038399375333562828222587480229375814646956324304222630854090905595874817137526318609774595054695182853941440323878130572137985353143355576822417218645450072595518618942256474971066761878337397021470826648908509152984784951486934359014902286082824414669696525207425003897259787966141968942748798966772152641080965815545605014945082118408922695278288341007604779690774740651200083566673001179415309440453768980651111202666357024699154210281512151839309777310663429050780091115420529428037690061718309115931766299914490101208993030711041459726149115622820880693772658796303038515988730789125075594459131832878237471493186966122754305674799891089860419027317471012382189770438487726233428826722888970677073968893974577896325305865041705816045003274720017334177810274226966184022202003503347063813572805885383220196470677187980226155030612811001687643280472799505716515676885517629268287455792321629407106749596416924642815088356498811215144886838530697659201838219869470940802815981579025200330557606806974775739685673084326051924510917560424946074488362157991375112877810365037998653525875967815883429757899711990362259709195355015457899573506496744262471056243479554256368619370861075207584232903783249780485168638239325676212560668661129482241650366336867257881440007610083242565220423179497160179155265634252479256002782721392316230995489891701790406747254324294513826052289191959181058364015560728896434346715346410246455104771936316264661255876805948234133966487802014667429023787699808213170487707489038071400018988809489149603232639856072771215250880700998837727738812272770883344334283985723594457734760702910449238255492645817533660067358097537425619224101588537788827080649511839292344685586955974860752958568065924533323249468364697844949601652002133043650258910446708969471159736522054329468069121630417467249052238848138850141103819510559717930682037249255732504624262838931092945807656035472721330641029831716388669697722635521075120487771522919405163392839421973015728182519972511591282855824065989468797178285691937283296226755409214389300456923302770617146132278638665787383930245373860713327718838563698222311599790476785146056519277167464749273801835177745227680131153201204696314478409941223606804165853496305880210273210107759878224951591263533349563185475573753766525977194756441021413958692751086771369699061802162235267727443377976066171488689068874141453225579483509605387814747449282561285681929545926976354948703919104842979689429251231610624788800044108490677552854168858311728078948504373194317193363118579677159850424089475499453571572903560693455677838364217921368838741141888294388564310868554922461783568658501364289451898369795573269509666136629964201099420886302800477978566264082026226008978082381848623243325580327557347900957388213349398368248866472450172239503727698816897966108180585226716976451117865655220602041224137100091041409121482909601382513607975566317910382983213740960953789115592558268009053938422569546413027638175558186080984179203290274507231486297447256553895843587527358884849787186604462160249890976918846170311765798205519753405980127776729175958300266049908367543063891158633380519561308886845163289451801830552785897165501431356019005766056722406927602395936958443267003001977903532940761983900837823882450041803341540359602919014907065058062918066928757318044003689527659128768394318615064600496822844836852855965078407446295873283654048276310973542742549753098866130092022013532132144101429417845483344972053622186572193957350427714888817214789622126329038651153681820875498827773739049585916615119880225082021188842354234495988260898240306646482776386465583919475029050105858800310198433376738616035372627060678269838768667436614286404856037260747978737760428144649176408162139768964644973332899262167157056463066927009420216537286760171759851927686216373784041817630684534056928995107048649761703339600268231775515670069103486325359928484871796415502236940677280632568628618841706182202397881668005485688361710996110843026084705974532149384058798555726136960465573636396145996738515015839628992847516215868024912184055879777814304821220015671460580789273653705371919096403010821723462465857721030945048438615383297191945424867108987668402484946453384909061456041730552978846057741371308760694633221689031505391370466932179237411272615233080346922316738841970308402875413294283331500454476425367193405689344366764980895749908792619082681011001976148729766578055175778130888473793254498921500395683629891784139277589077685652959289017346360488232270550593413883485926023361720642067872952382248799331625629886377081551306463101392030134224206500516614792425151758424694723609086259578824871806354817682188118333899218069081382625427957638961543701613675760080658381683257019843858091184219664721226111746566591623265710747468328752663625551762894156550647438723774805953026897466417219202629772798899819253484997120655460233334300866660796671862155214232957691918403056095988847028918562460210466345919812835411056300984069677541150111909672605926316635094024438425083549021136375113451412687523427983276651485765831497457195150770849183679002682268102042608140061481574872745550398166889658553994020069432030605885199560292521884052922962375994267779455987780114565285312718539735310450704428125033908246773645895570410558189458359572717478605862265551244015731539521275203284222619279833870274606633108035805978201235979840503968758941024403789106237076325843283711926021157606049672078251517111906817011691872980350164276450303570012266047748952686173154056129839296708402752849761639686810091880876587766139121635719050099741096297218486254779935607082659702504282341722279531971548910565868474048669487581202772196637187596389458331115143925308628740147188119185344197049426229775060818303793373995442179172195943311452679335504222322389164520774996153277283356887361002229805956060807805500680874341398392446232639597045650154893060577141446827794127620563813754316115234650982346077543090333778141068998307968157778787301580187273138708924513127500935465730711978492906986379735268724776296711253562559395918590444325462560926501626370832885779637683809099947930797317449268679038992872627199584508221923464132980804881568925977317170797831759510868971775299749671481010795971841510834530449809207803875827689435722883794056099566304863501685090408642300882872811313195837201895669192499398163987478730270510908621271991370676422342782981187949954161558645960318755684838970333161226088304791177918336032258830289918277728914689241483429372057350226964161801857858970548899467156446238731262752529847967807579364541151013838604794721847843126289721046782313819277564369321889765988364793842492384862545162490364793191277042792850590333229230358860918358449337963976445997194669382294223189488237647142402015488005477975326650996792114089210770038275076281674102968688049765454661171072592240401880145013620073691393189508579836466341515845141964901770164643378451625087833445651593479628786146668033882393671898287598100729068677762870017594698896916092206322590313631648150513027275077956478400428515526783279230532423667417065018540165838378714797799485800872725078936669529870326822806535495564364585103086593054699316130026306450574071882903244187594735508667004257952843323778111996673956212499999722464131172054501767300553092388949842153277326888813132291104989400476851312312620346470764104828781531205172997848453393070174648353018814029887726647549856102052353473964827318344800181325170297753335268361253876824216105778363966590954282016139437343612958909829728596093418854983551297790538218741184035920419491626853080645519911280942526737003759288700348040049811178422624254185072257959458578819158076607519486597756412897415643402709664943007108116374628819287597379709146879920752712717175575650972930612774898843477566153467012904881200093238662217241577724475198396127746382480480565330348652704926509059518534498562206688919367845398151671181315414161092014025068810041163549659394367439603755601340447200845245473070047144740893831884706768436828253139230355905240458837328970791254960165435186219547941680136956464127029339124275024431238003948861109251760246585093193298902648035306586366109241785576791135912111028951683719875095356851445134499811373488307225982685526640554822905471196755321915270339462283347522051148976122964964166690891330789985312145233031938236546025754634297864101135675049145344928748160973307303540044971448895283646297569163173270498376771108812476724257471826461588426952536135070745514189584563622395977261134575671606433747707240277587824305590999102695123946488330719477113814681704858135388891616927072557230936468458257309922110876363129099545132316766976362502005019422826876479989300939686648753902289393019988352260517083617711347670090692979729649349520578630764177116982401488806290715052206220565143235702918972446436216468627082375306400314333377312883686717482569614093590203424077049261979282187376221828248328230441034312430701615875611002354095273523291849843670345583903295833553809158377216878374968051099500628076119710578732646858484716887659789225525847325795477068139283392905342123364748019127262018533145532944335379449027427473323459912911607479289256841671716951197645753841905818316651824019465528163440309966699754553671074338548665496625185731070106558237506142803326782859633226743110625902894393864341360950337049868269078095533046130174077567475442459436337442638190869419251062008158660484763492928467304027537444347942048575585813353185464294721904598541883843262318026158875474367032581220252002231398834077640847612082679699577214397820751468040548025871924449932555979223121155803829942699530242548556870175986964511361228968297951624704976771366563128732780188702423980648455769172383399191378897884368248927602191542813478926966887580413536158828725406098921106182450013838722910823038149248133907647761266836501138304330087479571526305187130273600450231668478726597583211629980386901129573771840477612723860168708281437790944077850367417726840496266893082177989220843186470184045770105638524084652965318942299712220802410565149643107946225344871175474045484380364651528368617668396316815146194497921064701633881698404784538227421964633251518136459609213743658410191795424326630176782265098950200703576318598710357163892570746402693650037467637760214680100666108602770612642493298619790345037026892509059104760647759980132467551659168955969657449027690137659154311157889392158401753396892120680434639213739808825730191425476961172376253966699429494923320374786862645848723482604647725805698917983687454629084777903814774925970549992728309571081191416990243864954487428450420284488913200247543561769367396647905947694018728090696852402061665324160686765154929695014344553234249383000918724813207021981503342090454658409661973902712849140666563346954861132963934937850441874309863795785161728673253558551308772310913915268962310014520524347738830865933838958898766879949957743013254517068156654897295182508618594564425881079329285671706290935966109047131400227843391385712484501221023844929697219266582322464790900581954635512427434473860037923969762831284780094626642662181670255275469229917094339732619074951352582816632365418734152265549537856541141209025465521729021637700450896758384223008300513642941350957466986244570862940984714470793436564141427917208940996364250554004339770846789716285243029099097280287816014058443427986030068175849942836913896164566930425784793911850059196213480451891942715112997530450783310139433202980834498332685999010762158577878454952639498854343318222867582055312194748126430312346923218404634343124966019533717070839998534448119629738990468568766440323643256032419723184952096568276820509573332515993325646065669886558921461051048067485128354380445695797295368502660149043067708150634226029976974161930665273949721896744312006708253611007804307025418742761755956478511979983900408129041095934195883841354985875125782642751693579811766777516511980840214008965041506436900512623070362959675771157591455384070248589467864676122945512151598888942619168963687916103463633796997562351277654947358168558897637106501455493570979633873901446363054734599277407791800333350001902952513404360540374456361148348826554518739597370062655558147515543309585661686486737527090647121395396148708396165078792621993854039108068982870347114359276525495335706701981075155664067992244349743453040247810036082137881345663232160152371017210736651657279557358796682076586313493767151288281465952314358517096506469053530489411145107830964329267490589877497809584049952919920011191056633943305473412853866085638561743840691850354669833828954721573462067226291562007873792488586937789269261753749162470076067863025387383751204874941356771210239762835188961877229392167961616351143193985349489409084769597356251972312540682847211626638360652808751609654418774913552423404288877309651207222068573935632729446553036526235529033661594177682175067993204769011278688406985993405045214036782516641359666090721125306595454272446934105638922331555611904680548455378692076866311371682503051508046696296254403727827677286553056881061508532700922467136831963220861175631903558663168864513964431293875773513338320916190766276747236489838534117463351500300940677510284117765555870339672517899885750727823374485506924894767722797089405250529813238385186606010168630509067327484449340299380923046117372821776911166071744112914328136717651941236975796437325090635788435932989287504962169938166120645843086444813758677361850677586853265088662502531744338409330885895058269969934713684152486664778660748347546847452720164257169418126306423660653911205759648018812772014529740369414811336676730485788080667500927960399134543888826558132425382674887018564354678968446973786475196809181799377775641412880332218826787978764769691173477401874857045199776264802173104545837509481661449139610260870074340926227788213162497492567772930721042381292194671768795746854475758101010520936309117203639643681734546975717571954526854457146794829275223159605869915598919973902265278829269584237677833026635025634068108532932574522443215229413494027847929018306040329074397811954855677441310681336306594255001805355037297775470557454725042243051423629901982877445435162999504361404792755384327479861636062030661037365378977867212550086772961461329900448365820582810004169230651553721110162084237964122483111870437686160083108409269642024709939265755189404838560150178455135004493275408923729614987809639094430943429565225463552112758463630448387518541268426543222728596583487608504367049003708712655901295888071794986578859278466595260206125192201473518704292731257643477034275607709298655501348393565700558343959503295899886668688103199974020164184419766691389976474640431186962258417844750758415469954308767962913145963088967367150230400817678884536950686534049081267263505530018373010964486676859661636344504552677606129388682868135664667535983400924253134865274632790304968339428194397142979136124170952029480534707934454742483120435723236866233532919071511954625000997479858850984020046310127123023363553011376107960595368725262483652047603404402026352890573874989344481389295331224512085257472852505753506360414165036626923380633382646101672473321771588983921562602151893595444906995280365318901976017088898344901566642278548569346788891739102141644433483943033990811267581317640782580320494770511232937694106639334140959077281179631775489511386433547028385031303609855965133769074752251348945721877768858188462595754034751791031189131599417288635906773390706605727245316462756315602541683088370155039959930054349000218665122709259127565351052974937093647483612189421143596750225887226647018163897244278350799615772596387313532295398051986695849248030195795482740321762150979246328315520236640484552757697912554806342479143541048479466062851878273313207261415696308434928052827427763426229554626446083938515533399782388121447433548143382590168615594305786249118199525540089705282184924235703348297919094332608005692427529973663150827309958163770774576948911077854717829247836610389957497849788121805294533901239178799632908955870471409442448650051933127229657703086776935718434799493624418079463457428409840889485731035135896625497737199388453858363241228350321538175863265668194725125540883805691577340008656016659531252498936997652647512799476714515032584206165846401202856301111238152005230552353031231327528208592778349596139394818090773448793206067469174428823349040299590189392332734982525461535315576897898513649061505877413864497675684608301281147481070947403412697447689646623171600569564620599858370970132332422170103787306915776489172043612219732865568266421766504300716907508618280092080662294661542205955176770258550222915471283717508513691488194601032028058488206274903752053628757278457945520227292960737997533062193871605723183542679743056041255812441026491381499038334972566456736019155325277464121747747856994454438988300969509122508826230832081292614334778734687285560175757798831641827415850614589663244858698989303636705531513211826749696881687031094386861334447716355394992384447212644097825244397167569049347698622506136857874899738065260564923751178192171216445896066734566283311361164598394301912769444452589880507362246833926437064282770190950389464041261043605171622559105687253606202291072758477975780484658378990887932148744621937792682754379376858094353273003733020720427887836886294343831875053625502857647543711654968789865282310027433679538705330965781399236522269421029815005984134434503343300543691984686538325138782482777541546139325075707502826276010921614508218681370768427562426901840346029828324590634249405217231673192364869913783537759093181159674049826038059142479392400827370024874360161104404978937263990876793427700913020632340218760136029540107716801414236752658475656388357043452330634690027689262216941206628239021774196626076878024649942706178865748802922512974021438283138944721113921261632983215732756567307789186119027754115573998845745386395279710571599134283378124037364036884575332734650110391715477310646325070704539048625473416800801108722404959717542969527281816989243031521141479936794258143169707956440133847581198919508488845234441348565041066196188745806239851304984944445742264805569644233528075110114330905397495574433070181777704469123874883603349178614314813869202645055928757843763575470805192430169401379566707910573616425982621767425129681309818186745298639793403958434302501506344591213758099890695064134378702235880174578620361091127946684495585490942159641400760111784448008203587005997839428373437460559315134781365521385591963486611655557279574700791607505745165717971096311602726269590314981201376673979428680391999621655601511022614329907272468931165402727891765778756071348323257086710159211651679017419406440353477905759675078665423957620471996728476326783333777582941927538878925028800716339779430377645989791441765877222559885833864847392101598791456205418500395768691747511096008338755833988270683010970978341259195700276876824041309846788649173807587273319304429085035992252660392656302643647321918787168502074900277368348225483165251449779957873604464944993311890874982859838034178960120655546716700962150501686913392975333731211132421670961906852342473563942829045349171190342687887975995762803186141316028212125593207945340838625644557084777364721097810597519959748194612226807610762772305957581761653637569379099818696579966474403505713411392595776316408476118587549409518527637069719709733639281594636679898073904877883067598824613242303990075063530461167808197436975156389399252438324218550489363909738408286865666801275760689093535279091503279582255262407872828222948781967258119773826287211978494654357330514876214540666146909875445541649576244565394498811042164932067280009999243348005672060630130149810438982179982583739512937976909343757678998075864741039849100626953882505052496111116831391747827102197123598745299851011249176822428401398333364554897609084804767531689745277898462192481931659466673386414243129543156405974809571012517668823871201520926731160466210602658858100359804008577549835666050887216862181066210212500802344420901789171446877844583828631451876016543104106402540983617305772967986039138962123990188240923742224941541084474418288178873610639574827134819377541456404517893144580969104325849606917316021034177488767135117866718612717394817014845094977220815421556477136332719302171464549758838646836896753550150224918292747849316347638561009859850363764304890313370369644719388708994357222377068557949072804501609242802204737765073085982244372066881664564534513942861326965792166088340842144873133920545560976136742460291928118265924654387997590703067372952634261020219817220433731529865179164372657058415905242989374126514964394878678210485082628590752054444061047430005363042223679302552476542494529748438800121038163488863981164770493186364225540322103198555674545164508601353733173266720453179068948682440183471250038943305553228589458171654797181893900428799785499270195638960746132557902048286820880170737145705255284227715744203085506272985634293164666335508394261075801124108145004942826067458146222836243223745238022914873377506281327869860332212011331795296672655390116304454016448494052157229768681199593723117022326033896807469543425999133904020744165739369525357459642799088188772538778552051754666119146575118084381968008073823451156249129344396647379800107365166682803283965467627507135513176427760483309694564064756955729010754760723320754004911166181566439984079433033519161400858858826798187003557712267239502802511150724433115785214559068628627448249798772402371669896209210581576754651578665524796754293948718183662600832754378689481245161375957295208592244856913960132644946689618247088899120435298705356364666424867588224352451038090298172323260557860047190390362742356841580009189416804319877105052829092846609020194693804706338405736942495860075700145802539651710438315219893362063735983440284404964749582590816758798544586403549930731324239363442560641925218805197691737321512395107838881610543326584082322030291379736871912687819571002540684131926358070316964522071927728528687075156050179558616206090953054162989837691085826981247107519209690667977960401412606392478131739249516901428679600659329828873522026199679496370953108081079713780565340008983244891031403412086670681551200909772491264905182791231265223973149464958430567647940877850727828186661783279079868602227151323160248197516669787095812596841945011982166108555747323824865225667165780592871403019351218711783144048095782004336111520695607871972635491367811447556152445348890112169072016277326922471029005257660827758413616792296874014006676960759827395840221206079571365174675604236958827387537089117845221117561606902065408763668549749172671072583118604234746745891295772949342517054083541442683617039843576589213879080874323035673447810141695112970352625441054081677506893917820105521072246809751454537446970852094955950535998425646666708410139481570549300244855420633725754039651684509625656366471874875579536058216181091717839856788771803018959714938077316864068026054428708285712481770046594904082275050027903015157635600793489329243643174313258875735767525764858377140355128744451468457611731055497172438963877120339081943961417225637802959383461061640512957755555148243603256949934667502595520472721271804635690771099863675818377311876285397680474938396759699525737899481346609533344902501668676284258544695915906528083538772376041427489920759665104710172076232896357804815278810716233135540379886231739089589416552566311236354639257998614364502471632092959363594025865494195772388290616494825086948750513889627607529340837156811872462767773786622756750882346796785524485266615053416511157032107799100826059326639328027336634206892684258946283040387866277318274252404407008115359392992531794976193064687086815106988125096370313192229470491671559798796706721666362387640773332471151449541264972430916114792346434951482284538689080156593764620573902004873257611325538845771855305468698628223605239494505632301885125372790061116652590185296522643848996779354451664829403907516832736866682173184496772434598815252261480823632982202005939226777782182201695880251660324623125305595980990041914906501745846907628939527166927361822879485913308341297537944471857518474854460375757507329483591306679087744317766871424028908135215469667085290172662988165118861810229620433872773546322620454912448094394154538234421548850827652143477824127719111049099024447750248586660632004061550304345347746757063537846691937519994413121298535600802346864331013775364941564716522770764855878027585034586078105881834201040907243722058819468665909729328499467882438382291473248400742449456945157612661653785415196713009882625631562573819866494084934460387803814385251289314339853070619119690605111882364404694804983466504158971822897060511552489572174437810553277291781384505177930974746915996727428888088983164361230245577539877874815289676274163459617330154810539944605166920247542815758503476574511974355040090737772429519278034662566846961741264989109236417700542716083545876790404546333932825010945889665345962730600648205072076585551588098707009541039657458336938727801254950706353454580403976286828173987560764297348313749828777497717057601064867893751542305979327757039171177506087364627464172274711986467037580988296303056599890389410199668997329497830883997814720147800674415917039244862620274326727169616637707977447528418039919819987052722481230687919974068762898898049470593670922190001399406059243163843837149873979889775006443343676835616315063218945439883648379519703427235004313540724705196804544350551829388922583979590732033145906399889432717321056575971988623202618419916802460209933032780181940471263765916941741337858663983495109994516711573834051351269078242084174771013719004943484873454857949865927924754097339860030121726677914801655902846642708982570529807708353821413838508496903132103510413738988746974191040080411061889331487940825616890156942321782796763271419026480426163249815526803995352874781684136662242436688321359416328955722039914065282628546032571923439761355930639322460940878056709152552136351630214855359889230923057677023359913873184370376280642857363782299996545673868620074371605651040117137974496899963260882738099463374059210988470669877022530888503352480405980425742968524252832148411827847203210404553473723856274291491512132094142868403810308002902901294124062971331578757111312919213066438974843766132325408371115265726413087237764587689865816676957793062934717151652758686169730037906052575415875501420900789219378014450027217029423861699536226503785104149269366089650732582379171334321872142026014685394251286019893175787858946525548503906059513323394890844631565146028916872834562323065876937548346729438891791906814207025197822348783288526407503062404860424097844211363577052769476993481385442956228170983680866452184072908712510653030501080141999086114517126006020232258309285671352343951237497302076683871532154565477738091190288259577956232908292192534758178034399499842059618289708572571878810751979335048514988832681791806423886730047352495689998807928742862472824888532920511752508871229449902386410927409712110986494256809392723423167147240723891588215401700609968772834601518559114421876533754175411965450498325058444780630085633214814806048721870563172133537575410123464874281821517014168037946220074610820784260505740695432782896084680618348386633058038917713798818682502125605615974704677290464956805144580320210882401391531176075870972021335608057254440461231425433991938006683311981142051078990016406621644387892944339093996901667690435049867317694567631363563372020151938912567830609905816148559529754363861979673367211523478046303717533503393657529121722189582567686583470713982152617198545402182606194575101910642084948703896752037595703209752576019766839077844898204627173894132074226075673636586426239169294594586056112804453731760584505688108805952920332471655282309255153470564788874015103303382540660787696181786640838404174018791412809631891262664271115560368848927483020651381234352939624936305224527115146427912348608775818334506661724789320792496762574129680191024062391935501684884319659400823967832337154962709621770541388101253475144625478679029219639004894260832447605506361808103474514072010783767251313273209616636883362248567814094205123077340404798499817571548452242165929499715302669539765242889716262246031875523689270330977661009914931350898971829044592227837087661975791044190583105431170341271130094425254803735397212970435087296958967918736761588392801498027751687642029424377349899405746999007508493537248702168786127190612031686995635216793372122037020392420602527215081049623090964986523379609175481695608067932974764078170143044850926938846644673441040252446401208194873613253656950371077448144433547966742699878954193712742447881910909353837756028024083512420481896794583987499541885792748793235696022454009501388869500405678065180252943168213641447618651687503442102681544118293752757160026655487153886606444248384178493255498873104987514072578737121865062011857114439765442067766174233892449221546439736542309434568398054631612052133633768158391475315837510582924639193462980533914673739602318622366137285295608767825190048014426716778648744490454189726518916086898199828645664865024609916963265750126526107194314005118917295547980464940859172155825963110823066020494005526884413962191725311779315276171044723631019482866969374757824678014709177076982230921166097571734036715779230876468374795760260533185642425192622010336924005541969668172684959314824929726064797422205383865196478062694083211798753701843006452958563473821117207644376711959852135223527997063689971858184151396807198311637965727998128713837569125558055911021932440867948558407874927884211668189411825860059750324701456655637036899694915672456134348895527013301295073989578310859369709406789237116006035921720716303159566629924010484323387868607292496643031699770033107087170702273162373128278809856408531957322842550876907880836095587462032680633525808040165001022735508773321725721119653639702065780701712461844037091317287807036694402930618189576407447242480543514952505069909722053925725955907566452399237723265758069922765916144237066469899168914949753962321058903879169012259799129458309304773126514578074070362293844546975523913318465048433904148028106859354016794482779611207138588511150579332710966534859555211652818332210927958626195365269536878980253321492159669445745217278315996846276487200087632324494615207726281327825790628177257235166118958470531549879498713946804625071774225854671736576739490156681557819427396937506705923127307816201391604944356254987652379111947962521500008876105383865992259399739363247755359200665319762925060913784104600064205973342960131179443641645160870872018757082307243151065333717208036915078655924891671870768593987327033808231930982552625514757566860685887353973861142560151804176416920677536154199532329943497218656683147593499771553408797727021850840549583655361575424798631957154892101382514235645532605280863649057947403227430620152228691152886418770813837875913248782825534133101285033938081613854763594528869467373820584373391038833878050506962433003328811013783152440477908741195703451596703772370908352632016981797960085376322636029735081958971198441981207521037986295288913749512329513853745081099590315206755801861747244153292264002200430719784412935125516191448189966130752437987033887668423836160454589437207921331529229861782637642355345946059159563022561865557027807618428381163216362979347948993224185559428970124075592826147948893802180245037671382763136831258018632198434788846655502067624909702904918433945799459251556556453497694173616912293554045044846297944700428553454326390844264032741996758202549159951090710944539581255757708739510507165118680377396889329328207043402141514617743143362028873681154696414427560168515377138327892255304662994455771407578655808753421575484348368255538578765876313192320501322038754312495380051893416693503614573611109069604945043951206181978080743969435698856757151130501718162319118441651723511082960245762653653664871948978820607045986368999816985621091137693294561867851305816184498594475966470524511787079622151979697639299482438157271151474271540092797248859719399370854515401893243546992220276487117014817184705546575248752334991368622973981752473980287826247228333682360235690996190018179673566242988052094122635012731550279767945790803891305703744341042888233717783421993025457591269475701556858791032345701733164145831762933726675556981367306848270296026940107506851716346446509445647853904115989008745484058933075296899871112045740170915380506014969220996426190228390537141937500808542917348828927771442218906892638267637228922200073836533401155629966004411438669581879172322617220233496941510474156474089368170410833618492766194855085524413886109064154797121217322542521810551666613070129749319655465753223323556469325232377149090610096974679518285922012337517333293647335056285996406869775836623622554868696615261193643496140833255333163816315967453008816761886236082892982707018338914742639293007997465112610975354832123015278879001187279213176484917486344994474196326755391084978395252474228473908016716119535901607884384142681717686167903394932787601472157343772832444998009021099410521490055962209023360337212625325121004394203781106515918418733963608891997612352041981020269655024008321461820515569107158762233169825472041929065309691694056823866179019616513879783456712041511816298638098507118614031036607719479758014445820482389788425203128813845960959511511442068123280131700663632973891478168584562278982781084770008533270296311610146499010948339857593909778646946463450941223286756402724672147409197639664167558298953464888780481308811774765602495845673375198368624038627860827638563672553668640608735612771344745980594258406922922999384189111881375010348720585832285559530503652564690154056350428969571647083506801023113140317008579398305217054955840475632133907502750361889509536216700466616221945210457869502369778089238465465866331576984086325755286598208130464602719219524214971957973337774462162293507707399326840672947243416204268735017693735851158035535339119415711566424441855504523210968757432914969250118457361489249059767601884154536210150049694276590948341657320695293890972700760865358897949371899897269007554098646433740594069190186359635033385062536615776493846390239689761721999665447158213128699482384684404540418094207036554202150737076275376371050418524813019149967001803266917314273210326325522740305961426789570597665777557764327690830179453675593518553830476136287975648531387226171904709970321749852796992145324905427227667721953837438491255465531621152503916128158746703607120119932168492557413621689482854538279718508925325529450953944020495427769402276306733407832676457852990775994767763729799858418204431331605740307491363715314126779033532212494845191693072602747897127386805121056803507695093056469762770588894154584439953239285866138413292970094847202071853129392891606113607314443766415666906257720224018847453968653648694011734059322975756820293860317262999710339354677888186481787363116907593649083929253907651702397624766029453739876710020835589125146915223345481292557669393143032769385159667544338656747662107931362280640809184981537501162304273627104801694848722649376111833562555777663690622457252434109296703129205497667548938630911166836688759224286576656036817221814966098979961344443440970087153841032948877716446287736398601072502021240566326363086511473334779511442593617007223708598065781688670492149299347610097191237681293932673165930872707068058825446709640504683216136587313487474871812122120338574179985848525202980149391346708580329588697459681745743487754903003488239244294165406383794183469345529341549928369850771079404678585954605573487581461856354084687143341414429868292321762859962188624314094643759689126538148155233013487822601910038296208627693840963519230393613702793781486013886094641805581590389115728203321750652805088710998563477136643858483084747312690731475828351526123032780471506453681237255462222118856804000322280893598587621815949769687713782328242862026818228548342011588489439357208663387958414407512137353747987123068973463906502184507030964906139034963977435613579262603701956686757812063959524042687633025292185896665720864317781399901379686187363847696786960850178598428613378695494360312540882501986532907230827536671727598782187661895135208271324682926994312415215563053541922635749574599172379295586163847496278777574107397116263615967662709390360161147876672023356280991130700675509156709199067603408027090716699742310957189116200626657215609240032538245094788340697209419535883918477147166352625864272202971910077086245904205681902973526527614537563851927890628001800346972839976811704004672699861272722698819782381729770567437297770409911528588931813249125416051190297271725298849648352027349546638774363252492667641384816983117955917527400062578290435495748003544775911497485441592642051178949641789328903701039750199262373245773366117464824014928855251794475802776353362434736822681810541299992123866558371796764221196580107254251206603253985542566002728534101753546761884269566468715857806914213199680421855897863293879885587994646688828399201905092922989593485015128546557058458190272369922481319578754536592014529573376852307563987943573586681885284520280212992813658599979916151137935776336169377723779465126316175587788216380953932846757964901099389993445307417247322973082331428167493849044955765477631591101497924085448292803666505052599273864602078092934879844589287248517443819159850311772032927542482948549105978462986646647451527767680187267616346465583629008757720187170938993111506118306117840999626828564562699614160177105209890449578755483342813582844861325567214914631579375339630850460642991613889885137448608693636345309857776244974572301104330798744447637977235471816304310542797850042694532496896898133913718417947432912287182364690962613998502544936397695672044482608581902368564832820327703095311994645438422611810265227178891705656919638199408227405676656764762606489052613867957329008936387432779273744296388880744350854376427008777368480165740669742942846877827000237687969953685836682542160333873933115497399319199132778542763507064271029525374013364116456363478135492811324327764914284871465504614861155388102950955494152034572071280286880576840565911970901180612177966960368518390706921937470096477350805161248378980624503849936214004090176978919200675375695612402427499954763492973654972839445457549270161151229364984854555940830584369259282060018146279471411031064499562467249593268331589783725099652868470222292876263290078974214984140095026658094873645178040600821872526717432997933124896195442582722125682874605377669797642137484926580854102258017491292458245439968878681559549302008362412260876228013881074391883333069546642068221138822729801137653326847714990616975550123073440430480529100782819515210229286337345012545634034016482422016124277344689697067529516094592390642036779933678545449750817275238905502185957342505685198121849470466393335370347577054381747123657797520135971877327141607565520171265004782841986070651508996451570951132235976657954051065700833126093493741662123850652898633140175065355121940267698357410575069148716859443084847544282854587015180144184890332563742595596226233890469345039241192426359454896765754200340655635402470643100545927359799108660372948338400010989462728671327297272860769984867922829854426690121383702870384381349437741843406876358411994947004535068353296947441702292843289473886181799412405750630123221516471316026990387934843984265385027203019872463984528766359704063097208482497042127185636185430470836568514626830767798836111395191711556956100925566278109045621852401821173263519572891361140023524741464509593542604806114077104074887711838287750742862863749640442975589307782621735210102497218873588426356507001881423177308108891914230996469449542734030101714871509755042771796966505697313927169783078779236930475726581144112450100398872645147244233229183456777573018794484609697722797010431696757412653883558386995587509726379785227417880356214579127981392750477306948879724340180955733512403997990852134716694257041156243646672745022872101781724694573461859714395923426994445281107726156192239749580117857991567751657976632466570679108096826553457708250348439132098755265015917890986141885056679445479244314543063825595787020944656132073283733199284495078212437998682175230195383175916116385185583541600925588283825197257679005561283147409062809125948529302191092600978869719576988951365484430896910815717870982520214033558433882356606324448449180068188635637408863691388068400925282416896179694958659968912912560211644689520936454237531340487351847221396943897546822368939419116918812384059755294153858929197782798862453820917412505306099219637606642160092890178527738286323329221177933530329804100996745674667257999168410786651922823432135986306281404257696992373432355692253347946042767584624350387383580190325994633177587107899305055255156716872962621980638330001083938791176133482668307461782660488993492081359585734367656690951565458927532601220782612034689213988403671772504537026895332434732862282700193952004218719216123694064125531579138932052315397558640998888878713907818164164882897282924905418460138964057673399597043098280364670474383322534160582031704077369399292520372056312088254876031595323587805166965766538004541549887663282517208891126596721804525628829148301080564041338093238899167096198719564033958439983591050292257884352942910483172811250665837277616307603067057611944653369601563387676511718260812533395304899140477903433284409888902098237271156889381810001099401124747876615112762940608208713787003104250529489933745042644816283711955779918881977003295055033423567897797603376293818051680973559521418030659177874950450511772304384587578740241219959907089635834488339647161037046234547759884281576288021173594168969993167985388055175811337315462532158212004588554999204865575241375589695380684875057232739263776321296520392417179919304284932150426357952693032119485691701258814198171296660025282277583465669488984393818802067597653760571553728214198835868040807273421372236518484240981780242164644479381550934065656639173002917197390496932175628740891439627854274766516979709847426639596076818780186213382263078042864416043915091975010324722200886692566927947617100292143979474303849940819348701519968445859754353477726948370526895434449408005409433378201016433395881993822883287109341713243206570052743055641872932305316765952531223535539607246026316563507700201955940787671942982522476992782939638018662998265481778848905790473121497495947773729116078000297252503409338299023206035705248619869516922078887998709022689726172833040627395782734990073783710690694485708172699698117185926790770519734928280109301148241845891749208096428990581639852136899802643080131572925136426289707119651624649159828020175348645437202181029049626646178794431398920285764699012661100936950764972112833187148878177919899323400961689072801278818158705321241068727618800411752051534116536882183354129024839456929043451107102722740792140927618996203090301182201660612690342449921641974048196772605727351374786225055979667450357073329438069925296062672616990192760289661791963216338540171344886725400740097175277386322011821780413771668855290506640030349881820775150672856771132403037343278692451445697728357774931773780640415431068681621998649366078776405720282561635004178209014945328228599161507863196469719561534724230741400770214174896840802853688362244595904835645982839984865708194183039093607711769543325073010574055295273538714303954185796608302366547437979735960661996949966423535885642711606064863137950756044529018402827533289265930882589666608795636130942646688968823691226082558353970983984297874997203590495019722408783961702811755115048059787446547520333178867435361645073427425527413587286918135108589144780574223991288345905428221704736879661169523492013413936234352926430867374680573968031294343780760605114604924565139388514652469392087784442736078764137119146214463157835484688757379415597863822726392082974243039884494755907256185146428754024472493822253608561705798245674063152485335289372918221877415715828955508647041986365574138506951046032631068482653945934482700169590484463441575595300601165093099888116857158381610586898931937035278648854345387438250208927481011201207263254364450878496961036223407612198705466302113271523523692185683778079150473310912619957510228062944520136315028126297482146883230047639257253158219176545147425317498148704913899766305359149182193675906137253235866800214800962282922486026819681331629235100617407030338987339421862055368637531930255009364180568874434176270034640927675379128806975649607983822943964020916505736316909031969255628483284573300214640593383215065187735312133672165550402409907950721257833836971114051567423531528385081761767642888399825473430121768603228970087074213846960833153598327506194439545581791264249571759965671675142039757179605326751378057081911611211971457935935581377307177516899300477981101105542923480380483113662400449520697197387592919749809854214258495078328672606048069972084298212810684142012614726519941309303046079636492785936057260296828573807554408011625636334677677280791888837154825867128124822097711721073770818075181916267606574043210378434820684781679555437710587476570358233601188336375484071434311811022132283653124019019637680929936721414320041820920179249454225461639369579859685999886758296919467019166069038086923558598006265048166673371662021998681941006980308982935927683508526735711457739125303996366426849745366326057728755720462947939560898476907684963767012938242839758693938972278707416244895013406892627972813065043441251389791447538518043433182906906453124718036643742539882720788454008449433439753825446766139493958153420309635297695300834130004957069939513613183270765832938920568813765589611104672418223700158314437051418511083325815959096442130667761199060161772240957895507648132566371599892477988071097568242203910697845790303965916156971225668945639112529625537629685461651003146723579353625579803925926856151658970404923273608210011070672329107669839899274215783153680073260316693937122280535753695498986663995761185503140943740661120504155929577467709125894281232463167144722146638286109560086469701329066530275765394525469715835233520821966829522017418585034169593223446265864918272882493589789732630866014272101689761072095758513228731687712037809006165886035665998285708425095885951706395555105614962329763079024071328198925321037092252294332643013338677340334193193272912485638231870941480195913844073032529170110232325179171646278425873831130008577152889395088290278445859304817316802653548874383082912220357557867138861480707491083449467120608091624522142252385657431767163188160587756030621583594156985735895408279780039114567968300350201024522230471402687117793610781958801558223758789866218323090154842260013888403583091564957856807881542985342082940715337830216608062293111512297590509244371166964301965769472564372519982882195564888552484976181778335442918356491767582003400570031612934654312858431329622104244821477983382868065103871208973041059037055803786413804094027900924170992704897842256914696501915487960541119929727465491048448179931088260580476688354008581110293099863920480156176072492259605929637781542451743503422060661322445141839442093040610250767711022000569166308907651060229548412842098348054385285915995178101175455580830391683436249684792014697993969518569359476492677189871570379956773111534254710521678063699997952071956564452775084837860941254630274857411350191380302410090520081159112641551985987323876376788136993126776096901553365837374695341408186065778047513487006584207074440237729015923717285439259175760369728575709165158089990007864425456409960973009492677147962070138470975912892799846274731943688083463842676525427223386464902223380823699459820642545569700894044314469453492653435968781002379431551517318217714646918553336607395110291754047339763352299718161081159445515350699694404382047268395528932784693811857668786730724705407165261979812630163783229195998731378149671691718353271383507607107126291301253737753456998454206358369216187013086994465112773719490446853626888547721299325644346762253904173832422509829111120828902628372701548221183794214288324492079413611856390964511841319448715614177008245788735087023809327304167579741359553060262859026867093162016633666335626604130854298326639094453828279113148993126133524079653125030257517418774597821929420956091386296852611539505539300173755032648720197831888044055208611210757898178544246938470198643911887617399087651195168384955924515666652953948344644784350376236447199543321433560127073030538661649114410045382680500847416890575978335560792774895816180170862957041334594914564290576989816579874562355021116660566238006241701413099194444476215591353646610422079366047289362993621016934347301240785854407428371770096332269998701220787650851606662114435258551971605099344558156223669788542810997999156276088610122731281654743355016616638279082278826670840142363260350519291266157453933586649690672281821747968408581932686396950058497562228552814000964959443478780990191970313457194918343802975086181391898354609537377165638900532626670301999920234761992665289881297295706516571876587072490412111772204995437619441339412480429440489856168164478107078236082446609722958416025890222246215387471245475514856110128122346240767003587931461838910425835980913574675263219665051722034126850701899615375610626082818054045840241887633545731459076799274566953436984945827331269576355150207758129547503186184220737718072463716810271106226907508691041147514037937405863048117586512576813469228907900283809292902852445068240482021057523867652045647645194103341727195422967730619474547585342952692494011468846348386728951018090414812545307973999356687453200246733152684041108801874482636823506013073667254624549836234051675043408473720623701138466988992208210112606611551134044668742047051240269853275442686815454236955855931096519048220046024578592299732040059929631691691882145249422931627098719484790169885980480050670006359306365155836204663651775971378370958862522512336633269853138387745635680113826364473410009463414476670105315603776490423552511769834978327709430579602305302858464687970816361401203106652856647824475260988503380065535803501316943792693322704847667139867275867265069746111309865474871383532846554988782001856841939239467520436574597768277953769181731442026167537134326196250375134574304464111041663476463529165192295282085297421971275811078520802874548048116600729381748310446449564632213669546779151013622769267614519607807887466638845101054340283116044310574539362886940865356759424958443452652497749626518805481400540434349810386891970734064706024195730537779751958053070637954379619016033306420274706011409357249014294292967421678056369750677506631698951405408868919274553352446078008009585425180968736613459996932076991978913826157734139454968958200397776870063374810894753690995451585095836938168313831664308587461279971406781553158251091178724857799943143588285532910918780268193376421511840388328193777026287539590911130817839194909950939422321088841696386928619353053097271758585024330366391171396792584342453844368402369660609935178254008780355681299343381363351866600340458831502764582487263433959807185999454986168727311317691598269457868303227727412159687739796571670086891708087407610077902950765514633626787974239996059217393004247277398429003872186855542523267363795150763021451091749273486525173907693618152117117652452277324784744340803002036840851055531628446736377675944014047382379880827455539057327601051758115436748685758948499006576873806924919330863294210335911996986587873493806813228166356001302334427631172642909766772023086118156248669608360419254556130455495349566009607465366795459010821420391184215484876508870998945628728617318147097514331364030313969666526919062299143039746467609418842099831229174017092092015820954444705329751628369242574007490026573930266333038656161186060792962515533907624006874495538696947446152311226356296382746697784695028795455317918230066469045553763133759192643978855462955964989255478547096371607670730017789411249859020736668425721842445085858503275764009335925378939630394488805424006783310016058966364437951043040026225522037843994906056873226697592174173240010805803407044239533025081083271675231079318513993370609572382012636890745460656809990007675969730687609352413882547202153822487673096919963868478332142753388786474988563724928544315553134353127638449977831782484337182085420960728909543762234286879944635455696105348489432084013308188337318717503993849940264133228801791116062447102956813716227458860129272388881692127198898588960357798277352593452423167133178432742390495984629503543728055509991985005203818251367589891324488508264449723990089424241118378181521008682775580034496426705506164246898173146552834378500529318561134313631237915377288564637876558441751063727251403138257968675577956351611584647547232018489248714030404251677221103824593787236276061613208034125704598043762791430126059952546966243277791794150759309975564650770654826332425489178656627761204191450593306644908447111392705502723402958535098386376708005789779392050558857539431912602539617975560523572784047635786779051084198106881833081749207119989156149759683085394268721187608922762469433206621271471042506105076121292583552456642644062996322712949098889758004955332106929625173941764386530498136648083207926368415329105667553148943596745746917197280653332665477741592958446874935585829926417926826560532221745763089192257544051905847594359728074494662430399826073082548484243857066633240620542274498285528818744286034074191893197845877111542298636624042409362461089830891342189226647380347875817111979682269921903571379858392643507835606501032596123574202039062642407896586781679542992262266744949908933608742035942075924452083283266060828441022080197308448061556886888214657243090308686861275789513529197275110407114720001693896862047011130174177857488251749348825746009369983751603838478527179224933074812936809873499737757218065871863901553162739583420532659386092790049718358548848245022025216717993953370227310144775777892359164155499487480561417293122605101016325564438829622094286102289338546424584276420398300772912237510937220841901067299092886440235765649216755977085503841714177051623542798234790936473182382413969425354270561701413158743115927436526558229352068009971167123834203527586593849105782755436843538504854051348721891714245708164205434425162131771494272335815599713238746565100403666903300951056332743375860712440292270092888450887875939114268841186316165149630983567525216682393737446060978047327538455000058275590353749654626836586427133601170344796478970038311279817211903858437213910754700528999153647546402260000726805250148585838456536334144941816324749749892732265429947000510666850371689753241278649738663813923588189373929486933192701260877673076308936681928797972087691840635541062526602034208979198861708604538772435547455764166544219182800849653543454131594443808345335374760511061219908858835694120721717036098238259934758743807548024059196175959743518606396313955921420984757279416303042775377322003832363494802690654197963750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509539440204954277694022763067334078326764578529907759947677637297998584182044313316057403074913637153141267790335322124948451916930726027478971273868051210568035076950930564697627705888941545844399532392858661384132929700948472020718531293928916061136073144437664156669062577202240188474539686536486940117340593229757568202938603172629997103393546778881864817873631169075936490839292539076517023976247660294537398767100208355891251469152233454812925576693931430327693851596675443386567476621079313622806408091849815375011623042736271048016948487226493761118335625557776636906224572524341092967031292054976675489386309111668366887592242865766560368172218149660989799613444434409700871538410329488777164462877363986010725020212405663263630865114733347795114425936170072237085980657816886704921492993476100971912376812939326731659308727070680588254467096405046832161365873134874748718121221203385741799858485252029801493913467085803295886974596817457434877549030034882392442941654063837941834693455293415499283698507710794046785859546055734875814618563540846871433414144298682923217628599621886243140946437596891265381481552330134878226019100382962086276938409635192303936137027937814860138860946418055815903891157282033217506528050887109985634771366438584830847473126907314758283515261230327804715064536812372554622221188568040003222808935985876218159497696877137823282428620268182285483420115884894393572086633879584144075121373537479871230689734639065021845070309649061390349639774356135792626037019566867578120639595240426876330252921858966657208643177813999013796861873638476967869608501785984286133786954943603125408825019865329072308275366717275987821876618951352082713246829269943124152155630535419226357495745991723792955861638474962787775741073971162636159676627093903601611478766720233562809911307006755091567091990676034080270907166997423109571891162006266572156092400325382450947883406972094195358839184771471663526258642722029719100770862459042056819029735265276145375638519278906280018003469728399768117040046726998612727226988197823817297705674372977704099115285889318132491254160511902972717252988496483520273495466387743632524926676413848169831179559175274000625782904354957480035447759114974854415926420511789496417893289037010397501992623732457733661174648240149288552517944758027763533624347368226818105412999921238665583717967642211965801072542512066032539855425660027285341017535467618842695664687158578069142131996804218558978632938798855879946466888283992019050929229895934850151285465570584581902723699224813195787545365920145295733768523075639879435735866818852845202802129928136585999799161511379357763361693777237794651263161755877882163809539328467579649010993899934453074172473229730823314281674938490449557654776315911014979240854482928036665050525992738646020780929348798445892872485174438191598503117720329275424829485491059784629866466474515277676801872676163464655836290087577201871709389931115061183061178409996268285645626996141601771052098904495787554833428135828448613255672149146315793753396308504606429916138898851374486086936363453098577762449745723011043307987444476379772354718163043105427978500426945324968968981339137184179474329122871823646909626139985025449363976956720444826085819023685648328203277030953119946454384226118102652271788917056569196381994082274056766567647626064890526138679573290089363874327792737442963888807443508543764270087773684801657406697429428468778270002376879699536858366825421603338739331154973993191991327785427635070642710295253740133641164563634781354928113243277649142848714655046148611553881029509554941520345720712802868805768405659119709011806121779669603685183907069219374700964773508051612483789806245038499362140040901769789192006753756956124024274999547634929736549728394454575492701611512293649848545559408305843692592820600181462794714110310644995624672495932683315897837250996528684702222928762632900789742149841400950266580948736451780406008218725267174329979331248961954425827221256828746053776697976421374849265808541022580174912924582454399688786815595493020083624122608762280138810743918833330695466420682211388227298011376533268477149906169755501230734404304805291007828195152102292863373450125456340340164824220161242773446896970675295160945923906420367799336785454497508172752389055021859573425056851981218494704663933353703475770543817471236577975201359718773271416075655201712650047828419860706515089964515709511322359766579540510657008331260934937416621238506528986331401750653551219402676983574105750691487168594430848475442828545870151801441848903325637425955962262338904693450392411924263594548967657542003406556354024706431005459273597991086603729483384000109894627286713272972728607699848679228298544266901213837028703843813494377418434068763584119949470045350683532969474417022928432894738861817994124057506301232215164713160269903879348439842653850272030198724639845287663597040630972084824970421271856361854304708365685146268307677988361113951917115569561009255662781090456218524018211732635195728913611400235247414645095935426048061140771040748877118382877507428628637496404429755893077826217352101024972188735884263565070018814231773081088919142309964694495427340301017148715097550427717969665056973139271697830787792369304757265811441124501003988726451472442332291834567775730187944846096977227970104316967574126538835583869955875097263797852274178803562145791279813927504773069488797243401809557335124039979908521347166942570411562436466727450228721017817246945734618597143959234269944452811077261561922397495801178579915677516579766324665706791080968265534577082503484391320987552650159178909861418850566794454792443145430638255957870209446561320732837331992844950782124379986821752301953831759161163851855835416009255882838251972576790055612831474090628091259485293021910926009788697195769889513654844308969108157178709825202140335584338823566063244484491800681886356374088636913880684009252824168961796949586599689129125602116446895209364542375313404873518472213969438975468223689394191169188123840597552941538589291977827988624538209174125053060992196376066421600928901785277382863233292211779335303298041009967456746672579991684107866519228234321359863062814042576969923734323556922533479460427675846243503873835801903259946331775871078993050552551567168729626219806383300010839387911761334826683074617826604889934920813595857343676566909515654589275326012207826120346892139884036717725045370268953324347328622827001939520042187192161236940641255315791389320523153975586409988888787139078181641648828972829249054184601389640576733995970430982803646704743833225341605820317040773693992925203720563120882548760315953235878051669657665380045415498876632825172088911265967218045256288291483010805640413380932388991670961987195640339584399835910502922578843529429104831728112506658372776163076030670576119446533696015633876765117182608125333953048991404779034332844098889020982372711568893818100010994011247478766151127629406082087137870031042505294899337450426448162837119557799188819770032950550334235678977976033762938180516809735595214180306591778749504505117723043845875787402412199599070896358344883396471610370462345477598842815762880211735941689699931679853880551758113373154625321582120045885549992048655752413755896953806848750572327392637763212965203924171799193042849321504263579526930321194856917012588141981712966600252822775834656694889843938188020675976537605715537282141988358680408072734213722365184842409817802421646444793815509340656566391730029171973904969321756287408914396278542747665169797098474266395960768187801862133822630780428644160439150919750103247222008866925669279476171002921439794743038499408193487015199684458597543534777269483705268954344494080054094333782010164333958819938228832871093417132432065700527430556418729323053167659525312235355396072460263165635077002019559407876719429825224769927829396380186629982654817788489057904731214974959477737291160780002972525034093382990232060357052486198695169220788879987090226897261728330406273957827349900737837106906944857081726996981171859267907705197349282801093011482418458917492080964289905816398521368998026430801315729251364262897071196516246491598280201753486454372021810290496266461787944313989202857646990126611009369507649721128331871488781779198993234009616890728012788181587053212410687276188004117520515341165368821833541290248394569290434511071027227407921409276189962030903011822016606126903424499216419740481967726057273513747862250559796674503570733294380699252960626726169901927602896617919632163385401713448867254007400971752773863220118217804137716688552905066400303498818207751506728567711324030373432786924514456977283577749317737806404154310686816219986493660787764057202825616350041782090149453282285991615078631964697195615347242307414007702141748968408028536883622445959048356459828399848657081941830390936077117695433250730105740552952735387143039541857966083023665474379797359606619969499664235358856427116060648631379507560445290184028275332892659308825896666087956361309426466889688236912260825583539709839842978749972035904950197224087839617028117551150480597874465475203331788674353616450734274255274135872869181351085891447805742239912883459054282217047368796611695234920134139362343529264308673746805739680312943437807606051146049245651393885146524693920877844427360787641371191462144631578354846887573794155978638227263920829742430398844947559072561851464287540244724938222536085617057982456740631524853352893729182218774157158289555086470419863655741385069510460326310684826539459344827001695904844634415755953006011650930998881168571583816105868989319370352786488543453874382502089274810112012072632543644508784969610362234076121987054663021132715235236921856837780791504733109126199575102280629445201363150281262974821468832300476392572531582191765451474253174981487049138997663053591491821936759061372532358668002148009622829224860268196813316292351006174070303389873394218620553686375319302550093641805688744341762700346409276753791288069756496079838229439640209165057363169090319692556284832845733002146405933832150651877353121336721655504024099079507212578338369711140515674235315283850817617676428883998254734301217686032289700870742138469608331535983275061944395455817912642495717599656716751420397571796053267513780570819116112119714579359355813773071775168993004779811011055429234803804831136624004495206971973875929197498098542142584950783286726060480699720842982128106841420126147265199413093030460796364927859360572602968285738075544080116256363346776772807918888371548258671281248220977117210737708180751819162676065740432103784348206847816795554377105874765703582336011883363754840714343118110221322836531240190196376809299367214143200418209201792494542254616393695798596859998867582969194670191660690380869235585980062650481666733716620219986819410069803089829359276835085267357114577391253039963664268497453663260577287557204629479395608984769076849637670129382428397586939389722787074162448950134068926279728130650434412513897914475385180434331829069064531247180366437425398827207884540084494334397538254467661394939581534203096352976953008341300049570699395136131832707658329389205688137655896111046724182237001583144370514185110833258159590964421306677611990601617722409578955076481325663715998924779880710975682422039106978457903039659161569712256689456391125296255376296854616510031467235793536255798039259268561516589704049232736082100110706723291076698398992742157831536800732603166939371222805357536954989866639957611855031409437406611205041559295774677091258942812324631671447221466382861095600864697013290665302757653945254697158352335208219668295220174185850341695932234462658649182728824935897897326308660142721016897610720957585132287316877120378090061658860356659982857084250958859517063955551056149623297630790240713281989253210370922522943326430133386773403341931932729124856382318709414801959138440730325291701102323251791716462784258738311300085771528893950882902784458593048173168026535488743830829122203575578671388614807074910834494671206080916245221422523856574317671631881605877560306215835941569857358954082797800391145679683003502010245222304714026871177936107819588015582237587898662183230901548422600138884035830915649578568078815429853420829407153378302166080622931115122975905092443711669643019657694725643725199828821955648885524849761817783354429183564917675820034005700316129346543128584313296221042448214779833828680651038712089730410590370558037864138040940279009241709927048978422569146965019154879605411199297274654910484481799310882605804766883540085811102930998639204801561760724922596059296377815424517435034220606613224451418394420930406102507677110220005691663089076510602295484128420983480543852859159951781011754555808303916834362496847920146979939695185693594764926771898715703799567731115342547105216780636999979520719565644527750848378609412546302748574113501913803024100905200811591126415519859873238763767881369931267760969015533658373746953414081860657780475134870065842070744402377290159237172854392591757603697285757091651580899900078644254564099609730094926771479620701384709759128927998462747319436880834638426765254272233864649022233808236994598206425455697008940443144694534926534359687810023794315515173182177146469185533366073951102917540473397633522997181610811594455153506996944043820472683955289327846938118576687867307247054071652619798126301637832291959987313781496716917183532713835076071071262913012537377534569984542063583692161870130869944651127737194904468536268885477212993256443467622539041738324225098291111208289026283727015482211837942142883244920794136118563909645118413194487156141770082457887350870238093273041675797413595530602628590268670931620166336663356266041308542983266390944538282791131489931261335240796531250302575174187745978219294209560913862968526115395055393001737550326487201978318880440552086112107578981785442469384701986439118876173990876511951683849559245156666529539483446447843503762364471995433214335601270730305386616491144100453826805008474168905759783355607927748958161801708629570413345949145642905769898165798745623550211166605662380062417014130991944444762155913536466104220793660472893629936210169343473012407858544074283717700963322699987012207876508516066621144352585519716050993445581562236697885428109979991562760886101227312816547433550166166382790822788266708401423632603505192912661574539335866496906722818217479684085819326863969500584975622285528140009649594434787809901919703134571949183438029750861813918983546095373771656389005326266703019999202347619926652898812972957065165718765870724904121117722049954376194413394124804294404898561681644781070782360824466097229584160258902222462153874712454755148561101281223462407670035879314618389104258359809135746752632196650517220341268507018996153756106260828180540458402418876335457314590767992745669534369849458273312695763551502077581295475031861842207377180724637168102711062269075086910411475140379374058630481175865125768134692289079002838092929028524450682404820210575238676520456476451941033417271954229677306194745475853429526924940114688463483867289510180904148125453079739993566874532002467331526840411088018744826368235060130736672546245498362340516750434084737206237011384669889922082101126066115511340446687420470512402698532754426868154542369558559310965190482200460245785922997320400599296316916918821452494229316270987194847901698859804800506700063593063651558362046636517759713783709588625225123366332698531383877456356801138263644734100094634144766701053156037764904235525117698349783277094305796023053028584646879708163614012031066528566478244752609885033800655358035013169437926933227048476671398672758672650697461113098654748713835328465549887820018568419392394675204365745977682779537691817314420261675371343261962503751345743044641110416634764635291651922952820852974219712758110785208028745480481166007293817483104464495646322136695467791510136227692676145196078078874666388451010543402831160443105745393628869408653567594249584434526524977496265188054814005404343498103868919707340647060241957305377797519580530706379543796190160333064202747060114093572490142942929674216780563697506775066316989514054088689192745533524460780080095854251809687366134599969320769919789138261577341394549689582003977768700633748108947536909954515850958369381683138316643085874612799714067815531582510911787248577999431435882855329109187802681933764215118403883281937770262875395909111308178391949099509394223210888416963869286193530530972717585850243303663911713967925843424538443684023696606099351782540087803556812993433813633518666003404588315027645824872634339598071859994549861687273113176915982694578683032277274121596877397965716700868917080874076100779029507655146336267879742399960592173930042472773984290038721868555425232673637951507630214510917492734865251739076936181521171176524522773247847443408030020368408510555316284467363776759440140473823798808274555390573276010517581154367486857589484990065768738069249193308632942103359119969865878734938068132281663560013023344276311726429097667720230861181562486696083604192545561304554953495660096074653667954590108214203911842154848765088709989456287286173181470975143313640303139696665269190622991430397464676094188420998312291740170920920158209544447053297516283692425740074900265739302663330386561611860607929625155339076240068744955386969474461523112263562963827466977846950287954553179182300664690455537631337591926439788554629559649892554785470963716076707300177894112498590207366684257218424450858585032757640093359253789396303944888054240067833100160589663644379510430400262255220378439949060568732266975921741732400108058034070442395330250810832716752310793185139933706095723820126368907454606568099900076759697306876093524138825472021538224876730969199638684783321427533887864749885637249285443155531343531276384499778317824843371820854209607289095437622342868799446354556961053484894320840133081883373187175039938499402641332288017911160624471029568137162274588601292723888816921271988985889603577982773525934524231671331784327423904959846295035437280555099919850052038182513675898913244885082644497239900894242411183781815210086827755800344964267055061642468981731465528343785005293185611343136312379153772885646378765584417510637272514031382579686755779563516115846475472320184892487140304042516772211038245937872362760616132080341257045980437627914301260599525469662432777917941507593099755646507706548263324254891786566277612041914505933066449084471113927055027234029585350983863767080057897793920505588575394319126025396179755605235727840476357867790510841981068818330817492071199891561497596830853942687211876089227624694332066212714710425061050761212925835524566426440629963227129490988897580049553321069296251739417643865304981366480832079263684153291056675531489435967457469171972806533326654777415929584468749355858299264179268265605322217457630891922575440519058475943597280744946624303998260730825484842438570666332406205422744982855288187442860340741918931978458771115422986366240424093624610898308913421892266473803478758171119796822699219035713798583926435078356065010325961235742020390626424078965867816795429922622667449499089336087420359420759244520832832660608284410220801973084480615568868882146572430903086868612757895135291972751104071147200016938968620470111301741778574882517493488257460093699837516038384785271792249330748129368098734997377572180658718639015531627395834205326593860927900497183585488482450220252167179939533702273101447757778923591641554994874805614172931226051010163255644388296220942861022893385464245842764203983007729122375109372208419010672990928864402357656492167559770855038417141770516235427982347909364731823824139694253542705617014131587431159274365265582293520680099711671238342035275865938491057827554368435385048540513487218917142457081642054344251621317714942723358155997132387465651004036669033009510563327433758607124402922700928884508878759391142688411863161651496309835675252166823937374460609780473275384550000582755903537496546268365864271336011703447964789700383112798172119038584372139107547005289991536475464022600007268052501485858384565363341449418163247497498927322654299470005106668503716897532412786497386638139235881893739294869331927012608776730763089366819287979720876918406355410625266020342089791988617086045387724355474557641665442191828008496535434541315944438083453353747605110612199088588356941207217170360982382599347587438075480240591961759597435186063963139559214209847572794163030427753773220038323634948026906541979644517335176574940557863776767805967801651384933250131188183067837161704899657873340766478871859345787155634152121971606069283293020219619513122575988874861796133112280225119394671720415635782337900928476266446712530379764543387249374235414828807979652116382288810733830585584674530758625784223690806414917752271864716111804536289476712683186250235898369550038057380504212203555329039000726154502887072157506590460891837988805860066825798149412579370005919425274653363510368756523649905191626297586920586964715290162464726188307126060205393147533613401119439766759923095716168955579371484087653748861051778595147428638744800806341908452750298983923500012615196215314896587844581698373199573766307267902692216812340794221422381143622478677088276032551304547931017228096111613325624968221782074606194704544979022220615800730403790622192032424165984398138497313017830003867338556441949159369562830733597043189084086107868164439540782394380506028448572396442360464830279172726214699097739584202914218716939066923877137700168497970209587215776266142477740865844208671329982193380134559345962246057868571349555757461965932646674504642266310079010477518192582566494110420465485363510709545967475368480995605360712904679556445308912797251509417525457078983355930635801564206914992085094371390657977262388376297945294464052017355904662069671808444546240311927191138237222479224366281866325104257977911722376108755090026290211822125635555949911634826694171141155498312943417737867699553046440479452321297228744328356584536550303828553630232430201102286789573781581677571635109635919054186305654194852463165158983877243749016598000577245599802841287785111334657705731663165384727430132545690094119700062351073651721666229596217016401747877057293937255248046514495625907388926239327076115269126366167893996631181728641840963825266006143418957318739762421783906037517557512389265418649467446040181089118124914242758848815900156219827639942455320429134216411707779431412980636057062708560011823478598801725458046373506187039116626845916007210207444996141176251973229045750986683166162960474084633797740924625449309471035856177525399532623824503567525266298485619914076775710035260909902334323811459849184955515312571090274145199957641181505771990124945867494985555777048959459224496491178369751912612318509630817948905459977919754760208799153744281390625243068088615663921620612373845304506562017403851747899562078524320116735861211941109751493348448318274490293725103641467961238641299267761856777824570785130215154142584697050019341416151412744579162433988372402087464708117194248194791752878891065700435331689412430839661292031512844765936916236636013503923239007756766580375505649459924084260680858086953322832769054872178222068464755250650114140063607591872035347700370421295308190585616447852477734978228539546494585208483256972766421136617799146899243558596166778996235959169411018251397263945102014955429338918414841650907190406739715283205824443036046304722893228979856835507274746068230045041150657317920079755704725964970179444762732804825139023643478343784163498307182104874105589128349911965263062646136446957968427095826014860004283309189205400784607681911268685367402780551051407630660149792151004237192612085085095560726398840905717054704815371606653351179387208036804176590002613335135697431751733589157776007676386380021663483836913428745958986537544345848329327175396854417378794639266757931663180014168983857063478891963891385318768046027390987828439915027650843939532176357390455698875202936654705738625365873710425415423924060259472696351942911522929920570139551424872915458000244733944112522148159774000357256989572847976039331995157973269786563357630179897192535173259957818056507436407718516715038019767325183059419977544034110292759766807153455720515146573321588129964306939158838967761329258667432576521810731548261046863504827171535244684169871040539661292609256900291745170472378763296404108581287075889449172922159260388753769918530397384732127543101669603578026349285188664653612671686068471671677735701209404995544465211670799398588686038666448513610241403050000641695743764422218577723717398755570681786758607073243391897735490985262688097401932551227889494135871281056520348580294965738318395153074149460743091484190545263813428540514549508432690106342988555722544086954004683122221220863609487598851314124830433340132421335551609436081709503316613745633908866312000725832292802994896379318384328120599780344000597241573130755786377130401592420879707754745802565762245774098060998508962348460803766753402265668481495780099621419439413510569667007841798566377085613896897511042162457873194614258405410004328652411462774960117226364774234245443220388572054989709239864622743942699794778162924553521445565672910229001555060260729932025312910624169554106647439485298720469854434609126572537888342542544819534211282935971518367150199106521694732659531767102555147412118640427778660852943209397555732043088024942498438446891935396103561777382925789811629514215373774883676105497514547458404745101824189623551301769183522638892000457333492390610397592739154172154084443678013292859440862717821923562585482372696232260421263584708972026305749011159966304032290866372420596467225142473266899301598264973937083781714738210552118487895026953627211769685095331082959688568888469334134980189079587166762220089753699794706949958920039256191480133647988246981337115971333350321670620004179327586327416230462891430060611179201687490416449063138788641571634792978549102462054704041294581888164618558967627952693965167406722429834514517467663919410855014223529701717845760074370390997949939383795120167418504084312871386780637627815013347844584407091374437787187716930953343229513053554158666075687757614892021716303416287139737854276533965103794967126057047516516643086954017344476963812858535959704088016103960303954382112731916864939894661899823199431286627529710536416062022381871642274216613217938677247916433664707726119034881535210349526888204950910246810213489835436720032182092052507452921340936941319021363822032723708489878224604164258508810820710314392015204911886847429957804850328977123320499904397389543511035459281962319956899956303943360229403961332597069762108904524750119044282762481697469811159843757137891447944652383639130798534901424389591186740656002809700291303212790303795304888890952558930078343885569810440640351336023147261695100222004111728071791775132164874454903822181241919090342408094023737306886858499014487401259583816750450321358301807953632615620394263966316505285777595312873569105414893163602743085270894118275740087198443161903057492452967588896175688683773310522725853413095526573736970967964796517031217569724683678684498555839891944252931114327001892264266163992273942674328423772700878998677721105405922883674248028240504409750631737688808432432870386480151202304240144043116206798034534652669613718163524237385451337961658147359348852540920727710828584651448787793660888603182142653176329100224292305093997047839503352633167847989073765028937237062194077193505006875673733379692087589490666241382135149835169740052742638591759108755693864433091519854940754718696199536898729550013925470493905674699107395522120479466062914299204586081662985726343511762729200621764338889407718895579372336136235306190563135400030405248290174317231160400524693600672016799039981826987000561450656463422547046053287662267144434948351830444995441816399410527700310870245622736160362764994020363467567056167668345644855597622435836960220569722568462860107043462183147542429587405397307586328709763942091943152053716478665121461981346330635332327409238537686058117070738684232389496264371874357712535666165430520766194370896322651084473910984124369152726576074288854638227438666296349926780694660537972092438890087793892884853387703922325649899960686773509823914009715546815308599270002941250173478015514985810123463490677338664183957376611702112670908734817521173717509788986411699328411355818063849417011985730682274429624497082257228120653651422579932078262499247246404487606397451332414096825331428607445547296493890572141765136587984489697679033144084546568040070851940198556172198240333782055650917220499509049684282041715803289515496884083473247037797640469621952419840896824256614172884532545142082729799071620300777052420834178216389548271291114436402930885589330301112977122961073181435865279285171222353481792451525997625769893789974172794307382766918469668369801347635210222838602676050550442550603412160723783975613429608487776122418050532776746694718470468395656055665288692173017240403869123702069192942978728438741565180606499011481430742503069505040490223648870704721171258664798306108010619363226477397813266985956460570145189533821090928485372431686590725172463316395654208576364795723037575591106614692238225880776868325817861637965009259580269472434839988436658791576751873454839820213602171383147899577395542369783857786467959931793924291806971260039910211944551067585865688049669999277361225735580377416333226237566188921363095345829147394403509716940244615324898040741888452876337839568453197950445997506278273909795957229868149132033033228927029726459877773703913096666262920174931368316626952400302215929684659986154567004021042987172543862196696534583421189864167181461169480843441830464145300893851516241303034631332771622575968798183459816000177856017098467533534554887385452149801278109409127257651206862153621773235544538816829459759530595577744302100776795633427292379595896117142734807283495215044203250587058848169249409500968016294847421022564704670579365051994155421281748603525343671458136902731928339872065143654048397304473697259791479848208334778253103440937889385356955909513891800659793890031994931230829492604608873666205487751995066083039029533312127492433264170853188053627584343876857454986595878913307386494882029300672407602261642056946096900356656724090967422314997245367640735561491806697957368635931146635923285082218154740927119962025517177477138632687749570781422305770108636379947727438594638595583296158901329183379487627656013189665057953727454412509657959198713041831153399910159057900810876490330368145626703903976614191137799958988090228311687242472516691792774501487538678044044658537249953563618686494394765674802696424858510532636725414248428876001225263750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509539440204954277694022763067334078326764578529907759947677637297998584182044313316057403074913637153141267790335322124948451916930726027478971273868051210568035076950930564697627705888941545844399532392858661384132929700948472020718531293928916061136073144437664156669062577202240188474539686536486940117340593229757568202938603172629997103393546778881864817873631169075936490839292539076517023976247660294537398767100208355891251469152233454812925576693931430327693851596675443386567476621079313622806408091849815375011623042736271048016948487226493761118335625557776636906224572524341092967031292054976675489386309111668366887592242865766560368172218149660989799613444434409700871538410329488777164462877363986010725020212405663263630865114733347795114425936170072237085980657816886704921492993476100971912376812939326731659308727070680588254467096405046832161365873134874748718121221203385741799858485252029801493913467085803295886974596817457434877549030034882392442941654063837941834693455293415499283698507710794046785859546055734875814618563540846871433414144298682923217628599621886243140946437596891265381481552330134878226019100382962086276938409635192303936137027937814860138860946418055815903891157282033217506528050887109985634771366438584830847473126907314758283515261230327804715064536812372554622221188568040003222808935985876218159497696877137823282428620268182285483420115884894393572086633879584144075121373537479871230689734639065021845070309649061390349639774356135792626037019566867578120639595240426876330252921858966657208643177813999013796861873638476967869608501785984286133786954943603125408825019865329072308275366717275987821876618951352082713246829269943124152155630535419226357495745991723792955861638474962787775741073971162636159676627093903601611478766720233562809911307006755091567091990676034080270907166997423109571891162006266572156092400325382450947883406972094195358839184771471663526258642722029719100770862459042056819029735265276145375638519278906280018003469728399768117040046726998612727226988197823817297705674372977704099115285889318132491254160511902972717252988496483520273495466387743632524926676413848169831179559175274000625782904354957480035447759114974854415926420511789496417893289037010397501992623732457733661174648240149288552517944758027763533624347368226818105412999921238665583717967642211965801072542512066032539855425660027285341017535467618842695664687158578069142131996804218558978632938798855879946466888283992019050929229895934850151285465570584581902723699224813195787545365920145295733768523075639879435735866818852845202802129928136585999799161511379357763361693777237794651263161755877882163809539328467579649010993899934453074172473229730823314281674938490449557654776315911014979240854482928036665050525992738646020780929348798445892872485174438191598503117720329275424829485491059784629866466474515277676801872676163464655836290087577201871709389931115061183061178409996268285645626996141601771052098904495787554833428135828448613255672149146315793753396308504606429916138898851374486086936363453098577762449745723011043307987444476379772354718163043105427978500426945324968968981339137184179474329122871823646909626139985025449363976956720444826085819023685648328203277030953119946454384226118102652271788917056569196381994082274056766567647626064890526138679573290089363874327792737442963888807443508543764270087773684801657406697429428468778270002376879699536858366825421603338739331154973993191991327785427635070642710295253740133641164563634781354928113243277649142848714655046148611553881029509554941520345720712802868805768405659119709011806121779669603685183907069219374700964773508051612483789806245038499362140040901769789192006753756956124024274999547634929736549728394454575492701611512293649848545559408305843692592820600181462794714110310644995624672495932683315897837250996528684702222928762632900789742149841400950266580948736451780406008218725267174329979331248961954425827221256828746053776697976421374849265808541022580174912924582454399688786815595493020083624122608762280138810743918833330695466420682211388227298011376533268477149906169755501230734404304805291007828195152102292863373450125456340340164824220161242773446896970675295160945923906420367799336785454497508172752389055021859573425056851981218494704663933353703475770543817471236577975201359718773271416075655201712650047828419860706515089964515709511322359766579540510657008331260934937416621238506528986331401750653551219402676983574105750691487168594430848475442828545870151801441848903325637425955962262338904693450392411924263594548967657542003406556354024706431005459273597991086603729483384000109894627286713272972728607699848679228298544266901213837028703843813494377418434068763584119949470045350683532969474417022928432894738861817994124057506301232215164713160269903879348439842653850272030198724639845287663597040630972084824970421271856361854304708365685146268307677988361113951917115569561009255662781090456218524018211732635195728913611400235247414645095935426048061140771040748877118382877507428628637496404429755893077826217352101024972188735884263565070018814231773081088919142309964694495427340301017148715097550427717969665056973139271697830787792369304757265811441124501003988726451472442332291834567775730187944846096977227970104316967574126538835583869955875097263797852274178803562145791279813927504773069488797243401809557335124039979908521347166942570411562436466727450228721017817246945734618597143959234269944452811077261561922397495801178579915677516579766324665706791080968265534577082503484391320987552650159178909861418850566794454792443145430638255957870209446561320732837331992844950782124379986821752301953831759161163851855835416009255882838251972576790055612831474090628091259485293021910926009788697195769889513654844308969108157178709825202140335584338823566063244484491800681886356374088636913880684009252824168961796949586599689129125602116446895209364542375313404873518472213969438975468223689394191169188123840597552941538589291977827988624538209174125053060992196376066421600928901785277382863233292211779335303298041009967456746672579991684107866519228234321359863062814042576969923734323556922533479460427675846243503873835801903259946331775871078993050552551567168729626219806383300010839387911761334826683074617826604889934920813595857343676566909515654589275326012207826120346892139884036717725045370268953324347328622827001939520042187192161236940641255315791389320523153975586409988888787139078181641648828972829249054184601389640576733995970430982803646704743833225341605820317040773693992925203720563120882548760315953235878051669657665380045415498876632825172088911265967218045256288291483010805640413380932388991670961987195640339584399835910502922578843529429104831728112506658372776163076030670576119446533696015633876765117182608125333953048991404779034332844098889020982372711568893818100010994011247478766151127629406082087137870031042505294899337450426448162837119557799188819770032950550334235678977976033762938180516809735595214180306591778749504505117723043845875787402412199599070896358344883396471610370462345477598842815762880211735941689699931679853880551758113373154625321582120045885549992048655752413755896953806848750572327392637763212965203924171799193042849321504263579526930321194856917012588141981712966600252822775834656694889843938188020675976537605715537282141988358680408072734213722365184842409817802421646444793815509340656566391730029171973904969321756287408914396278542747665169797098474266395960768187801862133822630780428644160439150919750103247222008866925669279476171002921439794743038499408193487015199684458597543534777269483705268954344494080054094333782010164333958819938228832871093417132432065700527430556418729323053167659525312235355396072460263165635077002019559407876719429825224769927829396380186629982654817788489057904731214974959477737291160780002972525034093382990232060357052486198695169220788879987090226897261728330406273957827349900737837106906944857081726996981171859267907705197349282801093011482418458917492080964289905816398521368998026430801315729251364262897071196516246491598280201753486454372021810290496266461787944313989202857646990126611009369507649721128331871488781779198993234009616890728012788181587053212410687276188004117520515341165368821833541290248394569290434511071027227407921409276189962030903011822016606126903424499216419740481967726057273513747862250559796674503570733294380699252960626726169901927602896617919632163385401713448867254007400971752773863220118217804137716688552905066400303498818207751506728567711324030373432786924514456977283577749317737806404154310686816219986493660787764057202825616350041782090149453282285991615078631964697195615347242307414007702141748968408028536883622445959048356459828399848657081941830390936077117695433250730105740552952735387143039541857966083023665474379797359606619969499664235358856427116060648631379507560445290184028275332892659308825896666087956361309426466889688236912260825583539709839842978749972035904950197224087839617028117551150480597874465475203331788674353616450734274255274135872869181351085891447805742239912883459054282217047368796611695234920134139362343529264308673746805739680312943437807606051146049245651393885146524693920877844427360787641371191462144631578354846887573794155978638227263920829742430398844947559072561851464287540244724938222536085617057982456740631524853352893729182218774157158289555086470419863655741385069510460326310684826539459344827001695904844634415755953006011650930998881168571583816105868989319370352786488543453874382502089274810112012072632543644508784969610362234076121987054663021132715235236921856837780791504733109126199575102280629445201363150281262974821468832300476392572531582191765451474253174981487049138997663053591491821936759061372532358668002148009622829224860268196813316292351006174070303389873394218620553686375319302550093641805688744341762700346409276753791288069756496079838229439640209165057363169090319692556284832845733002146405933832150651877353121336721655504024099079507212578338369711140515674235315283850817617676428883998254734301217686032289700870742138469608331535983275061944395455817912642495717599656716751420397571796053267513780570819116112119714579359355813773071775168993004779811011055429234803804831136624004495206971973875929197498098542142584950783286726060480699720842982128106841420126147265199413093030460796364927859360572602968285738075544080116256363346776772807918888371548258671281248220977117210737708180751819162676065740432103784348206847816795554377105874765703582336011883363754840714343118110221322836531240190196376809299367214143200418209201792494542254616393695798596859998867582969194670191660690380869235585980062650481666733716620219986819410069803089829359276835085267357114577391253039963664268497453663260577287557204629479395608984769076849637670129382428397586939389722787074162448950134068926279728130650434412513897914475385180434331829069064531247180366437425398827207884540084494334397538254467661394939581534203096352976953008341300049570699395136131832707658329389205688137655896111046724182237001583144370514185110833258159590964421306677611990601617722409578955076481325663715998924779880710975682422039106978457903039659161569712256689456391125296255376296854616510031467235793536255798039259268561516589704049232736082100110706723291076698398992742157831536800732603166939371222805357536954989866639957611855031409437406611205041559295774677091258942812324631671447221466382861095600864697013290665302757653945254697158352335208219668295220174185850341695932234462658649182728824935897897326308660142721016897610720957585132287316877120378090061658860356659982857084250958859517063955551056149623297630790240713281989253210370922522943326430133386773403341931932729124856382318709414801959138440730325291701102323251791716462784258738311300085771528893950882902784458593048173168026535488743830829122203575578671388614807074910834494671206080916245221422523856574317671631881605877560306215835941569857358954082797800391145679683003502010245222304714026871177936107819588015582237587898662183230901548422600138884035830915649578568078815429853420829407153378302166080622931115122975905092443711669643019657694725643725199828821955648885524849761817783354429183564917675820034005700316129346543128584313296221042448214779833828680651038712089730410590370558037864138040940279009241709927048978422569146965019154879605411199297274654910484481799310882605804766883540085811102930998639204801561760724922596059296377815424517435034220606613224451418394420930406102507677110220005691663089076510602295484128420983480543852859159951781011754555808303916834362496847920146979939695185693594764926771898715703799567731115342547105216780636999979520719565644527750848378609412546302748574113501913803024100905200811591126415519859873238763767881369931267760969015533658373746953414081860657780475134870065842070744402377290159237172854392591757603697285757091651580899900078644254564099609730094926771479620701384709759128927998462747319436880834638426765254272233864649022233808236994598206425455697008940443144694534926534359687810023794315515173182177146469185533366073951102917540473397633522997181610811594455153506996944043820472683955289327846938118576687867307247054071652619798126301637832291959987313781496716917183532713835076071071262913012537377534569984542063583692161870130869944651127737194904468536268885477212993256443467622539041738324225098291111208289026283727015482211837942142883244920794136118563909645118413194487156141770082457887350870238093273041675797413595530602628590268670931620166336663356266041308542983266390944538282791131489931261335240796531250302575174187745978219294209560913862968526115395055393001737550326487201978318880440552086112107578981785442469384701986439118876173990876511951683849559245156666529539483446447843503762364471995433214335601270730305386616491144100453826805008474168905759783355607927748958161801708629570413345949145642905769898165798745623550211166605662380062417014130991944444762155913536466104220793660472893629936210169343473012407858544074283717700963322699987012207876508516066621144352585519716050993445581562236697885428109979991562760886101227312816547433550166166382790822788266708401423632603505192912661574539335866496906722818217479684085819326863969500584975622285528140009649594434787809901919703134571949183438029750861813918983546095373771656389005326266703019999202347619926652898812972957065165718765870724904121117722049954376194413394124804294404898561681644781070782360824466097229584160258902222462153874712454755148561101281223462407670035879314618389104258359809135746752632196650517220341268507018996153756106260828180540458402418876335457314590767992745669534369849458273312695763551502077581295475031861842207377180724637168102711062269075086910411475140379374058630481175865125768134692289079002838092929028524450682404820210575238676520456476451941033417271954229677306194745475853429526924940114688463483867289510180904148125453079739993566874532002467331526840411088018744826368235060130736672546245498362340516750434084737206237011384669889922082101126066115511340446687420470512402698532754426868154542369558559310965190482200460245785922997320400599296316916918821452494229316270987194847901698859804800506700063593063651558362046636517759713783709588625225123366332698531383877456356801138263644734100094634144766701053156037764904235525117698349783277094305796023053028584646879708163614012031066528566478244752609885033800655358035013169437926933227048476671398672758672650697461113098654748713835328465549887820018568419392394675204365745977682779537691817314420261675371343261962503751345743044641110416634764635291651922952820852974219712758110785208028745480481166007293817483104464495646322136695467791510136227692676145196078078874666388451010543402831160443105745393628869408653567594249584434526524977496265188054814005404343498103868919707340647060241957305377797519580530706379543796190160333064202747060114093572490142942929674216780563697506775066316989514054088689192745533524460780080095854251809687366134599969320769919789138261577341394549689582003977768700633748108947536909954515850958369381683138316643085874612799714067815531582510911787248577999431435882855329109187802681933764215118403883281937770262875395909111308178391949099509394223210888416963869286193530530972717585850243303663911713967925843424538443684023696606099351782540087803556812993433813633518666003404588315027645824872634339598071859994549861687273113176915982694578683032277274121596877397965716700868917080874076100779029507655146336267879742399960592173930042472773984290038721868555425232673637951507630214510917492734865251739076936181521171176524522773247847443408030020368408510555316284467363776759440140473823798808274555390573276010517581154367486857589484990065768738069249193308632942103359119969865878734938068132281663560013023344276311726429097667720230861181562486696083604192545561304554953495660096074653667954590108214203911842154848765088709989456287286173181470975143313640303139696665269190622991430397464676094188420998312291740170920920158209544447053297516283692425740074900265739302663330386561611860607929625155339076240068744955386969474461523112263562963827466977846950287954553179182300664690455537631337591926439788554629559649892554785470963716076707300177894112498590207366684257218424450858585032757640093359253789396303944888054240067833100160589663644379510430400262255220378439949060568732266975921741732400108058034070442395330250810832716752310793185139933706095723820126368907454606568099900076759697306876093524138825472021538224876730969199638684783321427533887864749885637249285443155531343531276384499778317824843371820854209607289095437622342868799446354556961053484894320840133081883373187175039938499402641332288017911160624471029568137162274588601292723888816921271988985889603577982773525934524231671331784327423904959846295035437280555099919850052038182513675898913244885082644497239900894242411183781815210086827755800344964267055061642468981731465528343785005293185611343136312379153772885646378765584417510637272514031382579686755779563516115846475472320184892487140304042516772211038245937872362760616132080341257045980437627914301260599525469662432777917941507593099755646507706548263324254891786566277612041914505933066449084471113927055027234029585350983863767080057897793920505588575394319126025396179755605235727840476357867790510841981068818330817492071199891561497596830853942687211876089227624694332066212714710425061050761212925835524566426440629963227129490988897580049553321069296251739417643865304981366480832079263684153291056675531489435967457469171972806533326654777415929584468749355858299264179268265605322217457630891922575440519058475943597280744946624303998260730825484842438570666332406205422744982855288187442860340741918931978458771115422986366240424093624610898308913421892266473803478758171119796822699219035713798583926435078356065010325961235742020390626424078965867816795429922622667449499089336087420359420759244520832832660608284410220801973084480615568868882146572430903086868612757895135291972751104071147200016938968620470111301741778574882517493488257460093699837516038384785271792249330748129368098734997377572180658718639015531627395834205326593860927900497183585488482450220252167179939533702273101447757778923591641554994874805614172931226051010163255644388296220942861022893385464245842764203983007729122375109372208419010672990928864402357656492167559770855038417141770516235427982347909364731823824139694253542705617014131587431159274365265582293520680099711671238342035275865938491057827554368435385048540513487218917142457081642054344251621317714942723358155997132387465651004036669033009510563327433758607124402922700928884508878759391142688411863161651496309835675252166823937374460609780473275384550000582755903537496546268365864271336011703447964789700383112798172119038584372139107547005289991536475464022600007268052501485858384565363341449418163247497498927322654299470005106668503716897532412786497386638139235881893739294869331927012608776730763089366819287979720876918406355410625266020342089791988617086045387724355474557641665442191828008496535434541315944438083453353747605110612199088588356941207217170360982382599347587438075480240591961759597435186063963139559214209847572794163030427753773220038323634948026906541979644517335176574940557863776767805967801651384933250131188183067837161704899657873340766478871859345787155634152121971606069283293020219619513122575988874861796133112280225119394671720415635782337900928476266446712530379764543387249374235414828807979652116382288810733830585584674530758625784223690806414917752271864716111804536289476712683186250235898369550038057380504212203555329039000726154502887072157506590460891837988805860066825798149412579370005919425274653363510368756523649905191626297586920586964715290162464726188307126060205393147533613401119439766759923095716168955579371484087653748861051778595147428638744800806341908452750298983923500012615196215314896587844581698373199573766307267902692216812340794221422381143622478677088276032551304547931017228096111613325624968221782074606194704544979022220615800730403790622192032424165984398138497313017830003867338556441949159369562830733597043189084086107868164439540782394380506028448572396442360464830279172726214699097739584202914218716939066923877137700168497970209587215776266142477740865844208671329982193380134559345962246057868571349555757461965932646674504642266310079010477518192582566494110420465485363510709545967475368480995605360712904679556445308912797251509417525457078983355930635801564206914992085094371390657977262388376297945294464052017355904662069671808444546240311927191138237222479224366281866325104257977911722376108755090026290211822125635555949911634826694171141155498312943417737867699553046440479452321297228744328356584536550303828553630232430201102286789573781581677571635109635919054186305654194852463165158983877243749016598000577245599802841287785111334657705731663165384727430132545690094119700062351073651721666229596217016401747877057293937255248046514495625907388926239327076115269126366167893996631181728641840963825266006143418957318739762421783906037517557512389265418649467446040181089118124914242758848815900156219827639942455320429134216411707779431412980636057062708560011823478598801725458046373506187039116626845916007210207444996141176251973229045750986683166162960474084633797740924625449309471035856177525399532623824503567525266298485619914076775710035260909902334323811459849184955515312571090274145199957641181505771990124945867494985555777048959459224496491178369751912612318509630817948905459977919754760208799153744281390625243068088615663921620612373845304506562017403851747899562078524320116735861211941109751493348448318274490293725103641467961238641299267761856777824570785130215154142584697050019341416151412744579162433988372402087464708117194248194791752878891065700435331689412430839661292031512844765936916236636013503923239007756766580375505649459924084260680858086953322832769054872178222068464755250650114140063607591872035347700370421295308190585616447852477734978228539546494585208483256972766421136617799146899243558596166778996235959169411018251397263945102014955429338918414841650907190406739715283205824443036046304722893228979856835507274746068230045041150657317920079755704725964970179444762732804825139023643478343784163498307182104874105589128349911965263062646136446957968427095826014860004283309189205400784607681911268685367402780551051407630660149792151004237192612085085095560726398840905717054704815371606653351179387208036804176590002613335135697431751733589157776007676386380021663483836913428745958986537544345848329327175396854417378794639266757931663180014168983857063478891963891385318768046027390987828439915027650843939532176357390455698875202936654705738625365873710425415423924060259472696351942911522929920570139551424872915458000244733944112522148159774000357256989572847976039331995157973269786563357630179897192535173259957818056507436407718516715038019767325183059419977544034110292759766807153455720515146573321588129964306939158838967761329258667432576521810731548261046863504827171535244684169871040539661292609256900291745170472378763296404108581287075889449172922159260388753769918530397384732127543101669603578026349285188664653612671686068471671677735701209404995544465211670799398588686038666448513610241403050000641695743764422218577723717398755570681786758607073243391897735490985262688097401932551227889494135871281056520348580294965738318395153074149460743091484190545263813428540514549508432690106342988555722544086954004683122221220863609487598851314124830433340132421335551609436081709503316613745633908866312000725832292802994896379318384328120599780344000597241573130755786377130401592420879707754745802565762245774098060998508962348460803766753402265668481495780099621419439413510569667007841798566377085613896897511042162457873194614258405410004328652411462774960117226364774234245443220388572054989709239864622743942699794778162924553521445565672910229001555060260729932025312910624169554106647439485298720469854434609126572537888342542544819534211282935971518367150199106521694732659531767102555147412118640427778660852943209397555732043088024942498438446891935396103561777382925789811629514215373774883676105497514547458404745101824189623551301769183522638892000457333492390610397592739154172154084443678013292859440862717821923562585482372696232260421263584708972026305749011159966304032290866372420596467225142473266899301598264973937083781714738210552118487895026953627211769685095331082959688568888469334134980189079587166762220089753699794706949958920039256191480133647988246981337115971333350321670620004179327586327416230462891430060611179201687490416449063138788641571634792978549102462054704041294581888164618558967627952693965167406722429834514517467663919410855014223529701717845760074370390997949939383795120167418504084312871386780637627815013347844584407091374437787187716930953343229513053554158666075687757614892021716303416287139737854276533965103794967126057047516516643086954017344476963812858535959704088016103960303954382112731916864939894661899823199431286627529710536416062022381871642274216613217938677247916433664707726119034881535210349526888204950910246810213489835436720032182092052507452921340936941319021363822032723708489878224604164258508810820710314392015204911886847429957804850328977123320499904397389543511035459281962319956899956303943360229403961332597069762108904524750119044282762481697469811159843757137891447944652383639130798534901424389591186740656002809700291303212790303795304888890952558930078343885569810440640351336023147261695100222004111728071791775132164874454903822181241919090342408094023737306886858499014487401259583816750450321358301807953632615620394263966316505285777595312873569105414893163602743085270894118275740087198443161903057492452967588896175688683773310522725853413095526573736970967964796517031217569724683678684498555839891944252931114327001892264266163992273942674328423772700878998677721105405922883674248028240504409750631737688808432432870386480151202304240144043116206798034534652669613718163524237385451337961658147359348852540920727710828584651448787793660888603182142653176329100224292305093997047839503352633167847989073765028937237062194077193505006875673733379692087589490666241382135149835169740052742638591759108755693864433091519854940754718696199536898729550013925470493905674699107395522120479466062914299204586081662985726343511762729200621764338889407718895579372336136235306190563135400030405248290174317231160400524693600672016799039981826987000561450656463422547046053287662267144434948351830444995441816399410527700310870245622736160362764994020363467567056167668345644855597622435836960220569722568462860107043462183147542429587405397307586328709763942091943152053716478665121461981346330635332327409238537686058117070738684232389496264371874357712535666165430520766194370896322651084473910984124369152726576074288854638227438666296349926780694660537972092438890087793892884853387703922325649899960686773509823914009715546815308599270002941250173478015514985810123463490677338664183957376611702112670908734817521173717509788986411699328411355818063849417011985730682274429624497082257228120653651422579932078262499247246404487606397451332414096825331428607445547296493890572141765136587984489697679033144084546568040070851940198556172198240333782055650917220499509049684282041715803289515496884083473247037797640469621952419840896824256614172884532545142082729799071620300777052420834178216389548271291114436402930885589330301112977122961073181435865279285171222353481792451525997625769893789974172794307382766918469668369801347635210222838602676050550442550603412160723783975613429608487776122418050532776746694718470468395656055665288692173017240403869123702069192942978728438741565180606499011481430742503069505040490223648870704721171258664798306108010619363226477397813266985956460570145189533821090928485372431686590725172463316395654208576364795723037575591106614692238225880776868325817861637965009259580269472434839988436658791576751873454839820213602171383147899577395542369783857786467959931793924291806971260039910211944551067585865688049669999277361225735580377416333226237566188921363095345829147394403509716940244615324898040741888452876337839568453197950445997506278273909795957229868149132033033228927029726459877773703913096666262920174931368316626952400302215929684659986154567004021042987172543862196696534583421189864167181461169480843441830464145300893851516241303034631332771622575968798183459816000177856017098467533534554887385452149801278109409127257651206862153621773235544538816829459759530595577744302100776795633427292379595896117142734807283495215044203250587058848169249409500968016294847421022564704670579365051994155421281748603525343671458136902731928339872065143654048397304473697259791479848208334778253103440937889385356955909513891800659793890031994931230829492604608873666205487751995066083039029533312127492433264170853188053627584343876857454986595878913307386494882029300672407602261642056946096900356656724090967422314997245367640735561491806697957368635931146635923285082218154740927119962025517177477138632687749570781422305770108636379947727438594638595583296158901329183379487627656013189665057953727454412509657959198713041831153399910159057900810876490330368145626703903976614191137799958988090228311687242472516691792774501487538678044044658537249953563618686494394765674802696424858510532636725414248428876001225263588322203808728117633064453141055282691521406838300752952497816174244552601156751573129322029470532268485815070664533204492142213062359218831424245583722777623259291721432446306790773933967268568122342405128537092357635786326397828435836771532016510049666508882071955752095414330977688987822898946116186895324126781438207892920647722489178355260600750781828497567749330235094152221999693155068079852027051479677627556804628416791539919494722447834142295840853567713770715207127068164923407953125562306433699772389530389036386117265465172122463556468528337915648151681436715666372975874703725748420197492270277053376328787860007723528447269343567137110240962216355443582906833439396961337858405309811365420331652392938411563340152461892144099610611237040089217928829049978431194372981531171293606179056135860888494504639797878482402522585666128270910254036925747848696192896256859757215748665992838068371845777907698052384853690432788147637997065729387667352714434522855041439788896105511178582256254287323512856392822991077656918253450977109822229042335320077759450383195579115543797592713980044046183585785510542406286856020442517836911180620244754775032656523299261648500523678668873280326465732007210526540907895441608032204488067035725663932966928049928831206294076062693409034856992711798346773888095644551880745020126437334763624576035716091750175366255730988726626999440944657459726721029472727513328681621117353909999586906722714303113410081202982751483168580940204988557959569473096292994592914190790319353469800784490208306594446967368694853578122060949101385991283242670644483736147692816720896228498939920471865874469142594084825424810866133496591176924544494554633105369200819849374959927536258985338671672462464528968327882294292451079338745407173992791079947727901345963057137401139065999939002840682703873494243558793545692495438782932519150479544305603710147895656162617449511385112208812246235482348279826420976278334724046021303904683348239227095714852323279411696258508558481992559815236906872852084721529384237795278102159168662881873828584277917667488256145172144691235951798225190439362678341213232542242646881007160423956661058599355829671578724404270858557169838174133075137893764322949636151173955927019571066449451623450792496384873720237856070172232157732707567157672149669362232415261609752938892359918259737057405288597338662057988340691296170452360375267969677006916559720016811079661207263161916354580154515114850834570828556819946748850668215831108287365250860526810108380161271571165837359079879992099990610498839935097285830039237957127521785114083380571405968025088271757559971504585747571165266012670263292143435443024060958138295893332255532772081208861020405385754201177942718614699702130274914602787012181820189178605207080393701682758761030909484600657992278801959731094317718081810192476548222894074250624028418799186726554519481401766056744713952371824770501564701793313998273166610957608644527001115906783650643584374409466846026204071326304899193363661653984663343941305710457774375353341833263145525195895019521938708050046254631115917956823221222533656414964147831502075223772492119745949309268648961046743273246192719565277605513343017390267605207582940676914876089208541830867139892030343048548051500994110971977507395995459329170563880892937217004076660544478170030361750295824222510490234631485717673231537472014666964003611880001665827885375251682875366062075646135973817972745019813539886580963911570895738421696673250519733690983344801889145598439965195106204844735277246147423426191724879457529176225172905878278774200139878961825729092982900028875487519530393394345967231813975008634720055258860677390814569566439575952481107305220860782915148972828461490961726333566879393734312447775837081029970441605907776654928865772988736475387183276816133610100566862627039036673469996584502627582022155977609603673157028711530245465121391887490805342509343334746414744275514021063480395678796714107615116698531227026512817647980992344836369714657879758580847961753988228914319208011113386499949795167854084426054895063969182997452413115603996944415462210767218696464167946906324848108929235839429957934852621344247059854582201647737690334639889058147019345254197360765661422469314250962724517053242839357669797584984740893015346822757589230393793306850294523221297482630440940921203096255395500819620066540925360192719023624484903020123745632003540810069734215591233907806449062094419306038943003186053290362077112018193697996334697503121994406172198599336539402847951899629929082314500816658159165811120987041745708723713413046975326019451287590334033210870693007532879937143681361293211614876728996755419606718832271332126516032468551577350490594354756362990356425038170307263501268770218858699406556528435819939919764471931260786604564024530881878063207468626413332435473084105939271230709630701654943258922235378713110273684227245009501320746425209853467067470499927821289952725802849154244385035640837756451534166754076367789381607596409270271922837066357007607983666035570609576755463124939166339836589148565843085251943209531336973026521565919507118799227061613887005862037839092422828380956084103250124565139806829105962590605372684229726224015925400728753396086612159937964748568986185556633924849376556286491482809952760230494990828133080815515011488761621689140055366696285471437240116751130176455075589258615914189084960545510802546176096804511698646100494464771347701399815692391225543677162102327489724639479207255570312313760237490259180419895595784707630097824271690538999352816555378361809369452390524571838827026989232863952089042693179753207133257206765061875878543381057956572972283682701787832968087525871948999269495067026011361389565881185289757256302950875958650069351487273726400408661500523662879789592578615954715230875095350084661081619298457884764890459611753028272451168664746631087063100753542961231273288586512194110825130501188430980487551323034774130614277639707221463236370746741430037621082161681330180323342099837628474125421905540035061327898232495385695480144655880265604733619840015433958118213244223078185287029364044621748541937462794735777008994929950122954324966657930984364055791740257288034314233709907585899963221639975284905972199284367149817109269472471268081776403727183537780671262671200915713079543229983447840941472241627781361002704279786216477269620159210107673813610346531020410138264405967863365355937351818969743555920438877775405520080259699802070042450958413255321346467173996569536207013273534358062468527695195471901433318363954849707878931718815244653904926364124567413349159945771919670384167769334872131474497168220589613818249061189878720588609844874526932322543607944286812410830518656394640794400290969860351148202594065963611891063054889694340149190623400615955918424860447061346179033055417463833162423017643936877597446944307323817364602641148059533672558861031012850389480579634878913571683161913610824419207923615319837960632956591404350427466944560487295477734032121096930049469739601411997279233382246454724501890543070010866181607648225769638538979020123658763390314121830038132810167652567690534822375729008452694212266166413950430043544864400590622165521830505802154066730276592332726542270436859834555542534534816307550189630341665878628401873662955238336690218296803867905931696848643743103728257786818722240599436065315966418667391093081040360338129236184231457210834307326460508043805490975968204959482181062372341431534342246715655856071442850362787241504084425761648436919148197302831334108692719962424033236689711282030332721643922497870700852998052683109130168275621441222047083369033938863064258626650036016105679913279358716789846670809781265838533444730232933636800801449709288724540194057675753903772199592004420818570674476495538405234169295225493432219872209656591568441147824190119628546285954963392509116194710954697292125519395170750040245147409027509037469789953019365605707800937856161268045519349066290333055985219794700656918856196066672820216030955426653342520978915312297944098789076940322030923711564323861834473080197498915791028622574318948866793351416530706980675051588854005900777620693450296728063277256153480521395446712865828783759936444097967533262756449033470687235999161589828442199259641061738030826258585920492749798535810985179861583176461066898923129144859984063026562116474409725664233922748699386136101277944025949988263047877402358856296698761265049797305349943166719369266427560246356044095664569545578043197887970681066526359186701567820395621779497848804169390107641275077080568969885365275199551313821287172359043031127599987753815414760818391505641028522120032843452826130920737200189799263978644814371488769138272176476266315238692293860103902570546744801517242154698921527325474578185848134285085897251521748513376496875989624134058632756410052090968891226299750345564464946492753327615741556775960652649495472443533373972381726153100067822937810313268777036866931924356555094547031389433203195600598606660377258872454249004235048405933562816595532215634959132523984383999133250970382387008442928261024831549160816224059728545620408995544074784752660321129628681866192167997504389306018776592649381865059232361524838585831557535821252325677541406781180602449270654027240280829904074374165997530698747953189988244529528096225275012025701128518674301006075173781396522871740957855086490694063833712115142936512722760489692771880613574083455308233106322241247014599825777603428454867439022274633181831833872882388224616079259396024751393455614099531946585157357685752792016046416075507727513519703833684882043974128107793517850623258248162577364948169513017692132961588904521514391246474522057933539245925598149220199559796685759807514532097547382683498054933984934171555656115820307530945060900361310012774184810267639312559574584451929575675115964262199846320060946924815374643351921235117225561517903934782510296803871071769070312645708744360702976764582227560120764010512671195600454805257028413994885515291112186966595885249415710181483961404493145740800927577630290457252347185527006928146638387429369749756284204063327230161495076615825727186143331309213858735020859813760904391806467640296698216638441763921956692955211962707168765345460371823009636032648905676375058554984921433144486050253216196091167048553530360199999830067883443298733749672294590719133708077008606245515026777328263406503566156368735429411692075883520073294886941959384399581059127273875123552474112659922049213576976718315183710694757725172680998649730323483823862981824163563518516085432433125982791672567686086530678654948093858172784451874634669421313673447482790474621678920332342776801001439284428570963564300414902457262024874591376270223779092528296130894979970913772122449293135539424648525479818985507368159183434148802359606938414902105649944193576907214876111166843294226341440346141778733942778835028268187342687401417546037366261421887368139126527631858123072007015561314830780173962067365429503111006531791743299914595820589523757907733136651212969851627594216708539217136816837665389627913891985268375172470076755141890129424583157828021715784713684336724574798791982601018543560080982010444601699283008232818100361880986225630684328798265929124333081839688250113477266261596719029660258801090471675717771934396812054212845426101504431298832450518742645396125582279247175638039490836986814407234917137066700725762575538333366739301136276918518873576948889460997132353529861071448225346334681592148551095708680892276179692893736893289723953775488932696995819297178650244222582741489329739381376560672868836330306871775892195294592217862058330897540578577077354283819800872655129774402464089570315608864960681284757077144581139124952190954178289472333755338372146623255601306629176678129676167102265621762145970810647750367944420345445491597470525745541535472871453546524515288741967489481991871592708822093535773091406306562373368693304538584512788019539136972916607968696882194958535816427856567880571931365703191338189154184921530347769354071365422860042684733326385457882507372840967920417551075507906507853530188235936594922043176594445916697737373957040157470035369479091980629577912944338744665237799396516043899301332404024721449278752542828595436389438537188460361164979967642829505074912445436823426141957198425896538724143342182949236401782402053028470299850491557555002604174039805447903654028194449702677502472158610055235767608969900276049128297958438456681999440324833391501647965052055369504977796311403685503403449726947489663385065354947985509153806037402492211844808488995187950958892794244577376534431814131444125394201323331871141552608755370035107233201847235930257369544504330667480834085152034978873868870641766854932228449157035189352195443348627994554542962251558740283688500053903162481923318288087771087593281834749526825036022196523107488773148343956185605156118431164213715288768814043859122156471728973247032739839449730408155870603094179571739332603298746518116103573426925867982316740524855146562575827627387863689935204957078830430649901314699255752736196065945743293903388026782217779455284647884595275934706027273707384761974123129603284565925646308720141306958280766051282884522781539945288850774598035743725777317674081086343211903474678612941043209940795830951476483309547913529991106278973865057456999030378131006937021533577185507300116589074276911033445646329262379671043155839016346485446026081180633009939971620281598412491716364938334745647540679068121050721250668194675277595114730571728402448687147448395446451742019746627382890896628128537294069557740082100255566402398110842221323205554692737262766726862924987892136185879638267056550733263971493512667195623465683133239292189824474538836501079738725027347490589998114539763711345000845719134502218062329626452615547914339539516059227278012826652895430362288910030338837989250288662062995599010189632306854111199934897733223887816165636520788439908628189807306729493329727705589388918808582921305893668890138422791880169584789539979661002766905012941462318301059855313087830257876759740625369170605070996463205053430001569762776964270675237631920663059440113369634087385477383783210380473946296800684227757216733915834460433928048209999352226621227196522378373916842302657214380270195178762098930088881553821899710272066464956938339248864124686238765892132759799346956131793277772816253700610443433037162300895408797309324552125074474465384290520274512370250928571193422191503303184046100310446671832785241086695773342599300275592246140980502362576333834247406558344863236108793860916931289248394391870209763544363664241257308781449298961626873488472005052280198110517479261547391020833413667153766396100284340499806837700380110878109492055807327824692858672907457238041377280305338517625071014845919978322567837667883960396936243539635919506724444795105868249621330892197435357158145733487777997538455260876950009048659741531944781879398485642666894987861462893226923965917400897514979390892669241674382906046167427834752217235726821222297235473513130781217576132924520563742774372258503901572019254999267703953210487332051908063242047299180905726252181183736963070126229825105627181105086355211692459093225507811878296404086361441216718787058854434340605590696415650505940845613282610060121809054210393949976998740489569938313178130389867008412306867465045462689785745052255042590721166524330442872656080511990296285761921171181327083364165552404315601073491832057220282169647876786661591096322259517313254143552415638673919573739735837331644753481761084449368040481668820792916618297765138706360336172294038152275974361642902343258943609372608652139597443939179589423137409893434910475159066019301822900109754950425911427316049959250201926639400659449049458306980570921499579880548050021174251964883063705946966876893955875613751490657425507520748517193828808119546612836735835497524330783952648707412577135708341169511592997419603897495629598461057828581968972609544366489200452636187520643674698881678044838150534642202372371450256195703369159214095567820676237899333883984311305736569926513602136988020167350826150122040627928118532761530157668755201383749324914229438968299305826290625892111513234922634218443359762460364685767507189466640635875275187366705954193626930671962870958242072365078554124924440539493490694164467450241874692470144297267896906046698929851889721491017029334496854678112433538717541493867968536402404337958348152794535170025399603520220454541871674196632320256864552157317162914372551699889020767732842677946040587421286336739749418252987374374944233645541594810652232444491105289541587361149245462161188914334520437906596130515573211836267292651870845667404849986031960064920347873462764432142730662991078174716696551326752891119968587248459062644528833523828606574710831287768024658002505341075258883469755676580494747120448920151913129934792985168151165291073442456636480233846376209085883796134052952167092144570714247174278400979331304298264921541071587888868226413831004880034686999885452532004750860097669675418123663747946288628481599211677612487108602304048104703663344217923479052977928417346391972476449438066815282563592797063249757552848035043101830898464247471605772972445774385241986918750155333743885844279085123072875422129034054246504274976503225196736371413592088657760144552681896840012375148451457832568181883269523764448400500012305428182049287882768349405868186086419568130921272724405691222495210146320010957458536167082723673461013549449564487385905315459634648634508672851733628755670719980482575288723245472590699395479969146915844902233433738989228970975410955674668716204522025769786403672247806422150277544338418698825503305661669361851986833373921850654787187367905774694967992274080870616479856647724716669679590328703406722401134545936320103797852784321898426853494539147230203455835012313880434929331363618158506092838212535780527311447140325428343119011872883752119554568889700643741839067435656331988864012216114901028959703312347975587781675022175420203916179086923832434627377113782676257060169800824308658654805630435668437355756728948391869325553937516586020280717668113389811189281811235137058951889472413676584009889642307532186939071940856954295806124616488058055403794888634333738980535445270799879211223507105431007496724960894555351675603833973868138348636361265008033179399098702631700304933256897582595805954756862439763823603229111013580544028638446771967129163454485884922889597488244004635137156325355284807752268521937024879573327112205929788396953438722130533443505521501734658261988948907539623479132193699847236146556652406211128902889434915930257781348068638872922426702173656605343666481089514390772098916441203342936604562356935582234464993977526136407843555041661100846270058483979918538191894131532528913679407207164366275538592794134199486968468796627535248408661216207587030707979507650984108729614158913049453042816455622238921009272059360052005580325852677412835486086609557913234077342938295821762950472630575327776714404741462525138469560146286705594844563027894929930624336755475702038380643234226777486941881765119198165008000152879821519649887801503850248883173999538867952511029865801968262546699827364680762786331808767059530581119249021019548620588116920515028067608178774851180909309332850509148002131944116942402875737631716561208876836511581809727327450912754573462503921514090784498132681385791834612339584592207017432091254581325506105854818907867330252008590217679090267728234671398534400725459123887617243477392892803458053227810079468128102233265721032856301556721332478435581096118804751172754640192325350637431443792768129677094089478344402463021084843420578254235106445725576655600924605876624812882463911785392255331059167800075386314791382958436947173230610060901593164076720936412820308417022194783288309641967465817028574605452625213351166754066638765570460419824215245596272064972385973298164682974049317929830644654933194642159008983307895345852002804195467476083176034603775889015620479784941935267596819031957846036279734066183962141880033773610580999786274284709569514523605134660396236461674897315096547518103962440323305384870772957384871735761245608178115374743090405645157962353506488827850798276073906201015391113651267879535869528960017671255868561581503777524587215354458661367720803645634005666854221603284130089478367961944300540250919045140492628859726976998468983856821181144178169142493315778151976292764483171929983045251641399220187638890013374926782093111319385184225524524726637253708351658162819969116756938467113247587396636291767703695241319094967148282011074769040954233597754123362841168317764905490291479425784130729889581683275873207037263363352428550071089514981083368251521722185722213504774837227816939844925743925986075358678350427979236858903191234083067017666521505564911744557712544480111929137168666007121256094308711435208251739815553726896583483844712179887051718974598554871577899419247383983477550834525720721926230863711567140402795499351756295724768601305868932822084041196526232673418408358372347273062641587952535941367578281418996860076792140574649680649345906995677587467443871787831511162088514499615212320657412906406631437882837116161819151566561808307387453772930573459747087132003970878346538962598734965039022167805069501211912463326800584931436006752922364411656884100448467978481671030353517327465290520446538692008574375683113051329104069381492421998082593732258636390341508329169215323761133613375513154658316456303231363821889504365505177534477630904415023276881109179816372835325859094957289065336845119713319795002100412152721650857973028063849396212633395608266893813817244830332533821468842979705558230439846527572297134506536412578329348261131430740741473380233395924295887237509576173694695802773651544595314588165721123050098545495703168827910774705142858449787818236155330504932473925285571903010243855980234351630398305067442659479962793495012027271183779754767597277859591004541538728518204963752474041269277521222976866865552724116749646933177274087650817670645230557323993369728873655692196529783671676466644895286268496412636458605610719994830134252427525382029628967644950268140110618719442696511126650756735714180800015820225365792455986107362850560010183052136001173491491745836480468126293306135178707962943821565554394629709451966877350627337173057187318715348285578820367739253539488856853437805260523671967955271980671296793082399291670789890825692458822698797555598920098140586838094037998198134522777146077210195946156092289901506416184706978790328846667485607660377985134902459968275984979909920732233260265503674849549301623508161772490571836633508129393264766743190144996746499999903237822570419343336322255776577773095232131523715566368098214699373525800418062196101141599691753225018065594992601749823193510965484618813654660609901439182544462850898392516843381196494443636829280981060882334815327645534576579766230902551211971159264534759421357768531408432269441950160625313995411351775610148997930759890619443685819027455948631596575156016517755308891320485297894711076290094829232360425576181971293433159023565595452329659010901252580811149191059542987487313801120300553127945896136936500240723707074908976954251777528370021240324882122706065509995628860488763652047955472231442134479691273493240255293014553893563817334578107899128693146503837983943291162491675477597076173073111485582652165492845949696601708827028989583480168123826178997085423746485636620553367500195908149896732174718954834362792365147758772481119379113017477700447602605027235325241314112038007104351667319678215245902258067792002097368400543482385129209269052767511788750270558541688388719934888696059736803970151007813307881639186149184148574978377087374195526488300182267483380236200977499961219557818581999180529927842278230527483331762908831943229161454924036270719715493444739730721187784886265022440367701029430645953103061727861728945338676534552016934730697315770260962442753626575589321463025075339205348197707184929083849942768729636014122376584104624636549643997844790596057235765319400047447947873941313857831488868834465304811945171490655221606917904957500803698520636827914470880394121489975162207537008604312991329440824784275117235229551707608383276761232443919576600088811718688194046409710889802178328795951376472542020037702190540986525144733431725004829199286173558502698539326146453616732685765098212331628986204062993286900277323892301298775647179310403643134155331266179540136210801248876706361920691214095351782424409238036317810562959725352401383742035227777743112957578498653492416853662194750838943617353757337433626928438363771545970959990585632720201427999998588246377792895273195024355295999299648644350862262689245489007179259653455077359293331095325953717150360922426803081483825323740136929883241857851296222432493717228088429714297847155390358638052352976387751813564556293772978075283597087864943517340616810430867563007756833972845072557767665690648041959378393758478590633018123323489401328946391611114741794014496927907716178761650121973770620444036461439767203236427405313609572462528978111646748402652115882018483071744839467686017971031318519226366775782374819600140103933621014022933129976659990817525373115025079777692113738473010750655000494058011321430154574191531801169171967935179821950142620252611025226829653991260985192654171432314460513049872809162692367174812158780047105277127136962209234822771411802448708994768518557071337250671522442340133906415286483011055822213606620683732183438514933138530168271866579937887139370977359115367390257204490624130179830350735467049797217647772408519755980646893358443295128367822794829471756074341405422362661282410943907143814402642626246671057466449750828844826854078460723519645805388179849184419349797892621820992056589962064810029510849654891928145276973483871089038220793406014577485353636587371288092548256737920459477458421513482547493600699955681181063302774325437296676776956592129148318183526341738550438745527120529888859214050585457961067366540671284079112369404176266782149267447929138775860886246331540292084582157404748091236302000637884679037763873259245806578148151952917905346342984139208809189960181024133956923525391275410772537615096090525187666466991660445141830742829074022211516062442665538335791363782664713362476839026353669751915338078884216595985133633809405134714876113213606376688160426837818288000901041019302855564435937639442837667611840752596262367506431257647528794369418413327056905127068300596747700708892792969052266729011791658925610723437543143457007079719103493443154329247755810082764101332314079939377872295338330068905399793278588071598280599397390102307707891674026957971479930697848577478039982536134213092777729383645957993258740355352557460120959988018632983393647303019748786320886223661056416748355686927095555341641473195233103807429920567659116500788258069499175882171180544611759311827186017847433343869760445773986495508507370618831645106663033385103874435148972793224028883447309441406620906779034016108598099884952138759411111430338233381752002281690535669638765854562874799730993984079366475399715771972573593864578187520549949001522100140576351072153715032362359133237704694329886784881616887811722884544801061348567424152082687369699214007964443935430763245212370165834342629864875292993696878558327800008704448133718727123746316043607418418925863484050067736249839553629930920797382199253078227818621086511004793885764029964071201216630568725928533214359102243079358615410630403553809685742731464557081779372979969927966297278916585556102031276386244768079450045639430282483591098167282658774209663795606237457746187745778240718493829356095419003812182702735541906491682074025814780520102751045351360112910768681175137529992092976355367751933307996921473122991889133671837658559500505497123586015316431509382557248028473555834153323217909501566624898694397576422813302102886199911036562882942218974331179570819865539624041016067821458985698207208667834028905251308740755393583481839999743997043780845891254143452442230900675735980353503874559954569154994511552925310984936645062126573536908132252463457421834944933534287408670448260876905260195329862818594884048668405652801720324157534227112012153792321991687346098103327844078857762273663354086502304037457692382068471554907376847545272571596196101712184013918084473679680096770017503446116955340162342212208833290058103755263464550866428013728265539206869794984427343453919992700783535490672302939081217528686609410089294378050706361857690670307399194088794957788033766348951396076151127316274399227353384512739787152780544907456216961287651457658613644681837715642282687512908735874256238945984681536503613167319284149594364153832719837153306162579943104213856933459035708518820157388951561420747261353324459539269864549857437887155980406349102215197372140689767238338846710964421169978373071768296487734155127516750835096476405277803442472215555501736049126865094060231745377081099443186421660622059427009066204477555088480908564502257243411912728316697104609050270121921167646728915780514363435074250738443046788113448061666872166156828723646857522253629906166198062139571431481925990353791156645889449368128742524110861944732579660248662223594963152501750462554918128655764844977932605949710966857573559674691548561221228883589798740348293124726149563634567519490380712393700315633923400588068472444633726082325287547787923422433896109020742815387082576661939355852808852793510704445022943808039795347923077315022480082096494366481536652195562878565871335152961083358673888742351680150010050023347942998208358389028092233752376449430969285276276099525561813592281884805980706757627691497905579208439129364476515686458039790031150722840833701148998274049942922232579374651423765114387577280790147956951361252627771885400219486137671815291521466201826144664297512494696659397874218420143624000391906260527685779098919225196165899697705780346894590248277106445188508229212888830256565142969834416828627093538937618961336526947847100163947150403122555458200115579072745591418512381528265195283268132047605303068773304080755921815948033482385112650095404129168358802074981270463336172953380431493720968510413466573127695978455988673336856253081395827513509915443478324626034188615015116072794070950307010047832020043836224192206323730890407914077403702417292784151828914243821901589361122360861386314849846858528020479979555347154569773041427473274180733428440979306935743845217116207482524469054707634944688821023367292330028379050058135379460233669750439481631976007522192396078470030951874364759323614665814241315084604564872854765576647414763305876571914978306057584944629070146798729365166801771572092184283482161722812977771820856479553417278374994876012540345252679126930470940682608035701217191579587783554159965265353331562327936119581557154134182522614522013622384678380518733723531449595943453284951423200689939919183507343606444877210724981590454419144307959413406279836962674325103472280376446709417457318273363321003398955941596580775515401791312570512950237668688255648789725463992596881438883201205692273212476366608237311099541425830932357905141669307828017376005153666587940695888211800182498180998700371988742258889425347419876069607783081243924939157346285200278354009544410359594691236140777096566982951282593661658712896976631378360263994455711644885419608554021430139471743115409749394055443033338050531366659205538203507392770977745820892730624840513444213869668155961730176777782045420150793317247988877236754607751272580004776942080317818330508566506430887255081152733446325049611944555053955325845682216001473863304760677049009010403962744357918291007590526600245346044191522013080790280334613411157115791606851362945505570948701085686599968448335147565164485389576667645553612161365451042111468986266740201154121392312562442319563699451524088808906657460320789258153294089857364440291523802073583074571257861306533995753938190527329087803376150654068731053315723397754609237787844556869793358864276299035959437656117653796134037240155551191035560165762359280081118740155655176056497258789526101982682000910718213469495096053855328437448634707121363259669504706538987692076128882148116887883482817814377127353061156731210071869321106887109852371222608560339626892296427863236760963672254644747205018579573433467966221094288211593075138310881018787107391438125293949173791121217943339577379028469807950440527022117285446180377366240909299804934780128436077907326188120898553225568613770383139257884665922988385234860230783766930633099368089100899438654488226605864114450215157286659197950103248333668498844832093995567615424697772362825034302711034376695207425616063107953231361366349576662861968665782732336483506837658643518226270657360613027925402191613921401011295857603562559271307894443810290662065549714136213971439041378226199620686818021760722922292316058703758239452101061759417633826976922700149346919135529828502540258617825160016162478144609420860909839121036981133916110300739520000733224710762728684379842939141698140078240053891094562188039556917367851613888913715612506104878404543323285929901574029585175773448436949242657619229437405715750148157563588682855644400093022448151946266695981395910674716343013943181938770500172643858622981368103811407289421517136018456894641230735123567829147413118436451253828088290355153674722702129966220409106912285338388653001585922402475346880042689068866630851098987385393177295990686454573458578116439376468943486041242371184459808955120099553096243796305819101813453191015381718821611254931189864064305167002400037920210815093551765451554325252104184384449017444073468636589456288847738000254797018964654789499372850733536847289243732328295860088293637442871659025554942244867575999650639954753583553424038367530575036491509759137302257451227142418744606182528923012831868426436634038260506582330402967687627964589488484223537619593376744064253190285292863415001846121273331906934732330050223906331697801185086747126851607194043567523782024406357687948098970714252812344372620074646661952470231025353524257537890607758196986314150562011230441568063426625754794247622869551875441835173494625744619384529386475021286816422823380726515721578692950445779386170690665951555534782096393594622855197802600989924550418330607023860043798938530356016143675619557701998085247979925001662636707938183945893090579679354613925127820989608911756206713757347991066526959096134386671941407363270694412025762661396022002511969682553986364627984596715858280106608901740975738462736297779569626701897274573902072836931122127135993757446261376759778976976505644800821539077085647835791678094151656582724990999186781901825343492632806411070177991737064565738140725627926992174744275567834077393044227370007149099387426888395969913041799455969498700651843898503723604769897081990716925110889084214688393085475190889789748497070287730131284074569920543583980600419845964749477493804073424715168365461306580301549689634541114958011292140859302316547872192928152128035753988423980740024810912269627328189499366904741100411473061889665155162445301841851780671632748733869504706606122902887457442079667898225698397450074584541115172793923478719905008109518325611951569352750576463500697318550875786843574644903196111025325179297489051902605340446366465152840445642313420842997563383101480915216060813394552315437615153192240462592765008955817558759081671004308972266261629728579260350119399464783429159845294353403762115696126403404001140581403695191131355272888085849252162318342131237265597869332885683996803792975784857366420208646644724036289488455702722746550504533006072117693284294482207757678485545863060405337620014189832454910873832141170231004747045603161658446378897390969044917373823808042289462594074563402663007355599934877057241230835949638817110709514969644442287642955939696084753262696630519563056775468426355969991505531431003203897870416927455066244113392641305217112018860308504705867347877462214885313525399413769944976513139818371839124105745470237081880948648103182071076176776958038005828555764228825591470316279007518715341041255703253752440128665760000025943815156675386526411337658560222870963407209038348351360526768634340566301403751011187050033674866479778204085686564645729952262754638224398206535710922175971503133005834935641241745273255324279407343097508742373985796985941965514389875766450394129371146814663312809310992952455683624224306100304749571847829335807978857500488264861601277739596120333599107136866456420570012890335882027149413186304079076348630670098332927016692549536580678851973318896205296975618113350776416603237364333138460223286096812979868273725377021130618332623155235337919649890897468136042665057914279421196944272679600938435369287562794603919838238721433008673766661087509692859613145613879592014327714022173114896061004721890768853299802343075560694231299222141436169616965074632006351190968010253830007836511469914417597965795582189299952557959909684534313214103838972455593991578589854588563845301192723803041263551408348488175859948676505144630038399375333562828222587480229375814646956324304222630854090905595874817137526318609774595054695182853941440323878130572137985353143355576822417218645450072595518618942256474971066761878337397021470826648908509152984784951486934359014902286082824414669696525207425003897259787966141968942748798966772152641080965815545605014945082118408922695278288341007604779690774740651200083566673001179415309440453768980651111202666357024699154210281512151839309777310663429050780091115420529428037690061718309115931766299914490101208993030711041459726149115622820880693772658796303038515988730789125075594459131832878237471493186966122754305674799891089860419027317471012382189770438487726233428826722888970677073968893974577896325305865041705816045003274720017334177810274226966184022202003503347063813572805885383220196470677187980226155030612811001687643280472799505716515676885517629268287455792321629407106749596416924642815088356498811215144886838530697659201838219869470940802815981579025200330557606806974775739685673084326051924510917560424946074488362157991375112877810365037998653525875967815883429757899711990362259709195355015457899573506496744262471056243479554256368619370861075207584232903783249780485168638239325676212560668661129482241650366336867257881440007610083242565220423179497160179155265634252479256002782721392316230995489891701790406747254324294513826052289191959181058364015560728896434346715346410246455104771936316264661255876805948234133966487802014667429023787699808213170487707489038071400018988809489149603232639856072771215250880700998837727738812272770883344334283985723594457734760702910449238255492645817533660067358097537425619224101588537788827080649511839292344685586955974860752958568065924533323249468364697844949601652002133043650258910446708969471159736522054329468069121630417467249052238848138850141103819510559717930682037249255732504624262838931092945807656035472721330641029831716388669697722635521075120487771522919405163392839421973015728182519972511591282855824065989468797178285691937283296226755409214389300456923302770617146132278638665787383930245373860713327718838563698222311599790476785146056519277167464749273801835177745227680131153201204696314478409941223606804165853496305880210273210107759878224951591263533349563185475573753766525977194756441021413958692751086771369699061802162235267727443377976066171488689068874141453225579483509605387814747449282561285681929545926976354948703919104842979689429251231610624788800044108490677552854168858311728078948504373194317193363118579677159850424089475499453571572903560693455677838364217921368838741141888294388564310868554922461783568658501364289451898369795573269509666136629964201099420886302800477978566264082026226008978082381848623243325580327557347900957388213349398368248866472450172239503727698816897966108180585226716976451117865655220602041224137100091041409121482909601382513607975566317910382983213740960953789115592558268009053938422569546413027638175558186080984179203290274507231486297447256553895843587527358884849787186604462160249890976918846170311765798205519753405980127776729175958300266049908367543063891158633380519561308886845163289451801830552785897165501431356019005766056722406927602395936958443267003001977903532940761983900837823882450041803341540359602919014907065058062918066928757318044003689527659128768394318615064600496822844836852855965078407446295873283654048276310973542742549753098866130092022013532132144101429417845483344972053622186572193957350427714888817214789622126329038651153681820875498827773739049585916615119880225082021188842354234495988260898240306646482776386465583919475029050105858800310198433376738616035372627060678269838768667436614286404856037260747978737760428144649176408162139768964644973332899262167157056463066927009420216537286760171759851927686216373784041817630684534056928995107048649761703339600268231775515670069103486325359928484871796415502236940677280632568628618841706182202397881668005485688361710996110843026084705974532149384058798555726136960465573636396145996738515015839628992847516215868024912184055879777814304821220015671460580789273653705371919096403010821723462465857721030945048438615383297191945424867108987668402484946453384909061456041730552978846057741371308760694633221689031505391370466932179237411272615233080346922316738841970308402875413294283331500454476425367193405689344366764980895749908792619082681011001976148729766578055175778130888473793254498921500395683629891784139277589077685652959289017346360488232270550593413883485926023361720642067872952382248799331625629886377081551306463101392030134224206500516614792425151758424694723609086259578824871806354817682188118333899218069081382625427957638961543701613675760080658381683257019843858091184219664721226111746566591623265710747468328752663625551762894156550647438723774805953026897466417219202629772798899819253484997120655460233334300866660796671862155214232957691918403056095988847028918562460210466345919812835411056300984069677541150111909672605926316635094024438425083549021136375113451412687523427983276651485765831497457195150770849183679002682268102042608140061481574872745550398166889658553994020069432030605885199560292521884052922962375994267779455987780114565285312718539735310450704428125033908246773645895570410558189458359572717478605862265551244015731539521275203284222619279833870274606633108035805978201235979840503968758941024403789106237076325843283711926021157606049672078251517111906817011691872980350164276450303570012266047748952686173154056129839296708402752849761639686810091880876587766139121635719050099741096297218486254779935607082659702504282341722279531971548910565868474048669487581202772196637187596389458331115143925308628740147188119185344197049426229775060818303793373995442179172195943311452679335504222322389164520774996153277283356887361002229805956060807805500680874341398392446232639597045650154893060577141446827794127620563813754316115234650982346077543090333778141068998307968157778787301580187273138708924513127500935465730711978492906986379735268724776296711253562559395918590444325462560926501626370832885779637683809099947930797317449268679038992872627199584508221923464132980804881568925977317170797831759510868971775299749671481010795971841510834530449809207803875827689435722883794056099566304863501685090408642300882872811313195837201895669192499398163987478730270510908621271991370676422342782981187949954161558645960318755684838970333161226088304791177918336032258830289918277728914689241483429372057350226964161801857858970548899467156446238731262752529847967807579364541151013838604794721847843126289721046782313819277564369321889765988364793842492384862545162490364793191277042792850590333229230358860918358449337963976445997194669382294223189488237647142402015488005477975326650996792114089210770038275076281674102968688049765454661171072592240401880145013620073691393189508579836466341515845141964901770164643378451625087833445651593479628786146668033882393671898287598100729068677762870017594698896916092206322590313631648150513027275077956478400428515526783279230532423667417065018540165838378714797799485800872725078936669529870326822806535495564364585103086593054699316130026306450574071882903244187594735508667004257952843323778111996673956212499999722464131172054501767300553092388949842153277326888813132291104989400476851312312620346470764104828781531205172997848453393070174648353018814029887726647549856102052353473964827318344800181325170297753335268361253876824216105778363966590954282016139437343612958909829728596093418854983551297790538218741184035920419491626853080645519911280942526737003759288700348040049811178422624254185072257959458578819158076607519486597756412897415643402709664943007108116374628819287597379709146879920752712717175575650972930612774898843477566153467012904881200093238662217241577724475198396127746382480480565330348652704926509059518534498562206688919367845398151671181315414161092014025068810041163549659394367439603755601340447200845245473070047144740893831884706768436828253139230355905240458837328970791254960165435186219547941680136956464127029339124275024431238003948861109251760246585093193298902648035306586366109241785576791135912111028951683719875095356851445134499811373488307225982685526640554822905471196755321915270339462283347522051148976122964964166690891330789985312145233031938236546025754634297864101135675049145344928748160973307303540044971448895283646297569163173270498376771108812476724257471826461588426952536135070745514189584563622395977261134575671606433747707240277587824305590999102695123946488330719477113814681704858135388891616927072557230936468458257309922110876363129099545132316766976362502005019422826876479989300939686648753902289393019988352260517083617711347670090692979729649349520578630764177116982401488806290715052206220565143235702918972446436216468627082375306400314333377312883686717482569614093590203424077049261979282187376221828248328230441034312430701615875611002354095273523291849843670345583903295833553809158377216878374968051099500628076119710578732646858484716887659789225525847325795477068139283392905342123364748019127262018533145532944335379449027427473323459912911607479289256841671716951197645753841905818316651824019465528163440309966699754553671074338548665496625185731070106558237506142803326782859633226743110625902894393864341360950337049868269078095533046130174077567475442459436337442638190869419251062008158660484763492928467304027537444347942048575585813353185464294721904598541883843262318026158875474367032581220252002231398834077640847612082679699577214397820751468040548025871924449932555979223121155803829942699530242548556870175986964511361228968297951624704976771366563128732780188702423980648455769172383399191378897884368248927602191542813478926966887580413536158828725406098921106182450013838722910823038149248133907647761266836501138304330087479571526305187130273600450231668478726597583211629980386901129573771840477612723860168708281437790944077850367417726840496266893082177989220843186470184045770105638524084652965318942299712220802410565149643107946225344871175474045484380364651528368617668396316815146194497921064701633881698404784538227421964633251518136459609213743658410191795424326630176782265098950200703576318598710357163892570746402693650037467637760214680100666108602770612642493298619790345037026892509059104760647759980132467551659168955969657449027690137659154311157889392158401753396892120680434639213739808825730191425476961172376253966699429494923320374786862645848723482604647725805698917983687454629084777903814774925970549992728309571081191416990243864954487428450420284488913200247543561769367396647905947694018728090696852402061665324160686765154929695014344553234249383000918724813207021981503342090454658409661973902712849140666563346954861132963934937850441874309863795785161728673253558551308772310913915268962310014520524347738830865933838958898766879949957743013254517068156654897295182508618594564425881079329285671706290935966109047131400227843391385712484501221023844929697219266582322464790900581954635512427434473860037923969762831284780094626642662181670255275469229917094339732619074951352582816632365418734152265549537856541141209025465521729021637700450896758384223008300513642941350957466986244570862940984714470793436564141427917208940996364250554004339770846789716285243029099097280287816014058443427986030068175849942836913896164566930425784793911850059196213480451891942715112997530450783310139433202980834498332685999010762158577878454952639498854343318222867582055312194748126430312346923218404634343124966019533717070839998534448119629738990468568766440323643256032419723184952096568276820509573332515993325646065669886558921461051048067485128354380445695797295368502660149043067708150634226029976974161930665273949721896744312006708253611007804307025418742761755956478511979983900408129041095934195883841354985875125782642751693579811766777516511980840214008965041506436900512623070362959675771157591455384070248589467864676122945512151598888942619168963687916103463633796997562351277654947358168558897637106501455493570979633873901446363054734599277407791800333350001902952513404360540374456361148348826554518739597370062655558147515543309585661686486737527090647121395396148708396165078792621993854039108068982870347114359276525495335706701981075155664067992244349743453040247810036082137881345663232160152371017210736651657279557358796682076586313493767151288281465952314358517096506469053530489411145107830964329267490589877497809584049952919920011191056633943305473412853866085638561743840691850354669833828954721573462067226291562007873792488586937789269261753749162470076067863025387383751204874941356771210239762835188961877229392167961616351143193985349489409084769597356251972312540682847211626638360652808751609654418774913552423404288877309651207222068573935632729446553036526235529033661594177682175067993204769011278688406985993405045214036782516641359666090721125306595454272446934105638922331555611904680548455378692076866311371682503051508046696296254403727827677286553056881061508532700922467136831963220861175631903558663168864513964431293875773513338320916190766276747236489838534117463351500300940677510284117765555870339672517899885750727823374485506924894767722797089405250529813238385186606010168630509067327484449340299380923046117372821776911166071744112914328136717651941236975796437325090635788435932989287504962169938166120645843086444813758677361850677586853265088662502531744338409330885895058269969934713684152486664778660748347546847452720164257169418126306423660653911205759648018812772014529740369414811336676730485788080667500927960399134543888826558132425382674887018564354678968446973786475196809181799377775641412880332218826787978764769691173477401874857045199776264802173104545837509481661449139610260870074340926227788213162497492567772930721042381292194671768795746854475758101010520936309117203639643681734546975717571954526854457146794829275223159605869915598919973902265278829269584237677833026635025634068108532932574522443215229413494027847929018306040329074397811954855677441310681336306594255001805355037297775470557454725042243051423629901982877445435162999504361404792755384327479861636062030661037365378977867212550086772961461329900448365820582810004169230651553721110162084237964122483111870437686160083108409269642024709939265755189404838560150178455135004493275408923729614987809639094430943429565225463552112758463630448387518541268426543222728596583487608504367049003708712655901295888071794986578859278466595260206125192201473518704292731257643477034275607709298655501348393565700558343959503295899886668688103199974020164184419766691389976474640431186962258417844750758415469954308767962913145963088967367150230400817678884536950686534049081267263505530018373010964486676859661636344504552677606129388682868135664667535983400924253134865274632790304968339428194397142979136124170952029480534707934454742483120435723236866233532919071511954625000997479858850984020046310127123023363553011376107960595368725262483652047603404402026352890573874989344481389295331224512085257472852505753506360414165036626923380633382646101672473321771588983921562602151893595444906995280365318901976017088898344901566642278548569346788891739102141644433483943033990811267581317640782580320494770511232937694106639334140959077281179631775489511386433547028385031303609855965133769074752251348945721877768858188462595754034751791031189131599417288635906773390706605727245316462756315602541683088370155039959930054349000218665122709259127565351052974937093647483612189421143596750225887226647018163897244278350799615772596387313532295398051986695849248030195795482740321762150979246328315520236640484552757697912554806342479143541048479466062851878273313207261415696308434928052827427763426229554626446083938515533399782388121447433548143382590168615594305786249118199525540089705282184924235703348297919094332608005692427529973663150827309958163770774576948911077854717829247836610389957497849788121805294533901239178799632908955870471409442448650051933127229657703086776935718434799493624418079463457428409840889485731035135896625497737199388453858363241228350321538175863265668194725125540883805691577340008656016659531252498936997652647512799476714515032584206165846401202856301111238152005230552353031231327528208592778349596139394818090773448793206067469174428823349040299590189392332734982525461535315576897898513649061505877413864497675684608301281147481070947403412697447689646623171600569564620599858370970132332422170103787306915776489172043612219732865568266421766504300716907508618280092080662294661542205955176770258550222915471283717508513691488194601032028058488206274903752053628757278457945520227292960737997533062193871605723183542679743056041255812441026491381499038334972566456736019155325277464121747747856994454438988300969509122508826230832081292614334778734687285560175757798831641827415850614589663244858698989303636705531513211826749696881687031094386861334447716355394992384447212644097825244397167569049347698622506136857874899738065260564923751178192171216445896066734566283311361164598394301912769444452589880507362246833926437064282770190950389464041261043605171622559105687253606202291072758477975780484658378990887932148744621937792682754379376858094353273003733020720427887836886294343831875053625502857647543711654968789865282310027433679538705330965781399236522269421029815005984134434503343300543691984686538325138782482777541546139325075707502826276010921614508218681370768427562426901840346029828324590634249405217231673192364869913783537759093181159674049826038059142479392400827370024874360161104404978937263990876793427700913020632340218760136029540107716801414236752658475656388357043452330634690027689262216941206628239021774196626076878024649942706178865748802922512974021438283138944721113921261632983215732756567307789186119027754115573998845745386395279710571599134283378124037364036884575332734650110391715477310646325070704539048625473416800801108722404959717542969527281816989243031521141479936794258143169707956440133847581198919508488845234441348565041066196188745806239851304984944445742264805569644233528075110114330905397495574433070181777704469123874883603349178614314813869202645055928757843763575470805192430169401379566707910573616425982621767425129681309818186745298639793403958434302501506344591213758099890695064134378702235880174578620361091127946684495585490942159641400760111784448008203587005997839428373437460559315134781365521385591963486611655557279574700791607505745165717971096311602726269590314981201376673979428680391999621655601511022614329907272468931165402727891765778756071348323257086710159211651679017419406440353477905759675078665423957620471996728476326783333777582941927538878925028800716339779430377645989791441765877222559885833864847392101598791456205418500395768691747511096008338755833988270683010970978341259195700276876824041309846788649173807587273319304429085035992252660392656302643647321918787168502074900277368348225483165251449779957873604464944993311890874982859838034178960120655546716700962150501686913392975333731211132421670961906852342473563942829045349171190342687887975995762803186141316028212125593207945340838625644557084777364721097810597519959748194612226807610762772305957581761653637569379099818696579966474403505713411392595776316408476118587549409518527637069719709733639281594636679898073904877883067598824613242303990075063530461167808197436975156389399252438324218550489363909738408286865666801275760689093535279091503279582255262407872828222948781967258119773826287211978494654357330514876214540666146909875445541649576244565394498811042164932067280009999243348005672060630130149810438982179982583739512937976909343757678998075864741039849100626953882505052496111116831391747827102197123598745299851011249176822428401398333364554897609084804767531689745277898462192481931659466673386414243129543156405974809571012517668823871201520926731160466210602658858100359804008577549835666050887216862181066210212500802344420901789171446877844583828631451876016543104106402540983617305772967986039138962123990188240923742224941541084474418288178873610639574827134819377541456404517893144580969104325849606917316021034177488767135117866718612717394817014845094977220815421556477136332719302171464549758838646836896753550150224918292747849316347638561009859850363764304890313370369644719388708994357222377068557949072804501609242802204737765073085982244372066881664564534513942861326965792166088340842144873133920545560976136742460291928118265924654387997590703067372952634261020219817220433731529865179164372657058415905242989374126514964394878678210485082628590752054444061047430005363042223679302552476542494529748438800121038163488863981164770493186364225540322103198555674545164508601353733173266720453179068948682440183471250038943305553228589458171654797181893900428799785499270195638960746132557902048286820880170737145705255284227715744203085506272985634293164666335508394261075801124108145004942826067458146222836243223745238022914873377506281327869860332212011331795296672655390116304454016448494052157229768681199593723117022326033896807469543425999133904020744165739369525357459642799088188772538778552051754666119146575118084381968008073823451156249129344396647379800107365166682803283965467627507135513176427760483309694564064756955729010754760723320754004911166181566439984079433033519161400858858826798187003557712267239502802511150724433115785214559068628627448249798772402371669896209210581576754651578665524796754293948718183662600832754378689481245161375957295208592244856913960132644946689618247088899120435298705356364666424867588224352451038090298172323260557860047190390362742356841580009189416804319877105052829092846609020194693804706338405736942495860075700145802539651710438315219893362063735983440284404964749582590816758798544586403549930731324239363442560641925218805197691737321512395107838881610543326584082322030291379736871912687819571002540684131926358070316964522071927728528687075156050179558616206090953054162989837691085826981247107519209690667977960401412606392478131739249516901428679600659329828873522026199679496370953108081079713780565340008983244891031403412086670681551200909772491264905182791231265223973149464958430567647940877850727828186661783279079868602227151323160248197516669787095812596841945011982166108555747323824865225667165780592871403019351218711783144048095782004336111520695607871972635491367811447556152445348890112169072016277326922471029005257660827758413616792296874014006676960759827395840221206079571365174675604236958827387537089117845221117561606902065408763668549749172671072583118604234746745891295772949342517054083541442683617039843576589213879080874323035673447810141695112970352625441054081677506893917820105521072246809751454537446970852094955950535998425646666708410139481570549300244855420633725754039651684509625656366471874875579536058216181091717839856788771803018959714938077316864068026054428708285712481770046594904082275050027903015157635600793489329243643174313258875735767525764858377140355128744451468457611731055497172438963877120339081943961417225637802959383461061640512957755555148243603256949934667502595520472721271804635690771099863675818377311876285397680474938396759699525737899481346609533344902501668676284258544695915906528083538772376041427489920759665104710172076232896357804815278810716233135540379886231739089589416552566311236354639257998614364502471632092959363594025865494195772388290616494825086948750513889627607529340837156811872462767773786622756750882346796785524485266615053416511157032107799100826059326639328027336634206892684258946283040387866277318274252404407008115359392992531794976193064687086815106988125096370313192229470491671559798796706721666362387640773332471151449541264972430916114792346434951482284538689080156593764620573902004873257611325538845771855305468698628223605239494505632301885125372790061116652590185296522643848996779354451664829403907516832736866682173184496772434598815252261480823632982202005939226777782182201695880251660324623125305595980990041914906501745846907628939527166927361822879485913308341297537944471857518474854460375757507329483591306679087744317766871424028908135215469667085290172662988165118861810229620433872773546322620454912448094394154538234421548850827652143477824127719111049099024447750248586660632004061550304345347746757063537846691937519994413121298535600802346864331013775364941564716522770764855878027585034586078105881834201040907243722058819468665909729328499467882438382291473248400742449456945157612661653785415196713009882625631562573819866494084934460387803814385251289314339853070619119690605111882364404694804983466504158971822897060511552489572174437810553277291781384505177930974746915996727428888088983164361230245577539877874815289676274163459617330154810539944605166920247542815758503476574511974355040090737772429519278034662566846961741264989109236417700542716083545876790404546333932825010945889665345962730600648205072076585551588098707009541039657458336938727801254950706353454580403976286828173987560764297348313749828777497717057601064867893751542305979327757039171177506087364627464172274711986467037580988296303056599890389410199668997329497830883997814720147800674415917039244862620274326727169616637707977447528418039919819987052722481230687919974068762898898049470593670922190001399406059243163843837149873979889775006443343676835616315063218945439883648379519703427235004313540724705196804544350551829388922583979590732033145906399889432717321056575971988623202618419916802460209933032780181940471263765916941741337858663983495109994516711573834051351269078242084174771013719004943484873454857949865927924754097339860030121726677914801655902846642708982570529807708353821413838508496903132103510413738988746974191040080411061889331487940825616890156942321782796763271419026480426163249815526803995352874781684136662242436688321359416328955722039914065282628546032571923439761355930639322460940878056709152552136351630214855359889230923057677023359913873184370376280642857363782299996545673868620074371605651040117137974496899963260882738099463374059210988470669877022530888503352480405980425742968524252832148411827847203210404553473723856274291491512132094142868403810308002902901294124062971331578757111312919213066438974843766132325408371115265726413087237764587689865816676957793062934717151652758686169730037906052575415875501420900789219378014450027217029423861699536226503785104149269366089650732582379171334321872142026014685394251286019893175787858946525548503906059513323394890844631565146028916872834562323065876937548346729438891791906814207025197822348783288526407503062404860424097844211363577052769476993481385442956228170983680866452184072908712510653030501080141999086114517126006020232258309285671352343951237497302076683871532154565477738091190288259577956232908292192534758178034399499842059618289708572571878810751979335048514988832681791806423886730047352495689998807928742862472824888532920511752508871229449902386410927409712110986494256809392723423167147240723891588215401700609968772834601518559114421876533754175411965450498325058444780630085633214814806048721870563172133537575410123464874281821517014168037946220074610820784260505740695432782896084680618348386633058038917713798818682502125605615974704677290464956805144580320210882401391531176075870972021335608057254440461231425433991938006683311981142051078990016406621644387892944339093996901667690435049867317694567631363563372020151938912567830609905816148559529754363861979673367211523478046303717533503393657529121722189582567686583470713982152617198545402182606194575101910642084948703896752037595703209752576019766839077844898204627173894132074226075673636586426239169294594586056112804453731760584505688108805952920332471655282309255153470564788874015103303382540660787696181786640838404174018791412809631891262664271115560368848927483020651381234352939624936305224527115146427912348608775818334506661724789320792496762574129680191024062391935501684884319659400823967832337154962709621770541388101253475144625478679029219639004894260832447605506361808103474514072010783767251313273209616636883362248567814094205123077340404798499817571548452242165929499715302669539765242889716262246031875523689270330977661009914931350898971829044592227837087661975791044190583105431170341271130094425254803735397212970435087296958967918736761588392801498027751687642029424377349899405746999007508493537248702168786127190612031686995635216793372122037020392420602527215081049623090964986523379609175481695608067932974764078170143044850926938846644673441040252446401208194873613253656950371077448144433547966742699878954193712742447881910909353837756028024083512420481896794583987499541885792748793235696022454009501388869500405678065180252943168213641447618651687503442102681544118293752757160026655487153886606444248384178493255498873104987514072578737121865062011857114439765442067766174233892449221546439736542309434568398054631612052133633768158391475315837510582924639193462980533914673739602318622366137285295608767825190048014426716778648744490454189726518916086898199828645664865024609916963265750126526107194314005118917295547980464940859172155825963110823066020494005526884413962191725311779315276171044723631019482866969374757824678014709177076982230921166097571734036715779230876468374795760260533185642425192622010336924005541969668172684959314824929726064797422205383865196478062694083211798753701843006452958563473821117207644376711959852135223527997063689971858184151396807198311637965727998128713837569125558055911021932440867948558407874927884211668189411825860059750324701456655637036899694915672456134348895527013301295073989578310859369709406789237116006035921720716303159566629924010484323387868607292496643031699770033107087170702273162373128278809856408531957322842550876907880836095587462032680633525808040165001022735508773321725721119653639702065780701712461844037091317287807036694402930618189576407447242480543514952505069909722053925725955907566452399237723265758069922765916144237066469899168914949753962321058903879169012259799129458309304773126514578074070362293844546975523913318465048433904148028106859354016794482779611207138588511150579332710966534859555211652818332210927958626195365269536878980253321492159669445745217278315996846276487200087632324494615207726281327825790628177257235166118958470531549879498713946804625071774225854671736576739490156681557819427396937506705923127307816201391604944356254987652379111947962521500008876105383865992259399739363247755359200665319762925060913784104600064205973342960131179443641645160870872018757082307243151065333717208036915078655924891671870768593987327033808231930982552625514757566860685887353973861142560151804176416920677536154199532329943497218656683147593499771553408797727021850840549583655361575424798631957154892101382514235645532605280863649057947403227430620152228691152886418770813837875913248782825534133101285033938081613854763594528869467373820584373391038833878050506962433003328811013783152440477908741195703451596703772370908352632016981797960085376322636029735081958971198441981207521037986295288913749512329513853745081099590315206755801861747244153292264002200430719784412935125516191448189966130752437987033887668423836160454589437207921331529229861782637642355345946059159563022561865557027807618428381163216362979347948993224185559428970124075592826147948893802180245037671382763136831258018632198434788846655502067624909702904918433945799459251556556453497694173616912293554045044846297944700428553454326390844264032741996758202549159951090710944539581255757708739510507165118680377396889329328207043402141514617743143362028873681154696414427560168515377138327892255304662994455771407578655808753421575484348368255538578765876313192320501322038754312495380051893416693503614573611109069604945043951206181978080743969435698856757151130501718162319118441651723511082960245762653653664871948978820607045986368999816985621091137693294561867851305816184498594475966470524511787079622151979697639299482438157271151474271540092797248859719399370854515401893243546992220276487117014817184705546575248752334991368622973981752473980287826247228333682360235690996190018179673566242988052094122635012731550279767945790803891305703744341042888233717783421993025457591269475701556858791032345701733164145831762933726675556981367306848270296026940107506851716346446509445647853904115989008745484058933075296899871112045740170915380506014969220996426190228390537141937500808542917348828927771442218906892638267637228922200073836533401155629966004411438669581879172322617220233496941510474156474089368170410833618492766194855085524413886109064154797121217322542521810551666613070129749319655465753223323556469325232377149090610096974679518285922012337517333293647335056285996406869775836623622554868696615261193643496140833255333163816315967453008816761886236082892982707018338914742639293007997465112610975354832123015278879001187279213176484917486344994474196326755391084978395252474228473908016716119535901607884384142681717686167903394932787601472157343772832444998009021099410521490055962209023360337212625325121004394203781106515918418733963608891997612352041981020269655024008321461820515569107158762233169825472041929065309691694056823866179019616513879783456712041511816298638098507118614031036607719479758014445820482389788425203128813845960959511511442068123280131700663632973891478168584562278982781084770008533270296311610146499010948339857593909778646946463450941223286756402724672147409197639664167558298953464888780481308811774765602495845673375198368624038627860827638563672553668640608735612771344745980594258406922922999384189111881375010348720585832285559530503652564690154056350428969571647083506801023113140317008579398305217054955840475632133907502750361889509536216700466616221945210457869502369778089238465465866331576984086325755286598208130464602719219524214971957973337774462162293507707399326840672947243416204268735017693735851158035535339119415711566424441855504523210968757432914969250118457361489249059767601884154536210150049694276590948341657320695293890972700760865358897949371899897269007554098646433740594069190186359635033385062536615776493846390239689761721999665447158213128699482384684404540418094207036554202150737076275376371050418524813019149967001803266917314273210326325522740305961426789570597665777557764327690830179453675593518553830476136287975648531387226171904709970321749852796992145324905427227667721953837438491255465531621152503916128158746703607120119932168492557413621689482854538279718508925325529450953944020495427769402276306733407832676457852990775994767763729799858418204431331605740307491363715314126779033532212494845191693072602747897127386805121056803507695093056469762770588894154584439953239285866138413292970094847202071853129392891606113607314443766415666906257720224018847453968653648694011734059322975756820293860317262999710339354677888186481787363116907593649083929253907651702397624766029453739876710020835589125146915223345481292557669393143032769385159667544338656747662107931362280640809184981537501162304273627104801694848722649376111833562555777663690622457252434109296703129205497667548938630911166836688759224286576656036817221814966098979961344443440970087153841032948877716446287736398601072502021240566326363086511473334779511442593617007223708598065781688670492149299347610097191237681293932673165930872707068058825446709640504683216136587313487474871812122120338574179985848525202980149391346708580329588697459681745743487754903003488239244294165406383794183469345529341549928369850771079404678585954605573487581461856354084687143341414429868292321762859962188624314094643759689126538148155233013487822601910038296208627693840963519230393613702793781486013886094641805581590389115728203321750652805088710998563477136643858483084747312690731475828351526123032780471506453681237255462222118856804000322280893598587621815949769687713782328242862026818228548342011588489439357208663387958414407512137353747987123068973463906502184507030964906139034963977435613579262603701956686757812063959524042687633025292185896665720864317781399901379686187363847696786960850178598428613378695494360312540882501986532907230827536671727598782187661895135208271324682926994312415215563053541922635749574599172379295586163847496278777574107397116263615967662709390360161147876672023356280991130700675509156709199067603408027090716699742310957189116200626657215609240032538245094788340697209419535883918477147166352625864272202971910077086245904205681902973526527614537563851927890628001800346972839976811704004672699861272722698819782381729770567437297770409911528588931813249125416051190297271725298849648352027349546638774363252492667641384816983117955917527400062578290435495748003544775911497485441592642051178949641789328903701039750199262373245773366117464824014928855251794475802776353362434736822681810541299992123866558371796764221196580107254251206603253985542566002728534101753546761884269566468715857806914213199680421855897863293879885587994646688828399201905092922989593485015128546557058458190272369922481319578754536592014529573376852307563987943573586681885284520280212992813658599979916151137935776336169377723779465126316175587788216380953932846757964901099389993445307417247322973082331428167493849044955765477631591101497924085448292803666505052599273864602078092934879844589287248517443819159850311772032927542482948549105978462986646647451527767680187267616346465583629008757720187170938993111506118306117840999626828564562699614160177105209890449578755483342813582844861325567214914631579375339630850460642991613889885137448608693636345309857776244974572301104330798744447637977235471816304310542797850042694532496896898133913718417947432912287182364690962613998502544936397695672044482608581902368564832820327703095311994645438422611810265227178891705656919638199408227405676656764762606489052613867957329008936387432779273744296388880744350854376427008777368480165740669742942846877827000237687969953685836682542160333873933115497399319199132778542763507064271029525374013364116456363478135492811324327764914284871465504614861155388102950955494152034572071280286880576840565911970901180612177966960368518390706921937470096477350805161248378980624503849936214004090176978919200675375695612402427499954763492973654972839445457549270161151229364984854555940830584369259282060018146279471411031064499562467249593268331589783725099652868470222292876263290078974214984140095026658094873645178040600821872526717432997933124896195442582722125682874605377669797642137484926580854102258017491292458245439968878681559549302008362412260876228013881074391883333069546642068221138822729801137653326847714990616975550123073440430480529100782819515210229286337345012545634034016482422016124277344689697067529516094592390642036779933678545449750817275238905502185957342505685198121849470466393335370347577054381747123657797520135971877327141607565520171265004782841986070651508996451570951132235976657954051065700833126093493741662123850652898633140175065355121940267698357410575069148716859443084847544282854587015180144184890332563742595596226233890469345039241192426359454896765754200340655635402470643100545927359799108660372948338400010989462728671327297272860769984867922829854426690121383702870384381349437741843406876358411994947004535068353296947441702292843289473886181799412405750630123221516471316026990387934843984265385027203019872463984528766359704063097208482497042127185636185430470836568514626830767798836111395191711556956100925566278109045621852401821173263519572891361140023524741464509593542604806114077104074887711838287750742862863749640442975589307782621735210102497218873588426356507001881423177308108891914230996469449542734030101714871509755042771796966505697313927169783078779236930475726581144112450100398872645147244233229183456777573018794484609697722797010431696757412653883558386995587509726379785227417880356214579127981392750477306948879724340180955733512403997990852134716694257041156243646672745022872101781724694573461859714395923426994445281107726156192239749580117857991567751657976632466570679108096826553457708250348439132098755265015917890986141885056679445479244314543063825595787020944656132073283733199284495078212437998682175230195383175916116385185583541600925588283825197257679005561283147409062809125948529302191092600978869719576988951365484430896910815717870982520214033558433882356606324448449180068188635637408863691388068400925282416896179694958659968912912560211644689520936454237531340487351847221396943897546822368939419116918812384059755294153858929197782798862453820917412505306099219637606642160092890178527738286323329221177933530329804100996745674667257999168410786651922823432135986306281404257696992373432355692253347946042767584624350387383580190325994633177587107899305055255156716872962621980638330001083938791176133482668307461782660488993492081359585734367656690951565458927532601220782612034689213988403671772504537026895332434732862282700193952004218719216123694064125531579138932052315397558640998888878713907818164164882897282924905418460138964057673399597043098280364670474383322534160582031704077369399292520372056312088254876031595323587805166965766538004541549887663282517208891126596721804525628829148301080564041338093238899167096198719564033958439983591050292257884352942910483172811250665837277616307603067057611944653369601563387676511718260812533395304899140477903433284409888902098237271156889381810001099401124747876615112762940608208713787003104250529489933745042644816283711955779918881977003295055033423567897797603376293818051680973559521418030659177874950450511772304384587578740241219959907089635834488339647161037046234547759884281576288021173594168969993167985388055175811337315462532158212004588554999204865575241375589695380684875057232739263776321296520392417179919304284932150426357952693032119485691701258814198171296660025282277583465669488984393818802067597653760571553728214198835868040807273421372236518484240981780242164644479381550934065656639173002917197390496932175628740891439627854274766516979709847426639596076818780186213382263078042864416043915091975010324722200886692566927947617100292143979474303849940819348701519968445859754353477726948370526895434449408005409433378201016433395881993822883287109341713243206570052743055641872932305316765952531223535539607246026316563507700201955940787671942982522476992782939638018662998265481778848905790473121497495947773729116078000297252503409338299023206035705248619869516922078887998709022689726172833040627395782734990073783710690694485708172699698117185926790770519734928280109301148241845891749208096428990581639852136899802643080131572925136426289707119651624649159828020175348645437202181029049626646178794431398920285764699012661100936950764972112833187148878177919899323400961689072801278818158705321241068727618800411752051534116536882183354129024839456929043451107102722740792140927618996203090301182201660612690342449921641974048196772605727351374786225055979667450357073329438069925296062672616990192760289661791963216338540171344886725400740097175277386322011821780413771668855290506640030349881820775150672856771132403037343278692451445697728357774931773780640415431068681621998649366078776405720282561635004178209014945328228599161507863196469719561534724230741400770214174896840802853688362244595904835645982839984865708194183039093607711769543325073010574055295273538714303954185796608302366547437979735960661996949966423535885642711606064863137950756044529018402827533289265930882589666608795636130942646688968823691226082558353970983984297874997203590495019722408783961702811755115048059787446547520333178867435361645073427425527413587286918135108589144780574223991288345905428221704736879661169523492013413936234352926430867374680573968031294343780760605114604924565139388514652469392087784442736078764137119146214463157835484688757379415597863822726392082974243039884494755907256185146428754024472493822253608561705798245674063152485335289372918221877415715828955508647041986365574138506951046032631068482653945934482700169590484463441575595300601165093099888116857158381610586898931937035278648854345387438250208927481011201207263254364450878496961036223407612198705466302113271523523692185683778079150473310912619957510228062944520136315028126297482146883230047639257253158219176545147425317498148704913899766305359149182193675906137253235866800214800962282922486026819681331629235100617407030338987339421862055368637531930255009364180568874434176270034640927675379128806975649607983822943964020916505736316909031969255628483284573300214640593383215065187735312133672165550402409907950721257833836971114051567423531528385081761767642888399825473430121768603228970087074213846960833153598327506194439545581791264249571759965671675142039757179605326751378057081911611211971457935935581377307177516899300477981101105542923480380483113662400449520697197387592919749809854214258495078328672606048069972084298212810684142012614726519941309303046079636492785936057260296828573807554408011625636334677677280791888837154825867128124822097711721073770818075181916267606574043210378434820684781679555437710587476570358233601188336375484071434311811022132283653124019019637680929936721414320041820920179249454225461639369579859685999886758296919467019166069038086923558598006265048166673371662021998681941006980308982935927683508526735711457739125303996366426849745366326057728755720462947939560898476907684963767012938242839758693938972278707416244895013406892627972813065043441251389791447538518043433182906906453124718036643742539882720788454008449433439753825446766139493958153420309635297695300834130004957069939513613183270765832938920568813765589611104672418223700158314437051418511083325815959096442130667761199060161772240957895507648132566371599892477988071097568242203910697845790303965916156971225668945639112529625537629685461651003146723579353625579803925926856151658970404923273608210011070672329107669839899274215783153680073260316693937122280535753695498986663995761185503140943740661120504155929577467709125894281232463167144722146638286109560086469701329066530275765394525469715835233520821966829522017418585034169593223446265864918272882493589789732630866014272101689761072095758513228731687712037809006165886035665998285708425095885951706395555105614962329763079024071328198925321037092252294332643013338677340334193193272912485638231870941480195913844073032529170110232325179171646278425873831130008577152889395088290278445859304817316802653548874383082912220357557867138861480707491083449467120608091624522142252385657431767163188160587756030621583594156985735895408279780039114567968300350201024522230471402687117793610781958801558223758789866218323090154842260013888403583091564957856807881542985342082940715337830216608062293111512297590509244371166964301965769472564372519982882195564888552484976181778335442918356491767582003400570031612934654312858431329622104244821477983382868065103871208973041059037055803786413804094027900924170992704897842256914696501915487960541119929727465491048448179931088260580476688354008581110293099863920480156176072492259605929637781542451743503422060661322445141839442093040610250767711022000569166308907651060229548412842098348054385285915995178101175455580830391683436249684792014697993969518569359476492677189871570379956773111534254710521678063699997952071956564452775084837860941254630274857411350191380302410090520081159112641551985987323876376788136993126776096901553365837374695341408186065778047513487006584207074440237729015923717285439259175760369728575709165158089990007864425456409960973009492677147962070138470975912892799846274731943688083463842676525427223386464902223380823699459820642545569700894044314469453492653435968781002379431551517318217714646918553336607395110291754047339763352299718161081159445515350699694404382047268395528932784693811857668786730724705407165261979812630163783229195998731378149671691718353271383507607107126291301253737753456998454206358369216187013086994465112773719490446853626888547721299325644346762253904173832422509829111120828902628372701548221183794214288324492079413611856390964511841319448715614177008245788735087023809327304167579741359553060262859026867093162016633666335626604130854298326639094453828279113148993126133524079653125030257517418774597821929420956091386296852611539505539300173755032648720197831888044055208611210757898178544246938470198643911887617399087651195168384955924515666652953948344644784350376236447199543321433560127073030538661649114410045382680500847416890575978335560792774895816180170862957041334594914564290576989816579874562355021116660566238006241701413099194444476215591353646610422079366047289362993621016934347301240785854407428371770096332269998701220787650851606662114435258551971605099344558156223669788542810997999156276088610122731281654743355016616638279082278826670840142363260350519291266157453933586649690672281821747968408581932686396950058497562228552814000964959443478780990191970313457194918343802975086181391898354609537377165638900532626670301999920234761992665289881297295706516571876587072490412111772204995437619441339412480429440489856168164478107078236082446609722958416025890222246215387471245475514856110128122346240767003587931461838910425835980913574675263219665051722034126850701899615375610626082818054045840241887633545731459076799274566953436984945827331269576355150207758129547503186184220737718072463716810271106226907508691041147514037937405863048117586512576813469228907900283809292902852445068240482021057523867652045647645194103341727195422967730619474547585342952692494011468846348386728951018090414812545307973999356687453200246733152684041108801874482636823506013073667254624549836234051675043408473720623701138466988992208210112606611551134044668742047051240269853275442686815454236955855931096519048220046024578592299732040059929631691691882145249422931627098719484790169885980480050670006359306365155836204663651775971378370958862522512336633269853138387745635680113826364473410009463414476670105315603776490423552511769834978327709430579602305302858464687970816361401203106652856647824475260988503380065535803501316943792693322704847667139867275867265069746111309865474871383532846554988782001856841939239467520436574597768277953769181731442026167537134326196250375134574304464111041663476463529165192295282085297421971275811078520802874548048116600729381748310446449564632213669546779151013622769267614519607807887466638845101054340283116044310574539362886940865356759424958443452652497749626518805481400540434349810386891970734064706024195730537779751958053070637954379619016033306420274706011409357249014294292967421678056369750677506631698951405408868919274553352446078008009585425180968736613459996932076991978913826157734139454968958200397776870063374810894753690995451585095836938168313831664308587461279971406781553158251091178724857799943143588285532910918780268193376421511840388328193777026287539590911130817839194909950939422321088841696386928619353053097271758585024330366391171396792584342453844368402369660609935178254008780355681299343381363351866600340458831502764582487263433959807185999454986168727311317691598269457868303227727412159687739796571670086891708087407610077902950765514633626787974239996059217393004247277398429003872186855542523267363795150763021451091749273486525173907693618152117117652452277324784744340803002036840851055531628446736377675944014047382379880827455539057327601051758115436748685758948499006576873806924919330863294210335911996986587873493806813228166356001302334427631172642909766772023086118156248669608360419254556130455495349566009607465366795459010821420391184215484876508870998945628728617318147097514331364030313969666526919062299143039746467609418842099831229174017092092015820954444705329751628369242574007490026573930266333038656161186060792962515533907624006874495538696947446152311226356296382746697784695028795455317918230066469045553763133759192643978855462955964989255478547096371607670730017789411249859020736668425721842445085858503275764009335925378939630394488805424006783310016058966364437951043040026225522037843994906056873226697592174173240010805803407044239533025081083271675231079318513993370609572382012636890745460656809990007675969730687609352413882547202153822487673096919963868478332142753388786474988563724928544315553134353127638449977831782484337182085420960728909543762234286879944635455696105348489432084013308188337318717503993849940264133228801791116062447102956813716227458860129272388881692127198898588960357798277352593452423167133178432742390495984629503543728055509991985005203818251367589891324488508264449723990089424241118378181521008682775580034496426705506164246898173146552834378500529318561134313631237915377288564637876558441751063727251403138257968675577956351611584647547232018489248714030404251677221103824593787236276061613208034125704598043762791430126059952546966243277791794150759309975564650770654826332425489178656627761204191450593306644908447111392705502723402958535098386376708005789779392050558857539431912602539617975560523572784047635786779051084198106881833081749207119989156149759683085394268721187608922762469433206621271471042506105076121292583552456642644062996322712949098889758004955332106929625173941764386530498136648083207926368415329105667553148943596745746917197280653332665477741592958446874935585829926417926826560532221745763089192257544051905847594359728074494662430399826073082548484243857066633240620542274498285528818744286034074191893197845877111542298636624042409362461089830891342189226647380347875817111979682269921903571379858392643507835606501032596123574202039062642407896586781679542992262266744949908933608742035942075924452083283266060828441022080197308448061556886888214657243090308686861275789513529197275110407114720001693896862047011130174177857488251749348825746009369983751603838478527179224933074812936809873499737757218065871863901553162739583420532659386092790049718358548848245022025216717993953370227310144775777892359164155499487480561417293122605101016325564438829622094286102289338546424584276420398300772912237510937220841901067299092886440235765649216755977085503841714177051623542798234790936473182382413969425354270561701413158743115927436526558229352068009971167123834203527586593849105782755436843538504854051348721891714245708164205434425162131771494272335815599713238746565100403666903300951056332743375860712440292270092888450887875939114268841186316165149630983567525216682393737446060978047327538455000058275590353749654626836586427133601170344796478970038311279817211903858437213910754700528999153647546402260000726805250148585838456536334144941816324749749892732265429947000510666850371689753241278649738663813923588189373929486933192701260877673076308936681928797972087691840635541062526602034208979198861708604538772435547455764166544219182800849653543454131594443808345335374760511061219908858835694120721717036098238259934758743807548024059196175959743518606396313955921420984757279416303042775377322003832363494802690654197964451733517657494055786377676780596780165138493325013118818306783716170489965787334076647887185934578715563415212197160606928329302021961951312257598887486179613311228022511939467172041563578233790092847626644671253037976454338724937423541482880797965211638228881073383058558467453075862578422369080641491775227186471611180453628947671268318625023589836955003805738050421220355532903900072615450288707215750659046089183798880586006682579814941257937000591942527465336351036875652364990519162629758692058696471529016246472618830712606020539314753361340111943976675992309571616895557937148408765374886105177859514742863874480080634190845275029898392350001261519621531489658784458169837319957376630726790269221681234079422142238114362247867708827603255130454793101722809611161332562496822178207460619470454497902222061580073040379062219203242416598439813849731301783000386733855644194915936956283073359704318908408610786816443954078239438050602844857239644236046483027917272621469909773958420291421871693906692387713770016849797020958721577626614247774086584420867132998219338013455934596224605786857134955575746196593264667450464226631007901047751819258256649411042046548536351070954596747536848099560536071290467955644530891279725150941752545707898335593063580156420691499208509437139065797726238837629794529446405201735590466206967180844454624031192719113823722247922436628186632510425797791172237610875509002629021182212563555594991163482669417114115549831294341773786769955304644047945232129722874432835658453655030382855363023243020110228678957378158167757163510963591905418630565419485246316515898387724374901659800057724559980284128778511133465770573166316538472743013254569009411970006235107365172166622959621701640174787705729393725524804651449562590738892623932707611526912636616789399663118172864184096382526600614341895731873976242178390603751755751238926541864946744604018108911812491424275884881590015621982763994245532042913421641170777943141298063605706270856001182347859880172545804637350618703911662684591600721020744499614117625197322904575098668316616296047408463379774092462544930947103585617752539953262382450356752526629848561991407677571003526090990233432381145984918495551531257109027414519995764118150577199012494586749498555577704895945922449649117836975191261231850963081794890545997791975476020879915374428139062524306808861566392162061237384530450656201740385174789956207852432011673586121194110975149334844831827449029372510364146796123864129926776185677782457078513021515414258469705001934141615141274457916243398837240208746470811719424819479175287889106570043533168941243083966129203151284476593691623663601350392323900775676658037550564945992408426068085808695332283276905487217822206846475525065011414006360759187203534770037042129530819058561644785247773497822853954649458520848325697276642113661779914689924355859616677899623595916941101825139726394510201495542933891841484165090719040673971528320582444303604630472289322897985683550727474606823004504115065731792007975570472596497017944476273280482513902364347834378416349830718210487410558912834991196526306264613644695796842709582601486000428330918920540078460768191126868536740278055105140763066014979215100423719261208508509556072639884090571705470481537160665335117938720803680417659000261333513569743175173358915777600767638638002166348383691342874595898653754434584832932717539685441737879463926675793166318001416898385706347889196389138531876804602739098782843991502765084393953217635739045569887520293665470573862536587371042541542392406025947269635194291152292992057013955142487291545800024473394411252214815977400035725698957284797603933199515797326978656335763017989719253517325995781805650743640771851671503801976732518305941997754403411029275976680715345572051514657332158812996430693915883896776132925866743257652181073154826104686350482717153524468416987104053966129260925690029174517047237876329640410858128707588944917292215926038875376991853039738473212754310166960357802634928518866465361267168606847167167773570120940499554446521167079939858868603866644851361024140305000064169574376442221857772371739875557068178675860707324339189773549098526268809740193255122788949413587128105652034858029496573831839515307414946074309148419054526381342854051454950843269010634298855572254408695400468312222122086360948759885131412483043334013242133555160943608170950331661374563390886631200072583229280299489637931838432812059978034400059724157313075578637713040159242087970775474580256576224577409806099850896234846080376675340226566848149578009962141943941351056966700784179856637708561389689751104216245787319461425840541000432865241146277496011722636477423424544322038857205498970923986462274394269979477816292455352144556567291022900155506026072993202531291062416955410664743948529872046985443460912657253788834254254481953421128293597151836715019910652169473265953176710255514741211864042777866085294320939755573204308802494249843844689193539610356177738292578981162951421537377488367610549751454745840474510182418962355130176918352263889200045733349239061039759273915417215408444367801329285944086271782192356258548237269623226042126358470897202630574901115996630403229086637242059646722514247326689930159826497393708378171473821055211848789502695362721176968509533108295968856888846933413498018907958716676222008975369979470694995892003925619148013364798824698133711597133335032167062000417932758632741623046289143006061117920168749041644906313878864157163479297854910246205470404129458188816461855896762795269396516740672242983451451746766391941085501422352970171784576007437039099794993938379512016741850408431287138678063762781501334784458440709137443778718771693095334322951305355415866607568775761489202171630341628713973785427653396510379496712605704751651664308695401734447696381285853595970408801610396030395438211273191686493989466189982319943128662752971053641606202238187164227421661321793867724791643366470772611903488153521034952688820495091024681021348983543672003218209205250745292134093694131902136382203272370848987822460416425850881082071031439201520491188684742995780485032897712332049990439738954351103545928196231995689995630394336022940396133259706976210890452475011904428276248169746981115984375713789144794465238363913079853490142438959118674065600280970029130321279030379530488889095255893007834388556981044064035133602314726169510022200411172807179177513216487445490382218124191909034240809402373730688685849901448740125958381675045032135830180795363261562039426396631650528577759531287356910541489316360274308527089411827574008719844316190305749245296758889617568868377331052272585341309552657373697096796479651703121756972468367868449855583989194425293111432700189226426616399227394267432842377270087899867772110540592288367424802824050440975063173768880843243287038648015120230424014404311620679803453465266961371816352423738545133796165814735934885254092072771082858465144878779366088860318214265317632910022429230509399704783950335263316784798907376502893723706219407719350500687567373337969208758949066624138213514983516974005274263859175910875569386443309151985494075471869619953689872955001392547049390567469910739552212047946606291429920458608166298572634351176272920062176433888940771889557937233613623530619056313540003040524829017431723116040052469360067201679903998182698700056145065646342254704605328766226714443494835183044499544181639941052770031087024562273616036276499402036346756705616766834564485559762243583696022056972256846286010704346218314754242958740539730758632870976394209194315205371647866512146198134633063533232740923853768605811707073868423238949626437187435771253566616543052076619437089632265108447391098412436915272657607428885463822743866629634992678069466053797209243889008779389288485338770392232564989996068677350982391400971554681530859927000294125017347801551498581012346349067733866418395737661170211267090873481752117371750978898641169932841135581806384941701198573068227442962449708225722812065365142257993207826249924724640448760639745133241409682533142860744554729649389057214176513658798448969767903314408454656804007085194019855617219824033378205565091722049950904968428204171580328951549688408347324703779764046962195241984089682425661417288453254514208272979907162030077705242083417821638954827129111443640293088558933030111297712296107318143586527928517122235348179245152599762576989378997417279430738276691846966836980134763521022283860267605055044255060341216072378397561342960848777612241805053277674669471847046839565605566528869217301724040386912370206919294297872843874156518060649901148143074250306950504049022364887070472117125866479830610801061936322647739781326698595646057014518953382109092848537243168659072517246331639565420857636479572303757559110661469223822588077686832581786163796500925958026947243483998843665879157675187345483982021360217138314789957739554236978385778646795993179392429180697126003991021194455106758586568804966999927736122573558037741633322623756618892136309534582914739440350971694024461532489804074188845287633783956845319795044599750627827390979595722986814913203303322892702972645987777370391309666626292017493136831662695240030221592968465998615456700402104298717254386219669653458342118986416718146116948084344183046414530089385151624130303463133277162257596879818345981600017785601709846753353455488738545214980127810940912725765120686215362177323554453881682945975953059557774430210077679563342729237959589611714273480728349521504420325058705884816924940950096801629484742102256470467057936505199415542128174860352534367145813690273192833987206514365404839730447369725979147984820833477825310344093788938535695590951389180065979389003199493123082949260460887366620548775199506608303902953331212749243326417085318805362758434387685745498659587891330738649488202930067240760226164205694609690035665672409096742231499724536764073556149180669795736863593114663592328508221815474092711996202551717747713863268774957078142230577010863637994772743859463859558329615890132918337948762765601318966505795372745441250965795919871304183115339991015905790081087649033036814562670390397661419113779995898809022831168724247251669179277450148753867804404465853724995356361868649439476567480269642485851053263672541424842887600122526358832220380872811763306445314105528269152140683830075295249781617424455260115675157312932202947053226848581507066453320449214221306235921883142424558372277762325929172143244630679077393396726856812234240512853709235763578632639782843583677153201651004966650888207195575209541433097768898782289894611618689532412678143820789292064772248917835526060075078182849756774933023509415222199969315506807985202705147967762755680462841679153991949472244783414229584085356771377071520712706816492340795312556230643369977238953038903638611726546517212246355646852833791564815168143671566637297587470372574842019749227027705337632878786000772352844726934356713711024096221635544358290683343939696133785840530981136542033165239293841156334015246189214409961061123704008921792882904997843119437298153117129360617905613586088849450463979787848240252258566612827091025403692574784869619289625685975721574866599283806837184577790769805238485369043278814763799706572938766735271443452285504143978889610551117858225625428732351285639282299107765691825345097710982222904233532007775945038319557911554379759271398004404618358578551054240628685602044251783691118062024475477503265652329926164850052367866887328032646573200721052654090789544160803220448806703572566393296692804992883120629407606269340903485699271179834677388809564455188074502012643733476362457603571609175017536625573098872662699944094465745972672102947272751332868162111735390999958690672271430311341008120298275148316858094020498855795956947309629299459291419079031935346980078449020830659444696736869485357812206094910138599128324267064448373614769281672089622849893992047186587446914259408482542481086613349659117692454449455463310536920081984937495992753625898533867167246246452896832788229429245107933874540717399279107994772790134596305713740113906599993900284068270387349424355879354569249543878293251915047954430560371014789565616261744951138511220881224623548234827982642097627833472404602130390468334823922709571485232327941169625850855848199255981523690687285208472152938423779527810215916866288187382858427791766748825614517214469123595179822519043936267834121323254224264688100716042395666105859935582967157872440427085855716983817413307513789376432294963615117395592701957106644945162345079249638487372023785607017223215773270756715767214966936223241526160975293889235991825973705740528859733866205798834069129617045236037526796967700691655972001681107966120726316191635458015451511485083457082855681994674885066821583110828736525086052681010838016127157116583735907987999209999061049883993509728583003923795712752178511408338057140596802508827175755997150458574757116526601267026329214343544302406095813829589333225553277208120886102040538575420117794271861469970213027491460278701218182018917860520708039370168275876103090948460065799227880195973109431771808181019247654822289407425062402841879918672655451948140176605674471395237182477050156470179331399827316661095760864452700111590678365064358437440946684602620407132630489919336366165398466334394130571045777437535334183326314552519589501952193870805004625463111591795682322122253365641496414783150207522377249211974594930926864896104674327324619271956527760551334301739026760520758294067691487608920854183086713989203034304854805150099411097197750739599545932917056388089293721700407666054447817003036175029582422251049023463148571767323153747201466696400361188000166582788537525168287536606207564613597381797274501981353988658096391157089573842169667325051973369098334480188914559843996519510620484473527724614742342619172487945752917622517290587827877420013987896182572909298290002887548751953039339434596723181397500863472005525886067739081456956643957595248110730522086078291514897282846149096172633356687939373431244777583708102997044160590777665492886577298873647538718327681613361010056686262703903667346999658450262758202215597760960367315702871153024546512139188749080534250934333474641474427551402106348039567879671410761511669853122702651281764798099234483636971465787975858084796175398822891431920801111338649994979516785408442605489506396918299745241311560399694441546221076721869646416794690632484810892923583942995793485262134424705985458220164773769033463988905814701934525419736076566142246931425096272451705324283935766979758498474089301534682275758923039379330685029452322129748263044094092120309625539550081962006654092536019271902362448490302012374563200354081006973421559123390780644906209441930603894300318605329036207711201819369799633469750312199440617219859933653940284795189962992908231450081665815916581112098704174570872371341304697532601945128759033403321087069300753287993714368136129321161487672899675541960671883227133212651603246855157735049059435475636299035642503817030726350126877021885869940655652843581993991976447193126078660456402453088187806320746862641333243547308410593927123070963070165494325892223537871311027368422724500950132074642520985346706747049992782128995272580284915424438503564083775645153416675407636778938160759640927027192283706635700760798366603557060957675546312493916633983658914856584308525194320953133697302652156591950711879922706161388700586203783909242282838095608410325012456513980682910596259060537268422972622401592540072875339608661215993796474856898618555663392484937655628649148280995276023049499082813308081551501148876162168914005536669628547143724011675113017645507558925861591418908496054551080254617609680451169864610049446477134770139981569239122554367716210232748972463947920725557031231376023749025918041989559578470763009782427169053899935281655537836180936945239052457183882702698923286395208904269317975320713325720676506187587854338105795657297228368270178783296808752587194899926949506702601136138956588118528975725630295087595865006935148727372640040866150052366287978959257861595471523087509535008466108161929845788476489045961175302827245116866474663108706310075354296123127328858651219411082513050118843098048755132303477413061427763970722146323637074674143003762108216168133018032334209983762847412542190554003506132789823249538569548014465588026560473361984001543395811821324422307818528702936404462174854193746279473577700899492995012295432496665793098436405579174025728803431423370990758589996322163997528490597219928436714981710926947247126808177640372718353778067126267120091571307954322998344784094147224162778136100270427978621647726962015921010767381361034653102041013826440596786336535593735181896974355592043887777540552008025969980207004245095841325532134646717399656953620701327353435806246852769519547190143331836395484970787893171881524465390492636412456741334915994577191967038416776933487213147449716822058961381824906118987872058860984487452693232254360794428681241083051865639464079440029096986035114820259406596361189106305488969434014919062340061595591842486044706134617903305541746383316242301764393687759744694430732381736460264114805953367255886103101285038948057963487891357168316191361082441920792361531983796063295659140435042746694456048729547773403212109693004946973960141199727923338224645472450189054307001086618160764822576963853897902012365876339031412183003813281016765256769053482237572900845269421226616641395043004354486440059062216552183050580215406673027659233272654227043685983455554253453481630755018963034166587862840187366295523833669021829680386790593169684864374310372825778681872224059943606531596641866739109308104036033812923618423145721083430732646050804380549097596820495948218106237234143153434224671565585607144285036278724150408442576164843691914819730283133410869271996242403323668971128203033272164392249787070085299805268310913016827562144122204708336903393886306425862665003601610567991327935871678984667080978126583853344473023293363680080144970928872454019405767575390377219959200442081857067447649553840523416929522549343221987220965659156844114782419011962854628595496339250911619471095469729212551939517075004024514740902750903746978995301936560570780093785616126804551934906629033305598521979470065691885619606667282021603095542665334252097891531229794409878907694032203092371156432386183447308019749891579102862257431894886679335141653070698067505158885400590077762069345029672806327725615348052139544671286582878375993644409796753326275644903347068723599916158982844219925964106173803082625858592049274979853581098517986158317646106689892312914485998406302656211647440972566423392274869938613610127794402594998826304787740235885629669876126504979730534994316671936926642756024635604409566456954557804319788797068106652635918670156782039562177949784880416939010764127507708056896988536527519955131382128717235904303112759998775381541476081839150564102852212003284345282613092073720018979926397864481437148876913827217647626631523869229386010390257054674480151724215469892152732547457818584813428508589725152174851337649687598962413405863275641005209096889122629975034556446494649275332761574155677596065264949547244353337397238172615310006782293781031326877703686693192435655509454703138943320319560059860666037725887245424900423504840593356281659553221563495913252398438399913325097038238700844292826102483154916081622405972854562040899554407478475266032112962868186619216799750438930601877659264938186505923236152483858583155753582125232567754140678118060244927065402724028082990407437416599753069874795318998824452952809622527501202570112851867430100607517378139652287174095785508649069406383371211514293651272276048969277188061357408345530823310632224124701459982577760342845486743902227463318183183387288238822461607925939602475139345561409953194658515735768575279201604641607550772751351970383368488204397412810779351785062325824816257736494816951301769213296158890452151439124647452205793353924592559814922019955979668575980751453209754738268349805493398493417155565611582030753094506090036131001277418481026763931255957458445192957567511596426219984632006094692481537464335192123511722556151790393478251029680387107176907031264570874436070297676458222756012076401051267119560045480525702841399488551529111218696659588524941571018148396140449314574080092757763029045725234718552700692814663838742936974975628420406332723016149507661582572718614333130921385873502085981376090439180646764029669821663844176392195669295521196270716876534546037182300963603264890567621803574959300386075226337974557945150648865485440448230457659030145423633645184143410971560208982534091770559436250652926496233475365904163031103405722960750554708417024659988528383865239424461833278637017307213226083318760928705525064675783220114474995097619859178825241852543080423053907796683404139922313344362943602582745526914984049074965332364989264718789633047889353852640315293462923129433239457462640217746343957586612332840186783182171648319927297175931836665955087530506491392298960724123498235393076667843954436709426230700816699822229397127896153586783585603725461447013911381465311214864468339143461556376120423841414657355457214799475493774393559762880319192980562336602198396180855281906639188382111216978292390103537043097390091307853921271323807475407811868829098324060687267349251680903206344132457241482965442856841832175333203499200010894885449738161516505875105265673194729998447422868340492877018415596679751642777349622269195197002282519869885910076879333658456354948473085338427512023395986141342196160388399522093333165258783498523135273409646314791893090159480099986815975650247970763903401492964632887682843091150933698241457269650508207015940023193094454613458433165172568230043417666614469456741785892043512357003187755070311148935761451309211144366403072273147441224163535686827687253178927715276081910286839635555929704613582930983667796733939226035627639670480864198812207178426590535593711634306502811232056014489933860509066276292377829353669724447364220127587982200200450683033273892714660277678751323781364618330419949653027301538184910135005184615870277966305318014549970465893378565791705383968606916699081217393784232384469649618635197570948708027437462213034169866759676133566162118127397453678993237876122964697194173845121245467282434109432276648481039164587640740476997330394560707615336961189152617248369987991793212413903525113284255925544896948593910324574387370743839787900667751027493134126742529475422341481662535335069456115803828659514175255311629340697512558774397571199419070418457795199251747192304725117754214932659238283777187710362268844504771554316653134056640357938139478909563349371813378785341351527717512449239098511576168256820182265339092854634374994055926662805772227248421461144628710040342994985115675663356441828695218789542647503894215769389107529090698511060884892448044939933511850310569470840521418094575957745902357187867408941209276674561262494827323123717691644662667361659491412398515286686961872115996146421528925504747167469861829639136886516804627847782868756979828547785165065513408295637812053798508905152780324247163280997310237791549203295659881652522791884254353269896998533842857426974731804039651176552316803239683638415509459329077186356882767535691376004396748416159638262274181372879117296904435138506300473010436553603243126783804387647963417656787253435227479911515980563072547999565185132949440613189668045377057034632075852363183380989614986599241507110481567218467604492709835312268526040814776703253610430165524505084066458802212216854718588538017171918725263885231774027548782979513029713955579320724205437093338327110205007206845125520769271061615211042819822025710289635002404559152417360093714635142568594941537286220391854238776940669481332956643841475060435516568652773895899769593546559805672639798006768027067502391210297812225006149777743274707933748881894679196045261446601301429135836888317417866166239118958214996020947302818453536290561882000342174522982720940477879545915430257637901430884184252347252950645247331257543876182117781937594078563785200570348687842846539475256430249791711059891623661714683432380734715012457058462386952510828976805681755836652496900487120428447014277153002685733106632756132748854821985638543568424147242001035483091122190320266422361657988360215047630204792283560301144413473900421978206796570479090480221682078175268119445884399391903165651461739411188094544628268717209345808304588821291862093329302221183328613914034642534724247800226774796224818928465068635817070278736085630980632944526703898815464919237043864428513675292229672552661370648293836029278971691736121285624202790938364238379067881116265040596517076347189380665741157467222473185199054393697547475536960902571610447668785477978499864822914272207709080675159293318175652475350327026830918876361186312114751522473127657826778510327491480208838540313442859643614120507174634908713710687454283769371704213971795092089343304299097552691950661666918067902849992487324239113977173838003065084195718324277995492467616438435815401725984965010856252757937989835248367647275032767955375488700402976259961447289511297097388884786205551809482719928820598986007666197396049750567996695571766579271561153278173742810107152662956957990574242749792466907440959021121684233686531287959004044962511051710823231090966107211754926007558947612677295499630373905689622453202959463446853747617494103395583128777190956973688484671885516896263406942753712071709854798267315061918144292706253518641860767433875105255466298290489632914738685892114835327456256795314219042787040508664431455857198047880578253930564803098286428468990361708617741429328404850414988503029210437053490914049541139463914749000897780791406455457818006413975091315286033896646829118288027671630503026178411086705687313616945125614289204076794097695229030022229546242538323692185852039424927185715785415799644884737651671861014787640944633077003334706400365467485624389302760385867008113068926559238895530374097969048750132047511114696246784906096750058876349275298326279197523505186105681080650961876947096025273408908264528943665272824810955671624196251242904246900168409830884722956902158290671977056679642045718238900890921815880777628726911247244307726564782616404050027387978366157304006394339573318328934868631546810095362304849404882947924775279366331396652901913676386307169612547317358638401285250307993323694046350632765799587435223931393403435582462754210383526882241823935235499497347971001988655334153881908588402844536082294757916434455507351357680170717068625057196849893962194606783562639687239315173127784596401837362411011573377853365588813228639105365200620122954747278350789283317258705495879137489282791552144670569504188258155289412555714325119866788400344249795515890378985303829849191111147563969406530952493031085532468922142244342220924972711547842793861771914969985461758520150440264846914396784155147093533051156460414944746274609420216131296224931464129325725935272515438365852234223520198030525005231693685457259161164142639773975799262083563188146393008896390147255989918068855153758179037669331682325647494094024738908584224972626282711067593254559267473131351147784102793008097042345880867971545657935747336404421989289323581256344000659754435344955546760116518016941132043588723739070824944213542930382359217239388994501718872994688245672061671492564833856457722355104222254014738942084448821433831539823258883271978937166640072118219811972565465956499447328318676595205705450017502562887259256498897975079498720180601460804544806111053748238843817588642617043458250912685312205172722747934669488058290489332941187173650297802583424697223241599247230439799258774852649085931970855435398589896556764760724559782849223855315019847520619561174970794723280934470461126123076277044532511424977408160374356065600388094795060215656701677017554571368831437530314130899861107714148884672526414660231378240773372239143956836244744747376063490815418451638443190592862496218955592073629200982387380804201224378395011697255251382066579777149593259727668254805084121182523455776299255449721597115536107619411358750673868145003623924919254502847273653266896151688743484132926530883097965711319292309388841133026627758177767372263412049415683178478153322261146987051357833359469990300908088727869501611131907389225667615237800648985728817999160859120199547423136930450774071616705051788617049376213949935602792062808415183272579539375511617681497657880785666213226379639689850177581165958994440335512792810093548962115041063423941466579935585544547712947072838605107249327055552887623951940619697033730839499141095197125539871746742815689446289861459990810196865230917941877835990939775190458257104994440711298510583655481759361073000558896480294877454941369145921550993575809156458452815928975155864387397904111269647963506550064438216116490170760650899087083783978205243047342579941454822902260610245530774264450484251448224077762233330067965845188645870731660659121704328458238899902736360930721572438321642149277074748443448862766545057109412166264682499498387947272202653803128150708415555971246589306202858537012614985664768255653885459555601896962260363153460288313626433006287129249251220608441348323672726786624094805149583455593889557753454497444754318419837019283454605279518591183947114782533411498004913999033593533634981263500710218993311475904997876401264938932327563921241636961283381663938343357742484425962807674894689009390827822889995570003167846205338512513498579490911999612398161654138396650468735639434999921533682435151523815456242221014837412777539947890007357428046041132301113782639533091657008363148881448988356489850304047420385063385808411229051941284373392850339310404288372846843487890241655099974053699600155501795141016353238296278978829019505420473303734536185932271631190684880881287514429382357315874110214975639364466620281822746591706630944465299284924393938212803865883567681552346167641369172155143349135670148697664611441349442530909603197012157559152189888522850769796142433929198348871981467425138875290074686932341299781568491778031314789639452408483809472257381780103651915101509338413283142234866239473299427165804237792940878033536986522376608743953954742241138353881870431534202417067223328123734495108242211893862039566754230780981730971590242426179492935391153091113115897550181451048879557933715120295369548521079204234465895383405016568933093586341089682056315401606373639136220993242642341162759198007734055672631125995302257738612299640759767842052419269557731796044157423663540567529292918292707080780498550601726416674224813186546077602173130756638030646667546405575871350008315655850532104462673528176678054824189165403276788733489757917248838928251801599088921034542124726534775058167726892921679448503613750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509539440204954277694022763067334078326764578529907759947677637297998584182044313316057403074913637153141267790335322124948451916930726027478971273868051210568035076950930564697627705888941545844399532392858661384132929700948472020718531293928916061136073144437664156669062577202240188474539686536486940117340593229757568202938603172629997103393546778881864817873631169075936490839292539076517023976247660294537398767100208355891251469152233454812925576693931430327693851596675443386567476621079313622806408091849815375011623042736271048016948487226493761118335625557776636906224572524341092967031292054976675489386309111668366887592242865766560368172218149660989799613444434409700871538410329488777164462877363986010725020212405663263630865114733347795114425936170072237085980657816886704921492993476100971912376812939326731659308727070680588254467096405046832161365873134874748718121221203385741799858485252029801493913467085803295886974596817457434877549030034882392442941654063837941834693455293415499283698507710794046785859546055734875814618563540846871433414144298682923217628599621886243140946437596891265381481552330134878226019100382962086276938409635192303936137027937814860138860946418055815903891157282033217506528050887109985634771366438584830847473126907314758283515261230327804715064536812372554622221188568040003222808935985876218159497696877137823282428620268182285483420115884894393572086633879584144075121373537479871230689734639065021845070309649061390349639774356135792626037019566867578120639595240426876330252921858966657208643177813999013796861873638476967869608501785984286133786954943603125408825019865329072308275366717275987821876618951352082713246829269943124152155630535419226357495745991723792955861638474962787775741073971162636159676627093903601611478766720233562809911307006755091567091990676034080270907166997423109571891162006266572156092400325382450947883406972094195358839184771471663526258642722029719100770862459042056819029735265276145375638519278906280018003469728399768117040046726998612727226988197823817297705674372977704099115285889318132491254160511902972717252988496483520273495466387743632524926676413848169831179559175274000625782904354957480035447759114974854415926420511789496417893289037010397501992623732457733661174648240149288552517944758027763533624347368226818105412999921238665583717967642211965801072542512066032539855425660027285341017535467618842695664687158578069142131996804218558978632938798855879946466888283992019050929229895934850151285465570584581902723699224813195787545365920145295733768523075639879435735866818852845202802129928136585999799161511379357763361693777237794651263161755877882163809539328467579649010993899934453074172473229730823314281674938490449557654776315911014979240854482928036665050525992738646020780929348798445892872485174438191598503117720329275424829485491059784629866466474515277676801872676163464655836290087577201871709389931115061183061178409996268285645626996141601771052098904495787554833428135828448613255672149146315793753396308504606429916138898851374486086936363453098577762449745723011043307987444476379772354718163043105427978500426945324968968981339137184179474329122871823646909626139985025449363976956720444826085819023685648328203277030953119946454384226118102652271788917056569196381994082274056766567647626064890526138679573290089363874327792737442963888807443508543764270087773684801657406697429428468778270002376879699536858366825421603338739331154973993191991327785427635070642710295253740133641164563634781354928113243277649142848714655046148611553881029509554941520345720712802868805768405659119709011806121779669603685183907069219374700964773508051612483789806245038499362140040901769789192006753756956124024274999547634929736549728394454575492701611512293649848545559408305843692592820600181462794714110310644995624672495932683315897837250996528684702222928762632900789742149841400950266580948736451780406008218725267174329979331248961954425827221256828746053776697976421374849265808541022580174912924582454399688786815595493020083624122608762280138810743918833330695466420682211388227298011376533268477149906169755501230734404304805291007828195152102292863373450125456340340164824220161242773446896970675295160945923906420367799336785454497508172752389055021859573425056851981218494704663933353703475770543817471236577975201359718773271416075655201712650047828419860706515089964515709511322359766579540510657008331260934937416621238506528986331401750653551219402676983574105750691487168594430848475442828545870151801441848903325637425955962262338904693450392411924263594548967657542003406556354024706431005459273597991086603729483384000109894627286713272972728607699848679228298544266901213837028703843813494377418434068763584119949470045350683532969474417022928432894738861817994124057506301232215164713160269903879348439842653850272030198724639845287663597040630972084824970421271856361854304708365685146268307677988361113951917115569561009255662781090456218524018211732635195728913611400235247414645095935426048061140771040748877118382877507428628637496404429755893077826217352101024972188735884263565070018814231773081088919142309964694495427340301017148715097550427717969665056973139271697830787792369304757265811441124501003988726451472442332291834567775730187944846096977227970104316967574126538835583869955875097263797852274178803562145791279813927504773069488797243401809557335124039979908521347166942570411562436466727450228721017817246945734618597143959234269944452811077261561922397495801178579915677516579766324665706791080968265534577082503484391320987552650159178909861418850566794454792443145430638255957870209446561320732837331992844950782124379986821752301953831759161163851855835416009255882838251972576790055612831474090628091259485293021910926009788697195769889513654844308969108157178709825202140335584338823566063244484491800681886356374088636913880684009252824168961796949586599689129125602116446895209364542375313404873518472213969438975468223689394191169188123840597552941538589291977827988624538209174125053060992196376066421600928901785277382863233292211779335303298041009967456746672579991684107866519228234321359863062814042576969923734323556922533479460427675846243503873835801903259946331775871078993050552551567168729626219806383300010839387911761334826683074617826604889934920813595857343676566909515654589275326012207826120346892139884036717725045370268953324347328622827001939520042187192161236940641255315791389320523153975586409988888787139078181641648828972829249054184601389640576733995970430982803646704743833225341605820317040773693992925203720563120882548760315953235878051669657665380045415498876632825172088911265967218045256288291483010805640413380932388991670961987195640339584399835910502922578843529429104831728112506658372776163076030670576119446533696015633876765117182608125333953048991404779034332844098889020982372711568893818100010994011247478766151127629406082087137870031042505294899337450426448162837119557799188819770032950550334235678977976033762938180516809735595214180306591778749504505117723043845875787402412199599070896358344883396471610370462345477598842815762880211735941689699931679853880551758113373154625321582120045885549992048655752413755896953806848750572327392637763212965203924171799193042849321504263579526930321194856917012588141981712966600252822775834656694889843938188020675976537605715537282141988358680408072734213722365184842409817802421646444793815509340656566391730029171973904969321756287408914396278542747665169797098474266395960768187801862133822630780428644160439150919750103247222008866925669279476171002921439794743038499408193487015199684458597543534777269483705268954344494080054094333782010164333958819938228832871093417132432065700527430556418729323053167659525312235355396072460263165635077002019559407876719429825224769927829396380186629982654817788489057904731214974959477737291160780002972525034093382990232060357052486198695169220788879987090226897261728330406273957827349900737837106906944857081726996981171859267907705197349282801093011482418458917492080964289905816398521368998026430801315729251364262897071196516246491598280201753486454372021810290496266461787944313989202857646990126611009369507649721128331871488781779198993234009616890728012788181587053212410687276188004117520515341165368821833541290248394569290434511071027227407921409276189962030903011822016606126903424499216419740481967726057273513747862250559796674503570733294380699252960626726169901927602896617919632163385401713448867254007400971752773863220118217804137716688552905066400303498818207751506728567711324030373432786924514456977283577749317737806404154310686816219986493660787764057202825616350041782090149453282285991615078631964697195615347242307414007702141748968408028536883622445959048356459828399848657081941830390936077117695433250730105740552952735387143039541857966083023665474379797359606619969499664235358856427116060648631379507560445290184028275332892659308825896666087956361309426466889688236912260825583539709839842978749972035904950197224087839617028117551150480597874465475203331788674353616450734274255274135872869181351085891447805742239912883459054282217047368796611695234920134139362343529264308673746805739680312943437807606051146049245651393885146524693920877844427360787641371191462144631578354846887573794155978638227263920829742430398844947559072561851464287540244724938222536085617057982456740631524853352893729182218774157158289555086470419863655741385069510460326310684826539459344827001695904844634415755953006011650930998881168571583816105868989319370352786488543453874382502089274810112012072632543644508784969610362234076121987054663021132715235236921856837780791504733109126199575102280629445201363150281262974821468832300476392572531582191765451474253174981487049138997663053591491821936759061372532358668002148009622829224860268196813316292351006174070303389873394218620553686375319302550093641805688744341762700346409276753791288069756496079838229439640209165057363169090319692556284832845733002146405933832150651877353121336721655504024099079507212578338369711140515674235315283850817617676428883998254734301217686032289700870742138469608331535983275061944395455817912642495717599656716751420397571796053267513780570819116112119714579359355813773071775168993004779811011055429234803804831136624004495206971973875929197498098542142584950783286726060480699720842982128106841420126147265199413093030460796364927859360572602968285738075544080116256363346776772807918888371548258671281248220977117210737708180751819162676065740432103784348206847816795554377105874765703582336011883363754840714343118110221322836531240190196376809299367214143200418209201792494542254616393695798596859998867582969194670191660690380869235585980062650481666733716620219986819410069803089829359276835085267357114577391253039963664268497453663260577287557204629479395608984769076849637670129382428397586939389722787074162448950134068926279728130650434412513897914475385180434331829069064531247180366437425398827207884540084494334397538254467661394939581534203096352976953008341300049570699395136131832707658329389205688137655896111046724182237001583144370514185110833258159590964421306677611990601617722409578955076481325663715998924779880710975682422039106978457903039659161569712256689456391125296255376296854616510031467235793536255798039259268561516589704049232736082100110706723291076698398992742157831536800732603166939371222805357536954989866639957611855031409437406611205041559295774677091258942812324631671447221466382861095600864697013290665302757653945254697158352335208219668295220174185850341695932234462658649182728824935897897326308660142721016897610720957585132287316877120378090061658860356659982857084250958859517063955551056149623297630790240713281989253210370922522943326430133386773403341931932729124856382318709414801959138440730325291701102323251791716462784258738311300085771528893950882902784458593048173168026535488743830829122203575578671388614807074910834494671206080916245221422523856574317671631881605877560306215835941569857358954082797800391145679683003502010245222304714026871177936107819588015582237587898662183230901548422600138884035830915649578568078815429853420829407153378302166080622931115122975905092443711669643019657694725643725199828821955648885524849761817783354429183564917675820034005700316129346543128584313296221042448214779833828680651038712089730410590370558037864138040940279009241709927048978422569146965019154879605411199297274654910484481799310882605804766883540085811102930998639204801561760724922596059296377815424517435034220606613224451418394420930406102507677110220005691663089076510602295484128420983480543852859159951781011754555808303916834362496847920146979939695185693594764926771898715703799567731115342547105216780636999979520719565644527750848378609412546302748574113501913803024100905200811591126415519859873238763767881369931267760969015533658373746953414081860657780475134870065842070744402377290159237172854392591757603697285757091651580899900078644254564099609730094926771479620701384709759128927998462747319436880834638426765254272233864649022233808236994598206425455697008940443144694534926534359687810023794315515173182177146469185533366073951102917540473397633522997181610811594455153506996944043820472683955289327846938118576687867307247054071652619798126301637832291959987313781496716917183532713835076071071262913012537377534569984542063583692161870130869944651127737194904468536268885477212993256443467622539041738324225098291111208289026283727015482211837942142883244920794136118563909645118413194487156141770082457887350870238093273041675797413595530602628590268670931620166336663356266041308542983266390944538282791131489931261335240796531250302575174187745978219294209560913862968526115395055393001737550326487201978318880440552086112107578981785442469384701986439118876173990876511951683849559245156666529539483446447843503762364471995433214335601270730305386616491144100453826805008474168905759783355607927748958161801708629570413345949145642905769898165798745623550211166605662380062417014130991944444762155913536466104220793660472893629936210169343473012407858544074283717700963322699987012207876508516066621144352585519716050993445581562236697885428109979991562760886101227312816547433550166166382790822788266708401423632603505192912661574539335866496906722818217479684085819326863969500584975622285528140009649594434787809901919703134571949183438029750861813918983546095373771656389005326266703019999202347619926652898812972957065165718765870724904121117722049954376194413394124804294404898561681644781070782360824466097229584160258902222462153874712454755148561101281223462407670035879314618389104258359809135746752632196650517220341268507018996153756106260828180540458402418876335457314590767992745669534369849458273312695763551502077581295475031861842207377180724637168102711062269075086910411475140379374058630481175865125768134692289079002838092929028524450682404820210575238676520456476451941033417271954229677306194745475853429526924940114688463483867289510180904148125453079739993566874532002467331526840411088018744826368235060130736672546245498362340516750434084737206237011384669889922082101126066115511340446687420470512402698532754426868154542369558559310965190482200460245785922997320400599296316916918821452494229316270987194847901698859804800506700063593063651558362046636517759713783709588625225123366332698531383877456356801138263644734100094634144766701053156037764904235525117698349783277094305796023053028584646879708163614012031066528566478244752609885033800655358035013169437926933227048476671398672758672650697461113098654748713835328465549887820018568419392394675204365745977682779537691817314420261675371343261962503751345743044641110416634764635291651922952820852974219712758110785208028745480481166007293817483104464495646322136695467791510136227692676145196078078874666388451010543402831160443105745393628869408653567594249584434526524977496265188054814005404343498103868919707340647060241957305377797519580530706379543796190160333064202747060114093572490142942929674216780563697506775066316989514054088689192745533524460780080095854251809687366134599969320769919789138261577341394549689582003977768700633748108947536909954515850958369381683138316643085874612799714067815531582510911787248577999431435882855329109187802681933764215118403883281937770262875395909111308178391949099509394223210888416963869286193530530972717585850243303663911713967925843424538443684023696606099351782540087803556812993433813633518666003404588315027645824872634339598071859994549861687273113176915982694578683032277274121596877397965716700868917080874076100779029507655146336267879742399960592173930042472773984290038721868555425232673637951507630214510917492734865251739076936181521171176524522773247847443408030020368408510555316284467363776759440140473823798808274555390573276010517581154367486857589484990065768738069249193308632942103359119969865878734938068132281663560013023344276311726429097667720230861181562486696083604192545561304554953495660096074653667954590108214203911842154848765088709989456287286173181470975143313640303139696665269190622991430397464676094188420998312291740170920920158209544447053297516283692425740074900265739302663330386561611860607929625155339076240068744955386969474461523112263562963827466977846950287954553179182300664690455537631337591926439788554629559649892554785470963716076707300177894112498590207366684257218424450858585032757640093359253789396303944888054240067833100160589663644379510430400262255220378439949060568732266975921741732400108058034070442395330250810832716752310793185139933706095723820126368907454606568099900076759697306876093524138825472021538224876730969199638684783321427533887864749885637249285443155531343531276384499778317824843371820854209607289095437622342868799446354556961053484894320840133081883373187175039938499402641332288017911160624471029568137162274588601292723888816921271988985889603577982773525934524231671331784327423904959846295035437280555099919850052038182513675898913244885082644497239900894242411183781815210086827755800344964267055061642468981731465528343785005293185611343136312379153772885646378765584417510637272514031382579686755779563516115846475472320184892487140304042516772211038245937872362760616132080341257045980437627914301260599525469662432777917941507593099755646507706548263324254891786566277612041914505933066449084471113927055027234029585350983863767080057897793920505588575394319126025396179755605235727840476357867790510841981068818330817492071199891561497596830853942687211876089227624694332066212714710425061050761212925835524566426440629963227129490988897580049553321069296251739417643865304981366480832079263684153291056675531489435967457469171972806533326654777415929584468749355858299264179268265605322217457630891922575440519058475943597280744946624303998260730825484842438570666332406205422744982855288187442860340741918931978458771115422986366240424093624610898308913421892266473803478758171119796822699219035713798583926435078356065010325961235742020390626424078965867816795429922622667449499089336087420359420759244520832832660608284410220801973084480615568868882146572430903086868612757895135291972751104071147200016938968620470111301741778574882517493488257460093699837516038384785271792249330748129368098734997377572180658718639015531627395834205326593860927900497183585488482450220252167179939533702273101447757778923591641554994874805614172931226051010163255644388296220942861022893385464245842764203983007729122375109372208419010672990928864402357656492167559770855038417141770516235427982347909364731823824139694253542705617014131587431159274365265582293520680099711671238342035275865938491057827554368435385048540513487218917142457081642054344251621317714942723358155997132387465651004036669033009510563327433758607124402922700928884508878759391142688411863161651496309835675252166823937374460609780473275384550000582755903537496546268365864271336011703447964789700383112798172119038584372139107547005289991536475464022600007268052501485858384565363341449418163247497498927322654299470005106668503716897532412786497386638139235881893739294869331927012608776730763089366819287979720876918406355410625266020342089791988617086045387724355474557641665442191828008496535434541315944438083453353747605110612199088588356941207217170360982382599347587438075480240591961759597435186063963139559214209847572794163030427753773220038323634948026906541979644517335176574940557863776767805967801651384933250131188183067837161704899657873340766478871859345787155634152121971606069283293020219619513122575988874861796133112280225119394671720415635782337900928476266446712530379764543387249374235414828807979652116382288810733830585584674530758625784223690806414917752271864716111804536289476712683186250235898369550038057380504212203555329039000726154502887072157506590460891837988805860066825798149412579370005919425274653363510368756523649905191626297586920586964715290162464726188307126060205393147533613401119439766759923095716168955579371484087653748861051778595147428638744800806341908452750298983923500012615196215314896587844581698373199573766307267902692216812340794221422381143622478677088276032551304547931017228096111613325624968221782074606194704544979022220615800730403790622192032424165984398138497313017830003867338556441949159369562830733597043189084086107868164439540782394380506028448572396442360464830279172726214699097739584202914218716939066923877137700168497970209587215776266142477740865844208671329982193380134559345962246057868571349555757461965932646674504642266310079010477518192582566494110420465485363510709545967475368480995605360712904679556445308912797251509417525457078983355930635801564206914992085094371390657977262388376297945294464052017355904662069671808444546240311927191138237222479224366281866325104257977911722376108755090026290211822125635555949911634826694171141155498312943417737867699553046440479452321297228744328356584536550303828553630232430201102286789573781581677571635109635919054186305654194852463165158983877243749016598000577245599802841287785111334657705731663165384727430132545690094119700062351073651721666229596217016401747877057293937255248046514495625907388926239327076115269126366167893996631181728641840963825266006143418957318739762421783906037517557512389265418649467446040181089118124914242758848815900156219827639942455320429134216411707779431412980636057062708560011823478598801725458046373506187039116626845916007210207444996141176251973229045750986683166162960474084633797740924625449309471035856177525399532623824503567525266298485619914076775710035260909902334323811459849184955515312571090274145199957641181505771990124945867494985555777048959459224496491178369751912612318509630817948905459977919754760208799153744281390625243068088615663921620612373845304506562017403851747899562078524320116735861211941109751493348448318274490293725103641467961238641299267761856777824570785130215154142584697050019341416151412744579162433988372402087464708117194248194791752878891065700435331689412430839661292031512844765936916236636013503923239007756766580375505649459924084260680858086953322832769054872178222068464755250650114140063607591872035347700370421295308190585616447852477734978228539546494585208483256972766421136617799146899243558596166778996235959169411018251397263945102014955429338918414841650907190406739715283205824443036046304722893228979856835507274746068230045041150657317920079755704725964970179444762732804825139023643478343784163498307182104874105589128349911965263062646136446957968427095826014860004283309189205400784607681911268685367402780551051407630660149792151004237192612085085095560726398840905717054704815371606653351179387208036804176590002613335135697431751733589157776007676386380021663483836913428745958986537544345848329327175396854417378794639266757931663180014168983857063478891963891385318768046027390987828439915027650843939532176357390455698875202936654705738625365873710425415423924060259472696351942911522929920570139551424872915458000244733944112522148159774000357256989572847976039331995157973269786563357630179897192535173259957818056507436407718516715038019767325183059419977544034110292759766807153455720515146573321588129964306939158838967761329258667432576521810731548261046863504827171535244684169871040539661292609256900291745170472378763296404108581287075889449172922159260388753769918530397384732127543101669603578026349285188664653612671686068471671677735701209404995544465211670799398588686038666448513610241403050000641695743764422218577723717398755570681786758607073243391897735490985262688097401932551227889494135871281056520348580294965738318395153074149460743091484190545263813428540514549508432690106342988555722544086954004683122221220863609487598851314124830433340132421335551609436081709503316613745633908866312000725832292802994896379318384328120599780344000597241573130755786377130401592420879707754745802565762245774098060998508962348460803766753402265668481495780099621419439413510569667007841798566377085613896897511042162457873194614258405410004328652411462774960117226364774234245443220388572054989709239864622743942699794778162924553521445565672910229001555060260729932025312910624169554106647439485298720469854434609126572537888342542544819534211282935971518367150199106521694732659531767102555147412118640427778660852943209397555732043088024942498438446891935396103561777382925789811629514215373774883676105497514547458404745101824189623551301769183522638892000457333492390610397592739154172154084443678013292859440862717821923562585482372696232260421263584708972026305749011159966304032290866372420596467225142473266899301598264973937083781714738210552118487895026953627211769685095331082959688568888469334134980189079587166762220089753699794706949958920039256191480133647988246981337115971333350321670620004179327586327416230462891430060611179201687490416449063138788641571634792978549102462054704041294581888164618558967627952693965167406722429834514517467663919410855014223529701717845760074370390997949939383795120167418504084312871386780637627815013347844584407091374437787187716930953343229513053554158666075687757614892021716303416287139737854276533965103794967126057047516516643086954017344476963812858535959704088016103960303954382112731916864939894661899823199431286627529710536416062022381871642274216613217938677247916433664707726119034881535210349526888204950910246810213489835436720032182092052507452921340936941319021363822032723708489878224604164258508810820710314392015204911886847429957804850328977123320499904397389543511035459281962319956899956303943360229403961332597069762108904524750119044282762481697469811159843757137891447944652383639130798534901424389591186740656002809700291303212790303795304888890952558930078343885569810440640351336023147261695100222004111728071791775132164874454903822181241919090342408094023737306886858499014487401259583816750450321358301807953632615620394263966316505285777595312873569105414893163602743085270894118275740087198443161903057492452967588896175688683773310522725853413095526573736970967964796517031217569724683678684498555839891944252931114327001892264266163992273942674328423772700878998677721105405922883674248028240504409750631737688808432432870386480151202304240144043116206798034534652669613718163524237385451337961658147359348852540920727710828584651448787793660888603182142653176329100224292305093997047839503352633167847989073765028937237062194077193505006875673733379692087589490666241382135149835169740052742638591759108755693864433091519854940754718696199536898729550013925470493905674699107395522120479466062914299204586081662985726343511762729200621764338889407718895579372336136235306190563135400030405248290174317231160400524693600672016799039981826987000561450656463422547046053287662267144434948351830444995441816399410527700310870245622736160362764994020363467567056167668345644855597622435836960220569722568462860107043462183147542429587405397307586328709763942091943152053716478665121461981346330635332327409238537686058117070738684232389496264371874357712535666165430520766194370896322651084473910984124369152726576074288854638227438666296349926780694660537972092438890087793892884853387703922325649899960686773509823914009715546815308599270002941250173478015514985810123463490677338664183957376611702112670908734817521173717509788986411699328411355818063849417011985730682274429624497082257228120653651422579932078262499247246404487606397451332414096825331428607445547296493890572141765136587984489697679033144084546568040070851940198556172198240333782055650917220499509049684282041715803289515496884083473247037797640469621952419840896824256614172884532545142082729799071620300777052420834178216389548271291114436402930885589330301112977122961073181435865279285171222353481792451525997625769893789974172794307382766918469668369801347635210222838602676050550442550603412160723783975613429608487776122418050532776746694718470468395656055665288692173017240403869123702069192942978728438741565180606499011481430742503069505040490223648870704721171258664798306108010619363226477397813266985956460570145189533821090928485372431686590725172463316395654208576364795723037575591106614692238225880776868325817861637965009259580269472434839988436658791576751873454839820213602171383147899577395542369783857786467959931793924291806971260039910211944551067585865688049669999277361225735580377416333226237566188921363095345829147394403509716940244615324898040741888452876337839568453197950445997506278273909795957229868149132033033228927029726459877773703913096666262920174931368316626952400302215929684659986154567004021042987172543862196696534583421189864167181461169480843441830464145300893851516241303034631332771622575968798183459816000177856017098467533534554887385452149801278109409127257651206862153621773235544538816829459759530595577744302100776795633427292379595896117142734807283495215044203250587058848169249409500968016294847421022564704670579365051994155421281748603525343671458136902731928339872065143654048397304473697259791479848208334778253103440937889385356955909513891800659793890031994931230829492604608873666205487751995066083039029533312127492433264170853188053627584343876857454986595878913307386494882029300672407602261642056946096900356656724090967422314997245367640735561491806697957368635931146635923285082218154740927119962025517177477138632687749570781422305770108636379947727438594638595583296158901329183379487627656013189665057953727454412509657959198713041831153399910159057900810876490330368145626703903976614191137799958988090228311687242472516691792774501487538678044044658537249953563618686494394765674802696424858510532636725414248428876001225263588322203808728117633064453141055282691521406838300752952497816174244552601156751573129322029470532268485815070664533204492142213062359218831424245583722777623259291721432446306790773933967268568122342405128537092357635786326397828435836771532016510049666508882071955752095414330977688987822898946116186895324126781438207892920647722489178355260600750781828497567749330235094152221999693155068079852027051479677627556804628416791539919494722447834142295840853567713770715207127068164923407953125562306433699772389530389036386117265465172122463556468528337915648151681436715666372975874703725748420197492270277053376328787860007723528447269343567137110240962216355443582906833439396961337858405309811365420331652392938411563340152461892144099610611237040089217928829049978431194372981531171293606179056135860888494504639797878482402522585666128270910254036925747848696192896256859757215748665992838068371845777907698052384853690432788147637997065729387667352714434522855041439788896105511178582256254287323512856392822991077656918253450977109822229042335320077759450383195579115543797592713980044046183585785510542406286856020442517836911180620244754775032656523299261648500523678668873280326465732007210526540907895441608032204488067035725663932966928049928831206294076062693409034856992711798346773888095644551880745020126437334763624576035716091750175366255730988726626999440944657459726721029472727513328681621117353909999586906722714303113410081202982751483168580940204988557959569473096292994592914190790319353469800784490208306594446967368694853578122060949101385991283242670644483736147692816720896228498939920471865874469142594084825424810866133496591176924544494554633105369200819849374959927536258985338671672462464528968327882294292451079338745407173992791079947727901345963057137401139065999939002840682703873494243558793545692495438782932519150479544305603710147895656162617449511385112208812246235482348279826420976278334724046021303904683348239227095714852323279411696258508558481992559815236906872852084721529384237795278102159168662881873828584277917667488256145172144691235951798225190439362678341213232542242646881007160423956661058599355829671578724404270858557169838174133075137893764322949636151173955927019571066449451623450792496384873720237856070172232157732707567157672149669362232415261609752938892359918259737057405288597338662057988340691296170452360375267969677006916559720016811079661207263161916354580154515114850834570828556819946748850668215831108287365250860526810108380161271571165837359079879992099990610498839935097285830039237957127521785114083380571405968025088271757559971504585747571165266012670263292143435443024060958138295893332255532772081208861020405385754201177942718614699702130274914602787012181820189178605207080393701682758761030909484600657992278801959731094317718081810192476548222894074250624028418799186726554519481401766056744713952371824770501564701793313998273166610957608644527001115906783650643584374409466846026204071326304899193363661653984663343941305710457774375353341833263145525195895019521938708050046254631115917956823221222533656414964147831502075223772492119745949309268648961046743273246192719565277605513343017390267605207582940676914876089208541830867139892030343048548051500994110971977507395995459329170563880892937217004076660544478170030361750295824222510490234631485717673231537472014666964003611880001665827885375251682875366062075646135973817972745019813539886580963911570895738421696673250519733690983344801889145598439965195106204844735277246147423426191724879457529176225172905878278774200139878961825729092982900028875487519530393394345967231813975008634720055258860677390814569566439575952481107305220860782915148972828461490961726333566879393734312447775837081029970441605907776654928865772988736475387183276816133610100566862627039036673469996584502627582022155977609603673157028711530245465121391887490805342509343334746414744275514021063480395678796714107615116698531227026512817647980992344836369714657879758580847961753988228914319208011113386499949795167854084426054895063969182997452413115603996944415462210767218696464167946906324848108929235839429957934852621344247059854582201647737690334639889058147019345254197360765661422469314250962724517053242839357669797584984740893015346822757589230393793306850294523221297482630440940921203096255395500819620066540925360192719023624484903020123745632003540810069734215591233907806449062094419306038943003186053290362077112018193697996334697503121994406172198599336539402847951899629929082314500816658159165811120987041745708723713413046975326019451287590334033210870693007532879937143681361293211614876728996755419606718832271332126516032468551577350490594354756362990356425038170307263501268770218858699406556528435819939919764471931260786604564024530881878063207468626413332435473084105939271230709630701654943258922235378713110273684227245009501320746425209853467067470499927821289952725802849154244385035640837756451534166754076367789381607596409270271922837066357007607983666035570609576755463124939166339836589148565843085251943209531336973026521565919507118799227061613887005862037839092422828380956084103250124565139806829105962590605372684229726224015925400728753396086612159937964748568986185556633924849376556286491482809952760230494990828133080815515011488761621689140055366696285471437240116751130176455075589258615914189084960545510802546176096804511698646100494464771347701399815692391225543677162102327489724639479207255570312313760237490259180419895595784707630097824271690538999352816555378361809369452390524571838827026989232863952089042693179753207133257206765061875878543381057956572972283682701787832968087525871948999269495067026011361389565881185289757256302950875958650069351487273726400408661500523662879789592578615954715230875095350084661081619298457884764890459611753028272451168664746631087063100753542961231273288586512194110825130501188430980487551323034774130614277639707221463236370746741430037621082161681330180323342099837628474125421905540035061327898232495385695480144655880265604733619840015433958118213244223078185287029364044621748541937462794735777008994929950122954324966657930984364055791740257288034314233709907585899963221639975284905972199284367149817109269472471268081776403727183537780671262671200915713079543229983447840941472241627781361002704279786216477269620159210107673813610346531020410138264405967863365355937351818969743555920438877775405520080259699802070042450958413255321346467173996569536207013273534358062468527695195471901433318363954849707878931718815244653904926364124567413349159945771919670384167769334872131474497168220589613818249061189878720588609844874526932322543607944286812410830518656394640794400290969860351148202594065963611891063054889694340149190623400615955918424860447061346179033055417463833162423017643936877597446944307323817364602641148059533672558861031012850389480579634878913571683161913610824419207923615319837960632956591404350427466944560487295477734032121096930049469739601411997279233382246454724501890543070010866181607648225769638538979020123658763390314121830038132810167652567690534822375729008452694212266166413950430043544864400590622165521830505802154066730276592332726542270436859834555542534534816307550189630341665878628401873662955238336690218296803867905931696848643743103728257786818722240599436065315966418667391093081040360338129236184231457210834307326460508043805490975968204959482181062372341431534342246715655856071442850362787241504084425761648436919148197302831334108692719962424033236689711282030332721643922497870700852998052683109130168275621441222047083369033938863064258626650036016105679913279358716789846670809781265838533444730232933636800801449709288724540194057675753903772199592004420818570674476495538405234169295225493432219872209656591568441147824190119628546285954963392509116194710954697292125519395170750040245147409027509037469789953019365605707800937856161268045519349066290333055985219794700656918856196066672820216030955426653342520978915312297944098789076940322030923711564323861834473080197498915791028622574318948866793351416530706980675051588854005900777620693450296728063277256153480521395446712865828783759936444097967533262756449033470687235999161589828442199259641061738030826258585920492749798535810985179861583176461066898923129144859984063026562116474409725664233922748699386136101277944025949988263047877402358856296698761265049797305349943166719369266427560246356044095664569545578043197887970681066526359186701567820395621779497848804169390107641275077080568969885365275199551313821287172359043031127599987753815414760818391505641028522120032843452826130920737200189799263978644814371488769138272176476266315238692293860103902570546744801517242154698921527325474578185848134285085897251521748513376496875989624134058632756410052090968891226299750345564464946492753327615741556775960652649495472443533373972381726153100067822937810313268777036866931924356555094547031389433203195600598606660377258872454249004235048405933562816595532215634959132523984383999133250970382387008442928261024831549160816224059728545620408995544074784752660321129628681866192167997504389306018776592649381865059232361524838585831557535821252325677541406781180602449270654027240280829904074374165997530698747953189988244529528096225275012025701128518674301006075173781396522871740957855086490694063833712115142936512722760489692771880613574083455308233106322241247014599825777603428454867439022274633181831833872882388224616079259396024751393455614099531946585157357685752792016046416075507727513519703833684882043974128107793517850623258248162577364948169513017692132961588904521514391246474522057933539245925598149220199559796685759807514532097547382683498054933984934171555656115820307530945060900361310012774184810267639312559574584451929575675115964262199846320060946924815374643351921235117225561517903934782510296803871071769070312645708744360702976764582227560120764010512671195600454805257028413994885515291112186966595885249415710181483961404493145740800927577630290457252347185527006928146638387429369749756284204063327230161495076615825727186143331309213858735020859813760904391806467640296698216638441763921956692955211962707168765345460371823009636032648905676218035749593003860752263379745579451506488654854404482304576590301454236336451841434109715602089825340917705594362506529264962334753659041630311034057229607505547084170246599885283838652394244618332786370173072132260833187609287055250646757832201144749950976198591788252418525430804230539077966834041399223133443629436025827455269149840490749653323649892647187896330478893538526403152934629231294332394574626402177463439575866123328401867831821716483199272971759318366659550875305064913922989607241234982353930766678439544367094262307008166998222293971278961535867835856037254614470139113814653112148644683391434615563761204238414146573554572147994754937743935597628803191929805623366021983961808552819066391883821112169782923901035370430973900913078539212713238074754078118688290983240606872673492516809032063441324572414829654428568418321753332034992000108948854497381615165058751052656731947299984474228683404928770184155966797516427773496222691951970022825198698859100768793336584563549484730853384275120233959861413421961603883995220933331652587834985231352734096463147918930901594800999868159756502479707639034014929646328876828430911509336982414572696505082070159400231930944546134584331651725682300434176666144694567417858920435123570031877550703111489357614513092111443664030722731474412241635356868276872531789277152760819102868396355559297046135829309836677967339392260356276396704808641988122071784265905355937116343065028112320560144899338605090662762923778293536697244473642201275879822002004506830332738927146602776787513237813646183304199496530273015381849101350051846158702779663053180145499704658933785657917053839686069166990812173937842323844696496186351975709487080274374622130341698667596761335661621181273974536789932378761229646971941738451212454672824341094322766484810391645876407404769973303945607076153369611891526172483699879917932124139035251132842559255448969485939103245743873707438397879006677510274931341267425294754223414816625353350694561158038286595141752553116293406975125587743975711994190704184577951992517471923047251177542149326592382837771877103622688445047715543166531340566403579381394789095633493718133787853413515277175124492390985115761682568201822653390928546343749940559266628057722272484214611446287100403429949851156756633564418286952187895426475038942157693891075290906985110608848924480449399335118503105694708405214180945759577459023571878674089412092766745612624948273231237176916446626673616594914123985152866869618721159961464215289255047471674698618296391368865168046278477828687569798285477851650655134082956378120537985089051527803242471632809973102377915492032956598816525227918842543532698969985338428574269747318040396511765523168032396836384155094593290771863568827675356913760043967484161596382622741813728791172969044351385063004730104365536032431267838043876479634176567872534352274799115159805630725479995651851329494406131896680453770570346320758523631833809896149865992415071104815672184676044927098353122685260408147767032536104301655245050840664588022122168547185885380171719187252638852317740275487829795130297139555793207242054370933383271102050072068451255207692710616152110428198220257102896350024045591524173600937146351425685949415372862203918542387769406694813329566438414750604355165686527738958997695935465598056726397980067680270675023912102978122250061497777432747079337488818946791960452614466013014291358368883174178661662391189582149960209473028184535362905618820003421745229827209404778795459154302576379014308841842523472529506452473312575438761821177819375940785637852005703486878428465394752564302497917110598916236617146834323807347150124570584623869525108289768056817558366524969004871204284470142771530026857331066327561327488548219856385435684241472420010354830911221903202664223616579883602150476302047922835603011444134739004219782067965704790904802216820781752681194458843993919031656514617394111880945446282687172093458083045888212918620933293022211833286139140346425347242478002267747962248189284650686358170702787360856309806329445267038988154649192370438644285136752922296725526613706482938360292789716917361212856242027909383642383790678811162650405965170763471893806657411574672224731851990543936975474755369609025716104476687854779784998648229142722077090806751592933181756524753503270268309188763611863121147515224731276578267785103274914802088385403134428596436141205071746349087137106874542837693717042139717950920893433042990975526919506616669180679028499924873242391139771738380030650841957183242779954924676164384358154017259849650108562527579379898352483676472750327679553754887004029762599614472895112970973888847862055518094827199288205989860076661973960497505679966955717665792715611532781737428101071526629569579905742427497924669074409590211216842336865312879590040449625110517108232310909661072117549260075589476126772954996303739056896224532029594634468537476174941033955831287771909569736884846718855168962634069427537120717098547982673150619181442927062535186418607674338751052554662982904896329147386858921148353274562567953142190427870405086644314558571980478805782539305648030982864284689903617086177414293284048504149885030292104370534909140495411394639147490008977807914064554578180064139750913152860338966468291182880276716305030261784110867056873136169451256142892040767940976952290300222295462425383236921858520394249271857157854157996448847376516718610147876409446330770033347064003654674856243893027603858670081130689265592388955303740979690487501320475111146962467849060967500588763492752983262791975235051861056810806509618769470960252734089082645289436652728248109556716241962512429042469001684098308847229569021582906719770566796420457182389008909218158807776287269112472443077265647826164040500273879783661573040063943395733183289348686315468100953623048494048829479247752793663313966529019136763863071696125473173586384012852503079933236940463506327657995874352239313934034355824627542103835268822418239352354994973479710019886553341538819085884028445360822947579164344555073513576801707170686250571968498939621946067835626396872393151731277845964018373624110115733778533655888132286391053652006201229547472783507892833172587054958791374892827915521446705695041882581552894125557143251198667884003442497955158903789853038298491911111475639694065309524930310855324689221422443422209249727115478427938617719149699854617585201504402648469143967841551470935330511564604149447462746094202161312962249314641293257259352725154383658522342235201980305250052316936854572591611641426397739757992620835631881463930088963901472559899180688551537581790376693316823256474940940247389085842249726262827110675932545592674731313511477841027930080970423458808679715456579357473364044219892893235812563440006597544353449555467601165180169411320435887237390708249442135429303823592172393889945017188729946882456720616714925648338564577223551042222540147389420844488214338315398232588832719789371666400721182198119725654659564994473283186765952057054500175025628872592564988979750794987201806014608045448061110537482388438175886426170434582509126853122051727227479346694880582904893329411871736502978025834246972232415992472304397992587748526490859319708554353985898965567647607245597828492238553150198475206195611749707947232809344704611261230762770445325114249774081603743560656003880947950602156567016770175545713688314375303141308998611077141488846725264146602313782407733722391439568362447447473760634908154184516384431905928624962189555920736292009823873808042012243783950116972552513820665797771495932597276682548050841211825234557762992554497215971155361076194113587506738681450036239249192545028472736532668961516887434841329265308830979657113192923093888411330266277581777673722634120494156831784781533222611469870513578333594699903009080887278695016111319073892256676152378006489857288179991608591201995474231369304507740716167050517886170493762139499356027920628084151832725795393755116176814976578807856662132263796396898501775811659589944403355127928100935489621150410634239414665799355855445477129470728386051072493270555528876239519406196970337308394991410951971255398717467428156894462898614599908101968652309179418778359909397751904582571049944407112985105836554817593610730005588964802948774549413691459215509935758091564584528159289751558643873979041112696479635065500644382161164901707606508990870837839782052430473425799414548229022606102455307742644504842514482240777622333300679658451886458707316606591217043284582388999027363609307215724383216421492770747484434488627665450571094121662646824994983879472722026538031281507084155559712465893062028585370126149856647682556538854595556018969622603631534602883136264330062871292492512206084413483236727267866240948051495834555938895577534544974447543184198370192834546052795185911839471147825334114980049139990335935336349812635007102189933114759049978764012649389323275639212416369612833816639383433577424844259628076748946890093908278228899955700031678462053385125134985794909119996123981616541383966504687356394349999215336824351515238154562422210148374127775399478900073574280460411323011137826395330916570083631488814489883564898503040474203850633858084112290519412843733928503393104042883728468434878902416550999740536996001555017951410163532382962789788290195054204733037345361859322716311906848808812875144293823573158741102149756393644666202818227465917066309444652992849243939382128038658835676815523461676413691721551433491356701486976646114413494425309096031970121575591521898885228507697961424339291983488719814674251388752900746869323412997815684917780313147896394524084838094722573817801036519151015093384132831422348662394732994271658042377929408780335369865223766087439539547422411383538818704315342024170672233281237344951082422118938620395667542307809817309715902424261794929353911530911131158975501814510488795579337151202953695485210792042344658953834050165689330935863410896820563154016063736391362209932426423411627591980077340556726311259953022577386122996407597678420524192695577317960441574236635405675292929182927070807804985506017264166742248131865460776021731307566380306466675464055758713500083156558505321044626735281766780548241891654032767887334897579172488389282518015990889210345421247265347750581677268929216794485036175955202873976726332704955337545550221361733382765970437009087432731659506096067256157501212137430154011646344104273028423034737866691223551116711795430262198680957740304957631731394132642802587015897049048252046638672510749246061683424408438076684834338620980129045220326307176366122725570452821993036441702145362400632074096448528322977102233508031136095135425452604943252983158840648222683268687080309887301107658471337136908430616844175181147650920664226398997059081429625508835740004252787628408856959093972746315705482864190619007888090128093131369336409589225274852661535486006924077147951080372928870879092247339020771570045510417715419714461375025125729983458282962360196600967049438208543525628830365492902901640874475371767008102677303529564197574446499463490480997257084671766042376617883003818429922735181770644800328936407175334601054053611236801709199532800544593285637432417127452451242125216773261616266602467309104294241222674386583628563065790766806737504303718071558663027543190757085602416025661911723271095021295109684515799197127902470460738572956222610847180790329372822387622713199428162327094814268430033312537669099120959439371745565939584079033482514748060493189219405063687039589823071687918099982307744016103081426613772805559705628117806557382766337862584955630845331871712441279336876552284191754632545514914377530396977869652168754689125264791756145776568695184661384117171207790501298811052907013036102869425080558246357306517329475449942839606244977667980625200560401830341760036344270755931763903574214721511969895538965580868886645203054913497186737460872486373531368257404119367104928433156864986581758905665301916961393519154022288545501286785584802519823984064302347046910683457921976961262712247224776660823042713233637587419743523214531604811900891458728824007052849969202377541995216559570650676916092125535138311274628039955269062580208001343233830238706226026607573107552669672133983478308197573665073367503665489362410470835519690615061586573371810025550243199406487320082399656479856515571849716689359004326069762955996174823357396712074229941208685179227418006877305997077722361567222648456612207380378709240405653965465643145551407128841240805006834282462456369890742502321574804862721575648587190535432196198765159717827686373338437843953447687333848260774671375033730675448009804959916717927216165450316282177487631501602265712284444463372453044057455375805146998393227823825821076572817955822655475183963145098307032648636290026935698350976185651562283644677302806360867276244054856475104368366327938169401630952245643115540990081711678707356441601078382252940064824067784676910838991333932585638251754338361533100107358102510803765817465397230837442199355172746786738364196196277345157655238354045300817799316890440162917303684114186642735823844790498249350411420260370833608346989371594738131430367331055553091442214866664260127808855721604074668911549077788442628359748326269050110526877704215134530926322281872832219248194300112442929320459692248282538272291116832990388978840116282081464713834285024790355943107593375053567514456519149263642150533090096122274048669835401140041607136651201609850358160868985607167790291762370238068243727776569453116916740748764753981496341410392602115250208800280546271957422045606154863119854022974643125772725319403667315110340916006203819038343561930623790543281821210975828686687897637350236585742124195470501386538328496973933293455379116784985095732372712254621793025811261298883855107255795105219197982100152436176568676912516598969596309610325903865051197959455457758026896568650272281749834015596824484816553920818216691918287007183588847428690419728922357663845574623046916231776838916022027468202678677101502688690765850092954892910716081541043976753672857514670976887468430905807704923796856687017609838524185261697604308151274398819887540861168409030230077725989634280916444709277535858971971597242421802488537845845388520903595655685562337934413575286489190998398116027204068658092037820547244964629654807242043190625129648996019492833823968749314424859001580123354125680215189958158564382123284448428973353491153296489074345793064153928410098006098806934452866032700036896898524869426711846565405630606100004693899651608919933048399426321570625367675492178717696639447232903829366646280625750488409592933258934835004934971147141432077361202169092538347461188611649286773263170215560319561628369141081676407328087204033971414590493922498380213353105411801916291792516471564376715048498101157219841174663484652519014330430532335542463137491455864719451064313115810004697783997467851509030872438554585912276816795635320096472524534397183932222317780322348944975238239744149887415474320195913996708307893617355153959081704483025218800768070384975003761750331059103724219000041950701155615042601118015078465061838025795800927639892393463378964410457641321414182517854466242694650627225007295819534756699140862785345439174726032306089402817513440957319457197301756670693362265127518409652221550676777035394729106978334601746281158934958201493202457233207629910356026102013320743473392463622928003627534512097687544706356257918422712684877037504438430726028750366597485082831874347999198656611667190605244799425340337639972947016477464275540823036132045072220667394887616119915990197343149205588243924942682605723956995064831062166196624565043357253124885001152954953633142991148380903131161331309840452998298386376105081156280158220793890594277406420486920671803016557331448698877463883487221978115195809993722270333013216011947957278255498066505163510297879894676499218762414051688444707037659348900594574877282821513279117010217515009496993085573872563137646465066771212628512243633504297174052702879265983451549282255258314867571037336751073553477054662185112597940294540418575148042647424153947561218240424461007354520286948646091382970212206305559203103230187836962437421807053308679827974003447044212287230618677915614455231736000919649269725633552133075694549451776827644472060828486783404462037486772459850262472196508232317243558414693683223109083088743904161760405740381591810825957966169952255360334369614108323571243957143933654959168734206052868302747622678045337441251875119006524221153605615161542715096241267152011528764615994846471823490234845305901304147124642067028803743076069984507678536558277728619755106005576756934027628489824027474257252098242188468213672618154938178787452913774566816157453494430400968185175884358801202022396758337369763098256903662919893688832755799803810387548218531756518416659120476910941604052311394229539472741783262181590446323872614637046895227915821373808305997917852513470521940894133183863180821906231780338746419287476964938969093455334375512777054352937685136864395484200134125191564152765923974747157904279355904420913371938616948893455097241902944472388507656330710007492612992577246541485733190029183608076651408808416961265842187348354757483333528260222144212446406954465947883231392611610054404792657479537436198014379433341154318067492318328485639031212403837302803061106111595551537684508947091568256782400181727687411956325911093630575417331712931314629035659919819710290451451397067890043985842290222012427757436194191876631451826007595547329544965809944637096592132869965354718658602716286744073641200584459092944798932567311027006634801836719370038571974326342198620098610684794099952476948459352074004985139052234224515304016122161999596734789622402746969996990688033573787061449462941592950974300058893906890745743864653051370365148057903570211423153530583153552550669596117383084721160857374002766076355742210917872039980211100551790836542863646722973609514453166921693549711757548868709132218869771502832399786681430811256123185297503692541035563733996025571921358808783726022156034220157802161067665505917900341498613875097165495448153830215746067334489941774140499224578256934119815106910216516525774375612201655432438230336164941944544048471965008408644394944835071198849086947015653220024909363688491956966835793917174106484961235851369726319920644641438556190460993255734878746331759432281353685893639980655080086870155197348128385269287888629127781573853154243660571658327657712044770141502363595964502224619644119899932004606316285753145543296814469592150851839345836574339980788295668369329371485007788525227917254367747724505849568150614204231102602735005491947844910375343348249314672214421236648619133749275715263317170585311660962918093394870596333154954832850575324522387671471432781705325054320527271176638335131889452819633334095416060417709991243107445244330423062582894411963208098897071517737592876121293427112133427440138677437133296759465340559307532598262598007984776708579811813059069749786633257563073402945078594882492792194555425998665789371803946406037121739954259622671332028051891896053494031654332483579509367715246256827620036462940821744412622531707556695856289587442451240499849566438423689812314509925631510500672314802976133818533063080780318814090960705949870197660833412156832882866336813080011025315744754811799733033402932104470656601257299239127899291371265933004212187610260397767145533009125612481461167000186727586978918848465781620608742291240802651344221864549519698713572760865203037547687765163111394777256100924658115102580759774480825038058783140490628129659643543383217615479761927476170648931523976728300374998871517710366867395578419917689565916991626546143308941035260903079195130494297376427152398072061246605726854773889358591789706732204167160130761429271365492501002247961228745191738746093877556902852446704362929076335614409476184234938293173194747057623794623817879504713254131472912650014457025521413324347866315199511848035512950905859731325703293591066438872490541923087042323232836884932185882516236951301311564065475798189116970609687447352052182714143786228443096437892744602793326555680122981806574581239917352411644075667986370512983531577377046915250982424353774052711240739994936435109101721369398310400915242042724885360952846060551502528395868964441305945706828248011226697508497251925666771146762994222470843631966622335555544074640393944482304928013965977683586909156378785215151606067431625189539587164528965153198084161474260578567443143947547299154431569935839769574484011483796041312588421813750585549849214331444860502532161960911670485535303601999998300678834432987337496722945907191337080770086062455150267773282634065035661563687354294116920758835200732948869419593843995810591272738751235524741126599220492135769767183151837106947577251726809986497303234838238629818241635635185160854324331259827916725676860865306786549480938581727844518746346694213136734474827904746216789203323427768010014392844285709635643004149024572620248745913762702237790925282961308949799709137721224492931355394246485254798189855073681591834341488023596069384149021056499441935769072148761111668432942263414403461417787339427788350282681873426874014175460373662614218873681391265276318581230720070155613148307801739620673654295031110065317917432999145958205895237579077331366512129698516275942167085392171368168376653896279138919852683751724700767551418901294245831578280217157847136843367245747987919826010185435600809820104446016992830082328181003618809862256306843287982659291243330818396882501134772662615967190296602588010904716757177719343968120542128454261015044312988324505187426453961255822792471756380394908369868144072349171370667007257625755383333667393011362769185188735769488894609971323535298610714482253463346815921485510957086808922761796928937368932897239537754889326969958192971786502442225827414893297393813765606728688363303068717758921952945922178620583308975405785770773542838198008726551297744024640895703156088649606812847570771445811391249521909541782894723337553383721466232556013066291766781296761671022656217621459708106477503679444203454454915974705257455415354728714535465245152887419674894819918715927088220935357730914063065623733686933045385845127880195391369729166079686968821949585358164278565678805719313657031913381891541849215303477693540713654228600426847333263854578825073728409679204175510755079065078535301882359365949220431765944459166977373739570401574700353694790919806295779129443387446652377993965160438993013324040247214492787525428285954363894385371884603611649799676428295050749124454368234261419571984258965387241433421829492364017824020530284702998504915575550026041740398054479036540281944497026775024721586100552357676089699002760491282979584384566819994403248333915016479650520553695049777963114036855034034497269474896633850653549479855091538060374024922118448084889951879509588927942445773765344318141314441253942013233318711415526087553700351072332018472359302573695445043306674808340851520349788738688706417668549322284491570351893521954433486279945545429622515587402836885000539031624819233182880877710875932818347495268250360221965231074887731483439561856051561184311642137152887688140438591221564717289732470327398394497304081558706030941795717393326032987465181161035734269258679823167405248551465625758276273878636899352049570788304306499013146992557527361960659457432939033880267822177794552846478845952759347060272737073847619741231296032845659256463087201413069582807660512828845227815399452888507745980357437257773176740810863432119034746786129410432099407958309514764833095479135299911062789738650574569990303781310069370215335771855073001165890742769110334456463292623796710431558390163464854460260811806330099399716202815984124917163649383347456475406790681210507212506681946752775951147305717284024486871474483954464517420197466273828908966281285372940695577400821002555664023981108422213232055546927372627667268629249878921361858796382670565507332639714935126671956234656831332392921898244745388365010797387250273474905899981145397637113450008457191345022180623296264526155479143395395160592272780128266528954303622889100303388379892502886620629955990101896323068541111999348977332238878161656365207884399086281898073067294933297277055893889188085829213058936688901384227918801695847895399796610027669050129414623183010598553130878302578767597406253691706050709964632050534300015697627769642706752376319206630594401133696340873854773837832103804739462968006842277572167339158344604339280482099993522266212271965223783739168423026572143802701951787620989300888815538218997102720664649569383392488641246862387658921327597993469561317932777728162537006104434330371623008954087973093245521250744744653842905202745123702509285711934221915033031840461003104466718327852410866957733425993002755922461409805023625763338342474065583448632361087938609169312892483943918702097635443636642412573087814492989616268734884720050522801981105174792615473910208334136671537663961002843404998068377003801108781094920558073278246928586729074572380413772803053385176250710148459199783225678376678839603969362435396359195067244447951058682496213308921974353571581457334877779975384552608769500090486597415319447818793984856426668949878614628932269239659174008975149793908926692416743829060461674278347522172357268212222972354735131307812175761329245205637427743722585039015720192549992677039532104873320519080632420472991809057262521811837369630701262298251056271811050863552116924590932255078118782964040863614412167187870588544343406055906964156505059408456132826100601218090542103939499769987404895699383131781303898670084123068674650454626897857450522550425907211665243304428726560805119902962857619211711813270833641655524043156010734918320572202821696478767866615910963222595173132541435524156386739195737397358373316447534817610844493680404816688207929166182977651387063603361722940381522759743616429023432589436093726086521395974439391795894231374098934349104751590660193018229001097549504259114273160499592502019266394006594490494583069805709214995798805480500211742519648830637059469668768939558756137514906574255075207485171938288081195466128367358354975243307839526487074125771357083411695115929974196038974956295984610578285819689726095443664892004526361875206436746988816780448381505346422023723714502561957033691592140955678206762378993338839843113057365699265136021369880201673508261501220406279281185327615301576687552013837493249142294389682993058262906258921115132349226342184433597624603646857675071894666406358752751873667059541936269306719628709582420723650785541249244405394934906941644674502418746924701442972678969060466989298518897214910170293344968546781124335387175414938679685364024043379583481527945351700253996035202204545418716741966323202568645521573171629143725516998890207677328426779460405874212863367397494182529873743749442336455415948106522324444911052895415873611492454621611889143345204379065961305155732118362672926518708456674048499860319600649203478734627644321427306629910781747166965513267528911199685872484590626445288335238286065747108312877680246580025053410752588834697556765804947471204489201519131299347929851681511652910734424566364802338463762090858837961340529521670921445707142471742784009793313042982649215410715878888682264138310048800346869998854525320047508600976696754181236637479462886284815992116776124871086023040481047036633442179234790529779284173463919724764494380668152825635927970632497575528480350431018308984642474716057729724457743852419869187501553337438858442790851230728754221290340542465042749765032251967363714135920886577601445526818968400123751484514578325681818832695237644484005000123054281820492878827683494058681860864195681309212727244056912224952101463200109574585361670827236734610135494495644873859053154596346486345086728517336287556707199804825752887232454725906993954799691469158449022334337389892289709754109556746687162045220257697864036722478064221502775443384186988255033056616693618519868333739218506547871873679057746949679922740808706164798566477247166696795903287034067224011345459363201037978527843218984268534945391472302034558350123138804349293313636181585060928382125357805273114471403254283431190118728837521195545688897006437418390674356563319888640122161149010289597033123479755877816750221754202039161790869238324346273771137826762570601698008243086586548056304356684373557567289483918693255539375165860202807176681133898111892818112351370589518894724136765840098896423075321869390719408569542958061246164880580554037948886343337389805354452707998792112235071054310074967249608945553516756038339738681383486363612650080331793990987026317003049332568975825958059547568624397638236032291110135805440286384467719671291634544858849228895974882440046351371563253552848077522685219370248795733271122059297883969534387221305334435055215017346582619889489075396234791321936998472361465566524062111289028894349159302577813480686388729224267021736566053436664810895143907720989164412033429366045623569355822344649939775261364078435550416611008462700584839799185381918941315325289136794072071643662755385927941341994869684687966275352484086612162075870307079795076509841087296141589130494530428164556222389210092720593600520055803258526774128354860866095579132340773429382958217629504726305753277767144047414625251384695601462867055948445630278949299306243367554757020383806432342267774869418817651191981650080001528798215196498878015038502488831739995388679525110298658019682625466998273646807627863318087670595305811192490210195486205881169205150280676081787748511809093093328505091480021319441169424028757376317165612088768365115818097273274509127545734625039215140907844981326813857918346123395845922070174320912545813255061058548189078673302520085902176790902677282346713985344007254591238876172434773928928034580532278100794681281022332657210328563015567213324784355810961188047511727546401923253506374314437927681296770940894783444024630210848434205782542351064457255766556009246058766248128824639117853922553310591678000753863147913829584369471732306100609015931640767209364128203084170221947832883096419674658170285746054526252133511667540666387655704604198242152455962720649723859732981646829740493179298306446549331946421590089833078953458520028041954674760831760346037758890156204797849419352675968190319578460362797340661839621418800337736105809997862742847095695145236051346603962364616748973150965475181039624403233053848707729573848717357612456081781153747430904056451579623535064888278507982760739062010153911136512678795358695289600176712558685615815037775245872153544586613677208036456340056668542216032841300894783679619443005402509190451404926288597269769984689838568211811441781691424933157781519762927644831719299830452516413992201876388900133749267820931113193851842255245247266372537083516581628199691167569384671132475873966362917677036952413190949671482820110747690409542335977541233628411683177649054902914794257841307298895816832758732070372633633524285500710895149810833682515217221857222135047748372278169398449257439259860753586783504279792368589031912340830670176665215055649117445577125444801119291371686660071212560943087114352082517398155537268965834838447121798870517189745985548715778994192473839834775508345257207219262308637115671404027954993517562957247686013058689328220840411965262326734184083583723472730626415879525359413675782814189968600767921405746496806493459069956775874674438717878315111620885144996152123206574129064066314378828371161618191515665618083073874537729305734597470871320039708783465389625987349650390221678050695012119124633268005849314360067529223644116568841004484679784816710303535173274652905204465386920085743756831130513291040693814924219980825937322586363903415083291692153237611336133755131546583164563032313638218895043655051775344776309044150232768811091798163728353258590949572890653368451197133197950021004121527216508579730280638493962126333956082668938138172448303325338214688429797055582304398465275722971345065364125783293482611314307407414733802333959242958872375095761736946958027736515445953145881657211230500985454957031688279107747051428584497878182361553305049324739252855719030102438559802343516303983050674426594799627934950120272711837797547675972778595910045415387285182049637524740412692775212229768668655527241167496469331772740876508176706452305573239933697288736556921965297836716764666448952862684964126364586056107199948301342524275253820296289676449502681401106187194426965111266507567357141808000158202253657924559861073628505600101830521360011734914917458364804681262933061351787079629438215655543946297094519668773506273371730571873187153482855788203677392535394888568534378052605236719679552719806712967930823992916707898908256924588226987975555989200981405868380940379981981345227771460772101959461560922899015064161847069787903288466674856076603779851349024599682759849799099207322332602655036748495493016235081617724905718366335081293932647667431901449967464999999032378225704193433363222557765777730952321315237155663680982146993735258004180621961011415996917532250180655949926017498231935109654846188136546606099014391825444628508983925168433811964944436368292809810608823348153276455345765797662309025512119711592645347594213577685314084322694419501606253139954113517756101489979307598906194436858190274559486315965751560165177553088913204852978947110762900948292323604255761819712934331590235655954523296590109012525808111491910595429874873138011203005531279458961369365002407237070749089769542517775283700212403248821227060655099956288604887636520479554722314421344796912734932402552930145538935638173345781078991286931465038379839432911624916754775970761730731114855826521654928459496966017088270289895834801681238261789970854237464856366205533675001959081498967321747189548343627923651477587724811193791130174777004476026050272353252413141120380071043516673196782152459022580677920020973684005434823851292092690527675117887502705585416883887199348886960597368039701510078133078816391861491841485749783770873741955264883001822674833802362009774999612195578185819991805299278422782305274833317629088319432291614549240362707197154934447397307211877848862650224403677010294306459531030617278617289453386765345520169347306973157702609624427536265755893214630250753392053481977071849290838499427687296360141223765841046246365496439978447905960572357653194000474479478739413138578314888688344653048119451714906552216069179049575008036985206368279144708803941214899751622075370086043129913294408247842751172352295517076083832767612324439195766000888117186881940464097108898021783287959513764725420200377021905409865251447334317250048291992861735585026985393261464536167326857650982123316289862040629932869002773238923012987756471793104036431341553312661795401362108012488767063619206912140953517824244092380363178105629597253524013837420352277777431129575784986534924168536621947508389436173537573374336269284383637715459709599905856327202014279999985882463777928952731950243552959992996486443508622626892454890071792596534550773592933310953259537171503609224268030814838253237401369298832418578512962224324937172280884297142978471553903586380523529763877518135645562937729780752835970878649435173406168104308675630077568339728450725577676656906480419593783937584785906330181233234894013289463916111147417940144969279077161787616501219737706204440364614397672032364274053136095724625289781116467484026521158820184830717448394676860179710313185192263667757823748196001401039336210140229331299766599908175253731150250797776921137384730107506550004940580113214301545741915318011691719679351798219501426202526110252268296539912609851926541714323144605130498728091626923671748121587800471052771271369622092348227714118024487089947685185570713372506715224423401339064152864830110558222136066206837321834385149331385301682718665799378871393709773591153673902572044906241301798303507354670497972176477724085197559806468933584432951283678227948294717560743414054223626612824109439071438144026426262466710574664497508288448268540784607235196458053881798491844193497978926218209920565899620648100295108496548919281452769734838710890382207934060145774853536365873712880925482567379204594774584215134825474936006999556811810633027743254372966767769565921291483181835263417385504387455271205298888592140505854579610673665406712840791123694041762667821492674479291387758608862463315402920845821574047480912363020006378846790377638732592458065781481519529179053463429841392088091899601810241339569235253912754107725376150960905251876664669916604451418307428290740222115160624426655383357913637826647133624768390263536697519153380788842165959851336338094051347148761132136063766881604268378182880009010410193028555644359376394428376676118407525962623675064312576475287943694184133270569051270683005967477007088927929690522667290117916589256107234375431434570070797191034934431543292477558100827641013323140799393778722953383300689053997932785880715982805993973901023077078916740269579714799306978485774780399825361342130927777293836459579932587403553525574601209599880186329833936473030197487863208862236610564167483556869270955553416414731952331038074299205676591165007882580694991758821711805446117593118271860178474333438697604457739864955085073706188316451066630333851038744351489727932240288834473094414066209067790340161085980998849521387594111114303382333817520022816905356696387658545628747997309939840793664753997157719725735938645781875205499490015221001405763510721537150323623591332377046943298867848816168878117228845448010613485674241520826873696992140079644439354307632452123701658343426298648752929936968785583278000087044481337187271237463160436074184189258634840500677362498395536299309207973821992530782278186210865110047938857640299640712012166305687259285332143591022430793586154106304035538096857427314645570817793729799699279662972789165855561020312763862447680794500456394302824835910981672826587742096637956062374577461877457782407184938293560954190038121827027355419064916820740258147805201027510453513601129107686811751375299920929763553677519333079969214731229918891336718376585595005054971235860153164315093825572480284735558341533232179095015666248986943975764228133021028861999110365628829422189743311795708198655396240410160678214589856982072086678340289052513087407553935834818399997439970437808458912541434524422309006757359803535038745599545691549945115529253109849366450621265735369081322524634574218349449335342874086704482608769052601953298628185948840486684056528017203241575342271120121537923219916873460981033278440788577622736633540865023040374576923820684715549073768475452725715961961017121840139180844736796800967700175034461169553401623422122088332900581037552634645508664280137282655392068697949844273434539199927007835354906723029390812175286866094100892943780507063618576906703073991940887949577880337663489513960761511273162743992273533845127397871527805449074562169612876514576586136446818377156422826875129087358742562389459846815365036131673192841495943641538327198371533061625799431042138569334590357085188201573889515614207472613533244595392698645498574378871559804063491022151973721406897672383388467109644211699783730717682964877341551275167508350964764052778034424722155555017360491268650940602317453770810994431864216606220594270090662044775550884809085645022572434119127283166971046090502701219211676467289157805143634350742507384430467881134480616668721661568287236468575222536299061661980621395714314819259903537911566458894493681287425241108619447325796602486622235949631525017504625549181286557648449779326059497109668575735596746915485612212288835897987403482931247261495636345675194903807123937003156339234005880684724446337260823252875477879234224338961090207428153870825766619393558528088527935107044450229438080397953479230773150224800820964943664815366521955628785658713351529610833586738887423516801500100500233479429982083583890280922337523764494309692852762760995255618135922818848059807067576276914979055792084391293644765156864580397900311507228408337011489982740499429222325793746514237651143875772807901479569513612526277718854002194861376718152915214662018261446642975124946966593978742184201436240003919062605276857790989192251961658996977057803468945902482771064451885082292128888302565651429698344168286270935389376189613365269478471001639471504031225554582001155790727455914185123815282651952832681320476053030687733040807559218159480334823851126500954041291683588020749812704633361729533804314937209685104134665731276959784559886733368562530813958275135099154434783246260341886150151160727940709503070100478320200438362241922063237308904079140774037024172927841518289142438219015893611223608613863148498468585280204799795553471545697730414274732741807334284409793069357438452171162074825244690547076349446888210233672923300283790500581353794602336697504394816319760075221923960784700309518743647593236146658142413150846045648728547655766474147633058765719149783060575849446290701467987293651668017715720921842834821617228129777718208564795534172783749948760125403452526791269304709406826080357012171915795877835541599652653533315623279361195815571541341825226145220136223846783805187337235314495959434532849514232006899399191835073436064448772107249815904544191443079594134062798369626743251034722803764467094174573182733633210033989559415965807755154017913125705129502376686882556487897254639925968814388832012056922732124763666082373110995414258309323579051416693078280173760051536665879406958882118001824981809987003719887422588894253474198760696077830812439249391573462852002783540095444103595946912361407770965669829512825936616587128969766313783602639944557116448854196085540214301394717431154097493940554430333380505313666592055382035073927709777458208927306248405134442138696681559617301767777820454201507933172479888772367546077512725800047769420803178183305085665064308872550811527334463250496119445550539553258456822160014738633047606770490090104039627443579182910075905266002453460441915220130807902803346134111571157916068513629455055709487010856865999684483351475651644853895766676455536121613654510421114689862667402011541213923125624423195636994515240888089066574603207892581532940898573644402915238020735830745712578613065339957539381905273290878033761506540687310533157233977546092377878445568697933588642762990359594376561176537961340372401555511910355601657623592800811187401556551760564972587895261019826820009107182134694950960538553284374486347071213632596695047065389876920761288821481168878834828178143771273530611567312100718693211068871098523712226085603396268922964278632367609636722546447472050185795734334679662210942882115930751383108810187871073914381252939491737911212179433395773790284698079504405270221172854461803773662409092998049347801284360779073261881208985532255686137703831392578846659229883852348602307837669306330993680891008994386544882266058641144502151572866591979501032483336684988448320939955676154246977723628250343027110343766952074256160631079532313613663495766628619686657827323364835068376586435182262706573606130279254021916139214010112958576035625592713078944438102906620655497141362139714390413782261996206868180217607229222923160587037582394521010617594176338269769227001493469191355298285025402586178251600161624781446094208609098391210369811339161103007395200007332247107627286843798429391416981400782400538910945621880395569173678516138889137156125061048784045433232859299015740295851757734484369492426576192294374057157501481575635886828556444000930224481519462666959813959106747163430139431819387705001726438586229813681038114072894215171360184568946412307351235678291474131184364512538280882903551536747227021299662204091069122853383886530015859224024753468800426890688666308510989873853931772959906864545734585781164393764689434860412423711844598089551200995530962437963058191018134531910153817188216112549311898640643051670024000379202108150935517654515543252521041843844490174440734686365894562888477380002547970189646547894993728507335368472892437323282958600882936374428716590255549422448675759996506399547535835534240383675305750364915097591373022574512271424187446061825289230128318684264366340382605065823304029676876279645894884842235376195933767440642531902852928634150018461212733319069347323300502239063316978011850867471268516071940435675237820244063576879480989707142528123443726200746466619524702310253535242575378906077581969863141505620112304415680634266257547942476228695518754418351734946257446193845293864750212868164228233807265157215786929504457793861706906659515555347820963935946228551978026009899245504183306070238600437989385303560161436756195577019980852479799250016626367079381839458930905796793546139251278209896089117562067137573479910665269590961343866719414073632706944120257626613960220025119696825539863646279845967158582801066089017409757384627362977795696267018972745739020728369311221271359937574462613767597789769765056448008215390770856478357916780941516565827249909991867819018253434926328064110701779917370645657381407256279269921747442755678340773930442273700071490993874268883959699130417994559694987006518438985037236047698970819907169251108890842146883930854751908897897484970702877301312840745699205435839806004198459647494774938040734247151683654613065803015496896345411149580112921408593023165478721929281521280357539884239807400248109122696273281894993669047411004114730618896651551624453018418517806716327487338695047066061229028874574420796678982256983974500745845411151727939234787199050081095183256119515693527505764635006973185508757868435746449031961110253251792974890519026053404463664651528404456423134208429975633831014809152160608133945523154376151531922404625927650089558175587590816710043089722662616297285792603501193994647834291598452943534037621156961264034040011405814036951911313552728880858492521623183421312372655978693328856839968037929757848573664202086466447240362894884557027227465505045330060721176932842944822077576784855458630604053376200141898324549108738321411702310047470456031616584463788973909690449173738238080422894625940745634026630073555999348770572412308359496388171107095149696444422876429559396960847532626966305195630567754684263559699915055314310032038978704169274550662441133926413052171120188603085047058673478774622148853135253994137699449765131398183718391241057454702370818809486481031820710761767769580380058285557642288255914703162790075187153410412557032537524401286657600000259438151566753865264113376585602228709634072090383483513605267686343405663014037510111870500336748664797782040856865646457299522627546382243982065357109221759715031330058349356412417452732553242794073430975087423739857969859419655143898757664503941293711468146633128093109929524556836242243061003047495718478293358079788575004882648616012777395961203335991071368664564205700128903358820271494131863040790763486306700983329270166925495365806788519733188962052969756181133507764166032373643331384602232860968129798682737253770211306183326231552353379196498908974681360426650579142794211969442726796009384353692875627946039198382387214330086737666610875096928596131456138795920143277140221731148960610047218907688532998023430755606942312992221414361696169650746320063511909680102538300078365114699144175979657955821892999525579599096845343132141038389724555939915785898545885638453011927238030412635514083484881758599486765051446300383993753335628282225874802293758146469563243042226308540909055958748171375263186097745950546951828539414403238781305721379853531433555768224172186454500725955186189422564749710667618783373970214708266489085091529847849514869343590149022860828244146696965252074250038972597879661419689427487989667721526410809658155456050149450821184089226952782883410076047796907747406512000835666730011794153094404537689806511112026663570246991542102815121518393097773106634290507800911154205294280376900617183091159317662999144901012089930307110414597261491156228208806937726587963030385159887307891250755944591318328782374714931869661227543056747998910898604190273174710123821897704384877262334288267228889706770739688939745778963253058650417058160450032747200173341778102742269661840222020035033470638135728058853832201964706771879802261550306128110016876432804727995057165156768855176292682874557923216294071067495964169246428150883564988112151448868385306976592018382198694709408028159815790252003305576068069747757396856730843260519245109175604249460744883621579913751128778103650379986535258759678158834297578997119903622597091953550154578995735064967442624710562434795542563686193708610752075842329037832497804851686382393256762125606686611294822416503663368672578814400076100832425652204231794971601791552656342524792560027827213923162309954898917017904067472543242945138260522891919591810583640155607288964343467153464102464551047719363162646612558768059482341339664878020146674290237876998082131704877074890380714000189888094891496032326398560727712152508807009988377277388122727708833443342839857235944577347607029104492382554926458175336600673580975374256192241015885377888270806495118392923446855869559748607529585680659245333232494683646978449496016520021330436502589104467089694711597365220543294680691216304174672490522388481388501411038195105597179306820372492557325046242628389310929458076560354727213306410298317163886696977226355210751204877715229194051633928394219730157281825199725115912828558240659894687971782856919372832962267554092143893004569233027706171461322786386657873839302453738607133277188385636982223115997904767851460565192771674647492738018351777452276801311532012046963144784099412236068041658534963058802102732101077598782249515912635333495631854755737537665259771947564410214139586927510867713696990618021622352677274433779760661714886890688741414532255794835096053878147474492825612856819295459269763549487039191048429796894292512316106247888000441084906775528541688583117280789485043731943171933631185796771598504240894754994535715729035606934556778383642179213688387411418882943885643108685549224617835686585013642894518983697955732695096661366299642010994208863028004779785662640820262260089780823818486232433255803275573479009573882133493983682488664724501722395037276988168979661081805852267169764511178656552206020412241371000910414091214829096013825136079755663179103829832137409609537891155925582680090539384225695464130276381755581860809841792032902745072314862974472565538958435875273588848497871866044621602498909769188461703117657982055197534059801277767291759583002660499083675430638911586333805195613088868451632894518018305527858971655014313560190057660567224069276023959369584432670030019779035329407619839008378238824500418033415403596029190149070650580629180669287573180440036895276591287683943186150646004968228448368528559650784074462958732836540482763109735427425497530988661300920220135321321441014294178454833449720536221865721939573504277148888172147896221263290386511536818208754988277737390495859166151198802250820211888423542344959882608982403066464827763864655839194750290501058588003101984333767386160353726270606782698387686674366142864048560372607479787377604281446491764081621397689646449733328992621671570564630669270094202165372867601717598519276862163737840418176306845340569289951070486497617033396002682317755156700691034863253599284848717964155022369406772806325686286188417061822023978816680054856883617109961108430260847059745321493840587985557261369604655736363961459967385150158396289928475162158680249121840558797778143048212200156714605807892736537053719190964030108217234624658577210309450484386153832971919454248671089876684024849464533849090614560417305529788460577413713087606946332216890315053913704669321792374112726152330803469223167388419703084028754132942833315004544764253671934056893443667649808957499087926190826810110019761487297665780551757781308884737932544989215003956836298917841392775890776856529592890173463604882322705505934138834859260233617206420678729523822487993316256298863770815513064631013920301342242065005166147924251517584246947236090862595788248718063548176821881183338992180690813826254279576389615437016136757600806583816832570198438580911842196647212261117465665916232657107474683287526636255517628941565506474387237748059530268974664172192026297727988998192534849971206554602333343008666607966718621552142329576919184030560959888470289185624602104663459198128354110563009840696775411501119096726059263166350940244384250835490211363751134514126875234279832766514857658314974571951507708491836790026822681020426081400614815748727455503981668896585539940200694320306058851995602925218840529229623759942677794559877801145652853127185397353104507044281250339082467736458955704105581894583595727174786058622655512440157315395212752032842226192798338702746066331080358059782012359798405039687589410244037891062370763258432837119260211576060496720782515171119068170116918729803501642764503035700122660477489526861731540561298392967084027528497616396868100918808765877661391216357190500997410962972184862547799356070826597025042823417222795319715489105658684740486694875812027721966371875963894583311151439253086287401471881191853441970494262297750608183037933739954421791721959433114526793355042223223891645207749961532772833568873610022298059560608078055006808743413983924462326395970456501548930605771414468277941276205638137543161152346509823460775430903337781410689983079681577787873015801872731387089245131275009354657307119784929069863797352687247762967112535625593959185904443254625609265016263708328857796376838090999479307973174492686790389928726271995845082219234641329808048815689259773171707978317595108689717752997496714810107959718415108345304498092078038758276894357228837940560995663048635016850904086423008828728113131958372018956691924993981639874787302705109086212719913706764223427829811879499541615586459603187556848389703331612260883047911779183360322588302899182777289146892414834293720573502269641618018578589705488994671564462387312627525298479678075793645411510138386047947218478431262897210467823138192775643693218897659883647938424923848625451624903647931912770427928505903332292303588609183584493379639764459971946693822942231894882376471424020154880054779753266509967921140892107700382750762816741029686880497654546611710725922404018801450136200736913931895085798364663415158451419649017701646433784516250878334456515934796287861466680338823936718982875981007290686777628700175946988969160922063225903136316481505130272750779564784004285155267832792305324236674170650185401658383787147977994858008727250789366695298703268228065354955643645851030865930546993161300263064505740718829032441875947355086670042579528433237781119966739562124999997224641311720545017673005530923889498421532773268888131322911049894004768513123126203464707641048287815312051729978484533930701746483530188140298877266475498561020523534739648273183448001813251702977533352683612538768242161057783639665909542820161394373436129589098297285960934188549835512977905382187411840359204194916268530806455199112809425267370037592887003480400498111784226242541850722579594585788191580766075194865977564128974156434027096649430071081163746288192875973797091468799207527127171755756509729306127748988434775661534670129048812000932386622172415777244751983961277463824804805653303486527049265090595185344985622066889193678453981516711813154141610920140250688100411635496593943674396037556013404472008452454730700471447408938318847067684368282531392303559052404588373289707912549601654351862195479416801369564641270293391242750244312380039488611092517602465850931932989026480353065863661092417855767911359121110289516837198750953568514451344998113734883072259826855266405548229054711967553219152703394622833475220511489761229649641666908913307899853121452330319382365460257546342978641011356750491453449287481609733073035400449714488952836462975691631732704983767711088124767242574718264615884269525361350707455141895845636223959772611345756716064337477072402775878243055909991026951239464883307194771138146817048581353888916169270725572309364684582573099221108763631290995451323167669763625020050194228268764799893009396866487539022893930199883522605170836177113476700906929797296493495205786307641771169824014888062907150522062205651432357029189724464362164686270823753064003143333773128836867174825696140935902034240770492619792821873762218282483282304410343124307016158756110023540952735232918498436703455839032958335538091583772168783749680510995006280761197105787326468584847168876597892255258473257954770681392833929053421233647480191272620185331455329443353794490274274733234599129116074792892568416717169511976457538419058183166518240194655281634403099666997545536710743385486654966251857310701065582375061428033267828596332267431106259028943938643413609503370498682690780955330461301740775674754424594363374426381908694192510620081586604847634929284673040275374443479420485755858133531854642947219045985418838432623180261588754743670325812202520022313988340776408476120826796995772143978207514680405480258719244499325559792231211558038299426995302425485568701759869645113612289682979516247049767713665631287327801887024239806484557691723833991913788978843682489276021915428134789269668875804135361588287254060989211061824500138387229108230381492481339076477612668365011383043300874795715263051871302736004502316684787265975832116299803869011295737718404776127238601687082814377909440778503674177268404962668930821779892208431864701840457701056385240846529653189422997122208024105651496431079462253448711754740454843803646515283686176683963168151461944979210647016338816984047845382274219646332515181364596092137436584101917954243266301767822650989502007035763185987103571638925707464026936500374676377602146801006661086027706126424932986197903450370268925090591047606477599801324675516591689559696574490276901376591543111578893921584017533968921206804346392137398088257301914254769611723762539666994294949233203747868626458487234826046477258056989179836874546290847779038147749259705499927283095710811914169902438649544874284504202844889132002475435617693673966479059476940187280906968524020616653241606867651549296950143445532342493830009187248132070219815033420904546584096619739027128491406665633469548611329639349378504418743098637957851617286732535585513087723109139152689623100145205243477388308659338389588987668799499577430132545170681566548972951825086185945644258810793292856717062909359661090471314002278433913857124845012210238449296972192665823224647909005819546355124274344738600379239697628312847800946266426621816702552754692299170943397326190749513525828166323654187341522655495378565411412090254655217290216377004508967583842230083005136429413509574669862445708629409847144707934365641414279172089409963642505540043397708467897162852430290990972802878160140584434279860300681758499428369138961645669304257847939118500591962134804518919427151129975304507833101394332029808344983326859990107621585778784549526394988543433182228675820553121947481264303123469232184046343431249660195337170708399985344481196297389904685687664403236432560324197231849520965682768205095733325159933256460656698865589214610510480674851283543804456957972953685026601490430677081506342260299769741619306652739497218967443120067082536110078043070254187427617559564785119799839004081290410959341958838413549858751257826427516935798117667775165119808402140089650415064369005126230703629596757711575914553840702485894678646761229455121515988889426191689636879161034636337969975623512776549473581685588976371065014554935709796338739014463630547345992774077918003333500019029525134043605403744563611483488265545187395973700626555581475155433095856616864867375270906471213953961487083961650787926219938540391080689828703471143592765254953357067019810751556640679922443497434530402478100360821378813456632321601523710172107366516572795573587966820765863134937671512882814659523143585170965064690535304894111451078309643292674905898774978095840499529199200111910566339433054734128538660856385617438406918503546698338289547215734620672262915620078737924885869377892692617537491624700760678630253873837512048749413567712102397628351889618772293921679616163511431939853494894090847695973562519723125406828472116266383606528087516096544187749135524234042888773096512072220685739356327294465530365262355290336615941776821750679932047690112786884069859934050452140367825166413596660907211253065954542724469341056389223315556119046805484553786920768663113716825030515080466962962544037278276772865530568810615085327009224671368319632208611756319035586631688645139644312938757735133383209161907662767472364898385341174633515003009406775102841177655558703396725178998857507278233744855069248947677227970894052505298132383851866060101686305090673274844493402993809230461173728217769111660717441129143281367176519412369757964373250906357884359329892875049621699381661206458430864448137586773618506775868532650886625025317443384093308858950582699699347136841524866647786607483475468474527201642571694181263064236606539112057596480188127720145297403694148113366767304857880806675009279603991345438888265581324253826748870185643546789684469737864751968091817993777756414128803322188267879787647696911734774018748570451997762648021731045458375094816614491396102608700743409262277882131624974925677729307210423812921946717687957468544757581010105209363091172036396436817345469757175719545268544571467948292752231596058699155989199739022652788292695842376778330266350256340681085329325745224432152294134940278479290183060403290743978119548556774413106813363065942550018053550372977754705574547250422430514236299019828774454351629995043614047927553843274798616360620306610373653789778672125500867729614613299004483658205828100041692306515537211101620842379641224831118704376861600831084092696420247099392657551894048385601501784551350044932754089237296149878096390944309434295652254635521127584636304483875185412684265432227285965834876085043670490037087126559012958880717949865788592784665952602061251922014735187042927312576434770342756077092986555013483935657005583439595032958998866686881031999740201641844197666913899764746404311869622584178447507584154699543087679629131459630889673671502304008176788845369506865340490812672635055300183730109644866768596616363445045526776061293886828681356646675359834009242531348652746327903049683394281943971429791361241709520294805347079344547424831204357232368662335329190715119546250009974798588509840200463101271230233635530113761079605953687252624836520476034044020263528905738749893444813892953312245120852574728525057535063604141650366269233806333826461016724733217715889839215626021518935954449069952803653189019760170888983449015666422785485693467888917391021416444334839430339908112675813176407825803204947705112329376941066393341409590772811796317754895113864335470283850313036098559651337690747522513489457218777688581884625957540347517910311891315994172886359067733907066057272453164627563156025416830883701550399599300543490002186651227092591275653510529749370936474836121894211435967502258872266470181638972442783507996157725963873135322953980519866958492480301957954827403217621509792463283155202366404845527576979125548063424791435410484794660628518782733132072614156963084349280528274277634262295546264460839385155333997823881214474335481433825901686155943057862491181995255400897052821849242357033482979190943326080056924275299736631508273099581637707745769489110778547178292478366103899574978497881218052945339012391787996329089558704714094424486500519331272296577030867769357184347994936244180794634574284098408894857310351358966254977371993884538583632412283503215381758632656681947251255408838056915773400086560166595312524989369976526475127994767145150325842061658464012028563011112381520052305523530312313275282085927783495961393948180907734487932060674691744288233490402995901893923327349825254615353155768978985136490615058774138644976756846083012811474810709474034126974476896466231716005695646205998583709701323324221701037873069157764891720436122197328655682664217665043007169075086182800920806622946615422059551767702585502229154712837175085136914881946010320280584882062749037520536287572784579455202272929607379975330621938716057231835426797430560412558124410264913814990383349725664567360191553252774641217477478569944544389883009695091225088262308320812926143347787346872855601757577988316418274158506145896632448586989893036367055315132118267496968816870310943868613344477163553949923844472126440978252443971675690493476986225061368578748997380652605649237511781921712164458960667345662833113611645983943019127694444525898805073622468339264370642827701909503894640412610436051716225591056872536062022910727584779757804846583789908879321487446219377926827543793768580943532730037330207204278878368862943438318750536255028576475437116549687898652823100274336795387053309657813992365222694210298150059841344345033433005436919846865383251387824827775415461393250757075028262760109216145082186813707684275624269018403460298283245906342494052172316731923648699137835377590931811596740498260380591424793924008273700248743601611044049789372639908767934277009130206323402187601360295401077168014142367526584756563883570434523306346900276892622169412066282390217741966260768780246499427061788657488029225129740214382831389447211139212616329832157327565673077891861190277541155739988457453863952797105715991342833781240373640368845753327346501103917154773106463250707045390486254734168008011087224049597175429695272818169892430315211414799367942581431697079564401338475811989195084888452344413485650410661961887458062398513049849444457422648055696442335280751101143309053974955744330701817777044691238748836033491786143148138692026450559287578437635754708051924301694013795667079105736164259826217674251296813098181867452986397934039584343025015063445912137580998906950641343787022358801745786203610911279466844955854909421596414007601117844480082035870059978394283734374605593151347813655213855919634866116555572795747007916075057451657179710963116027262695903149812013766739794286803919996216556015110226143299072724689311654027278917657787560713483232570867101592116516790174194064403534779057596750786654239576204719967284763267833337775829419275388789250288007163397794303776459897914417658772225598858338648473921015987914562054185003957686917475110960083387558339882706830109709783412591957002768768240413098467886491738075872733193044290850359922526603926563026436473219187871685020749002773683482254831652514497799578736044649449933118908749828598380341789601206555467167009621505016869133929753337312111324216709619068523424735639428290453491711903426878879759957628031861413160282121255932079453408386256445570847773647210978105975199597481946122268076107627723059575817616536375693790998186965799664744035057134113925957763164084761185875494095185276370697197097336392815946366798980739048778830675988246132423039900750635304611678081974369751563893992524383242185504893639097384082868656668012757606890935352790915032795822552624078728282229487819672581197738262872119784946543573305148762145406661469098754455416495762445653944988110421649320672800099992433480056720606301301498104389821799825837395129379769093437576789980758647410398491006269538825050524961111168313917478271021971235987452998510112491768224284013983333645548976090848047675316897452778984621924819316594666733864142431295431564059748095710125176688238712015209267311604662106026588581003598040085775498356660508872168621810662102125008023444209017891714468778445838286314518760165431041064025409836173057729679860391389621239901882409237422249415410844744182881788736106395748271348193775414564045178931445809691043258496069173160210341774887671351178667186127173948170148450949772208154215564771363327193021714645497588386468368967535501502249182927478493163476385610098598503637643048903133703696447193887089943572223770685579490728045016092428022047377650730859822443720668816645645345139428613269657921660883408421448731339205455609761367424602919281182659246543879975907030673729526342610202198172204337315298651791643726570584159052429893741265149643948786782104850826285907520544440610474300053630422236793025524765424945297484388001210381634888639811647704931863642255403221031985556745451645086013537331732667204531790689486824401834712500389433055532285894581716547971818939004287997854992701956389607461325579020482868208801707371457052552842277157442030855062729856342931646663355083942610758011241081450049428260674581462228362432237452380229148733775062813278698603322120113317952966726553901163044540164484940521572297686811995937231170223260338968074695434259991339040207441657393695253574596427990881887725387785520517546661191465751180843819680080738234511562491293443966473798001073651666828032839654676275071355131764277604833096945640647569557290107547607233207540049111661815664399840794330335191614008588588267981870035577122672395028025111507244331157852145590686286274482497987724023716698962092105815767546515786655247967542939487181836626008327543786894812451613759572952085922448569139601326449466896182470888991204352987053563646664248675882243524510380902981723232605578600471903903627423568415800091894168043198771050528290928466090201946938047063384057369424958600757001458025396517104383152198933620637359834402844049647495825908167587985445864035499307313242393634425606419252188051976917373215123951078388816105433265840823220302913797368719126878195710025406841319263580703169645220719277285286870751560501795586162060909530541629898376910858269812471075192096906679779604014126063924781317392495169014286796006593298288735220261996794963709531080810797137805653400089832448910314034120866706815512009097724912649051827912312652239731494649584305676479408778507278281866617832790798686022271513231602481975166697870958125968419450119821661085557473238248652256671657805928714030193512187117831440480957820043361115206956078719726354913678114475561524453488901121690720162773269224710290052576608277584136167922968740140066769607598273958402212060795713651746756042369588273875370891178452211175616069020654087636685497491726710725831186042347467458912957729493425170540835414426836170398435765892138790808743230356734478101416951129703526254410540816775068939178201055210722468097514545374469708520949559505359984256466667084101394815705493002448554206337257540396516845096256563664718748755795360582161810917178398567887718030189597149380773168640680260544287082857124817700465949040822750500279030151576356007934893292436431743132588757357675257648583771403551287444514684576117310554971724389638771203390819439614172256378029593834610616405129577555551482436032569499346675025955204727212718046356907710998636758183773118762853976804749383967596995257378994813466095333449025016686762842585446959159065280835387723760414274899207596651047101720762328963578048152788107162331355403798862317390895894165525663112363546392579986143645024716320929593635940258654941957723882906164948250869487505138896276075293408371568118724627677737866227567508823467967855244852666150534165111570321077991008260593266393280273366342068926842589462830403878662773182742524044070081153593929925317949761930646870868151069881250963703131922294704916715597987967067216663623876407733324711514495412649724309161147923464349514822845386890801565937646205739020048732576113255388457718553054686986282236052394945056323018851253727900611166525901852965226438489967793544516648294039075168327368666821731844967724345988152522614808236329822020059392267777821822016958802516603246231253055959809900419149065017458469076289395271669273618228794859133083412975379444718575184748544603757575073294835913066790877443177668714240289081352154696670852901726629881651188618102296204338727735463226204549124480943941545382344215488508276521434778241277191110490990244477502485866606320040615503043453477467570635378466919375199944131212985356008023468643310137753649415647165227707648558780275850345860781058818342010409072437220588194686659097293284994678824383822914732484007424494569451576126616537854151967130098826256315625738198664940849344603878038143852512893143398530706191196906051118823644046948049834665041589718228970605115524895721744378105532772917813845051779309747469159967274288880889831643612302455775398778748152896762741634596173301548105399446051669202475428157585034765745119743550400907377724295192780346625668469617412649891092364177005427160835458767904045463339328250109458896653459627306006482050720765855515880987070095410396574583369387278012549507063534545804039762868281739875607642973483137498287774977170576010648678937515423059793277570391711775060873646274641722747119864670375809882963030565998903894101996689973294978308839978147201478006744159170392448626202743267271696166377079774475284180399198199870527224812306879199740687628988980494705936709221900013994060592431638438371498739798897750064433436768356163150632189454398836483795197034272350043135407247051968045443505518293889225839795907320331459063998894327173210565759719886232026184199168024602099330327801819404712637659169417413378586639834951099945167115738340513512690782420841747710137190049434848734548579498659279247540973398600301217266779148016559028466427089825705298077083538214138385084969031321035104137389887469741910400804110618893314879408256168901569423217827967632714190264804261632498155268039953528747816841366622424366883213594163289557220399140652826285460325719234397613559306393224609408780567091525521363516302148553598892309230576770233599138731843703762806428573637822999965456738686200743716056510401171379744968999632608827380994633740592109884706698770225308885033524804059804257429685242528321484118278472032104045534737238562742914915121320941428684038103080029029012941240629713315787571113129192130664389748437661323254083711152657264130872377645876898658166769577930629347171516527586861697300379060525754158755014209007892193780144500272170294238616995362265037851041492693660896507325823791713343218721420260146853942512860198931757878589465255485039060595133233948908446315651460289168728345623230658769375483467294388917919068142070251978223487832885264075030624048604240978442113635770527694769934813854429562281709836808664521840729087125106530305010801419990861145171260060202322583092856713523439512374973020766838715321545654777380911902882595779562329082921925347581780343994998420596182897085725718788107519793350485149888326817918064238867300473524956899988079287428624728248885329205117525088712294499023864109274097121109864942568093927234231671472407238915882154017006099687728346015185591144218765337541754119654504983250584447806300856332148148060487218705631721335375754101234648742818215170141680379462200746108207842605057406954327828960846806183483866330580389177137988186825021256056159747046772904649568051445803202108824013915311760758709720213356080572544404612314254339919380066833119811420510789900164066216443878929443390939969016676904350498673176945676313635633720201519389125678306099058161485595297543638619796733672115234780463037175335033936575291217221895825676865834707139821526171985454021826061945751019106420849487038967520375957032097525760197668390778448982046271738941320742260756736365864262391692945945860561128044537317605845056881088059529203324716552823092551534705647888740151033033825406607876961817866408384041740187914128096318912626642711155603688489274830206513812343529396249363052245271151464279123486087758183345066617247893207924967625741296801910240623919355016848843196594008239678323371549627096217705413881012534751446254786790292196390048942608324476055063618081034745140720107837672513132732096166368833622485678140942051230773404047984998175715484522421659294997153026695397652428897162622460318755236892703309776610099149313508989718290445922278370876619757910441905831054311703412711300944252548037353972129704350872969589679187367615883928014980277516876420294243773498994057469990075084935372487021687861271906120316869956352167933721220370203924206025272150810496230909649865233796091754816956080679329747640781701430448509269388466446734410402524464012081948736132536569503710774481444335479667426998789541937127424478819109093538377560280240835124204818967945839874995418857927487932356960224540095013888695004056780651802529431682136414476186516875034421026815441182937527571600266554871538866064442483841784932554988731049875140725787371218650620118571144397654420677661742338924492215464397365423094345683980546316120521336337681583914753158375105829246391934629805339146737396023186223661372852956087678251900480144267167786487444904541897265189160868981998286456648650246099169632657501265261071943140051189172955479804649408591721558259631108230660204940055268844139621917253117793152761710447236310194828669693747578246780147091770769822309211660975717340367157792308764683747957602605331856424251926220103369240055419696681726849593148249297260647974222053838651964780626940832117987537018430064529585634738211172076443767119598521352235279970636899718581841513968071983116379657279981287138375691255580559110219324408679485584078749278842116681894118258600597503247014566556370368996949156724561343488955270133012950739895783108593697094067892371160060359217207163031595666299240104843233878686072924966430316997700331070871707022731623731282788098564085319573228425508769078808360955874620326806335258080401650010227355087733217257211196536397020657807017124618440370913172878070366944029306181895764074472424805435149525050699097220539257259559075664523992377232657580699227659161442370664698991689149497539623210589038791690122597991294583093047731265145780740703622938445469755239133184650484339041480281068593540167944827796112071385885111505793327109665348595552116528183322109279586261953652695368789802533214921596694457452172783159968462764872000876323244946152077262813278257906281772572351661189584705315498794987139468046250717742258546717365767394901566815578194273969375067059231273078162013916049443562549876523791119479625215000088761053838659922593997393632477553592006653197629250609137841046000642059733429601311794436416451608708720187570823072431510653337172080369150786559248916718707685939873270338082319309825526255147575668606858873539738611425601518041764169206775361541995323299434972186566831475934997715534087977270218508405495836553615754247986319571548921013825142356455326052808636490579474032274306201522286911528864187708138378759132487828255341331012850339380816138547635945288694673738205843733910388338780505069624330033288110137831524404779087411957034515967037723709083526320169817979600853763226360297350819589711984419812075210379862952889137495123295138537450810995903152067558018617472441532922640022004307197844129351255161914481899661307524379870338876684238361604545894372079213315292298617826376423553459460591595630225618655570278076184283811632163629793479489932241855594289701240755928261479488938021802450376713827631368312580186321984347888466555020676249097029049184339457994592515565564534976941736169122935540450448462979447004285534543263908442640327419967582025491599510907109445395812557577087395105071651186803773968893293282070434021415146177431433620288736811546964144275601685153771383278922553046629944557714075786558087534215754843483682555385787658763131923205013220387543124953800518934166935036145736111090696049450439512061819780807439694356988567571511305017181623191184416517235110829602457626536536648719489788206070459863689998169856210911376932945618678513058161844985944759664705245117870796221519796976392994824381572711514742715400927972488597193993708545154018932435469922202764871170148171847055465752487523349913686229739817524739802878262472283336823602356909961900181796735662429880520941226350127315502797679457908038913057037443410428882337177834219930254575912694757015568587910323457017331641458317629337266755569813673068482702960269401075068517163464465094456478539041159890087454840589330752968998711120457401709153805060149692209964261902283905371419375008085429173488289277714422189068926382676372289222000738365334011556299660044114386695818791723226172202334969415104741564740893681704108336184927661948550855244138861090641547971212173225425218105516666130701297493196554657532233235564693252323771490906100969746795182859220123375173332936473350562859964068697758366236225548686966152611936434961408332553331638163159674530088167618862360828929827070183389147426392930079974651126109753548321230152788790011872792131764849174863449944741963267553910849783952524742284739080167161195359016078843841426817176861679033949327876014721573437728324449980090210994105214900559622090233603372126253251210043942037811065159184187339636088919976123520419810202696550240083214618205155691071587622331698254720419290653096916940568238661790196165138797834567120415118162986380985071186140310366077194797580144458204823897884252031288138459609595115114420681232801317006636329738914781685845622789827810847700085332702963116101464990109483398575939097786469464634509412232867564027246721474091976396641675582989534648887804813088117747656024958456733751983686240386278608276385636725536686406087356127713447459805942584069229229993841891118813750103487205858322855595305036525646901540563504289695716470835068010231131403170085793983052170549558404756321339075027503618895095362167004666162219452104578695023697780892384654658663315769840863257552865982081304646027192195242149719579733377744621622935077073993268406729472434162042687350176937358511580355353391194157115664244418555045232109687574329149692501184573614892490597676018841545362101500496942765909483416573206952938909727007608653588979493718998972690075540986464337405940691901863596350333850625366157764938463902396897617219996654471582131286994823846844045404180942070365542021507370762753763710504185248130191499670018032669173142732103263255227403059614267895705976657775577643276908301794536755935185538304761362879756485313872261719047099703217498527969921453249054272276677219538374384912554655316211525039161281587467036071201199321684925574136216894828545382797185089253255294509539440204954277694022763067334078326764578529907759947677637297998584182044313316057403074913637153141267790335322124948451916930726027478971273868051210568035076950930564697627705888941545844399532392858661384132929700948472020718531293928916061136073144437664156669062577202240188474539686536486940117340593229757568202938603172629997103393546778881864817873631169075936490839292539076517023976247660294537398767100208355891251469152233454812925576693931430327693851596675443386567476621079313622806408091849815375011623042736271048016948487226493761118335625557776636906224572524341092967031292054976675489386309111668366887592242865766560368172218149660989799613444434409700871538410329488777164462877363986010725020212405663263630865114733347795114425936170072237085980657816886704921492993476100971912376812939326731659308727070680588254467096405046832161365873134874748718121221203385741799858485252029801493913467085803295886974596817457434877549030034882392442941654063837941834693455293415499283698507710794046785859546055734875814618563540846871433414144298682923217628599621886243140946437596891265381481552330134878226019100382962086276938409635192303936137027937814860138860946418055815903891157282033217506528050887109985634771366438584830847473126907314758283515261230327804715064536812372554622221188568040003222808935985876218159497696877137823282428620268182285483420115884894393572086633879584144075121373537479871230689734639065021845070309649061390349639774356135792626037019566867578120639595240426876330252921858966657208643177813999013796861873638476967869608501785984286133786954943603125408825019865329072308275366717275987821876618951352082713246829269943124152155630535419226357495745991723792955861638474962787775741073971162636159676627093903601611478766720233562809911307006755091567091990676034080270907166997423109571891162006266572156092400325382450947883406972094195358839184771471663526258642722029719100770862459042056819029735265276145375638519278906280018003469728399768117040046726998612727226988197823817297705674372977704099115285889318132491254160511902972717252988496483520273495466387743632524926676413848169831179559175274000625782904354957480035447759114974854415926420511789496417893289037010397501992623732457733661174648240149288552517944758027763533624347368226818105412999921238665583717967642211965801072542512066032539855425660027285341017535467618842695664687158578069142131996804218558978632938798855879946466888283992019050929229895934850151285465570584581902723699224813195787545365920145295733768523075639879435735866818852845202802129928136585999799161511379357763361693777237794651263161755877882163809539328467579649010993899934453074172473229730823314281674938490449557654776315911014979240854482928036665050525992738646020780929348798445892872485174438191598503117720329275424829485491059784629866466474515277676801872676163464655836290087577201871709389931115061183061178409996268285645626996141601771052098904495787554833428135828448613255672149146315793753396308504606429916138898851374486086936363453098577762449745723011043307987444476379772354718163043105427978500426945324968968981339137184179474329122871823646909626139985025449363976956720444826085819023685648328203277030953119946454384226118102652271788917056569196381994082274056766567647626064890526138679573290089363874327792737442963888807443508543764270087773684801657406697429428468778270002376879699536858366825421603338739331154973993191991327785427635070642710295253740133641164563634781354928113243277649142848714655046148611553881029509554941520345720712802868805768405659119709011806121779669603685183907069219374700964773508051612483789806245038499362140040901769789192006753756956124024274999547634929736549728394454575492701611512293649848545559408305843692592820600181462794714110310644995624672495932683315897837250996528684702222928762632900789742149841400950266580948736451780406008218725267174329979331248961954425827221256828746053776697976421374849265808541022580174912924582454399688786815595493020083624122608762280138810743918833330695466420682211388227298011376533268477149906169755501230734404304805291007828195152102292863373450125456340340164824220161242773446896970675295160945923906420367799336785454497508172752389055021859573425056851981218494704663933353703475770543817471236577975201359718773271416075655201712650047828419860706515089964515709511322359766579540510657008331260934937416621238506528986331401750653551219402676983574105750691487168594430848475442828545870151801441848903325637425955962262338904693450392411924263594548967657542003406556354024706431005459273597991086603729483384000109894627286713272972728607699848679228298544266901213837028703843813494377418434068763584119949470045350683532969474417022928432894738861817994124057506301232215164713160269903879348439842653850272030198724639845287663597040630972084824970421271856361854304708365685146268307677988361113951917115569561009255662781090456218524018211732635195728913611400235247414645095935426048061140771040748877118382877507428628637496404429755893077826217352101024972188735884263565070018814231773081088919142309964694495427340301017148715097550427717969665056973139271697830787792369304757265811441124501003988726451472442332291834567775730187944846096977227970104316967574126538835583869955875097263797852274178803562145791279813927504773069488797243401809557335124039979908521347166942570411562436466727450228721017817246945734618597143959234269944452811077261561922397495801178579915677516579766324665706791080968265534577082503484391320987552650159178909861418850566794454792443145430638255957870209446561320732837331992844950782124379986821752301953831759161163851855835416009255882838251972576790055612831474090628091259485293021910926009788697195769889513654844308969108157178709825202140335584338823566063244484491800681886356374088636913880684009252824168961796949586599689129125602116446895209364542375313404873518472213969438975468223689394191169188123840597552941538589291977827988624538209174125053060992196376066421600928901785277382863233292211779335303298041009967456746672579991684107866519228234321359863062814042576969923734323556922533479460427675846243503873835801903259946331775871078993050552551567168729626219806383300010839387911761334826683074617826604889934920813595857343676566909515654589275326012207826120346892139884036717725045370268953324347328622827001939520042187192161236940641255315791389320523153975586409988888787139078181641648828972829249054184601389640576733995970430982803646704743833225341605820317040773693992925203720563120882548760315953235878051669657665380045415498876632825172088911265967218045256288291483010805640413380932388991670961987195640339584399835910502922578843529429104831728112506658372776163076030670576119446533696015633876765117182608125333953048991404779034332844098889020982372711568893818100010994011247478766151127629406082087137870031042505294899337450426448162837119557799188819770032950550334235678977976033762938180516809735595214180306591778749504505117723043845875787402412199599070896358344883396471610370462345477598842815762880211735941689699931679853880551758113373154625321582120045885549992048655752413755896953806848750572327392637763212965203924171799193042849321504263579526930321194856917012588141981712966600252822775834656694889843938188020675976537605715537282141988358680408072734213722365184842409817802421646444793815509340656566391730029171973904969321756287408914396278542747665169797098474266395960768187801862133822630780428644160439150919750103247222008866925669279476171002921439794743038499408193487015199684458597543534777269483705268954344494080054094333782010164333958819938228832871093417132432065700527430556418729323053167659525312235355396072460263165635077002019559407876719429825224769927829396380186629982654817788489057904731214974959477737291160780002972525034093382990232060357052486198695169220788879987090226897261728330406273957827349900737837106906944857081726996981171859267907705197349282801093011482418458917492080964289905816398521368998026430801315729251364262897071196516246491598280201753486454372021810290496266461787944313989202857646990126611009369507649721128331871488781779198993234009616890728012788181587053212410687276188004117520515341165368821833541290248394569290434511071027227407921409276189962030903011822016606126903424499216419740481967726057273513747862250559796674503570733294380699252960626726169901927602896617919632163385401713448867254007400971752773863220118217804137716688552905066400303498818207751506728567711324030373432786924514456977283577749317737806404154310686816219986493660787764057202825616350041782090149453282285991615078631964697195615347242307414007702141748968408028536883622445959048356459828399848657081941830390936077117695433250730105740552952735387143039541857966083023665474379797359606619969499664235358856427116060648631379507560445290184028275332892659308825896666087956361309426466889688236912260825583539709839842978749972035904950197224087839617028117551150480597874465475203331788674353616450734274255274135872869181351085891447805742239912883459054282217047368796611695234920134139362343529264308673746805739680312943437807606051146049245651393885146524693920877844427360787641371191462144631578354846887573794155978638227263920829742430398844947559072561851464287540244724938222536085617057982456740631524853352893729182218774157158289555086470419863655741385069510460326310684826539459344827001695904844634415755953006011650930998881168571583816105868989319370352786488543453874382502089274810112012072632543644508784969610362234076121987054663021132715235236921856837780791504733109126199575102280629445201363150281262974821468832300476392572531582191765451474253174981487049138997663053591491821936759061372532358668002148009622829224860268196813316292351006174070303389873394218620553686375319302550093641805688744341762700346409276753791288069756496079838229439640209165057363169090319692556284832845733002146405933832150651877353121336721655504024099079507212578338369711140515674235315283850817617676428883998254734301217686032289700870742138469608331535983275061944395455817912642495717599656716751420397571796053267513780570819116112119714579359355813773071775168993004779811011055429234803804831136624004495206971973875929197498098542142584950783286726060480699720842982128106841420126147265199413093030460796364927859360572602968285738075544080116256363346776772807918888371548258671281248220977117210737708180751819162676065740432103784348206847816795554377105874765703582336011883363754840714343118110221322836531240190196376809299367214143200418209201792494542254616393695798596859998867582969194670191660690380869235585980062650481666733716620219986819410069803089829359276835085267357114577391253039963664268497453663260577287557204629479395608984769076849637670129382428397586939389722787074162448950134068926279728130650434412513897914475385180434331829069064531247180366437425398827207884540084494334397538254467661394939581534203096352976953008341300049570699395136131832707658329389205688137655896111046724182237001583144370514185110833258159590964421306677611990601617722409578955076481325663715998924779880710975682422039106978457903039659161569712256689456391125296255376296854616510031467235793536255798039259268561516589704049232736082100110706723291076698398992742157831536800732603166939371222805357536954989866639957611855031409437406611205041559295774677091258942812324631671447221466382861095600864697013290665302757653945254697158352335208219668295220174185850341695932234462658649182728824935897897326308660142721016897610720957585132287316877120378090061658860356659982857084250958859517063955551056149623297630790240713281989253210370922522943326430133386773403341931932729124856382318709414801959138440730325291701102323251791716462784258738311300085771528893950882902784458593048173168026535488743830829122203575578671388614807074910834494671206080916245221422523856574317671631881605877560306215835941569857358954082797800391145679683003502010245222304714026871177936107819588015582237587898662183230901548422600138884035830915649578568078815429853420829407153378302166080622931115122975905092443711669643019657694725643725199828821955648885524849761817783354429183564917675820034005700316129346543128584313296221042448214779833828680651038712089730410590370558037864138040940279009241709927048978422569146965019154879605411199297274654910484481799310882605804766883540085811102930998639204801561760724922596059296377815424517435034220606613224451418394420930406102507677110220005691663089076510602295484128420983480543852859159951781011754555808303916834362496847920146979939695185693594764926771898715703799567731115342547105216780636999979520719565644527750848378609412546302748574113501913803024100905200811591126415519859873238763767881369931267760969015533658373746953414081860657780475134870065842070744402377290159237172854392591757603697285757091651580899900078644254564099609730094926771479620701384709759128927998462747319436880834638426765254272233864649022233808236994598206425455697008940443144694534926534359687810023794315515173182177146469185533366073951102917540473397633522997181610811594455153506996944043820472683955289327846938118576687867307247054071652619798126301637832291959987313781496716917183532713835076071071262913012537377534569984542063583692161870130869944651127737194904468536268885477212993256443467622539041738324225098291111208289026283727015482211837942142883244920794136118563909645118413194487156141770082457887350870238093273041675797413595530602628590268670931620166336663356266041308542983266390944538282791131489931261335240796531250302575174187745978219294209560913862968526115395055393001737550326487201978318880440552086112107578981785442469384701986439118876173990876511951683849559245156666529539483446447843503762364471995433214335601270730305386616491144100453826805008474168905759783355607927748958161801708629570413345949145642905769898165798745623550211166605662380062417014130991944444762155913536466104220793660472893629936210169343473012407858544074283717700963322699987012207876508516066621144352585519716050993445581562236697885428109979991562760886101227312816547433550166166382790822788266708401423632603505192912661574539335866496906722818217479684085819326863969500584975622285528140009649594434787809901919703134571949183438029750861813918983546095373771656389005326266703019999202347619926652898812972957065165718765870724904121117722049954376194413394124804294404898561681644781070782360824466097229584160258902222462153874712454755148561101281223462407670035879314618389104258359809135746752632196650517220341268507018996153756106260828180540458402418876335457314590767992745669534369849458273312695763551502077581295475031861842207377180724637168102711062269075086910411475140379374058630481175865125768134692289079002838092929028524450682404820210575238676520456476451941033417271954229677306194745475853429526924940114688463483867289510180904148125453079739993566874532002467331526840411088018744826368235060130736672546245498362340516750434084737206237011384669889922082101126066115511340446687420470512402698532754426868154542369558559310965190482200460245785922997320400599296316916918821452494229316270987194847901698859804800506700063593063651558362046636517759713783709588625225123366332698531383877456356801138263644734100094634144766701053156037764904235525117698349783277094305796023053028584646879708163614012031066528566478244752609885033800655358035013169437926933227048476671398672758672650697461113098654748713835328465549887820018568419392394675204365745977682779537691817314420261675371343261962503751345743044641110416634764635291651922952820852974219712758110785208028745480481166007293817483104464495646322136695467791510136227692676145196078078874666388451010543402831160443105745393628869408653567594249584434526524977496265188054814005404343498103868919707340647060241957305377797519580530706379543796190160333064202747060114093572490142942929674216780563697506775066316989514054088689192745533524460780080095854251809687366134599969320769919789138261577341394549689582003977768700633748108947536909954515850958369381683138316643085874612799714067815531582510911787248577999431435882855329109187802681933764215118403883281937770262875395909111308178391949099509394223210888416963869286193530530972717585850243303663911713967925843424538443684023696606099351782540087803556812993433813633518666003404588315027645824872634339598071859994549861687273113176915982694578683032277274121596877397965716700868917080874076100779029507655146336267879742399960592173930042472773984290038721868555425232673637951507630214510917492734865251739076936181521171176524522773247847443408030020368408510555316284467363776759440140473823798808274555390573276010517581154367486857589484990065768738069249193308632942103359119969865878734938068132281663560013023344276311726429097667720230861181562486696083604192545561304554953495660096074653667954590108214203911842154848765088709989456287286173181470975143313640303139696665269190622991430397464676094188420998312291740170920920158209544447053297516283692425740074900265739302663330386561611860607929625155339076240068744955386969474461523112263562963827466977846950287954553179182300664690455537631337591926439788554629559649892554785470963716076707300177894112498590207366684257218424450858585032757640093359253789396303944888054240067833100160589663644379510430400262255220378439949060568732266975921741732400108058034070442395330250810832716752310793185139933706095723820126368907454606568099900076759697306876093524138825472021538224876730969199638684783321427533887864749885637249285443155531343531276384499778317824843371820854209607289095437622342868799446354556961053484894320840133081883373187175039938499402641332288017911160624471029568137162274588601292723888816921271988985889603577982773525934524231671331784327423904959846295035437280555099919850052038182513675898913244885082644497239900894242411183781815210086827755800344964267055061642468981731465528343785005293185611343136312379153772885646378765584417510637272514031382579686755779563516115846475472320184892487140304042516772211038245937872362760616132080341257045980437627914301260599525469662432777917941507593099755646507706548263324254891786566277612041914505933066449084471113927055027234029585350983863767080057897793920505588575394319126025396179755605235727840476357867790510841981068818330817492071199891561497596830853942687211876089227624694332066212714710425061050761212925835524566426440629963227129490988897580049553321069296251739417643865304981366480832079263684153291056675531489435967457469171972806533326654777415929584468749355858299264179268265605322217457630891922575440519058475943597280744946624303998260730825484842438570666332406205422744982855288187442860340741918931978458771115422986366240424093624610898308913421892266473803478758171119796822699219035713798583926435078356065010325961235742020390626424078965867816795429922622667449499089336087420359420759244520832832660608284410220801973084480615568868882146572430903086868612757895135291972751104071147200016938968620470111301741778574882517493488257460093699837516038384785271792249330748129368098734997377572180658718639015531627395834205326593860927900497183585488482450220252167179939533702273101447757778923591641554994874805614172931226051010163255644388296220942861022893385464245842764203983007729122375109372208419010672990928864402357656492167559770855038417141770516235427982347909364731823824139694253542705617014131587431159274365265582293520680099711671238342035275865938491057827554368435385048540513487218917142457081642054344251621317714942723358155997132387465651004036669033009510563327433758607124402922700928884508878759391142688411863161651496309835675252166823937374460609780473275384550000582755903537496546268365864271336011703447964789700383112798172119038584372139107547005289991536475464022600007268052501485858384565363341449418163247497498927322654299470005106668503716897532412786497386638139235881893739294869331927012608776730763089366819287979720876918406355410625266020342089791988617086045387724355474557641665442191828008496535434541315944438083453353747605110612199088588356941207217170360982382599347587438075480240591961759597435186063963139559214209847572794163030427753773220038323634948026906541979644517335176574940557863776767805967801651384933250131188183067837161704899657873340766478871859345787155634152121971606069283293020219619513122575988874861796133112280225119394671720415635782337900928476266446712530379764543387249374235414828807979652116382288810733830585584674530758625784223690806414917752271864716111804536289476712683186250235898369550038057380504212203555329039000726154502887072157506590460891837988805860066825798149412579370005919425274653363510368756523649905191626297586920586964715290162464726188307126060205393147533613401119439766759923095716168955579371484087653748861051778595147428638744800806341908452750298983923500012615196215314896587844581698373199573766307267902692216812340794221422381143622478677088276032551304547931017228096111613325624968221782074606194704544979022220615800730403790622192032424165984398138497313017830003867338556441949159369562830733597043189084086107868164439540782394380506028448572396442360464830279172726214699097739584202914218716939066923877137700168497970209587215776266142477740865844208671329982193380134559345962246057868571349555757461965932646674504642266310079010477518192582566494110420465485363510709545967475368480995605360712904679556445308912797251509417525457078983355930635801564206914992085094371390657977262388376297945294464052017355904662069671808444546240311927191138237222479224366281866325104257977911722376108755090026290211822125635555949911634826694171141155498312943417737867699553046440479452321297228744328356584536550303828553630232430201102286789573781581677571635109635919054186305654194852463165158983877243749016598000577245599802841287785111334657705731663165384727430132545690094119700062351073651721666229596217016401747877057293937255248046514495625907388926239327076115269126366167893996631181728641840963825266006143418957318739762421783906037517557512389265418649467446040181089118124914242758848815900156219827639942455320429134216411707779431412980636057062708560011823478598801725458046373506187039116626845916007210207444996141176251973229045750986683166162960474084633797740924625449309471035856177525399532623824503567525266298485619914076775710035260909902334323811459849184955515312571090274145199957641181505771990124945867494985555777048959459224496491178369751912612318509630817948905459977919754760208799153744281390625243068088615663921620612373845304506562017403851747899562078524320116735861211941109751493348448318274490293725103641467961238641299267761856777824570785130215154142584697050019341416151412744579162433988372402087464708117194248194791752878891065700435331689412430839661292031512844765936916236636013503923239007756766580375505649459924084260680858086953322832769054872178222068464755250650114140063607591872035347700370421295308190585616447852477734978228539546494585208483256972766421136617799146899243558596166778996235959169411018251397263945102014955429338918414841650907190406739715283205824443036046304722893228979856835507274746068230045041150657317920079755704725964970179444762732804825139023643478343784163498307182104874105589128349911965263062646136446957968427095826014860004283309189205400784607681911268685367402780551051407630660149792151004237192612085085095560726398840905717054704815371606653351179387208036804176590002613335135697431751733589157776007676386380021663483836913428745958986537544345848329327175396854417378794639266757931663180014168983857063478891963891385318768046027390987828439915027650843939532176357390455698875202936654705738625365873710425415423924060259472696351942911522929920570139551424872915458000244733944112522148159774000357256989572847976039331995157973269786563357630179897192535173259957818056507436407718516715038019767325183059419977544034110292759766807153455720515146573321588129964306939158838967761329258667432576521810731548261046863504827171535244684169871040539661292609256900291745170472378763296404108581287075889449172922159260388753769918530397384732127543101669603578026349285188664653612671686068471671677735701209404995544465211670799398588686038666448513610241403050000641695743764422218577723717398755570681786758607073243391897735490985262688097401932551227889494135871281056520348580294965738318395153074149460743091484190545263813428540514549508432690106342988555722544086954004683122221220863609487598851314124830433340132421335551609436081709503316613745633908866312000725832292802994896379318384328120599780344000597241573130755786377130401592420879707754745802565762245774098060998508962348460803766753402265668481495780099621419439413510569667007841798566377085613896897511042162457873194614258405410004328652411462774960117226364774234245443220388572054989709239864622743942699794778162924553521445565672910229001555060260729932025312910624169554106647439485298720469854434609126572537888342542544819534211282935971518367150199106521694732659531767102555147412118640427778660852943209397555732043088024942498438446891935396103561777382925789811629514215373774883676105497514547458404745101824189623551301769183522638892000457333492390610397592739154172154084443678013292859440862717821923562585482372696232260421263584708972026305749011159966304032290866372420596467225142473266899301598264973937083781714738210552118487895026953627211769685095331082959688568888469334134980189079587166762220089753699794706949958920039256191480133647988246981337115971333350321670620004179327586327416230462891430060611179201687490416449063138788641571634792978549102462054704041294581888164618558967627952693965167406722429834514517467663919410855014223529701717845760074370390997949939383795120167418504084312871386780637627815013347844584407091374437787187716930953343229513053554158666075687757614892021716303416287139737854276533965103794967126057047516516643086954017344476963812858535959704088016103960303954382112731916864939894661899823199431286627529710536416062022381871642274216613217938677247916433664707726119034881535210349526888204950910246810213489835436720032182092052507452921340936941319021363822032723708489878224604164258508810820710314392015204911886847429957804850328977123320499904397389543511035459281962319956899956303943360229403961332597069762108904524750119044282762481697469811159843757137891447944652383639130798534901424389591186740656002809700291303212790303795304888890952558930078343885569810440640351336023147261695100222004111728071791775132164874454903822181241919090342408094023737306886858499014487401259583816750450321358301807953632615620394263966316505285777595312873569105414893163602743085270894118275740087198443161903057492452967588896175688683773310522725853413095526573736970967964796517031217569724683678684498555839891944252931114327001892264266163992273942674328423772700878998677721105405922883674248028240504409750631737688808432432870386480151202304240144043116206798034534652669613718163524237385451337961658147359348852540920727710828584651448787793660888603182142653176329100224292305093997047839503352633167847989073765028937237062194077193505006875673733379692087589490666241382135149835169740052742638591759108755693864433091519854940754718696199536898729550013925470493905674699107395522120479466062914299204586081662985726343511762729200621764338889407718895579372336136235306190563135400030405248290174317231160400524693600672016799039981826987000561450656463422547046053287662267144434948351830444995441816399410527700310870245622736160362764994020363467567056167668345644855597622435836960220569722568462860107043462183147542429587405397307586328709763942091943152053716478665121461981346330635332327409238537686058117070738684232389496264371874357712535666165430520766194370896322651084473910984124369152726576074288854638227438666296349926780694660537972092438890087793892884853387703922325649899960686773509823914009715546815308599270002941250173478015514985810123463490677338664183957376611702112670908734817521173717509788986411699328411355818063849417011985730682274429624497082257228120653651422579932078262499247246404487606397451332414096825331428607445547296493890572141765136587984489697679033144084546568040070851940198556172198240333782055650917220499509049684282041715803289515496884083473247037797640469621952419840896824256614172884532545142082729799071620300777052420834178216389548271291114436402930885589330301112977122961073181435865279285171222353481792451525997625769893789974172794307382766918469668369801347635210222838602676050550442550603412160723783975613429608487776122418050532776746694718470468395656055665288692173017240403869123702069192942978728438741565180606499011481430742503069505040490223648870704721171258664798306108010619363226477397813266985956460570145189533821090928485372431686590725172463316395654208576364795723037575591106614692238225880776868325817861637965009259580269472434839988436658791576751873454839820213602171383147899577395542369783857786467959931793924291806971260039910211944551067585865688049669999277361225735580377416333226237566188921363095345829147394403509716940244615324898040741888452876337839568453197950445997506278273909795957229868149132033033228927029726459877773703913096666262920174931368316626952400302215929684659986154567004021042987172543862196696534583421189864167181461169480843441830464145300893851516241303034631332771622575968798183459816000177856017098467533534554887385452149801278109409127257651206862153621773235544538816829459759530595577744302100776795633427292379595896117142734807283495215044203250587058848169249409500968016294847421022564704670579365051994155421281748603525343671458136902731928339872065143654048397304473697259791479848208334778253103440937889385356955909513891800659793890031994931230829492604608873666205487751995066083039029533312127492433264170853188053627584343876857454986595878913307386494882029300672407602261642056946096900356656724090967422314997245367640735561491806697957368635931146635923285082218154740927119962025517177477138632687749570781422305770108636379947727438594638595583296158901329183379487627656013189665057953727454412509657959198713041831153399910159057900810876490330368145626703903976614191137799958988090228311687242472516691792774501487538678044044658537249953563618686494394765674802696424858510532636725414248428876001225263588322203808728117633064453141055282691521406838300752952497816174244552601156751573129322029470532268485815070664533204492142213062359218831424245583722777623259291721432446306790773933967268568122342405128537092357635786326397828435836771532016510049666508882071955752095414330977688987822898946116186895324126781438207892920647722489178355260600750781828497567749330235094152221999693155068079852027051479677627556804628416791539919494722447834142295840853567713770715207127068164923407953125562306433699772389530389036386117265465172122463556468528337915648151681436715666372975874703725748420197492270277053376328787860007723528447269343567137110240962216355443582906833439396961337858405309811365420331652392938411563340152461892144099610611237040089217928829049978431194372981531171293606179056135860888494504639797878482402522585666128270910254036925747848696192896256859757215748665992838068371845777907698052384853690432788147637997065729387667352714434522855041439788896105511178582256254287323512856392822991077656918253450977109822229042335320077759450383195579115543797592713980044046183585785510542406286856020442517836911180620244754775032656523299261648500523678668873280326465732007210526540907895441608032204488067035725663932966928049928831206294076062693409034856992711798346773888095644551880745020126437334763624576035716091750175366255730988726626999440944657459726721029472727513328681621117353909999586906722714303113410081202982751483168580940204988557959569473096292994592914190790319353469800784490208306594446967368694853578122060949101385991283242670644483736147692816720896228498939920471865874469142594084825424810866133496591176924544494554633105369200819849374959927536258985338671672462464528968327882294292451079338745407173992791079947727901345963057137401139065999939002840682703873494243558793545692495438782932519150479544305603710147895656162617449511385112208812246235482348279826420976278334724046021303904683348239227095714852323279411696258508558481992559815236906872852084721529384237795278102159168662881873828584277917667488256145172144691235951798225190439362678341213232542242646881007160423956661058599355829671578724404270858557169838174133075137893764322949636151173955927019571066449451623450792496384873720237856070172232157732707567157672149669362232415261609752938892359918259737057405288597338662057988340691296170452360375267969677006916559720016811079661207263161916354580154515114850834570828556819946748850668215831108287365250860526810108380161271571165837359079879992099990610498839935097285830039237957127521785114083380571405968025088271757559971504585747571165266012670263292143435443024060958138295893332255532772081208861020405385754201177942718614699702130274914602787012181820189178605207080393701682758761030909484600657992278801959731094317718081810192476548222894074250624028418799186726554519481401766056744713952371824770501564701793313998273166610957608644527001115906783650643584374409466846026204071326304899193363661653984663343941305710457774375353341833263145525195895019521938708050046254631115917956823221222533656414964147831502075223772492119745949309268648961046743273246192719565277605513343017390267605207582940676914876089208541830867139892030343048548051500994110971977507395995459329170563880892937217004076660544478170030361750295824222510490234631485717673231537472014666964003611880001665827885375251682875366062075646135973817972745019813539886580963911570895738421696673250519733690983344801889145598439965195106204844735277246147423426191724879457529176225172905878278774200139878961825729092982900028875487519530393394345967231813975008634720055258860677390814569566439575952481107305220860782915148972828461490961726333566879393734312447775837081029970441605907776654928865772988736475387183276816133610100566862627039036673469996584502627582022155977609603673157028711530245465121391887490805342509343334746414744275514021063480395678796714107615116698531227026512817647980992344836369714657879758580847961753988228914319208011113386499949795167854084426054895063969182997452413115603996944415462210767218696464167946906324848108929235839429957934852621344247059854582201647737690334639889058147019345254197360765661422469314250962724517053242839357669797584984740893015346822757589230393793306850294523221297482630440940921203096255395500819620066540925360192719023624484903020123745632003540810069734215591233907806449062094419306038943003186053290362077112018193697996334697503121994406172198599336539402847951899629929082314500816658159165811120987041745708723713413046975326019451287590334033210870693007532879937143681361293211614876728996755419606718832271332126516032468551577350490594354756362990356425038170307263501268770218858699406556528435819939919764471931260786604564024530881878063207468626413332435473084105939271230709630701654943258922235378713110273684227245009501320746425209853467067470499927821289952725802849154244385035640837756451534166754076367789381607596409270271922837066357007607983666035570609576755463124939166339836589148565843085251943209531336973026521565919507118799227061613887005862037839092422828380956084103250124565139806829105962590605372684229726224015925400728753396086612159937964748568986185556633924849376556286491482809952760230494990828133080815515011488761621689140055366696285471437240116751130176455075589258615914189084960545510802546176096804511698646100494464771347701399815692391225543677162102327489724639479207255570312313760237490259180419895595784707630097824271690538999352816555378361809369452390524571838827026989232863952089042693179753207133257206765061875878543381057956572972283682701787832968087525871948999269495067026011361389565881185289757256302950875958650069351487273726400408661500523662879789592578615954715230875095350084661081619298457884764890459611753028272451168664746631087063100753542961231273288586512194110825130501188430980487551323034774130614277639707221463236370746741430037621082161681330180323342099837628474125421905540035061327898232495385695480144655880265604733619840015433958118213244223078185287029364044621748541937462794735777008994929950122954324966657930984364055791740257288034314233709907585899963221639975284905972199284367149817109269472471268081776403727183537780671262671200915713079543229983447840941472241627781361002704279786216477269620159210107673813610346531020410138264405967863365355937351818969743555920438877775405520080259699802070042450958413255321346467173996569536207013273534358062468527695195471901433318363954849707878931718815244653904926364124567413349159945771919670384167769334872131474497168220589613818249061189878720588609844874526932322543607944286812410830518656394640794400290969860351148202594065963611891063054889694340149190623400615955918424860447061346179033055417463833162423017643936877597446944307323817364602641148059533672558861031012850389480579634878913571683161913610824419207923615319837960632956591404350427466944560487295477734032121096930049469739601411997279233382246454724501890543070010866181607648225769638538979020123658763390314121830038132810167652567690534822375729008452694212266166413950430043544864400590622165521830505802154066730276592332726542270436859834555542534534816307550189630341665878628401873662955238336690218296803867905931696848643743103728257786818722240599436065315966418667391093081040360338129236184231457210834307326460508043805490975968204959482181062372341431534342246715655856071442850362787241504084425761648436919148197302831334108692719962424033236689711282030332721643922497870700852998052683109130168275621441222047083369033938863064258626650036016105679913279358716789846670809781265838533444730232933636800801449709288724540194057675753903772199592004420818570674476495538405234169295225493432219872209656591568441147824190119628546285954963392509116194710954697292125519395170750040245147409027509037469789953019365605707800937856161268045519349066290333055985219794700656918856196066672820216030955426653342520978915312297944098789076940322030923711564323861834473080197498915791028622574318948866793351416530706980675051588854005900777620693450296728063277256153480521395446712865828783759936444097967533262756449033470687235999161589828442199259641061738030826258585920492749798535810985179861583176461066898923129144859984063026562116474409725664233922748699386136101277944025949988263047877402358856296698761265049797305349943166719369266427560246356044095664569545578043197887970681066526359186701567820395621779497848804169390107641275077080568969885365275199551313821287172359043031127599987753815414760818391505641028522120032843452826130920737200189799263978644814371488769138272176476266315238692293860103902570546744801517242154698921527325474578185848134285085897251521748513376496875989624134058632756410052090968891226299750345564464946492753327615741556775960652649495472443533373972381726153100067822937810313268777036866931924356555094547031389433203195600598606660377258872454249004235048405933562816595532215634959132523984383999133250970382387008442928261024831549160816224059728545620408995544074784752660321129628681866192167997504389306018776592649381865059232361524838585831557535821252325677541406781180602449270654027240280829904074374165997530698747953189988244529528096225275012025701128518674301006075173781396522871740957855086490694063833712115142936512722760489692771880613574083455308233106322241247014599825777603428454867439022274633181831833872882388224616079259396024751393455614099531946585157357685752792016046416075507727513519703833684882043974128107793517850623258248162577364948169513017692132961588904521514391246474522057933539245925598149220199559796685759807514532097547382683498054933984934171555656115820307530945060900361310012774184810267639312559574584451929575675115964262199846320060946924815374643351921235117225561517903934782510296803871071769070312645708744360702976764582227560120764010512671195600454805257028413994885515291112186966595885249415710181483961404493145740800927577630290457252347185527006928146638387429369749756284204063327230161495076615825727186143331309213858735020859813760904391806467640296698216638441763921956692955211962707168765345460371823009636032648905676218035749593003860752263379745579451506488654854404482304576590301454236336451841434109715602089825340917705594362506529264962334753659041630311034057229607505547084170246599885283838652394244618332786370173072132260833187609287055250646757832201144749950976198591788252418525430804230539077966834041399223133443629436025827455269149840490749653323649892647187896330478893538526403152934629231294332394574626402177463439575866123328401867831821716483199272971759318366659550875305064913922989607241234982353930766678439544367094262307008166998222293971278961535867835856037254614470139113814653112148644683391434615563761204238414146573554572147994754937743935597628803191929805623366021983961808552819066391883821112169782923901035370430973900913078539212713238074754078118688290983240606872673492516809032063441324572414829654428568418321753332034992000108948854497381615165058751052656731947299984474228683404928770184155966797516427773496222691951970022825198698859100768793336584563549484730853384275120233959861413421961603883995220933331652587834985231352734096463147918930901594800999868159756502479707639034014929646328876828430911509336982414572696505082070159400231930944546134584331651725682300434176666144694567417858920435123570031877550703111489357614513092111443664030722731474412241635356868276872531789277152760819102868396355559297046135829309836677967339392260356276396704808641988122071784265905355937116343065028112320560144899338605090662762923778293536697244473642201275879822002004506830332738927146602776787513237813646183304199496530273015381849101350051846158702779663053180145499704658933785657917053839686069166990812173937842323844696496186351975709487080274374622130341698667596761335661621181273974536789932378761229646971941738451212454672824341094322766484810391645876407404769973303945607076153369611891526172483699879917932124139035251132842559255448969485939103245743873707438397879006677510274931341267425294754223414816625353350694561158038286595141752553116293406975125587743975711994190704184577951992517471923047251177542149326592382837771877103622688445047715543166531340566403579381394789095633493718133787853413515277175124492390985115761682568201822653390928546343749940559266628057722272484214611446287100403429949851156756633564418286952187895426475038942157693891075290906985110608848924480449399335118503105694708405214180945759577459023571878674089412092766745612624948273231237176916446626673616594914123985152866869618721159961464215289255047471674698618296391368865168046278477828687569798285477851650655134082956378120537985089051527803242471632809973102377915492032956598816525227918842543532698969985338428574269747318040396511765523168032396836384155094593290771863568827675356913760043967484161596382622741813728791172969044351385063004730104365536032431267838043876479634176567872534352274799115159805630725479995651851329494406131896680453770570346320758523631833809896149865992415071104815672184676044927098353122685260408147767032536104301655245050840664588022122168547185885380171719187252638852317740275487829795130297139555793207242054370933383271102050072068451255207692710616152110428198220257102896350024045591524173600937146351425685949415372862203918542387769406694813329566438414750604355165686527738958997695935465598056726397980067680270675023912102978122250061497777432747079337488818946791960452614466013014291358368883174178661662391189582149960209473028184535362905618820003421745229827209404778795459154302576379014308841842523472529506452473312575438761821177819375940785637852005703486878428465394752564302497917110598916236617146834323807347150124570584623869525108289768056817558366524969004871204284470142771530026857331066327561327488548219856385435684241472420010354830911221903202664223616579883602150476302047922835603011444134739004219782067965704790904802216820781752681194458843993919031656514617394111880945446282687172093458083045888212918620933293022211833286139140346425347242478002267747962248189284650686358170702787360856309806329445267038988154649192370438644285136752922296725526613706482938360292789716917361212856242027909383642383790678811162650405965170763471893806657411574672224731851990543936975474755369609025716104476687854779784998648229142722077090806751592933181756524753503270268309188763611863121147515224731276578267785103274914802088385403134428596436141205071746349087137106874542837693717042139717950920893433042990975526919506616669180679028499924873242391139771738380030650841957183242779954924676164384358154017259849650108562527579379898352483676472750327679553754887004029762599614472895112970973888847862055518094827199288205989860076661973960497505679966955717665792715611532781737428101071526629569579905742427497924669074409590211216842336865312879590040449625110517108232310909661072117549260075589476126772954996303739056896224532029594634468537476174941033955831287771909569736884846718855168962634069427537120717098547982673150619181442927062535186418607674338751052554662982904896329147386858921148353274562567953142190427870405086644314558571980478805782539305648030982864284689903617086177414293284048504149885030292104370534909140495411394639147490008977807914064554578180064139750913152860338966468291182880276716305030261784110867056873136169451256142892040767940976952290300222295462425383236921858520394249271857157854157996448847376516718610147876409446330770033347064003654674856243893027603858670081130689265592388955303740979690487501320475111146962467849060967500588763492752983262791975235051861056810806509618769470960252734089082645289436652728248109556716241962512429042469001684098308847229569021582906719770566796420457182389008909218158807776287269112472443077265647826164040500273879783661573040063943395733183289348686315468100953623048494048829479247752793663313966529019136763863071696125473173586384012852503079933236940463506327657995874352239313934034355824627542103835268822418239352354994973479710019886553341538819085884028445360822947579164344555073513576801707170686250571968498939621946067835626396872393151731277845964018373624110115733778533655888132286391053652006201229547472783507892833172587054958791374892827915521446705695041882581552894125557143251198667884003442497955158903789853038298491911111475639694065309524930310855324689221422443422209249727115478427938617719149699854617585201504402648469143967841551470935330511564604149447462746094202161312962249314641293257259352725154383658522342235201980305250052316936854572591611641426397739757992620835631881463930088963901472559899180688551537581790376693316823256474940940247389085842249726262827110675932545592674731313511477841027930080970423458808679715456579357473364044219892893235812563440006597544353449555467601165180169411320435887237390708249442135429303823592172393889945017188729946882456720616714925648338564577223551042222540147389420844488214338315398232588832719789371666400721182198119725654659564994473283186765952057054500175025628872592564988979750794987201806014608045448061110537482388438175886426170434582509126853122051727227479346694880582904893329411871736502978025834246972232415992472304397992587748526490859319708554353985898965567647607245597828492238553150198475206195611749707947232809344704611261230762770445325114249774081603743560656003880947950602156567016770175545713688314375303141308998611077141488846725264146602313782407733722391439568362447447473760634908154184516384431905928624962189555920736292009823873808042012243783950116972552513820665797771495932597276682548050841211825234557762992554497215971155361076194113587506738681450036239249192545028472736532668961516887434841329265308830979657113192923093888411330266277581777673722634120494156831784781533222611469870513578333594699903009080887278695016111319073892256676152378006489857288179991608591201995474231369304507740716167050517886170493762139499356027920628084151832725795393755116176814976578807856662132263796396898501775811659589944403355127928100935489621150410634239414665799355855445477129470728386051072493270555528876239519406196970337308394991410951971255398717467428156894462898614599908101968652309179418778359909397751904582571049944407112985105836554817593610730005588964802948774549413691459215509935758091564584528159289751558643873979041112696479635065500644382161164901707606508990870837839782052430473425799414548229022606102455307742644504842514482240777622333300679658451886458707316606591217043284582388999027363609307215724383216421492770747484434488627665450571094121662646824994983879472722026538031281507084155559712465893062028585370126149856647682556538854595556018969622603631534602883136264330062871292492512206084413483236727267866240948051495834555938895577534544974447543184198370192834546052795185911839471147825334114980049139990335935336349812635007102189933114759049978764012649389323275639212416369612833816639383433577424844259628076748946890093908278228899955700031678462053385125134985794909119996123981616541383966504687356394349999215336824351515238154562422210148374127775399478900073574280460411323011137826395330916570083631488814489883564898503040474203850633858084112290519412843733928503393104042883728468434878902416550999740536996001555017951410163532382962789788290195054204733037345361859322716311906848808812875144293823573158741102149756393644666202818227465917066309444652992849243939382128038658835676815523461676413691721551433491356701486976646114413494425309096031970121575591521898885228507697961424339291983488719814674251388752900746869323412997815684917780313147896394524084838094722573817801036519151015093384132831422348662394732994271658042377929408780335369865223766087439539547422411383538818704315342024170672233281237344951082422118938620395667542307809817309715902424261794929353911530911131158975501814510488795579337151202953695485210792042344658953834050165689330935863410896820563154016063736391362209932426423411627591980077340556726311259953022577386122996407597678420524192695577317960441574236635405675292929182927070807804985506017264166742248131865460776021731307566380306466675464055758713500083156558505321044626735281766780548241891654032767887334897579172488389282518015990889210345421247265347750581677268929216794485036175955202873976726332704955337545550221361733382765970437009087432731659506096067256157501212137430154011646344104273028423034737866691223551116711795430262198680957740304957631731394132642802587015897049048252046638672510749246061683424408438076684834338620980129045220326307176366122725570452821993036441702145362400632074096448528322977102233508031136095135425452604943252983158840648222683268687080309887301107658471337136908430616844175181147650920664226398997059081429625508835740004252787628408856959093972746315705482864190619007888090128093131369336409589225274852661535486006924077147951080372928870879092247339020771570045510417715419714461375025125729983458282962360196600967049438208543525628830365492902901640874475371767008102677303529564197574446499463490480997257084671766042376617883003818429922735181770644800328936407175334601054053611236801709199532800544593285637432417127452451242125216773261616266602467309104294241222674386583628563065790766806737504303718071558663027543190757085602416025661911723271095021295109684515799197127902470460738572956222610847180790329372822387622713199428162327094814268430033312537669099120959439371745565939584079033482514748060493189219405063687039589823071687918099982307744016103081426613772805559705628117806557382766337862584955630845331871712441279336876552284191754632545514914377530396977869652168754689125264791756145776568695184661384117171207790501298811052907013036102869425080558246357306517329475449942839606244977667980625200560401830341760036344270755931763903574214721511969895538965580868886645203054913497186737460872486373531368257404119367104928433156864986581758905665301916961393519154022288545501286785584802519823984064302347046910683457921976961262712247224776660823042713233637587419743523214531604811900891458728824007052849969202377541995216559570650676916092125535138311274628039955269062580208001343233830238706226026607573107552669672133983478308197573665073367503665489362410470835519690615061586573371810025550243199406487320082399656479856515571849716689359004326069762955996174823357396712074229941208685179227418006877305997077722361567222648456612207380378709240405653965465643145551407128841240805006834282462456369890742502321574804862721575648587190535432196198765159717827686373338437843953447687333848260774671375033730675448009804959916717927216165450316282177487631501602265712284444463372453044057455375805146998393227823825821076572817955822655475183963145098307032648636290026935698350976185651562283644677302806360867276244054856475104368366327938169401630952245643115540990081711678707356441601078382252940064824067784676910838991333932585638251754338361533100107358102510803765817465397230837442199355172746786738364196196277345157655238354045300817799316890440162917303684114186642735823844790498249350411420260370833608346989371594738131430367331055553091442214866664260127808855721604074668911549077788442628359748326269050110526877704215134530926322281872832219248194300112442929320459692248282538272291116832990388978840116282081464713834285024790355943107593375053567514456519149263642150533090096122274048669835401140041607136651201609850358160868985607167790291762370238068243727776569453116916740748764753981496341410392602115250208800280546271957422045606154863119854022974643125772725319403667315110340916006203819038343561930623790543281821210975828686687897637350236585742124195470501386538328496973933293455379116784985095732372712254621793025811261298883855107255795105219197982100152436176568676912516598969596309610325903865051197959455457758026896568650272281749834015596824484816553920818216691918287007183588847428690419728922357663845574623046916231776838916022027468202678677101502688690765850092954892910716081541043976753672857514670976887468430905807704923796856687017609838524185261697604308151274398819887540861168409030230077725989634280916444709277535858971971597242421802488537845845388520903595655685562337934413575286489190998398116027204068658092037820547244964629654807242043190625129648996019492833823968749314424859001580123354125680215189958158564382123284448428973353491153296489074345793064153928410098006098806934452866032700036896898524869426711846565405630606100004693899651608919933048399426321570625367675492178717696639447232903829366646280625750488409592933258934835004934971147141432077361202169092538347461188611649286773263170215560319561628369141081676407328087204033971414590493922498380213353105411801916291792516471564376715048498101157219841174663484652519014330430532335542463137491455864719451064313115810004697783997467851509030872438554585912276816795635320096472524534397183932222317780322348944975238239744149887415474320195913996708307893617355153959081704483025218800768070384975003761750331059103724219000041950701155615042601118015078465061838025795800927639892393463378964410457641321414182517854466242694650627225007295819534756699140862785345439174726032306089402817513440957319457197301756670693362265127518409652221550676777035394729106978334601746281158934958201493202457233207629910356026102013320743473392463622928003627534512097687544706356257918422712684877037504438430726028750366597485082831874347999198656611667190605244799425340337639972947016477464275540823036132045072220667394887616119915990197343149205588243924942682605723956995064831062166196624565043357253124885001152954953633142991148380903131161331309840452998298386376105081156280158220793890594277406420486920671803016557331448698877463883487221978115195809993722270333013216011947957278255498066505163510297879894676499218762414051688444707037659348900594574877282821513279117010217515009496993085573872563137646465066771212628512243633504297174052702879265983451549282255258314867571037336751073553477054662185112597940294540418575148042647424153947561218240424461007354520286948646091382970212206305559203103230187836962437421807053308679827974003447044212287230618677915614455231736000919649269725633552133075694549451776827644472060828486783404462037486772459850262472196508232317243558414693683223109083088743904161760405740381591810825957966169952255360334369614108323571243957143933654959168734206052868302747622678045337441251875119006524221153605615161542715096241267152011528764615994846471823490234845305901304147124642067028803743076069984507678536558277728619755106005576756934027628489824027474257252098242188468213672618154938178787452913774566816157453494430400968185175884358801202022396758337369763098256903662919893688832755799803810387548218531756518416659120476910941604052311394229539472741783262181590446323872614637046895227915821373808305997917852513470521940894133183863180821906231780338746419287476964938969093455334375512777054352937685136864395484200134125191564152765923974747157904279355904420913371938616948893455097241902944472388507656330710007492612992577246541485733190029183608076651408808416961265842187348354757483333528260222144212446406954465947883231392611610054404792657479537436198014379433341154318067492318328485639031212403837302803061106111595551537684508947091568256782400181727687411956325911093630575417331712931314629035659919819710290451451397067890043985842290222012427757436194191876631451826007595547329544965809944637096592132869965354718658602716286744073641200584459092944798932567311027006634801836719370038571974326342198620098610684794099952476948459352074004985139052234224515304016122161999596734789622402746969996990688033573787061449462941592950974300058893906890745743864653051370365148057903570211423153530583153552550669596117383084721160857374002766076355742210917872039980211100551790836542863646722973609514453166921693549711757548868709132218869771502832399786681430811256123185297503692541035563733996025571921358808783726022156034220157802161067665505917900341498613875097165495448153830215746067334489941774140499224578256934119815106910216516525774375612201655432438230336164941944544048471965008408644394944835071198849086947015653220024909363688491956966835793917174106484961235851369726319920644641438556190460993255734878746331759432281353685893639980655080086870155197348128385269287888629127781573853154243660571658327657712044770141502363595964502224619644119899932004606316285753145543296814469592150851839345836574339980788295668369329371485007788525227917254367747724505849568150614204231102602735005491947844910375343348249314672214421236648619133749275715263317170585311660962918093394870596333154954832850575324522387671471432781705325054320527271176638335131889452819633334095416060417709991243107445244330423062582894411963208098897071517737592876121293427112133427440138677437133296759465340559307532598262598007984776708579811813059069749786633257563073402945078594882492792194555425998665789371803946406037121739954259622671332028051891896053494031654332483579509367715246256827620036462940821744412622531707556695856289587442451240499849566438423689812314509925631510500672314802976133818533063080780318814090960705949870197660833412156832882866336813080011025315744754811799733033402932104470656601257299239127899291371265933004212187610260397767145533009125612481461167000186727586978918848465781620608742291240802651344221864549519698713572760865203037547687765163111394777256100924658115102580759774480825038058783140490628129659643543383217615479761927476170648931523976728300374998871517710366867395578419917689565916991626546143308941035260903079195130494297376427152398072061246605726854773889358591789706732204167160130761429271365492501002247961228745191738746093877556902852446704362929076335614409476184234938293173194747057623794623817879504713254131472912650014457025521413324347866315199511848035512950905859731325703293591066438872490541923087042323232836884932185882516236951301311564065475798189116970609687447352052182714143786228443096437892744602793326555680122981806574581239917352411644075667986370512983531577377046915250982424353774052711240739994936435109101721369398310400915242042724885360952846060551502528395868964441305945706828248011226697508497251925666771146762994222470843631966622335555544074640393944482304928013965977683586909156378785215151606067431625189539587164528965153198084161474260578567443143947547299154431569935839769574484011483796041312588421810788771476031007523979744699606320070592567527058089794193317276971193703130222754161663697728429055695438665387165311520740598461126605862309821056211742495593919325045945822081953224038321036938040591036692030364979538772381888304036218734538167296941282874570362532875079313422469245375344426426553442087186844201102625742055399686802625819950921532492879992289715830948681688203376719392262363913418168380129179990309644767621866489421733826319337261486439175926269956856672745729450409299255799005038040570468434647685975769088263979041993972072114241006327048120445550569199268797302297371484485252655468280615835171825828818571491503193491666555930343783765970921432198843325226254005772042842074402283250045843861681675005599025071407185473610997048383617875091086146450519138460208669779931038163374159886457830578332647652957107519514988332109055982162640793834031196345431554280212544687418449707785953673118640261258750892798184640425886147977828745902515198403300084647161392596033973790978863456673410874121350147943629366839784591351310966962872651395314303433776978562366230496613219694691652318599309803817480771046738486161392180630441578720087036286192263152420914159515976518425590453818741629017297677012575572693955034177335740012782243124216992505126359068782556981160290996043213488643227443275991144493545392447817734783384671015216999500793590636825636010896327623082712408088403519957097871337587665310223803248381867609494106149173820962329463205671906692511676406546099428003180156717712835075205675957158869832151969972325444370741519956895399292333579263170448809163200207792624203627125678544648012803237256055614528203753275305450239039997951292911980914005195160437559921689197238347922493389289185546206933480885671241515563139001279204109991250450884492174289348960647714161321378911678602081054338971207922174391143628103472301609239660474543879990160086883462147415148215365960331044915377600240646374294572082302019259087051501531406675944228530712038628714396054090643431576851179940377786164827353917960714296212700461285736674849715108056259984102698263123304934640750141593574156224154107565131534435155767054815861958555267636104071017949714365036057588988802095083375400984090169015649303813672927166155669498864397943406169731117299395098981594837498476099592827067500194541466480461971329649515443732620383462310245518517054592592275773059896633827082511557688086003556145962131067551075311647080962036083655941652143593724550898217802057731037999483746920252376762474919586178655030457097279436526552456316085269624621538673914964110368303100291071290591488239202104836521743747293276461987007489709613466875763004692574294851435493857981059622390279623532960533936024661151467245026677922501042568537661856207561540736919205900890871845481072404059182252735684531769960425493770185160751911089643173509965686895549946091704844684069668619417411553969708270402100183588132667339239061525149721721722897483604083116313865743931193660644257782105560441785704354251042346205518264847074188484990353116321413626744050717685386231526515742566156173084953552094517119013930825153920215756296274704894606015303849817429245271765501036821420945345635737455933424970171309590930092612086357198890506517423613752494071298371320070933357528837260560381830713600353372914645235101086068819253391857398864673660561252328456265025447771222139424979114942983259954811279092928993129691040488706328560269911191499902926276188128560033386967995808970339228318189352136561695838137914813071597788863266241973339918116443915596390706496177384963158967131925074457263242103915994134843366556009383760090676311503084051499679509462212414327794594301533237031106695838067963360518420882998547211009865623456986742378581293052975225064289732601289584352867157158165068718984868286349097310702158453511176637890897180907875791672540576526245051090407754564537596425922056466282370017489690298864952617835138838226758894522285759132976217224086107211605808465947969525943066954508843752716785128612667126754885386710310781826883823294161700882149940830197520096006119165861080977794299309753061377693978506910665239270680940270960227472579339808883110791392732594943785760034004249684043618984674495400745966628759391999006778635051873984918698912538359639306632067697540608140775510770223458727563122498864159852012228647419197057755311290506359661523448508967619210770003814005952642421770322398714988152963349201407679890977151539196349045732002088103409827581171010415863316787406342569742145455109266334919213008483844076361796057824990855043804796125418096211225527458208902346700983231599453372728634791650665051133238685885453051707619158092439223859994880619750324351408069344523920281383953823100497244183444509673014397855423613312677619893934425019609938866982029600530550391000850470363874281091572548805864786602254923665537930052831267450919757873664887237892463487099747375587905648794492966845637088491651264988681469369677152994092715714213707716326861881440827089596665404686933657722193336439571822065136619440626026649233806510511169169647388581255518273122010993946785709294532535499399593662749563446081807869048459454728204745597808841859163361428910971777615236214950750465584321658692606313483614657715941629338467851224444707186966484375008608402686343237014453246297247611673620540062315625065446120433862165449390317387262154613749900629925928677412874217160844269948969846233458610087578355917165862955203708471112428136060482816758576488486988470464763589481089161263693075907101244208598709639771610687079758127984496366599434522548065713973057264437535408863423667982878348254217008401365794945938928165919625454641516662718339321528984258263923930442226544757929483675625749879540897839133050124453936572748766411713255343166561542550331518146653841029769331518722496037264719650361042388000909941426780375404968124667001702726477722458166687414287427441507755902713566659031329854895038095030178479161187730017890100778457061895285979261720707814007870161302584572192183994775024788741581886823612462191387538538770573150129707115265259645405225814303931206268931337251183775480499280123404247746388855322025671577875120485683593810253495810782376086026847964842275132447921969230651678441543196840713464819587772328160679080482412952719676895376087778904437433706582060948478371349563494728123318879492782952606609323318723172506949194778043112151399456067950034665641464526551092111659312771801855650982583950685792390633878272560544212816635119601955501611421149004058948300766966061403350149448610555390719094545508850070770995205531176079425569394986057451972488991432277164411059122858362409794766896271998203092236604206986746065525385095906941746816159928514223846694051839004409925847636657168219504276522982401439899995749376088499565832475414663931050942614599301196395742033461215743861321797511346753620881925237465733407495441112555101207039645005551234513534071377235452647874943665021168877395837887000969774858031524606667434194716565515238491926420217134243557903147601936816650876459942126278059877872838022768378145420557465876788299452191036890990434732446215608907969233841067597524356691587643888393110198037871807465127774520827929430325755461673542317544666721994137603936130384738550289675803446644583838040337298343495703803279364015462214833860419224888003487196227387118187904275904013746973673753212210679000810129121464124541424006379434463605255452274709502768581384978600141829696272256983169412496048357466767316220913898554063943265781478022575228147324080330281404154843477697884589684070113784017007420384748245660282017362069368087615929932197711483499906832438916895425207527525898558771909759417192595728148831764045711452645800942220272953307708447138013218233888843477375814484636270421605462041896507986229982469751831187180386358813929420171300329006442080594352364682140101587905725237194882581994664685523140259963612759826852959333003071394462361827281585976119091686964045546349012105141709418436077586314604952719698644415452600927153688143785779884842306096190392566601959072078282618474668205349210317388223492880767318203275472375797433014026641457180210400385002618332439418753391519458602262991492312575189265609459325073917641635008993337844766343217724956743752060045598812924129842737404758408179630871980103162391922264183941474549997075630158601714737568893972861339394752492433966071143828276728637142007406546990689018656658666470682397373628127514961859535973916631828274502842015241873376139961159669679734678286876575854203454069344667114860785218467471447627060994221936098441724550187211058680988109752038209580340970790987831846261589815801257834000841877420635321885016588973090783542061248526582604899426290342995178871476705238149588412687190652130472242271005129240776519428615219776724624067196031136485281355679635351614255133167307339044227839856167952122004828826220621749741638600045411693930890262553620348047611888070892770884137515631507355521801228265084945491010514757353715808281834055755196451128756091136904710018656890216736477043474382984047533247285687449043676654436391616919213086888684393047087980088397152973969087575200857882232209748142131017800030577854027973076923942207884907220162299402515894197618737097902975380462443068108081961133420149064050472416476989892091415694239400304750844466653025796363577728707657413124695893020470304128202675900561156266868360823634338581102999355832303836993284226623356506386901498122049269782777272258680755908288500458319671450962913053229425150317671484891839404526555622898341114328143915239091152386205959545971518548353948289629873712219336026848350402325766082509879522891681144036847048655334442697983860073451295576273087646713944615308607429413987542489611435941658027866656723272630222568627147875486978572288715231043645813941895888665264027081191582284016463149393666678851882285921259455970088879742490432222327811803310169777391343242082623265226606542233065582107457872169680455069470091901613115786973447354261052362736596145557467808603374763066174304048639170680314366945273208937216276096319318364180835987432023247413827952586594475637039956429516095035397230094765850938496053397949943034979986166375615754823493305482172506850375058554984921433144486050253216196091167048553530360199999830067883443298733749672294590719133708077008606245515026777328263406503566156368735429411692075883520073294886941959384399581059127273875123552474112659922049213576976718315183710694757725172680998649730323483823862981824163563518516085432433125982791672567686086530678654948093858172784451874634669421313673447482790474621678920332342776801001439284428570963564300414902457262024874591376270223779092528296130894979970913772122449293135539424648525479818985507368159183434148802359606938414902105649944193576907214876111166843294226341440346141778733942778835028268187342687401417546037366261421887368139126527631858123072007015561314830780173962067365429503111006531791743299914595820589523757907733136651212969851627594216708539217136816837665389627913891985268375172470076755141890129424583157828021715784713684336724574798791982601018543560080982010444601699283008232818100361880986225630684328798265929124333081839688250113477266261596719029660258801090471675717771934396812054212845426101504431298832450518742645396125582279247175638039490836986814407234917137066700725762575538333366739301136276918518873576948889460997132353529861071448225346334681592148551095708680892276179692893736893289723953775488932696995819297178650244222582741489329739381376560672868836330306871775892195294592217862058330897540578577077354283819800872655129774402464089570315608864960681284757077144581139124952190954178289472333755338372146623255601306629176678129676167102265621762145970810647750367944420345445491597470525745541535472871453546524515288741967489481991871592708822093535773091406306562373368693304538584512788019539136972916607968696882194958535816427856567880571931365703191338189154184921530347769354071365422860042684733326385457882507372840967920417551075507906507853530188235936594922043176594445916697737373957040157470035369479091980629577912944338744665237799396516043899301332404024721449278752542828595436389438537188460361164979967642829505074912445436823426141957198425896538724143342182949236401782402053028470299850491557555002604174039805447903654028194449702677502472158610055235767608969900276049128297958438456681999440324833391501647965052055369504977796311403685503403449726947489663385065354947985509153806037402492211844808488995187950958892794244577376534431814131444125394201323331871141552608755370035107233201847235930257369544504330667480834085152034978873868870641766854932228449157035189352195443348627994554542962251558740283688500053903162481923318288087771087593281834749526825036022196523107488773148343956185605156118431164213715288768814043859122156471728973247032739839449730408155870603094179571739332603298746518116103573426925867982316740524855146562575827627387863689935204957078830430649901314699255752736196065945743293903388026782217779455284647884595275934706027273707384761974123129603284565925646308720141306958280766051282884522781539945288850774598035743725777317674081086343211903474678612941043209940795830951476483309547913529991106278973865057456999030378131006937021533577185507300116589074276911033445646329262379671043155839016346485446026081180633009939971620281598412491716364938334745647540679068121050721250668194675277595114730571728402448687147448395446451742019746627382890896628128537294069557740082100255566402398110842221323205554692737262766726862924987892136185879638267056550733263971493512667195623465683133239292189824474538836501079738725027347490589998114539763711345000845719134502218062329626452615547914339539516059227278012826652895430362288910030338837989250288662062995599010189632306854111199934897733223887816165636520788439908628189807306729493329727705589388918808582921305893668890138422791880169584789539979661002766905012941462318301059855313087830257876759740625369170605070996463205053430001569762776964270675237631920663059440113369634087385477383783210380473946296800684227757216733915834460433928048209999352226621227196522378373916842302657214380270195178762098930088881553821899710272066464956938339248864124686238765892132759799346956131793277772816253700610443433037162300895408797309324552125074474465384290520274512370250928571193422191503303184046100310446671832785241086695773342599300275592246140980502362576333834247406558344863236108793860916931289248394391870209763544363664241257308781449298961626873488472005052280198110517479261547391020833413667153766396100284340499806837700380110878109492055807327824692858672907457238041377280305338517625071014845919978322567837667883960396936243539635919506724444795105868249621330892197435357158145733487777997538455260876950009048659741531944781879398485642666894987861462893226923965917400897514979390892669241674382906046167427834752217235726821222297235473513130781217576132924520563742774372258503901572019254999267703953210487332051908063242047299180905726252181183736963070126229825105627181105086355211692459093225507811878296404086361441216718787058854434340605590696415650505940845613282610060121809054210393949976998740489569938313178130389867008412306867465045462689785745052255042590721166524330442872656080511990296285761921171181327083364165552404315601073491832057220282169647876786661591096322259517313254143552415638673919573739735837331644753481761084449368040481668820792916618297765138706360336172294038152275974361642902343258943609372608652139597443939179589423137409893434910475159066019301822900109754950425911427316049959250201926639400659449049458306980570921499579880548050021174251964883063705946966876893955875613751490657425507520748517193828808119546612836735835497524330783952648707412577135708341169511592997419603897495629598461057828581968972609544366489200452636187520643674698881678044838150534642202372371450256195703369159214095567820676237899333883984311305736569926513602136988020167350826150122040627928118532761530157668755201383749324914229438968299305826290625892111513234922634218443359762460364685767507189466640635875275187366705954193626930671962870958242072365078554124924440539493490694164467450241874692470144297267896906046698929851889721491017029334496854678112433538717541493867968536402404337958348152794535170025399603520220454541871674196632320256864552157317162914372551699889020767732842677946040587421286336739749418252987374374944233645541594810652232444491105289541587361149245462161188914334520437906596130515573211836267292651870845667404849986031960064920347873462764432142730662991078174716696551326752891119968587248459062644528833523828606574710831287768024658002505341075258883469755676580494747120448920151913129934792985168151165291073442456636480233846376209085883796134052952167092144570714247174278400979331304298264921541071587888868226413831004880034686999885452532004750860097669675418123663747946288628481599211677612487108602304048104703663344217923479052977928417346391972476449438066815282563592797063249757552848035043101830898464247471605772972445774385241986918750155333743885844279085123072875422129034054246504274976503225196736371413592088657760144552681896840012375148451457832568181883269523764448400500012305428182049287882768349405868186086419568130921272724405691222495210146320010957458536167082723673461013549449564487385905315459634648634508672851733628755670719980482575288723245472590699395479969146915844902233433738989228970975410955674668716204522025769786403672247806422150277544338418698825503305661669361851986833373921850654787187367905774694967992274080870616479856647724716669679590328703406722401134545936320103797852784321898426853494539147230203455835012313880434929331363618158506092838212535780527311447140325428343119011872883752119554568889700643741839067435656331988864012216114901028959703312347975587781675022175420203916179086923832434627377113782676257060169800824308658654805630435668437355756728948391869325553937516586020280717668113389811189281811235137058951889472413676584009889642307532186939071940856954295806124616488058055403794888634333738980535445270799879211223507105431007496724960894555351675603833973868138348636361265008033179399098702631700304933256897582595805954756862439763823603229111013580544028638446771967129163454485884922889597488244004635137156325355284807752268521937024879573327112205929788396953438722130533443505521501734658261988948907539623479132193699847236146556652406211128902889434915930257781348068638872922426702173656605343666481089514390772098916441203342936604562356935582234464993977526136407843555041661100846270058483979918538191894131532528913679407207164366275538592794134199486968468796627535248408661216207587030707979507650984108729614158913049453042816455622238921009272059360052005580325852677412835486086609557913234077342938295821762950472630575327776714404741462525138469560146286705594844563027894929930624336755475702038380643234226777486941881765119198165008000152879821519649887801503850248883173999538867952511029865801968262546699827364680762786331808767059530581119249021019548620588116920515028067608178774851180909309332850509148002131944116942402875737631716561208876836511581809727327450912754573462503921514090784498132681385791834612339584592207017432091254581325506105854818907867330252008590217679090267728234671398534400725459123887617243477392892803458053227810079468128102233265721032856301556721332478435581096118804751172754640192325350637431443792768129677094089478344402463021084843420578254235106445725576655600924605876624812882463911785392255331059167800075386314791382958436947173230610060901593164076720936412820308417022194783288309641967465817028574605452625213351166754066638765570460419824215245596272064972385973298164682974049317929830644654933194642159008983307895345852002804195467476083176034603775889015620479784941935267596819031957846036279734066183962141880033773610580999786274284709569514523605134660396236461674897315096547518103962440323305384870772957384871735761245608178115374743090405645157962353506488827850798276073906201015391113651267879535869528960017671255868561581503777524587215354458661367720803645634005666854221603284130089478367961944300540250919045140492628859726976998468983856821181144178169142493315778151976292764483171929983045251641399220187638890013374926782093111319385184225524524726637253708351658162819969116756938467113247587396636291767703695241319094967148282011074769040954233597754123362841168317764905490291479425784130729889581683275873207037263363352428550071089514981083368251521722185722213504774837227816939844925743925986075358678350427979236858903191234083067017666521505564911744557712544480111929137168666007121256094308711435208251739815553726896583483844712179887051718974598554871577899419247383983477550834525720721926230863711567140402795499351756295724768601305868932822084041196526232673418408358372347273062641587952535941367578281418996860076792140574649680649345906995677587467443871787831511162088514499615212320657412906406631437882837116161819151566561808307387453772930573459747087132003970878346538962598734965039022167805069501211912463326800584931436006752922364411656884100448467978481671030353517327465290520446538692008574375683113051329104069381492421998082593732258636390341508329169215323761133613375513154658316456303231363821889504365505177534477630904415023276881109179816372835325859094957289065336845119713319795002100412152721650857973028063849396212633395608266893813817244830332533821468842979705558230439846527572297134506536412578329348261131430740741473380233395924295887237509576173694695802773651544595314588165721123050098545495703168827910774705142858449787818236155330504932473925285571903010243855980234351630398305067442659479962793495012027271183779754767597277859591004541538728518204963752474041269277521222976866865552724116749646933177274087650817670645230557323993369728873655692196529783671676466644895286268496412636458605610719994830134252427525382029628967644950268140110618719442696511126650756735714180800015820225365792455986107362850560010183052136001173491491745836480468126293306135178707962943821565554394629709451966877350627337173057187318715348285578820367739253539488856853437805260523671967955271980671296793082399291670789890825692458822698797555598920098140586838094037998198134522777146077210195946156092289901506416184706978790328846667485607660377985134902459968275984979909920732233260265503674849549301623508161772490571836633508129393264766743190144996746499999903237822570419343336322255776577773095232131523715566368098214699373525800418062196101141599691753225018065594992601749823193510965484618813654660609901439182544462850898392516843381196494443636829280981060882334815327645534576579766230902551211971159264534759421357768531408432269441950160625313995411351775610148997930759890619443685819027455948631596575156016517755308891320485297894711076290094829232360425576181971293433159023565595452329659010901252580811149191059542987487313801120300553127945896136936500240723707074908976954251777528370021240324882122706065509995628860488763652047955472231442134479691273493240255293014553893563817334578107899128693146503837983943291162491675477597076173073111485582652165492845949696601708827028989583480168123826178997085423746485636620553367500195908149896732174718954834362792365147758772481119379113017477700447602605027235325241314112038007104351667319678215245902258067792002097368400543482385129209269052767511788750270558541688388719934888696059736803970151007813307881639186149184148574978377087374195526488300182267483380236200977499961219557818581999180529927842278230527483331762908831943229161454924036270719715493444739730721187784886265022440367701029430645953103061727861728945338676534552016934730697315770260962442753626575589321463025075339205348197707184929083849942768729636014122376584104624636549643997844790596057235765319400047447947873941313857831488868834465304811945171490655221606917904957500803698520636827914470880394121489975162207537008604312991329440824784275117235229551707608383276761232443919576600088811718688194046409710889802178328795951376472542020037702190540986525144733431725004829199286173558502698539326146453616732685765098212331628986204062993286900277323892301298775647179310403643134155331266179540136210801248876706361920691214095351782424409238036317810562959725352401383742035227777743112957578498653492416853662194750838943617353757337433626928438363771545970959990585632720201427999998588246377792895273195024355295999299648644350862262689245489007179259653455077359293331095325953717150360922426803081483825323740136929883241857851296222432493717228088429714297847155390358638052352976387751813564556293772978075283597087864943517340616810430867563007756833972845072557767665690648041959378393758478590633018123323489401328946391611114741794014496927907716178761650121973770620444036461439767203236427405313609572462528978111646748402652115882018483071744839467686017971031318519226366775782374819600140103933621014022933129976659990817525373115025079777692113738473010750655000494058011321430154574191531801169171967935179821950142620252611025226829653991260985192654171432314460513049872809162692367174812158780047105277127136962209234822771411802448708994768518557071337250671522442340133906415286483011055822213606620683732183438514933138530168271866579937887139370977359115367390257204490624130179830350735467049797217647772408519755980646893358443295128367822794829471756074341405422362661282410943907143814402642626246671057466449750828844826854078460723519645805388179849184419349797892621820992056589962064810029510849654891928145276973483871089038220793406014577485353636587371288092548256737920459477458421513482547493600699955681181063302774325437296676776956592129148318183526341738550438745527120529888859214050585457961067366540671284079112369404176266782149267447929138775860886246331540292084582157404748091236302000637884679037763873259245806578148151952917905346342984139208809189960181024133956923525391275410772537615096090525187666466991660445141830742829074022211516062442665538335791363782664713362476839026353669751915338078884216595985133633809405134714876113213606376688160426837818288000901041019302855564435937639442837667611840752596262367506431257647528794369418413327056905127068300596747700708892792969052266729011791658925610723437543143457007079719103493443154329247755810082764101332314079939377872295338330068905399793278588071598280599397390102307707891674026957971479930697848577478039982536134213092777729383645957993258740355352557460120959988018632983393647303019748786320886223661056416748355686927095555341641473195233103807429920567659116500788258069499175882171180544611759311827186017847433343869760445773986495508507370618831645106663033385103874435148972793224028883447309441406620906779034016108598099884952138759411111430338233381752002281690535669638765854562874799730993984079366475399715771972573593864578187520549949001522100140576351072153715032362359133237704694329886784881616887811722884544801061348567424152082687369699214007964443935430763245212370165834342629864875292993696878558327800008704448133718727123746316043607418418925863484050067736249839553629930920797382199253078227818621086511004793885764029964071201216630568725928533214359102243079358615410630403553809685742731464557081779372979969927966297278916585556102031276386244768079450045639430282483591098167282658774209663795606237457746187745778240718493829356095419003812182702735541906491682074025814780520102751045351360112910768681175137529992092976355367751933307996921473122991889133671837658559500505497123586015316431509382557248028473555834153323217909501566624898694397576422813302102886199911036562882942218974331179570819865539624041016067821458985698207208667834028905251308740755393583481839999743997043780845891254143452442230900675735980353503874559954569154994511552925310984936645062126573536908132252463457421834944933534287408670448260876905260195329862818594884048668405652801720324157534227112012153792321991687346098103327844078857762273663354086502304037457692382068471554907376847545272571596196101712184013918084473679680096770017503446116955340162342212208833290058103755263464550866428013728265539206869794984427343453919992700783535490672302939081217528686609410089294378050706361857690670307399194088794957788033766348951396076151127316274399227353384512739787152780544907456216961287651457658613644681837715642282687512908735874256238945984681536503613167319284149594364153832719837153306162579943104213856933459035708518820157388951561420747261353324459539269864549857437887155980406349102215197372140689767238338846710964421169978373071768296487734155127516750835096476405277803442472215555501736049126865094060231745377081099443186421660622059427009066204477555088480908564502257243411912728316697104609050270121921167646728915780514363435074250738443046788113448061666872166156828723646857522253629906166198062139571431481925990353791156645889449368128742524110861944732579660248662223594963152501750462554918128655764844977932605949710966857573559674691548561221228883589798740348293124726149563634567519490380712393700315633923400588068472444633726082325287547787923422433896109020742815387082576661939355852808852793510704445022943808039795347923077315022480082096494366481536652195562878565871335152961083358673888742351680150010050023347942998208358389028092233752376449430969285276276099525561813592281884805980706757627691497905579208439129364476515686458039790031150722840833701148998274049942922232579374651423765114387577280790147956951361252627771885400219486137671815291521466201826144664297512494696659397874218420143624000391906260527685779098919225196165899697705780346894590248277106445188508229212888830256565142969834416828627093538937618961336526947847100163947150403122555458200115579072745591418512381528265195283268132047605303068773304080755921815948033482385112650095404129168358802074981270463336172953380431493720968510413466573127695978455988673336856253081395827513509915443478324626034188615015116072794070950307010047832020043836224192206323730890407914077403702417292784151828914243821901589361122360861386314849846858528020479979555347154569773041427473274180733428440979306935743845217116207482524469054707634944688821023367292330028379050058135379460233669750439481631976007522192396078470030951874364759323614665814241315084604564872854765576647414763305876571914978306057584944629070146798729365166801771572092184283482161722812977771820856479553417278374994876012540345252679126930470940682608035701217191579587783554159965265353331562327936119581557154134182522614522013622384678380518733723531449595943453284951423200689939919183507343606444877210724981590454419144307959413406279836962674325103472280376446709417457318273363321003398955941596580775515401791312570512950237668688255648789725463992596881438883201205692273212476366608237311099541425830932357905141669307828017376005153666587940695888211800182498180998700371988742258889425347419876069607783081243924939157346285200278354009544410359594691236140777096566982951282593661658712896976631378360263994455711644885419608554021430139471743115409749394055443033338050531366659205538203507392770977745820892730624840513444213869668155961730176777782045420150793317247988877236754607751272580004776942080317818330508566506430887255081152733446325049611944555053955325845682216001473863304760677049009010403962744357918291007590526600245346044191522013080790280334613411157115791606851362945505570948701085686599968448335147565164485389576667645553612161365451042111468986266740201154121392312562442319563699451524088808906657460320789258153294089857364440291523802073583074571257861306533995753938190527329087803376150654068731053315723397754609237787844556869793358864276299035959437656117653796134037240155551191035560165762359280081118740155655176056497258789526101982682000910718213469495096053855328437448634707121363259669504706538987692076128882148116887883482817814377127353061156731210071869321106887109852371222608560339626892296427863236760963672254644747205018579573433467966221094288211593075138310881018787107391438125293949173791121217943339577379028469807950440527022117285446180377366240909299804934780128436077907326188120898553225568613770383139257884665922988385234860230783766930633099368089100899438654488226605864114450215157286659197950103248333668498844832093995567615424697772362825034302711034376695207425616063107953231361366349576662861968665782732336483506837658643518226270657360613027925402191613921401011295857603562559271307894443810290662065549714136213971439041378226199620686818021760722922292316058703758239452101061759417633826976922700149346919135529828502540258617825160016162478144609420860909839121036981133916110300739520000733224710762728684379842939141698140078240053891094562188039556917367851613888913715612506104878404543323285929901574029585175773448436949242657619229437405715750148157563588682855644400093022448151946266695981395910674716343013943181938770500172643858622981368103811407289421517136018456894641230735123567829147413118436451253828088290355153674722702129966220409106912285338388653001585922402475346880042689068866630851098987385393177295990686454573458578116439376468943486041242371184459808955120099553096243796305819101813453191015381718821611254931189864064305167002400037920210815093551765451554325252104184384449017444073468636589456288847738000254797018964654789499372850733536847289243732328295860088293637442871659025554942244867575999650639954753583553424038367530575036491509759137302257451227142418744606182528923012831868426436634038260506582330402967687627964589488484223537619593376744064253190285292863415001846121273331906934732330050223906331697801185086747126851607194043567523782024406357687948098970714252812344372620074646661952470231025353524257537890607758196986314150562011230441568063426625754794247622869551875441835173494625744619384529386475021286816422823380726515721578692950445779386170690665951555534782096393594622855197802600989924550418330607023860043798938530356016143675619557701998085247979925001662636707938183945893090579679354613925127820989608911756206713757347991066526959096134386671941407363270694412025762661396022002511969682553986364627984596715858280106608901740975738462736297779569626701897274573902072836931122127135993757446261376759778976976505644800821539077085647835791678094151656582724990999186781901825343492632806411070177991737064565738140725627926992174744275567834077393044227370007149099387426888395969913041799455969498700651843898503723604769897081990716925110889084214688393085475190889789748497070287730131284074569920543583980600419845964749477493804073424715168365461306580301549689634541114958011292140859302316547872192928152128035753988423980740024810912269627328189499366904741100411473061889665155162445301841851780671632748733869504706606122902887457442079667898225698397450074584541115172793923478719905008109518325611951569352750576463500697318550875786843574644903196111025325179297489051902605340446366465152840445642313420842997563383101480915216060813394552315437615153192240462592765008955817558759081671004308972266261629728579260350119399464783429159845294353403762115696126403404001140581403695191131355272888085849252162318342131237265597869332885683996803792975784857366420208646644724036289488455702722746550504533006072117693284294482207757678485545863060405337620014189832454910873832141170231004747045603161658446378897390969044917373823808042289462594074563402663007355599934877057241230835949638817110709514969644442287642955939696084753262696630519563056775468426355969991505531431003203897870416927455066244113392641305217112018860308504705867347877462214885313525399413769944976513139818371839124105745470237081880948648103182071076176776958038005828555764228825591470316279007518715341041255703253752440128665760000025943815156675386526411337658560222870963407209038348351360526768634340566301403751011187050033674866479778204085686564645729952262754638224398206535710922175971503133005834935641241745273255324279407343097508742373985796985941965514389875766450394129371146814663312809310992952455683624224306100304749571847829335807978857500488264861601277739596120333599107136866456420570012890335882027149413186304079076348630670098332927016692549536580678851973318896205296975618113350776416603237364333138460223286096812979868273725377021130618332623155235337919649890897468136042665057914279421196944272679600938435369287562794603919838238721433008673766661087509692859613145613879592014327714022173114896061004721890768853299802343075560694231299222141436169616965074632006351190968010253830007836511469914417597965795582189299952557959909684534313214103838972455593991578589854588563845301192723803041263551408348488175859948676505144630038399375333562828222587480229375814646956324304222630854090905595874817137526318609774595054695182853941440323878130572137985353143355576822417218645450072595518618942256474971066761878337397021470826648908509152984784951486934359014902286082824414669696525207425003897259787966141968942748798966772152641080965815545605014945082118408922695278288341007604779690774740651200083566673001179415309440453768980651111202666357024699154210281512151839309777310663429050780091115420529428037690061718309115931766299914490101208993030711041459726149115622820880693772658796303038515988730789125075594459131832878237471493186966122754305674799891089860419027317471012382189770438487726233428826722888970677073968893974577896325305865041705816045003274720017334177810274226966184022202003503347063813572805885383220196470677187980226155030612811001687643280472799505716515676885517629268287455792321629407106749596416924642815088356498811215144886838530697659201838219869470940802815981579025200330557606806974775739685673084326051924510917560424946074488362157991375112877810365037998653525875967815883429757899711990362259709195355015457899573506496744262471056243479554256368619370861075207584232903783249780485168638239325676212560668661129482241650366336867257881440007610083242565220423179497160179155265634252479256002782721392316230995489891701790406747254324294513826052289191959181058364015560728896434346715346410246455104771936316264661255876805948234133966487802014667429023787699808213170487707489038071400018988809489149603232639856072771215250880700998837727738812272770883344334283985723594457734760702910449238255492645817533660067358097537425619224101588537788827080649511839292344685586955974860752958568065924533323249468364697844949601652002133043650258910446708969471159736522054329468069121630417467249052238848138850141103819510559717930682037249255732504624262838931092945807656035472721330641029831716388669697722635521075120487771522919405163392839421973015728182519972511591282855824065989468797178285691937283296226755409214389300456923302770617146132278638665787383930245373860713327718838563698222311599790476785146056519277167464749273801835177745227680131153201204696314478409941223606804165853496305880210273210107759878224951591263533349563185475573753766525977194756441021413958692751086771369699061802162235267727443377976066171488689068874141453225579483509605387814747449282561285681929545926976354948703919104842979689429251231610624788800044108490677552854168858311728078948504373194317193363118579677159850424089475499453571572903560693455677838364217921368838741141888294388564310868554922461783568658501364289451898369795573269509666136629964201099420886302800477978566264082026226008978082381848623243325580327557347900957388213349398368248866472450172239503727698816897966108180585226716976451117865655220602041224137100091041409121482909601382513607975566317910382983213740960953789115592558268009053938422569546413027638175558186080984179203290274507231486297447256553895843587527358884849787186604462160249890976918846170311765798205519753405980127776729175958300266049908367543063891158633380519561308886845163289451801830552785897165501431356019005766056722406927602395936958443267003001977903532940761983900837823882450041803341540359602919014907065058062918066928757318044003689527659128768394318615064600496822844836852855965078407446295873283654048276310973542742549753098866130092022013532132144101429417845483344972053622186572193957350427714888817214789622126329038651153681820875498827773739049585916615119880225082021188842354234495988260898240306646482776386465583919475029050105858800310198433376738616035372627060678269838768667436614286404856037260747978737760428144649176408162139768964644973332899262167157056463066927009420216537286760171759851927686216373784041817630684534056928995107048649761703339600268231775515670069103486325359928484871796415502236940677280632568628618841706182202397881668005485688361710996110843026084705974532149384058798555726136960465573636396145996738515015839628992847516215868024912184055879777814304821220015671460580789273653705371919096403010821723462465857721030945048438615383297191945424867108987668402484946453384909061456041730552978846057741371308760694633221689031505391370466932179237411272615233080346922316738841970308402875413294283331500454476425367193405689344366764980895749908792619082681011001976148729766578055175778130888473793254498921500395683629891784139277589077685652959289017346360488232270550593413883485926023361720642067872952382248799331625629886377081551306463101392030134224206500516614792425151758424694723609086259578824871806354817682188118333899218069081382625427957638961543701613675760080658381683257019843858091184219664721226111746566591623265710747468328752663625551762894156550647438723774805953026897466417219202629772798899819253484997120655460233334300866660796671862155214232957691918403056095988847028918562460210466345919812835411056300984069677541150111909672605926316635094024438425083549021136375113451412687523427983276651485765831497457195150770849183679002682268102042608140061481574872745550398166889658553994020069432030605885199560292521884052922962375994267779455987780114565285312718539735310450704428125033908246773645895570410558189458359572717478605862265551244015731539521275203284222619279833870274606633108035805978201235979840503968758941024403789106237076325843283711926021157606049672078251517111906817011691872980350164276450303570012266047748952686173154056129839296708402752849761639686810091880876587766139121635719050099741096297218486254779935607082659702504282341722279531971548910565868474048669487581202772196637187596389458331115143925308628740147188119185344197049426229775060818303793373995442179172195943311452679335504222322389164520774996153277283356887361002229805956060807805500680874341398392446232639597045650154893060577141446827794127620563813754316115234650982346077543090333778141068998307968157778787301580187273138708924513127500935465730711978492906986379735268724776296711253562559395918590444325462560926501626370832885779637683809099947930797317449268679038992872627199584508221923464132980804881568925977317170797831759510868971775299749671481010795971841510834530449809207803875827689435722883794056099566304863501685090408642300882872811313195837201895669192499398163987478730270510908621271991370676422342782981187949954161558645960318755684838970333161226088304791177918336032258830289918277728914689241483429372057350226964161801857858970548899467156446238731262752529847967807579364541151013838604794721847843126289721046782313819277564369321889765988364793842492384862545162490364793191277042792850590333229230358860918358449337963976445997194669382294223189488237647142402015488005477975326650996792114089210770038275076281674102968688049765454661171072592240401880145013620073691393189508579836466341515845141964901770164643378451625087833445651593479628786146668033882393671898287598100729068677762870017594698896916092206322590313631648150513027275077956478400428515526783279230532423667417065018540165838378714797799485800872725078936669529870326822806535495564364585103086593054699316130026306450574071882903244187594735508667004257952843323778111996673956212499999722464131172054501767300553092388949842153277326888813132291104989400476851312312620346470764104828781531205172997848453393070174648353018814029887726647549856102052353473964827318344800181325170297753335268361253876824216105778363966590954282016139437343612958909829728596093418854983551297790538218741184035920419491626853080645519911280942526737003759288700348040049811178422624254185072257959458578819158076607519486597756412897415643402709664943007108116374628819287597379709146879920752712717175575650972930612774898843477566153467012904881200093238662217241577724475198396127746382480480565330348652704926509059518534498562206688919367845398151671181315414161092014025068810041163549659394367439603755601340447200845245473070047144740893831884706768436828253139230355905240458837328970791254960165435186219547941680136956464127029339124275024431238003948861109251760246585093193298902648035306586366109241785576791135912111028951683719875095356851445134499811373488307225982685526640554822905471196755321915270339462283347522051148976122964964166690891330789985312145233031938236546025754634297864101135675049145344928748160973307303540044971448895283646297569163173270498376771108812476724257471826461588426952536135070745514189584563622395977261134575671606433747707240277587824305590999102695123946488330719477113814681704858135388891616927072557230936468458257309922110876363129099545132316766976362502005019422826876479989300939686648753902289393019988352260517083617711347670090692979729649349520578630764177116982401488806290715052206220565143235702918972446436216468627082375306400314333377312883686717482569614093590203424077049261979282187376221828248328230441034312430701615875611002354095273523291849843670345583903295833553809158377216878374968051099500628076119710578732646858484716887659789225525847325795477068139283392905342123364748019127262018533145532944335379449027427473323459912911607479289256841671716951197645753841905818316651824019465528163440309966699754553671074338548665496625185731070106558237506142803326782859633226743110625902894393864341360950337049868269078095533046130174077567475442459436337442638190869419251062008158660484763492928467304027537444347942048575585813353185464294721904598541883843262318026158875474367032581220252002231398834077640847612082679699577214397820751468040548025871924449932555979223121155803829942699530242548556870175986964511361228968297951624704976771366563128732780188702423980648455769172383399191378897884368248927602191542813478926966887580413536158828725406098921106182450013838722910823038149248133907647761266836501138304330087479571526305187130273600450231668478726597583211629980386901129573771840477612723860168708281437790944077850367417726840496266893082177989220843186470184045770105638524084652965318942299712220802410565149643107946225344871175474045484380364651528368617668396316815146194497921064701633881698404784538227421964633251518136459609213743658410191795424326630176782265098950200703576318598710357163892570746402693650037467637760214680100666108602770612642493298619790345037026892509059104760647759980132467551659168955969657449027690137659154311157889392158401753396892120680434639213739808825730191425476961172376253966699429494923320374786862645848723482604647725805698917983687454629084777903814774925970549992728309571081191416990243864954487428450420284488913200247543561769367396647905947694018728090696852402061665324160686765154929695014344553234249383000918724813207021981503342090454658409661973902712849140666563346954861132963934937850441874309863795785161728673253558551308772310913915268962310014520524347738830865933838958898766879949957743013254517068156654897295182508618594564425881079329285671706290935966109047131400227843391385712484501221023844929697219266582322464790900581954635512427434473860037923969762831284780094626642662181670255275469229917094339732619074951352582816632365418734152265549537856541141209025465521729021637700450896758384223008300513642941350957466986244570862940984714470793436564141427917208940996364250554004339770846789716285243029099097280287816014058443427986030068175849942836913896164566930425784793911850059196213480451891942715112997530450783310139433202980834498332685999010762158577878454952639498854343318222867582055312194748126430312346923218404634343124966019533717070839998534448119629738990468568766440323643256032419723184952096568276820509573332515993325646065669886558921461051048067485128354380445695797295368502660149043067708150634226029976974161930665273949721896744312006708253611007804307025418742761755956478511979983900408129041095934195883841354985875125782642751693579811766777516511980840214008965041506436900512623070362959675771157591455384070248589467864676122945512151598888942619168963687916103463633796997562351277654947358168558897637106501455493570979633873901446363054734599277407791800333350001902952513404360540374456361148348826554518739597370062655558147515543309585661686486737527090647121395396148708396165078792621993854039108068982870347114359276525495335706701981075155664067992244349743453040247810036082137881345663232160152371017210736651657279557358796682076586313493767151288281465952314358517096506469053530489411145107830964329267490589877497809584049952919920011191056633943305473412853866085638561743840691850354669833828954721573462067226291562007873792488586937789269261753749162470076067863025387383751204874941356771210239762835188961877229392167961616351143193985349489409084769597356251972312540682847211626638360652808751609654418774913552423404288877309651207222068573935632729446553036526235529033661594177682175067993204769011278688406985993405045214036782516641359666090721125306595454272446934105638922331555611904680548455378692076866311371682503051508046696296254403727827677286553056881061508532700922467136831963220861175631903558663168864513964431293875773513338320916190766276747236489838534117463351500300940677510284117765555870339672517899885750727823374485506924894767722797089405250529813238385186606010168630509067327484449340299380923046117372821776911166071744112914328136717651941236975796437325090635788435932989287504962169938166120645843086444813758677361850677586853265088662502531744338409330885895058269969934713684152486664778660748347546847452720164257169418126306423660653911205759648018812772014529740369414811336676730485788080667500927960399134543888826558132425382674887018564354678968446973786475196809181799377775641412880332218826787978764769691173477401874857045199776264802173104545837509481661449139610260870074340926227788213162497492567772930721042381292194671768795746854475758101010520936309117203639643681734546975717571954526854457146794829275223159605869915598919973902265278829269584237677833026635025634068108532932574522443215229413494027847929018306040329074397811954855677441310681336306594255001805355037297775470557454725042243051423629901982877445435162999504361404792755384327479861636062030661037365378977867212550086772961461329900448365820582810004169230651553721110162084237964122483111870437686160083108409269642024709939265755189404838560150178455135004493275408923729614987809639094430943429565225463552112758463630448387518541268426543222728596583487608504367049003708712655901295888071794986578859278466595260206125192201473518704292731257643477034275607709298655501348393565700558343959503295899886668688103199974020164184419766691389976474640431186962258417844750758415469954308767962913145963088967367150230400817678884536950686534049081267263505530018373010964486676859661636344504552677606129388682868135664667535983400924253134865274632790304968339428194397142979136124170952029480534707934454742483120435723236866233532919071511954625000997479858850984020046310127123023363553011376107960595368725262483652047603404402026352890573874989344481389295331224512085257472852505753506360414165036626923380633382646101672473321771588983921562602151893595444906995280365318901976017088898344901566642278548569346788891739102141644433483943033990811267581317640782580320494770511232937694106639334140959077281179631775489511386433547028385031303609855965133769074752251348945721877768858188462595754034751791031189131599417288635906773390706605727245316462756315602541683088370155039959930054349000218665122709259127565351052974937093647483612189421143596750225887226647018163897244278350799615772596387313532295398051986695849248030195795482740321762150979246328315520236640484552757697912554806342479143541048479466062851878273313207261415696308434928052827427763426229554626446083938515533399782388121447433548143382590168615594305786249118199525540089705282184924235703348297919094332608005692427529973663150827309958163770774576948911077854717829247836610389957497849788121805294533901239178799632908955870471409442448650051933127229657703086776935718434799493624418079463457428409840889485731035135896625497737199388453858363241228350321538175863265668194725125540883805691577340008656016659531252498936997652647512799476714515032584206165846401202856301111238152005230552353031231327528208592778349596139394818090773448793206067469174428823349040299590189392332734982525461535315576897898513649061505877413864497675684608301281147481070947403412697447689646623171600569564620599858370970132332422170103787306915776489172043612219732865568266421766504300716907508618280092080662294661542205955176770258550222915471283717508513691488194601032028058488206274903752053628757278457945520227292960737997533062193871605723183542679743056041255812441026491381499038334972566456736019155325277464121747747856994454438988300969509122508826230832081292614334778734687285560175757798831641827415850614589663244858698989303636705531513211826749696881687031094386861334447716355394992384447212644097825244397167569049347698622506136857874899738065260564923751178192171216445896066734566283311361164598394301912769444452589880507362246833926437064282770190950389464041261043605171622559105687253606202291072758477975780484658378990887932148744621937792682754379376858094353273003733020720427887836886294343831875053625502857647543711654968789865282310027433679538705330965781399236522269421029815005984134434503343300543691984686538325138782482777541546139325075707502826276010921614508218681370768427562426901840346029828324590634249405217231673192364869913783537759093181159674049826038059142479392400827370024874360161104404978937263990876793427700913020632340218760136029540107716801414236752658475656388357043452330634690027689262216941206628239021774196626076878024649942706178865748802922512974021438283138944721113921261632983215732756567307789186119027754115573998845745386395279710571599134283378124037364036884575332734650110391715477310646325070704539048625473416800801108722404959717542969527281816989243031521141479936794258143169707956440133847581198919508488845234441348565041066196188745806239851304984944445742264805569644233528075110114330905397495574433070181777704469123874883603349178614314813869202645055928757843763575470805192430169401379566707910573616425982621767425129681309818186745298639793403958434302501506344591213758099890695064134378702235880174578620361091127946684495585490942159641400760111784448008203587005997839428373437460559315134781365521385591963486611655557279574700791607505745165717971096311602726269590314981201376673979428680391999621655601511022614329907272468931165402727891765778756071348323257086710159211651679017419406440353477905759675078665423957620471996728476326783333777582941927538878925028800716339779430377645989791441765877222559885833864847392101598791456205418500395768691747511096008338755833988270683010970978341259195700276876824041309846788649173807587273319304429085035992252660392656302643647321918787168502074900277368348225483165251449779957873604464944993311890874982859838034178960120655546716700962150501686913392975333731211132421670961906852342473563942829045349171190342687887975995762803186141316028212125593207945340838625644557084777364721097810597519959748194612226807610762772305957581761653637569379099818696579966474403505713411392595776316408476118587549409518527637069719709733639281594636679898073904877883067598824613242303990075063530461167808197436975156389399252438324218550489363909738408286865666801275760689093535279091503279582255262407872828222948781967258119773826287211978494654357330514876214540666146909875445541649576244565394498811042164932067280009999243348005672060630130149810438982179982583739512937976909343757678998075864741039849100626953882505052496111116831391747827102197123598745299851011249176822428401398333364554897609084804767531689745277898462192481931659466673386414243129543156405974809571012517668823871201520926731160466210602658858100359804008577549835666050887216862181066210212500802344420901789171446877844583828631451876016543104106402540983617305772967986039138962123990188240923742224941541084474418288178873610639574827134819377541456404517893144580969104325849606917316021034177488767135117866718612717394817014845094977220815421556477136332719302171464549758838646836896753550150224918292747849316347638561009859850363764304890313370369644719388708994357222377068557949072804501609242802204737765073085982244372066881664564534513942861326965792166088340842144873133920545560976136742460291928118265924654387997590703067372952634261020219817220433731529865179164372657058415905242989374126514964394878678210485082628590752054444061047430005363042223679302552476542494529748438800121038163488863981164770493186364225540322103198555674545164508601353733173266720453179068948682440183471250038943305553228589458171654797181893900428799785499270195638960746132557902048286820880170737145705255284227715744203085506272985634293164666335508394261075801124108145004942826067458146222836243223745238022914873377506281327869860332212011331795296672655390116304454016448494052157229768681199593723117022326033896807469543425999133904020744165739369525357459642799088188772538778552051754666119146575118084381968008073823451156249129344396647379800107365166682803283965467627507135513176427760483309694564064756955729010754760723320754004911166181566439984079433033519161400858858826798187003557712267239502802511150724433115785214559068628627448249798772402371669896209210581576754651578665524796754293948718183662600832754378689481245161375957295208592244856913960132644946689618247088899120435298705356364666424867588224352451038090298172323260557860047190390362742356841580009189416804319877105052829092846609020194693804706338405736942495860075700145802539651710438315219893362063735983440284404964749582590816758798544586403549930731324239363442560641925218805197691737321512395107838881610543326584082322030291379736871912687819571002540684131926358070316964522071927728528687075156050179558616206090953054162989837691085826981247107519209690667977960401412606392478131739249516901428679600659329828873522026199679496370953108081079713780565340008983244891031403412086670681551200909772491264905182791231265223973149464958430567647940877850727828186661783279079868602227151323160248197516669787095812596841945011982166108555747323824865225667165780592871403019351218711783144048095782004336111520695607871972635491367811447556152445348890112169072016277326922471029005257660827758413616792296874014006676960759827395840221206079571365174675604236958827387537089117845221117561606902065408763668549749172671072583118604234746745891295772949342517054083541442683617039843576589213879080874323035673447810141695112970352625441054081677506893917820105521072246809751454537446970852094955950535998425646666708410139481570549300244855420633725754039651684509625656366471874875579536058216181091717839856788771803018959714938077316864068026054428708285712481770046594904082275050027903015157635600793489329243643174313258875735767525764858377140355128744451468457611731055497172438963877120339081943961417225637802959383461061640512957755555148243603256949934667502595520472721271804635690771099863675818377311876285397680474938396759699525737899481346609533344902501668676284258544695915906528083538772376041427489920759665104710172076232896357804815278810716233135540379886231739089589416552566311236354639257998614364502471632092959363594025865494195772388290616494825086948750513889627607529340837156811872462767773786622756750882346796785524485266615053416511157032107799100826059326639328027336634206892684258946283040387866277318274252404407008115359392992531794976193064687086815106988125096370313192229470491671559798796706721666362387640773332471151449541264972430916114792346434951482284538689080156593764620573902004873257611325538845771855305468698628223605239494505632301885125372790061116652590185296522643848996779354451664829403907516832736866682173184496772434598815252261480823632982202005939226777782182201695880251660324623125305595980990041914906501745846907628939527166927361822879485913308341297537944471857518474854460375757507329483591306679087744317766871424028908135215469667085290172662988165118861810229620433872773546322620454912448094394154538234421548850827652143477824127719111049099024447750248586660632004061550304345347746757063537846691937519994413121298535600802346864331013775364941564716522770764855878027585034586078105881834201040907243722058819468665909729328499467882438382291473248400742449456945157612661653785415196713009882625631562573819866494084934460387803814385251289314339853070619119690605111882364404694804983466504158971822897060511552489572174437810553277291781384505177930974746915996727428888088983164361230245577539877874815289676274163459617330154810539944605166920247542815758503476574511974355040090737772429519278034662566846961741264989109236417700542716083545876790404546333932825010945889665345962730600648205072076585551588098707009541039657458336938727801254950706353454580403976286828173987560764297348313749828777497717057601064867893751542305979327757039171177506087364627464172274711986467037580988296303056599890389410199668997329497830883997814720147800674415917039244862620274326727169616637707977447528418039919819987052722481230687919974068762898898049470593670922190001399406059243163843837149873979889775006443343676835616315063218945439883648379519703427235004313540724705196804544350551829388922583979590732033145906399889432717321056575971988623202618419916802460209933032780181940471263765916941741337858663983495109994516711573834051351269078242084174771013719004943484873454857949865927924754097339860030121726677914801655902846642708982570529807708353821413838508496903132103510413738988746974191040080411061889331487940825616890156942321782796763271419026480426163249815526803995352874781684136662242436688321359416328955722039914065282628546032571923439761355930639322460940878056709152552136351630214855359889230923057677023359913873184370376280642857363782299996545673868620074371605651040117137974496899963260882738099463374059210988470669877022530888503352480405980425742968524252832148411827847203210404553473723856274291491512132094142868403810308002902901294124062971331578757111312919213066438974843766132325408371115265726413087237764587689865816676957793062934717151652758686169730037906052575415875501420900789219378014450027217029423861699536226503785104149269366089650732582379171334321872142026014685394251286019893175787858946525548503906059513323394890844631565146028916872834562323065876937548346729438891791906814207025197822348783288526407503062404860424097844211363577052769476993481385442956228170983680866452184072908712510653030501080141999086114517126006020232258309285671352343951237497302076683871532154565477738091190288259577956232908292192534758178034399499842059618289708572571878810751979335048514988832681791806423886730047352495689998807928742862472824888532920511752508871229449902386410927409712110986494256809392723423167147240723891588215401700609968772834601518559114421876533754175411965450498325058444780630085633214814806048721870563172133537575410123464874281821517014168037946220074610820784260505740695432782896084680618348386633058038917713798818682502125605615974704677290464956805144580320210882401391531176075870972021335608057254440461231425433991938006683311981142051078990016406621644387892944339093996901667690435049867317694567631363563372020151938912567830609905816148559529754363861979673367211523478046303717533503393657529121722189582567686583470713982152617198545402182606194575101910642084948703896752037595703209752576019766839077844898204627173894132074226075673636586426239169294594586056112804453731760584505688108805952920332471655282309255153470564788874015103303382540660787696181786640838404174018791412809631891262664271115560368848927483020651381234352939624936305224527115146427912348608775818334506661724789320792496762574129680191024062391935501684884319659400823967832337154962709621770541388101253475144625478679029219639004894260832447605506361808103474514072010783767251313273209616636883362248567814094205123077340404798499817571548452242165929499715302669539765242889716262246031875523689270330977661009914931350898971829044592227837087661975791044190583105431170341271130094425254803735397212970435087296958967918736761588392801498027751687642029424377349899405746999007508493537248702168786127190612031686995635216793372122037020392420602527215081049623090964986523379609175481695608067932974764078170143044850926938846644673441040252446401208194873613253656950371077448144433547966742699878954193712742447881910909353837756028024083512420481896794583987499541885792748793235696022454009501388869500405678065180252943168213641447618651687503442102681544118293752757160026655487153886606444248384178493255498873104987514072578737121865062011857114439765442067766174233892449221546439736542309434568398054631612052133633768158391475315837510582924639193462980533914673739602318622366137285295608767825190048014426716778648744490454189726518916086898199828645664865024609916963265750126526107194314005118917295547980464940859172155825963110823066020494005526884413962191725311779315276171044723631019482866969374757824678014709177076982230921166097571734036715779230876468374795760260533185642425192622010336924005541969668172684959314824929726064797422205383865196478062694083211798753701843006452958563473821117207644376711959852135223527997063689971858184151396807198311637965727998128713837569125558055911021932440867948558407874927884211668189411825860059750324701456655637036899694915672456134348895527013301295073989578310859369709406789237116006035921720716303159566629924010484323387868607292496643031699770033107087170702273162373128278809856408531957322842550876907880836095587462032680633525808040165001022735508773321725721119653639702065780701712461844037091317287807036694402930618189576407447242480543514952505069909722053925725955907566452399237723265758069922765916144237066469899168914949753962321058903879169012259799129458309304773126514578074070362293844546975523913318465048433904148028106859354016794482779611207138588511150579332710966534859555211652818332210927958626195365269536878980253321492159669445745217278315996846276487200087632324494615207726281327825790628177257235166118958470531549879498713946804625071774225854671736576739490156681557819427396937506705923127307816201391604944356254987652379111947962521500008876105383865992259399739363247755359200665319762925060913784104600064205973342960131179443641645160870872018757082307243151065333717208036915078655924891671870768593987327033808231930982552625514757566860685887353973861142560151804176416920677536154199532329943497218656683147593499771553408797727021850840549583655361575424798631957154892101382514235645532605280863649057947403227430620152228691152886418770813837875913248782825534133101285033938081613854763594528869467373820584373391038833878050506962433003328811013783152440477908741195703451596703772370908352632016981797960085376322636029735081958971198441981207521037986295288913749512329513853745081099590315206755801861747244153292264002200430719784412935125516191448189966130752437987033887668423836160454589437207921331529229861782637642355345946059159563022561865557027807618428381163216362979347948993224185559428970124075592826147948893802180245037671382763136831258018632198434788846655502067624909702904918433945799459251556556453497694173616912293554045044846297944700428553454326390844264032741996758202549159951090710944539581255757708739510507165118680377396889329328207043402141514617743143362028873681154696414427560168515377138327892255304662994455771407578655808753421575484348368255538578765876313192320501322038754312495380051893416693503614573611109069604945043951206181978080743969435698856757151130501718162319118441651723511082960245762653653664871948978820607045986368999816985621091137693294561867851305816184498594475966470524511787079622151979697639299482438157271151474271540092797248859719399370854515401893243546992220276487117014817184705546575248752334991368622973981752473980287826247228333682360235690996190018179673566242988052094122635012731550279767945790803891305703744341042888233717783421993025457591269475701556858791032345701733164145831762933726675556981367306848270296026940107506851716346446509445647853904115989008745484058933075296899871112045740170915380506014969220996426190228390537141937500808542917348828927771442218906892638267637228922200073836533401155629966004411438669581879172322617220233496941510474156474089368170410833618492766194855085524413886109064154797121217322542521810551666613070129749319655465753223323556469325232377149090610096974679518285922012337517333293647335056285996406869775836623622554868696615261193643496140833255333163816315967453008816761886236082892982707018338914742639293007997465112610975354832123015278879001187279213176484917486344994474196326755391084978395252474228473908016716119535901607884384142681717686167903394932787601472157343772832444998009021099410521490055962209023360337212625325121004394203781106515918418733963608891997612352041981020269655024008321461820515569107158762233169825472041929065309691694056823866179019616513879783456712041511816298638098507118614031036607719479758014445820482389788425203128813845960959511511442068123280131700663632973891478168584562278982781084770008533270296311610146499010948339857593909778646946463450941223286756402724672147409197639664167558298953464888780481308811774765602495845673375198368624038627860827638563672553668640608735612771344745980594258406922922999384189111881375010348720585832285559530503652564690154056350428969571647083506801023113140317008579398305217054955840475632133907502750361889509536216700466616221945210457869502369778089238465465866331576984086325755286598208130464602719219524214971957973337774462162293507707399326840672947243416204268735017693735851158035535339119415711566424441855504523210968757432914969250118457361489249059767601884154536210150049694276590948341657320695293890972700760865358897949371899897269007554098646433740594069190186359635033385062536615776493846390239689761721999665447158213128699482384684404540418094207036554202150737076275376371050418524813019149967001803266917314273210326325522740305961426789570597665777557764327690830179453675593518553830476136287975648531387226171904709970321749852796992145324905427227667721953837438491255465531621152503916128158746703607120119932168492557413621689482854538279718508925325529450953944020495427769402276306733407832676457852990775994767763729799858418204431331605740307491363715314126779033532212494845191693072602747897127386805121056803507695093056469762770588894154584439953239285866138413292970094847202071853129392891606113607314443766415666906257720224018847453968653648694011734059322975756820293860317262999710339354677888186481787363116907593649083929253907651702397624766029453739876710020835589125146915223345481292557669393143032769385159667544338656747662107931362280640809184981537501162304273627104801694848722649376111833562555777663690622457252434109296703129205497667548938630911166836688759224286576656036817221814966098979961344443440970087153841032948877716446287736398601072502021240566326363086511473334779511442593617007223708598065781688670492149299347610097191237681293932673165930872707068058825446709640504683216136587313487474871812122120338574179985848525202980149391346708580329588697459681745743487754903003488239244294165406383794183469345529341549928369850771079404678585954605573487581461856354084687143341414429868292321762859962188624314094643759689126538148155233013487822601910038296208627693840963519230393613702793781486013886094641805581590389115728203321750652805088710998563477136643858483084747312690731475828351526123032780471506453681237255462222118856804000322280893598587621815949769687713782328242862026818228548342011588489439357208663387958414407512137353747987123068973463906502184507030964906139034963977435613579262603701956686757812063959524042687633025292185896665720864317781399901379686187363847696786960850178598428613378695494360312540882501986532907230827536671727598782187661895135208271324682926994312415215563053541922635749574599172379295586163847496278777574107397116263615967662709390360161147876672023356280991130700675509156709199067603408027090716699742310957189116200626657215609240032538245094788340697209419535883918477147166352625864272202971910077086245904205681902973526527614537563851927890628001800346972839976811704004672699861272722698819782381729770567437297770409911528588931813249125416051190297271725298849648352027349546638774363252492667641384816983117955917527400062578290435495748003544775911497485441592642051178949641789328903701039750199262373245773366117464824014928855251794475802776353362434736822681810541299992123866558371796764221196580107254251206603253985542566002728534101753546761884269566468715857806914213199680421855897863293879885587994646688828399201905092922989593485015128546557058458190272369922481319578754536592014529573376852307563987943573586681885284520280212992813658599979916151137935776336169377723779465126316175587788216380953932846757964901099389993445307417247322973082331428167493849044955765477631591101497924085448292803666505052599273864602078092934879844589287248517443819159850311772032927542482948549105978462986646647451527767680187267616346465583629008757720187170938993111506118306117840999626828564562699614160177105209890449578755483342813582844861325567214914631579375339630850460642991613889885137448608693636345309857776244974572301104330798744447637977235471816304310542797850042694532496896898133913718417947432912287182364690962613998502544936397695672044482608581902368564832820327703095311994645438422611810265227178891705656919638199408227405676656764762606489052613867957329008936387432779273744296388880744350854376427008777368480165740669742942846877827000237687969953685836682542160333873933115497399319199132778542763507064271029525374013364116456363478135492811324327764914284871465504614861155388102950955494152034572071280286880576840565911970901180612177966960368518390706921937470096477350805161248378980624503849936214004090176978919200675375695612402427499954763492973654972839445457549270161151229364984854555940830584369259282060018146279471411031064499562467249593268331589783725099652868470222292876263290078974214984140095026658094873645178040600821872526717432997933124896195442582722125682874605377669797642137484926580854102258017491292458245439968878681559549302008362412260876228013881074391883333069546642068221138822729801137653326847714990616975550123073440430480529100782819515210229286337345012545634034016482422016124277344689697067529516094592390642036779933678545449750817275238905502185957342505685198121849470466393335370347577054381747123657797520135971877327141607565520171265004782841986070651508996451570951132235976657954051065700833126093493741662123850652898633140175065355121940267698357410575069148716859443084847544282854587015180144184890332563742595596226233890469345039241192426359454896765754200340655635402470643100545927359799108660372948338400010989462728671327297272860769984867922829854426690121383702870384381349437741843406876358411994947004535068353296947441702292843289473886181799412405750630123221516471316026990387934843984265385027203019872463984528766359704063097208482497042127185636185430470836568514626830767798836111395191711556956100925566278109045621852401821173263519572891361140023524741464509593542604806114077104074887711838287750742862863749640442975589307782621735210102497218873588426356507001881423177308108891914230996469449542734030101714871509755042771796966505697313927169783078779236930475726581144112450100398872645147244233229183456777573018794484609697722797010431696757412653883558386995587509726379785227417880356214579127981392750477306948879724340180955733512403997990852134716694257041156243646672745022872101781724694573461859714395923426994445281107726156192239749580117857991567751657976632466570679108096826553457708250348439132098755265015917890986141885056679445479244314543063825595787020944656132073283733199284495078212437998682175230195383175916116385185583541600925588283825197257679005561283147409062809125948529302191092600978869719576988951365484430896910815717870982520214033558433882356606324448449180068188635637408863691388068400925282416896179694958659968912912560211644689520936454237531340487351847221396943897546822368939419116918812384059755294153858929197782798862453820917412505306099219637606642160092890178527738286323329221177933530329804100996745674667257999168410786651922823432135986306281404257696992373432355692253347946042767584624350387383580190325994633177587107899305055255156716872962621980638330001083938791176133482668307461782660488993492081359585734367656690951565458927532601220782612034689213988403671772504537026895332434732862282700193952004218719216123694064125531579138932052315397558640998888878713907818164164882897282924905418460138964057673399597043098280364670474383322534160582031704077369399292520372056312088254876031595323587805166965766538004541549887663282517208891126596721804525628829148301080564041338093238899167096198719564033958439983591050292257884352942910483172811250665837277616307603067057611944653369601563387676511718260812533395304899140477903433284409888902098237271156889381810001099401124747876615112762940608208713787003104250529489933745042644816283711955779918881977003295055033423567897797603376293818051680973559521418030659177874950450511772304384587578740241219959907089635834488339647161037046234547759884281576288021173594168969993167985388055175811337315462532158212004588554999204865575241375589695380684875057232739263776321296520392417179919304284932150426357952693032119485691701258814198171296660025282277583465669488984393818802067597653760571553728214198835868040807273421372236518484240981780242164644479381550934065656639173002917197390496932175628740891439627854274766516979709847426639596076818780186213382263078042864416043915091975010324722200886692566927947617100292143979474303849940819348701519968445859754353477726948370526895434449408005409433378201016433395881993822883287109341713243206570052743055641872932305316765952531223535539607246026316563507700201955940787671942982522476992782939638018662998265481778848905790473121497495947773729116078000297252503409338299023206035705248619869516922078887998709022689726172833040627395782734990073783710690694485708172699698117185926790770519734928280109301148241845891749208096428990581639852136899802643080131572925136426289707119651624649159828020175348645437202181029049626646178794431398920285764699012661100936950764972112833187148878177919899323400961689072801278818158705321241068727618800411752051534116536882183354129024839456929043451107102722740792140927618996203090301182201660612690342449921641974048196772605727351374786225055979667450357073329438069925296062672616990192760289661791963216338540171344886725400740097175277386322011821780413771668855290506640030349881820775150672856771132403037343278692451445697728357774931773780640415431068681621998649366078776405720282561635004178209014945328228599161507863196469719561534724230741400770214174896840802853688362244595904835645982839984865708194183039093607711769543325073010574055295273538714303954185796608302366547437979735960661996949966423535885642711606064863137950756044529018402827533289265930882589666608795636130942646688968823691226082558353970983984297874997203590495019722408783961702811755115048059787446547520333178867435361645073427425527413587286918135108589144780574223991288345905428221704736879661169523492013413936234352926430867374680573968031294343780760605114604924565139388514652469392087784442736078764137119146214463157835484688757379415597863822726392082974243039884494755907256185146428754024472493822253608561705798245674063152485335289372918221877415715828955508647041986365574138506951046032631068482653945934482700169590484463441575595300601165093099888116857158381610586898931937035278648854345387438250208927481011201207263254364450878496961036223407612198705466302113271523523692185683778079150473310912619957510228062944520136315028126297482146883230047639257253158219176545147425317498148704913899766305359149182193675906137253235866800214800962282922486026819681331629235100617407030338987339421862055368637531930255009364180568874434176270034640927675379128806975649607983822943964020916505736316909031969255628483284573300214640593383215065187735312133672165550402409907950721257833836971114051567423531528385081761767642888399825473430121768603228970087074213846960833153598327506194439545581791264249571759965671675142039757179605326751378057081911611211971457935935581377307177516899300477981101105542923480380483113662400449520697197387592919749809854214258495078328672606048069972084298212810684142012614726519941309303046079636492785936057260296828573807554408011625636334677677280791888837154825867128124822097711721073770818075181916267606574043210378434820684781679555437710587476570358233601188336375484071434311811022132283653124019019637680929936721414320041820920179249454225461639369579859685999886758296919467019166069038086923558598006265048166673371662021998681941006980308982935927683508526735711457739125303996366426849745366326057728755720462947939560898476907684963767012938242839758693938972278707416244895013406892627972813065043441251389791447538518043433182906906453124718036643742539882720788454008449433439753825446766139493958153420309635297695300834130004957069939513613183270765832938920568813765589611104672418223700158314437051418511083325815959096442130667761199060161772240957895507648132566371599892477988071097568242203910697845790303965916156971225668945639112529625537629685461651003146723579353625579803925926856151658970404923273608210011070672329107669839899274215783153680073260316693937122280535753695498986663995761185503140943740661120504155929577467709125894281232463167144722146638286109560086469701329066530275765394525469715835233520821966829522017418585034169593223446265864918272882493589789732630866014272101689761072095758513228731687712037809006165886035665998285708425095885951706395555105614962329763079024071328198925321037092252294332643013338677340334193193272912485638231870941480195913844073032529170110232325179171646278425873831130008577152889395088290278445859304817316802653548874383082912220357557867138861480707491083449467120608091624522142252385657431767163188160587756030621583594156985735895408279780039114567968300350201024522230471402687117793610781958801558223758789866218323090154842260013888403583091564957856807881542985342082940715337830216608062293111512297590509244371166964301965769472564372519982882195564888552484976181778335442918356491767582003400570031612934654312858431329622104244821477983382868065103871208973041059037055803786413804094027900924170992704897842256914696501915487960541119929727465491048448179931088260580476688354008581110293099863920480156176072492259605929637781542451743503422060661322445141839442093040610250767711022000569166308907651060229548412842098348054385285915995178101175455580830391683436249684792014697993969518569359476492677189871570379956773111534254710521678063699997952071956564452775084837860941254630274857411350191380302410090520081159112641551985987323876376788136993126776096901553365837374695341408186065778047513487006584207074440237729015923717285439259175760369728575709165158089990007864425456409960973009492677147962070138470975912892799846274731943688083463842676525427223386464902223380823699459820642545569700894044314469453492653435968781002379431551517318217714646918553336607395110291754047339763352299718161081159445515350699694404382047268395528932784693811857668786730724705407165261979812630163783229195998731378149671691718353271383507607107126291301253737753456998454206358369216187013086994465112773719490446853626888547721299325644346762253904173832422509829111120828902628372701548221183794214288324492079413611856390964511841319448715614177008245788735087023809327304167579741359553060262859026867093162016633666335626604130854298326639094453828279113148993126133524079653125030257517418774597821929420956091386296852611539505539300173755032648720197831888044055208611210757898178544246938470198643911887617399087651195168384955924515666652953948344644784350376236447199543321433560127073030538661649114410045382680500847416890575978335560792774895816180170862957041334594914564290576989816579874562355021116660566238006241701413099194444476215591353646610422079366047289362993621016934347301240785854407428371770096332269998701220787650851606662114435258551971605099344558156223669788542810997999156276088610122731281654743355016616638279082278826670840142363260350519291266157453933586649690672281821747968408581932686396950058497562228552814000964959443478780990191970313457194918343802975086181391898354609537377165638900532626670301999920234761992665289881297295706516571876587072490412111772204995437619441339412480429440489856168164478107078236082446609722958416025890222246215387471245475514856110128122346240767003587931461838910425835980913574675263219665051722034126850701899615375610626082818054045840241887633545731459076799274566953436984945827331269576355150207758129547503186184220737718072463716810271106226907508691041147514037937405863048117586512576813469228907900283809292902852445068240482021057523867652045647645194103341727195422967730619474547585342952692494011468846348386728951018090414812545307973999356687453200246733152684041108801874482636823506013073667254624549836234051675043408473720623701138466988992208210112606611551134044668742047051240269853275442686815454236955855931096519048220046024578592299732040059929631691691882145249422931627098719484790169885980480050670006359306365155836204663651775971378370958862522512336633269853138387745635680113826364473410009463414476670105315603776490423552511769834978327709430579602305302858464687970816361401203106652856647824475260988503380065535803501316943792693322704847667139867275867265069746111309865474871383532846554988782001856841939239467520436574597768277953769181731442026167537134326196250375134574304464111041663476463529165192295282085297421971275811078520802874548048116600729381748310446449564632213669546779151013622769267614519607807887466638845101054340283116044310574539362886940865356759424958443452652497749626518805481400540434349810386891970734064706024195730537779751958053070637954379619016033306420274706011409357249014294292967421678056369750677506631698951405408868919274553352446078008009585425180968736613459996932076991978913826157734139454968958200397776870063374810894753690995451585095836938168313831664308587461279971406781553158251091178724857799943143588285532910918780268193376421511840388328193777026287539590911130817839194909950939422321088841696386928619353053097271758585024330366391171396792584342453844368402369660609935178254008780355681299343381363351866600340458831502764582487263433959807185999454986168727311317691598269457868303227727412159687739796571670086891708087407610077902950765514633626787974239996059217393004247277398429003872186855542523267363795150763021451091749273486525173907693618152117117652452277324784744340803002036840851055531628446736377675944014047382379880827455539057327601051758115436748685758948499006576873806924919330863294210335911996986587873493806813228166356001302334427631172642909766772023086118156248669608360419254556130455495349566009607465366795459010821420391184215484876508870998945628728617318147097514331364030313969666526919062299143039746467609418842099831229174017092092015820954444705329751628369242574007490026573930266333038656161186060792962515533907624006874495538696947446152311226356296382746697784695028795455317918230066469045553763133759192643978855462955964989255478547096371607670730017789411249859020736668425721842445085858503275764009335925378939630394488805424006783310016058966364437951043040026225522037843994906056873226697592174173240010805803407044239533025081083271675231079318513993370609572382012636890745460656809990007675969730687609352413882547202153822487673096919963868478332142753388786474988563724928544315553134353127638449977831782484337182085420960728909543762234286879944635455696105348489432084013308188337318717503993849940264133228801791116062447102956813716227458860129272388881692127198898588960357798277352593452423167133178432742390495984629503543728055509991985005203818251367589891324488508264449723990089424241118378181521008682775580034496426705506164246898173146552834378500529318561134313631237915377288564637876558441751063727251403138257968675577956351611584647547232018489248714030404251677221103824593787236276061613208034125704598043762791430126059952546966243277791794150759309975564650770654826332425489178656627761204191450593306644908447111392705502723402958535098386376708005789779392050558857539431912602539617975560523572784047635786779051084198106881833081749207119989156149759683085394268721187608922762469433206621271471042506105076121292583552456642644062996322712949098889758004955332106929625173941764386530498136648083207926368415329105667553148943596745746917197280653332665477741592958446874935585829926417926826560532221745763089192257544051905847594359728074494662430399826073082548484243857066633240620542274498285528818744286034074191893197845877111542298636624042409362461089830891342189226647380347875817111979682269921903571379858392643507835606501032596123574202039062642407896586781679542992262266744949908933608742035942075924452083283266060828441022080197308448061556886888214657243090308686861275789513529197275110407114720001693896862047011130174177857488251749348825746009369983751603838478527179224933074812936809873499737757218065871863901553162739583420532659386092790049718358548848245022025216717993953370227310144775777892359164155499487480561417293122605101016325564438829622094286102289338546424584276420398300772912237510937220841901067299092886440235765649216755977085503841714177051623542798234790936473182382413969425354270561701413158743115927436526558229352068009971167123834203527586593849105782755436843538504854051348721891714245708164205434425162131771494272335815599713238746565100403666903300951056332743375860712440292270092888450887875939114268841186316165149630983567525216682393737446060978047327538455000058275590353749654626836586427133601170344796478970038311279817211903858437213910754700528999153647546402260000726805250148585838456536334144941816324749749892732265429947000510666850371689753241278649738663813923588189373929486933192701260877673076308936681928797972087691840635541062526602034208979198861708604538772435547455764166544219182800849653543454131594443808345335374760511061219908858835694120721717036098238259934758743807548024059196175959743518606396313955921420984757279416303042775377322003832363494802690654197964451733517657494055786377676780596780165138493325013118818306783716170489965787334076647887185934578715563415212197160606928329302021961951312257598887486179613311228022511939467172041563578233790092847626644671253037976454338724937423541482880797965211638228881073383058558467453075862578422369080641491775227186471611180453628947671268318625023589836955003805738050421220355532903900072615450288707215750659046089183798880586006682579814941257937000591942527465336351036875652364990519162629758692058696471529016246472618830712606020539314753361340111943976675992309571616895557937148408765374886105177859514742863874480080634190845275029898392350001261519621531489658784458169837319957376630726790269221681234079422142238114362247867708827603255130454793101722809611161332562496822178207460619470454497902222061580073040379062219203242416598439813849731301783000386733855644194915936956283073359704318908408610786816443954078239438050602844857239644236046483027917272621469909773958420291421871693906692387713770016849797020958721577626614247774086584420867132998219338013455934596224605786857134955575746196593264667450464226631007901047751819258256649411042046548536351070954596747536848099560536071290467955644530891279725150941752545707898335593063580156420691499208509437139065797726238837629794529446405201735590466206967180844454624031192719113823722247922436628186632510425797791172237610875509002629021182212563555594991163482669417114115549831294341773786769955304644047945232129722874432835658453655030382855363023243020110228678957378158167757163510963591905418630565419485246316515898387724374901659800057724559980284128778511133465770573166316538472743013254569009411970006235107365172166622959621701640174787705729393725524804651449562590738892623932707611526912636616789399663118172864184096382526600614341895731873976242178390603751755751238926541864946744604018108911812491424275884881590015621982763994245532042913421641170777943141298063605706270856001182347859880172545804637350618703911662684591600721020744499614117625197322904575098668316616296047408463379774092462544930947103585617752539953262382450356752526629848561991407677571003526090990233432381145984918495551531257109027414519995764118150577199012494586749498555577704895945922449649117836975191261231850963081794890545997791975476020879915374428139062524306808861566392162061237384530450656201740385174789956207852432011673586121194110975149334844831827449029372510364146796123864129926776185677782457078513021515414258469705001934141615141274457916243398837240208746470811719424819479175287889106570043533168941243083966129203151284476593691623663601350392323900775676658037550564945992408426068085808695332283276905487217822206846475525065011414006360759187203534770037042129530819058561644785247773497822853954649458520848325697276642113661779914689924355859616677899623595916941101825139726394510201495542933891841484165090719040673971528320582444303604630472289322897985683550727474606823004504115065731792007975570472596497017944476273280482513902364347834378416349830718210487410558912834991196526306264613644695796842709582601486000428330918920540078460768191126868536740278055105140763066014979215100423719261208508509556072639884090571705470481537160665335117938720803680417659000261333513569743175173358915777600767638638002166348383691342874595898653754434584832932717539685441737879463926675793166318001416898385706347889196389138531876804602739098782843991502765084393953217635739045569887520293665470573862536587371042541542392406025947269635194291152292992057013955142487291545800024473394411252214815977400035725698957284797603933199515797326978656335763017989719253517325995781805650743640771851671503801976732518305941997754403411029275976680715345572051514657332158812996430693915883896776132925866743257652181073154826104686350482717153524468416987104053966129260925690029174517047237876329640410858128707588944917292215926038875376991853039738473212754310166960357802634928518866465361267168606847167167773570120940499554446521167079939858868603866644851361024140305000064169574376442221857772371739875557068178675860707324339189773549098526268809740193255122788949413587128105652034858029496573831839515307414946074309148419054526381342854051454950843269010634298855572254408695400468312222122086360948759885131412483043334013242133555160943608170950331661374563390886631200072583229280299489637931838432812059978034400059724157313075578637713040159242087970775474580256576224577409806099850896234846080376675340226566848149578009962141943941351056966700784179856637708561389689751104216245787319461425840541000432865241146277496011722636477423424544322038857205498970923986462274394269979477816292455352144556567291022900155506026072993202531291062416955410664743948529872046985443460912657253788834254254481953421128293597151836715019910652169473265953176710255514741211864042777866085294320939755573204308802494249843844689193539610356177738292578981162951421537377488367610549751454745840474510182418962355130176918352263889200045733349239061039759273915417215408444367801329285944086271782192356258548237269623226042126358470897202630574901115996630403229086637242059646722514247326689930159826497393708378171473821055211848789502695362721176968509533108295968856888846933413498018907958716676222008975369979470694995892003925619148013364798824698133711597133335032167062000417932758632741623046289143006061117920168749041644906313878864157163479297854910246205470404129458188816461855896762795269396516740672242983451451746766391941085501422352970171784576007437039099794993938379512016741850408431287138678063762781501334784458440709137443778718771693095334322951305355415866607568775761489202171630341628713973785427653396510379496712605704751651664308695401734447696381285853595970408801610396030395438211273191686493989466189982319943128662752971053641606202238187164227421661321793867724791643366470772611903488153521034952688820495091024681021348983543672003218209205250745292134093694131902136382203272370848987822460416425850881082071031439201520491188684742995780485032897712332049990439738954351103545928196231995689995630394336022940396133259706976210890452475011904428276248169746981115984375713789144794465238363913079853490142438959118674065600280970029130321279030379530488889095255893007834388556981044064035133602314726169510022200411172807179177513216487445490382218124191909034240809402373730688685849901448740125958381675045032135830180795363261562039426396631650528577759531287356910541489316360274308527089411827574008719844316190305749245296758889617568868377331052272585341309552657373697096796479651703121756972468367868449855583989194425293111432700189226426616399227394267432842377270087899867772110540592288367424802824050440975063173768880843243287038648015120230424014404311620679803453465266961371816352423738545133796165814735934885254092072771082858465144878779366088860318214265317632910022429230509399704783950335263316784798907376502893723706219407719350500687567373337969208758949066624138213514983516974005274263859175910875569386443309151985494075471869619953689872955001392547049390567469910739552212047946606291429920458608166298572634351176272920062176433888940771889557937233613623530619056313540003040524829017431723116040052469360067201679903998182698700056145065646342254704605328766226714443494835183044499544181639941052770031087024562273616036276499402036346756705616766834564485559762243583696022056972256846286010704346218314754242958740539730758632870976394209194315205371647866512146198134633063533232740923853768605811707073868423238949626437187435771253566616543052076619437089632265108447391098412436915272657607428885463822743866629634992678069466053797209243889008779389288485338770392232564989996068677350982391400971554681530859927000294125017347801551498581012346349067733866418395737661170211267090873481752117371750978898641169932841135581806384941701198573068227442962449708225722812065365142257993207826249924724640448760639745133241409682533142860744554729649389057214176513658798448969767903314408454656804007085194019855617219824033378205565091722049950904968428204171580328951549688408347324703779764046962195241984089682425661417288453254514208272979907162030077705242083417821638954827129111443640293088558933030111297712296107318143586527928517122235348179245152599762576989378997417279430738276691846966836980134763521022283860267605055044255060341216072378397561342960848777612241805053277674669471847046839565605566528869217301724040386912370206919294297872843874156518060649901148143074250306950504049022364887070472117125866479830610801061936322647739781326698595646057014518953382109092848537243168659072517246331639565420857636479572303757559110661469223822588077686832581786163796500925958026947243483998843665879157675187345483982021360217138314789957739554236978385778646795993179392429180697126003991021194455106758586568804966999927736122573558037741633322623756618892136309534582914739440350971694024461532489804074188845287633783956845319795044599750627827390979595722986814913203303322892702972645987777370391309666626292017493136831662695240030221592968465998615456700402104298717254386219669653458342118986416718146116948084344183046414530089385151624130303463133277162257596879818345981600017785601709846753353455488738545214980127810940912725765120686215362177323554453881682945975953059557774430210077679563342729237959589611714273480728349521504420325058705884816924940950096801629484742102256470467057936505199415542128174860352534367145813690273192833987206514365404839730447369725979147984820833477825310344093788938535695590951389180065979389003199493123082949260460887366620548775199506608303902953331212749243326417085318805362758434387685745498659587891330738649488202930067240760226164205694609690035665672409096742231499724536764073556149180669795736863593114663592328508221815474092711996202551717747713863268774957078142230577010863637994772743859463859558329615890132918337948762765601318966505795372745441250965795919871304183115339991015905790081087649033036814562670390397661419113779995898809022831168724247251669179277450148753867804404465853724995356361868649439476567480269642485851053263672541424842887600122526358832220380872811763306445314105528269152140683830075295249781617424455260115675157312932202947053226848581507066453320449214221306235921883142424558372277762325929172143244630679077393396726856812234240512853709235763578632639782843583677153201651004966650888207195575209541433097768898782289894611618689532412678143820789292064772248917835526060075078182849756774933023509415222199969315506807985202705147967762755680462841679153991949472244783414229584085356771377071520712706816492340795312556230643369977238953038903638611726546517212246355646852833791564815168143671566637297587470372574842019749227027705337632878786000772352844726934356713711024096221635544358290683343939696133785840530981136542033165239293841156334015246189214409961061123704008921792882904997843119437298153117129360617905613586088849450463979787848240252258566612827091025403692574784869619289625685975721574866599283806837184577790769805238485369043278814763799706572938766735271443452285504143978889610551117858225625428732351285639282299107765691825345097710982222904233532007775945038319557911554379759271398004404618358578551054240628685602044251783691118062024475477503265652329926164850052367866887328032646573200721052654090789544160803220448806703572566393296692804992883120629407606269340903485699271179834677388809564455188074502012643733476362457603571609175017536625573098872662699944094465745972672102947272751332868162111735390999958690672271430311341008120298275148316858094020498855795956947309629299459291419079031935346980078449020830659444696736869485357812206094910138599128324267064448373614769281672089622849893992047186587446914259408482542481086613349659117692454449455463310536920081984937495992753625898533867167246246452896832788229429245107933874540717399279107994772790134596305713740113906599993900284068270387349424355879354569249543878293251915047954430560371014789565616261744951138511220881224623548234827982642097627833472404602130390468334823922709571485232327941169625850855848199255981523690687285208472152938423779527810215916866288187382858427791766748825614517214469123595179822519043936267834121323254224264688100716042395666105859935582967157872440427085855716983817413307513789376432294963615117395592701957106644945162345079249638487372023785607017223215773270756715767214966936223241526160975293889235991825973705740528859733866205798834069129617045236037526796967700691655972001681107966120726316191635458015451511485083457082855681994674885066821583110828736525086052681010838016127157116583735907987999209999061049883993509728583003923795712752178511408338057140596802508827175755997150458574757116526601267026329214343544302406095813829589333225553277208120886102040538575420117794271861469970213027491460278701218182018917860520708039370168275876103090948460065799227880195973109431771808181019247654822289407425062402841879918672655451948140176605674471395237182477050156470179331399827316661095760864452700111590678365064358437440946684602620407132630489919336366165398466334394130571045777437535334183326314552519589501952193870805004625463111591795682322122253365641496414783150207522377249211974594930926864896104674327324619271956527760551334301739026760520758294067691487608920854183086713989203034304854805150099411097197750739599545932917056388089293721700407666054447817003036175029582422251049023463148571767323153747201466696400361188000166582788537525168287536606207564613597381797274501981353988658096391157089573842169667325051973369098334480188914559843996519510620484473527724614742342619172487945752917622517290587827877420013987896182572909298290002887548751953039339434596723181397500863472005525886067739081456956643957595248110730522086078291514897282846149096172633356687939373431244777583708102997044160590777665492886577298873647538718327681613361010056686262703903667346999658450262758202215597760960367315702871153024546512139188749080534250934333474641474427551402106348039567879671410761511669853122702651281764798099234483636971465787975858084796175398822891431920801111338649994979516785408442605489506396918299745241311560399694441546221076721869646416794690632484810892923583942995793485262134424705985458220164773769033463988905814701934525419736076566142246931425096272451705324283935766979758498474089301534682275758923039379330685029452322129748263044094092120309625539550081962006654092536019271902362448490302012374563200354081006973421559123390780644906209441930603894300318605329036207711201819369799633469750312199440617219859933653940284795189962992908231450081665815916581112098704174570872371341304697532601945128759033403321087069300753287993714368136129321161487672899675541960671883227133212651603246855157735049059435475636299035642503817030726350126877021885869940655652843581993991976447193126078660456402453088187806320746862641333243547308410593927123070963070165494325892223537871311027368422724500950132074642520985346706747049992782128995272580284915424438503564083775645153416675407636778938160759640927027192283706635700760798366603557060957675546312493916633983658914856584308525194320953133697302652156591950711879922706161388700586203783909242282838095608410325012456513980682910596259060537268422972622401592540072875339608661215993796474856898618555663392484937655628649148280995276023049499082813308081551501148876162168914005536669628547143724011675113017645507558925861591418908496054551080254617609680451169864610049446477134770139981569239122554367716210232748972463947920725557031231376023749025918041989559578470763009782427169053899935281655537836180936945239052457183882702698923286395208904269317975320713325720676506187587854338105795657297228368270178783296808752587194899926949506702601136138956588118528975725630295087595865006935148727372640040866150052366287978959257861595471523087509535008466108161929845788476489045961175302827245116866474663108706310075354296123127328858651219411082513050118843098048755132303477413061427763970722146323637074674143003762108216168133018032334209983762847412542190554003506132789823249538569548014465588026560473361984001543395811821324422307818528702936404462174854193746279473577700899492995012295432496665793098436405579174025728803431423370990758589996322163997528490597219928436714981710926947247126808177640372718353778067126267120091571307954322998344784094147224162778136100270427978621647726962015921010767381361034653102041013826440596786336535593735181896974355592043887777540552008025969980207004245095841325532134646717399656953620701327353435806246852769519547190143331836395484970787893171881524465390492636412456741334915994577191967038416776933487213147449716822058961381824906118987872058860984487452693232254360794428681241083051865639464079440029096986035114820259406596361189106305488969434014919062340061595591842486044706134617903305541746383316242301764393687759744694430732381736460264114805953367255886103101285038948057963487891357168316191361082441920792361531983796063295659140435042746694456048729547773403212109693004946973960141199727923338224645472450189054307001086618160764822576963853897902012365876339031412183003813281016765256769053482237572900845269421226616641395043004354486440059062216552183050580215406673027659233272654227043685983455554253453481630755018963034166587862840187366295523833669021829680386790593169684864374310372825778681872224059943606531596641866739109308104036033812923618423145721083430732646050804380549097596820495948218106237234143153434224671565585607144285036278724150408442576164843691914819730283133410869271996242403323668971128203033272164392249787070085299805268310913016827562144122204708336903393886306425862665003601610567991327935871678984667080978126583853344473023293363680080144970928872454019405767575390377219959200442081857067447649553840523416929522549343221987220965659156844114782419011962854628595496339250911619471095469729212551939517075004024514740902750903746978995301936560570780093785616126804551934906629033305598521979470065691885619606667282021603095542665334252097891531229794409878907694032203092371156432386183447308019749891579102862257431894886679335141653070698067505158885400590077762069345029672806327725615348052139544671286582878375993644409796753326275644903347068723599916158982844219925964106173803082625858592049274979853581098517986158317646106689892312914485998406302656211647440972566423392274869938613610127794402594998826304787740235885629669876126504979730534994316671936926642756024635604409566456954557804319788797068106652635918670156782039562177949784880416939010764127507708056896988536527519955131382128717235904303112759998775381541476081839150564102852212003284345282613092073720018979926397864481437148876913827217647626631523869229386010390257054674480151724215469892152732547457818584813428508589725152174851337649687598962413405863275641005209096889122629975034556446494649275332761574155677596065264949547244353337397238172615310006782293781031326877703686693192435655509454703138943320319560059860666037725887245424900423504840593356281659553221563495913252398438399913325097038238700844292826102483154916081622405972854562040899554407478475266032112962868186619216799750438930601877659264938186505923236152483858583155753582125232567754140678118060244927065402724028082990407437416599753069874795318998824452952809622527501202570112851867430100607517378139652287174095785508649069406383371211514293651272276048969277188061357408345530823310632224124701459982577760342845486743902227463318183183387288238822461607925939602475139345561409953194658515735768575279201604641607550772751351970383368488204397412810779351785062325824816257736494816951301769213296158890452151439124647452205793353924592559814922019955979668575980751453209754738268349805493398493417155565611582030753094506090036131001277418481026763931255957458445192957567511596426219984632006094692481537464335192123511722556151790393478251029680387107176907031264570874436070297676458222756012076401051267119560045480525702841399488551529111218696659588524941571018148396140449314574080092757763029045725234718552700692814663838742936974975628420406332723016149507661582572718614333130921385873502085981376090439180646764029669821663844176392195669295521196270716876534546037182300963603264890567621803574959300386075226337974557945150648865485440448230457659030145423633645184143410971560208982534091770559436250652926496233475365904163031103405722960750554708417024659988528383865239424461833278637017307213226083318760928705525064675783220114474995097619859178825241852543080423053907796683404139922313344362943602582745526914984049074965332364989264718789633047889353852640315293462923129433239457462640217746343957586612332840186783182171648319927297175931836665955087530506491392298960724123498235393076667843954436709426230700816699822229397127896153586783585603725461447013911381465311214864468339143461556376120423841414657355457214799475493774393559762880319192980562336602198396180855281906639188382111216978292390103537043097390091307853921271323807475407811868829098324060687267349251680903206344132457241482965442856841832175333203499200010894885449738161516505875105265673194729998447422868340492877018415596679751642777349622269195197002282519869885910076879333658456354948473085338427512023395986141342196160388399522093333165258783498523135273409646314791893090159480099986815975650247970763903401492964632887682843091150933698241457269650508207015940023193094454613458433165172568230043417666614469456741785892043512357003187755070311148935761451309211144366403072273147441224163535686827687253178927715276081910286839635555929704613582930983667796733939226035627639670480864198812207178426590535593711634306502811232056014489933860509066276292377829353669724447364220127587982200200450683033273892714660277678751323781364618330419949653027301538184910135005184615870277966305318014549970465893378565791705383968606916699081217393784232384469649618635197570948708027437462213034169866759676133566162118127397453678993237876122964697194173845121245467282434109432276648481039164587640740476997330394560707615336961189152617248369987991793212413903525113284255925544896948593910324574387370743839787900667751027493134126742529475422341481662535335069456115803828659514175255311629340697512558774397571199419070418457795199251747192304725117754214932659238283777187710362268844504771554316653134056640357938139478909563349371813378785341351527717512449239098511576168256820182265339092854634374994055926662805772227248421461144628710040342994985115675663356441828695218789542647503894215769389107529090698511060884892448044939933511850310569470840521418094575957745902357187867408941209276674561262494827323123717691644662667361659491412398515286686961872115996146421528925504747167469861829639136886516804627847782868756979828547785165065513408295637812053798508905152780324247163280997310237791549203295659881652522791884254353269896998533842857426974731804039651176552316803239683638415509459329077186356882767535691376004396748416159638262274181372879117296904435138506300473010436553603243126783804387647963417656787253435227479911515980563072547999565185132949440613189668045377057034632075852363183380989614986599241507110481567218467604492709835312268526040814776703253610430165524505084066458802212216854718588538017171918725263885231774027548782979513029713955579320724205437093338327110205007206845125520769271061615211042819822025710289635002404559152417360093714635142568594941537286220391854238776940669481332956643841475060435516568652773895899769593546559805672639798006768027067502391210297812225006149777743274707933748881894679196045261446601301429135836888317417866166239118958214996020947302818453536290561882000342174522982720940477879545915430257637901430884184252347252950645247331257543876182117781937594078563785200570348687842846539475256430249791711059891623661714683432380734715012457058462386952510828976805681755836652496900487120428447014277153002685733106632756132748854821985638543568424147242001035483091122190320266422361657988360215047630204792283560301144413473900421978206796570479090480221682078175268119445884399391903165651461739411188094544628268717209345808304588821291862093329302221183328613914034642534724247800226774796224818928465068635817070278736085630980632944526703898815464919237043864428513675292229672552661370648293836029278971691736121285624202790938364238379067881116265040596517076347189380665741157467222473185199054393697547475536960902571610447668785477978499864822914272207709080675159293318175652475350327026830918876361186312114751522473127657826778510327491480208838540313442859643614120507174634908713710687454283769371704213971795092089343304299097552691950661666918067902849992487324239113977173838003065084195718324277995492467616438435815401725984965010856252757937989835248367647275032767955375488700402976259961447289511297097388884786205551809482719928820598986007666197396049750567996695571766579271561153278173742810107152662956957990574242749792466907440959021121684233686531287959004044962511051710823231090966107211754926007558947612677295499630373905689622453202959463446853747617494103395583128777190956973688484671885516896263406942753712071709854798267315061918144292706253518641860767433875105255466298290489632914738685892114835327456256795314219042787040508664431455857198047880578253930564803098286428468990361708617741429328404850414988503029210437053490914049541139463914749000897780791406455457818006413975091315286033896646829118288027671630503026178411086705687313616945125614289204076794097695229030022229546242538323692185852039424927185715785415799644884737651671861014787640944633077003334706400365467485624389302760385867008113068926559238895530374097969048750132047511114696246784906096750058876349275298326279197523505186105681080650961876947096025273408908264528943665272824810955671624196251242904246900168409830884722956902158290671977056679642045718238900890921815880777628726911247244307726564782616404050027387978366157304006394339573318328934868631546810095362304849404882947924775279366331396652901913676386307169612547317358638401285250307993323694046350632765799587435223931393403435582462754210383526882241823935235499497347971001988655334153881908588402844536082294757916434455507351357680170717068625057196849893962194606783562639687239315173127784596401837362411011573377853365588813228639105365200620122954747278350789283317258705495879137489282791552144670569504188258155289412555714325119866788400344249795515890378985303829849191111147563969406530952493031085532468922142244342220924972711547842793861771914969985461758520150440264846914396784155147093533051156460414944746274609420216131296224931464129325725935272515438365852234223520198030525005231693685457259161164142639773975799262083563188146393008896390147255989918068855153758179037669331682325647494094024738908584224972626282711067593254559267473131351147784102793008097042345880867971545657935747336404421989289323581256344000659754435344955546760116518016941132043588723739070824944213542930382359217239388994501718872994688245672061671492564833856457722355104222254014738942084448821433831539823258883271978937166640072118219811972565465956499447328318676595205705450017502562887259256498897975079498720180601460804544806111053748238843817588642617043458250912685312205172722747934669488058290489332941187173650297802583424697223241599247230439799258774852649085931970855435398589896556764760724559782849223855315019847520619561174970794723280934470461126123076277044532511424977408160374356065600388094795060215656701677017554571368831437530314130899861107714148884672526414660231378240773372239143956836244744747376063490815418451638443190592862496218955592073629200982387380804201224378395011697255251382066579777149593259727668254805084121182523455776299255449721597115536107619411358750673868145003623924919254502847273653266896151688743484132926530883097965711319292309388841133026627758177767372263412049415683178478153322261146987051357833359469990300908088727869501611131907389225667615237800648985728817999160859120199547423136930450774071616705051788617049376213949935602792062808415183272579539375511617681497657880785666213226379639689850177581165958994440335512792810093548962115041063423941466579935585544547712947072838605107249327055552887623951940619697033730839499141095197125539871746742815689446289861459990810196865230917941877835990939775190458257104994440711298510583655481759361073000558896480294877454941369145921550993575809156458452815928975155864387397904111269647963506550064438216116490170760650899087083783978205243047342579941454822902260610245530774264450484251448224077762233330067965845188645870731660659121704328458238899902736360930721572438321642149277074748443448862766545057109412166264682499498387947272202653803128150708415555971246589306202858537012614985664768255653885459555601896962260363153460288313626433006287129249251220608441348323672726786624094805149583455593889557753454497444754318419837019283454605279518591183947114782533411498004913999033593533634981263500710218993311475904997876401264938932327563921241636961283381663938343357742484425962807674894689009390827822889995570003167846205338512513498579490911999612398161654138396650468735639434999921533682435151523815456242221014837412777539947890007357428046041132301113782639533091657008363148881448988356489850304047420385063385808411229051941284373392850339310404288372846843487890241655099974053699600155501795141016353238296278978829019505420473303734536185932271631190684880881287514429382357315874110214975639364466620281822746591706630944465299284924393938212803865883567681552346167641369172155143349135670148697664611441349442530909603197012157559152189888522850769796142433929198348871981467425138875290074686932341299781568491778031314789639452408483809472257381780103651915101509338413283142234866239473299427165804237792940878033536986522376608743953954742241138353881870431534202417067223328123734495108242211893862039566754230780981730971590242426179492935391153091113115897550181451048879557933715120295369548521079204234465895383405016568933093586341089682056315401606373639136220993242642341162759198007734055672631125995302257738612299640759767842052419269557731796044157423663540567529292918292707080780498550601726416674224813186546077602173130756638030646667546405575871350008315655850532104462673528176678054824189165403276788733489757917248838928251801599088921034542124726534775058167726892921679448503617595520287397672633270495533754555022136173338276597043700908743273165950609606725615750121213743015401164634410427302842303473786669122355111671179543026219868095774030495763173139413264280258701589704904825204663867251074924606168342440843807668483433862098012904522032630717636612272557045282199303644170214536240063207409644852832297710223350803113609513542545260494325298315884064822268326868708030988730110765847133713690843061684417518114765092066422639899705908142962550883574000425278762840885695909397274631570548286419061900788809012809313136933640958922527485266153548600692407714795108037292887087909224733902077157004551041771541971446137502512572998345828296236019660096704943820854352562883036549290290164087447537176700810267730352956419757444649946349048099725708467176604237661788300381842992273518177064480032893640717533460105405361123680170919953280054459328563743241712745245124212521677326161626660246730910429424122267438658362856306579076680673750430371807155866302754319075708560241602566191172327109502129510968451579919712790247046073857295622261084718079032937282238762271319942816232709481426843003331253766909912095943937174556593958407903348251474806049318921940506368703958982307168791809998230774401610308142661377280555970562811780655738276633786258495563084533187171244127933687655228419175463254551491437753039697786965216875468912526479175614577656869518466138411717120779050129881105290701303610286942508055824635730651732947544994283960624497766798062520056040183034176003634427075593176390357421472151196989553896558086888664520305491349718673746087248637353136825740411936710492843315686498658175890566530191696139351915402228854550128678558480251982398406430234704691068345792197696126271224722477666082304271323363758741974352321453160481190089145872882400705284996920237754199521655957065067691609212553513831127462803995526906258020800134323383023870622602660757310755266967213398347830819757366507336750366548936241047083551969061506158657337181002555024319940648732008239965647985651557184971668935900432606976295599617482335739671207422994120868517922741800687730599707772236156722264845661220738037870924040565396546564314555140712884124080500683428246245636989074250232157480486272157564858719053543219619876515971782768637333843784395344768733384826077467137503373067544800980495991671792721616545031628217748763150160226571228444446337245304405745537580514699839322782382582107657281795582265547518396314509830703264863629002693569835097618565156228364467730280636086727624405485647510436836632793816940163095224564311554099008171167870735644160107838225294006482406778467691083899133393258563825175433836153310010735810251080376581746539723083744219935517274678673836419619627734515765523835404530081779931689044016291730368411418664273582384479049824935041142026037083360834698937159473813143036733105555309144221486666426012780885572160407466891154907778844262835974832626905011052687770421513453092632228187283221924819430011244292932045969224828253827229111683299038897884011628208146471383428502479035594310759337505356751445651914926364215053309009612227404866983540114004160713665120160985035816086898560716779029176237023806824372777656945311691674074876475398149634141039260211525020880028054627195742204560615486311985402297464312577272531940366731511034091600620381903834356193062379054328182121097582868668789763735023658574212419547050138653832849697393329345537911678498509573237271225462179302581126129888385510725579510521919798210015243617656867691251659896959630961032590386505119795945545775802689656865027228174983401559682448481655392081821669191828700718358884742869041972892235766384557462304691623177683891602202746820267867710150268869076585009295489291071608154104397675367285751467097688746843090580770492379685668701760983852418526169760430815127439881988754086116840903023007772598963428091644470927753585897197159724242180248853784584538852090359565568556233793441357528648919099839811602720406865809203782054724496462965480724204319062512964899601949283382396874931442485900158012335412568021518995815856438212